summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-10-30 17:53:18 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-10-30 17:53:18 +0000
commit5d2225fbbf84324c1cf370bb11776b1c0a671b4a (patch)
tree448f2af719809cbc0a733729be8017de4b5c57a7 /src/map/skill.c
parentb47c0ac38a3b04b6e5b0001608e726de3e93448f (diff)
downloadhercules-5d2225fbbf84324c1cf370bb11776b1c0a671b4a.tar.gz
hercules-5d2225fbbf84324c1cf370bb11776b1c0a671b4a.tar.bz2
hercules-5d2225fbbf84324c1cf370bb11776b1c0a671b4a.tar.xz
hercules-5d2225fbbf84324c1cf370bb11776b1c0a671b4a.zip
- Set the inf2 to encore skills of Wand of Hermode
- Modified battle_calc_return_damage to take the skill id as well, now magic damage return will not work on skills tagged as ground or self targetted. - Fixed Gank not working at all with the default max steal tries setting. - Soul Drain won't work with skills tagged as self-targetted. - Improved the Suiton code so that the walk/agi penalty only applies to enemies of whoever casted the skill. - Moved the initial status_calc_pc call to when you finish loading the map, should fix equipment scripts which are based on character variables not working. - Some cleanup of the clif_parse_LoadEndAck function. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9099 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 8559581cb..3c8a956e8 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1023,7 +1023,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
skill_castend_damage_id(src,bl,HT_BLITZBEAT,(skill<lv)?skill:lv,tick,SD_LEVEL);
}
// Gank
- if(dstmd && dstmd->state.steal_flag<battle_config.skill_steal_max_tries && sd->status.weapon != W_BOW &&
+ if(dstmd && sd->status.weapon != W_BOW &&
(skill=pc_checkskill(sd,RG_SNATCHER)) > 0 &&
(skill*15 + 55) + pc_checkskill(sd,TF_STEAL)*10 > rand()%1000) {
if(pc_steal_item(sd,bl,pc_checkskill(sd,TF_STEAL)))
@@ -1520,7 +1520,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
}
if(sd && skillid && attack_type&BF_MAGIC && status_isdead(bl) &&
- skill_get_inf(skillid)!=INF_GROUND_SKILL &&
+ !(skill_get_inf(skillid)&(INF_GROUND_SKILL|INF_SELF_SKILL)) &&
(rate=pc_checkskill(sd,HW_SOULDRAIN))>0
){ //Soul Drain should only work on targetted spells [Skotlex]
if (pc_issit(sd)) pc_setstand(sd); //Character stuck in attacking animation while 'sitting' fix. [Skotlex]
@@ -1888,7 +1888,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
damage = dmg.damage + dmg.damage2;
if (damage > 0 && src != bl && src == dsrc)
- rdamage = battle_calc_return_damage(bl, &damage, dmg.flag);
+ rdamage = battle_calc_return_damage(bl, skillid, &damage, dmg.flag);
//Skill hit type
type=(skillid==0)?5:skill_get_hit(skillid);
@@ -6877,11 +6877,17 @@ int skill_unit_onplace (struct skill_unit *src, struct block_list *bl, unsigned
case UNT_VOLCANO:
case UNT_DELUGE:
case UNT_VIOLENTGALE:
- case UNT_SUITON:
if(sc && sc->data[type].timer==-1)
sc_start(bl,type,100,sg->skill_lv,sg->limit);
break;
+ case UNT_SUITON:
+ if(sc && sc->data[type].timer==-1)
+ sc_start4(bl,type,100,sg->skill_lv,
+ battle_check_target(&src->bl,bl,BCT_ENEMY)>0?1:0, //Send val3 =1 to reduce agi.
+ 0,0,sg->limit);
+ break;
+
case UNT_RICHMANKIM:
case UNT_ETERNALCHAOS:
case UNT_DRUMBATTLEFIELD: