From c45c5b9728b1320966e13bc069492774c5f43692 Mon Sep 17 00:00:00 2001 From: Emerson Freitas Date: Sat, 2 May 2026 16:27:28 -0300 Subject: [PATCH] Fix waiting loop timing bug - subtract delay when releasing loop buildings Fixes #126 --- GameEngine/Automation.php | 4 +++- GameEngine/Building.php | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/GameEngine/Automation.php b/GameEngine/Automation.php index d2b12a97..358110e6 100644 --- a/GameEngine/Automation.php +++ b/GameEngine/Automation.php @@ -476,12 +476,14 @@ class Automation { // update data that can be done in one swoop instead of using multiple update queries // no special checks for Romans + $loopDelay = ceil(60 / SPEED); foreach ($loopconUpdates as $villageId => $updateCondition) { $database->query( "UPDATE ".TB_PREFIX."bdata SET - loopcon = 0 + loopcon = 0, + timestamp = timestamp - ".$loopDelay." WHERE loopcon = 1 AND master = 0 AND diff --git a/GameEngine/Building.php b/GameEngine/Building.php index 85dbe3cc..585dba12 100755 --- a/GameEngine/Building.php +++ b/GameEngine/Building.php @@ -816,7 +816,8 @@ class Building { if (count($stillbuildingarray) == 1) { if($stillbuildingarray[0]['loopcon'] == 1) { //$q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0,timestamp=".(time()+$stillbuildingarray[0]['timestamp']-$innertimestamp)." WHERE id=".$stillbuildingarray[0]['id']; - $q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0 WHERE id=".(int) $stillbuildingarray[0]['id']; + $loopDelay = ceil(60 / SPEED); + $q = "UPDATE ".TB_PREFIX."bdata SET loopcon=0, timestamp = timestamp - ".$loopDelay." WHERE id=".(int) $stillbuildingarray[0]['id']; $database->query($q); } }