function displayLobby($id, $full = false, $ready = false, $rate = false) { $lobby = new lobby($id); $sid = $lobby->lobbyserver($id); $server = new Server($sid); echo '<li class="lobby_panel" data-panel="lobby_tooltip-' . $lobby->id . '"> <img class="map_pic" src="theme/images/maps/' . $lobby->map . '.jpg"> <div class="panel_left"> <h1>' . $lobby->name . '</h1> <span class="date">' . date('g:i a', strtotime($lobby->date)) . '</span> <span class="map">' . $lobby->map . '</span> <ul class="classes"> <li><img src="theme/images/class/scout.png" height="18"></li> <li><img src="theme/images/class/soldier.png" height="18"></li> <li><img src="theme/images/class/demo.png" height="18"></li> <li><img src="theme/images/class/heavy.png" height="18"></li> <li><img src="theme/images/class/sniper.png" height="18"></li> <li><img src="theme/images/class/medic.png" height="18"></li> </ul> </div> <div class="panel_right"> <span class="skillevel skill_higher">Division ' . $lobby->division . '</span> <span class="matchtype">' . type($lobby->type) . '</span> <span class="playercount"><span class="currentplayers">' . countPlayers($lobby->id) . '</span>/<span class="maxplayers">' . 2 * teamplayers($lobby->type) . '</span></span> </div> </li>'; if ($full) { echo '<li class="lobby_tooltip_big" id="lobby_tooltip:' . $lobby->id . '">'; } else { echo '<li class="lobby_tooltip" id="lobby_tooltip:' . $lobby->id . '">'; } echo ' <ul class="blue_players"> <li class="teamname blu">BLU</li>'; if (!$ready && !$rate) { echo $lobby->players_blu; } if ($ready && !$rate) { echo displayLobbyPlayers($lobby->id, $lobby->type, 1, true, false); } if (!$ready && $rate) { echo displayLobbyPlayers($lobby->id, $lobby->type, 1, false, true); } echo ' </ul> <ul class="red_players"> <li class="teamname red">RED</li>'; if (!$ready && !$rate) { echo $lobby->players_red; } if ($ready && !$rate) { echo displayLobbyPlayers($lobby->id, $lobby->type, 2, true, false); } if (!$ready && $rate) { echo displayLobbyPlayers($lobby->id, $lobby->type, 2, false, true); } echo ' </ul>'; if ($full) { echo ' <h1 style="margin-top: 10px; margin-right: 5px;">Spectators:</h1> <ul class="spec_players" style="margin-top: 10px; float: left;">' . $lobby->players_spec . ' </ul><h1 style="margin-top: 10px; margin-right: 5px; clear: left;">Info:</h1> <ul style="margin-top: 10px; float: left;"> <li>Lobby started at 14:23 and has now been running for <span class="time_run">13</span> minutes.</li> </ul> </li>'; } else { echo '<div class="lobby_info"> <h1>Gameserver</h1> ' . $server->showServer() . '' . ($_SESSION['id'] ? '<div class="button join" onclick="joinGame(' . $lobby->id . ')">Join</div>' : '') . ' </div>'; } }
case "showChat": echo displayChat($lid); break; case "newMessage": if ($message) { echo newMessage($uid, $lid, $message); } break; } } if ($lid) { switch ($request) { case "lobbyinfo": $lobbyinfo = $lobby->lobbyinfo(); $lobbyplayers = $lobby->lobbyData(); $count = countPlayers($lid); updateLobbyReady($lid); if ($lobby->status == "ready") { removeOfflinePlayers(checkOfflinePlayers($lid)); } $array = array('id' => $uid, 'ready' => readystatus($id, true), 'inlobby' => isPlayerInLobby($uid), 'info' => $lobbyinfo, 'count' => $count, 'players' => $lobbyplayers); echo json_encode($array); break; case "lobbyplayers": echo json_encode($lobby->lobbyData()); break; case "distance": if ($lat && $lon) { $server = new Server($lobby->lobbyserver($lid)); echo GetDistance($lat, $lon, $server->latitude, $server->longitude); }
function updateLobbyReady($lid) { $lobby = new Lobby($lid); $cond = countPlayers($lid) == 2 * teamplayers($lobby->type); if ($cond && $lobby->status == "open") { changeLobby($lid, 'status', 'ready'); } if ($lobby->status == "ready" && !$cond) { changeLobby($lid, 'status', 'open'); } }