From 43cbd60f7806ad2e057b617d054f26f8f5a1b7ca Mon Sep 17 00:00:00 2001 From: iopietro Date: Sun, 13 May 2018 00:21:07 +0200 Subject: [PATCH] General fixes +Added an image in: Natars/Artifacts spawn message, WW villages spawn message and WW building plans spawn message +Fixed a wrong time calculation when removing a building from the construction queue, if there was present a master builder order --- GameEngine/Automation.php | 39 ++--- GameEngine/Building.php | 91 +++++------ GameEngine/Database.php | 152 ++++++++---------- GameEngine/Lang/en.php | 29 ++-- Templates/Build/27.tpl | 20 ++- Templates/Build/avaliable/availupgrade.tpl | 9 +- Templates/Build/upgrade.tpl | 24 ++- Templates/Build/wwupgrade.tpl | 13 +- Templates/text.tpl | 4 +- .../img/artefact/ArtifactsAnnouncement.gif | Bin 0 -> 27478 bytes .../img/artefact/WWVillagesAnnouncement.gif | Bin 0 -> 29672 bytes gpack/travian_default/lang/en/compact.css | 24 +++ 12 files changed, 206 insertions(+), 199 deletions(-) create mode 100644 gpack/travian_default/img/artefact/ArtifactsAnnouncement.gif create mode 100644 gpack/travian_default/img/artefact/WWVillagesAnnouncement.gif diff --git a/GameEngine/Automation.php b/GameEngine/Automation.php index d29c4d68..2727a0bb 100755 --- a/GameEngine/Automation.php +++ b/GameEngine/Automation.php @@ -3176,7 +3176,7 @@ class Automation { private function spawnWWVillages(){ global $database, $autoprefix; - + if(file_exists($autoprefix."GameEngine/Prevention/spawnWWVillages.txt")) { unlink($autoprefix."GameEngine/Prevention/spawnWWVillages.txt"); } @@ -3217,7 +3217,7 @@ class Automation { $this->recountPop($wid); } - //Write the system message + //Write the system message $database->displaySystemMessage(WWVILLAGEMSG); if(file_exists("GameEngine/Prevention/spawnWWVillages.txt")) { @@ -4064,10 +4064,11 @@ class Automation { private function MasterBuilder() { global $database; + $q = "SELECT id, wid, type, level, field, timestamp FROM ".TB_PREFIX."bdata WHERE master = 1"; $array = $database->query_return($q); - foreach($array as $master) { + foreach($array as $master) { $owner = $database->getVillageField($master['wid'], 'owner'); $tribe = $database->getUserField($owner, 'tribe', 0); $villwood = $database->getVillageField($master['wid'], 'wood'); @@ -4085,21 +4086,17 @@ class Automation { if($tribe == 1){ if($master['field'] < 19){ - $dorf1Buildings = $database->getDorf1Building($master['wid']); - $bdata = count($dorf1Buildings); + $bdata = $database->getDorf1Building($master['wid']); + $bdataTotal = count($bdata); $bbdata = count($database->getDorf2Building($master['wid'])); - $bdata1 = $dorf1Buildings; }else{ - $dorf2Buildings = $database->getDorf2Building($master['wid']); - $bdata = count($database->getDorf2Building($master['wid'])); + $bdata = $database->getDorf2Building($master['wid']); + $bdataTotal = count($bdata); $bbdata = count($database->getDorf1Building($master['wid'])); - $bdata1 = $database->getDorf2Building($master['wid']); } - }else{ - $dorf1Buildings = $database->getDorf1Building($master['wid']); - $bdata = $bbdata = count($dorf1Buildings) + count($database->getDorf2Building($master['wid'])); - $bdata1 = $dorf1Buildings; + $bdata = array_merge($database->getDorf1Building($master['wid']), $database->getDorf2Building($master['wid'])); + $bdataTotal = $bbdata = count($bdata); } if($database->getUserField($owner, 'plus', 0) > time() || $ww > 0){ @@ -4108,19 +4105,17 @@ class Automation { } else $inbuild = 1; - $usergold = $database->getUserField($owner,'gold',0); + $usergold = $database->getUserField($owner, 'gold', 0); - if($bdata < $inbuild && $buildwood < $villwood && $buildclay < $villclay && $buildiron < $villiron && $buildcrop < $villcrop && $usergold > 0){ - $time = $master['timestamp']+time(); + if($bdataTotal < $inbuild && $buildwood <= $villwood && $buildclay <= $villclay && $buildiron <= $villiron && $buildcrop <= $villcrop && $usergold > 0){ + $time = $master['timestamp'] + time(); - if(!empty($bdata1)){ - foreach($bdata1 as $master1) { - $time += ($master1['timestamp'] - time()); - } + if(!empty($bdata)){ + foreach($bdata as $masterLoop) $time += ($masterLoop['timestamp'] - time()); } - if($bdata == 0) $database->updateBuildingWithMaster($master['id'], $time, 0); - else $database->updateBuildingWithMaster($master['id'], $time, 1); + if($bdataTotal == 0) $database->updateBuildingWithMaster($master['id'], $time, 0); + else $database->updateBuildingWithMaster($master['id'], $time, 1); $database->updateUserField($owner, 'gold', --$usergold, 1); $database->modifyResource($master['wid'], $buildwood, $buildclay, $buildiron, $buildcrop, 0); diff --git a/GameEngine/Building.php b/GameEngine/Building.php index dca55e2e..99e1ec16 100755 --- a/GameEngine/Building.php +++ b/GameEngine/Building.php @@ -186,17 +186,18 @@ class Building { $this->canProcess($village->resarray['f'.$get['a'].'t'],$get['a']); $this->upgradeBuilding($get['a']); } - }elseif(isset($get['master']) && isset($get['id']) && isset($get['time']) && $session->gold >= 1 && $session->goldclub && $village->master == 0 && (isset($get['c']) && $get['c']== $session->checker)) { - $this->canProcess($get['master'],$get['id']); + }elseif(isset($get['master']) && isset($get['id']) && $session->gold >= 1 && $session->goldclub && $village->master == 0 && (isset($get['c']) && $get['c']== $session->checker)) { + $this->canProcess($get['master'], $get['id']); $session->changeChecker(); $level = $database->getResourceLevel($village->wid); - $database->addBuilding( $village->wid, $get['id'], $get['master'], 1, $get['time'], 1, $level['f' . $get['id']] + 1 + count($database->getBuildingByField($village->wid, $get['id']))); + $time = $this->resourceRequired($get['id'], $get['master'])['time']; + $database->addBuilding($village->wid, $get['id'], $get['master'], 1, $time, 1, $level['f'.$get['id']] + 1 + count($database->getBuildingByField($village->wid, $get['id']))); $this->redirect($get['id']); }elseif(isset($get['a']) && $get['c'] == $session->checker && isset($get['id'])) { if($get['id'] > 18 && ($get['id'] < 41 || $get['id'] == 99)){ $session->changeChecker(); - $this->canProcess($get['a'],$get['id']); - $this->constructBuilding($get['id'],$get['a']); + $this->canProcess($get['a'], $get['id']); + $this->constructBuilding($get['id'], $get['a']); } } elseif(isset($get['buildingFinish']) && $session->plus && intval($session->gold) >= 2 && $session->sit == 0) $this->finishAll(); @@ -450,7 +451,7 @@ class Building { $time = time() + round($dataarray[$village->resarray['f'.$id]-1]['time'] / 4); $loop = 0; if($this->inner == 1 || $this->basic == 1) { - if(($session->plus or $village->resarray['f'.$id.'t']==40)&& $this->plus == 0) { + if(($session->plus || $village->resarray['f'.$id.'t']==40)&& $this->plus == 0) { $loop = 1; } } @@ -780,9 +781,9 @@ class Building { foreach ($this->buildArray as $jobs) { if ($jobs['wid']==$village->wid) { $wwvillage = $database->getResourceLevel($jobs['wid']); - if ($wwvillage['f99t']!=40) { + if ($wwvillage['f99t'] != 40) { $level = $jobs['level']; - if ($jobs['type'] != 25 AND $jobs['type'] != 26 AND $jobs['type'] != 40) { + if ($jobs['type'] != 25 && $jobs['type'] != 26 && $jobs['type'] != 40) { $resource = $this->resourceRequired($jobs['field'],$jobs['type']); // master builder involved if ($jobs['master'] != 0) { @@ -830,7 +831,7 @@ class Building { $q = "UPDATE ".TB_PREFIX."fdata set f".$jobs['field']." = ".$jobs['level'].", f".$jobs['field']."t = ".$jobs['type']." where vref = ".$jobs['wid']; } - if (!isset($exclude_master) && $database->query($q) && ($enought_res == 1 or $jobs['master'] == 0)) { + if (!isset($exclude_master) && $database->query($q) && ($enought_res == 1 || $jobs['master'] == 0)) { $database->modifyPop($jobs['wid'],$resource['pop'],0); $database->addCP($jobs['wid'],$resource['cp']); $deletIDs[] = (int) $jobs['id']; @@ -887,56 +888,52 @@ class Building { } } - public function resourceRequired($id,$tid,$plus=1) { + public function resourceRequired($id, $tid, $plus = 1) { $name = "bid".$tid; - global $$name,$village,$bid15; + global $$name, $village, $bid15; + $dataarray = $$name; - $wood = $dataarray[$village->resarray['f'.$id]+$plus]['wood']; - $clay = $dataarray[$village->resarray['f'.$id]+$plus]['clay']; - $iron = $dataarray[$village->resarray['f'.$id]+$plus]['iron']; - $crop = $dataarray[$village->resarray['f'.$id]+$plus]['crop']; - $pop = $dataarray[$village->resarray['f'.$id]+$plus]['pop']; - if ($tid == 15) { - if($this->getTypeLevel(15) == 0) { - $time = round($dataarray[$village->resarray['f'.$id]+$plus]['time']/ SPEED *5); - } - else { - $time = round($dataarray[$village->resarray['f'.$id]+$plus]['time'] / SPEED); + $wood = $dataarray[$village->resarray['f'.$id] + $plus]['wood']; + $clay = $dataarray[$village->resarray['f'.$id] + $plus]['clay']; + $iron = $dataarray[$village->resarray['f'.$id] + $plus]['iron']; + $crop = $dataarray[$village->resarray['f'.$id] + $plus]['crop']; + $pop = $dataarray[$village->resarray['f'.$id] + $plus]['pop']; + + if($tid == 15){ + if($this->getTypeLevel(15) == 0) $time = round($dataarray[$village->resarray['f'.$id] + $plus]['time'] / SPEED * 5); + else $time = round($dataarray[$village->resarray['f'.$id] + $plus]['time'] / SPEED); + }else{ + if($this->getTypeLevel(15) > 0) { + $time = round($dataarray[$village->resarray['f'.$id] + $plus]['time'] * ($bid15[$this->getTypeLevel(15)]['attri'] /100) / SPEED); } + else $time = round($dataarray[$village->resarray['f'.$id] + $plus]['time'] * 5 / SPEED); } - else { - if($this->getTypeLevel(15) != 0) { - $time = round($dataarray[$village->resarray['f'.$id]+$plus]['time'] * ($bid15[$this->getTypeLevel(15)]['attri']/100) / SPEED); - } - else { - $time = round($dataarray[$village->resarray['f'.$id]+$plus]['time']*5 / SPEED); - } - } - $cp = $dataarray[$village->resarray['f'.$id]+$plus]['cp']; - return array("wood"=>$wood,"clay"=>$clay,"iron"=>$iron,"crop"=>$crop,"pop"=>$pop,"time"=>$time,"cp"=>$cp); + + $cp = $dataarray[$village->resarray['f'.$id] + $plus]['cp']; + return ["wood" => $wood, "clay" => $clay, "iron" => $iron, "crop" => $crop, "pop" => $pop, "time" => $time,"cp" => $cp]; } public function getTypeField($type) { global $village; - for($i=19;$i<=40;$i++) { - if($village->resarray['f'.$i.'t'] == $type) { - return $i; - } + + for($i = 19; $i <= 40; $i++) { + if($village->resarray['f'.$i.'t'] == $type) return $i; } } - public function calculateAvaliable($id,$tid,$plus=1) { - global $village,$generator; - $uprequire = $this->resourceRequired($id,$tid,$plus); - $rwood = $uprequire['wood']-$village->awood; - $rclay = $uprequire['clay']-$village->aclay; - $rcrop = $uprequire['crop']-$village->acrop; - $riron = $uprequire['iron']-$village->airon; + public function calculateAvaliable($id, $tid, $plus = 1) { + global $village, $generator; + + $uprequire = $this->resourceRequired($id, $tid, $plus); + $rwood = $uprequire['wood'] - $village->awood; + $rclay = $uprequire['clay'] - $village->aclay; + $rcrop = $uprequire['crop'] - $village->acrop; + $riron = $uprequire['iron'] - $village->airon; $rwtime = $rwood / $village->getProd("wood") * 3600; - $rcltime = $rclay / $village->getProd("clay")* 3600; - $rctime = $rcrop / $village->getProd("crop")* 3600; - $ritime = $riron / $village->getProd("iron")* 3600; - $reqtime = max($rwtime,$rctime,$rcltime,$ritime); + $rcltime = $rclay / $village->getProd("clay") * 3600; + $rctime = $rcrop / $village->getProd("crop") * 3600; + $ritime = $riron / $village->getProd("iron") * 3600; + $reqtime = max($rwtime, $rctime, $rcltime, $ritime); $reqtime += time(); return $generator->procMtime($reqtime); } diff --git a/GameEngine/Database.php b/GameEngine/Database.php index 5cd941df..1e977d0b 100755 --- a/GameEngine/Database.php +++ b/GameEngine/Database.php @@ -4380,14 +4380,14 @@ References: User ID/Message ID, Mode $x = "UPDATE " . TB_PREFIX . "fdata SET f" . $field . "t=" . $type . " WHERE vref=" . $wid; mysqli_query($this->dblink,$x); - $q = "INSERT into " . TB_PREFIX . "bdata values (0,$wid,$field,$type,$loop,$time,$master,$level)"; + $q = "INSERT into " . TB_PREFIX . "bdata values (0, $wid, $field, $type, $loop, $time, $master, $level)"; return mysqli_query($this->dblink,$q); } function removeBuilding($d) { list($d) = $this->escape_input((int) $d); - global $building, $village; + $jobLoopconID = -1; $SameBuildCount = 0; $jobs = $building->buildArray; @@ -4395,7 +4395,7 @@ References: User ID/Message ID, Mode if($jobs[$i]['id'] == $d) { $jobDeleted = $i; } - if($jobs[$i]['loopcon'] == 1) { + if($jobs[$i]['loopcon'] == 1 && $jobs[$i]['master'] == 0) { $jobLoopconID = $i; } if($jobs[$i]['master'] == 1) { @@ -4433,77 +4433,73 @@ References: User ID/Message ID, Mode if(count($jobs) > 3 && ($jobs[1]['field'] == $jobs[2]['field'] && $jobs[2]['field'] == $jobs[3]['field'])) { $SameBuildCount = 7; } - if(isset($jobMaster) && isset($level) && $level-1 <= 0){ + if(isset($jobMaster) && isset($level) && $level - 1 <= 0){ $SameBuildCount = 0; } - if($SameBuildCount > 0) { - if($SameBuildCount > 3){ - if($SameBuildCount == 4 or $SameBuildCount == 5){ - if($jobDeleted == 0){ - $uprequire = $building->resourceRequired($jobs[1]['field'],$jobs[1]['type'],1); - $time = $uprequire['time']; - $timestamp = $time+time(); - $q = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,level=level-1,timestamp=".$timestamp." WHERE id=".(int) $jobs[1]['id']; - mysqli_query($this->dblink,$q); - } - }else if($SameBuildCount == 6){ - if($jobDeleted == 0){ - $uprequire = $building->resourceRequired($jobs[2]['field'],$jobs[2]['type'],1); - $time = $uprequire['time']; - $timestamp = $time+time(); - $q = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,level=level-1,timestamp=".$timestamp." WHERE id=".(int) $jobs[2]['id']; - mysqli_query($this->dblink,$q); - } - }else if($SameBuildCount == 7){ - if($jobDeleted == 1){ - $uprequire = $building->resourceRequired($jobs[2]['field'],$jobs[2]['type'],1); - $time = $uprequire['time']; - $timestamp = $time+time(); - $q = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,level=level-1,timestamp=".$timestamp." WHERE id=".(int) $jobs[2]['id']; - mysqli_query($this->dblink,$q); - } - } - if($SameBuildCount < 8){ - $uprequire1 = $building->resourceRequired($jobs[$jobMaster]['field'],$jobs[$jobMaster]['type'],2); - $time1 = $uprequire1['time']; - $timestamp1 = $time1; - $q1 = "UPDATE " . TB_PREFIX . "bdata SET level=level-1,timestamp=".$timestamp1." WHERE id=".(int) $jobs[$jobMaster]['id']; - mysqli_query($this->dblink,$q1); - }else{ - $uprequire1 = $building->resourceRequired($jobs[$jobMaster]['field'],$jobs[$jobMaster]['type'],1); - $time1 = $uprequire1['time']; - $timestamp1 = $time1; - $q1 = "UPDATE " . TB_PREFIX . "bdata SET level=level-1,timestamp=".$timestamp1." WHERE id=".(int) $jobs[$jobMaster]['id']; - mysqli_query($this->dblink,$q1); - } - }else if($d == $jobs[floor($SameBuildCount / 3)]['id'] || $d == $jobs[floor($SameBuildCount / 2) + 1]['id']) { - $q = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,level=level-1,timestamp=" . (int) $jobs[floor($SameBuildCount / 3)]['timestamp'] . " WHERE master = 0 AND id > ".$d." and (ID=" . (int) $jobs[floor($SameBuildCount / 3)]['id'] . " OR ID=" . (int) $jobs[floor($SameBuildCount / 2) + 1]['id'] . ")"; - mysqli_query($this->dblink,$q); - } - } else { - if($jobs[$jobDeleted]['field'] >= 19) { - $x = "SELECT f" . $jobs[$jobDeleted]['field'] . " FROM " . TB_PREFIX . "fdata WHERE vref=" . (int) $jobs[$jobDeleted]['wid']; - $result = mysqli_query($this->dblink,$x); - $fieldlevel = mysqli_fetch_row($result); - if($fieldlevel[0] == 0) { - if ($village->natar==1 && $jobs[$jobDeleted]['field']==99) { //fix by ronix - }else{ - $x = "UPDATE " . TB_PREFIX . "fdata SET f" . $jobs[$jobDeleted]['field'] . "t=0 WHERE vref=" . (int) $jobs[$jobDeleted]['wid']; - mysqli_query($this->dblink,$x); + if ($SameBuildCount > 0) { + if ($SameBuildCount > 3) { + if ($SameBuildCount == 4 || $SameBuildCount == 5) { + if ($jobDeleted == 0) { + $uprequire = $building->resourceRequired($jobs[1]['field'], $jobs[1]['type'], 1); + $time = $uprequire['time']; + $timestamp = $time + time(); + $q = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,level=level-1,timestamp=" . $timestamp . " WHERE id=" . (int) $jobs[1]['id']; + mysqli_query($this->dblink, $q); + } + } else if ($SameBuildCount == 6) { + if ($jobDeleted == 0) { + $uprequire = $building->resourceRequired($jobs[2]['field'], $jobs[2]['type'], 1); + $time = $uprequire['time']; + $timestamp = $time + time(); + $q = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,level=level-1,timestamp=" . $timestamp . " WHERE id=" . (int) $jobs[2]['id']; + mysqli_query($this->dblink, $q); + } + } else if ($SameBuildCount == 7) { + if ($jobDeleted == 1) { + $uprequire = $building->resourceRequired($jobs[2]['field'], $jobs[2]['type'], 1); + $time = $uprequire['time']; + $timestamp = $time + time(); + $q = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,level=level-1,timestamp=" . $timestamp . " WHERE id=" . (int) $jobs[2]['id']; + mysqli_query($this->dblink, $q); } } - } - if(($jobLoopconID >= 0) && ($jobs[$jobDeleted]['loopcon'] != 1)) { - if(($jobs[$jobLoopconID]['field'] <= 18 && $jobs[$jobDeleted]['field'] <= 18) || ($jobs[$jobLoopconID]['field'] >= 19 && $jobs[$jobDeleted]['field'] >= 19) || sizeof($jobs) < 3) { - $uprequire = $building->resourceRequired($jobs[$jobLoopconID]['field'], $jobs[$jobLoopconID]['type']); - $x = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,timestamp=" . (time() + (int) $uprequire['time']) . " WHERE wid=" . (int) $jobs[$jobDeleted]['wid'] . " AND loopcon=1 AND master=0"; - mysqli_query($this->dblink,$x); - } - } - } - $q = "DELETE FROM " . TB_PREFIX . "bdata where id = $d"; - return mysqli_query($this->dblink,$q); + if ($SameBuildCount < 8) { + $uprequire = $building->resourceRequired($jobs[$jobMaster]['field'], $jobs[$jobMaster]['type'], 2); + $q1 = "UPDATE " . TB_PREFIX . "bdata SET level=level-1,timestamp=" . $uprequire['time'] . " WHERE id=" . (int) $jobs[$jobMaster]['id']; + mysqli_query($this->dblink, $q1); + } else { + $uprequire = $building->resourceRequired($jobs[$jobMaster]['field'], $jobs[$jobMaster]['type'], 1); + $q1 = "UPDATE " . TB_PREFIX . "bdata SET level=level-1,timestamp=" . $uprequire['time'] . " WHERE id=" . (int) $jobs[$jobMaster]['id']; + mysqli_query($this->dblink, $q1); + } + } else if ($d == $jobs[floor($SameBuildCount / 3)]['id'] || $d == $jobs[floor($SameBuildCount / 2) + 1]['id']) { + $q = "UPDATE " . TB_PREFIX . "bdata SET loopcon=0,level=level-1,timestamp=" . (int) $jobs[floor($SameBuildCount / 3)]['timestamp'] . " WHERE master = 0 AND id > " . $d . " and (ID=" . (int) $jobs[floor($SameBuildCount / 3)]['id'] . " OR ID=" . (int) $jobs[floor($SameBuildCount / 2) + 1]['id'] . ")"; + mysqli_query($this->dblink, $q); + } + } else { + if ($jobs[$jobDeleted]['field'] >= 19) { + $x = "SELECT f" . $jobs[$jobDeleted]['field'] . " FROM " . TB_PREFIX . "fdata WHERE vref=" . (int) $jobs[$jobDeleted]['wid']; + $result = mysqli_query($this->dblink, $x); + $fieldlevel = mysqli_fetch_row($result); + if ($fieldlevel[0] == 0) { + if ($village->natar == 1 && $jobs[$jobDeleted]['field'] == 99) { // fix by ronix + } else { + $x = "UPDATE " . TB_PREFIX . "fdata SET f" . $jobs[$jobDeleted]['field'] . "t=0 WHERE vref=" . (int) $jobs[$jobDeleted]['wid']; + mysqli_query($this->dblink, $x); + } + } + } + if (($jobLoopconID >= 0) && ($jobs[$jobDeleted]['loopcon'] != 1)) { + if (($jobs[$jobLoopconID]['field'] <= 18 && $jobs[$jobDeleted]['field'] <= 18) || ($jobs[$jobLoopconID]['field'] >= 19 && $jobs[$jobDeleted]['field'] >= 19) || sizeof($jobs) < 4) { + $uprequire = $building->resourceRequired($jobs[$jobLoopconID]['field'], $jobs[$jobLoopconID]['type']); + $x = "UPDATE " . TB_PREFIX . "bdata SET loopcon = 0,timestamp=" . (time() + (int) $uprequire['time']) . " WHERE wid=" . (int) $jobs[$jobDeleted]['wid'] . " AND loopcon = 1 AND master = 0"; + mysqli_query($this->dblink, $x); + } + } + } + $q = "DELETE FROM " . TB_PREFIX . "bdata where id = $d"; + return mysqli_query($this->dblink, $q); } function addDemolition($wid, $field) { @@ -5037,9 +5033,7 @@ References: User ID/Message ID, Mode // return all master jobs $data = []; foreach ($bdata as $row) { - if ($row['master'] == 1) { - $data[] = $row; - } + if ($row['master'] == 1) $data[] = $row; } return $data; @@ -5139,9 +5133,7 @@ References: User ID/Message ID, Mode // return all non-master jobs for field type under 19 $data = []; foreach ($bdata as $row) { - if ($row['master'] == 0 && $row['field'] < 19) { - $data[] = $row; - } + if ($row['master'] == 0 && $row['field'] < 19) $data[] = $row; } return $data; @@ -5154,18 +5146,16 @@ References: User ID/Message ID, Mode // return all non-master jobs for field type above 18 $data = []; foreach ($bdata as $row) { - if ($row['master'] == 0 && $row['field'] > 18) { - $data[] = $row; - } + if ($row['master'] == 0 && $row['field'] > 18) $data[] = $row; } return $data; } - function updateBuildingWithMaster($id, $time,$loop) { - list($id, $time,$loop) = $this->escape_input((int) $id, (int) $time,(int) $loop); + function updateBuildingWithMaster($id, $time, $loop) { + list($id, $time, $loop) = $this->escape_input((int) $id, (int) $time, (int) $loop); - $q = "UPDATE " . TB_PREFIX . "bdata SET master = 0, timestamp = ".$time.",loopcon = ".$loop." WHERE id = ".$id.""; + $q = "UPDATE " . TB_PREFIX . "bdata SET master = 0, timestamp = ".$time.", loopcon = ".$loop." WHERE id = ".$id.""; return mysqli_query($this->dblink,$q); } diff --git a/GameEngine/Lang/en.php b/GameEngine/Lang/en.php index 028221b8..ab3c6f42 100755 --- a/GameEngine/Lang/en.php +++ b/GameEngine/Lang/en.php @@ -919,16 +919,16 @@ define("TRAINING","Training"); define("FINISHED","Finished"); define("UNIT_FINISHED","The next unit will be finished in"); define("AVAILABLE","Available"); -define("TRAINING_COMMENCE_BARRACKS","Training can commence when barracks are completed."); +define("TRAINING_COMMENCE_BARRACKS","Training can commence when barracks is completed."); define("BARRACKS_DESC","All foot soldiers are trained in the barracks. The higher the level of the barracks, the faster the troops are trained."); define("STABLE","Stable"); define("AVAILABLE_ACADEMY","No units available. Research at academy"); -define("TRAINING_COMMENCE_STABLE","Training can commence when stable are completed."); +define("TRAINING_COMMENCE_STABLE","Training can commence when stable is completed."); define("STABLE_DESC","Cavalry can be trained in the stable. The higher its level the faster the troops are trained."); define("WORKSHOP","Workshop"); -define("TRAINING_COMMENCE_WORKSHOP","Training can commence when workshop are completed."); +define("TRAINING_COMMENCE_WORKSHOP","Training can commence when workshop is completed."); define("WORKSHOP_DESC","Siege engines like catapults and rams can be built in the workshop. The higher its level the faster the units are produced."); define("ACADEMY","Academy"); @@ -987,6 +987,7 @@ define("SECURITY_CHANGE_CAPITAL","Are you sure, that you want to change your cap define("PALACE_DESC","The king or queen of the empire lives in the palace. Only one palace can exist in your realm at a time. You need a palace in order to proclaim a village to be your capital."); define("TREASURY","Treasury"); +define("TREASURY_COMMENCE","Artifacts can be viewed when treasury is completed."); define("ARTIFACTS_AREA","Artefacts in your area"); define("NO_ARTIFACTS_AREA","There are no artefacts in your area."); define("OWN_ARTIFACTS","Own artefacts"); @@ -1028,11 +1029,11 @@ define("MERCHANT_LEVEL","Merchant load at level"); define("TRADEOFFICE_DESC","In the trade office the merchants' carts get improved and equipped with powerful horses. The higher its level the more your merchants are able to carry."); define("GREATBARRACKS","Great Barracks"); -define("TRAINING_COMMENCE_GREATBARRACKS","Training can commence when great barracks are completed."); +define("TRAINING_COMMENCE_GREATBARRACKS","Training can commence when great barracks is completed."); define("GREATBARRACKS_DESC","Foot soldiers are trained in the great barracks. The higher the level of the barracks, the faster the troops are trained."); define("GREATSTABLE","Great Stable"); -define("TRAINING_COMMENCE_GREATSTABLE","Training can commence when great stables are completed."); +define("TRAINING_COMMENCE_GREATSTABLE","Training can commence when great stable is completed."); define("GREATSTABLE_DESC","Cavalry can be trained in the great stable. The higher its level the faster the troops are trained."); define("CITYWALL","City Wall"); @@ -1063,7 +1064,7 @@ define("TRAPS","Traps"); define("TRAP","Trap"); define("CURRENT_HAVE","Your currently have"); define("WHICH_OCCUPIED","of which are occupied."); -define("TRAINING_COMMENCE_TRAPPER","Training can commence when trapper are completed."); +define("TRAINING_COMMENCE_TRAPPER","Training can commence when trapper is completed."); define("TRAPPER_DESC","The trapper protects your village with well hidden traps. This means that unwary enemies can be imprisoned and won't be able to harm your village anymore."); define("HEROSMANSION","Hero's Mansion"); @@ -1186,11 +1187,12 @@ define("FOOL_SMALL","Artefact of the slight fool"); define("FOOL_SMALLVILLAGE","Pendant of Mischief"); define("FOOL_UNIQUE","Artefact of the unique fool"); define("FOOL_UNIQUEVILLAGE","Forbidden Manuscript"); -define("ARTEFACT","NATARS ARTIFACTS +define("WWVILLAGE","WW village"); +define("ARTEFACT","

Natars Artifacts

Whispering rumors echo through the villages, sharing legends told only by the best storytellers. It refers to NATARS, the most feared warrior of the TRAVIAN world. Their killing is the dream of any hero, the purpose of any fighter. No one knows how NATARS got to get such power, and their warriors so cruel. Determined to discover the source of the NATARS power, the fighters send a group of elite spies to spy them. I do not go through many hours and come back with fear in their eyes and balancing fantastic theories: it seems that the natural power comes from the mysterious objects they call artifacts that they stole from our ancestors. Try to steal the artefacts of her, and you can control their power. -PHOTO MUST BE INSERTED HERE + The time has come for claiming artifacts. Collaborate with your alliance and bring your worriors to get these wanted objects. However, NATARS will not give up without war to the artefacts ... nor your enemies. If you are successful in retrieving artifacts and you will be able to reject enemies, you will be able to collect the rewards. Your buildings will become incredibly strong and mightest, and the troops will be much faster and will consume less food. Capture the artifacts, bring glory over your empire and become new legends for your followers. @@ -1211,7 +1213,7 @@ The construction plans are conquerable immediately when they appear to the serve There will be a countdown in game, showing the exact time of the release, 5 days prior to the launch. "); //WW Village Release Message -define("WWVILLAGEMSG","Wonder of World Village +define("WWVILLAGEMSG","

Wonder of the World Villages

Countless days have passed since the first battles upon the walls of the cursed villages of the Dread Natars, many armies of both the free ones and the Natarian empire struggled and died before the walls of the many strongholds from which the Natars had once ruled all creation. Now with the dust settled and a relative calm having settled in, armies began to count their losses and collect their dead, the stench of combat still lingering in the night air, a smell of a slaughter unforgettable in its extent and brutality yet soon to be dwarfed by yet others. The largest armies of the free ones and the Dread Natars were marshalling for yet another renewed assault upon the coveted former strongholds of the Natarian Empire. Soon scouts arrived telling of a most awesome sight and a chilling reminder, a dread army of an unfathomable size had been spotted marshalling at the end of the world, the Natarian capital, a force so great and unstoppable that the dust from their march would choke off all light, a force so brutal and ruthless that it would crush all hope. The free people knew that they had to race now, race against time and the endless hordes of the Natarian Empire to raise a Wonder of the World to restore the world to peace and vanquish the Natarian threat. @@ -1219,7 +1221,7 @@ But to raise such a great Wonder would be no easy task, one would need construct Tens of thousands of scouts roamed across all existence searching in vain for these mystical plans, looking in all places but the dreaded Natarian Capital, yet could not find them. Today however, they return bearing good news, they return baring the locations of the plans, hidden by the armies of the Natars inside secret strongholds constructed to be hidden from the eyes of man. Now begins the final stretch, when the greatest armies of the Free people and the Natars will clash across the world for the fate of all that lies under heaven. This is the war that will echo across the eons, this is your war, and here you shall etch your name across history, here you shall become legend. -PHOTO MUST BE INSERTED HERE +\"".WWVILLAGE."\" To conquer one, the following things must happen: @@ -1235,13 +1237,13 @@ To build a WW, you must own a plan yourself (you = the WW village owner) from lv The construction plans are conquerable immediately when they appear to the server. -There will be a countdown in game, showing the exact time of the release, 5 days prior to the launch. "); +There will be a countdown in game, showing the exact time of the release, ".(5 / SPEED)." days prior to the launch. "); //Building Plans define("PLAN","Ancient Construction Plan"); define("PLANVILLAGE","WW Buildingplan"); define("PLAN_DESC","With this ancient construction plan you will able to build World Wonder to level 50. to build further, your alliance must hold at least two plans."); -define("PLAN_INFO","World Wonder Construction Plans +define("PLAN_INFO","

World Wonder Construction Plans

Many moons ago the tribes of Travian were surprised by the unforeseen return of the Natars. This tribe from immemorial times surpassing all in wisdom, might and glory was about to trouble the free ones again. Thus they put all their efforts in preparing a last war against the Natars and vanquishing them forever. Many thought about the so-called 'Wonders of the World', a construction of many legends, as the only solution. It was told that it would render anyone invincible once completed. Ultimately making the constructors the rulers and conquerors of all known Travian. @@ -1254,7 +1256,7 @@ Today, however, this last secret will be revealed. Deprivations and endeavors of In the end, we will see whether the free tribes of Travian can once again outwit the Natars and vanquish them once and for all. Do not be so foolish as to assume that the Natars will leave without a fight, though! - +\"".PLAN."\" To steal a set of Construction Plans from the Natars, the following things must happen: - You must Attack the village (NOT Raid!) @@ -1269,7 +1271,6 @@ NOTE: If the above criteria is not met during the attack, the next attack on tha To build a Treasure Chamber (Treasury), you will need a Main Building level 10 and the village MUST NOT be contain a World Wonder. To build a World Wonder, you must own the Construction Plans yourself (you = the World Wonder Village Owner) from level 0 to 50, and then from level 51 to 100 you will need an additional set of Construction Plans in your Alliance! Two sets of Construction Plans in the World Wonder Village Account will not work!"); -define("WWVILLAGE","WW village"); //Admin setting - Admin/Templates/config.tpl & editServerSet.tpl define("EDIT_BACK","Back"); diff --git a/Templates/Build/27.tpl b/Templates/Build/27.tpl index 46c5f71a..d259f584 100644 --- a/Templates/Build/27.tpl +++ b/Templates/Build/27.tpl @@ -8,14 +8,18 @@

0) include("27_show.tpl"); - else - { - if(!isset($_GET['t'])) include("27_1.tpl"); - elseif(isset($_GET['t']) && $_GET['t'] == 2) include("27_2.tpl"); - elseif(isset($_GET['t']) && $_GET['t'] == 3) include("27_3.tpl"); - } + + if($building->getTypeLevel(27) > 0){ + include("27_menu.tpl"); + if(isset($_GET['show']) && !empty($_GET['show']) && $_GET['show'] > 0) include("27_show.tpl"); + else + { + if(!isset($_GET['t'])) include("27_1.tpl"); + elseif(isset($_GET['t']) && $_GET['t'] == 2) include("27_2.tpl"); + elseif(isset($_GET['t']) && $_GET['t'] == 3) include("27_3.tpl"); + } + } + else echo ''.TREASURY_COMMENCE.'
'; include("upgrade.tpl"); ?> \ No newline at end of file diff --git a/Templates/Build/avaliable/availupgrade.tpl b/Templates/Build/avaliable/availupgrade.tpl index c9797723..65b1553c 100644 --- a/Templates/Build/avaliable/availupgrade.tpl +++ b/Templates/Build/avaliable/availupgrade.tpl @@ -4,8 +4,7 @@ unset($_GET['bid']); $bindicator = $building->canBuild($id,$bid); $loopsame = ($building->isCurrent($id) || $building->isLoop($id))?1:0; $doublebuild = ($building->isCurrent($id) && $building->isLoop($id))?1:0; -$uprequire = $building->resourceRequired($id,$bid); -$mastertime = $uprequire['time']; +$uprequire = $building->resourceRequired($id, $bid); ?> Lumber | Clay | Iron | Crop | Crop consumption | durationgetTimeFormat($uprequire['time']); @@ -23,7 +22,7 @@ $mastertime = $uprequire['time']; ?>
gold >= 1 && $village->master == 0){ - echo "checker\">Constructing with master builder "; + echo "checker\">Constructing with master builder "; echo '(costs: Gold1)'; }else{ echo "Constructing with master builder"; @@ -37,7 +36,7 @@ $mastertime = $uprequire['time']; ?>
gold >= 1 && $village->master == 0){ - echo "checker\">Constructing with master builder "; + echo "checker\">Constructing with master builder "; echo '(costs: Gold1)'; }else{ echo "Constructing with master builder"; @@ -61,7 +60,7 @@ $mastertime = $uprequire['time']; ?>
gold >= 1 && $village->master == 0){ - echo "checker\">Constructing with master builder "; + echo "checker\">Constructing with master builder "; echo '(costs: Gold1)'; }else{ echo "Constructing with master builder"; diff --git a/Templates/Build/upgrade.tpl b/Templates/Build/upgrade.tpl index 17994c72..d2a75015 100644 --- a/Templates/Build/upgrade.tpl +++ b/Templates/Build/upgrade.tpl @@ -9,18 +9,16 @@ if($bindicate == 1) { } else if($bindicate == 11) { echo "

".BUILDING_BEING_DEMOLISHED."

"; } else { - $loopsame = ($building->isCurrent($id) || $building->isLoop($id))?1:0; - $doublebuild = ($building->isCurrent($id) && $building->isLoop($id))?1:0; + $loopsame = ($building->isCurrent($id) || $building->isLoop($id)) ? 1 : 0; + $doublebuild = ($building->isCurrent($id) && $building->isLoop($id)) ? 1 : 0; $master = count($database->getMasterJobsByField($village->wid,$id)); // master and loopsame would have duplicated level display, // so we need to decrease loopsame if master is the only job left - if ($master == 1 && $loopsame == 1) { - $loopsame = 0; - } + if ($master == 1 && $loopsame == 1) $loopsame = 0; + //-- If available resources combined are not enough, remove NPC button - $uprequire = $building->resourceRequired($id,$village->resarray['f'.$id.'t'],1+$loopsame+$doublebuild+$master); - $mastertime = $uprequire['time']; + $uprequire = $building->resourceRequired($id,$village->resarray['f'.$id.'t'],1 + $loopsame + $doublebuild + $master); ?> userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $villa gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; + echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; echo '('.COSTS.': Gold1)'; }else{ echo "".CONSTRUCTING_MASTER_BUILDER.""; @@ -46,7 +44,7 @@ if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $villa } }else{ if($session->gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; + echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; echo '('.COSTS.': Gold1)'; }else{ echo "".CONSTRUCTING_MASTER_BUILDER.""; @@ -62,7 +60,7 @@ if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $villa gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; + echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; echo '('.COSTS.': Gold1)'; }else{ echo "".CONSTRUCTING_MASTER_BUILDER.""; @@ -70,7 +68,7 @@ if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $villa } }else{ if($session->gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; + echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; echo '('.COSTS.': Gold1)'; }else{ echo "".CONSTRUCTING_MASTER_BUILDER.""; @@ -100,7 +98,7 @@ if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $villa gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; + echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; echo '('.COSTS.': Gold1)'; }else{ echo "".CONSTRUCTING_MASTER_BUILDER.""; @@ -108,7 +106,7 @@ if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $villa } }else{ if($session->gold >= 1 && $village->master == 0){ - echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; + echo "checker\">".CONSTRUCTING_MASTER_BUILDER." "; echo '('.COSTS.': Gold1)'; }else{ echo "".CONSTRUCTING_MASTER_BUILDER.""; diff --git a/Templates/Build/wwupgrade.tpl b/Templates/Build/wwupgrade.tpl index c03a012b..8dc367f0 100644 --- a/Templates/Build/wwupgrade.tpl +++ b/Templates/Build/wwupgrade.tpl @@ -20,7 +20,6 @@ if ( $building->allowWwUpgrade() ) { $doublebuild = ( $building->isCurrent( $id ) && $building->isLoop( $id ) ) ? 1 : 0; $master = count( $database->getMasterJobsByField( $village->wid, $id ) ); $uprequire = $building->resourceRequired( $id, $village->resarray[ 'f' . $id . 't' ], 1 + $loopsame + $doublebuild + $master ); - $mastertime = $uprequire['time']; ?>

resarray[ 'f' . $id ] + 1 + $loopsame + $doublebuild + $master; ?> @@ -50,7 +49,7 @@ if ( $building->allowWwUpgrade() ) { gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; + echo "" . CONSTRUCTING_MASTER_BUILDER . " "; echo '(' . COSTS . ': Gold1)'; } else { echo "" . CONSTRUCTING_MASTER_BUILDER . ""; @@ -58,7 +57,7 @@ if ( $building->allowWwUpgrade() ) { } } else { if ( $session->gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; + echo "" . CONSTRUCTING_MASTER_BUILDER . " "; echo '(' . COSTS . ': Gold1)'; } else { echo "" . CONSTRUCTING_MASTER_BUILDER . ""; @@ -73,7 +72,7 @@ if ( $building->allowWwUpgrade() ) { gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; + echo "" . CONSTRUCTING_MASTER_BUILDER . " "; echo '(' . COSTS . ': Gold1)'; } else { echo "" . CONSTRUCTING_MASTER_BUILDER . ""; @@ -81,7 +80,7 @@ if ( $building->allowWwUpgrade() ) { } } else { if ( $session->gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; + echo "" . CONSTRUCTING_MASTER_BUILDER . " "; echo '(' . COSTS . ': Gold1)'; } else { echo "" . CONSTRUCTING_MASTER_BUILDER . ""; @@ -107,7 +106,7 @@ if ( $building->allowWwUpgrade() ) { gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; + echo "" . CONSTRUCTING_MASTER_BUILDER . " "; echo '(' . COSTS . ': Gold1)'; } else { echo "" . CONSTRUCTING_MASTER_BUILDER . ""; @@ -115,7 +114,7 @@ if ( $building->allowWwUpgrade() ) { } } else { if ( $session->gold >= 1 && $village->master == 0 ) { - echo "" . CONSTRUCTING_MASTER_BUILDER . " "; + echo "" . CONSTRUCTING_MASTER_BUILDER . " "; echo '(' . COSTS . ': Gold1)'; } else { echo "" . CONSTRUCTING_MASTER_BUILDER . ""; diff --git a/Templates/text.tpl b/Templates/text.tpl index 956f48d2..cb20ea2b 100644 --- a/Templates/text.tpl +++ b/Templates/text.tpl @@ -10,7 +10,7 @@ ################################################################################# -$txt=""; +$txt="

Wonder of the World Villages

\n\nCountless days have passed since the first battles upon the walls of the cursed villages of the Dread Natars, many armies of both the free ones and the Natarian empire struggled and died before the walls of the many strongholds from which the Natars had once ruled all creation. Now with the dust settled and a relative calm having settled in, armies began to count their losses and collect their dead, the stench of combat still lingering in the night air, a smell of a slaughter unforgettable in its extent and brutality yet soon to be dwarfed by yet others. The largest armies of the free ones and the Dread Natars were marshalling for yet another renewed assault upon the coveted former strongholds of the Natarian Empire.\nSoon scouts arrived telling of a most awesome sight and a chilling reminder, a dread army of an unfathomable size had been spotted marshalling at the end of the world, the Natarian capital, a force so great and unstoppable that the dust from their march would choke off all light, a force so brutal and ruthless that it would crush all hope. The free people knew that they had to race now, race against time and the endless hordes of the Natarian Empire to raise a Wonder of the World to restore the world to peace and vanquish the Natarian threat.\nBut to raise such a great Wonder would be no easy task, one would need construction plans created in the distant past, plans of such an arcane nature that even the very wisest of sages knew not their contents or locations.\nTens of thousands of scouts roamed across all existence searching in vain for these mystical plans, looking in all places but the dreaded Natarian Capital, yet could not find them. Today however, they return bearing good news, they return baring the locations of the plans, hidden by the armies of the Natars inside secret strongholds constructed to be hidden from the eyes of man.\nNow begins the final stretch, when the greatest armies of the Free people and the Natars will clash across the world for the fate of all that lies under heaven. This is the war that will echo across the eons, this is your war, and here you shall etch your name across history, here you shall become legend.\n\n\"WW\n\nTo conquer one, the following things must happen:\n\n1. You must attack the village (NO Raid!)\n2. WIN the Attack\n3. Destroy the RESIDENCE\n4. You must decrease the loyalty to 0 with : SENATORS , CHIEF , CHIEFTAIN\n5. You must have enough culture points to conquer the village\n\nIf not, the next attack on that village, winning with a SENATORS , CHIEF , CHIEFTAIN and empty slots in RESIDENCE/PALACE will take the village.\n\nTo build a WW, you must own a plan yourself (you = the WW village owner) from lvl 0 to 50, from 51 to 100 you need an additional plan in your alliance! Two plans in the WW village account would not work!\n\nThe construction plans are conquerable immediately when they appear to the server. \n\nThere will be a countdown in game, showing the exact time of the release, 5 days prior to the launch. "; //bbcode = html code $txt = preg_replace("/\[b\]/is",'', $txt); @@ -23,4 +23,4 @@ $txt = preg_replace("/\[\/u\]/is",'', $txt); //nl2br = enter echo nl2br($txt); -?> +?> \ No newline at end of file diff --git a/gpack/travian_default/img/artefact/ArtifactsAnnouncement.gif b/gpack/travian_default/img/artefact/ArtifactsAnnouncement.gif new file mode 100644 index 0000000000000000000000000000000000000000..dbc0d8060792434809da87b38805c7bda470faa7 GIT binary patch literal 27478 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

TTY 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 literal 0 HcmV?d00001 diff --git a/gpack/travian_default/lang/en/compact.css b/gpack/travian_default/lang/en/compact.css index 853c7547..1b9d883b 100644 --- a/gpack/travian_default/lang/en/compact.css +++ b/gpack/travian_default/lang/en/compact.css @@ -6964,6 +6964,30 @@ img.online4 { img.online5 { background-position: -60px 0; } +img.WWVillagesAnnouncement { + background-image: url("../../img/artefact/WWVillagesAnnouncement.gif"); + display: block; + margin-left: auto; + margin-right: auto; + width: 196px; + height: 324px; +} +img.ArtifactsAnnouncement { + background-image: url("../../img/artefact/ArtifactsAnnouncement.gif"); + display: block; + margin-left: auto; + margin-right: auto; + width: 378px; + height: 157px; +} +img.WWBuildingPlansAnnouncement{ + background-image: url("../../img/artefact/type-1.gif"); + display: block; + margin-left: auto; + margin-right: auto; + width: 551px; + height: 168px; +} h1 img.point { background-image: url("../../img/u/point.gif"); height: 16px;