Fix Command Center Capital Change #329

Fix Command Center Capital Change #329 , Fix forum units, fix trooplist on raidlist,
This commit is contained in:
novgorodschi catalin
2026-07-17 08:24:13 +03:00
parent 47f958c430
commit 3d4d5e5cef
18 changed files with 311 additions and 280 deletions
+12 -118
View File
@@ -165,124 +165,18 @@ foreach($posts as $pos){
class="smiley wink" src="img/x.gif" alt=";)" title=";)" /></a>
</div>
<div id="text_troops" name="text_troops">
<a href="javascript:void(0);" bbType="o" bbTag="tid1"><img
class="unit u1" src="img/x.gif" title="<?php echo U1; ?>"
alt="<?php echo U1; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid2"><img class="unit u2" src="img/x.gif"
title="<?php echo U2; ?>" alt="<?php echo U2; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid3"><img
class="unit u3" src="img/x.gif" title="<?php echo U3; ?>"
alt="<?php echo U3; ?>" /></a><a href="javascript:void(0);" bbType="o"
bbTag="tid4"><img class="unit u4" src="img/x.gif"
title="<?php echo U4; ?>" alt="<?php echo U4; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid5"><img
class="unit u5" src="img/x.gif" title="<?php echo U5; ?>"
alt="<?php echo U5; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid6"><img class="unit u6" src="img/x.gif"
title="<?php echo U6; ?>" alt="<?php echo U6; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid7"><img
class="unit u7" src="img/x.gif" title="<?php echo U17; ?>" alt="<?php echo U17; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid8"><img
class="unit u8" src="img/x.gif" title="<?php echo U8; ?>"
alt="<?php echo U8; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid9"><img class="unit u9" src="img/x.gif"
title="<?php echo U9; ?>" alt="<?php echo U9; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid10"><img
class="unit u10" src="img/x.gif" title="<?php echo U10; ?>" alt="<?php echo U10; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid11"><img
class="unit u11" src="img/x.gif" title="<?php echo TZ_MACEMAN; ?>" alt="<?php echo TZ_MACEMAN; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid12"><img
class="unit u12" src="img/x.gif" title="<?php echo U12; ?>"
alt="<?php echo U12; ?>" /></a><a href="javascript:void(0);" bbType="o"
bbTag="tid13"><img class="unit u13" src="img/x.gif"
title="<?php echo U13; ?>" alt="<?php echo U13; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid14"><img
class="unit u14" src="img/x.gif" title="<?php echo U14; ?>" alt="<?php echo U14; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid15"><img
class="unit u15" src="img/x.gif" title="<?php echo U15; ?>" alt="<?php echo U15; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid16"><img
class="unit u16" src="img/x.gif" title="<?php echo U16; ?>"
alt="<?php echo U16; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid17"><img class="unit u17" src="img/x.gif"
title="<?php echo U17; ?>" alt="<?php echo U17; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid18"><img class="unit u18" src="img/x.gif"
title="<?php echo U18; ?>" alt="<?php echo U18; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid19"><img
class="unit u19" src="img/x.gif" title="<?php echo U29; ?>"
alt="<?php echo U29; ?>" /></a><a href="javascript:void(0);" bbType="o"
bbTag="tid20"><img class="unit u20" src="img/x.gif"
title="<?php echo U10; ?>" alt="<?php echo U10; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid21"><img
class="unit u21" src="img/x.gif" title="<?php echo U21; ?>" alt="<?php echo U21; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid22"><img
class="unit u22" src="img/x.gif" title="<?php echo U22; ?>"
alt="<?php echo U22; ?>" /></a><a href="javascript:void(0);" bbType="o"
bbTag="tid23"><img class="unit u23" src="img/x.gif"
title="<?php echo U23; ?>" alt="<?php echo U23; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid24"><img
class="unit u24" src="img/x.gif" title="<?php echo U24; ?>"
alt="<?php echo U24; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid25"><img class="unit u25" src="img/x.gif"
title="<?php echo U25; ?>" alt="<?php echo U25; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid26"><img
class="unit u26" src="img/x.gif" title="<?php echo U26; ?>" alt="<?php echo U26; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid27"><img
class="unit u27" src="img/x.gif" title="<?php echo U7; ?>"
alt="<?php echo U7; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid28"><img class="unit u28" src="img/x.gif"
title="<?php echo U28; ?>" alt="<?php echo U28; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid29"><img
class="unit u29" src="img/x.gif" title="<?php echo U19; ?>" alt="<?php echo U19; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid30"><img
class="unit u30" src="img/x.gif" title="<?php echo U10; ?>" alt="<?php echo U10; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid31"><img
class="unit u31" src="img/x.gif" title="<?php echo U31; ?>" alt="<?php echo U31; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid32"><img
class="unit u32" src="img/x.gif" title="<?php echo U32; ?>" alt="<?php echo U32; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid33"><img
class="unit u33" src="img/x.gif" title="<?php echo U33; ?>" alt="<?php echo U33; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid34"><img
class="unit u34" src="img/x.gif" title="<?php echo U34; ?>" alt="<?php echo U34; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid35"><img
class="unit u35" src="img/x.gif" title="<?php echo U35; ?>"
alt="<?php echo U35; ?>" /></a><a href="javascript:void(0);" bbType="o"
bbTag="tid36"><img class="unit u36" src="img/x.gif"
title="<?php echo U36; ?>" alt="<?php echo U36; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid37"><img class="unit u37" src="img/x.gif"
title="<?php echo U37; ?>" alt="<?php echo U37; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid38"><img class="unit u38" src="img/x.gif"
title="<?php echo U38; ?>" alt="<?php echo U38; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid39"><img
class="unit u39" src="img/x.gif" title="<?php echo U39; ?>" alt="<?php echo U39; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid40"><img
class="unit u40" src="img/x.gif" title="<?php echo U40; ?>"
alt="<?php echo U40; ?>" /></a><a href="javascript:void(0);" bbType="o"
bbTag="tid41"><img class="unit u41" src="img/x.gif"
title="<?php echo U41; ?>" alt="<?php echo U41; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid42"><img
class="unit u42" src="img/x.gif" title="<?php echo U42; ?>"
alt="<?php echo U42; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid43"><img class="unit u43" src="img/x.gif"
title="<?php echo U43; ?>" alt="<?php echo U43; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid44"><img
class="unit u44" src="img/x.gif" title="<?php echo U44; ?>"
alt="<?php echo U44; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid45"><img class="unit u45" src="img/x.gif"
title="<?php echo U45; ?>" alt="<?php echo U45; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid46"><img
class="unit u46" src="img/x.gif" title="<?php echo U46; ?>"
alt="<?php echo U46; ?>" /></a><a href="javascript:void(0);"
bbType="o" bbTag="tid47"><img class="unit u47" src="img/x.gif"
title="<?php echo U47; ?>" alt="<?php echo U47; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid48"><img
class="unit u48" src="img/x.gif" title="<?php echo U48; ?>"
alt="<?php echo U48; ?>" /></a><a href="javascript:void(0);" bbType="o"
bbTag="tid49"><img class="unit u49" src="img/x.gif"
title="<?php echo U49; ?>" alt="<?php echo U49; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="tid50"><img
class="unit u50" src="img/x.gif" title="<?php echo U10; ?>" alt="<?php echo U10; ?>" /></a><a
href="javascript:void(0);" bbType="o" bbTag="hero"><img
class="unit uhero" src="img/x.gif" title="<?php echo U0; ?>" alt="<?php echo U0; ?>" /></a>
<?php
// Selector de trupe: unitatile de baza (1-50) + triburile noi (51-90, gate-uite pe flags).
$__tribeFlags = [6=>'NEW_FUNCTION_TRIBE_HUNS',7=>'NEW_FUNCTION_TRIBE_EGIPTEANS',8=>'NEW_FUNCTION_TRIBE_SPARTANS',9=>'NEW_FUNCTION_TRIBE_VIKINGS'];
for($__u=1;$__u<=90;$__u++){
if($__u>50){
$__tr=intdiv($__u-1,10)+1;
if(!isset($__tribeFlags[$__tr])||!defined($__tribeFlags[$__tr])||!constant($__tribeFlags[$__tr])) continue;
}
$__nm=defined('U'.$__u)?constant('U'.$__u):'';
echo '<a href="javascript:void(0);" bbType="o" bbTag="tid'.$__u.'" ><img class="unit u'.$__u.'" src="img/x.gif" title="'.$__nm.'" alt="'.$__nm.'" /></a>';
}
?><a href="javascript:void(0);" bbType="o" bbTag="hero" ><img class="unit uhero" src="img/x.gif" title="<?php echo U0; ?>" alt="<?php echo U0; ?>" /></a>
</div>
</div>
</div>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -55,7 +55,7 @@ if($_POST && $_GET['action'] == 'change_capital' && !$village->capital){
}
}
// 3. DELETE CAPITAL-SPECIFIC BUILDINGS FROM THE NEW CAPITAL
$capitalOnly = [29,30,38,39,42];
$capitalOnly = [29,30,38,39,49]; // Great Workshop mutat de la 42 la 49
for($i = 19; $i <= 40; ++$i){
if(in_array((int)$data3['f'.$i.'t'], $capitalOnly)){
mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'t` = 0, `f'.$i.'` = 0 WHERE `vref` = '.$newWid);
+1
View File
@@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id];
$current = $level > 0 ? (int)$bid31[$level]['attri'] : 0;
?>
<div id="build" class="gid31">
<img class="wall-model" src="gpack/travian_default/img/g/g31.gif" alt="<?php echo CITYWALL;?>" style="float:right;margin:2px 0 10px 14px;max-width:110px;height:auto;" />
<h1><?php echo CITYWALL;?> <span class="level"><?php echo LEVEL;?> <?php echo $level;?></span></h1>
<p class="build_desc"><?php echo CITYWALL_DESC;?></p>
+1
View File
@@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id];
$current = $level > 0 ? (int)$bid32[$level]['attri'] : 0;
?>
<div id="build" class="gid32">
<img class="wall-model" src="gpack/travian_default/img/g/g32.gif" alt="<?php echo EARTHWALL;?>" style="float:right;margin:2px 0 10px 14px;max-width:110px;height:auto;" />
<h1><?php echo EARTHWALL;?> <span class="level"><?php echo LEVEL;?> <?php echo $level;?></span></h1>
<p class="build_desc"><?php echo EARTHWALL_DESC;?></p>
+1
View File
@@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id];
$current = $level > 0 ? (int)$bid33[$level]['attri'] : 0;
?>
<div id="build" class="gid33">
<img class="wall-model" src="gpack/travian_default/img/g/g33.gif" alt="<?php echo PALISADE;?>" style="float:right;margin:2px 0 10px 14px;max-width:110px;height:auto;" />
<h1><?php echo PALISADE;?> <span class="level"><?php echo LEVEL;?> <?php echo $level;?></span></h1>
<p class="build_desc"><?php echo PALISADE_DESC;?></p>
+1
View File
@@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id];
$current = $level > 0 ? (int)$bid42[$level]['attri'] : 0;
?>
<div id="build" class="gid42">
<img class="wall-model" src="gpack/travian_default/img/g/g42.gif" alt="<?php echo STONEWALL;?>" style="float:right;margin:2px 0 10px 14px;max-width:110px;height:auto;" />
<h1><?php echo STONEWALL;?> <span class="level"><?php echo LEVEL;?> <?php echo $level;?></span></h1>
<p class="build_desc"><?php echo STONEWALL_DESC;?></p>
+1
View File
@@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id];
$current = $level > 0 ? (int)$bid43[$level]['attri'] : 0;
?>
<div id="build" class="gid43">
<img class="wall-model" src="gpack/travian_default/img/g/g43.gif" alt="<?php echo MAKESHIFTWALL;?>" style="float:right;margin:2px 0 10px 14px;max-width:110px;height:auto;" />
<h1><?php echo MAKESHIFTWALL;?> <span class="level"><?php echo LEVEL;?> <?php echo $level;?></span></h1>
<p class="build_desc"><?php echo MAKESHIFTWALL_DESC;?></p>
+84 -6
View File
@@ -7,7 +7,7 @@
## Type : BUILDING TEMPLATE ##
## --------------------------------------------------------------------------- ##
## Created by : Shadow ##
## Designed by : Shadow ##
## Developed by : Shadow ##
## --------------------------------------------------------------------------- ##
## Contact : cata7007@gmail.com ##
## Project : TravianZ ##
@@ -19,7 +19,70 @@
## --------------------------------------------------------------------------- ##
#################################################################################
global $village, $id;
global $village, $id, $session, $database, $building, $automation;
if(time() - (!empty($_SESSION['time_p']) ? $_SESSION['time_p'] : 0) > 5){
$_SESSION['time_p'] = '';
$_SESSION['error_p'] = '';
}
// --- CHANGE CAPITAL LOGIC (Command Center = echivalentul Palatului la Huni) ---
if($_POST && isset($_GET['action']) && $_GET['action'] == 'change_capital' && !$village->capital){
$pass = $_POST['pass'];
$query = mysqli_query($database->dblink, 'SELECT password FROM `'.TB_PREFIX.'users` WHERE `id` = '.(int)$session->uid);
$data = mysqli_fetch_assoc($query);
if(password_verify($pass, $data['password'])){
$query1 = mysqli_query($database->dblink, 'SELECT wref FROM `'.TB_PREFIX.'vdata` WHERE `owner` = '.(int)$session->uid.' AND `capital` = 1');
$data1 = mysqli_fetch_assoc($query1);
$oldWid = (int)$data1['wref'];
$newWid = (int)$village->wid;
if($oldWid != $newWid){
$query2 = mysqli_query($database->dblink, 'SELECT * FROM `'.TB_PREFIX.'fdata` WHERE `vref` = '.$oldWid);
$data2 = mysqli_fetch_assoc($query2);
$query3 = mysqli_query($database->dblink, 'SELECT * FROM `'.TB_PREFIX.'fdata` WHERE `vref` = '.$newWid);
$data3 = mysqli_fetch_assoc($query3);
// 1. campurile de resurse ale vechii capitale coboara la nivel 10
for($i = 1; $i <= 18; ++$i){
if($data2['f'.$i] > 10){
mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'` = 10 WHERE `vref` = '.$oldWid);
}
}
// 2. sterge Stonemason's Lodge (34) din vechea capitala
for($i = 19; $i <= 40; ++$i){
if($data2['f'.$i.'t'] == 34){
mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'t` = 0, `f'.$i.'` = 0 WHERE `vref` = '.$oldWid);
}
}
// 3. sterge cladirile capital-only din noua capitala
// (Great Barracks 29, Great Stable 30, Great Granary 38, Great Warehouse 39, Great Workshop 49)
$capitalOnly = [29,30,38,39,49];
for($i = 19; $i <= 40; ++$i){
if(in_array((int)$data3['f'.$i.'t'], $capitalOnly)){
mysqli_query($database->dblink, 'UPDATE `'.TB_PREFIX.'fdata` SET `f'.$i.'t` = 0, `f'.$i.'` = 0 WHERE `vref` = '.$newWid);
}
}
$database->changeCapital($oldWid, 0);
$database->changeCapital($newWid);
if(!isset($automation)){
include_once("GameEngine/Automation.php");
}
$automation->recountPop($oldWid, false);
$automation->recountPop($newWid, false);
header("location: build.php?gid=44");
exit;
}
}else{
$error = '<br /><font color="red">'.LOGIN_PW_ERROR.'</font><br />';
$_SESSION['error_p'] = $error;
$_SESSION['time_p'] = time();
echo '<script>location.href="build.php?id='.$building->getTypeField(44).'&confirm=yes";</script>';
exit;
}
}
$level = (int)$village->resarray['f'.$id];
?>
@@ -32,10 +95,6 @@ $level = (int)$village->resarray['f'.$id];
<?php echo COMMANDCENTER_DESC;?>
</p>
<?php if ($village->capital == 1):?>
<p class="act"><?php echo CAPITAL;?></p>
<?php endif;?>
<?php include("25_menu.tpl"); ?>
<?php if ($level >= 10):?>
@@ -44,5 +103,24 @@ $level = (int)$village->resarray['f'.$id];
<div class="c"><?php echo COMMANDCENTER_TRAIN_DESC;?></div>
<?php endif;?>
<?php
// --- CAPITALA: afisare stare / schimbare (identic cu Palatul) ---
if($village->capital == 1) {
echo '<p class="none">'.CAPITAL.'</p>';
} else {
if(empty($_GET['confirm'])) {
print '<p><a href="?id='.$building->getTypeField(44).'&confirm=yes">&raquo; '.CHANGE_CAPITAL.'</a></p>';
} else {
print '<p>Are you sure, that you want to change your capital?<br /><b>You can\'t undo this!</b><br />For security you must enter your password to confirm:<br />
<form method="post" action="build.php?id='.$building->getTypeField(44).'&action=change_capital">
'.(isset($_SESSION['error_p']) ? $_SESSION['error_p'] : '').'
'.PASSWORD.': <input type="password" name="pass" /><br />
<input type="image" id="btn_ok" class="dynamic_img" value="ok" name="s1" src="img/x.gif" alt="'.TRAIN.'" />
</form>
</p>';
}
}
?>
<?php include("upgrade.tpl");?>
</div>
+1
View File
@@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id];
$current = $level > 0 ? (int)$bid47[$level]['attri'] : 0;
?>
<div id="build" class="gid47">
<img class="wall-model" src="gpack/travian_default/img/g/g47.gif" alt="<?php echo DEFENSIVEWALL;?>" style="float:right;margin:2px 0 10px 14px;max-width:110px;height:auto;" />
<h1><?php echo DEFENSIVEWALL;?> <span class="level"><?php echo LEVEL;?> <?php echo $level;?></span></h1>
<p class="build_desc"><?php echo DEFENSIVEWALL_DESC;?></p>
+1
View File
@@ -27,6 +27,7 @@ $level = (int)$village->resarray['f'.$id];
$current = $level > 0 ? (int)$bid50[$level]['attri'] : 0;
?>
<div id="build" class="gid50">
<img class="wall-model" src="gpack/travian_default/img/g/g50.gif" alt="<?php echo BARRICADE;?>" style="float:right;margin:2px 0 10px 14px;max-width:110px;height:auto;" />
<h1><?php echo BARRICADE;?> <span class="level"><?php echo LEVEL;?> <?php echo $level;?></span></h1>
<p class="build_desc"><?php echo BARRICADE_DESC;?></p>
+4 -2
View File
@@ -1,14 +1,16 @@
<?php
$start = ($session->tribe - 1) * 10 + 1;
$end = $start + 5;
$end = $session->tribe * 10;
/* build unit list once (keeps alignment safe) */
global $unitsbytype;
$units = [];
for ($i = $start; $i <= $end; $i++) {
if (in_array($i, [4, 14, 23])) {
// scoutii nu pot fi folositi in farmlist (generic pentru toate triburile)
if (in_array($i, $unitsbytype['scout'])) {
continue;
}