From 86354787809a85d57593dc6c1940262752d5b846 Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 10 Mar 2006 13:35:11 +0000 Subject: - Fixed a memory overwrite crash on pc_readdb, thanks to foobar. - Fixed only the first TK stance triggering when you have multiple of them active. - Default of skill_attack_enable changed to yes. - Fixed a compiler error in some ninja skill that only triggers on windows or c++ compilers. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5557 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/pc.c | 2 +- src/map/skill.c | 21 ++++++++++++--------- src/map/status.c | 3 +-- 3 files changed, 14 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/map/pc.c b/src/map/pc.c index 753fa8455..af5e362e0 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -8026,7 +8026,7 @@ int pc_readdb(void) int jobs[MAX_PC_CLASS], job_count, job; int type; unsigned int max; - char *split[3]; + char *split[4]; if(line[0]=='/' && line[1]=='/') continue; if (pc_split_str(line,split,4) < 4) diff --git a/src/map/skill.c b/src/map/skill.c index 1524831a5..9357ce68e 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -921,18 +921,21 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int clif_skill_fail(sd,skillid,0,0); } // Chance to trigger Taekwon kicks [Dralnu] - if(sd->sc.count) { - if(sd->sc.data[SC_READYSTORM].timer != -1) + if(sd->sc.count && sd->sc.data[SC_COMBO].timer == -1) { + if(sd->sc.data[SC_READYSTORM].timer != -1 && sc_start4(src,SC_COMBO, 15, TK_STORMKICK,0,0,0, - (2000 - 4 * status_get_agi(src) - 2 * status_get_dex(src))); - else if(sd->sc.data[SC_READYDOWN].timer != -1) + (2000 - 4 * status_get_agi(src) - 2 * status_get_dex(src)))) + ; //Stance triggered + else if(sd->sc.data[SC_READYDOWN].timer != -1 && sc_start4(src,SC_COMBO, 15, TK_DOWNKICK,0,0,0, - (2000 - 4 * status_get_agi(src) - 2 * status_get_dex(src))); - else if(sd->sc.data[SC_READYTURN].timer != -1 && sd->sc.data[SC_COMBO].timer == -1) + (2000 - 4 * status_get_agi(src) - 2 * status_get_dex(src)))) + ; //Stance triggered + else if(sd->sc.data[SC_READYTURN].timer != -1 && sc_start4(src,SC_COMBO, 15, TK_TURNKICK,0,0,0, - (2000 - 4 * status_get_agi(src) - 2 * status_get_dex(src))); - else if(sd->sc.data[SC_READYCOUNTER].timer != -1 && sd->sc.data[SC_COMBO].timer == -1) //additional chance from SG_FRIEND [Komurka] - { + (2000 - 4 * status_get_agi(src) - 2 * status_get_dex(src)))) + ; //Stance triggered + else if(sd->sc.data[SC_READYCOUNTER].timer != -1) + { //additional chance from SG_FRIEND [Komurka] rate = 20; if (sd->sc.data[SC_SKILLRATE_UP].timer != -1 && sd->sc.data[SC_SKILLRATE_UP].val1 == TK_COUNTER) { rate += rate*sd->sc.data[SC_SKILLRATE_UP].val2/100; diff --git a/src/map/status.c b/src/map/status.c index c37a1943a..1f9ea7a7c 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1721,8 +1721,7 @@ int status_calc_agi(struct block_list *bl, int agi) agi -= 2 + sc->data[SC_DECREASEAGI].val1; if(sc->data[SC_QUAGMIRE].timer!=-1) agi -= sc->data[SC_QUAGMIRE].val1*(bl->type==BL_PC?5:10); - int class = status_get_class(bl); - if(sc->data[SC_SUITON].timer!=-1 || class != JOB_NINJA) + if(sc->data[SC_SUITON].timer!=-1 || status_get_class(bl) != JOB_NINJA) agi -= (((sc->data[SC_SUITON].val1 - 1) / 3) + 1) * 3; } -- cgit v1.2.3-70-g09d2