diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/clif.c | 9 | ||||
-rw-r--r-- | src/map/mob.c | 3 | ||||
-rw-r--r-- | src/map/pc.c | 7 | ||||
-rw-r--r-- | src/map/skill.c | 4 |
4 files changed, 10 insertions, 13 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 366da63df..fe9ae5afb 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -9285,15 +9285,6 @@ void clif_parse_UseItem(int fd, struct map_session_data *sd) { if (clif_trading(sd))
return;
- if (sd->sc.count && (
- sd->sc.data[SC_TRICKDEAD].timer != -1 || //死んだふり
- sd->sc.data[SC_BLADESTOP].timer != -1 || //白刃取り
- sd->sc.data[SC_BERSERK].timer!=-1 || //バーサーク
- (sd->sc.data[SC_NOCHAT].timer!=-1 && sd->sc.data[SC_NOCHAT].val1&MANNER_NOITEM) ||
- sd->sc.data[SC_GRAVITATION].timer!=-1 //会話禁止
- ))
- return;
-
if (sd->invincible_timer != -1)
pc_delinvincibletimer(sd);
diff --git a/src/map/mob.c b/src/map/mob.c index 8ee1970b7..73446d349 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2284,6 +2284,9 @@ int mob_class_change (struct mob_data *md, int class_) if (md->class_ >= 1324 && md->class_ <= 1363) return 0; //Treasure Boxes + if (md->special_state.ai > 1) + return 0; //Marine Spheres and Floras. + if (mob_is_clone(md->class_)) return 0; //Clones diff --git a/src/map/pc.c b/src/map/pc.c index 057e5e59d..bd02b1ec3 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -2938,10 +2938,13 @@ int pc_useitem(struct map_session_data *sd,int n) sd->sc.data[SC_MARIONETTE].timer!=-1 || (sd->sc.data[SC_GRAVITATION].timer!=-1 && sd->sc.data[SC_GRAVITATION].val3 == BCT_SELF) || //Cannot use Potions/Healing items while under Gospel. - (sd->sc.data[SC_GOSPEL].timer!=-1 && sd->sc.data[SC_GOSPEL].val4 == BCT_SELF && sd->inventory_data[n]->type == IT_HEALING) + (sd->sc.data[SC_GOSPEL].timer!=-1 && sd->sc.data[SC_GOSPEL].val4 == BCT_SELF && sd->inventory_data[n]->type == IT_HEALING) || + sd->sc.data[SC_TRICKDEAD].timer != -1 || + sd->sc.data[SC_BLADESTOP].timer != -1 || + (sd->sc.data[SC_NOCHAT].timer!=-1 && sd->sc.data[SC_NOCHAT].val1&MANNER_NOITEM) )) return 0; - + sd->itemid = sd->status.inventory[n].nameid; sd->itemindex = n; amount = sd->status.inventory[n].amount; diff --git a/src/map/skill.c b/src/map/skill.c index 790707090..af022a5af 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -4941,7 +4941,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in //On level 1, use level 10 cloaking (no speed penalty) //with val4 passed as 1 is for "infinite cloak". clif_skill_nodamage(src,bl,skillid,skilllv, - sc_start4(bl,type,100,9+skilllv,0,0,1,skill_get_time(skillid,skilllv))); + sc_start4(bl,type,100,9+skilllv,0,0,2,skill_get_time(skillid,skilllv))); break; case NPC_SIEGEMODE: @@ -8226,7 +8226,7 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t clif_skill_fail(sd,skill,0,0); return 0; case SG_FUSION: - if (!sc || sc->data[SC_FUSION].timer!=-1) + if (sc && sc->data[SC_FUSION].timer!=-1) return 1; if (sc && sc->data[SC_SPIRIT].timer != -1 && sc->data[SC_SPIRIT].val2 == SL_STAR) break; |