diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-10-30 17:53:18 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-10-30 17:53:18 +0000 |
commit | 5d2225fbbf84324c1cf370bb11776b1c0a671b4a (patch) | |
tree | 448f2af719809cbc0a733729be8017de4b5c57a7 /src/map/skill.c | |
parent | b47c0ac38a3b04b6e5b0001608e726de3e93448f (diff) | |
download | hercules-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.c | 14 |
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: |