function startGame($gameId, $gameName, $players) { $playerNumber = count($players); if ($playerNumber < 3) { return; } $date = getDateNow(); $dateLimit = getDateLimit(); // Start the game $sql = "UPDATE games SET state='ACTIVE' WHERE gameId='{$gameId}' LIMIT 1;"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); // Randomize the players shuffle($players); $assassinationList = ''; for ($i = 0; $i < $playerNumber; $i++) { $playerId = $players[$i]; $victimId = $players[($i + 1) % $playerNumber]; trace("Starting: {$playerId} -> {$victimId}"); if ($assassinationList != '') { $assassinationList .= ', '; } $assassinationList .= "('{$gameId}', '{$playerId}', '{$victimId}', 'PENDING', '{$date}', '{$dateLimit}')"; } $sql = "INSERT INTO assassinations (gameId, assassinId, victimId, state, startDate, endDate) VALUES {$assassinationList};"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); require_once 'handler.php'; handleGameStart($gameId); }
function killPlayer($playerId, $gameId, $assassinSuccess, $waitForDetails) { $date = getDateNow(); $dateLimit = getDateLimit(); $sql = "SELECT assassinationId, assassinId FROM assassinations WHERE gameId = '{$gameId}' AND victimId = '{$playerId}' AND state='PENDING' LIMIT 1;"; $result = mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); if ($row = mysql_fetch_assoc($result)) { $successfulAssassinationId = $row['assassinationId']; $assassinId = $row['assassinId']; } else { $ret = array("status" => "IMPOSSIBLE1.3"); die(json_encode($ret)); } $sql = "SELECT assassinations.assassinationId, players.playerId AS newVictimId, players.name AS newVictimName, participations.alias AS newVictimAlias "; $sql .= "FROM assassinations INNER JOIN players ON assassinations.victimId = players.playerId "; $sql .= "INNER JOIN participations ON participations.playerId = players.playerId "; $sql .= "WHERE assassinations.gameId = '{$gameId}' AND participations.gameId = '{$gameId}' AND assassinations.assassinId = '{$playerId}' AND assassinations.state='PENDING' LIMIT 1;"; $result = mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); if ($row = mysql_fetch_assoc($result)) { $failedAssassination = $row['assassinationId']; $newVictimId = $row['newVictimId']; $newVictimName = $row['newVictimName']; $newVictimAlias = $row['newVictimAlias']; } else { $ret = array("status" => "IMPOSSIBLE1"); die(json_encode($ret)); } // update assassin's assassination success $sql = "UPDATE assassinations SET state='" . ($assassinSuccess ? 'SUCCESS' : 'FAIL') . "', endDate='{$date}', detailsState='" . ($waitForDetails ? 'NONE' : 'ADDED') . "' WHERE assassinationId = '{$successfulAssassinationId}';"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); // update victim's assassination fail $sql = "UPDATE assassinations SET state='FAIL', endDate='{$date}' WHERE assassinationId = '{$failedAssassination}';"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); // update victim's participation to ASSASSINATED $sql = "UPDATE participations SET state='ASSASSINATED' WHERE gameId = '{$gameId}' AND playerId = '{$playerId}' LIMIT 1;"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); // update victim's player to NOTHING $sql = "UPDATE players SET state='NOTHING' WHERE playerId = '{$playerId}' LIMIT 1;"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); // count the number of players still in the game $sql = "SELECT * FROM participations WHERE participations.gameId = '{$gameId}' AND state = 'ACTIVE';"; $result = mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); $playersLeft = mysql_num_rows($result); /// UPDATE END DATE IN ASSASSINATIONS require_once 'handler.php'; if ($playersLeft == 1) { // game has been won by playerId // update player's participation to WON $sql = "UPDATE participations SET state='WON' WHERE gameId = '{$gameId}' AND playerId = '{$assassinId}' LIMIT 1;"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); // update player to NOTHING $sql = "UPDATE players SET state='NOTHING' WHERE playerId = '{$assassinId}' LIMIT 1;"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); // update game to finished $sql = "UPDATE games SET state='FINISHED', endDate='{$date}', winnerId='{$assassinId}' WHERE gameId = '{$gameId}' LIMIT 1;"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); handlePlayerAssassinated($playerId); handleGameOver($gameId); } else { // create new assassination $sql = "INSERT INTO assassinations (gameId, assassinId, victimId, state, startDate, endDate) VALUES ('{$gameId}', '{$assassinId}', '{$newVictimId}', 'PENDING', '{$date}', '{$dateLimit}');"; mysql_query($sql) or sql_error_report($sql, $_SERVER["SCRIPT_NAME"]); handlePlayerAssassinated($playerId); } if ($playersLeft == 2) { handleDeathmatch($gameId); } }
function GetTongLog_Boss($var, $gm) { global $tbl_sys_msg, $page_main, $tbl_tong_msg; $boss_name = $var["boss_name"]; $serverid = $var["serverid"]; LastLogTime(); $query = "select le.le_dtDateTime, lpt.lcs_uId from tbl_log_event le, tbl_log_jifenpoint lj, tbl_log_player_taker lpt, tbl_log_event_type let where le.le_uId = lpt.le_uId and le.le_uId = lj.le_uId and le.le_uId = let.le_uId and let.let_uEventType = 137 and lj.lj_uPoint = {$boss_name} " . getDateLimit($var, $serverid); $rs = MySQLQuery($query, "Log", $serverid); echo "<table class='list_table'>\n"; printf("<tr><th>%s</th><th>%s</th></tr>\n", $tbl_sys_msg["time"], $page_main["role_name"]); while ($row = mysql_fetch_row($rs)) { $role_name = GetRoleName($row[1], $serverid); printf("<tr><td>%s</td><td>%s</td></tr>\n", $row[0], $role_name); } echo "</table>\n"; return true; }
function GetUserByIP($var, $gm) { global $tbl_user_login, $tbl_serv_db, $tbl_game_server, $tbl_sys_msg, $tbl_serv_partition; echo "<script src='/js/checkbox.js'></script>\n"; echo '<script type="text/javascript">' . "\n"; echo 'function click(obj) {' . "\n"; echo ' document.form1.action_name.value = "50";' . "\n"; echo ' document.form1.serverid.value = $(obj).parents("tr").find(".server").attr("title");' . "\n"; echo ' document.form1.urs.value = $(obj).html();' . "\n"; echo ' document.form1.submit();' . "\n"; echo '}' . "\n"; echo '</script>' . "\n"; echo "<h1>" . $tbl_user_login[2] . "</h1>\n"; ReturnAndBack(); form($var, $gm); checkbox(treu, false); echo "<input type='hidden' name='urs' />\n"; echo "</form>\n"; echo "<table class='list_table'>\n"; echo "<tr><th>" . $tbl_user_login[3][0] . "</th><th style=\"text-align:left;\"><input type=\"checkbox\" onclick=\"checkboxAll(this,'user')\" />" . $tbl_user_login[3][1] . "</th><th>" . $tbl_sys_msg["server"] . "</th></tr>\n"; $ip = $var["ip"]; $rs = array(); foreach ($tbl_serv_partition[$var["gameId"]] as $group) { foreach ($group as $serv) { $query = "select le.le_dtDateTime, lu.lus_uId, {$serv} from tbl_log_login lli, tbl_log_user lu, tbl_log_event le where lli.le_uId = lu.le_uId and lli.le_uId = le.le_uId and lli.ll_sIP = '{$ip}' " . getDateLimit($var, $serv); $result = MySQLQuery($query, "Log", $serv); while ($row = mysql_fetch_row($result)) { $qs = "select us_sName from tbl_user_static where us_uId = " . $row[1]; $re = MySQLQuery($qs, "Game", $serv); $row[3] = "-"; if ($r = mysql_fetch_row($re)) { $row[3] = $r[0]; } $rs[strtotime($row[0])] = $row; } } } ksort($rs); foreach ($rs as $row) { printf("<tr" . ($i++ % 2 == 0 ? "" : " class='even'") . "><td>%s</td><td><input type='checkbox' flag='user' onclick='Checkbox(this)' value='%s' /><a href='#' onclick='click(this)'>%s</a></td><td class='server' title='%d'>%s</td></tr>\n", $row[0], $row[3], $row[3], $row[2], $tbl_game_server[$row[2]][2]); } echo "</table>\n"; ReturnAndBack(); return true; }
function GetTongItemLog($var, $gm) { global $tbl_sys_msg, $page_main, $tbl_tong_depot_log, $tbl_tong_pos; $server_id = $var["serverid"]; $tong_name = $var["tong_name"]; LastLogTime(); $qs = "select t_uId from tbl_tong where t_sName = '{$tong_name}'"; $rs = MySQLQuery($qs, "Game", $server_id); if ($row = mysql_fetch_row($rs)) { $tong_id = $row[0]; } else { PrintNotice($tbl_sys_msg["nobody"]); return false; } echo "<table class='list_table'>\n"; printf("<tr><th style='width:120px;'>%s</th><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>\n", $tbl_sys_msg["time"], $page_main["type"], $page_main["item"], $page_main["number"], $page_main["role_name"] . "(" . $page_main["position"] . ")"); $qs = "select le.le_dtDateTime, ltd.ltd_uType, lis.lis_sName, ltd.ltd_uExecutorId, ltd.ltd_uExecutorPosition, count(*) "; $qs .= "from tbl_log_tong_depot ltd, tbl_log_event le, tbl_log_item_static lis "; $qs .= "where ltd.le_uId = le.le_uId and ltd.lis_uId = lis.lis_uId and "; $qs .= "lts_uId = {$tong_id}" . getDateLimit($var, $server_id) . " "; $qs .= "group by le.le_dtDateTime, lis.lis_sName, ltd.ltd_uExecutorId"; $result = MySQLQuery($qs, "Log", $server_id); while ($row = mysql_fetch_row($result)) { if ($row[3] == 0) { $role_name = $tbl_sys_msg["admin"]; } else { $role_name = GetRoleName($row[3], $server_id); } if ($row[4] == 0) { $position = $tbl_sys_msg["admin"]; } else { $position = $tbl_tong_pos[$row[4]]; } printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>\n", $row[0], $tbl_tong_depot_log[$row[1]], Lan_Item_GetDisplayName(Local2UTF8($row[2])), $row[5], $role_name . "(" . $position . ")"); } echo "</table>\n"; return true; }
function LoginIPSearch($var, $gm) { global $tbl_log_db, $tbl_game_server, $tbl_sys_msg, $page_main; if ($var["servers"] != null && $var["servers"] != "") { $servers = explode(",", $var["servers"]); } else { $servers = $var["server_id"]; } $ip = $var["ip"]; echo "<script type='text/javascript' src='/js/checkbox.js'></script>\n"; form($var, $gm); checkbox(true, true); echo "</form>"; echo "<table class='list_table'>\n"; echo "<tr><th>" . $tbl_sys_msg["server"] . "</th><th>" . $page_main["user_name"] . "</th><th>" . $tbl_sys_msg["time"] . "</th></tr>\n"; foreach ($servers as $serv) { $qs = "select lu.lus_uId, le.le_dtDateTime from tbl_log_login ll, tbl_log_user lu, tbl_log_event le where ll.le_uId = le.le_uId and lu.le_uId = le.le_uId and ll.ll_sIP = '{$ip}' " . getDateLimit($var, $serv) . " group by lu.lus_uId"; $rs = MySQLQuery($qs, "Log", $serv); while ($row = mysql_fetch_row($rs)) { $user_name = GetUserName($row[0], $serv); printf("<tr><td>%s</td><td><input type='checkbox' flag='user' value='%s' onclick='Checkbox(this)' />%s</td><td>%s</td></tr>\n", $tbl_game_server[$serv][2], $user_name, $user_name, $row[1]); } } echo "</table>\n"; return true; }