summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/battle.c4
-rw-r--r--src/map/skill.c2
-rw-r--r--src/map/status.c1
3 files changed, 5 insertions, 2 deletions
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