summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt6
-rw-r--r--conf-tmpl/battle/skill.conf2
-rw-r--r--src/map/pc.c2
-rw-r--r--src/map/skill.c21
-rw-r--r--src/map/status.c3
5 files changed, 21 insertions, 13 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 33e40266d..2ed44f461 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,12 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EVERYTHING ELSE
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
+2006/03/10
+ * Fixed a memory overwrite crash on pc_readdb, thanks to foobar for the
+ fix. [Skotlex]
+ * Fixed only the first TK stance triggering when you have multiple of them
+ active. [Skotlex]
+ * Default of skill_attack_enable changed to yes. [Skotlex]
2006/03/09
* Fixed the dancer/bard soul-linked skills toggling on/off with each call
to pc_calc_status. [Skotlex]
diff --git a/conf-tmpl/battle/skill.conf b/conf-tmpl/battle/skill.conf
index 42b5abf4a..89489708d 100644
--- a/conf-tmpl/battle/skill.conf
+++ b/conf-tmpl/battle/skill.conf
@@ -45,7 +45,7 @@ min_skill_delay_limit: 100
castrate_dex_scale: 150
// Will normal attacks be able to ignore the delay after skills? (Note 1)
-skill_delay_attack_enable: no
+skill_delay_attack_enable: yes
// Range added to player skills after their cast time finishes.
// Decides how far away the target can walk away after the skill began casting before the skill fails.
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;
}