getAlliance($aid);
$aliusers = $database->getAllMember($aid);
if($alidata && $aliusers) {
$memberIDs = array_column($aliusers, 'id');
$data = $database->getVSumField($memberIDs,"pop");
$totalpop = 0;
if(count($data)) {
foreach($data as $row) { $totalpop += $row['Total']; }
}
$founder = $database->getUserField($alidata['leader'],"username",0);
// --- FIX 1: calculeaza max membri dupa Ambasada (lvl 20 = 60) ---
$embassyLevel = 0;
$leaderId = (int)$alidata['leader'];
// 1. ia toate satele liderului din vdata
$villages = [];
$vq = mysqli_query($GLOBALS["link"], "SELECT wref FROM ".TB_PREFIX."vdata WHERE owner = $leaderId");
while($v = mysqli_fetch_assoc($vq)) {
$villages[] = (int)$v['wref'];
}
if(!empty($villages)) {
$in = implode(',', $villages);
// 2. cauta in fdata, in TOATE coloanele *t, unde tipul = 18
// MODIFICARE: punem MAX in jurul GREATEST ca sa luam cel mai mare nivel din TOATE orasele
$sql = "SELECT MAX(
GREATEST(
IF(f1t=18,IFNULL(f1,0),0), IF(f2t=18,IFNULL(f2,0),0), IF(f3t=18,IFNULL(f3,0),0), IF(f4t=18,IFNULL(f4,0),0), IF(f5t=18,IFNULL(f5,0),0),
IF(f6t=18,IFNULL(f6,0),0), IF(f7t=18,IFNULL(f7,0),0), IF(f8t=18,IFNULL(f8,0),0), IF(f9t=18,IFNULL(f9,0),0), IF(f10t=18,IFNULL(f10,0),0),
IF(f11t=18,IFNULL(f11,0),0), IF(f12t=18,IFNULL(f12,0),0), IF(f13t=18,IFNULL(f13,0),0), IF(f14t=18,IFNULL(f14,0),0), IF(f15t=18,IFNULL(f15,0),0),
IF(f16t=18,IFNULL(f16,0),0), IF(f17t=18,IFNULL(f17,0),0), IF(f18t=18,IFNULL(f18,0),0), IF(f19t=18,IFNULL(f19,0),0), IF(f20t=18,IFNULL(f20,0),0),
IF(f21t=18,IFNULL(f21,0),0), IF(f22t=18,IFNULL(f22,0),0), IF(f23t=18,IFNULL(f23,0),0), IF(f24t=18,IFNULL(f24,0),0), IF(f25t=18,IFNULL(f25,0),0),
IF(f26t=18,IFNULL(f26,0),0), IF(f27t=18,IFNULL(f27,0),0), IF(f28t=18,IFNULL(f28,0),0), IF(f29t=18,IFNULL(f29,0),0), IF(f30t=18,IFNULL(f30,0),0),
IF(f31t=18,IFNULL(f31,0),0), IF(f32t=18,IFNULL(f32,0),0), IF(f33t=18,IFNULL(f33,0),0), IF(f34t=18,IFNULL(f34,0),0), IF(f35t=18,IFNULL(f35,0),0),
IF(f36t=18,IFNULL(f36,0),0), IF(f37t=18,IFNULL(f37,0),0), IF(f38t=18,IFNULL(f38,0),0), IF(f39t=18,IFNULL(f39,0),0), IF(f40t=18,IFNULL(f40,0),0),
IF(f99t=18,IFNULL(f99,0),0)
)
) as emb_lvl
FROM ".TB_PREFIX."fdata WHERE vref IN ($in)";
$embQ = mysqli_query($GLOBALS["link"], $sql);
if($er = mysqli_fetch_assoc($embQ)) {
$embassyLevel = (int)$er['emb_lvl'];
}
}
$maxMembers = $embassyLevel * 3;
if($maxMembers < 3) $maxMembers = 3;
// --- FIX 3: calculeaza rank real dupa puncte ---
$allianceRank = 1;
$rankSql = "SELECT a.id, COALESCE(SUM(v.pop),0) as pts FROM ".TB_PREFIX."alidata a LEFT JOIN ".TB_PREFIX."users u ON u.alliance=a.id LEFT JOIN ".TB_PREFIX."vdata v ON v.owner=u.id GROUP BY a.id ORDER BY pts DESC";
$rankRes = mysqli_query($GLOBALS["link"], $rankSql);
while($rr = mysqli_fetch_assoc($rankRes)){ if((int)$rr['id'] == $aid) break; $allianceRank++; }
?>
📋 Alliance Details
| Tag | |
| Name | |
| Rank | # |
| Points | |
| Capacity |
=$maxMembers?'full':'ok'; ?>
|
🛡 Alliance Positions
';
}
?>
👥 Members ()
| # | Player | Population | Villages | |
getProfileVillages($memberIDs);
foreach($aliusers as $user){
$rank++;
$TotalUserPop = $database->getVSumField($user['id'],"pop");
$TotalVillages = $database->getProfileVillages($user['id']);
echo "";
echo "| $rank. | ";
echo "".htmlspecialchars($user['username'])." | ";
echo "".(int)$TotalUserPop." | ";
echo "".count($TotalVillages)." | ";
echo "";
if((time()-600) < $user['timestamp']) echo " ";
elseif((time()-86400) < $user['timestamp']) echo " ";
elseif((time()-259200) < $user['timestamp']) echo " ";
elseif((time()-604800) < $user['timestamp']) echo " ";
else echo " ";
echo " |
";
}
?>
Alliance not found... Back";
}
}
?>