From 045c123351a3ed8596799d57ae79165e76ed771a Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 10 Mar 2006 19:26:56 +0000 Subject: - Added a few dummy times in skill_cast_db for some GS skills. - Autoskills now won't trigger on maps where said skill are not allowed. - Some compilation warning fixes git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5565 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/skill.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/map/skill.c') diff --git a/src/map/skill.c b/src/map/skill.c index d4f55672d..ab45b973d 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -1244,15 +1244,14 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int sc_start(bl,SC_STUN,70,skilllv,skill_get_time2(skillid,skilllv)); break; //Until they're at right position - gs_statuschange- [Vicious] - case GS_BULLSEYE: - if(!(status_get_mode(bl)&MD_BOSS)) - sc_start(bl,SC_COMA,0.1,skilllv,skill_get_time(skillid,skilllv)); + case GS_BULLSEYE: //0.1% coma rate. + status_change_start(bl,SC_COMA,10,skilllv,0,0,0,0,0); break; case GS_CRACKER: - sc_start(bl,SC_STUN,(100 - 10*distance_bl(&sd->bl, bl)),skilllv,skill_get_time(skillid,skilllv)); //Temp stun rate + sc_start(bl,SC_STUN,(100 - 10*distance_bl(src, bl)),skilllv,skill_get_time2(skillid,skilllv)); //Temp stun rate break; case GS_PIERCINGSHOT: - sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time(skillid,skilllv)); + sc_start(bl,SC_BLEEDING,(skilllv*3),skilllv,skill_get_time2(skillid,skilllv)); break; case NJ_HYOUSYOURAKU: sc_start(bl,SC_FREEZE,(10+10*skilllv),skilllv,skill_get_time2(skillid,skilllv)); @@ -1285,7 +1284,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int skill = (sd->autospell[i].id > 0) ? sd->autospell[i].id : -sd->autospell[i].id; //Prevents skill from retriggering themselves. [Skotlex] - if (skill == skillid) + if (skill == skillid || skillnotok(skill, sd)) continue; //skill2 reused to store skilllv. @@ -1413,6 +1412,8 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list * rate = ((sd && !sd->state.arrow_atk) || (status_get_range(src)<=2)) ? dstsd->autospell2[i].rate : dstsd->autospell2[i].rate / 2; + if (skillnotok(skillid, dstsd)) + continue; if (rand()%1000 > rate) continue; if (dstsd->autospell2[i].id < 0) -- cgit v1.2.3-70-g09d2