$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++;
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'], '对决者: ' . room_getteamhtml($roomdata, 0) . ' <span class="yellow">VS</span> ' . room_getteamhtml($roomdata, 1) . '!'); } else { if ($roomdata['roomtype'] == 1) { addnews($now, 'roominfo', $roomtypelist[$roomdata['roomtype']]['name'], '对决者: <span style="color:#ff0022">红队 ' . room_getteamhtml($roomdata, 0) . '</span> <span class="yellow">VS</span> <span style="color:#5900ff">蓝队 ' . room_getteamhtml($roomdata, 5) . '</span>!');
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; }