|
@@ -906,7 +906,10 @@ static TIMER_FUNC(hom_hungry){
|
|
|
}
|
|
|
|
|
|
clif_send_homdata(sd,SP_HUNGRY,hd->homunculus.hunger);
|
|
|
- hd->hungry_timer = add_timer(tick+hd->homunculusDB->hungryDelay,hom_hungry,sd->bl.id,0); //simple Fix albator
|
|
|
+
|
|
|
+ int hunger_delay = (battle_config.homunculus_starving_rate > 0 && hd->homunculus.hunger <= battle_config.homunculus_starving_rate) ? battle_config.homunculus_starving_delay : hd->homunculusDB->hungryDelay; // Every 20 seconds if hunger <= 10
|
|
|
+
|
|
|
+ hd->hungry_timer = add_timer(tick+hunger_delay,hom_hungry,sd->bl.id,0); //simple Fix albator
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -1057,8 +1060,11 @@ void hom_alloc(struct map_session_data *sd, struct s_homunculus *hom)
|
|
|
*/
|
|
|
void hom_init_timers(struct homun_data * hd)
|
|
|
{
|
|
|
- if (hd->hungry_timer == INVALID_TIMER)
|
|
|
- hd->hungry_timer = add_timer(gettick()+hd->homunculusDB->hungryDelay,hom_hungry,hd->master->bl.id,0);
|
|
|
+ if (hd->hungry_timer == INVALID_TIMER) {
|
|
|
+ int hunger_delay = (battle_config.homunculus_starving_rate > 0 && hd->homunculus.hunger <= battle_config.homunculus_starving_rate) ? battle_config.homunculus_starving_delay : hd->homunculusDB->hungryDelay; // Every 20 seconds if hunger <= 10
|
|
|
+
|
|
|
+ hd->hungry_timer = add_timer(gettick()+hunger_delay,hom_hungry,hd->master->bl.id,0);
|
|
|
+ }
|
|
|
hd->regen.state.block = 0; //Restore HP/SP block.
|
|
|
hd->masterteleport_timer = INVALID_TIMER;
|
|
|
}
|