diff options
author | shennetsind <ind@henn.et> | 2013-02-03 14:58:02 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-02-03 14:58:02 -0200 |
commit | 4671a3910c923b473d2f4efb50daf0fb343a67a9 (patch) | |
tree | 46178301604f987e7d83e1f40ccb5f21fd082fc9 | |
parent | 0dbbe22a43c72737349b5907088bd5c90d5c3d3a (diff) | |
download | hercules-4671a3910c923b473d2f4efb50daf0fb343a67a9.tar.gz hercules-4671a3910c923b473d2f4efb50daf0fb343a67a9.tar.bz2 hercules-4671a3910c923b473d2f4efb50daf0fb343a67a9.tar.xz hercules-4671a3910c923b473d2f4efb50daf0fb343a67a9.zip |
Fixed Bug #7044
Monsters in stone curse pre-stone state no longer are able to attack.
http://hercules.ws/board/tracker/issue-7044-stone-curse/
Signed-off-by: shennetsind <ind@henn.et>
-rw-r--r-- | src/map/status.c | 34 | ||||
-rw-r--r-- | src/map/unit.c | 2 |
2 files changed, 18 insertions, 18 deletions
diff --git a/src/map/status.c b/src/map/status.c index 8171f20ec..ce792cd75 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1585,7 +1585,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin if( sc && sc->count ) { - if (skill_id != RK_REFRESH && sc->opt1 >0 && (sc->opt1 != OPT1_CRYSTALIZE && src->type != BL_MOB) && sc->opt1 != OPT1_BURNING && skill_id != SR_GENTLETOUCH_CURE) { //Stuned/Frozen/etc + if (skill_id != RK_REFRESH && sc->opt1 >0 && !(sc->opt1 == OPT1_CRYSTALIZE && src->type == BL_MOB) && sc->opt1 != OPT1_BURNING && skill_id != SR_GENTLETOUCH_CURE) { //Stuned/Frozen/etc if (flag != 1) //Can't cast, casted stuff can't damage. return 0; if (!(skill_get_inf(skill_id)&INF_GROUND_SKILL)) @@ -1678,22 +1678,22 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin } } - if (sc && sc->option) - { - if (sc->option&OPTION_HIDE) - switch (skill_id) { //Usable skills while hiding. - case TF_HIDING: - case AS_GRIMTOOTH: - case RG_BACKSTAP: - case RG_RAID: - case NJ_SHADOWJUMP: - case NJ_KIRIKAGE: - case KO_YAMIKUMO: - break; - default: - //Non players can use all skills while hidden. - if (!skill_id || src->type == BL_PC) - return 0; + if (sc && sc->option) { + if (sc->option&OPTION_HIDE) { + switch (skill_id) { //Usable skills while hiding. + case TF_HIDING: + case AS_GRIMTOOTH: + case RG_BACKSTAP: + case RG_RAID: + case NJ_SHADOWJUMP: + case NJ_KIRIKAGE: + case KO_YAMIKUMO: + break; + default: + //Non players can use all skills while hidden. + if (!skill_id || src->type == BL_PC) + return 0; + } } if (sc->option&OPTION_CHASEWALK && skill_id != ST_CHASEWALK) return 0; diff --git a/src/map/unit.c b/src/map/unit.c index afb7cf19f..e901d3138 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -939,7 +939,7 @@ int unit_can_move(struct block_list *bl) { if( sc->data[SC_ANKLE] && ( battle_config.skill_trap_type || !unit_is_walking(bl) ) ) // Ankle only stops you after you're done moving return 0; - if (sc->opt1 > 0 && sc->opt1 != OPT1_STONEWAIT && sc->opt1 != OPT1_BURNING && (sc->opt1 != OPT1_CRYSTALIZE && bl->type != BL_MOB)) + if (sc->opt1 > 0 && sc->opt1 != OPT1_STONEWAIT && sc->opt1 != OPT1_BURNING && !(sc->opt1 == OPT1_CRYSTALIZE && bl->type == BL_MOB)) return 0; if ((sc->option & OPTION_HIDE) && (!sd || pc_checkskill(sd, RG_TUNNELDRIVE) <= 0)) |