diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/script.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 18 |
2 files changed, 16 insertions, 4 deletions
diff --git a/src/map/script.c b/src/map/script.c index 1efd85c6c..fd1fa5b0e 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -13455,7 +13455,7 @@ BUILDIN_FUNC(changequest) TBL_PC * sd = script_rid2sd(st); int q1 = script_getnum(st, 2), q2 = script_getnum(st, 3); - if( quest_check_quest(sd, q1, HAVEQUEST) == Q_ACTIVE && quest_add(sd, q2) >= 0 ) + if( quest_check_quest(sd, q1, HAVEQUEST) == Q_ACTIVE && !quest_add(sd, q2) ) { quest_update_status(sd, q1, Q_COMPLETE); intif_quest_save(sd->status.char_id, &sd->quest_log[sd->avail_quests]); diff --git a/src/map/skill.c b/src/map/skill.c index aebfc9eee..861a073a1 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3796,7 +3796,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in return 1; } //TODO: How much does base level affects? Dummy value of 1% per level difference used. [Skotlex] - clif_skill_nodamage(src,bl,skillid,skilllv, + clif_skill_nodamage(src,bl,skillid == SM_SELFPROVOKE ? SM_PROVOKE : skillid,skilllv, (i = sc_start(bl,type, skillid == SM_SELFPROVOKE ? 100:( 50 + 3*skilllv + status_get_lv(src) - status_get_lv(bl)), skilllv, skill_get_time(skillid,skilllv)))); if( !i ) { @@ -4507,9 +4507,21 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in location = EQP_WEAPON|EQP_SHIELD|EQP_ARMOR|EQP_HELM; break; } + + //Special message when trying to use strip on FCP [Jobbie] + if( sd && skillid == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD] ) + { + clif_gospel_info(sd, 0x28); + break; + } + //Attempts to strip at rate i and duration d - if (!clif_skill_nodamage(src,bl,skillid,skilllv,skill_strip_equip(bl, location, i, skilllv, d)) && sd) - clif_skill_fail(sd,skillid,0,0); //Nothing stripped. + if( (i = skill_strip_equip(bl, location, i, skilllv, d)) || skillid != ST_FULLSTRIP ) + clif_skill_nodamage(src,bl,skillid,skilllv,i); + + //Nothing stripped. + if( sd && !i ) + clif_skill_fail(sd,skillid,0,0); } break; |