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 . "&nbsp;&nbsp;杩斿洖鐜╁鎬绘暟: " . $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 "&nbsp;&nbsp;";
+        echo '<input type="checkbox" name="onlyServerID" id="onlyServerID" ' . ($onlyServerID == "on" ? "checked" : "") . ' />' . \Lang\gettext("浠呮樉绀烘湰鏈�");
         ?>
-    </table>
-    <hr />
+        &nbsp;&nbsp;<input type="submit" name="submit" value="<?php echo \Lang\gettext("鏌ヨ"); ?>" class="button green medium" />
+        <hr />
+        <?php echo "鐜╁鎬绘暟: " . $TotalCount . "&nbsp;&nbsp;杩斿洖鐜╁鎬绘暟: " . $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