Refactor + BugFix

1. Fix a bug in Admin Panel that you can edit by yourself your rank, now you cannot edit your rank anymore.

2. Now Alliance Leader can edit his own Position

3. Fix negative value on Demolition Building, now in database at lvl is appear new level not -1

4. Refactor Ajax map, now all is alligned (Ajax folder and Map folder)

5. Fix bug from Palace (when change capital now Automation recount population automaticaly on old capital and new capital)
This commit is contained in:
novgorodschi catalin
2026-05-18 09:18:35 +03:00
parent 2bce101a27
commit 55e6dd60b5
96 changed files with 6176 additions and 6763 deletions
+80 -139
View File
@@ -1,146 +1,87 @@
<?php
// upgrade.tpl
global $village, $building, $database, $generator, $session, $technology, $id;
$bid = $village->resarray['f'.$id.'t'];
$bid = (int)$village->resarray['f'.$id.'t'];
$bindicate = $building->canBuild($id, $bid);
if($bindicate == 1) {
echo "<p><span class=\"none\">".MAX_LEVEL."</span></p>";
} else if($bindicate == 10) {
echo "<p><span class=\"none\">".BUILDING_MAX_LEVEL_UNDER."</span></p>";
} else if($bindicate == 11) {
echo "<p><span class=\"none\">".BUILDING_BEING_DEMOLISHED."</span></p>";
} else {
$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 available resources combined are not enough, remove NPC button
$uprequire = $building->resourceRequired($id,$village->resarray['f'.$id.'t'],1 + $loopsame + $doublebuild + $master);
?>
<?php
$total_required = (int)($uprequire['wood'] + $uprequire['clay'] + $uprequire['iron'] + $uprequire['crop']);
?>
<p id="contract"><b><?php echo COSTS_UPGRADING_LEVEL;?> <?php echo $village->resarray['f'.$id]+1+$loopsame+$doublebuild+$master; ?>:<br />
<img class="r1" src="img/x.gif" alt="Lumber" title="Lumber" /><span class="little_res"><?php echo $uprequire['wood']; ?></span> | <img class="r2" src="img/x.gif" alt="Clay" title="Clay" /><span class="little_res"><?php echo $uprequire['clay']; ?></span> | <img class="r3" src="img/x.gif" alt="Iron" title="Iron" /><span class="little_res"><?php echo $uprequire['iron']; ?></span> | <img class="r4" src="img/x.gif" alt="Crop" title="Crop" /><span class="little_res"><?php echo $uprequire['crop']; ?></span> | <img class="r5" src="img/x.gif" alt="Crop consumption" title="Crop consumption" /><?php echo $uprequire['pop']; ?> | <img class="clock" src="img/x.gif" alt="duration" title="duration" /><?php echo $generator->getTimeFormat($uprequire['time']);
if($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required) {
echo "| <a href=\"build.php?gid=17&t=3&r1=".$uprequire['wood']."&r2=".$uprequire['clay']."&r3=".$uprequire['iron']."&r4=".$uprequire['crop']."\" title=\"NPC trade\"><img class=\"npc\" src=\"img/x.gif\" alt=\"NPC trade\" title=\"NPC trade\" /></a>";
} ?><br />
<?php
if($bindicate == 2) {
echo "<span class=\"none\">".WORKERS_ALREADY_WORK."</span>";
if($session->goldclub == 1){
?> </br>
<?php
if($id <= 18) {
if($session->gold >= 1 && $village->master == 0){
echo "<a class=\"build\" href=\"dorf1.php?master=$bid&id=$id&c=$session->checker\">".CONSTRUCTING_MASTER_BUILDER." </a>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}else{
echo "<span class=\"none\">".CONSTRUCTING_MASTER_BUILDER."</span>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}
}else{
if($session->gold >= 1 && $village->master == 0){
echo "<a class=\"build\" href=\"dorf2.php?master=$bid&id=$id&c=$session->checker\">".CONSTRUCTING_MASTER_BUILDER." </a>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}else{
echo "<span class=\"none\">".CONSTRUCTING_MASTER_BUILDER."</span>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}
}
}
}
else if($bindicate == 3) {
echo "<span class=\"none\">".WORKERS_ALREADY_WORK_WAITING."</span>";
if($session->goldclub == 1){
?> </br>
<?php
if($id <= 18) {
if($session->gold >= 1 && $village->master == 0){
echo "<a class=\"build\" href=\"dorf1.php?master=$bid&id=$id&c=$session->checker\">".CONSTRUCTING_MASTER_BUILDER." </a>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}else{
echo "<span class=\"none\">".CONSTRUCTING_MASTER_BUILDER."</span>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}
}else{
if($session->gold >= 1 && $village->master == 0){
echo "<a class=\"build\" href=\"dorf2.php?master=$bid&id=$id&c=$session->checker\">".CONSTRUCTING_MASTER_BUILDER." </a>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}else{
echo "<span class=\"none\">".CONSTRUCTING_MASTER_BUILDER."</span>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}
}
}
}
else if($bindicate == 4) {
echo "<span class=\"none\">".ENOUGH_FOOD_EXPAND_CROPLAND."</span>";
}
else if($bindicate == 5) {
echo "<span class=\"none\">".UPGRADE_WAREHOUSE.".</span>";
}
else if($bindicate == 6) {
echo "<span class=\"none\">".UPGRADE_GRANARY.".</span>";
}
else if($bindicate == 7) {
if($village->allcrop - $village->pop - $technology->getUpkeep($village->unitall, 0) > 0){
$neededtime = $building->calculateAvaliable($id,$village->resarray['f'.$id.'t'],1+$loopsame+$doublebuild+$master);
echo "<span class=\"none\">".ENOUGH_RESOURCES." ".$neededtime[0]." at ".$neededtime[1]."</span>";
}else{
echo "<span class=\"none\">".YOUR_CROP_NEGATIVE."</span>";
}
if($session->goldclub == 1){
?> </br>
<?php
if($id <= 18) {
if($session->gold >= 1 && $village->master == 0){
echo "<a class=\"build\" href=\"dorf1.php?master=$bid&id=$id&c=$session->checker\">".CONSTRUCTING_MASTER_BUILDER." </a>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}else{
echo "<span class=\"none\">".CONSTRUCTING_MASTER_BUILDER."</span>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}
}else{
if($session->gold >= 1 && $village->master == 0){
echo "<a class=\"build\" href=\"dorf2.php?master=$bid&id=$id&c=$session->checker\">".CONSTRUCTING_MASTER_BUILDER." </a>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}else{
echo "<span class=\"none\">".CONSTRUCTING_MASTER_BUILDER."</span>";
echo '<font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}
}
}
}
else if($bindicate == 8) {
if($session->access==BANNED){
echo "<a class=\"build\" href=\"banned.php\">".UPGRADE_LEVEL." ";
}
else if($id <= 18) {
echo "<a class=\"build\" href=\"dorf1.php?a=$id&c=$session->checker\">".UPGRADE_LEVEL." ";
}
else {
echo "<a class=\"build\" href=\"dorf2.php?a=$id&c=$session->checker\">".UPGRADE_LEVEL." ";
}
echo $village->resarray['f'.$id]+1;
echo ".</a>";
}
else if($bindicate == 9) {
if($session->access==BANNED){
echo "<a class=\"build\" href=\"banned.php\">".UPGRADE_LEVEL." ";
}
else if($id <= 18) {
echo "<a class=\"build\" href=\"dorf1.php?a=$id&c=$session->checker\">".UPGRADE_LEVEL." ";
}
else {
echo "<a class=\"build\" href=\"dorf2.php?a=$id&c=$session->checker\">".UPGRADE_LEVEL." ";
}
echo $village->resarray['f'.$id]+($loopsame > 0 ? 2:1);
echo ".</a> <span class=\"none\">".WAITING."</span> ";
}
if ($bindicate == 1) {
echo '<p><span class="none">'.MAX_LEVEL.'</span></p>';
return;
}
if ($bindicate == 10) {
echo '<p><span class="none">'.BUILDING_MAX_LEVEL_UNDER.'</span></p>';
return;
}
if ($bindicate == 11) {
echo '<p><span class="none">'.BUILDING_BEING_DEMOLISHED.'</span></p>';
return;
}
$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));
if ($master == 1 && $loopsame == 1) $loopsame = 0;
$nextLevel = (int)$village->resarray['f'.$id] + 1 + $loopsame + $doublebuild + $master;
$uprequire = $building->resourceRequired($id, $bid, 1 + $loopsame + $doublebuild + $master);
$total_required = (int)($uprequire['wood'] + $uprequire['clay'] + $uprequire['iron'] + $uprequire['crop']);
?>
<p id="contract">
<b><?php echo COSTS_UPGRADING_LEVEL;?> <?php echo $nextLevel;?>:</b><br />
<img class="r1" src="img/x.gif" title="<?php echo LUMBER;?>"/><span class="little_res"><?php echo $uprequire['wood'];?></span> |
<img class="r2" src="img/x.gif" title="<?php echo CLAY;?>"/><span class="little_res"><?php echo $uprequire['clay'];?></span> |
<img class="r3" src="img/x.gif" title="<?php echo IRON;?>"/><span class="little_res"><?php echo $uprequire['iron'];?></span> |
<img class="r4" src="img/x.gif" title="<?php echo CROP;?>"/><span class="little_res"><?php echo $uprequire['crop'];?></span> |
<img class="r5" src="img/x.gif" title="<?php echo CROP_COM;?>"/><?php echo $uprequire['pop'];?> |
<img class="clock" src="img/x.gif" title="<?php echo DURATION;?>"/><?php echo $generator->getTimeFormat($uprequire['time']);?>
<?php if ($session->userinfo['gold'] >= 3 && $building->getTypeLevel(17) >= 1 && $village->atotal >= $total_required):?>
| <a href="build.php?gid=17&t=3&r1=<?php echo $uprequire['wood'];?>&r2=<?php echo $uprequire['clay'];?>&r3=<?php echo $uprequire['iron'];?>&r4=<?php echo $uprequire['crop'];?>" title="NPC trade"><img class="npc" src="img/x.gif" alt="NPC trade"/></a>
<?php endif;?>
<br />
<?php
switch ($bindicate) {
case 2:
echo '<span class="none">'.WORKERS_ALREADY_WORK.'</span>';
break;
case 3:
echo '<span class="none">'.WORKERS_ALREADY_WORK_WAITING.'</span>';
break;
case 4:
echo '<span class="none">'.ENOUGH_FOOD_EXPAND_CROPLAND.'</span>';
break;
case 5:
echo '<span class="none">'.UPGRADE_WAREHOUSE.'.</span>';
break;
case 6:
echo '<span class="none">'.UPGRADE_GRANARY.'.</span>';
break;
case 7:
if ($village->allcrop - $village->pop - $technology->getUpkeep($village->unitall, 0) > 0) {
$neededtime = $building->calculateAvaliable($id, $bid, 1 + $loopsame + $doublebuild + $master);
echo '<span class="none">'.ENOUGH_RESOURCES.' '.$neededtime[0].' at '.$neededtime[1].'</span>';
} else {
echo '<span class="none">'.YOUR_CROP_NEGATIVE.'</span>';
}
break;
case 8:
case 9:
$href = $session->access == BANNED? 'banned.php' : (($id <= 18)? "dorf1.php?a=$id&c=$session->checker" : "dorf2.php?a=$id&c=$session->checker");
$lvl = $bindicate == 8? $village->resarray['f'.$id] + 1 : $village->resarray['f'.$id] + ($loopsame > 0? 2 : 1);
echo '<a class="build" href="'.$href.'">'.UPGRADE_LEVEL.' '.$lvl.'.</a>';
if ($bindicate == 9) echo ' <span class="none">'.WAITING.'</span>';
break;
}
if (in_array($bindicate, [2,3,7]) && $session->goldclub == 1) {
echo '<br/>';
$masterHref = ($id <= 18? 'dorf1.php' : 'dorf2.php'). "?master=$bid&id=$id&c=$session->checker";
if ($session->gold >= 1 && $village->master == 0) {
echo '<a class="build" href="'.$masterHref.'">'.CONSTRUCTING_MASTER_BUILDER.'</a>';
} else {
echo '<span class="none">'.CONSTRUCTING_MASTER_BUILDER.'</span>';
}
echo ' <font color="#B3B3B3">('.COSTS.': <img src="'.GP_LOCATE.'img/a/gold_g.gif" alt="Gold" title="'.GOLD.'"/>1)</font>';
}
?>
</p>