diff options
author | malufett <malufett.eat.my.binaries@gmail.com> | 2014-02-11 01:26:29 +0800 |
---|---|---|
committer | malufett <malufett.eat.my.binaries@gmail.com> | 2014-02-11 01:26:29 +0800 |
commit | 1e1b4a6a9286348192e6dcf22b816c01bc6f57b0 (patch) | |
tree | e6329664358e054d499b174858ace0a64ad7f9ac /src/map | |
parent | 537e621b81b8fdd8763342703083c1abcfb3cc3a (diff) | |
parent | afb013850baddb26a4600b60c0ee713fb9d05784 (diff) | |
download | hercules-1e1b4a6a9286348192e6dcf22b816c01bc6f57b0.tar.gz hercules-1e1b4a6a9286348192e6dcf22b816c01bc6f57b0.tar.bz2 hercules-1e1b4a6a9286348192e6dcf22b816c01bc6f57b0.tar.xz hercules-1e1b4a6a9286348192e6dcf22b816c01bc6f57b0.zip |
Merge branch 'master' of https://github.com/HerculesWS/Hercules
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/atcommand.c | 2 | ||||
-rw-r--r-- | src/map/battle.c | 48 | ||||
-rw-r--r-- | src/map/script.c | 13 |
3 files changed, 33 insertions, 30 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 6177fad23..2849ada0b 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -64,7 +64,7 @@ struct atcmd_binding_data* get_atcommandbind_byname(const char* name) { if( *name == atcommand->at_symbol || *name == atcommand->char_symbol ) name++; // for backwards compatibility - ARR_FIND( 0, atcommand->binding_count, i, strcmp(atcommand->binding[i]->command, name) == 0 ); + ARR_FIND( 0, atcommand->binding_count, i, strcmpi(atcommand->binding[i]->command, name) == 0 ); return ( i < atcommand->binding_count ) ? atcommand->binding[i] : NULL; } diff --git a/src/map/battle.c b/src/map/battle.c index 687db1b95..1a04aeff9 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -3411,36 +3411,36 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list ad.damage = battle->calc_cardfix(BF_MAGIC, src, target, nk, s_ele, 0, ad.damage, 0, ad.flag); #endif if(sd) { - uint16 skill; + uint16 rskill;/* redirect skill */ //Damage bonuses if ((i = pc->skillatk_bonus(sd, skill_id))) ad.damage += ad.damage*i/100; switch(skill_id){ case WL_CHAINLIGHTNING_ATK: - skill = WL_CHAINLIGHTNING; + rskill = WL_CHAINLIGHTNING; break; case AB_DUPLELIGHT_MAGIC: - skill = AB_DUPLELIGHT; + rskill = AB_DUPLELIGHT; break; case WL_TETRAVORTEX_FIRE: case WL_TETRAVORTEX_WATER: case WL_TETRAVORTEX_WIND: case WL_TETRAVORTEX_GROUND: - skill = WL_TETRAVORTEX; + rskill = WL_TETRAVORTEX; break; case WL_SUMMON_ATK_FIRE: case WL_SUMMON_ATK_WIND: case WL_SUMMON_ATK_WATER: case WL_SUMMON_ATK_GROUND: - skill = WL_RELEASE; + rskill = WL_RELEASE; break; case WM_REVERBERATION_MAGIC: - skill = WM_REVERBERATION; + rskill = WM_REVERBERATION; break; default: - skill = skill_id; + rskill = skill_id; } - if( (i = battle->adjust_skill_damage(src->m,skill)) ) + if( (i = battle->adjust_skill_damage(src->m,rskill)) ) MATK_RATE(i); //Ignore Defense? @@ -3877,15 +3877,15 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * #endif md.damage = battle->calc_cardfix(BF_MISC, src, target, nk, s_ele, 0, md.damage, 0, md.flag); if(skill_id){ - uint16 skill; + uint16 rskill;/* redirect skill id */ switch(skill_id){ case GN_HELLS_PLANT_ATK: - skill = GN_HELLS_PLANT; + rskill = GN_HELLS_PLANT; break; default: - skill = skill_id; + rskill = skill_id; } - if (sd && (i = pc->skillatk_bonus(sd, skill))) + if (sd && (i = pc->skillatk_bonus(sd, rskill))) md.damage += md.damage*i/100; } if( (i = battle->adjust_skill_damage(src->m,skill_id)) ) @@ -4734,40 +4734,40 @@ struct Damage battle_calc_weapon_attack(struct block_list *src,struct block_list break; } if( skill_id ){ - uint16 skill; + uint16 rskill;/* redirect skill id */ switch(skill_id){ case AB_DUPLELIGHT_MELEE: - skill = AB_DUPLELIGHT; + rskill = AB_DUPLELIGHT; break; case LG_OVERBRAND_BRANDISH: case LG_OVERBRAND_PLUSATK: - skill = LG_OVERBRAND; + rskill = LG_OVERBRAND; break; case WM_SEVERE_RAINSTORM_MELEE: - skill = WM_SEVERE_RAINSTORM; + rskill = WM_SEVERE_RAINSTORM; break; case WM_REVERBERATION_MELEE: - skill = WM_REVERBERATION; + rskill = WM_REVERBERATION; break; case GN_CRAZYWEED_ATK: - skill = GN_CRAZYWEED; + rskill = GN_CRAZYWEED; break; case GN_SLINGITEM_RANGEMELEEATK: - skill = GN_SLINGITEM; + rskill = GN_SLINGITEM; break; case RL_R_TRIP_PLUSATK: - skill = RL_R_TRIP; + rskill = RL_R_TRIP; break; case RL_B_FLICKER_ATK: - skill = RL_FLICKER; + rskill = RL_FLICKER; break; case RL_GLITTERING_GREED_ATK: - skill = RL_GLITTERING_GREED; + rskill = RL_GLITTERING_GREED; break; default: - skill = skill_id; + rskill = skill_id; } - if( (i = battle->adjust_skill_damage(src->m,skill)) ) + if( (i = battle->adjust_skill_damage(src->m,rskill)) ) ATK_RATE(i); } diff --git a/src/map/script.c b/src/map/script.c index 4fb4e7224..7ca6a7ddd 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -7666,9 +7666,8 @@ BUILDIN(getequippercentrefinery) { /*========================================== * Refine +1 item at pos and log and display refine *------------------------------------------*/ -BUILDIN(successrefitem) -{ - int i=-1,num,ep; +BUILDIN(successrefitem) { + int i = -1 , num, ep, up = 1; TBL_PC *sd; num = script_getnum(st,2); @@ -7676,6 +7675,9 @@ BUILDIN(successrefitem) if( sd == NULL ) return true; + if( script_hasdata(st, 3) ) + up = script_getnum(st, 3); + if (num > 0 && num <= ARRAYLENGTH(script->equip)) i=pc->checkequip(sd,script->equip[num-1]); if(i >= 0) { @@ -7687,7 +7689,8 @@ BUILDIN(successrefitem) if (sd->status.inventory[i].refine >= MAX_REFINE) return true; - sd->status.inventory[i].refine++; + sd->status.inventory[i].refine += up; + sd->status.inventory[i].refine = cap_value( sd->status.inventory[i].refine, 0, MAX_REFINE); pc->unequipitem(sd,i,2); // status calc will happen in pc->equipitem() below clif->refine(sd->fd,0,i,sd->status.inventory[i].refine); @@ -18580,7 +18583,7 @@ void script_parse_builtin(void) { BUILDIN_DEF(getequiprefinerycnt,"i"), BUILDIN_DEF(getequipweaponlv,"i"), BUILDIN_DEF(getequippercentrefinery,"i"), - BUILDIN_DEF(successrefitem,"i"), + BUILDIN_DEF(successrefitem,"i?"), BUILDIN_DEF(failedrefitem,"i"), BUILDIN_DEF(downrefitem,"i?"), BUILDIN_DEF(statusup,"i"), |