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);
    }
}
Exemple #3
0
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;
}
Exemple #4
0
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;
}
Exemple #5
0
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;
}
Exemple #6
0
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;
}