quake2ts 0.0.288 → 0.0.290
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packages/client/dist/browser/index.global.js +13 -13
- package/packages/client/dist/browser/index.global.js.map +1 -1
- package/packages/client/dist/cjs/index.cjs +554 -2
- package/packages/client/dist/cjs/index.cjs.map +1 -1
- package/packages/client/dist/esm/index.js +554 -2
- package/packages/client/dist/esm/index.js.map +1 -1
- package/packages/client/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/browser/index.global.js +16 -16
- package/packages/engine/dist/browser/index.global.js.map +1 -1
- package/packages/engine/dist/cjs/index.cjs +360 -35
- package/packages/engine/dist/cjs/index.cjs.map +1 -1
- package/packages/engine/dist/esm/index.js +360 -35
- package/packages/engine/dist/esm/index.js.map +1 -1
- package/packages/engine/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/engine/dist/types/audio/constants.d.ts +1 -23
- package/packages/engine/dist/types/audio/constants.d.ts.map +1 -1
- package/packages/game/dist/browser/index.global.js +3 -3
- package/packages/game/dist/browser/index.global.js.map +1 -1
- package/packages/game/dist/cjs/index.cjs +556 -19
- package/packages/game/dist/cjs/index.cjs.map +1 -1
- package/packages/game/dist/esm/index.js +556 -19
- package/packages/game/dist/esm/index.js.map +1 -1
- package/packages/game/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/game/dist/types/entities/monsters/actor.d.ts.map +1 -1
- package/packages/game/dist/types/entities/monsters/arachnid.d.ts.map +1 -1
- package/packages/game/dist/types/entities/system.d.ts +1 -0
- package/packages/game/dist/types/entities/system.d.ts.map +1 -1
- package/packages/game/dist/types/index.d.ts +2 -0
- package/packages/game/dist/types/index.d.ts.map +1 -1
- package/packages/server/dist/index.cjs +54 -11
- package/packages/server/dist/index.d.cts +6 -1
- package/packages/server/dist/index.d.ts +6 -1
- package/packages/server/dist/index.js +56 -13
- package/packages/shared/dist/browser/index.global.js +1 -1
- package/packages/shared/dist/browser/index.global.js.map +1 -1
- package/packages/shared/dist/cjs/index.cjs +562 -0
- package/packages/shared/dist/cjs/index.cjs.map +1 -1
- package/packages/shared/dist/esm/index.js +549 -0
- package/packages/shared/dist/esm/index.js.map +1 -1
- package/packages/shared/dist/tsconfig.tsbuildinfo +1 -1
- package/packages/shared/dist/types/audio/constants.d.ts +24 -0
- package/packages/shared/dist/types/audio/constants.d.ts.map +1 -0
- package/packages/shared/dist/types/index.d.ts +1 -0
- package/packages/shared/dist/types/index.d.ts.map +1 -1
- package/packages/shared/dist/types/net/index.d.ts +1 -0
- package/packages/shared/dist/types/net/index.d.ts.map +1 -1
- package/packages/shared/dist/types/protocol/crc.d.ts +5 -0
- package/packages/shared/dist/types/protocol/crc.d.ts.map +1 -0
- package/packages/shared/dist/types/protocol/index.d.ts +1 -0
- package/packages/shared/dist/types/protocol/index.d.ts.map +1 -1
- package/packages/tools/dist/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqE,MAAM,cAAc,CAAC;AAGzG,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqE,MAAM,cAAc,CAAC;AAGzG,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoa1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,QAqEhE;AAuFD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,QAiClE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAGjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arachnid.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/arachnid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arachnid.d.ts","sourceRoot":"","sources":["../../../../src/entities/monsters/arachnid.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,MAAM,EAQP,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,YAAY,EAGb,MAAM,gBAAgB,CAAC;AAwaxB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,QAqDtE;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,CAE1D"}
|
|
@@ -68,6 +68,7 @@ export declare class EntitySystem {
|
|
|
68
68
|
free(entity: Entity): void;
|
|
69
69
|
freeImmediate(entity: Entity): void;
|
|
70
70
|
sound(entity: Entity, channel: number, sound: string, volume: number, attenuation: number, timeofs: number): void;
|
|
71
|
+
soundIndex(sound: string): number;
|
|
71
72
|
modelIndex(model: string): number;
|
|
72
73
|
linkentity(ent: Entity): void;
|
|
73
74
|
multicast(origin: Vec3, type: MulticastType, event: ServerCommand, ...args: any[]): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../src/entities/system.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../src/entities/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ export { MulticastType } from './imports.js';
|
|
|
20
20
|
export interface GameEngine {
|
|
21
21
|
trace(start: Vec3, end: Vec3): unknown;
|
|
22
22
|
sound?(entity: Entity, channel: number, sound: string, volume: number, attenuation: number, timeofs: number): void;
|
|
23
|
+
soundIndex?(sound: string): number;
|
|
23
24
|
centerprintf?(entity: Entity, message: string): void;
|
|
24
25
|
modelIndex?(model: string): number;
|
|
25
26
|
multicast?(origin: Vec3, type: MulticastType, event: ServerCommand, ...args: any[]): void;
|
|
@@ -69,6 +70,7 @@ export interface GameExports extends GameSimulation<GameStateSnapshot> {
|
|
|
69
70
|
spawnWorld(): void;
|
|
70
71
|
readonly entities: EntitySystem;
|
|
71
72
|
sound(entity: Entity, channel: number, sound: string, volume: number, attenuation: number, timeofs: number): void;
|
|
73
|
+
soundIndex(sound: string): number;
|
|
72
74
|
centerprintf(entity: Entity, message: string): void;
|
|
73
75
|
readonly time: number;
|
|
74
76
|
readonly deathmatch: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -175,13 +175,17 @@ function createClient(index, net) {
|
|
|
175
175
|
numEntities: 0,
|
|
176
176
|
firstEntity: 0,
|
|
177
177
|
sentTime: 0,
|
|
178
|
-
entities: []
|
|
178
|
+
entities: [],
|
|
179
|
+
packetCRC: 0
|
|
179
180
|
});
|
|
180
181
|
}
|
|
182
|
+
const netchan = new import_shared.NetChan();
|
|
183
|
+
netchan.setup(Math.floor(Math.random() * 65536));
|
|
181
184
|
return {
|
|
182
185
|
index,
|
|
183
186
|
state: 2 /* Connected */,
|
|
184
187
|
net,
|
|
188
|
+
netchan,
|
|
185
189
|
userInfo: "",
|
|
186
190
|
lastFrame: 0,
|
|
187
191
|
lastCmd: createEmptyUserCommand(),
|
|
@@ -203,7 +207,10 @@ function createClient(index, net) {
|
|
|
203
207
|
lastConnect: Date.now(),
|
|
204
208
|
challenge: 0,
|
|
205
209
|
messageQueue: [],
|
|
206
|
-
lastPacketEntities: []
|
|
210
|
+
lastPacketEntities: [],
|
|
211
|
+
commandQueue: [],
|
|
212
|
+
lastCommandTime: 0,
|
|
213
|
+
commandCount: 0
|
|
207
214
|
};
|
|
208
215
|
}
|
|
209
216
|
function createEmptyUserCommand() {
|
|
@@ -1007,9 +1014,17 @@ var DedicatedServer = class {
|
|
|
1007
1014
|
client.net.disconnect();
|
|
1008
1015
|
}
|
|
1009
1016
|
}
|
|
1010
|
-
handleMove(client, cmd) {
|
|
1017
|
+
handleMove(client, cmd, checksum, lastFrame) {
|
|
1018
|
+
if (lastFrame > 0 && lastFrame <= client.lastFrame && lastFrame > client.lastFrame - import_shared4.UPDATE_BACKUP) {
|
|
1019
|
+
const frameIdx = lastFrame % import_shared4.UPDATE_BACKUP;
|
|
1020
|
+
const frame = client.frames[frameIdx];
|
|
1021
|
+
if (frame.packetCRC !== checksum) {
|
|
1022
|
+
console.warn(`Client ${client.index} checksum mismatch for frame ${lastFrame}: expected ${frame.packetCRC}, got ${checksum}`);
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1011
1025
|
client.lastCmd = cmd;
|
|
1012
1026
|
client.lastMessage = this.sv.frame;
|
|
1027
|
+
client.commandCount++;
|
|
1013
1028
|
}
|
|
1014
1029
|
handleUserInfo(client, info) {
|
|
1015
1030
|
client.userInfo = info;
|
|
@@ -1091,12 +1106,20 @@ var DedicatedServer = class {
|
|
|
1091
1106
|
SV_SetConfigString(index, value) {
|
|
1092
1107
|
if (index < 0 || index >= import_shared4.MAX_CONFIGSTRINGS) return;
|
|
1093
1108
|
this.sv.configStrings[index] = value;
|
|
1094
|
-
const writer = new import_shared4.BinaryWriter();
|
|
1095
|
-
this.SV_WriteConfigString(writer, index, value);
|
|
1096
|
-
const data = writer.getData();
|
|
1097
1109
|
for (const client of this.svs.clients) {
|
|
1098
1110
|
if (client && client.state >= 2 /* Connected */) {
|
|
1099
|
-
client.
|
|
1111
|
+
if (client.netchan) {
|
|
1112
|
+
try {
|
|
1113
|
+
client.netchan.writeReliableByte(import_shared4.ServerCommand.configstring);
|
|
1114
|
+
client.netchan.writeReliableShort(index);
|
|
1115
|
+
client.netchan.writeReliableString(value);
|
|
1116
|
+
const packet = client.netchan.transmit();
|
|
1117
|
+
client.net.send(packet);
|
|
1118
|
+
} catch (e) {
|
|
1119
|
+
console.warn(`Client ${client.index} reliable buffer overflow`);
|
|
1120
|
+
this.dropClient(client);
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1100
1123
|
}
|
|
1101
1124
|
}
|
|
1102
1125
|
}
|
|
@@ -1109,11 +1132,18 @@ var DedicatedServer = class {
|
|
|
1109
1132
|
for (const client of this.svs.clients) {
|
|
1110
1133
|
if (!client || client.state === 0 /* Free */) continue;
|
|
1111
1134
|
while (client.messageQueue.length > 0) {
|
|
1112
|
-
const
|
|
1113
|
-
if (!
|
|
1135
|
+
const rawData = client.messageQueue.shift();
|
|
1136
|
+
if (!rawData) continue;
|
|
1137
|
+
const data = client.netchan.process(rawData);
|
|
1138
|
+
if (!data) {
|
|
1139
|
+
continue;
|
|
1140
|
+
}
|
|
1141
|
+
if (data.length === 0) {
|
|
1142
|
+
continue;
|
|
1143
|
+
}
|
|
1114
1144
|
const reader = new import_shared4.BinaryStream(data.buffer);
|
|
1115
1145
|
const parser = new ClientMessageParser(reader, {
|
|
1116
|
-
onMove: (checksum, lastFrame, cmd) => this.handleMove(client, cmd),
|
|
1146
|
+
onMove: (checksum, lastFrame, cmd) => this.handleMove(client, cmd, checksum, lastFrame),
|
|
1117
1147
|
onUserInfo: (info) => this.handleUserInfo(client, info),
|
|
1118
1148
|
onStringCmd: (cmd) => this.handleStringCmd(client, cmd),
|
|
1119
1149
|
onNop: () => {
|
|
@@ -1147,6 +1177,16 @@ var DedicatedServer = class {
|
|
|
1147
1177
|
}
|
|
1148
1178
|
}
|
|
1149
1179
|
if (client && client.state === 4 /* Active */ && client.edict) {
|
|
1180
|
+
const now = Date.now();
|
|
1181
|
+
if (now - client.lastCommandTime >= 1e3) {
|
|
1182
|
+
client.lastCommandTime = now;
|
|
1183
|
+
client.commandCount = 0;
|
|
1184
|
+
}
|
|
1185
|
+
if (client.commandCount > 200) {
|
|
1186
|
+
console.warn(`Client ${client.index} kicked for command flooding`);
|
|
1187
|
+
this.dropClient(client);
|
|
1188
|
+
continue;
|
|
1189
|
+
}
|
|
1150
1190
|
this.game.clientThink(client.edict, client.lastCmd);
|
|
1151
1191
|
}
|
|
1152
1192
|
}
|
|
@@ -1242,7 +1282,10 @@ var DedicatedServer = class {
|
|
|
1242
1282
|
}
|
|
1243
1283
|
}
|
|
1244
1284
|
writer.writeShort(0);
|
|
1245
|
-
|
|
1285
|
+
const frameData = writer.getData();
|
|
1286
|
+
currentFrame.packetCRC = (0, import_shared4.crc8)(frameData);
|
|
1287
|
+
const packet = client.netchan.transmit(frameData);
|
|
1288
|
+
client.net.send(packet);
|
|
1246
1289
|
client.lastFrame = this.sv.frame;
|
|
1247
1290
|
client.lastPacketEntities = currentEntityIds;
|
|
1248
1291
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NetDriver, ServerCommand, PlayerState, EntityState, UserCommand, BinaryStream } from '@quake2ts/shared';
|
|
1
|
+
import { NetDriver, ServerCommand, PlayerState, EntityState, NetChan, UserCommand, BinaryStream } from '@quake2ts/shared';
|
|
2
2
|
import WebSocket from 'ws';
|
|
3
3
|
import { GameEngine, MulticastType, Entity } from '@quake2ts/game';
|
|
4
4
|
|
|
@@ -68,11 +68,13 @@ interface ClientFrame {
|
|
|
68
68
|
firstEntity: number;
|
|
69
69
|
sentTime: number;
|
|
70
70
|
entities: EntityState[];
|
|
71
|
+
packetCRC: number;
|
|
71
72
|
}
|
|
72
73
|
interface Client {
|
|
73
74
|
index: number;
|
|
74
75
|
state: ClientState;
|
|
75
76
|
net: NetDriver;
|
|
77
|
+
netchan: NetChan;
|
|
76
78
|
userInfo: string;
|
|
77
79
|
lastFrame: number;
|
|
78
80
|
lastCmd: UserCommand;
|
|
@@ -95,6 +97,9 @@ interface Client {
|
|
|
95
97
|
challenge: number;
|
|
96
98
|
messageQueue: Uint8Array[];
|
|
97
99
|
lastPacketEntities: number[];
|
|
100
|
+
commandQueue: UserCommand[];
|
|
101
|
+
lastCommandTime: number;
|
|
102
|
+
commandCount: number;
|
|
98
103
|
}
|
|
99
104
|
declare function createClient(index: number, net: NetDriver): Client;
|
|
100
105
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { NetDriver, ServerCommand, PlayerState, EntityState, UserCommand, BinaryStream } from '@quake2ts/shared';
|
|
1
|
+
import { NetDriver, ServerCommand, PlayerState, EntityState, NetChan, UserCommand, BinaryStream } from '@quake2ts/shared';
|
|
2
2
|
import WebSocket from 'ws';
|
|
3
3
|
import { GameEngine, MulticastType, Entity } from '@quake2ts/game';
|
|
4
4
|
|
|
@@ -68,11 +68,13 @@ interface ClientFrame {
|
|
|
68
68
|
firstEntity: number;
|
|
69
69
|
sentTime: number;
|
|
70
70
|
entities: EntityState[];
|
|
71
|
+
packetCRC: number;
|
|
71
72
|
}
|
|
72
73
|
interface Client {
|
|
73
74
|
index: number;
|
|
74
75
|
state: ClientState;
|
|
75
76
|
net: NetDriver;
|
|
77
|
+
netchan: NetChan;
|
|
76
78
|
userInfo: string;
|
|
77
79
|
lastFrame: number;
|
|
78
80
|
lastCmd: UserCommand;
|
|
@@ -95,6 +97,9 @@ interface Client {
|
|
|
95
97
|
challenge: number;
|
|
96
98
|
messageQueue: Uint8Array[];
|
|
97
99
|
lastPacketEntities: number[];
|
|
100
|
+
commandQueue: UserCommand[];
|
|
101
|
+
lastCommandTime: number;
|
|
102
|
+
commandCount: number;
|
|
98
103
|
}
|
|
99
104
|
declare function createClient(index: number, net: NetDriver): Client;
|
|
100
105
|
|
|
@@ -115,7 +115,7 @@ import { WebSocketServer } from "ws";
|
|
|
115
115
|
import { createGame, MulticastType, Solid } from "@quake2ts/game";
|
|
116
116
|
|
|
117
117
|
// src/client.ts
|
|
118
|
-
import { UPDATE_BACKUP } from "@quake2ts/shared";
|
|
118
|
+
import { UPDATE_BACKUP, NetChan } from "@quake2ts/shared";
|
|
119
119
|
var ClientState = /* @__PURE__ */ ((ClientState2) => {
|
|
120
120
|
ClientState2[ClientState2["Free"] = 0] = "Free";
|
|
121
121
|
ClientState2[ClientState2["Zombie"] = 1] = "Zombie";
|
|
@@ -135,13 +135,17 @@ function createClient(index, net) {
|
|
|
135
135
|
numEntities: 0,
|
|
136
136
|
firstEntity: 0,
|
|
137
137
|
sentTime: 0,
|
|
138
|
-
entities: []
|
|
138
|
+
entities: [],
|
|
139
|
+
packetCRC: 0
|
|
139
140
|
});
|
|
140
141
|
}
|
|
142
|
+
const netchan = new NetChan();
|
|
143
|
+
netchan.setup(Math.floor(Math.random() * 65536));
|
|
141
144
|
return {
|
|
142
145
|
index,
|
|
143
146
|
state: 2 /* Connected */,
|
|
144
147
|
net,
|
|
148
|
+
netchan,
|
|
145
149
|
userInfo: "",
|
|
146
150
|
lastFrame: 0,
|
|
147
151
|
lastCmd: createEmptyUserCommand(),
|
|
@@ -163,7 +167,10 @@ function createClient(index, net) {
|
|
|
163
167
|
lastConnect: Date.now(),
|
|
164
168
|
challenge: 0,
|
|
165
169
|
messageQueue: [],
|
|
166
|
-
lastPacketEntities: []
|
|
170
|
+
lastPacketEntities: [],
|
|
171
|
+
commandQueue: [],
|
|
172
|
+
lastCommandTime: 0,
|
|
173
|
+
commandCount: 0
|
|
167
174
|
};
|
|
168
175
|
}
|
|
169
176
|
function createEmptyUserCommand() {
|
|
@@ -271,7 +278,7 @@ var ClientMessageParser = class {
|
|
|
271
278
|
};
|
|
272
279
|
|
|
273
280
|
// src/dedicated.ts
|
|
274
|
-
import { BinaryWriter as BinaryWriter2, ServerCommand as ServerCommand2, BinaryStream as BinaryStream2, traceBox, UPDATE_BACKUP as UPDATE_BACKUP2, MAX_CONFIGSTRINGS as MAX_CONFIGSTRINGS2, MAX_EDICTS, CollisionEntityIndex, inPVS, inPHS } from "@quake2ts/shared";
|
|
281
|
+
import { BinaryWriter as BinaryWriter2, ServerCommand as ServerCommand2, BinaryStream as BinaryStream2, traceBox, UPDATE_BACKUP as UPDATE_BACKUP2, MAX_CONFIGSTRINGS as MAX_CONFIGSTRINGS2, MAX_EDICTS, CollisionEntityIndex, inPVS, inPHS, crc8 } from "@quake2ts/shared";
|
|
275
282
|
import { parseBsp } from "@quake2ts/engine";
|
|
276
283
|
import fs from "fs/promises";
|
|
277
284
|
import { createPlayerInventory, createPlayerWeaponStates } from "@quake2ts/game";
|
|
@@ -967,9 +974,17 @@ var DedicatedServer = class {
|
|
|
967
974
|
client.net.disconnect();
|
|
968
975
|
}
|
|
969
976
|
}
|
|
970
|
-
handleMove(client, cmd) {
|
|
977
|
+
handleMove(client, cmd, checksum, lastFrame) {
|
|
978
|
+
if (lastFrame > 0 && lastFrame <= client.lastFrame && lastFrame > client.lastFrame - UPDATE_BACKUP2) {
|
|
979
|
+
const frameIdx = lastFrame % UPDATE_BACKUP2;
|
|
980
|
+
const frame = client.frames[frameIdx];
|
|
981
|
+
if (frame.packetCRC !== checksum) {
|
|
982
|
+
console.warn(`Client ${client.index} checksum mismatch for frame ${lastFrame}: expected ${frame.packetCRC}, got ${checksum}`);
|
|
983
|
+
}
|
|
984
|
+
}
|
|
971
985
|
client.lastCmd = cmd;
|
|
972
986
|
client.lastMessage = this.sv.frame;
|
|
987
|
+
client.commandCount++;
|
|
973
988
|
}
|
|
974
989
|
handleUserInfo(client, info) {
|
|
975
990
|
client.userInfo = info;
|
|
@@ -1051,12 +1066,20 @@ var DedicatedServer = class {
|
|
|
1051
1066
|
SV_SetConfigString(index, value) {
|
|
1052
1067
|
if (index < 0 || index >= MAX_CONFIGSTRINGS2) return;
|
|
1053
1068
|
this.sv.configStrings[index] = value;
|
|
1054
|
-
const writer = new BinaryWriter2();
|
|
1055
|
-
this.SV_WriteConfigString(writer, index, value);
|
|
1056
|
-
const data = writer.getData();
|
|
1057
1069
|
for (const client of this.svs.clients) {
|
|
1058
1070
|
if (client && client.state >= 2 /* Connected */) {
|
|
1059
|
-
client.
|
|
1071
|
+
if (client.netchan) {
|
|
1072
|
+
try {
|
|
1073
|
+
client.netchan.writeReliableByte(ServerCommand2.configstring);
|
|
1074
|
+
client.netchan.writeReliableShort(index);
|
|
1075
|
+
client.netchan.writeReliableString(value);
|
|
1076
|
+
const packet = client.netchan.transmit();
|
|
1077
|
+
client.net.send(packet);
|
|
1078
|
+
} catch (e) {
|
|
1079
|
+
console.warn(`Client ${client.index} reliable buffer overflow`);
|
|
1080
|
+
this.dropClient(client);
|
|
1081
|
+
}
|
|
1082
|
+
}
|
|
1060
1083
|
}
|
|
1061
1084
|
}
|
|
1062
1085
|
}
|
|
@@ -1069,11 +1092,18 @@ var DedicatedServer = class {
|
|
|
1069
1092
|
for (const client of this.svs.clients) {
|
|
1070
1093
|
if (!client || client.state === 0 /* Free */) continue;
|
|
1071
1094
|
while (client.messageQueue.length > 0) {
|
|
1072
|
-
const
|
|
1073
|
-
if (!
|
|
1095
|
+
const rawData = client.messageQueue.shift();
|
|
1096
|
+
if (!rawData) continue;
|
|
1097
|
+
const data = client.netchan.process(rawData);
|
|
1098
|
+
if (!data) {
|
|
1099
|
+
continue;
|
|
1100
|
+
}
|
|
1101
|
+
if (data.length === 0) {
|
|
1102
|
+
continue;
|
|
1103
|
+
}
|
|
1074
1104
|
const reader = new BinaryStream2(data.buffer);
|
|
1075
1105
|
const parser = new ClientMessageParser(reader, {
|
|
1076
|
-
onMove: (checksum, lastFrame, cmd) => this.handleMove(client, cmd),
|
|
1106
|
+
onMove: (checksum, lastFrame, cmd) => this.handleMove(client, cmd, checksum, lastFrame),
|
|
1077
1107
|
onUserInfo: (info) => this.handleUserInfo(client, info),
|
|
1078
1108
|
onStringCmd: (cmd) => this.handleStringCmd(client, cmd),
|
|
1079
1109
|
onNop: () => {
|
|
@@ -1107,6 +1137,16 @@ var DedicatedServer = class {
|
|
|
1107
1137
|
}
|
|
1108
1138
|
}
|
|
1109
1139
|
if (client && client.state === 4 /* Active */ && client.edict) {
|
|
1140
|
+
const now = Date.now();
|
|
1141
|
+
if (now - client.lastCommandTime >= 1e3) {
|
|
1142
|
+
client.lastCommandTime = now;
|
|
1143
|
+
client.commandCount = 0;
|
|
1144
|
+
}
|
|
1145
|
+
if (client.commandCount > 200) {
|
|
1146
|
+
console.warn(`Client ${client.index} kicked for command flooding`);
|
|
1147
|
+
this.dropClient(client);
|
|
1148
|
+
continue;
|
|
1149
|
+
}
|
|
1110
1150
|
this.game.clientThink(client.edict, client.lastCmd);
|
|
1111
1151
|
}
|
|
1112
1152
|
}
|
|
@@ -1202,7 +1242,10 @@ var DedicatedServer = class {
|
|
|
1202
1242
|
}
|
|
1203
1243
|
}
|
|
1204
1244
|
writer.writeShort(0);
|
|
1205
|
-
|
|
1245
|
+
const frameData = writer.getData();
|
|
1246
|
+
currentFrame.packetCRC = crc8(frameData);
|
|
1247
|
+
const packet = client.netchan.transmit(frameData);
|
|
1248
|
+
client.net.send(packet);
|
|
1206
1249
|
client.lastFrame = this.sv.frame;
|
|
1207
1250
|
client.lastPacketEntities = currentEntityIds;
|
|
1208
1251
|
}
|