diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-08-30 04:39:59 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-08-30 04:39:59 +0000 |
commit | 8ec06e1832af8a2f68bd8d79b7ade09d861a2dea (patch) | |
tree | 825a318c8d4496eafa5af8edb785700fee0babbc /src/map/skill.c | |
parent | d35ff1c213b7d77cc45c037e950a180c08279cd6 (diff) | |
download | hercules-8ec06e1832af8a2f68bd8d79b7ade09d861a2dea.tar.gz hercules-8ec06e1832af8a2f68bd8d79b7ade09d861a2dea.tar.bz2 hercules-8ec06e1832af8a2f68bd8d79b7ade09d861a2dea.tar.xz hercules-8ec06e1832af8a2f68bd8d79b7ade09d861a2dea.zip |
- Cleaned up a bit the homunculus evolution code, and fixed homevolution allowing the homunc to 're-evolve' even though it was already evolved.
- Optimized a bit the skillheal code in regards to Apple of Idun and Sanctuary
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11090 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 339525d93..daf55d9be 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -6702,6 +6702,8 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid, case NPC_EVILLAND: val1=(skilllv+3)*2; val2=(skilllv>6)?(skillid == PR_SANCTUARY?777:666):skilllv*100; + if (sd && (i = pc_skillheal_bonus(sd, skillid))) + val2 += val2 * i / 100; break; case WZ_FIREPILLAR: @@ -6807,6 +6809,8 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid, if(sd){ val1 += pc_checkskill(sd,BA_MUSICALLESSON); val2 += 5*pc_checkskill(sd,BA_MUSICALLESSON); + if ((i = pc_skillheal_bonus(sd, skillid))) + val2 += val2 * i / 100; } break; case DC_SERVICEFORYOU: @@ -7269,9 +7273,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns int heal = sg->val2; if (tstatus->hp >= tstatus->max_hp) break; - if (sd && (type = pc_skillheal_bonus(sd, sg->skill_id))) - heal += heal * type / 100; - if (tsc && tsc->count && tsc->data[SC_CRITICALWOUND].timer!=-1) + if (tsc && tsc->data[SC_CRITICALWOUND].timer!=-1) heal -= heal * tsc->data[SC_CRITICALWOUND].val2 / 100; if (status_isimmune(bl)) heal = 0; /* 黄金蟲カード(ヒール量0) */ @@ -7449,9 +7451,7 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns if (sg->src_id == bl->id) break; heal = sg->val2; - if (sd && (type = pc_skillheal_bonus(sd, sg->skill_id))) - heal += heal * type / 100; - if(tsc && tsc->count && tsc->data[SC_CRITICALWOUND].timer!=-1) + if(tsc && tsc->data[SC_CRITICALWOUND].timer!=-1) heal -= heal * tsc->data[SC_CRITICALWOUND].val2 / 100; clif_skill_nodamage(&src->bl, bl, AL_HEAL, heal, 1); status_heal(bl, heal, 0, 0); |