forked from solcloud/Counter-Strike
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.php
More file actions
38 lines (30 loc) · 1.13 KB
/
server.php
File metadata and controls
38 lines (30 loc) · 1.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
use cs\Core\ConsoleLogger;
use cs\Core\GameFactory;
use cs\Map as Maps;
use cs\Net\ClueSocket;
use cs\Net\Server;
use cs\Net\ServerSetting;
require __DIR__ . '/../vendor/autoload.php';
/////
$playersMax = (int)($argv[1] ?? 1);
$port = (int)($argv[2] ?? 8080);
$debug = in_array('--debug', $argv);
$bindAddress = "udp://0.0.0.0:$port";
$map = Maps\DefaultMap::class;
/////
$settings = new ServerSetting($playersMax); // must be first for correctly setting the global tickRate (Util::$TICK_RATE)
$logger = new ConsoleLogger();
$logger->info("Preparing game for launch, please wait...");
$game = ($debug ? GameFactory::createDebug() : GameFactory::createDefaultCompetitive());
$game->loadMap(new $map);
$logger->info("Starting server on '{$bindAddress}', waiting maximum of '{$settings->warmupWaitSec}' sec for '{$playersMax}' player" . ($playersMax > 1 ? 's' : '') . " to connect.");
$net = new ClueSocket($bindAddress);
$server = new Server($game, $settings, $net);
$server->setLogger($logger);
if ($debug) {
$server->storeRequests(sys_get_temp_dir() . DIRECTORY_SEPARATOR . 'cs.server.req');
}
$server->start();
sleep(1);
$net->close();