diff options
author | malufett <malufett.eat.my.binaries@gmail.com> | 2013-02-22 20:45:27 +0800 |
---|---|---|
committer | malufett <malufett.eat.my.binaries@gmail.com> | 2013-02-22 20:45:27 +0800 |
commit | 915365b27f5e35e8957e25d9ea7231ad1c4f8861 (patch) | |
tree | 072e07a4b3411a29ae762ddd4568f1bd4f5c6d7c /src/map | |
parent | 84926b94e869a19f08a7a25df15b4c677316cd32 (diff) | |
download | hercules-915365b27f5e35e8957e25d9ea7231ad1c4f8861.tar.gz hercules-915365b27f5e35e8957e25d9ea7231ad1c4f8861.tar.bz2 hercules-915365b27f5e35e8957e25d9ea7231ad1c4f8861.tar.xz hercules-915365b27f5e35e8957e25d9ea7231ad1c4f8861.zip |
Fixed Bug #7087
-Updated official behavior of warp portal dealing with skill requirement and casting.
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/battle.c | 2 | ||||
-rw-r--r-- | src/map/skill.c | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 924c9d8a5..197b0578a 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -5195,7 +5195,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f case BL_MOB: if(((((TBL_MOB*)target)->special_state.ai == 2 || //Marine Spheres (((TBL_MOB*)target)->special_state.ai == 3 && battle_config.summon_flora&1)) && //Floras - s_bl->type == BL_PC && src->type != BL_MOB) || ((TBL_MOB*)target)->special_state.ai == 4 && t_bl->id != src->id) //Zanzoe + s_bl->type == BL_PC && src->type != BL_MOB) || ((TBL_MOB*)target)->special_state.ai == 4 && t_bl->id != s_bl->id) //Zanzoe { //Targettable by players state |= BCT_ENEMY; strip_enemy = 0; diff --git a/src/map/skill.c b/src/map/skill.c index 98c7e8ba3..d21d39bb0 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1,4 +1,4 @@ -// Copyright (c) Hercules Dev Team, licensed under GNU GPL. +// Copyright (c) Hercules Dev Team, licensed under GNU GPL. // See the LICENSE file // Portions Copyright (c) Athena Dev Teams @@ -398,7 +398,7 @@ int skill_calc_heal(struct block_list *src, struct block_list *target, uint16 sk #ifdef RENEWAL /** * Renewal Heal Formula - * Formula: ( [(Base Level + INT) / 5] × 30 ) × (Heal Level / 10) × (Modifiers) + MATK + * Formula: ( [(Base Level + INT) / 5] × 30 ) × (Heal Level / 10) × (Modifiers) + MATK **/ hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * skill_lv / 10; #else @@ -8597,7 +8597,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case SO_ARRULLO: { - // [(15 + 5 * Skill Level) + ( Caster’s INT / 5 ) + ( Caster’s Job Level / 5 ) - ( Target’s INT / 6 ) - ( Target’s LUK / 10 )] % + // [(15 + 5 * Skill Level) + ( Caster’s INT / 5 ) + ( Caster’s Job Level / 5 ) - ( Target’s INT / 6 ) - ( Target’s LUK / 10 )] % int rate = (15 + 5 * skill_lv) + status_get_int(src)/5 + (sd ? sd->status.job_level : 0); rate -= status_get_int(bl)/6 - status_get_luk(bl)/10; clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); @@ -8607,7 +8607,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui case WM_LULLABY_DEEPSLEEP: if( flag&1 ){ - //[(Skill Level x 4) + (Voice Lessons Skill Level x 2) + (Caster’s Base Level / 15) + (Caster’s Job Level / 5)] % + //[(Skill Level x 4) + (Voice Lessons Skill Level x 2) + (Caster’s Base Level / 15) + (Caster’s Job Level / 5)] % int rate = (4 * skill_lv) + ( (sd) ? pc_checkskill(sd,WM_LESSON)*2 + sd->status.job_level/5 : 0 ) + status_get_lv(src) / 15; if( bl != src ) sc_start(bl,type,rate,skill_lv,skill_get_time(skill_id,skill_lv)); @@ -9496,7 +9496,7 @@ int skill_castend_pos(int tid, unsigned int tick, int id, intptr_t data) if( sd ) { - if( !skill_check_condition_castend(sd, ud->skill_id, ud->skill_lv) ) + if( ud->skill_id != AL_WARP && !skill_check_condition_castend(sd, ud->skill_id, ud->skill_lv) ) break; else skill_consume_requirement(sd,ud->skill_id,ud->skill_lv,1); |