summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authormalufett <malufett.eat.my.binaries@gmail.com>2013-02-22 20:45:27 +0800
committermalufett <malufett.eat.my.binaries@gmail.com>2013-02-22 20:45:27 +0800
commit915365b27f5e35e8957e25d9ea7231ad1c4f8861 (patch)
tree072e07a4b3411a29ae762ddd4568f1bd4f5c6d7c /src/map
parent84926b94e869a19f08a7a25df15b4c677316cd32 (diff)
downloadhercules-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.c2
-rw-r--r--src/map/skill.c10
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);