|
@@ -2068,7 +2068,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
if (ud) {
|
|
if (ud) {
|
|
rate = skill_delayfix(src, skill, skill_lv);
|
|
rate = skill_delayfix(src, skill, skill_lv);
|
|
if (DIFF_TICK(ud->canact_tick, tick + rate) < 0){
|
|
if (DIFF_TICK(ud->canact_tick, tick + rate) < 0){
|
|
- ud->canact_tick = max(tick + rate, ud->canact_tick);
|
|
|
|
|
|
+ ud->canact_tick = i64max(tick + rate, ud->canact_tick);
|
|
if ( battle_config.display_status_timers )
|
|
if ( battle_config.display_status_timers )
|
|
clif_status_change(src, EFST_POSTDELAY, 1, rate, 0, 0, 0);
|
|
clif_status_change(src, EFST_POSTDELAY, 1, rate, 0, 0, 0);
|
|
}
|
|
}
|
|
@@ -2161,7 +2161,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
if (ud) {
|
|
if (ud) {
|
|
rate = skill_delayfix(src, skill, autospl_skill_lv);
|
|
rate = skill_delayfix(src, skill, autospl_skill_lv);
|
|
if (DIFF_TICK(ud->canact_tick, tick + rate) < 0){
|
|
if (DIFF_TICK(ud->canact_tick, tick + rate) < 0){
|
|
- ud->canact_tick = max(tick + rate, ud->canact_tick);
|
|
|
|
|
|
+ ud->canact_tick = i64max(tick + rate, ud->canact_tick);
|
|
if ( battle_config.display_status_timers && sd )
|
|
if ( battle_config.display_status_timers && sd )
|
|
clif_status_change(src, EFST_POSTDELAY, 1, rate, 0, 0, 0);
|
|
clif_status_change(src, EFST_POSTDELAY, 1, rate, 0, 0, 0);
|
|
}
|
|
}
|
|
@@ -2493,7 +2493,7 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
|
|
if (ud) {
|
|
if (ud) {
|
|
autospl_rate = skill_delayfix(bl, autospl_skill_id, autospl_skill_lv);
|
|
autospl_rate = skill_delayfix(bl, autospl_skill_id, autospl_skill_lv);
|
|
if (DIFF_TICK(ud->canact_tick, tick + autospl_rate) < 0){
|
|
if (DIFF_TICK(ud->canact_tick, tick + autospl_rate) < 0){
|
|
- ud->canact_tick = max(tick + autospl_rate, ud->canact_tick);
|
|
|
|
|
|
+ ud->canact_tick = i64max(tick + autospl_rate, ud->canact_tick);
|
|
if ( battle_config.display_status_timers && dstsd )
|
|
if ( battle_config.display_status_timers && dstsd )
|
|
clif_status_change(bl, EFST_POSTDELAY, 1, autospl_rate, 0, 0, 0);
|
|
clif_status_change(bl, EFST_POSTDELAY, 1, autospl_rate, 0, 0, 0);
|
|
}
|
|
}
|
|
@@ -4194,7 +4194,7 @@ static TIMER_FUNC(skill_timerskill){
|
|
// Official behaviour is to hit as long as there is a line of sight, regardless of distance
|
|
// Official behaviour is to hit as long as there is a line of sight, regardless of distance
|
|
if (skl->type > 0 && !status_isdead(target) && path_search_long(NULL,src->m,src->x,src->y,target->x,target->y,CELL_CHKWALL)) {
|
|
if (skl->type > 0 && !status_isdead(target) && path_search_long(NULL,src->m,src->x,src->y,target->x,target->y,CELL_CHKWALL)) {
|
|
// Apply canact delay here to prevent hacks (unlimited casting)
|
|
// Apply canact delay here to prevent hacks (unlimited casting)
|
|
- ud->canact_tick = max(tick + status_get_amotion(src), ud->canact_tick);
|
|
|
|
|
|
+ ud->canact_tick = i64max(tick + status_get_amotion(src), ud->canact_tick);
|
|
skill_attack(BF_MAGIC, src, src, target, skl->skill_id, skl->skill_lv, tick, skl->flag);
|
|
skill_attack(BF_MAGIC, src, src, target, skl->skill_id, skl->skill_lv, tick, skl->flag);
|
|
}
|
|
}
|
|
if (unit && !status_isdead(target) && !status_isdead(src)) {
|
|
if (unit && !status_isdead(target) && !status_isdead(src)) {
|
|
@@ -5659,7 +5659,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- sd->ud.canact_tick = max(tick + skill_delayfix(src, pres_skill_id, pres_skill_lv), sd->ud.canact_tick);
|
|
|
|
|
|
+ sd->ud.canact_tick = i64max(tick + skill_delayfix(src, pres_skill_id, pres_skill_lv), sd->ud.canact_tick);
|
|
clif_status_change(src, EFST_POSTDELAY, 1, skill_delayfix(src, pres_skill_id, pres_skill_lv), 0, 0, 0);
|
|
clif_status_change(src, EFST_POSTDELAY, 1, skill_delayfix(src, pres_skill_id, pres_skill_lv), 0, 0, 0);
|
|
|
|
|
|
cooldown = pc_get_skillcooldown(sd,pres_skill_id, pres_skill_lv);
|
|
cooldown = pc_get_skillcooldown(sd,pres_skill_id, pres_skill_lv);
|
|
@@ -11399,7 +11399,7 @@ TIMER_FUNC(skill_castend_id){
|
|
unit_stop_walking(src,1);
|
|
unit_stop_walking(src,1);
|
|
|
|
|
|
if (!sd || sd->skillitem != ud->skill_id || skill_get_delay(ud->skill_id, ud->skill_lv))
|
|
if (!sd || sd->skillitem != ud->skill_id || skill_get_delay(ud->skill_id, ud->skill_lv))
|
|
- ud->canact_tick = max(tick + skill_delayfix(src, ud->skill_id, ud->skill_lv), ud->canact_tick - SECURITY_CASTTIME);
|
|
|
|
|
|
+ ud->canact_tick = i64max(tick + skill_delayfix(src, ud->skill_id, ud->skill_lv), ud->canact_tick - SECURITY_CASTTIME);
|
|
if (sd) { //Cooldown application
|
|
if (sd) { //Cooldown application
|
|
int cooldown = pc_get_skillcooldown(sd,ud->skill_id, ud->skill_lv); // Increases/Decreases cooldown of a skill by item/card bonuses.
|
|
int cooldown = pc_get_skillcooldown(sd,ud->skill_id, ud->skill_lv); // Increases/Decreases cooldown of a skill by item/card bonuses.
|
|
if(cooldown) skill_blockpc_start(sd, ud->skill_id, cooldown);
|
|
if(cooldown) skill_blockpc_start(sd, ud->skill_id, cooldown);
|
|
@@ -11625,7 +11625,7 @@ TIMER_FUNC(skill_castend_pos){
|
|
unit_stop_walking(src,1);
|
|
unit_stop_walking(src,1);
|
|
|
|
|
|
if (!sd || sd->skillitem != ud->skill_id || skill_get_delay(ud->skill_id, ud->skill_lv))
|
|
if (!sd || sd->skillitem != ud->skill_id || skill_get_delay(ud->skill_id, ud->skill_lv))
|
|
- ud->canact_tick = max(tick + skill_delayfix(src, ud->skill_id, ud->skill_lv), ud->canact_tick - SECURITY_CASTTIME);
|
|
|
|
|
|
+ ud->canact_tick = i64max(tick + skill_delayfix(src, ud->skill_id, ud->skill_lv), ud->canact_tick - SECURITY_CASTTIME);
|
|
if (sd) { //Cooldown application
|
|
if (sd) { //Cooldown application
|
|
int cooldown = pc_get_skillcooldown(sd,ud->skill_id, ud->skill_lv);
|
|
int cooldown = pc_get_skillcooldown(sd,ud->skill_id, ud->skill_lv);
|
|
if(cooldown) skill_blockpc_start(sd, ud->skill_id, cooldown);
|
|
if(cooldown) skill_blockpc_start(sd, ud->skill_id, cooldown);
|
|
@@ -13413,7 +13413,7 @@ static int skill_unit_onplace(struct skill_unit *unit, struct block_list *bl, t_
|
|
//Overwrite status change with new duration
|
|
//Overwrite status change with new duration
|
|
if ((td = get_timer(sc->data[type]->timer))!=NULL)
|
|
if ((td = get_timer(sc->data[type]->timer))!=NULL)
|
|
status_change_start(ss, bl, type, 10000, sc->data[type]->val1 + 1, sc->data[type]->val2, sc->data[type]->val3, sc->data[type]->val4,
|
|
status_change_start(ss, bl, type, 10000, sc->data[type]->val1 + 1, sc->data[type]->val2, sc->data[type]->val3, sc->data[type]->val4,
|
|
- max(DIFF_TICK(td->tick, tick), sec), SCSTART_NORATEDEF);
|
|
|
|
|
|
+ i64max(DIFF_TICK(td->tick, tick), sec), SCSTART_NORATEDEF);
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
if (status_change_start(ss, bl, type, 10000, 1, sg->group_id, 0, 0, sec, SCSTART_NORATEDEF)) {
|
|
if (status_change_start(ss, bl, type, 10000, 1, sg->group_id, 0, 0, sec, SCSTART_NORATEDEF)) {
|