From 3455651a40c54646a4819e4c20ed39b947a1db80 Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 16 Mar 2006 02:38:47 +0000 Subject: - Fixed Tarot Card of Fate using time instead of time2 which is the one that actually holds the effect duration. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5623 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/skill.c | 30 +++++++++++++++--------------- src/map/status.c | 14 +++++++------- 2 files changed, 22 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/map/skill.c b/src/map/skill.c index 33bd65255..98010dd6f 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5338,7 +5338,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in if (dstsd) pc_heal(dstsd,0,-dstsd->status.sp); break; case 1: // matk halved - sc_start(bl,SC_INCMATKRATE,100,-50,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_INCMATKRATE,100,-50,skill_get_time2(skillid,skilllv)); break; case 2: // all buffs removed status_change_clear_buffs(bl); @@ -5352,7 +5352,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in } break; case 4: // atk halved - sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time2(skillid,skilllv)); break; case 5: // 2000HP heal, random teleported battle_heal(src, src, 2000, 0, 0); @@ -5368,23 +5368,23 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case 7: // stop freeze or stoned { int sc[] = { SC_STOP, SC_FREEZE, SC_STONE }; - sc_start(bl,sc[rand()%3],100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,sc[rand()%3],100,skilllv,skill_get_time2(skillid,skilllv)); } break; case 8: // curse coma and poison - sc_start(bl,SC_COMA,100,skilllv,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_CURSE,100,skilllv,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_POISON,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_COMA,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_CURSE,100,skilllv,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_POISON,100,skilllv,skill_get_time2(skillid,skilllv)); break; case 9: // chaos - sc_start(bl,SC_CONFUSION,100,skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_CONFUSION,100,skilllv,skill_get_time2(skillid,skilllv)); break; case 10: // 6666 damage, atk matk halved, cursed battle_damage(src, bl, 6666, 0); clif_damage(src,bl,tick,0,0,6666,0,0,0); - sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_INCMATKRATE,100,-50,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_CURSE,skilllv,100,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_INCATKRATE,100,-50,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCMATKRATE,100,-50,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_CURSE,skilllv,100,skill_get_time2(skillid,skilllv)); break; case 11: // 4444 damage battle_damage(src, bl, 4444, 0); @@ -5394,11 +5394,11 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in sc_start(bl,SC_STUN,100,skilllv,5000); break; case 13: // atk,matk,hit,flee,def reduced - sc_start(bl,SC_INCATKRATE,100,-20,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_INCMATKRATE,100,-20,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_INCHITRATE,100,-20,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_INCFLEERATE,100,-20,skill_get_time(skillid,skilllv)); - sc_start(bl,SC_INCDEFRATE,100,-20,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_INCATKRATE,100,-20,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCMATKRATE,100,-20,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCHITRATE,100,-20,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCFLEERATE,100,-20,skill_get_time2(skillid,skilllv)); + sc_start(bl,SC_INCDEFRATE,100,-20,skill_get_time2(skillid,skilllv)); break; default: break; diff --git a/src/map/status.c b/src/map/status.c index 743cde2c7..8d187ffa1 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -3542,6 +3542,13 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val return 0; } + //SC duration reduction. + if(!(flag&(2|4)) && tick) { + tick = status_get_sc_tick(bl, type, tick); + if (tick <= 0) + return 0; + } + race=status_get_race(bl); mode=status_get_mode(bl); elem=status_get_elem_type(bl); @@ -3792,13 +3799,6 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val sc->data[type].timer = -1; } - //SC duration reduction. - if(!(flag&(2|4)) && tick) { - tick = status_get_sc_tick(bl, type, tick); - if (tick < 0) - return 0; - } - switch(type){ /* 異常の種類ごとの?理 */ case SC_PROVOKE: /* プロボック */ calc_flag = 1; -- cgit v1.2.3-70-g09d2