From d94b9ed8a538839897bc7b8c83ebd60c84780a94 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期五, 13 三月 2026 17:34:11 +0800
Subject: [PATCH] 16 卡牌服务端(后台服务器->玩家列表 增加最近登录、祝福树、官职信息展示;改为直接中心数据查询,支持查全服玩家列表;游戏服同步中心数据增加ClientVersion信息;)
---
serverinfo/playerlist.php | 127 ++++++++++++++++++++++++++---------------
1 files changed, 80 insertions(+), 47 deletions(-)
diff --git a/serverinfo/playerlist.php b/serverinfo/playerlist.php
index 93ff4f7..7f75e31 100644
--- a/serverinfo/playerlist.php
+++ b/serverinfo/playerlist.php
@@ -14,18 +14,36 @@
}
$server_id = $_SESSION['server_id'];
-// 璁剧疆榛樿鏁版嵁锛屽紑鐣岄潰榛樿鏌ラ�変腑鏈�
-$_POST["eventType"] = "PlayerList";
-\CommFunc\QueryEventData($user, $retInfo);
-
-$dataArray = array();
-$TotalCount = 0;
-$ShowCount = 0;
-if (isset($retInfo) && array_key_exists($server_id, $retInfo) && $retInfo[$server_id]["OK"] == 1) {
- $dataArray = $retInfo[$server_id]["Data"];
- $TotalCount = $retInfo[$server_id]["TotalCount"];
- $ShowCount = count($dataArray);
+$isSpecialAccount = False;
+\CommFunc\GetConfig("ServerInfo", "SpecialAccountList", $SpecialAccountList);
+$SpecialAccountList = explode(",", $SpecialAccountList);
+// 鐗规畩璐﹀彿锛屽彧鑳界湅鏈湇
+if (in_array($UserAccount, $SpecialAccountList)) {
+ $isSpecialAccount = True;
}
+
+$onlyServerID = "on";
+if (array_key_exists("submit", $_POST)) {
+ $onlyServerID = $_POST["onlyServerID"];
+}
+
+$find = array("Channel" => $spid);
+if ($onlyServerID == 'on' || $isSpecialAccount) {
+ $serversCfg = $user->GetServersCfg($spid);
+ if (array_key_exists($server_id, $serversCfg)) {
+ $find["ServerID"] = intval($serversCfg[$server_id]["ServerID"]);
+ }
+}
+
+$limit = 100;
+if (array_key_exists("limit", $_POST) && intval($_POST["limit"]) > 0) {
+ $limit = intval($_POST["limit"]);
+}
+
+$TotalCount = \DBOper\Count("ServerRoles", $find);
+\DBOper\Find("ServerRoles", $find, $dataArray, null, array("LV" => -1), $limit);
+$ShowCount = count($dataArray);
+
// echo "_POST:", print_r($dataArray, true), "<br/>";
//鏄剧ず琛ㄦ牸瀛楁閰嶇疆 key-鍙傛暟鍚嶏紝value-璇存槑
@@ -33,11 +51,13 @@
"Num" => array(\Lang\gettext("缂栧彿"), "3%", "center"),
"AccID" => array(\Lang\gettext("璐﹀彿"), "10%", "center"),
"PlayerName" => array(\Lang\gettext("鐜╁鍚�"), "10%", "center"),
- "PlayerID" => array(\Lang\gettext("PlayerID"), "6%", "center"),
- "LV" => array(\Lang\gettext("绛夌骇"), "3%", "center"),
+ "PlayerID" => array(\Lang\gettext("PlayerID"), "3%", "center"),
+ "LV" => array(\Lang\gettext("绛夌骇"), "2%", "center"),
"CreateRoleTime" => array(\Lang\gettext("鍒涜鏃堕棿"), "7%", "center"),
- "ChangeCoinPointTotal" => array(\Lang\gettext("Coin"), "5%", "center"),
- "VIPLv" => array(\Lang\gettext("VIPLv"), "2%", "center"),
+ "LoginTime" => array(\Lang\gettext("鏈�杩戠櫥褰�"), "7%", "center"),
+ // "ChangeCoinPointTotal" => array(\Lang\gettext("Coin"), "5%", "center"),
+ "TreeLV" => array(\Lang\gettext("绁濈鏍�"), "2%", "center"),
+ "ReamlLV" => array(\Lang\gettext("瀹樿亴"), "2%", "center"),
"ClientVersion" => array(\Lang\gettext("ClientVersion"), "10%", "center"),
);
@@ -56,41 +76,54 @@
<center>
<p><b><?php echo \Lang\gettext("鐜╁鍒楄〃"); ?></b></P>
</center>
- <?php echo "鐜╁鎬绘暟: " . $TotalCount . " 杩斿洖鐜╁鎬绘暟: " . $ShowCount; ?>
<hr />
- <table width="100%">
+ <form method="post">
+ 鍓峹鍚�: <input type="number" name="limit" id="limit" value="<?php echo $limit ?>" min="1" />
<?php
- if ($dataArray) {
- echo "<thead><tr>";
- foreach ($tableArray as $value) {
- echo "<th width=\"" . $value[1] . "\">" . $value[0] . "</td>";
- }
- echo "</tr></thead>";
- } else {
- echo \Lang\gettext("鏆傛棤鏁版嵁"), "<br/>";
- }
-
- $Num = $skip;
- foreach ($dataArray as $info) {
- $Num += 1;
- echo "<tr class='trc'>";
- foreach ($tableArray as $key => $value) {
- if (!$key) {
- continue;
- }
- $tdContent = $info[$key];
- if ($key == "Num") {
- $tdContent = $Num;
- }
- echo "<td align='" . $value[2] . "' style=\"display:table-cell; vertical-align:middle\">";
- echo "<div id='" . $key . "_" . $Num . "'>" . $tdContent . "</div>";
- echo "</td>";
- }
- echo "</tr>";
- }
+ // 浠呮樉绀烘湰鏈�
+ echo " ";
+ echo '<input type="checkbox" name="onlyServerID" id="onlyServerID" ' . ($onlyServerID == "on" ? "checked" : "") . ' />' . \Lang\gettext("浠呮樉绀烘湰鏈�");
?>
- </table>
- <hr />
+ <input type="submit" name="submit" value="<?php echo \Lang\gettext("鏌ヨ"); ?>" class="button green medium" />
+ <hr />
+ <?php echo "鐜╁鎬绘暟: " . $TotalCount . " 杩斿洖鐜╁鎬绘暟: " . $ShowCount; ?>
+ <hr />
+ <table width="100%">
+ <?php
+ if ($dataArray) {
+ echo "<thead><tr>";
+ foreach ($tableArray as $value) {
+ echo "<th width=\"" . $value[1] . "\">" . $value[0] . "</td>";
+ }
+ echo "</tr></thead>";
+ } else {
+ echo \Lang\gettext("鏆傛棤鏁版嵁"), "<br/>";
+ }
+
+ $Num = $skip;
+ foreach ($dataArray as $info) {
+ $Num += 1;
+ echo "<tr class='trc'>";
+ foreach ($tableArray as $key => $value) {
+ if (!$key) {
+ continue;
+ }
+ $tdContent = $info[$key];
+ if ($key == "Num") {
+ $tdContent = $Num;
+ } elseif ($key == "AccID") {
+ $tdContent = $info["AccountID"] . "@" . $info["Channel"] . "@s" . $info["ServerID"];
+ }
+ echo "<td align='" . $value[2] . "' style=\"display:table-cell; vertical-align:middle\">";
+ echo "<div id='" . $key . "_" . $Num . "'>" . $tdContent . "</div>";
+ echo "</td>";
+ }
+ echo "</tr>";
+ }
+ ?>
+ </table>
+ <hr />
+ </form>
</body>
<script type='text/javascript' src="/js/common.js"></script>
--
Gitblit v1.8.0