diff options
Diffstat (limited to 'src/map/skill.c')
-rw-r--r-- | src/map/skill.c | 82 |
1 files changed, 46 insertions, 36 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 291c2c863..4925922c8 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7249,84 +7249,94 @@ int skill_unit_onplace_timer (struct skill_unit *src, struct block_list *bl, uns break; if (ss != bl && battle_check_target(ss,bl,BCT_PARTY)>0) { // Support Effect only on party, not guild int i = rand()%13; // Positive buff count + type = skill_get_time2(sg->skill_id, sg->skill_lv); //Duration switch (i) { case 0: // Heal 1~9999 HP - { - int heal = rand() %9999+1; - clif_skill_nodamage(ss,bl,AL_HEAL,heal,1); - status_heal(bl,heal,0,0); - } + type = rand() %9999+1; + clif_skill_nodamage(ss,bl,AL_HEAL,type,1); + status_heal(bl,type,0,0); break; case 1: // End all negative status status_change_clear_buffs(bl,2); + if (sd) clif_gospel_info(sd, 0x15); break; - case 2: // Level 10 Blessing - sc_start(bl,SC_BLESSING,100,10,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 2: // 100% resist to status changes. + sc_start(bl,SC_SCRESIST,100,100,type); + if (sd) clif_gospel_info(sd, 0x16); break; - case 3: // Level 10 Increase AGI - sc_start(bl,SC_INCREASEAGI,100,10,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 3: // MaxHP +100% + sc_start(bl,SC_INCMHPRATE,100,100,type); + if (sd) clif_gospel_info(sd, 0x17); break; - case 4: // Enchant weapon with Holy element - sc_start(bl,SC_ASPERSIO,100,1,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 4: // MaxSP +100% + sc_start(bl,SC_INCMSPRATE,100,100,type); + if (sd) clif_gospel_info(sd, 0x18); break; - case 5: // Enchant armor with Holy element - sc_start(bl,SC_BENEDICTIO,100,1,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 5: // All stats +20 + sc_start(bl,SC_INCALLSTATUS,100,20,type); + if (sd) clif_gospel_info(sd, 0x19); break; - case 6: // MaxHP +100% - sc_start(bl,SC_INCMHPRATE,100,100,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 6: // Level 10 Blessing + sc_start(bl,SC_BLESSING,100,10,type); break; - case 7: // MaxSP +100% - sc_start(bl,SC_INCMSPRATE,100,100,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 7: // Level 10 Increase AGI + sc_start(bl,SC_INCREASEAGI,100,10,type); break; - case 8: // All stats +20 - sc_start(bl,SC_INCALLSTATUS,100,20,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 8: // Enchant weapon with Holy element + sc_start(bl,SC_ASPERSIO,100,1,type); + if (sd) clif_gospel_info(sd, 0x1c); break; - case 9: // DEF +25% - sc_start(bl,SC_INCDEFRATE,100,25,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 9: // Enchant armor with Holy element + sc_start(bl,SC_BENEDICTIO,100,1,type); + if (sd) clif_gospel_info(sd, 0x1d); break; - case 10: // ATK +100% - sc_start(bl,SC_INCATKRATE,100,100,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 10: // DEF +25% + sc_start(bl,SC_INCDEFRATE,100,25,type); + if (sd) clif_gospel_info(sd, 0x1e); break; - case 11: // HIT/Flee +50 - sc_start(bl,SC_INCHIT,100,50,skill_get_time2(sg->skill_id, sg->skill_lv)); - sc_start(bl,SC_INCFLEE,100,50,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 11: // ATK +100% + sc_start(bl,SC_INCATKRATE,100,100,type); + if (sd) clif_gospel_info(sd, 0x1f); break; - case 12: // Immunity to all status - sc_start(bl,SC_SCRESIST,100,100,skill_get_time2(sg->skill_id, sg->skill_lv)); + case 12: // HIT/Flee +50 + sc_start(bl,SC_INCHIT,100,50,type); + sc_start(bl,SC_INCFLEE,100,50,type); + if (sd) clif_gospel_info(sd, 0x20); break; } } else if (battle_check_target(&src->bl,bl,BCT_ENEMY)>0) { // Offensive Effect int i = rand()%9; // Negative buff count + type = skill_get_time2(sg->skill_id, sg->skill_lv); switch (i) { case 0: // Deal 1~9999 damage skill_attack(BF_MISC,ss,&src->bl,bl,sg->skill_id,sg->skill_lv,tick,0); break; case 1: // Curse - sc_start(bl,SC_CURSE,100,1,skill_get_time2(sg->skill_id, sg->skill_lv)); + sc_start(bl,SC_CURSE,100,1,type); break; case 2: // Blind - sc_start(bl,SC_BLIND,100,1,skill_get_time2(sg->skill_id, sg->skill_lv)); + sc_start(bl,SC_BLIND,100,1,type); break; case 3: // Poison - sc_start(bl,SC_POISON,100,1,skill_get_time2(sg->skill_id, sg->skill_lv)); + sc_start(bl,SC_POISON,100,1,type); break; case 4: // Level 10 Provoke - sc_start(bl,SC_PROVOKE,100,10,skill_get_time2(sg->skill_id, sg->skill_lv)); + sc_start(bl,SC_PROVOKE,100,10,type); break; case 5: // DEF -100% - sc_start(bl,SC_INCDEFRATE,100,-100,skill_get_time2(sg->skill_id, sg->skill_lv)); + sc_start(bl,SC_INCDEFRATE,100,-100,type); break; case 6: // ATK -100% - sc_start(bl,SC_INCATKRATE,100,-100,skill_get_time2(sg->skill_id, sg->skill_lv)); + sc_start(bl,SC_INCATKRATE,100,-100,type); break; case 7: // Flee -100% - sc_start(bl,SC_INCFLEERATE,100,-100,skill_get_time2(sg->skill_id, sg->skill_lv)); + sc_start(bl,SC_INCFLEERATE,100,-100,type); break; case 8: // Speed/ASPD -25% - sc_start4(bl,SC_GOSPEL,100,1,0,0,BCT_ENEMY,skill_get_time2(sg->skill_id, sg->skill_lv)); + sc_start4(bl,SC_GOSPEL,100,1,0,0,BCT_ENEMY,type); break; } } |