<?php
|
include_once "/Account/User.php";
|
include_once "/Common/Logging.php";
|
include_once "/Common/CommFunc.php";
|
include_once "/language/lang.php";
|
|
\Logging\CreateLogging("GMT_CrossBattleChampionSet.php");
|
|
\CommFunc\SessionStart();
|
$Permission = \User\Permission::P_CrossBattleChampionSet;
|
$spid = $_SESSION['spid'];
|
$user = new \User\User($_SESSION['UserAccount']);
|
if (!$user->HavePermission($Permission)) {
|
exit;
|
}
|
|
$resultInfo = $_POST;
|
$ResultMsg = $resultInfo["ResultMsg"];
|
$ErrorInfo = "";
|
|
\Logging\LogInfo("ResultMsg: " . json_encode($ResultMsg));
|
|
$TeamMax = 8; // 固定,需与游戏服务器设定一致
|
$TeamPlayerCount = 4; // 可自由变动,默认4人
|
$StartDate = "";
|
$ActID = 0;
|
|
$PlayerInfo = array(); // {"playerID":{attrKey:value, ...}, ...}
|
$TeamInfo = array(); // {"teamNum":{"PlayerIDList":[PlayerID, ...], "WinCount":0}, ...}
|
if ($ResultMsg) {
|
$ErrorInfo = $ResultMsg["ErrorInfo"];
|
$ActID = $ResultMsg["ActID"];
|
$StartDate = $ResultMsg["StartDate"];
|
$TeamPlayerCount = $ResultMsg["TeamPlayerCount"];
|
$PlayerInfo = $ResultMsg["PlayerInfo"] ? $ResultMsg["PlayerInfo"] : array();
|
$TeamInfo = $ResultMsg["TeamInfo"] ? $ResultMsg["TeamInfo"] : array();
|
}
|
|
?>
|
<!DOCTYPE html>
|
<html>
|
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
|
<title><?php echo \Lang\gettext("跨服战场冠军赛"); ?></title>
|
<link rel="gettext" type="application/x-po" href="../language/<?php echo \Lang\getLang(); ?>/LC_MESSAGES/<?php echo \Lang\getjspodomain(); ?>.po" />
|
</head>
|
|
<body>
|
<hr />
|
<form id="CrossBattleChampionSet" name="CrossBattleChampionSet" action="/Common/GMCmdProcess.php" method="post">
|
<center>
|
<p><?php echo \Lang\gettext("跨服战场冠军赛"); ?></P>
|
</center>
|
<?php
|
if (!$ActID) {
|
echo \Lang\gettext("当前暂无活动"), "<br/>";
|
} else {
|
echo \Lang\gettext("当前已有活动"), ": ", $StartDate, " "
|
. \Lang\gettext("State"), ": ", $ResultMsg["State"], " "
|
. \Lang\gettext("StateError"), ": ", $ResultMsg["StateError"], "<br/>";
|
if (count($PlayerInfo) == 0) {
|
echo \Lang\gettext("当前活动没有指定参赛玩家,活动开始时将默认取上周古神战场周积分排行玩家作为参赛玩家"), "<br/>";
|
}
|
}
|
?>
|
<br />
|
<?php echo \Lang\gettext("活动日期"); ?>:
|
<input type="text" name="StartDate" id="StartDate" onclick="new Calendar().show(this);" readonly value="<?php echo $StartDate; ?>" size="8" />
|
<input type="submit" name="changeNoPlayer" value="<?php echo \Lang\gettext("不指定玩家添加活动"); ?>" onclick="return CheckKey('key', true)" />
|
(<?php echo \Lang\gettext("注:如果不指定玩家直接添加活动则活动开始时会默认取上周古神战场周积分排行玩家作为参赛玩家"); ?>)
|
<br />
|
<?php echo \Lang\gettext("每队人数"); ?>:
|
<input type="hidden" name="TeamMax" value="<?php echo $TeamMax; ?>" />
|
<input type="text" name="TeamPlayerCount" value="<?php echo $TeamPlayerCount; ?>" size="8" />
|
<input type="submit" name="changeTeamPlayerCount" value="<?php echo \Lang\gettext("调整队伍人数"); ?>" />
|
<input type="button" value="<?php echo \Lang\gettext("清空玩家"); ?>" onclick="ClearPlayer()" />
|
<br /> <br />
|
|
<?php
|
for ($tNum = 1; $tNum <= $TeamMax; $tNum += 2) {
|
$teamNumA = $tNum;
|
$teamNumB = $tNum + 1;
|
|
$teamA = ($TeamInfo && array_key_exists("" . $teamNumA, $TeamInfo)) ? $TeamInfo["" . $teamNumA] : array();
|
$teamB = ($TeamInfo && array_key_exists("" . $teamNumB, $TeamInfo)) ? $TeamInfo["" . $teamNumB] : array();
|
|
// \Logging\LogInfo("teamNumA: " . json_encode($teamA));
|
// \Logging\LogInfo("teamNumB: " . json_encode($teamB));
|
|
$PlayerIDListA = $teamA["PlayerIDList"];
|
$PlayerIDListB = $teamB["PlayerIDList"];
|
|
$WinCountA = $teamA["WinCount"];
|
$WinCountB = $teamB["WinCount"];
|
|
echo "<table>";
|
echo "<tr>";
|
echo "<td align='center'>" . \Lang\gettext("队伍") . $teamNumA . " " . \Lang\gettext("胜场") . "x" . $WinCountA . " " . \Lang\gettext("账号") . "</td>";
|
if ($tNum == 1) {
|
echo "<td align='center'>" . \Lang\gettext("昵称") . "</td><td align='center'>" . \Lang\gettext("战斗力") . "</td>";
|
} else {
|
echo "<td></td><td></td>";
|
}
|
echo "<td></td>"; // VS 行
|
if ($tNum == 1) {
|
echo "<td align='center'>" . \Lang\gettext("战斗力") . "</td><td align='center'>" . \Lang\gettext("昵称") . "</td>";
|
} else {
|
echo "<td></td><td></td>";
|
}
|
echo "<td align='center'>" . \Lang\gettext("队伍") . $teamNumB . " " . \Lang\gettext("胜场") . "x" . $WinCountB . " " . \Lang\gettext("账号") . "</td>";
|
echo "</tr>";
|
|
for ($pNum = 1; $pNum <= $TeamPlayerCount; $pNum++) {
|
$wNumA = $teamNumA * 100 + $pNum;
|
$wNumB = $teamNumB * 100 + $pNum;
|
|
$PlayerIDA = ($PlayerIDListA && count($PlayerIDListA) >= $pNum) ? $PlayerIDListA[$pNum - 1] : 0;
|
$PlayerIDB = ($PlayerIDListB && count($PlayerIDListB) >= $pNum) ? $PlayerIDListB[$pNum - 1] : 0;
|
|
$PlayerA = array_key_exists("" . $PlayerIDA, $PlayerInfo) ? $PlayerInfo["" . $PlayerIDA] : array();
|
$PlayerB = array_key_exists("" . $PlayerIDB, $PlayerInfo) ? $PlayerInfo["" . $PlayerIDB] : array();
|
|
// \Logging\LogInfo("PlayerIDA=" . $PlayerIDA . " : " . json_encode($PlayerA));
|
// \Logging\LogInfo("PlayerIDB=" . $PlayerIDB . " : " . json_encode($PlayerB));
|
|
$AccIDA = array_key_exists("AccID", $PlayerA) ? $PlayerA["AccID"] : "";
|
$AccIDB = array_key_exists("AccID", $PlayerB) ? $PlayerB["AccID"] : "";
|
$NameA = array_key_exists("Name", $PlayerA) ? $PlayerA["Name"] : "";
|
$NameB = array_key_exists("Name", $PlayerB) ? $PlayerB["Name"] : "";
|
$FightPowerA = array_key_exists("FightPower", $PlayerA) ? $PlayerA["FightPower"] : 0;
|
$FightPowerB = array_key_exists("FightPower", $PlayerB) ? $PlayerB["FightPower"] : 0;
|
$JobA = array_key_exists("Job", $PlayerA) ? $PlayerA["Job"] : 1;
|
$JobB = array_key_exists("Job", $PlayerB) ? $PlayerB["Job"] : 1;
|
$LVA = array_key_exists("LV", $PlayerA) ? $PlayerA["LV"] : 1;
|
$LVB = array_key_exists("LV", $PlayerB) ? $PlayerB["LV"] : 1;
|
|
echo "<tr>";
|
echo "<input type='hidden' name='LV_" . $wNumA . "' id='LV_" . $wNumA . "' value='" . $LVA . "'/>";
|
echo "<input type='hidden' name='Job_" . $wNumA . "' id='Job_" . $wNumA . "' value='" . $JobA . "'/>";
|
echo "<input type='hidden' name='FightPower_" . $wNumA . "' id='FightPower_" . $wNumA . "' value='" . $FightPowerA . "'/>";
|
echo "<input type='hidden' name='Name_" . $wNumA . "' id='Name_" . $wNumA . "' value='" . $NameA . "'/>";
|
echo "<input type='hidden' name='PlayerID_" . $wNumA . "' id='PlayerID_" . $wNumA . "' value='" . $PlayerIDA . "'/>";
|
|
echo "<td><input type='text' name='AccID_" . $wNumA . "' id='AccID_" . $wNumA . "' value='" . $AccIDA . "'/></td>";
|
echo "<td width='150' align='center'><div id='NameShow_" . $wNumA . "'>" . $NameA . "</div></td>";
|
echo "<td width='150' align='center'><div id='FightPowerShow_" . $wNumA . "'>" . ($FightPowerA > 0 ? $FightPowerA : "") . "</div></td>";
|
if ($pNum == 1) {
|
echo "<td width='100' align='center' rowspan='" . $TeamPlayerCount . "'>";
|
echo "VS";
|
echo "</td>";
|
}
|
echo "<td width='150' align='center'><div id='FightPowerShow_" . $wNumB . "'>" . ($FightPowerB > 0 ? $FightPowerB : "") . "</div></td>";
|
echo "<td width='150' align='center'><div id='NameShow_" . $wNumB . "'>" . $NameB . "</div></td>";
|
echo "<td><input type='text' name='AccID_" . $wNumB . "' id='AccID_" . $wNumB . "' value='" . $AccIDB . "'/></td>";
|
|
echo "<input type='hidden' name='LV_" . $wNumB . "' id='LV_" . $wNumB . "' value='" . $LVB . "'/>";
|
echo "<input type='hidden' name='Job_" . $wNumB . "' id='Job_" . $wNumB . "' value='" . $JobB . "'/>";
|
echo "<input type='hidden' name='FightPower_" . $wNumB . "' id='FightPower_" . $wNumB . "' value='" . $FightPowerB . "'/>";
|
echo "<input type='hidden' name='Name_" . $wNumB . "' id='Name_" . $wNumB . "' value='" . $NameB . "'/>";
|
echo "<input type='hidden' name='PlayerID_" . $wNumB . "' id='PlayerID_" . $wNumB . "' value='" . $PlayerIDB . "'/>";
|
echo "</tr>";
|
}
|
echo "</table>";
|
echo "<br/>";
|
}
|
?>
|
|
<?php
|
if ($user->NeedCheckKey()) {
|
echo "<dd class=\"def_dd\">";
|
echo \Lang\gettext("授权码(key)") . ":";
|
echo "<input type=\"text\" name=\"key\" id=\"key\" />";
|
echo "<p class=\"clear\"></p>";
|
echo "</dd>";
|
} else {
|
echo "<input type=\"hidden\" name=\"key\" id=\"key\" />";
|
}
|
?>
|
<input type="hidden" id="CheckPlayerState" value="0" />
|
<input type="hidden" name="Permission" value="<?php echo $Permission; ?>" />
|
<input type="hidden" name="pack_type" value="GMT_CrossBattleChampionSet" />
|
<dd class="submit_dd">
|
<input type="button" name="refresh" value="<?php echo \Lang\gettext("检查刷新玩家数据"); ?>" onclick="CheckTeamPlayer()" /> |
|
<input type="submit" name="change" value="<?php echo \Lang\gettext("添加/修改活动数据"); ?>" onclick="return CheckKey('key', false)" />
|
</dd>
|
</form>
|
<hr />
|
<?php
|
echo \Lang\gettext("活动说明"), ":", "<br/>";
|
echo "◇", \Lang\gettext("参赛队伍固定8支队伍,每队默认玩家数4人,可通过“调整队伍人数”按钮调整每个队伍参赛人数;"), "<br/>";
|
echo "◇", \Lang\gettext("可不指定参赛玩家直接设置一个活动日期即可,那么活动开始时会默认取上周古神战场周积分排行玩家作为参赛玩家;"), "<br/>";
|
echo "◇", \Lang\gettext("对战队伍规则:队伍1对战队伍2,队伍3对战队伍4,以此类推,胜利队伍再按队伍编号顺序两两对战,直到决出冠军队伍;"), "<br/>";
|
echo "<br/>";
|
echo \Lang\gettext("使用步骤"), ":", "<br/>";
|
echo "1. ", \Lang\gettext("设置一个活动时间,必须大于当前日期;"), "<br/>";
|
echo "2. ", \Lang\gettext("配置参赛队伍玩家,也可不添加玩家,如果不添加玩家直接点击“不指定玩家添加活动”按钮即可;"), "<br/>";
|
echo "3. ", \Lang\gettext("配置好参赛队伍玩家后,点击“检查刷新玩家数据”,此步骤主要为了确保添加的玩家准确无误;"), "<br/>";
|
echo "4. ", \Lang\gettext("检查确保账号都准确无误后,点击“添加/修改活动数据”提交即可;"), "<br/>";
|
echo "5. ", \Lang\gettext("活动未开始时,可随意调整活动时间及参赛玩家,活动进行中无法修改数据;"), "<br/>";
|
echo "<br/>";
|
echo \Lang\gettext("State说明"), ":", "<br/>";
|
echo \Lang\gettext("State: 0 代表活动未开始,玩家看不到最新活动信息;"), "<br/>";
|
echo \Lang\gettext("State: 81 代表活动开始,分组完毕,此阶段为战前准备阶段,玩家可看到活动及队伍对战信息;"), "<br/>";
|
echo \Lang\gettext("State: 82 代表首战开始,各队伍可进入战场;"), "<br/>";
|
echo \Lang\gettext("State: 83 代表首战战斗阶段;"), "<br/>";
|
echo \Lang\gettext("State: 41 代表半决赛准备阶段;"), "<br/>";
|
echo \Lang\gettext("State: 42 代表半决赛开始,上一场获胜队伍可进入战场;"), "<br/>";
|
echo \Lang\gettext("State: 43 代表半决赛战斗阶段;"), "<br/>";
|
echo \Lang\gettext("State: 21 代表决赛准备阶段;"), "<br/>";
|
echo \Lang\gettext("State: 22 代表决赛开始,上一场获胜队伍可进入战场;"), "<br/>";
|
echo \Lang\gettext("State: 23 代表决赛战斗阶段;"), "<br/>";
|
echo \Lang\gettext("State: 10 代表结果展示期,此阶段为活动结果展示;"), "<br/>";
|
|
echo \Lang\gettext("StateError: 0 代表活动正常进行中;"), "<br/>";
|
echo \Lang\gettext("StateError: 1 代表活动流程出现异常情况,活动无法正常进行下去;"), "<br/>";
|
?>
|
<script type='text/javascript' src='/language/gettext.js'></script>
|
<script type='text/javascript' src="/js/calendar.js"></script>
|
<script type='text/javascript' src="/js/common.js"></script>
|
<script type="text/javascript">
|
window.onload = function() {
|
var ErrorInfo = "<?php echo $ErrorInfo; ?>";
|
if (ErrorInfo) {
|
alert(ErrorInfo);
|
}
|
}
|
|
function ClearPlayer() {
|
var TeamMax = "<?php echo $TeamMax; ?>";
|
var TeamPlayerCount = "<?php echo $TeamPlayerCount; ?>";
|
var accIDs = "";
|
for (let tNum = 1; tNum <= TeamMax; tNum++) {
|
for (let pNum = 1; pNum <= TeamPlayerCount; pNum++) {
|
const wNum = tNum * 100 + pNum;
|
|
document.getElementById("AccID_" + wNum).value = "";
|
|
const nameShowObj = document.getElementById("NameShow_" + wNum);
|
const fightPowerShowObj = document.getElementById("FightPowerShow_" + wNum);
|
|
const nameObj = document.getElementById("Name_" + wNum);
|
const playerIDObj = document.getElementById("PlayerID_" + wNum);
|
const fightPowerObj = document.getElementById("FightPower_" + wNum);
|
const jobObj = document.getElementById("Job_" + wNum);
|
const lvObj = document.getElementById("LV_" + wNum);
|
|
nameShowObj.innerHTML = "";
|
fightPowerShowObj.innerHTML = "";
|
nameObj.value = "";
|
playerIDObj.value = 0;
|
fightPowerObj.value = 0;
|
jobObj.value = 1;
|
lvObj.value = 1;
|
}
|
}
|
document.getElementById("CheckPlayerState").value = 0;
|
}
|
|
function CheckTeamPlayer() {
|
var TeamMax = "<?php echo $TeamMax; ?>";
|
var TeamPlayerCount = "<?php echo $TeamPlayerCount; ?>";
|
var accIDs = "";
|
for (let tNum = 1; tNum <= TeamMax; tNum++) {
|
for (let pNum = 1; pNum <= TeamPlayerCount; pNum++) {
|
const wNum = tNum * 100 + pNum;
|
const accID = document.getElementById("AccID_" + wNum).value;
|
if (!accID) {
|
continue;
|
}
|
if (accIDs) {
|
accIDs += "|";
|
}
|
if (accIDs.indexOf(accID) != -1) {
|
alert("玩家账号重复: <?php echo \Lang\gettext("队伍"); ?>" + tNum + " <?php echo \Lang\gettext("玩家"); ?>" + pNum);
|
document.getElementById("AccID_" + wNum).focus();
|
return;
|
}
|
accIDs += accID;
|
}
|
}
|
if (!accIDs) {
|
alert("<?php echo \Lang\gettext("请添加队伍玩家账号"); ?>");
|
return;
|
}
|
|
var br = getbr();
|
// console.log(accIDs);
|
ajaxRequest("/Common/Queryroles.php?accIDs=" + accIDs,
|
function(xmlhttp) {
|
var res = JSON.parse(xmlhttp.responseText);
|
console.log(res);
|
var unknownAccIDList = [];
|
for (let tNum = 1; tNum <= TeamMax; tNum++) {
|
for (let pNum = 1; pNum <= TeamPlayerCount; pNum++) {
|
const wNum = tNum * 100 + pNum;
|
const accID = document.getElementById("AccID_" + wNum).value;
|
|
const nameShowObj = document.getElementById("NameShow_" + wNum);
|
const fightPowerShowObj = document.getElementById("FightPowerShow_" + wNum);
|
|
const nameObj = document.getElementById("Name_" + wNum);
|
const playerIDObj = document.getElementById("PlayerID_" + wNum);
|
const fightPowerObj = document.getElementById("FightPower_" + wNum);
|
const jobObj = document.getElementById("Job_" + wNum);
|
const lvObj = document.getElementById("LV_" + wNum);
|
|
if (!accID) {
|
nameShowObj.innerHTML = "";
|
fightPowerShowObj.innerHTML = "";
|
nameObj.value = "";
|
playerIDObj.value = "";
|
fightPowerObj.value = "";
|
jobObj.value = "";
|
lvObj.value = "";
|
continue;
|
}
|
|
const roleInfo = res[accID];
|
if (roleInfo && Object.keys(roleInfo).length) {
|
$playerName = roleInfo["CrossPlayerName"]; // 这里使用跨服名
|
nameShowObj.innerHTML = $playerName;
|
fightPowerShowObj.innerHTML = roleInfo["FightPower"];
|
nameObj.value = $playerName;
|
playerIDObj.value = roleInfo["PlayerID"];
|
fightPowerObj.value = roleInfo["FightPower"];
|
jobObj.value = roleInfo["Job"];
|
lvObj.value = roleInfo["LV"];
|
} else {
|
unknownAccIDList.push(accID);
|
nameShowObj.innerHTML = "<Font color='red'><?php echo \Lang\gettext("未知玩家"); ?></Font>";
|
fightPowerShowObj.innerHTML = 0;
|
nameObj.value = "";
|
playerIDObj.value = 0;
|
fightPowerObj.value = 0;
|
jobObj.value = 1;
|
lvObj.value = 1;
|
}
|
}
|
}
|
|
var alertText = "";
|
if (unknownAccIDList.length) {
|
alertText = "<?php echo \Lang\gettext("存在未知玩家账号,请检查账号是否正确"); ?>";
|
for (let index = 0; index < unknownAccIDList.length; index++) {
|
alertText += br + unknownAccIDList[index];
|
}
|
} else {
|
document.getElementById("CheckPlayerState").value = 1
|
alertText = "<?php echo \Lang\gettext("检查通过"); ?>";
|
}
|
if (alertText) {
|
alert(alertText);
|
}
|
},
|
"POST"
|
);
|
}
|
|
// 检查是否输入验证码
|
function CheckKey(keyid, isNoPlayer) {
|
if (document.getElementById(keyid).type != "hidden" && !document.getElementById(keyid).value) {
|
alert("<?php echo \Lang\gettext("请输入授权码!"); ?>");
|
return false;
|
}
|
if (!isNoPlayer) {
|
if (document.getElementById("CheckPlayerState").value != 1) {
|
alert("<?php echo \Lang\gettext("检查刷新玩家数据确保无未知玩家后才可提交活动数据"); ?>");
|
return false;
|
}
|
if (!confirm("<?php echo \Lang\gettext("确认提交修改?"); ?>")) {
|
return false;
|
}
|
} else {
|
var br = getbr();
|
if (!confirm("<?php echo \Lang\gettext("确认不指定玩家添加活动?"); ?>" + br +
|
"<?php echo \Lang\gettext("活动开始时将默认以上周古神积分榜上玩家作为参赛玩家."); ?>")) {
|
return false;
|
}
|
}
|
return true;
|
}
|
</script>
|
|
</body>
|
|
</html>
|