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
+56 -52
View File
@@ -10,28 +10,33 @@
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="imagetoolbar" content="no">
<style>
.log-wrap{max-width:100%;margin:12px;font-family:Tahoma,Verdana,Arial,sans-serif;color:#222}
.log-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.log-head h2{margin:0;font-size:16px;display:flex;align-items:center;gap:6px;color:#111}
.log-filters{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}
.log-filters button{padding:4px 10px;font-size:11px;border:1px solid #bbb;border-radius:14px;background:#f5f5f5;cursor:pointer;color:#222}
.log-filters button.active{background:#2c3e50;color:#fff;border-color:#2c3e50}
.log-card{background:#fff;border:1px solid #bbb;border-radius:6px;overflow:hidden;color:#222}
.logTable{width:100%;border-collapse:collapse;font-size:11px;color:#222}
.logTable th{background:#0891b2;color:#fff;padding:5px 6px;text-align:left;font-weight:bold;font-size:10px;white-space:nowrap}
.logTable td{padding:5px 6px;border-bottom:1px solid #eee;vertical-align:top;line-height:14px;color:#111;background:#fff}
.logTable tr:hover{background:#f5f9ff}
.logTable a{color:#004a9f;text-decoration:none}
.log-wrap{max-width:100%;margin:12px;font-family:Tahoma,Verdana,Arial,sans-serif;color:#e2e8f0}
.log-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.log-head h2{margin:0;font-size:16px;display:flex;align-items:center;gap:6px;color:#f1f5f9}
.log-filters{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.log-filters a{padding:4px 11px;font-size:11px;border:1px solid #334155;border-radius:14px;background:#111827;cursor:pointer;color:#cbd5e1;text-decoration:none;line-height:15px}
.log-filters a:hover{border-color:#f59e0b;color:#fde68a}
.log-filters a.active{background:#f59e0b;color:#1a1a2e;border-color:#f59e0b;font-weight:bold}
.log-card{background:#0b1220;border:1px solid #1f2937;border-radius:8px;overflow:hidden;color:#e2e8f0}
.log-scroll{overflow-x:auto}
.logTable{width:100%;border-collapse:collapse;font-size:11px;color:#cbd5e1}
.logTable th{background:#111827;color:#94a3b8;padding:7px 8px;text-align:left;font-weight:bold;font-size:9px;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #1f2937}
.logTable td{padding:6px 8px;border-bottom:1px solid #14203a;vertical-align:top;line-height:16px;color:#cbd5e1}
.logTable tr:hover td{background:#0f1a30}
.logTable a{color:#7dd3fc;text-decoration:none}
.logTable a:hover{text-decoration:underline}
.logCat{font-weight:bold;padding:2px 6px;border-radius:3px;color:#fff;font-size:10px;white-space:nowrap}
.cat-ban{background:#FF0000}
.cat-unban{background:#27ae60}
.cat-gold{background:#FFCC00;color:#000}
.cat-plus{background:#33CCFF;color:#003344}
.cat-maint{background:#555}
.cat-village{background:#66CCFF;color:#003344}
.cat-msg{background:#e67e22}
.cat-other{background:#CCFF00;color:#000}
.logCat{font-weight:bold;padding:2px 7px;border-radius:4px;color:#fff;font-size:10px;white-space:nowrap}
.cat-ban{background:#dc2626}
.cat-unban{background:#16a34a}
.cat-gold{background:#d97706;color:#fff}
.cat-plus{background:#0891b2;color:#fff}
.cat-maint{background:#475569}
.cat-village{background:#2563eb;color:#fff}
.cat-msg{background:#ea580c}
.cat-other{background:#64748b;color:#fff}
.log-page a{padding:3px 9px;border:1px solid #334155;background:#111827;color:#cbd5e1;text-decoration:none;margin:0 2px;border-radius:4px}
.log-page a:hover{border-color:#f59e0b;color:#fde68a}
.log-page .cur{padding:3px 9px;background:#f59e0b;color:#1a1a2e;margin:0 2px;border-radius:4px;font-weight:bold}
</style>
</head>
<?php
@@ -106,6 +111,15 @@ while($b = mysqli_fetch_assoc($banQ)) {
usort($unified, function($a,$b){ return $b['time'] <=> $a['time']; });
$unified = array_slice($unified, 0, 300);
// Server-side category filter (applies across ALL entries, not just current page)
$catFilter = isset($_GET['cat']) ? strtoupper(preg_replace('/[^A-Za-z]/','',$_GET['cat'])) : 'ALL';
if ($catFilter !== '' && $catFilter !== 'ALL') {
$unified = array_values(array_filter($unified, function($e) use ($catFilter) {
$c = logCategory($e); return $c[0] === $catFilter;
}));
}
$perPage = 20;
$page = isset($_GET['pg']) ? max(1,intval($_GET['pg'])) : 1;
$total = count($unified);
@@ -135,19 +149,24 @@ function logCategory($entry) {
</div>
<div class="log-filters" id="logFilters">
<button class="active" data-filter="all">All</button>
<button data-filter="BAN">🔨 Ban</button>
<button data-filter="UNBAN">🔓 Unban</button>
<button data-filter="GOLD">💰 Gold</button>
<button data-filter="PLUS">⭐ Plus</button>
<button data-filter="BONUS">📈 Bonus</button>
<button data-filter="VILLAGE">🏘 Village</button>
<button data-filter="MESSAGE">✉ Message</button>
<button data-filter="RESET">⚙ Reset</button>
<button data-filter="OTHER">📝 Other</button>
<?php
$cats = [
'all'=>'All','BAN'=>'🔨 Ban','UNBAN'=>'🔓 Unban','GOLD'=>'💰 Gold',
'PLUS'=>'⭐ Plus','BONUS'=>'📈 Bonus','VILLAGE'=>'🏘 Village',
'MESSAGE'=>'✉ Message','RESET'=>'⚙ Reset','OTHER'=>'📝 Other'
];
$curCat = ($catFilter === '' ? 'ALL' : $catFilter);
foreach ($cats as $key=>$label):
$isAll = ($key === 'all');
$active = ($isAll && $curCat === 'ALL') || (!$isAll && $curCat === $key);
$href = 'admin.php?p=admin_log' . ($isAll ? '' : '&cat=' . $key);
?>
<a href="<?php echo $href; ?>" class="<?php echo $active ? 'active' : ''; ?>"><?php echo $label; ?></a>
<?php endforeach; ?>
</div>
<div class="log-card">
<div class="log-scroll">
<table class="logTable" id="logTable">
<thead>
<tr>
@@ -180,27 +199,12 @@ foreach($paged as $e) {
<?php } ?>
</tbody>
</table>
<div style="text-align:center;margin:8px 0;font-size:11px">
<?php if($page>1){ ?><a href="?p=admin_log&pg=<?php echo $page-1;?>" style="padding:3px 8px;border:1px solid #bbb;background:#f5f5f5;text-decoration:none;margin:0 2px">« Prev</a><?php } ?>
<span style="padding:3px 8px;background:#3a4f63;color:#fff;margin:0 2px"><?php echo $page;?> / <?php echo $totalPages;?></span>
<?php if($page<$totalPages){ ?><a href="?p=admin_log&pg=<?php echo $page+1;?>" style="padding:3px 8px;border:1px solid #bbb;background:#f5f5f5;text-decoration:none;margin:0 2px">Next »</a><?php } ?>
</div>
<?php $catQS = ($catFilter !== '' && $catFilter !== 'ALL') ? '&cat='.$catFilter : ''; ?>
<div class="log-page" style="text-align:center;margin:10px 0;font-size:11px">
<?php if($page>1){ ?><a href="admin.php?p=admin_log&pg=<?php echo $page-1;?><?php echo $catQS;?>">« Prev</a><?php } ?>
<span class="cur"><?php echo $page;?> / <?php echo max(1,$totalPages);?></span>
<?php if($page<$totalPages){ ?><a href="admin.php?p=admin_log&pg=<?php echo $page+1;?><?php echo $catQS;?>">Next »</a><?php } ?>
</div>
</div>
</div>
<script>
(function(){
var btns = document.querySelectorAll('#logFilters button');
var rows = document.querySelectorAll('#logTable tbody tr');
btns.forEach(function(b){
b.onclick = function(){
btns.forEach(x=>x.classList.remove('active'));
b.classList.add('active');
var f = b.getAttribute('data-filter');
rows.forEach(function(r){
r.style.display = (f==='all' || r.getAttribute('data-cat')===f) ? '' : 'none';
});
};
});
})();
</script>
+45 -97
View File
@@ -54,114 +54,62 @@ $plansStatus = $plans > 0 ? "Launched ($plans) - ".($plansDate ? date('d.m.Y',$p
$role = $_SESSION['access'] == ADMIN ? 'Administrator' : 'MultiHunter';
?>
<style>
/* === HOME.TPL - FORȚAT CU CULORI === */
.dashboard { max-width:1150px; margin:0 auto; font-family:system-ui, Verdana; }
.dash-head { text-align:center; margin-bottom:24px; }
.dash-head h1 { font-size:26px !important; margin:0 !important; color:##ffffff !important; font-weight:800 !important; letter-spacing:-0.5px; }
.dash-head .sub { color:##ffffff !important; font-size:13px !important; margin-top:6px !important; }
.dash-head .sub b{color:#2563eb !important;}
/* === HOME.TPL — dark dashboard === */
.dashboard { max-width:1150px; margin:0 auto; font-family:system-ui, Verdana, Arial, sans-serif; color:#e2e8f0; }
.dash-head { text-align:center; margin-bottom:22px; }
.dash-head h1 { font-size:24px !important; margin:0 !important; color:#f1f5f9 !important; font-weight:800 !important; letter-spacing:-0.3px; }
.dash-head .sub { color:#94a3b8 !important; font-size:13px !important; margin-top:6px !important; }
.dash-head .sub b{color:#f59e0b !important;}
/* CARDS CENTRATE */
.cards {
display:grid !important;
grid-template-columns: repeat(4, 1fr) !important;
gap:16px !important;
margin:0 auto 24px !important;
max-width:960px !important;
/* CARDS — clean auto-fit grid */
.cards {
display:grid !important;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
gap:14px !important;
margin:0 auto 22px !important;
}
.card {
background:#fff !important;
border:1px solid #e2e8f0 !important;
border-radius:12px !important;
padding:4px !important;
box-shadow:0 2px 8px rgba(0,0,0,.06) !important;
.card {
background:#0b1220 !important;
border:1px solid #1f2937 !important;
border-radius:12px !important;
padding:14px 12px !important;
box-shadow:0 2px 8px rgba(0,0,0,.25) !important;
text-align:center !important;
transition:all .2s;
width:90% !important;
transition:transform .15s, border-color .15s;
}
.card:hover { transform:translateY(-3px); box-shadow:0 6px 16px rgba(0,0,0,.1) !important; }
.card h3 { margin:0 0 8px !important; font-size:11px !important; text-transform:uppercase !important; color:#64748b !important; font-weight:700 !important; letter-spacing:.5px; }
.card .val { font-size:24px !important; font-weight:800 !important; color:#0f172a !important; line-height:1.2; }
.card:hover { transform:translateY(-3px); border-color:#334155 !important; }
.card h3 { margin:0 0 8px !important; font-size:10px !important; text-transform:uppercase !important; color:#94a3b8 !important; font-weight:700 !important; letter-spacing:.5px; }
.card .val { font-size:24px !important; font-weight:800 !important; color:#f1f5f9 !important; line-height:1.2; }
.card .subv { font-size:11px !important; color:#64748b !important; margin-top:6px !important; }
.card.green .val{color:#16a34a !important}
.card.red .val{color:#dc2626 !important}
.card.blue .val{color:#2563eb !important}
.card.orange .val{color:#ea580c !important}
.card .subv a{color:#2563eb !important; text-decoration:none !important; font-weight:600 !important;}
.card.green .val{color:#4ade80 !important}
.card.red .val{color:#f87171 !important}
.card.blue .val{color:#60a5fa !important}
.card.orange .val{color:#fb923c !important}
.card .subv a{color:#7dd3fc !important; text-decoration:none !important; font-weight:600 !important;}
/* PANELS */
.panel { background:#fff !important; border:1px solid #e2e8f0 !important; border-radius:12px !important; padding:16px !important; margin-bottom:20px !important; box-shadow:0 1px 3px rgba(0,0,0,.05) !important; }
.panel h2 { margin:0 0 12px !important; font-size:15px !important; color:#0f172a !important; border-bottom:2px solid #f1f5f9 !important; padding-bottom:8px !important; font-weight:700 !important; }
.panel { background:#0b1220 !important; border:1px solid #1f2937 !important; border-radius:12px !important; padding:16px !important; margin-bottom:18px !important; }
.panel h2 { margin:0 0 12px !important; font-size:14px !important; color:#f1f5f9 !important; border-bottom:1px solid #1f2937 !important; padding-bottom:8px !important; font-weight:700 !important; }
.timeline { display:grid !important; grid-template-columns: repeat(3,1fr) !important; gap:12px !important; }
.timeline div { padding:10px !important; background:#f8fafc !important; border-radius:8px !important; font-size:12px !important; color:#334155 !important; border:1px solid #e2e8f0 !important; }
.timeline b { color:#0f172a !important; font-weight:700 !important; display:block; margin-bottom:3px; }
.timeline { display:grid !important; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)) !important; gap:10px !important; }
.timeline div { padding:10px !important; background:#0f172a !important; border-radius:8px !important; font-size:12px !important; color:#cbd5e1 !important; border:1px solid #1f2937 !important; }
.timeline b { color:#f59e0b !important; font-weight:700 !important; display:block; margin-bottom:3px; }
.grid2 { display:grid !important; grid-template-columns:2fr 1fr !important; gap:16px !important; }
.logmini { font-size:12px !important; }
.logmini div { padding:6px 0 !important; border-bottom:1px dotted #e2e8f0 !important; color:#334155 !important; }
.logmini b{color:#0f172a !important;}
.logmini { font-size:12px !important; }
.logmini div { padding:6px 0 !important; border-bottom:1px dotted #1f2937 !important; color:#cbd5e1 !important; }
.logmini b{color:#f1f5f9 !important;}
.quick a { display:block !important; padding:9px 12px !important; background:#f8fafc !important; margin-bottom:6px !important; text-decoration:none !important; color:#334155 !important; border-radius:8px !important; font-size:12px !important; border:1px solid #e2e8f0 !important; font-weight:500 !important; transition:all .15s; }
.quick a:hover { background:#2563eb !important; color:#fff !important; border-color:#2563eb !important; transform:translateX(3px); }
.quick a { display:block !important; padding:9px 12px !important; background:#0f172a !important; margin-bottom:6px !important; text-decoration:none !important; color:#cbd5e1 !important; border-radius:8px !important; font-size:12px !important; border:1px solid #1f2937 !important; font-weight:500 !important; transition:all .15s; }
.quick a:hover { background:#f59e0b !important; color:#1a1a2e !important; border-color:#f59e0b !important; transform:translateX(3px); }
/* === CREDITS AGRESIV SHADOW === */
.credits {
margin-top:5px !important;
padding:22px 16px !important;
text-align:center !important;
background: linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%) !important;
border:2px solid #dc2626 !important;
border-radius:14px !important;
box-shadow: 0 0 30px rgba(220,38,38,0.4), inset 0 1px 0 rgba(255,255,255,0.08) !important;
position:relative !important;
overflow:hidden !important;
}
.credits::before {
content:""; position:absolute; top:-50%; left:-50%; width:200%; height:200%;
background: radial-gradient(circle, rgba(220,38,38,0.15) 0%, transparent 60%);
animation: rotate 8s linear infinite;
}
.credits .shadow-main {
font-size:17px !important;
font-weight:900 !important;
color:#fff !important;
letter-spacing:1px !important;
text-transform:none !important;
position:relative; z-index:2;
margin-bottom:6px !important;
}
.credits .shadow-main span {
color:#ef4444 !important;
font-size:22px !important;
text-shadow: 0 0 12px rgba(239,68,68,0.9), 0 0 25px rgba(239,68,68,0.6) !important;
animation: pulse 1.8s infinite;
}
.credits .shadow-sub {
font-size:12px !important;
color:#cbd5e1 !important;
font-weight:600 !important;
position:relative; z-index:2;
margin-bottom:8px !important;
}
.credits .shadow-old {
font-size:10px !important;
color:#64748b !important;
position:relative; z-index:2;
border-top:1px solid rgba(255,255,255,0.1) !important;
padding-top:8px !important;
margin-top:8px !important;
}
@keyframes pulse {
0%,100% { transform: scale(1); opacity:1; }
50% { transform: scale(1.05); opacity:0.9; }
}
@keyframes rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* compact footer (replaces the heavy animated credits block) */
.credits { margin-top:6px !important; padding:12px 16px !important; text-align:center !important;
background:#0b1220 !important; border:1px solid #1f2937 !important; border-radius:10px !important; }
.credits .shadow-main { font-size:12px !important; font-weight:700 !important; color:#cbd5e1 !important; }
.credits .shadow-main span { color:#f59e0b !important; }
.credits .shadow-sub { font-size:11px !important; color:#64748b !important; margin-top:3px !important; }
.credits .shadow-old { font-size:10px !important; color:#475569 !important; margin-top:4px !important; }
</style>
<div class="dashboard">
@@ -178,7 +126,7 @@ $role = $_SESSION['access'] == ADMIN ? 'Administrator' : 'MultiHunter';
<div class="card red"><h3>Active Bans</h3><div class="val"><?php echo $activeBans; ?></div><div class="subv"><a href="admin.php?p=ban">manage</a></div></div>
<div class="card"><h3>Last Registration</h3><div class="val" style="font-size:15px !important"><a href="admin.php?p=player&uid=<?php echo $lastReg['id']; ?>" style="color:#2563eb !important"><?php echo htmlspecialchars($lastReg['username']); ?></a></div><div class="subv">ID #<?php echo $lastReg['id']; ?></div></div>
<div class="card"><h3>PHP / MySQL</h3><div class="val" style="font-size:15px !important"><?php echo PHP_VERSION; ?></div><div class="subv"><?php echo $database->dblink->server_info; ?></div></div>
<div class="card"><h3>Server Load</h3><div class="val" style="font-size:15px !important"><?php echo date('H:i:s'); ?></div><div class="subv">Uptime: <?php echo @exec('uptime -p') ?: 'n/a'; ?></div></div>
<div class="card"><h3>Server Clock</h3><div class="val" style="font-size:15px !important"><?php echo date('H:i:s'); ?></div><div class="subv">Uptime: <?php echo @exec('uptime -p') ?: 'n/a'; ?></div></div>
</div>
<!-- TIMELINE NOU - IN PLUS -->
<div class="panel">
+1 -1
View File
@@ -887,8 +887,8 @@ body.app #menu li.sub ul li a:hover{color:#d97706!important}
<li class="sub"><a href="#">Admin</a>
<ul>
<li><a href="?p=admin_log"><font color="Red"><b>Admin Log</b></font></a></li>
<li><a href="?p=heatmap"><font color="Red"><b>World Map Heatmap</b></font></a></li>
<li><a href="?p=questEditor"><font color="Red"><b>Quest Editor</b></font></a></li>
<li><a href="?p=heatmap"><font color="Red"><b>World Map Heatmap</b></font></a></li>
<li><a href="?p=debug_log">Debug Error Log</a></li>
<li><a href="?p=config">Server Settings</a></li>
<li><a href="?p=maintenance">Server Maintenance</a></li>
+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;
}
+65
View File
@@ -0,0 +1,65 @@
/* =========================================================================
TravianZ Admin — Dark theme override
Loaded LAST in admin.php <head> so it wins over admin.css / acp.css.
Scoped to body.app (the logged-in panel); login page keeps its own look.
Palette: page #0f172a · panel #0b1220 · border #1f2937 · header #111827
text #e2e8f0 · muted #94a3b8 · accent #f59e0b · link #7dd3fc
========================================================================= */
body.app{background:#0f172a;color:#e2e8f0}
/* ---- layout containers from admin.css ---- */
body.app #lmidall,body.app #lmidlc,body.app #lmid1,body.app #lmid2,
body.app #lmid3,body.app #content,body.app .nb{background:transparent!important;color:#e2e8f0}
body.app #lmid3 .nb{background:transparent!important}
/* ---- side menu (overrides the white menu declared inline in admin.php) ---- */
body.app #menu{background:#0b1220!important;border:1px solid #1f2937;box-shadow:0 4px 14px rgba(0,0,0,.45)}
body.app #menu>li>a{color:#cbd5e1!important;border-left:3px solid transparent}
body.app #menu>li>a:hover,body.app #menu>li>a.active{background:#111827!important;color:#fde68a!important;border-left-color:#f59e0b}
body.app #menu li.sub>a:before{color:#f59e0b}
body.app #menu li.sub ul{background:#0f172a!important}
body.app #menu li.sub ul li a{color:#94a3b8!important}
body.app #menu li.sub ul li a:hover,body.app #menu li.sub ul li a.active{color:#fde68a!important}
/* ---- typography & links ---- */
body.app h1,body.app h2,body.app h3,body.app h4{color:#f1f5f9}
body.app a{color:#7dd3fc}
body.app a:hover{color:#bae6fd}
body.app hr{border:0;border-top:1px solid #1f2937}
body.app fieldset{border:1px solid #1f2937;border-radius:8px}
body.app legend{color:#f59e0b}
/* ---- classic Travian tables (.tbg) + generic tables ---- */
body.app table.tbg,body.app .tbg{background:#0b1220!important;color:#e2e8f0;border-color:#1f2937!important}
body.app table.tbg th,body.app .tbg th{background:#111827!important;color:#94a3b8!important;border-color:#1f2937!important}
body.app table.tbg td,body.app .tbg td{background:#0b1220!important;color:#e2e8f0;border-color:#1f2937!important}
body.app table.tbg tr:hover td,body.app .tbg tr:hover td{background:#0f1a30!important}
/* generic unclassed tables that some pages render via admin.css */
body.app #lmid3 table:not([class]) th{background:#111827;color:#94a3b8;border-color:#1f2937}
body.app #lmid3 table:not([class]) td{border-color:#1f2937}
/* ---- form controls ---- */
body.app input[type=text],body.app input[type=password],body.app input[type=number],
body.app input[type=email],body.app input[type=search],body.app input[type=date],
body.app input[type=datetime-local],body.app select,body.app textarea,body.app .fm{
background:#0b1220!important;color:#e2e8f0!important;border:1px solid #334155!important;
border-radius:5px;padding:5px 7px}
body.app input::placeholder,body.app textarea::placeholder{color:#64748b}
body.app input:focus,body.app select:focus,body.app textarea:focus{border-color:#f59e0b!important;outline:none}
body.app select option{background:#0b1220;color:#e2e8f0}
body.app input[type=submit],body.app input[type=button],body.app button,
body.app .adminButton,body.app .button{
background:#f59e0b;color:#1a1a2e;border:0;border-radius:6px;padding:6px 14px;
cursor:pointer;font-weight:bold}
body.app input[type=submit]:hover,body.app input[type=button]:hover,
body.app button:hover,body.app .adminButton:hover,body.app .button:hover{background:#fbbf24}
/* checkbox / radio accent */
body.app input[type=checkbox],body.app input[type=radio]{accent-color:#f59e0b}
/* medal mouseover tooltip layer (from admin.css) */
body.app #medal_mouseover table{background:#0b1220;color:#e2e8f0;border:1px solid #1f2937}
body.app #medal_mouseover table th{background:#111827;color:#94a3b8}