summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/battle.c4
-rw-r--r--src/map/skill.c2
-rw-r--r--src/map/status.c1
4 files changed, 8 insertions, 2 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index e12d0b12a..b09df77a5 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -4,6 +4,9 @@ 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.
2006/07/18
+ * Fixed a crash when trying to extend TK's infinite combo feature. [Skotlex]
+ * Corrected Poison React to counter regardless of distance, and to use the
+ skill's 50+5*lv% counter chance (instead of 100%). [Skotlex]
* Corrected Venom splasher's splash damage [Skotlex]
* You now can't move/attack/use-skills when using Cloaking of a level less
than 3 [Skotlex]
diff --git a/src/map/battle.c b/src/map/battle.c
index dee87da15..21e23ee0a 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -2944,7 +2944,9 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
if (tsc) {
if (tsc->data[SC_POISONREACT].timer != -1 &&
- check_distance_bl(src, target, tstatus->rhw.range+1) &&
+ (rand()%100 < tsc->data[SC_POISONREACT].val3
+ || sstatus->def_ele == ELE_POISON) &&
+// check_distance_bl(src, target, tstatus->rhw.range+1) && Doesn't checks range! o.O;
status_check_skilluse(target, src, TF_POISON, 0)
) { //Poison React
if (sstatus->def_ele == ELE_POISON) {
diff --git a/src/map/skill.c b/src/map/skill.c
index d1f2a77fb..18715653e 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1910,7 +1910,7 @@ int skill_attack (int attack_type, struct block_list* src, struct block_list *ds
sd->skilllv_old = skilllv;
if (pc_famerank(sd->char_id,MAPID_TAEKWON))
{ //Extend combo time.
- delete_timer(sc->data[SC_COMBO].timer, status_change_timer);
+ delete_timer(sd->sc.data[SC_COMBO].timer, status_change_timer);
sd->sc.data[SC_COMBO].timer = add_timer(
tick+sd->sc.data[SC_COMBO].val4,
status_change_timer, src->id, SC_COMBO);
diff --git a/src/map/status.c b/src/map/status.c
index c37b0c084..fe3f1c05e 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -4669,6 +4669,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
break;
case SC_POISONREACT:
val2=val1/2 + val1%2; // Number of counters [Celest]
+ val3=50 + 5*val1; //Chance to counter. [Skotlex]
break;
case SC_MAGICROD:
val2 = val1*20; //SP gained