diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/status.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/map/status.c b/src/map/status.c index bc30ada23..c46d16a01 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4497,6 +4497,10 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val if (!(rand()%10000 < rate))
return 0;
+
+ //Need to store resistance so the petrifying time can also be reduced. [Skotlex]
+ if (type == SC_STONE)
+ val4 = def;
}
undead_flag=battle_check_undead(status->race,status->def_ele);
@@ -4993,6 +4997,11 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val val3 = tick/1000; //Petrified HP-damage iterations.
if(val3 < 1) val3 = 1;
tick = 5000; //Petrifying time.
+ if (val4)
+ { //Apply duration resist to petrifying time as well.
+ tick -= tick*val4/10000;
+ val4 = 0; //Is later used as a tick-damage counter.
+ }
calc_flag = 0; //Actual status changes take effect on petrified state.
break;
|