Example #1
0
$result = $db->query("SELECT * FROM {$gtablepre}rooms WHERE status > 0");
while ($data = $db->fetch_array($result)) {
    if ($data['status'] == 1) {
        $flag = 0;
        $cnt = 0;
        if (file_exists(GAME_ROOT . './gamedata/tmp/rooms/' . $data['roomid'] . '.txt')) {
            $roomdata = json_decode(mgzdecode(base64_decode(file_get_contents(GAME_ROOT . './gamedata/tmp/rooms/' . $data['roomid'] . '.txt'))), 1);
            $infochanged = 0;
            if (update_roomstate($roomdata, 0)) {
                $infochanged = 1;
            }
            //自动踢人
            if ($roomdata['roomstat'] == 1 && time() >= $roomdata['kicktime']) {
                for ($i = 0; $i < $roomtypelist[$roomdata['roomtype']]['pnum']; $i++) {
                    if (!$roomdata['player'][$i]['forbidden'] && !$roomdata['player'][$i]['ready'] && $roomdata['player'][$i]['name'] != '') {
                        room_new_chat($roomdata, "<span class=\"grey\">{$roomdata['player'][$i]['name']}因为长时间未准备,被系统踢出了房间。</span><br>");
                        $roomdata['player'][$i]['name'] = '';
                        $infochanged = 1;
                    }
                }
            }
            if ($infochanged) {
                room_save_broadcast($data['roomid'], $roomdata);
            }
            for ($i = 0; $i < $roomtypelist[$roomdata['roomtype']]['pnum']; $i++) {
                if ($roomdata['player'][$i]['name'] != '') {
                    $flag = 1;
                    $cnt++;
                } else {
                    if ($roomdata['player'][$i]['forbidden']) {
                        $cnt++;
Example #2
0
     if (!$roomdata['player'][$i]['forbidden'] && $roomdata['player'][$i]['name'] == $cuser) {
         $upos = $i;
     }
 }
 if ($upos >= 0 && $roomdata['roomstat'] == 1 && !$roomdata['player'][$upos]['ready']) {
     $roomdata['player'][$upos]['ready'] = 1;
     $flag = 1;
     for ($i = 0; $i < $roomtypelist[$roomdata['roomtype']]['pnum']; $i++) {
         if (!$roomdata['player'][$i]['forbidden'] && !$roomdata['player'][$i]['ready']) {
             $flag = 0;
         }
     }
     room_new_chat($roomdata, "<span class=\"grey\">{$cuser}点击了准备</span><br>");
     if ($flag) {
         $roomdata['roomstat'] = 2;
         room_new_chat($roomdata, "<span class=\"grey\">所有人均已准备,游戏即将开始..</span><br>");
     }
     room_save_broadcast($roomid, $roomdata);
     if ($flag) {
         include_once GAME_ROOT . './include/valid.func.php';
         //开始游戏,并设置好游戏模式类型(2v2和3v3为队伍胜利模式)
         $gametype = 10 + $roomdata['roomtype'];
         $starttime = $now;
         save_gameinfo();
         \sys\routine();
         //发送游戏模式新闻
         if ($roomdata['roomtype'] == 0) {
             addnews($now, 'roominfo', $roomtypelist[$roomdata['roomtype']]['name'], '对决者:&nbsp;' . room_getteamhtml($roomdata, 0) . '&nbsp;<span class="yellow">VS</span>&nbsp;' . room_getteamhtml($roomdata, 1) . '!');
         } else {
             if ($roomdata['roomtype'] == 1) {
                 addnews($now, 'roominfo', $roomtypelist[$roomdata['roomtype']]['name'], '对决者:&nbsp;<span style="color:#ff0022">红队&nbsp;' . room_getteamhtml($roomdata, 0) . '</span>&nbsp;<span class="yellow">VS</span>&nbsp;<span style="color:#5900ff">蓝队 ' . room_getteamhtml($roomdata, 5) . '</span>!');
Example #3
0
function room_enter($id)
{
    eval(import_module('sys'));
    $id = (int) $id;
    $result = $db->query("SELECT status FROM {$gtablepre}rooms WHERE roomid = '{$id}'");
    if (!$db->num_rows($result)) {
        gexit('房间编号不存在', __FILE__, __LINE__);
        die;
    }
    $zz = $db->fetch_array($result);
    if ($zz['status'] == 0) {
        gexit('房间编号不存在', __FILE__, __LINE__);
        die;
    }
    if (!file_exists(GAME_ROOT . './gamedata/tmp/rooms/' . $id . '.txt')) {
        gexit('房间编号不存在', __FILE__, __LINE__);
        die;
    }
    $roomdata = json_decode(mgzdecode(base64_decode(file_get_contents(GAME_ROOT . './gamedata/tmp/rooms/' . $id . '.txt'))), 1);
    global $cuser;
    room_new_chat($roomdata, "<span class=\"grey\">{$cuser}进入了房间</span><br>");
    $db->query("UPDATE {$gtablepre}users SET roomid = 's{$id}' WHERE username = '******'");
    room_save_broadcast($id, $roomdata);
    header('Location: index.php');
    die;
}