@amxts/core 0.2.3 → 0.3.0
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/README.md +5 -5
- package/README.ru.md +5 -5
- package/as/amxts.d.ts +13 -3
- package/as/entities.ts +571 -501
- package/as/events.ts +3323 -557
- package/as/facade.ts +3079 -718
- package/as/fetch.ts +2 -2
- package/as/fs.ts +352 -59
- package/as/hlds.ts +121 -120
- package/as/hooks.ts +10585 -5177
- package/as/lib/check.ts +3 -2
- package/as/natives.ts +856 -1272
- package/as/promise.ts +37 -27
- package/as/vector.ts +94 -14
- package/includes/order.txt +17 -19
- package/node_modules/assemblyscript/std/assembly/index.d.ts +1 -1
- package/package.json +9 -6
- package/runtime/deps/assemblyscript/dist/asc.js +136 -42
- package/runtime/deps/assemblyscript/dist/assemblyscript.js +141 -141
- package/runtime/licenses/README.md +9 -7
- package/runtime/licenses/ReGameDLL-LICENSE +21 -0
- package/runtime/licenses/ReHLDS-LICENSE +21 -0
- package/runtime/licenses/zlib-LICENSE +22 -0
- package/runtime/natives.txt +618 -523
- package/runtime/patches/README.md +87 -1
- package/runtime/patches/assemblyscript-0.28.20-amxts.patch +4838 -416
- package/runtime/patches/wamr-2.4.5-amxts.patch +417 -5
- package/scripts/auto-imports.ts +1 -1
- package/scripts/build-identity.ts +102 -65
- package/scripts/build-wasm.ts +17 -13
- package/scripts/check.ts +4 -1
- package/scripts/client-messages.ts +73 -1
- package/scripts/compile-cache.ts +11 -8
- package/scripts/compile-pool.ts +6 -3
- package/scripts/compile-worker.ts +23 -23
- package/scripts/compile.ts +142 -19
- package/scripts/docs/as/amxts.ts +10 -4
- package/scripts/docs/as/facade.ts +1779 -275
- package/scripts/docs/as/fetch.ts +2 -2
- package/scripts/docs/as/fs.ts +190 -6
- package/scripts/docs/as/vector.ts +81 -0
- package/scripts/docs/entities.ts +12 -0
- package/scripts/docs/events.ts +49 -13
- package/scripts/docs/game.ts +6 -0
- package/scripts/docs/messages.ts +10 -1
- package/scripts/hlds-events.ts +11 -11
- package/scripts/includes.ts +3 -4
- package/scripts/leaf-natives.ts +84 -0
- package/scripts/player-fields.ts +1 -1
- package/scripts/plugin-natives.ts +1 -1
- package/scripts/prebuilt.ts +42 -11
- package/scripts/project.ts +63 -4
- package/scripts/reapi-events.ts +9 -9
- package/scripts/server-env.ts +145 -0
- package/scripts/shared-modules.ts +23 -7
- package/scripts/system.ts +1 -1
- package/scripts/tracked-fs.ts +11 -2
- package/scripts/typed-commands.ts +153 -15
- package/scripts/upgrade-calls.ts +225 -0
- package/scripts/upgrade-names.ts +1 -4
- package/scripts/upgrade.ts +47 -34
- package/src/cli-api.mjs +3 -2
- package/src/system.mjs +21 -11
- package/src/testing/compile.ts +31 -8
- package/src/testing/coroutines.ts +0 -10
- package/src/testing/memory.ts +89 -2
- package/src/testing/natives.ts +67 -30
- package/src/testing/server.ts +1094 -155
- package/src/testing/tables.ts +23 -6
- package/src/typecheck.mjs +110 -0
- package/runtime/licenses/Bun-LICENSE.md +0 -84
package/as/events.ts
CHANGED
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
// GENERATED by scripts/generate-
|
|
2
|
-
// Source: includes/*.inc,
|
|
1
|
+
// GENERATED by scripts/generate-image.ts — do not edit
|
|
2
|
+
// Source: includes/*.inc, the forwards the module raises
|
|
3
3
|
//
|
|
4
|
-
// The events a server raises, one per forward the
|
|
4
|
+
// The events a server raises, one per forward the module raises:
|
|
5
5
|
//
|
|
6
|
-
// server.addEventListener("putInServer", (event) =>
|
|
6
|
+
// server.addEventListener("putInServer", (event) => event.player.print("Welcome!"));
|
|
7
7
|
//
|
|
8
8
|
// ServerEventMap is what an editor reads - the event's name to its type, as
|
|
9
9
|
// the DOM's HTMLElementEventMap - and the compiler reads the same map through
|
|
10
10
|
// a patch (runtime/patches: `K extends keyof M` and `M[K]`), so an untyped
|
|
11
11
|
// `(event) => ...` gets the event's type. Underneath, each event keeps its
|
|
12
|
-
// listeners in an array and
|
|
13
|
-
import { Client, ClientMessage, FadeDirection, Player, PlayerChangeEvent, StatusIconState, Team, VariantName, __forwardNumbers, __nativeCell, __nativeString, __nativeVector, __off } from "./facade";
|
|
12
|
+
// listeners in an array and listens to its forward while the array has any.
|
|
13
|
+
import { Client, ClientMessage, FadeDirection, Player, PlayerChangeEvent, __MessageOut, StatusIconState, Team, VariantName, __Listeners, __ServerEvent, __commandArgs, __commandName, __commandText, __forwardNumbers, __logArgs, __logText, __nativeCell, handled, __nativeString, __nativeVector, __off, __onDirect, __playbackBlock, __playbackTo, __playerOf } from "./facade";
|
|
14
14
|
import { Vector } from "./vector";
|
|
15
15
|
import { WeaponKind, weaponKindOf } from "./entities";
|
|
16
16
|
import { DAMAGE, Damage, HIDE_HUD, HideHud, SCORE_STATUS, ScoreStatus } from "./flags";
|
|
17
17
|
import { VguiMenu } from "./hooks";
|
|
18
|
+
import { emessage_end, ewrite_angle_f, ewrite_byte, ewrite_char, ewrite_coord_f, ewrite_long, ewrite_short, ewrite_string } from "./natives";
|
|
18
19
|
|
|
19
20
|
// @ts-ignore: decorator
|
|
20
21
|
@external("env", "on")
|
|
@@ -30,22 +31,6 @@ declare function _on(event: string, fn: i32, shape: i32): void;
|
|
|
30
31
|
export class PluginInitEvent {
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
/**
|
|
34
|
-
* An admin paused this plugin.
|
|
35
|
-
*
|
|
36
|
-
* Pawn: `plugin_pause()`
|
|
37
|
-
*/
|
|
38
|
-
export class PluginPauseEvent {
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* An admin resumed this plugin.
|
|
43
|
-
*
|
|
44
|
-
* Pawn: `plugin_unpause()`
|
|
45
|
-
*/
|
|
46
|
-
export class PluginUnpauseEvent {
|
|
47
|
-
}
|
|
48
|
-
|
|
49
34
|
/**
|
|
50
35
|
* The server is about to change the map.
|
|
51
36
|
*
|
|
@@ -54,16 +39,31 @@ export class PluginUnpauseEvent {
|
|
|
54
39
|
*
|
|
55
40
|
* Pawn: `server_changelevel(map[])`
|
|
56
41
|
*/
|
|
57
|
-
export class ServerChangelevelEvent {
|
|
42
|
+
export class ServerChangelevelEvent extends __ServerEvent {
|
|
43
|
+
private __map: string | null = null;
|
|
44
|
+
|
|
58
45
|
/**
|
|
59
46
|
* The map the server changes to, e.g. `"de_dust2"`.
|
|
60
47
|
*
|
|
61
48
|
* Pawn: `map[]`
|
|
62
49
|
*/
|
|
63
|
-
map: string
|
|
50
|
+
get map(): string {
|
|
51
|
+
return this.__kept ? this.__map! : __nativeString(0);
|
|
52
|
+
}
|
|
64
53
|
|
|
65
|
-
|
|
66
|
-
this.
|
|
54
|
+
set map(value: string) {
|
|
55
|
+
this.__keep();
|
|
56
|
+
this.__map = value;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
60
|
+
__keep(): void {
|
|
61
|
+
if (this.__kept) return;
|
|
62
|
+
this.__map = __nativeString(0);
|
|
63
|
+
this.__kept = true;
|
|
64
|
+
if (changeLevelView != this) return;
|
|
65
|
+
changeLevelView = null;
|
|
66
|
+
changeLevelDirect();
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
69
|
|
|
@@ -78,7 +78,7 @@ export class PluginCfgEvent {
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/**
|
|
81
|
-
* The
|
|
81
|
+
* The plugin stops - the map ends, the server shuts down, or `amxts_reload`/`amxts_unload` stops it: save what has to survive.
|
|
82
82
|
*
|
|
83
83
|
* Note: The plugin is required to manually free Handles it has acquired, such as those from dynamic data structures. Failing to do that will result in the plugin and AMXX leaking memory.
|
|
84
84
|
*
|
|
@@ -88,13 +88,59 @@ export class PluginEndEvent {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
/**
|
|
91
|
-
*
|
|
91
|
+
* A line the game writes to its log - a round's end, a kill, a bomb planted: `event.text` whole, `event.args` its parts.
|
|
92
92
|
*
|
|
93
93
|
* Note: Message data and information can be retrieved using the read_log* set of functions.
|
|
94
94
|
*
|
|
95
|
-
* Pawn: `plugin_log()`
|
|
95
|
+
* Pawn: `plugin_log(read_logdata, read_logargv)`
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* server.addEventListener("log", (event) => {
|
|
99
|
+
* if (event.text.startsWith("World triggered")) console.log(event.args[1]);
|
|
100
|
+
* });
|
|
96
101
|
*/
|
|
97
|
-
export class PluginLogEvent {
|
|
102
|
+
export class PluginLogEvent extends __ServerEvent {
|
|
103
|
+
private __text: string | null = null;
|
|
104
|
+
private __args: string[] | null = null;
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* The line as the game logs it, without the date: `World triggered "Round_Start"`.
|
|
108
|
+
*
|
|
109
|
+
* Pawn: `read_logdata`
|
|
110
|
+
*/
|
|
111
|
+
get text(): string {
|
|
112
|
+
return this.__kept ? this.__text! : __logText();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
set text(value: string) {
|
|
116
|
+
this.__keep();
|
|
117
|
+
this.__text = value;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* The line in parts, as AMX Mod X splits it: a quoted text, a text in parentheses and the words between, each one part - `World triggered "Round_Draw"` is `["World triggered", "Round_Draw"]`.
|
|
122
|
+
*
|
|
123
|
+
* Pawn: `read_logargv`
|
|
124
|
+
*/
|
|
125
|
+
get args(): string[] {
|
|
126
|
+
return this.__kept ? this.__args! : __logArgs();
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
set args(value: string[]) {
|
|
130
|
+
this.__keep();
|
|
131
|
+
this.__args = value;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
135
|
+
__keep(): void {
|
|
136
|
+
if (this.__kept) return;
|
|
137
|
+
this.__text = __logText();
|
|
138
|
+
this.__args = __logArgs();
|
|
139
|
+
this.__kept = true;
|
|
140
|
+
if (logView != this) return;
|
|
141
|
+
logView = null;
|
|
142
|
+
logDirect();
|
|
143
|
+
}
|
|
98
144
|
}
|
|
99
145
|
|
|
100
146
|
/**
|
|
@@ -112,16 +158,31 @@ export class PluginPrecacheEvent {
|
|
|
112
158
|
*
|
|
113
159
|
* Pawn: `client_infochanged(id)`
|
|
114
160
|
*/
|
|
115
|
-
export class ClientInfochangedEvent {
|
|
161
|
+
export class ClientInfochangedEvent extends __ServerEvent {
|
|
162
|
+
private __player: Player | null = null;
|
|
163
|
+
|
|
116
164
|
/**
|
|
117
165
|
* The player the event is about.
|
|
118
166
|
*
|
|
119
167
|
* Pawn: `id`
|
|
120
168
|
*/
|
|
121
|
-
player: Player
|
|
169
|
+
get player(): Player {
|
|
170
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
set player(value: Player) {
|
|
174
|
+
this.__keep();
|
|
175
|
+
this.__player = value;
|
|
176
|
+
}
|
|
122
177
|
|
|
123
|
-
|
|
124
|
-
|
|
178
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
179
|
+
__keep(): void {
|
|
180
|
+
if (this.__kept) return;
|
|
181
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
182
|
+
this.__kept = true;
|
|
183
|
+
if (clientInfochangedView != this) return;
|
|
184
|
+
clientInfochangedView = null;
|
|
185
|
+
clientInfochangedDirect();
|
|
125
186
|
}
|
|
126
187
|
}
|
|
127
188
|
|
|
@@ -132,16 +193,31 @@ export class ClientInfochangedEvent {
|
|
|
132
193
|
*
|
|
133
194
|
* Pawn: `client_connect(id)`
|
|
134
195
|
*/
|
|
135
|
-
export class ClientConnectEvent {
|
|
196
|
+
export class ClientConnectEvent extends __ServerEvent {
|
|
197
|
+
private __player: Client | null = null;
|
|
198
|
+
|
|
136
199
|
/**
|
|
137
200
|
* The player the event is about.
|
|
138
201
|
*
|
|
139
202
|
* Pawn: `id`
|
|
140
203
|
*/
|
|
141
|
-
player: Client
|
|
204
|
+
get player(): Client {
|
|
205
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
set player(value: Client) {
|
|
209
|
+
this.__keep();
|
|
210
|
+
this.__player = value;
|
|
211
|
+
}
|
|
142
212
|
|
|
143
|
-
|
|
144
|
-
|
|
213
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
214
|
+
__keep(): void {
|
|
215
|
+
if (this.__kept) return;
|
|
216
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
217
|
+
this.__kept = true;
|
|
218
|
+
if (connectView != this) return;
|
|
219
|
+
connectView = null;
|
|
220
|
+
connectDirect();
|
|
145
221
|
}
|
|
146
222
|
}
|
|
147
223
|
|
|
@@ -152,37 +228,79 @@ export class ClientConnectEvent {
|
|
|
152
228
|
*
|
|
153
229
|
* Pawn: `client_connectex(id, name[], ip[], reason[128])`
|
|
154
230
|
*/
|
|
155
|
-
export class ClientConnectexEvent {
|
|
231
|
+
export class ClientConnectexEvent extends __ServerEvent {
|
|
232
|
+
private __player: Client | null = null;
|
|
233
|
+
private __name: string | null = null;
|
|
234
|
+
private __ip: string | null = null;
|
|
235
|
+
private __reason: string | null = null;
|
|
236
|
+
|
|
156
237
|
/**
|
|
157
238
|
* The player the event is about.
|
|
158
239
|
*
|
|
159
240
|
* Pawn: `id`
|
|
160
241
|
*/
|
|
161
|
-
player: Client
|
|
242
|
+
get player(): Client {
|
|
243
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
set player(value: Client) {
|
|
247
|
+
this.__keep();
|
|
248
|
+
this.__player = value;
|
|
249
|
+
}
|
|
250
|
+
|
|
162
251
|
/**
|
|
163
252
|
* The name the player connects with.
|
|
164
253
|
*
|
|
165
254
|
* Pawn: `name[]`
|
|
166
255
|
*/
|
|
167
|
-
name: string
|
|
256
|
+
get name(): string {
|
|
257
|
+
return this.__kept ? this.__name! : __nativeString(1);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
set name(value: string) {
|
|
261
|
+
this.__keep();
|
|
262
|
+
this.__name = value;
|
|
263
|
+
}
|
|
264
|
+
|
|
168
265
|
/**
|
|
169
266
|
* The player's address with the port, e.g. `"192.168.0.5:27005"`.
|
|
170
267
|
*
|
|
171
268
|
* Pawn: `ip[]`
|
|
172
269
|
*/
|
|
173
|
-
ip: string
|
|
270
|
+
get ip(): string {
|
|
271
|
+
return this.__kept ? this.__ip! : __nativeString(2);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
set ip(value: string) {
|
|
275
|
+
this.__keep();
|
|
276
|
+
this.__ip = value;
|
|
277
|
+
}
|
|
278
|
+
|
|
174
279
|
/**
|
|
175
280
|
* The message the player sees if he is turned away.
|
|
176
281
|
*
|
|
177
282
|
* Pawn: `reason[128]`
|
|
178
283
|
*/
|
|
179
|
-
reason: string
|
|
284
|
+
get reason(): string {
|
|
285
|
+
return this.__kept ? this.__reason! : __nativeString(3);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
set reason(value: string) {
|
|
289
|
+
this.__keep();
|
|
290
|
+
this.__reason = value;
|
|
291
|
+
}
|
|
180
292
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
this.
|
|
184
|
-
this.
|
|
185
|
-
this.
|
|
293
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
294
|
+
__keep(): void {
|
|
295
|
+
if (this.__kept) return;
|
|
296
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
297
|
+
this.__name = __nativeString(1);
|
|
298
|
+
this.__ip = __nativeString(2);
|
|
299
|
+
this.__reason = __nativeString(3);
|
|
300
|
+
this.__kept = true;
|
|
301
|
+
if (connectAttemptView != this) return;
|
|
302
|
+
connectAttemptView = null;
|
|
303
|
+
connectAttemptDirect();
|
|
186
304
|
}
|
|
187
305
|
}
|
|
188
306
|
|
|
@@ -193,23 +311,47 @@ export class ClientConnectexEvent {
|
|
|
193
311
|
*
|
|
194
312
|
* Pawn: `client_authorized(id, authid[])`
|
|
195
313
|
*/
|
|
196
|
-
export class ClientAuthorizedEvent {
|
|
314
|
+
export class ClientAuthorizedEvent extends __ServerEvent {
|
|
315
|
+
private __player: Client | null = null;
|
|
316
|
+
private __steamId: string | null = null;
|
|
317
|
+
|
|
197
318
|
/**
|
|
198
319
|
* The player the event is about.
|
|
199
320
|
*
|
|
200
321
|
* Pawn: `id`
|
|
201
322
|
*/
|
|
202
|
-
player: Client
|
|
323
|
+
get player(): Client {
|
|
324
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
set player(value: Client) {
|
|
328
|
+
this.__keep();
|
|
329
|
+
this.__player = value;
|
|
330
|
+
}
|
|
331
|
+
|
|
203
332
|
/**
|
|
204
333
|
* The player's SteamID, e.g. `"STEAM_0:1:12345"`. A bot has `"BOT"`, HLTV has `"HLTV"`; on a LAN server it is `"STEAM_ID_LAN"`. With Reunion a game without Steam gets one made from its key: `"STEAM_..."` or `"VALVE_..."`, as the server's Reunion settings say.
|
|
205
334
|
*
|
|
206
335
|
* Pawn: `authid[]`
|
|
207
336
|
*/
|
|
208
|
-
steamId: string
|
|
337
|
+
get steamId(): string {
|
|
338
|
+
return this.__kept ? this.__steamId! : __nativeString(1);
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
set steamId(value: string) {
|
|
342
|
+
this.__keep();
|
|
343
|
+
this.__steamId = value;
|
|
344
|
+
}
|
|
209
345
|
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
this.
|
|
346
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
347
|
+
__keep(): void {
|
|
348
|
+
if (this.__kept) return;
|
|
349
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
350
|
+
this.__steamId = __nativeString(1);
|
|
351
|
+
this.__kept = true;
|
|
352
|
+
if (authorizedView != this) return;
|
|
353
|
+
authorizedView = null;
|
|
354
|
+
authorizedDirect();
|
|
213
355
|
}
|
|
214
356
|
}
|
|
215
357
|
|
|
@@ -225,30 +367,63 @@ export class ClientAuthorizedEvent {
|
|
|
225
367
|
* console.log(`${event.player.name} left: ${event.reason}`);
|
|
226
368
|
* });
|
|
227
369
|
*/
|
|
228
|
-
export class ClientDisconnectedEvent {
|
|
370
|
+
export class ClientDisconnectedEvent extends __ServerEvent {
|
|
371
|
+
private __player: Player | null = null;
|
|
372
|
+
private __dropped: boolean = false;
|
|
373
|
+
private __reason: string | null = null;
|
|
374
|
+
|
|
229
375
|
/**
|
|
230
376
|
* The player the event is about.
|
|
231
377
|
*
|
|
232
378
|
* Pawn: `id`
|
|
233
379
|
*/
|
|
234
|
-
player: Player
|
|
380
|
+
get player(): Player {
|
|
381
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
set player(value: Player) {
|
|
385
|
+
this.__keep();
|
|
386
|
+
this.__player = value;
|
|
387
|
+
}
|
|
388
|
+
|
|
235
389
|
/**
|
|
236
390
|
* `true` when the server dropped the player (kick, timeout) rather than he left.
|
|
237
391
|
*
|
|
238
392
|
* Pawn: `bool:drop`
|
|
239
393
|
*/
|
|
240
|
-
dropped: boolean
|
|
394
|
+
get dropped(): boolean {
|
|
395
|
+
return this.__kept ? this.__dropped : __nativeCell(1) != 0;
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
set dropped(value: boolean) {
|
|
399
|
+
this.__keep();
|
|
400
|
+
this.__dropped = value;
|
|
401
|
+
}
|
|
402
|
+
|
|
241
403
|
/**
|
|
242
404
|
* The reason the server gives for the leave; empty when the player just quit.
|
|
243
405
|
*
|
|
244
406
|
* Pawn: `message[]`
|
|
245
407
|
*/
|
|
246
|
-
reason: string
|
|
408
|
+
get reason(): string {
|
|
409
|
+
return this.__kept ? this.__reason! : __nativeString(2);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
set reason(value: string) {
|
|
413
|
+
this.__keep();
|
|
414
|
+
this.__reason = value;
|
|
415
|
+
}
|
|
247
416
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
this.
|
|
251
|
-
this.
|
|
417
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
418
|
+
__keep(): void {
|
|
419
|
+
if (this.__kept) return;
|
|
420
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
421
|
+
this.__dropped = __nativeCell(1) != 0;
|
|
422
|
+
this.__reason = __nativeString(2);
|
|
423
|
+
this.__kept = true;
|
|
424
|
+
if (disconnectedView != this) return;
|
|
425
|
+
disconnectedView = null;
|
|
426
|
+
disconnectedDirect();
|
|
252
427
|
}
|
|
253
428
|
}
|
|
254
429
|
|
|
@@ -259,50 +434,158 @@ export class ClientDisconnectedEvent {
|
|
|
259
434
|
*
|
|
260
435
|
* Pawn: `client_remove(id, bool:drop, message[])`
|
|
261
436
|
*/
|
|
262
|
-
export class ClientRemoveEvent {
|
|
437
|
+
export class ClientRemoveEvent extends __ServerEvent {
|
|
438
|
+
private __player: Player | null = null;
|
|
439
|
+
private __dropped: boolean = false;
|
|
440
|
+
private __reason: string | null = null;
|
|
441
|
+
|
|
263
442
|
/**
|
|
264
443
|
* The player the event is about.
|
|
265
444
|
*
|
|
266
445
|
* Pawn: `id`
|
|
267
446
|
*/
|
|
268
|
-
player: Player
|
|
447
|
+
get player(): Player {
|
|
448
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
set player(value: Player) {
|
|
452
|
+
this.__keep();
|
|
453
|
+
this.__player = value;
|
|
454
|
+
}
|
|
455
|
+
|
|
269
456
|
/**
|
|
270
457
|
* `true` when the server dropped the player.
|
|
271
458
|
*
|
|
272
459
|
* Pawn: `bool:drop`
|
|
273
460
|
*/
|
|
274
|
-
dropped: boolean
|
|
461
|
+
get dropped(): boolean {
|
|
462
|
+
return this.__kept ? this.__dropped : __nativeCell(1) != 0;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
set dropped(value: boolean) {
|
|
466
|
+
this.__keep();
|
|
467
|
+
this.__dropped = value;
|
|
468
|
+
}
|
|
469
|
+
|
|
275
470
|
/**
|
|
276
471
|
* The reason the player left.
|
|
277
472
|
*
|
|
278
473
|
* Pawn: `message[]`
|
|
279
474
|
*/
|
|
280
|
-
reason: string
|
|
475
|
+
get reason(): string {
|
|
476
|
+
return this.__kept ? this.__reason! : __nativeString(2);
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
set reason(value: string) {
|
|
480
|
+
this.__keep();
|
|
481
|
+
this.__reason = value;
|
|
482
|
+
}
|
|
281
483
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
this.
|
|
285
|
-
this.
|
|
484
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
485
|
+
__keep(): void {
|
|
486
|
+
if (this.__kept) return;
|
|
487
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
488
|
+
this.__dropped = __nativeCell(1) != 0;
|
|
489
|
+
this.__reason = __nativeString(2);
|
|
490
|
+
this.__kept = true;
|
|
491
|
+
if (removeView != this) return;
|
|
492
|
+
removeView = null;
|
|
493
|
+
removeDirect();
|
|
286
494
|
}
|
|
287
495
|
}
|
|
288
496
|
|
|
289
497
|
/**
|
|
290
|
-
* A player sent a console command
|
|
498
|
+
* A player sent a console command - a chat line is `say` or `say_team`. For one command, `server.addCommand("name", handler)` is simpler.
|
|
291
499
|
*
|
|
292
|
-
*
|
|
500
|
+
* Pawn: `client_command(id, read_argv(0), read_argv, read_args)`
|
|
293
501
|
*
|
|
294
|
-
*
|
|
502
|
+
* @example
|
|
503
|
+
* server.addEventListener("command", (event) => {
|
|
504
|
+
* if (event.command == "say" && event.args[0] == "/cp") checkpoint(event.player);
|
|
505
|
+
* });
|
|
295
506
|
*/
|
|
296
|
-
export class ClientCommandEvent {
|
|
507
|
+
export class ClientCommandEvent extends __ServerEvent {
|
|
508
|
+
private __player: Player | null = null;
|
|
509
|
+
private __command: string | null = null;
|
|
510
|
+
private __args: string[] | null = null;
|
|
511
|
+
private __text: string | null = null;
|
|
512
|
+
|
|
297
513
|
/**
|
|
298
514
|
* The player the event is about.
|
|
299
515
|
*
|
|
300
516
|
* Pawn: `id`
|
|
301
517
|
*/
|
|
302
|
-
player: Player
|
|
518
|
+
get player(): Player {
|
|
519
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
set player(value: Player) {
|
|
523
|
+
this.__keep();
|
|
524
|
+
this.__player = value;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
/**
|
|
528
|
+
* The command's name, as typed, e.g. `"say"`, `"say_team"`, `"buy"`.
|
|
529
|
+
*
|
|
530
|
+
* Pawn: `read_argv(0)`
|
|
531
|
+
*/
|
|
532
|
+
get command(): string {
|
|
533
|
+
return this.__kept ? this.__command! : __commandName();
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
set command(value: string) {
|
|
537
|
+
this.__keep();
|
|
538
|
+
this.__command = value;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
/**
|
|
542
|
+
* The command's words after its name; for `say` and `say_team`, the words of the chat line - `say /cp now` is `["/cp", "now"]`.
|
|
543
|
+
*
|
|
544
|
+
* Pawn: `read_argv`
|
|
545
|
+
*/
|
|
546
|
+
get args(): string[] {
|
|
547
|
+
return this.__kept ? this.__args! : __commandArgs();
|
|
548
|
+
}
|
|
549
|
+
|
|
550
|
+
set args(value: string[]) {
|
|
551
|
+
this.__keep();
|
|
552
|
+
this.__args = value;
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
/**
|
|
556
|
+
* The command's text after its name, as one line; for `say` and `say_team`, the chat line without its quotes.
|
|
557
|
+
*
|
|
558
|
+
* Pawn: `read_args`
|
|
559
|
+
*/
|
|
560
|
+
get text(): string {
|
|
561
|
+
return this.__kept ? this.__text! : __commandText();
|
|
562
|
+
}
|
|
563
|
+
|
|
564
|
+
set text(value: string) {
|
|
565
|
+
this.__keep();
|
|
566
|
+
this.__text = value;
|
|
567
|
+
}
|
|
303
568
|
|
|
304
|
-
|
|
305
|
-
|
|
569
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
570
|
+
__keep(): void {
|
|
571
|
+
if (this.__kept) return;
|
|
572
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
573
|
+
this.__command = __commandName();
|
|
574
|
+
this.__args = __commandArgs();
|
|
575
|
+
this.__text = __commandText();
|
|
576
|
+
this.__kept = true;
|
|
577
|
+
if (commandView != this) return;
|
|
578
|
+
commandView = null;
|
|
579
|
+
commandDirect();
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
/**
|
|
583
|
+
* Stops the command: the game does not run it - a chat line is not said - and no plugin's `server.addCommand` hears it. The other listeners of `"command"` still do.
|
|
584
|
+
*
|
|
585
|
+
* Pawn: `return PLUGIN_HANDLED`
|
|
586
|
+
*/
|
|
587
|
+
preventDefault(): void {
|
|
588
|
+
handled();
|
|
306
589
|
}
|
|
307
590
|
}
|
|
308
591
|
|
|
@@ -315,19 +598,34 @@ export class ClientCommandEvent {
|
|
|
315
598
|
*
|
|
316
599
|
* @example
|
|
317
600
|
* server.addEventListener("putInServer", (event) => {
|
|
318
|
-
*
|
|
601
|
+
* event.player.print("Welcome!");
|
|
319
602
|
* });
|
|
320
603
|
*/
|
|
321
|
-
export class ClientPutinserverEvent {
|
|
604
|
+
export class ClientPutinserverEvent extends __ServerEvent {
|
|
605
|
+
private __player: Client | null = null;
|
|
606
|
+
|
|
322
607
|
/**
|
|
323
608
|
* The player the event is about.
|
|
324
609
|
*
|
|
325
610
|
* Pawn: `id`
|
|
326
611
|
*/
|
|
327
|
-
player: Client
|
|
612
|
+
get player(): Client {
|
|
613
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
set player(value: Client) {
|
|
617
|
+
this.__keep();
|
|
618
|
+
this.__player = value;
|
|
619
|
+
}
|
|
328
620
|
|
|
329
|
-
|
|
330
|
-
|
|
621
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
622
|
+
__keep(): void {
|
|
623
|
+
if (this.__kept) return;
|
|
624
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
625
|
+
this.__kept = true;
|
|
626
|
+
if (putInServerView != this) return;
|
|
627
|
+
putInServerView = null;
|
|
628
|
+
putInServerDirect();
|
|
331
629
|
}
|
|
332
630
|
}
|
|
333
631
|
|
|
@@ -336,39 +634,64 @@ export class ClientPutinserverEvent {
|
|
|
336
634
|
*
|
|
337
635
|
* Pawn: `inconsistent_file(id, filename[], reason[64])`
|
|
338
636
|
*/
|
|
339
|
-
export class InconsistentFileEvent {
|
|
637
|
+
export class InconsistentFileEvent extends __ServerEvent {
|
|
638
|
+
private __player: Player | null = null;
|
|
639
|
+
private __file: string | null = null;
|
|
640
|
+
private __reason: string | null = null;
|
|
641
|
+
|
|
340
642
|
/**
|
|
341
643
|
* The player the event is about.
|
|
342
644
|
*
|
|
343
645
|
* Pawn: `id`
|
|
344
646
|
*/
|
|
345
|
-
player: Player
|
|
647
|
+
get player(): Player {
|
|
648
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
set player(value: Player) {
|
|
652
|
+
this.__keep();
|
|
653
|
+
this.__player = value;
|
|
654
|
+
}
|
|
655
|
+
|
|
346
656
|
/**
|
|
347
657
|
* Detected file
|
|
348
658
|
*
|
|
349
659
|
* Pawn: `filename[]`
|
|
350
660
|
*/
|
|
351
|
-
file: string
|
|
661
|
+
get file(): string {
|
|
662
|
+
return this.__kept ? this.__file! : __nativeString(1);
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
set file(value: string) {
|
|
666
|
+
this.__keep();
|
|
667
|
+
this.__file = value;
|
|
668
|
+
}
|
|
669
|
+
|
|
352
670
|
/**
|
|
353
671
|
* Buffer storing the disconnect reason (can be overwritten)
|
|
354
672
|
*
|
|
355
673
|
* Pawn: `reason[64]`
|
|
356
674
|
*/
|
|
357
|
-
reason: string
|
|
675
|
+
get reason(): string {
|
|
676
|
+
return this.__kept ? this.__reason! : __nativeString(2);
|
|
677
|
+
}
|
|
358
678
|
|
|
359
|
-
|
|
360
|
-
this.
|
|
361
|
-
this.
|
|
362
|
-
this.reason = reason;
|
|
679
|
+
set reason(value: string) {
|
|
680
|
+
this.__keep();
|
|
681
|
+
this.__reason = value;
|
|
363
682
|
}
|
|
364
|
-
}
|
|
365
683
|
|
|
366
|
-
/**
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
684
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
685
|
+
__keep(): void {
|
|
686
|
+
if (this.__kept) return;
|
|
687
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
688
|
+
this.__file = __nativeString(1);
|
|
689
|
+
this.__reason = __nativeString(2);
|
|
690
|
+
this.__kept = true;
|
|
691
|
+
if (inconsistentFileView != this) return;
|
|
692
|
+
inconsistentFileView = null;
|
|
693
|
+
inconsistentFileDirect();
|
|
694
|
+
}
|
|
372
695
|
}
|
|
373
696
|
|
|
374
697
|
/**
|
|
@@ -399,23 +722,47 @@ export class OnAutoConfigsBufferedEvent {
|
|
|
399
722
|
*
|
|
400
723
|
* Pawn: `CS_InternalCommand(id, cmd[])`
|
|
401
724
|
*/
|
|
402
|
-
export class CS_InternalCommandEvent {
|
|
725
|
+
export class CS_InternalCommandEvent extends __ServerEvent {
|
|
726
|
+
private __player: Player | null = null;
|
|
727
|
+
private __command: string | null = null;
|
|
728
|
+
|
|
403
729
|
/**
|
|
404
730
|
* The player the event is about.
|
|
405
731
|
*
|
|
406
732
|
* Pawn: `id`
|
|
407
733
|
*/
|
|
408
|
-
player: Player
|
|
734
|
+
get player(): Player {
|
|
735
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
736
|
+
}
|
|
737
|
+
|
|
738
|
+
set player(value: Player) {
|
|
739
|
+
this.__keep();
|
|
740
|
+
this.__player = value;
|
|
741
|
+
}
|
|
742
|
+
|
|
409
743
|
/**
|
|
410
744
|
* Command string
|
|
411
745
|
*
|
|
412
746
|
* Pawn: `cmd[]`
|
|
413
747
|
*/
|
|
414
|
-
command: string
|
|
748
|
+
get command(): string {
|
|
749
|
+
return this.__kept ? this.__command! : __nativeString(1);
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
set command(value: string) {
|
|
753
|
+
this.__keep();
|
|
754
|
+
this.__command = value;
|
|
755
|
+
}
|
|
415
756
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
this.
|
|
757
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
758
|
+
__keep(): void {
|
|
759
|
+
if (this.__kept) return;
|
|
760
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
761
|
+
this.__command = __nativeString(1);
|
|
762
|
+
this.__kept = true;
|
|
763
|
+
if (internalCommandView != this) return;
|
|
764
|
+
internalCommandView = null;
|
|
765
|
+
internalCommandDirect();
|
|
419
766
|
}
|
|
420
767
|
}
|
|
421
768
|
|
|
@@ -427,23 +774,47 @@ export class CS_InternalCommandEvent {
|
|
|
427
774
|
*
|
|
428
775
|
* Pawn: `CS_OnBuyAttempt(index, item)`
|
|
429
776
|
*/
|
|
430
|
-
export class CS_OnBuyAttemptEvent {
|
|
777
|
+
export class CS_OnBuyAttemptEvent extends __ServerEvent {
|
|
778
|
+
private __player: Player | null = null;
|
|
779
|
+
private __item: number = 0;
|
|
780
|
+
|
|
431
781
|
/**
|
|
432
782
|
* The player the event is about.
|
|
433
783
|
*
|
|
434
784
|
* Pawn: `index`
|
|
435
785
|
*/
|
|
436
|
-
player: Player
|
|
786
|
+
get player(): Player {
|
|
787
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
set player(value: Player) {
|
|
791
|
+
this.__keep();
|
|
792
|
+
this.__player = value;
|
|
793
|
+
}
|
|
794
|
+
|
|
437
795
|
/**
|
|
438
796
|
* Item id
|
|
439
797
|
*
|
|
440
798
|
* Pawn: `item`
|
|
441
799
|
*/
|
|
442
|
-
item: number
|
|
800
|
+
get item(): number {
|
|
801
|
+
return this.__kept ? this.__item : <f64>__nativeCell(1);
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
set item(value: number) {
|
|
805
|
+
this.__keep();
|
|
806
|
+
this.__item = value;
|
|
807
|
+
}
|
|
443
808
|
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
this.
|
|
809
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
810
|
+
__keep(): void {
|
|
811
|
+
if (this.__kept) return;
|
|
812
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
813
|
+
this.__item = <f64>__nativeCell(1);
|
|
814
|
+
this.__kept = true;
|
|
815
|
+
if (CS_OnBuyAttemptView != this) return;
|
|
816
|
+
CS_OnBuyAttemptView = null;
|
|
817
|
+
CS_OnBuyAttemptDirect();
|
|
447
818
|
}
|
|
448
819
|
}
|
|
449
820
|
|
|
@@ -455,23 +826,47 @@ export class CS_OnBuyAttemptEvent {
|
|
|
455
826
|
*
|
|
456
827
|
* Pawn: `CS_OnBuy(index, item)`
|
|
457
828
|
*/
|
|
458
|
-
export class CS_OnBuyEvent {
|
|
829
|
+
export class CS_OnBuyEvent extends __ServerEvent {
|
|
830
|
+
private __player: Player | null = null;
|
|
831
|
+
private __item: number = 0;
|
|
832
|
+
|
|
459
833
|
/**
|
|
460
834
|
* The player the event is about.
|
|
461
835
|
*
|
|
462
836
|
* Pawn: `index`
|
|
463
837
|
*/
|
|
464
|
-
player: Player
|
|
838
|
+
get player(): Player {
|
|
839
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
840
|
+
}
|
|
841
|
+
|
|
842
|
+
set player(value: Player) {
|
|
843
|
+
this.__keep();
|
|
844
|
+
this.__player = value;
|
|
845
|
+
}
|
|
846
|
+
|
|
465
847
|
/**
|
|
466
848
|
* Item id
|
|
467
849
|
*
|
|
468
850
|
* Pawn: `item`
|
|
469
851
|
*/
|
|
470
|
-
item: number
|
|
852
|
+
get item(): number {
|
|
853
|
+
return this.__kept ? this.__item : <f64>__nativeCell(1);
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
set item(value: number) {
|
|
857
|
+
this.__keep();
|
|
858
|
+
this.__item = value;
|
|
859
|
+
}
|
|
471
860
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
this.
|
|
861
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
862
|
+
__keep(): void {
|
|
863
|
+
if (this.__kept) return;
|
|
864
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
865
|
+
this.__item = <f64>__nativeCell(1);
|
|
866
|
+
this.__kept = true;
|
|
867
|
+
if (CS_OnBuyView != this) return;
|
|
868
|
+
CS_OnBuyView = null;
|
|
869
|
+
CS_OnBuyDirect();
|
|
475
870
|
}
|
|
476
871
|
}
|
|
477
872
|
|
|
@@ -490,16 +885,31 @@ export class ServerFrameEvent {
|
|
|
490
885
|
*
|
|
491
886
|
* Pawn: `client_kill(id)`
|
|
492
887
|
*/
|
|
493
|
-
export class ClientKillEvent {
|
|
888
|
+
export class ClientKillEvent extends __ServerEvent {
|
|
889
|
+
private __player: Player | null = null;
|
|
890
|
+
|
|
494
891
|
/**
|
|
495
892
|
* The player the event is about.
|
|
496
893
|
*
|
|
497
894
|
* Pawn: `id`
|
|
498
895
|
*/
|
|
499
|
-
player: Player
|
|
896
|
+
get player(): Player {
|
|
897
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
set player(value: Player) {
|
|
901
|
+
this.__keep();
|
|
902
|
+
this.__player = value;
|
|
903
|
+
}
|
|
500
904
|
|
|
501
|
-
|
|
502
|
-
|
|
905
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
906
|
+
__keep(): void {
|
|
907
|
+
if (this.__kept) return;
|
|
908
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
909
|
+
this.__kept = true;
|
|
910
|
+
if (suicideView != this) return;
|
|
911
|
+
suicideView = null;
|
|
912
|
+
suicideDirect();
|
|
503
913
|
}
|
|
504
914
|
}
|
|
505
915
|
|
|
@@ -508,23 +918,47 @@ export class ClientKillEvent {
|
|
|
508
918
|
*
|
|
509
919
|
* Pawn: `client_impulse(id, impulse)`
|
|
510
920
|
*/
|
|
511
|
-
export class ClientImpulseEvent {
|
|
921
|
+
export class ClientImpulseEvent extends __ServerEvent {
|
|
922
|
+
private __player: Player | null = null;
|
|
923
|
+
private __impulse: number = 0;
|
|
924
|
+
|
|
512
925
|
/**
|
|
513
926
|
* The player the event is about.
|
|
514
927
|
*
|
|
515
928
|
* Pawn: `id`
|
|
516
929
|
*/
|
|
517
|
-
player: Player
|
|
930
|
+
get player(): Player {
|
|
931
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
set player(value: Player) {
|
|
935
|
+
this.__keep();
|
|
936
|
+
this.__player = value;
|
|
937
|
+
}
|
|
938
|
+
|
|
518
939
|
/**
|
|
519
940
|
* The impulse number: `100`, `201`.
|
|
520
941
|
*
|
|
521
942
|
* Pawn: `impulse`
|
|
522
943
|
*/
|
|
523
|
-
impulse: number
|
|
944
|
+
get impulse(): number {
|
|
945
|
+
return this.__kept ? this.__impulse : <f64>__nativeCell(1);
|
|
946
|
+
}
|
|
947
|
+
|
|
948
|
+
set impulse(value: number) {
|
|
949
|
+
this.__keep();
|
|
950
|
+
this.__impulse = value;
|
|
951
|
+
}
|
|
524
952
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
this.
|
|
953
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
954
|
+
__keep(): void {
|
|
955
|
+
if (this.__kept) return;
|
|
956
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
957
|
+
this.__impulse = <f64>__nativeCell(1);
|
|
958
|
+
this.__kept = true;
|
|
959
|
+
if (impulseView != this) return;
|
|
960
|
+
impulseView = null;
|
|
961
|
+
impulseDirect();
|
|
528
962
|
}
|
|
529
963
|
}
|
|
530
964
|
|
|
@@ -535,16 +969,31 @@ export class ClientImpulseEvent {
|
|
|
535
969
|
*
|
|
536
970
|
* Pawn: `client_cmdStart(id)`
|
|
537
971
|
*/
|
|
538
|
-
export class ClientCmdStartEvent {
|
|
972
|
+
export class ClientCmdStartEvent extends __ServerEvent {
|
|
973
|
+
private __player: Player | null = null;
|
|
974
|
+
|
|
539
975
|
/**
|
|
540
976
|
* The player the event is about.
|
|
541
977
|
*
|
|
542
978
|
* Pawn: `id`
|
|
543
979
|
*/
|
|
544
|
-
player: Player
|
|
980
|
+
get player(): Player {
|
|
981
|
+
return this.__kept ? this.__player! : __playerOf(__nativeCell(0));
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
set player(value: Player) {
|
|
985
|
+
this.__keep();
|
|
986
|
+
this.__player = value;
|
|
987
|
+
}
|
|
545
988
|
|
|
546
|
-
|
|
547
|
-
|
|
989
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
990
|
+
__keep(): void {
|
|
991
|
+
if (this.__kept) return;
|
|
992
|
+
this.__player = __playerOf(__nativeCell(0));
|
|
993
|
+
this.__kept = true;
|
|
994
|
+
if (cmdStartView != this) return;
|
|
995
|
+
cmdStartView = null;
|
|
996
|
+
cmdStartDirect();
|
|
548
997
|
}
|
|
549
998
|
}
|
|
550
999
|
|
|
@@ -553,16 +1002,31 @@ export class ClientCmdStartEvent {
|
|
|
553
1002
|
*
|
|
554
1003
|
* Pawn: `pfn_think(entid)`
|
|
555
1004
|
*/
|
|
556
|
-
export class PfnThinkEvent {
|
|
1005
|
+
export class PfnThinkEvent extends __ServerEvent {
|
|
1006
|
+
private __entity: number = 0;
|
|
1007
|
+
|
|
557
1008
|
/**
|
|
558
1009
|
* The entity that thinks.
|
|
559
1010
|
*
|
|
560
1011
|
* Pawn: `entid`
|
|
561
1012
|
*/
|
|
562
|
-
entity: number
|
|
1013
|
+
get entity(): number {
|
|
1014
|
+
return this.__kept ? this.__entity : <f64>__nativeCell(0);
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
set entity(value: number) {
|
|
1018
|
+
this.__keep();
|
|
1019
|
+
this.__entity = value;
|
|
1020
|
+
}
|
|
563
1021
|
|
|
564
|
-
|
|
565
|
-
|
|
1022
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
1023
|
+
__keep(): void {
|
|
1024
|
+
if (this.__kept) return;
|
|
1025
|
+
this.__entity = <f64>__nativeCell(0);
|
|
1026
|
+
this.__kept = true;
|
|
1027
|
+
if (entityThinkView != this) return;
|
|
1028
|
+
entityThinkView = null;
|
|
1029
|
+
entityThinkDirect();
|
|
566
1030
|
}
|
|
567
1031
|
}
|
|
568
1032
|
|
|
@@ -571,93 +1035,217 @@ export class PfnThinkEvent {
|
|
|
571
1035
|
*
|
|
572
1036
|
* Pawn: `pfn_playbackevent(flags, entid, eventid, Float:delay, Float:Origin[3], Float:Angles[3], Float:fparam1, Float:fparam2, iparam1, iparam2, bparam1, bparam2)`
|
|
573
1037
|
*/
|
|
574
|
-
export class PfnPlaybackeventEvent {
|
|
1038
|
+
export class PfnPlaybackeventEvent extends __ServerEvent {
|
|
1039
|
+
private __flags: number = 0;
|
|
1040
|
+
private __entity: number = 0;
|
|
1041
|
+
private __eventIndex: number = 0;
|
|
1042
|
+
private __delay: number = 0;
|
|
1043
|
+
private __origin: Vector | null = null;
|
|
1044
|
+
private __angles: Vector | null = null;
|
|
1045
|
+
private __fparam1: number = 0;
|
|
1046
|
+
private __fparam2: number = 0;
|
|
1047
|
+
private __iparam1: number = 0;
|
|
1048
|
+
private __iparam2: number = 0;
|
|
1049
|
+
private __bparam1: number = 0;
|
|
1050
|
+
private __bparam2: number = 0;
|
|
1051
|
+
|
|
575
1052
|
/**
|
|
576
1053
|
* The event's flags, how the engine sends it.
|
|
577
1054
|
*
|
|
578
1055
|
* Pawn: `flags`
|
|
579
1056
|
*/
|
|
580
|
-
flags: number
|
|
1057
|
+
get flags(): number {
|
|
1058
|
+
return this.__kept ? this.__flags : <f64>__nativeCell(0);
|
|
1059
|
+
}
|
|
1060
|
+
|
|
1061
|
+
set flags(value: number) {
|
|
1062
|
+
this.__keep();
|
|
1063
|
+
this.__flags = value;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
581
1066
|
/**
|
|
582
1067
|
* The entity the event plays on, usually the player who fired.
|
|
583
1068
|
*
|
|
584
1069
|
* Pawn: `entid`
|
|
585
1070
|
*/
|
|
586
|
-
entity: number
|
|
1071
|
+
get entity(): number {
|
|
1072
|
+
return this.__kept ? this.__entity : <f64>__nativeCell(1);
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
set entity(value: number) {
|
|
1076
|
+
this.__keep();
|
|
1077
|
+
this.__entity = value;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
587
1080
|
/**
|
|
588
1081
|
* The event's index in the precached events.
|
|
589
1082
|
*
|
|
590
1083
|
* Pawn: `eventid`
|
|
591
1084
|
*/
|
|
592
|
-
eventIndex: number
|
|
1085
|
+
get eventIndex(): number {
|
|
1086
|
+
return this.__kept ? this.__eventIndex : <f64>__nativeCell(2);
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
set eventIndex(value: number) {
|
|
1090
|
+
this.__keep();
|
|
1091
|
+
this.__eventIndex = value;
|
|
1092
|
+
}
|
|
1093
|
+
|
|
593
1094
|
/**
|
|
594
1095
|
* The seconds before the event plays.
|
|
595
1096
|
*
|
|
596
1097
|
* Pawn: `Float:delay`
|
|
597
1098
|
*/
|
|
598
|
-
delay: number
|
|
1099
|
+
get delay(): number {
|
|
1100
|
+
return this.__kept ? this.__delay : <f64>reinterpret<f32>(__nativeCell(3));
|
|
1101
|
+
}
|
|
1102
|
+
|
|
1103
|
+
set delay(value: number) {
|
|
1104
|
+
this.__keep();
|
|
1105
|
+
this.__delay = value;
|
|
1106
|
+
}
|
|
1107
|
+
|
|
599
1108
|
/**
|
|
600
1109
|
* The point the event plays from.
|
|
601
1110
|
*
|
|
602
1111
|
* Pawn: `Float:Origin[3]`
|
|
603
1112
|
*/
|
|
604
|
-
origin: Vector
|
|
1113
|
+
get origin(): Vector {
|
|
1114
|
+
return this.__kept ? this.__origin! : __nativeVector(4);
|
|
1115
|
+
}
|
|
1116
|
+
|
|
1117
|
+
set origin(value: Vector) {
|
|
1118
|
+
this.__keep();
|
|
1119
|
+
this.__origin = value;
|
|
1120
|
+
}
|
|
1121
|
+
|
|
605
1122
|
/**
|
|
606
1123
|
* The angles the event plays with.
|
|
607
1124
|
*
|
|
608
1125
|
* Pawn: `Float:Angles[3]`
|
|
609
1126
|
*/
|
|
610
|
-
angles: Vector
|
|
1127
|
+
get angles(): Vector {
|
|
1128
|
+
return this.__kept ? this.__angles! : __nativeVector(5);
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
set angles(value: Vector) {
|
|
1132
|
+
this.__keep();
|
|
1133
|
+
this.__angles = value;
|
|
1134
|
+
}
|
|
1135
|
+
|
|
611
1136
|
/**
|
|
612
1137
|
* The event's first fractional parameter.
|
|
613
1138
|
*
|
|
614
1139
|
* Pawn: `Float:fparam1`
|
|
615
1140
|
*/
|
|
616
|
-
fparam1: number
|
|
1141
|
+
get fparam1(): number {
|
|
1142
|
+
return this.__kept ? this.__fparam1 : <f64>reinterpret<f32>(__nativeCell(6));
|
|
1143
|
+
}
|
|
1144
|
+
|
|
1145
|
+
set fparam1(value: number) {
|
|
1146
|
+
this.__keep();
|
|
1147
|
+
this.__fparam1 = value;
|
|
1148
|
+
}
|
|
1149
|
+
|
|
617
1150
|
/**
|
|
618
1151
|
* The event's second fractional parameter.
|
|
619
1152
|
*
|
|
620
1153
|
* Pawn: `Float:fparam2`
|
|
621
1154
|
*/
|
|
622
|
-
fparam2: number
|
|
1155
|
+
get fparam2(): number {
|
|
1156
|
+
return this.__kept ? this.__fparam2 : <f64>reinterpret<f32>(__nativeCell(7));
|
|
1157
|
+
}
|
|
1158
|
+
|
|
1159
|
+
set fparam2(value: number) {
|
|
1160
|
+
this.__keep();
|
|
1161
|
+
this.__fparam2 = value;
|
|
1162
|
+
}
|
|
1163
|
+
|
|
623
1164
|
/**
|
|
624
1165
|
* The event's first whole-number parameter.
|
|
625
1166
|
*
|
|
626
1167
|
* Pawn: `iparam1`
|
|
627
1168
|
*/
|
|
628
|
-
iparam1: number
|
|
1169
|
+
get iparam1(): number {
|
|
1170
|
+
return this.__kept ? this.__iparam1 : <f64>__nativeCell(8);
|
|
1171
|
+
}
|
|
1172
|
+
|
|
1173
|
+
set iparam1(value: number) {
|
|
1174
|
+
this.__keep();
|
|
1175
|
+
this.__iparam1 = value;
|
|
1176
|
+
}
|
|
1177
|
+
|
|
629
1178
|
/**
|
|
630
1179
|
* The event's second whole-number parameter.
|
|
631
1180
|
*
|
|
632
1181
|
* Pawn: `iparam2`
|
|
633
1182
|
*/
|
|
634
|
-
iparam2: number
|
|
1183
|
+
get iparam2(): number {
|
|
1184
|
+
return this.__kept ? this.__iparam2 : <f64>__nativeCell(9);
|
|
1185
|
+
}
|
|
1186
|
+
|
|
1187
|
+
set iparam2(value: number) {
|
|
1188
|
+
this.__keep();
|
|
1189
|
+
this.__iparam2 = value;
|
|
1190
|
+
}
|
|
1191
|
+
|
|
635
1192
|
/**
|
|
636
1193
|
* The event's first flag parameter, `1` or `0`.
|
|
637
1194
|
*
|
|
638
1195
|
* Pawn: `bparam1`
|
|
639
1196
|
*/
|
|
640
|
-
bparam1: number
|
|
1197
|
+
get bparam1(): number {
|
|
1198
|
+
return this.__kept ? this.__bparam1 : <f64>__nativeCell(10);
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
set bparam1(value: number) {
|
|
1202
|
+
this.__keep();
|
|
1203
|
+
this.__bparam1 = value;
|
|
1204
|
+
}
|
|
1205
|
+
|
|
641
1206
|
/**
|
|
642
1207
|
* The event's second flag parameter, `1` or `0`.
|
|
643
1208
|
*
|
|
644
1209
|
* Pawn: `bparam2`
|
|
645
1210
|
*/
|
|
646
|
-
bparam2: number
|
|
1211
|
+
get bparam2(): number {
|
|
1212
|
+
return this.__kept ? this.__bparam2 : <f64>__nativeCell(11);
|
|
1213
|
+
}
|
|
1214
|
+
|
|
1215
|
+
set bparam2(value: number) {
|
|
1216
|
+
this.__keep();
|
|
1217
|
+
this.__bparam2 = value;
|
|
1218
|
+
}
|
|
647
1219
|
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
this.
|
|
651
|
-
this.
|
|
652
|
-
this.
|
|
653
|
-
this.
|
|
654
|
-
this.
|
|
655
|
-
this.
|
|
656
|
-
this.
|
|
657
|
-
this.
|
|
658
|
-
this.
|
|
659
|
-
this.
|
|
660
|
-
this.
|
|
1220
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
1221
|
+
__keep(): void {
|
|
1222
|
+
if (this.__kept) return;
|
|
1223
|
+
this.__flags = <f64>__nativeCell(0);
|
|
1224
|
+
this.__entity = <f64>__nativeCell(1);
|
|
1225
|
+
this.__eventIndex = <f64>__nativeCell(2);
|
|
1226
|
+
this.__delay = <f64>reinterpret<f32>(__nativeCell(3));
|
|
1227
|
+
this.__origin = __nativeVector(4);
|
|
1228
|
+
this.__angles = __nativeVector(5);
|
|
1229
|
+
this.__fparam1 = <f64>reinterpret<f32>(__nativeCell(6));
|
|
1230
|
+
this.__fparam2 = <f64>reinterpret<f32>(__nativeCell(7));
|
|
1231
|
+
this.__iparam1 = <f64>__nativeCell(8);
|
|
1232
|
+
this.__iparam2 = <f64>__nativeCell(9);
|
|
1233
|
+
this.__bparam1 = <f64>__nativeCell(10);
|
|
1234
|
+
this.__bparam2 = <f64>__nativeCell(11);
|
|
1235
|
+
this.__kept = true;
|
|
1236
|
+
if (playbackEventView != this) return;
|
|
1237
|
+
playbackEventView = null;
|
|
1238
|
+
playbackEventDirect();
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
/** Stops the event: no player gets it - a shot's sound and flash with it. */
|
|
1242
|
+
preventDefault(): void {
|
|
1243
|
+
__playbackBlock();
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1246
|
+
/** Plays the event only to these of the players it would reach - `event.recipients = players.filter(...)`; the others do not hear the shot. The player who caused it is not left out by it. */
|
|
1247
|
+
set recipients(players: Player[]) {
|
|
1248
|
+
__playbackTo(players);
|
|
661
1249
|
}
|
|
662
1250
|
}
|
|
663
1251
|
|
|
@@ -668,16 +1256,31 @@ export class PfnPlaybackeventEvent {
|
|
|
668
1256
|
*
|
|
669
1257
|
* Pawn: `pfn_keyvalue(entid)`
|
|
670
1258
|
*/
|
|
671
|
-
export class PfnKeyvalueEvent {
|
|
1259
|
+
export class PfnKeyvalueEvent extends __ServerEvent {
|
|
1260
|
+
private __entity: number = 0;
|
|
1261
|
+
|
|
672
1262
|
/**
|
|
673
1263
|
* Entity index
|
|
674
1264
|
*
|
|
675
1265
|
* Pawn: `entid`
|
|
676
1266
|
*/
|
|
677
|
-
entity: number
|
|
1267
|
+
get entity(): number {
|
|
1268
|
+
return this.__kept ? this.__entity : <f64>__nativeCell(0);
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
set entity(value: number) {
|
|
1272
|
+
this.__keep();
|
|
1273
|
+
this.__entity = value;
|
|
1274
|
+
}
|
|
678
1275
|
|
|
679
|
-
|
|
680
|
-
|
|
1276
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
1277
|
+
__keep(): void {
|
|
1278
|
+
if (this.__kept) return;
|
|
1279
|
+
this.__entity = <f64>__nativeCell(0);
|
|
1280
|
+
this.__kept = true;
|
|
1281
|
+
if (keyValueView != this) return;
|
|
1282
|
+
keyValueView = null;
|
|
1283
|
+
keyValueDirect();
|
|
681
1284
|
}
|
|
682
1285
|
}
|
|
683
1286
|
|
|
@@ -686,16 +1289,31 @@ export class PfnKeyvalueEvent {
|
|
|
686
1289
|
*
|
|
687
1290
|
* Pawn: `pfn_spawn(entid)`
|
|
688
1291
|
*/
|
|
689
|
-
export class PfnSpawnEvent {
|
|
1292
|
+
export class PfnSpawnEvent extends __ServerEvent {
|
|
1293
|
+
private __entity: number = 0;
|
|
1294
|
+
|
|
690
1295
|
/**
|
|
691
1296
|
* The entity being spawned.
|
|
692
1297
|
*
|
|
693
1298
|
* Pawn: `entid`
|
|
694
1299
|
*/
|
|
695
|
-
entity: number
|
|
1300
|
+
get entity(): number {
|
|
1301
|
+
return this.__kept ? this.__entity : <f64>__nativeCell(0);
|
|
1302
|
+
}
|
|
1303
|
+
|
|
1304
|
+
set entity(value: number) {
|
|
1305
|
+
this.__keep();
|
|
1306
|
+
this.__entity = value;
|
|
1307
|
+
}
|
|
696
1308
|
|
|
697
|
-
|
|
698
|
-
|
|
1309
|
+
/** @hidden Reads every field from the running call into the object, once (__ServerEvent). */
|
|
1310
|
+
__keep(): void {
|
|
1311
|
+
if (this.__kept) return;
|
|
1312
|
+
this.__entity = <f64>__nativeCell(0);
|
|
1313
|
+
this.__kept = true;
|
|
1314
|
+
if (entitySpawnView != this) return;
|
|
1315
|
+
entitySpawnView = null;
|
|
1316
|
+
entitySpawnDirect();
|
|
699
1317
|
}
|
|
700
1318
|
}
|
|
701
1319
|
|
|
@@ -2208,6 +2826,13 @@ export class WeaponListMessage extends ClientMessage {
|
|
|
2208
2826
|
*/
|
|
2209
2827
|
get weapon(): WeaponKind { return weaponKindOf(this.__number(8)); }
|
|
2210
2828
|
set weapon(value: WeaponKind) { this.__setNumber(8, weaponIdOf(value)); }
|
|
2829
|
+
/**
|
|
2830
|
+
* The weapon's ITEM_FLAG_* bits: `8` for one thrown when it is empty, `16` for one used only once.
|
|
2831
|
+
*
|
|
2832
|
+
* Pawn: `get_msg_arg_*(9)`
|
|
2833
|
+
*/
|
|
2834
|
+
get flags(): number { return this.__number(9); }
|
|
2835
|
+
set flags(value: number) { this.__setNumber(9, value); }
|
|
2211
2836
|
}
|
|
2212
2837
|
|
|
2213
2838
|
/**
|
|
@@ -2236,18 +2861,6 @@ export interface ServerEventMap {
|
|
|
2236
2861
|
* Pawn: `plugin_init`
|
|
2237
2862
|
*/
|
|
2238
2863
|
init: PluginInitEvent;
|
|
2239
|
-
/**
|
|
2240
|
-
* An admin paused this plugin.
|
|
2241
|
-
*
|
|
2242
|
-
* Pawn: `plugin_pause`
|
|
2243
|
-
*/
|
|
2244
|
-
pause: PluginPauseEvent;
|
|
2245
|
-
/**
|
|
2246
|
-
* An admin resumed this plugin.
|
|
2247
|
-
*
|
|
2248
|
-
* Pawn: `plugin_unpause`
|
|
2249
|
-
*/
|
|
2250
|
-
unpause: PluginUnpauseEvent;
|
|
2251
2864
|
/**
|
|
2252
2865
|
* The server is about to change the map.
|
|
2253
2866
|
*
|
|
@@ -2261,13 +2874,13 @@ export interface ServerEventMap {
|
|
|
2261
2874
|
*/
|
|
2262
2875
|
pluginsLoaded: PluginCfgEvent;
|
|
2263
2876
|
/**
|
|
2264
|
-
* The
|
|
2877
|
+
* The plugin stops - the map ends, the server shuts down, or `amxts_reload`/`amxts_unload` stops it: save what has to survive.
|
|
2265
2878
|
*
|
|
2266
2879
|
* Pawn: `plugin_end`
|
|
2267
2880
|
*/
|
|
2268
2881
|
end: PluginEndEvent;
|
|
2269
2882
|
/**
|
|
2270
|
-
*
|
|
2883
|
+
* A line the game writes to its log - a round's end, a kill, a bomb planted: `event.text` whole, `event.args` its parts.
|
|
2271
2884
|
*
|
|
2272
2885
|
* Pawn: `plugin_log`
|
|
2273
2886
|
*/
|
|
@@ -2309,7 +2922,7 @@ export interface ServerEventMap {
|
|
|
2309
2922
|
*/
|
|
2310
2923
|
remove: ClientRemoveEvent;
|
|
2311
2924
|
/**
|
|
2312
|
-
* A player sent a console command
|
|
2925
|
+
* A player sent a console command - a chat line is `say` or `say_team`. For one command, `server.addCommand("name", handler)` is simpler.
|
|
2313
2926
|
*
|
|
2314
2927
|
* Pawn: `client_command`
|
|
2315
2928
|
*/
|
|
@@ -2326,12 +2939,6 @@ export interface ServerEventMap {
|
|
|
2326
2939
|
* Pawn: `inconsistent_file`
|
|
2327
2940
|
*/
|
|
2328
2941
|
inconsistentFile: InconsistentFileEvent;
|
|
2329
|
-
/**
|
|
2330
|
-
* Allows plugins to declare module dependencies using require_module()
|
|
2331
|
-
*
|
|
2332
|
-
* Pawn: `plugin_modules`
|
|
2333
|
-
*/
|
|
2334
|
-
modules: PluginModulesEvent;
|
|
2335
2942
|
/**
|
|
2336
2943
|
* Called when the map has loaded, and all configs are done executing. This includes servercfgfile (server.cfg), amxx.cfg, plugin's config, and per-map config.
|
|
2337
2944
|
*
|
|
@@ -3030,6 +3637,1503 @@ export interface ServerMessageMap {
|
|
|
3030
3637
|
weaponPickup: WeapPickupMessage;
|
|
3031
3638
|
}
|
|
3032
3639
|
|
|
3640
|
+
/** What `player.send("adStop", ...)` and `server.send("adStop", ...)` take: the game's `ADStop` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ADStop"))`, `write_*`, `message_end` */
|
|
3641
|
+
export interface ADStopFields {
|
|
3642
|
+
}
|
|
3643
|
+
|
|
3644
|
+
/** What `player.send("allowSpectate", ...)` and `server.send("allowSpectate", ...)` take: the game's `AllowSpec` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("AllowSpec"))`, `write_*`, `message_end` */
|
|
3645
|
+
export interface AllowSpecFields {
|
|
3646
|
+
/** `true` when the menu offers it. */
|
|
3647
|
+
allowed?: boolean;
|
|
3648
|
+
}
|
|
3649
|
+
|
|
3650
|
+
/** What `player.send("ammoPickup", ...)` and `server.send("ammoPickup", ...)` take: the game's `AmmoPickup` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("AmmoPickup"))`, `write_*`, `message_end` */
|
|
3651
|
+
export interface AmmoPickupFields {
|
|
3652
|
+
/** The ammo's index in the game's list of kinds. */
|
|
3653
|
+
ammo?: number;
|
|
3654
|
+
/** The amount picked up. */
|
|
3655
|
+
amount?: number;
|
|
3656
|
+
}
|
|
3657
|
+
|
|
3658
|
+
/** What `player.send("ammo", ...)` and `server.send("ammo", ...)` take: the game's `AmmoX` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("AmmoX"))`, `write_*`, `message_end` */
|
|
3659
|
+
export interface AmmoXFields {
|
|
3660
|
+
/** The ammo's index in the game's list of kinds. */
|
|
3661
|
+
ammo?: number;
|
|
3662
|
+
/** The reserve shown. */
|
|
3663
|
+
amount?: number;
|
|
3664
|
+
}
|
|
3665
|
+
|
|
3666
|
+
/** What `player.send("armorType", ...)` and `server.send("armorType", ...)` take: the game's `ArmorType` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ArmorType"))`, `write_*`, `message_end` */
|
|
3667
|
+
export interface ArmorTypeFields {
|
|
3668
|
+
/** `true` for a vest and a helmet. */
|
|
3669
|
+
helmet?: boolean;
|
|
3670
|
+
}
|
|
3671
|
+
|
|
3672
|
+
/** What `player.send("progressBar", ...)` and `server.send("progressBar", ...)` take: the game's `BarTime2` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("BarTime2"))`, `write_*`, `message_end` */
|
|
3673
|
+
export interface BarTime2Fields {
|
|
3674
|
+
/** The seconds the bar or the clock shows. Assign to change them. */
|
|
3675
|
+
seconds?: number;
|
|
3676
|
+
/** The bar's fill at the start, in percent. */
|
|
3677
|
+
startPercent?: number;
|
|
3678
|
+
}
|
|
3679
|
+
|
|
3680
|
+
/** What `player.send("armor", ...)` and `server.send("armor", ...)` take: the game's `Battery` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Battery"))`, `write_*`, `message_end` */
|
|
3681
|
+
export interface BatteryFields {
|
|
3682
|
+
/** The armour shown. */
|
|
3683
|
+
armor?: number;
|
|
3684
|
+
}
|
|
3685
|
+
|
|
3686
|
+
/** What `player.send("moneyBlink", ...)` and `server.send("moneyBlink", ...)` take: the game's `BlinkAcct` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("BlinkAcct"))`, `write_*`, `message_end` */
|
|
3687
|
+
export interface BlinkAcctFields {
|
|
3688
|
+
/** The number of blinks. */
|
|
3689
|
+
blinks?: number;
|
|
3690
|
+
}
|
|
3691
|
+
|
|
3692
|
+
/** What `player.send("bombDrop", ...)` and `server.send("bombDrop", ...)` take: the game's `BombDrop` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("BombDrop"))`, `write_*`, `message_end` */
|
|
3693
|
+
export interface BombDropFields {
|
|
3694
|
+
/** The point where the bomb lies. */
|
|
3695
|
+
origin?: number[];
|
|
3696
|
+
/** `true` for a bomb planted, `false` for one dropped. */
|
|
3697
|
+
planted?: boolean;
|
|
3698
|
+
}
|
|
3699
|
+
|
|
3700
|
+
/** What `player.send("bombPickup", ...)` and `server.send("bombPickup", ...)` take: the game's `BombPickup` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("BombPickup"))`, `write_*`, `message_end` */
|
|
3701
|
+
export interface BombPickupFields {
|
|
3702
|
+
}
|
|
3703
|
+
|
|
3704
|
+
/** What `player.send("botVoice", ...)` and `server.send("botVoice", ...)` take: the game's `BotVoice` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("BotVoice"))`, `write_*`, `message_end` */
|
|
3705
|
+
export interface BotVoiceFields {
|
|
3706
|
+
/** `true` while the bot talks. */
|
|
3707
|
+
talking?: boolean;
|
|
3708
|
+
/** The bot who talks. */
|
|
3709
|
+
target?: Player | null;
|
|
3710
|
+
}
|
|
3711
|
+
|
|
3712
|
+
/** What `player.send("closeBuyMenu", ...)` and `server.send("closeBuyMenu", ...)` take: the game's `BuyClose` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("BuyClose"))`, `write_*`, `message_end` */
|
|
3713
|
+
export interface BuyCloseFields {
|
|
3714
|
+
}
|
|
3715
|
+
|
|
3716
|
+
/** What `player.send("crosshair", ...)` and `server.send("crosshair", ...)` take: the game's `Crosshair` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Crosshair"))`, `write_*`, `message_end` */
|
|
3717
|
+
export interface CrosshairFields {
|
|
3718
|
+
/** `true` to show it. */
|
|
3719
|
+
shown?: boolean;
|
|
3720
|
+
}
|
|
3721
|
+
|
|
3722
|
+
/** What `player.send("currentWeapon", ...)` and `server.send("currentWeapon", ...)` take: the game's `CurWeapon` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("CurWeapon"))`, `write_*`, `message_end` */
|
|
3723
|
+
export interface CurWeaponFields {
|
|
3724
|
+
/** `true` for the weapon in his hands. */
|
|
3725
|
+
active?: boolean;
|
|
3726
|
+
/** The weapon, by its kind, e.g. `"ak47"`. */
|
|
3727
|
+
weapon?: WeaponKind;
|
|
3728
|
+
/** The rounds in the clip. */
|
|
3729
|
+
clip?: number;
|
|
3730
|
+
}
|
|
3731
|
+
|
|
3732
|
+
/** What `player.send("damage", ...)` and `server.send("damage", ...)` take: the game's `Damage` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Damage"))`, `write_*`, `message_end` */
|
|
3733
|
+
export interface DamageFields {
|
|
3734
|
+
/** The armour he lost. */
|
|
3735
|
+
armor?: number;
|
|
3736
|
+
/** The health he lost. */
|
|
3737
|
+
damage?: number;
|
|
3738
|
+
/** The kinds of damage, e.g. `"fall"`, `"bullet"`. */
|
|
3739
|
+
damageType?: Damage[];
|
|
3740
|
+
/** The point the damage came from: the marks point to it. */
|
|
3741
|
+
origin?: number[];
|
|
3742
|
+
}
|
|
3743
|
+
|
|
3744
|
+
/** What `player.send("death", ...)` and `server.send("death", ...)` take: the game's `DeathMsg` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("DeathMsg"))`, `write_*`, `message_end` */
|
|
3745
|
+
export interface DeathMsgFields {
|
|
3746
|
+
/** The player who killed; `null` for the world. */
|
|
3747
|
+
killer?: Player | null;
|
|
3748
|
+
/** The player who died. */
|
|
3749
|
+
victim?: Player | null;
|
|
3750
|
+
/** `true` for a headshot. */
|
|
3751
|
+
headshot?: boolean;
|
|
3752
|
+
/** The weapon's name as the icon shows it, e.g. `"ak47"`, `"grenade"`. */
|
|
3753
|
+
weapon?: string;
|
|
3754
|
+
}
|
|
3755
|
+
|
|
3756
|
+
/** What `player.send("flashlight", ...)` and `server.send("flashlight", ...)` take: the game's `Flashlight` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Flashlight"))`, `write_*`, `message_end` */
|
|
3757
|
+
export interface FlashlightFields {
|
|
3758
|
+
/** `true` while the flashlight is on. */
|
|
3759
|
+
on?: boolean;
|
|
3760
|
+
/** The flashlight's battery, in percent. */
|
|
3761
|
+
battery?: number;
|
|
3762
|
+
}
|
|
3763
|
+
|
|
3764
|
+
/** What `player.send("flashlightBattery", ...)` and `server.send("flashlightBattery", ...)` take: the game's `FlashBat` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("FlashBat"))`, `write_*`, `message_end` */
|
|
3765
|
+
export interface FlashBatFields {
|
|
3766
|
+
/** The flashlight's battery, in percent. */
|
|
3767
|
+
battery?: number;
|
|
3768
|
+
}
|
|
3769
|
+
|
|
3770
|
+
/** What `player.send("geiger", ...)` and `server.send("geiger", ...)` take: the game's `Geiger` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Geiger"))`, `write_*`, `message_end` */
|
|
3771
|
+
export interface GeigerFields {
|
|
3772
|
+
/** The distance to the radiation: the less, the faster the clicks. */
|
|
3773
|
+
range?: number;
|
|
3774
|
+
}
|
|
3775
|
+
|
|
3776
|
+
/** What `player.send("health", ...)` and `server.send("health", ...)` take: the game's `Health` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Health"))`, `write_*`, `message_end` */
|
|
3777
|
+
export interface HealthFields {
|
|
3778
|
+
/** The health shown. */
|
|
3779
|
+
health?: number;
|
|
3780
|
+
}
|
|
3781
|
+
|
|
3782
|
+
/** What `player.send("hideWeapon", ...)` and `server.send("hideWeapon", ...)` take: the game's `HideWeapon` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("HideWeapon"))`, `write_*`, `message_end` */
|
|
3783
|
+
export interface HideWeaponFields {
|
|
3784
|
+
/** The hidden parts, e.g. `"money"`, `"timer"`. Assign to change them. */
|
|
3785
|
+
flags?: HideHud[];
|
|
3786
|
+
}
|
|
3787
|
+
|
|
3788
|
+
/** What `player.send("hostageKilled", ...)` and `server.send("hostageKilled", ...)` take: the game's `HostageK` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("HostageK"))`, `write_*`, `message_end` */
|
|
3789
|
+
export interface HostageKFields {
|
|
3790
|
+
/** The hostage's number on the map, from `1`. */
|
|
3791
|
+
hostage?: number;
|
|
3792
|
+
}
|
|
3793
|
+
|
|
3794
|
+
/** What `player.send("initHud", ...)` and `server.send("initHud", ...)` take: the game's `InitHUD` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("InitHUD"))`, `write_*`, `message_end` */
|
|
3795
|
+
export interface InitHUDFields {
|
|
3796
|
+
}
|
|
3797
|
+
|
|
3798
|
+
/** What `player.send("itemPickup", ...)` and `server.send("itemPickup", ...)` take: the game's `ItemPickup` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ItemPickup"))`, `write_*`, `message_end` */
|
|
3799
|
+
export interface ItemPickupFields {
|
|
3800
|
+
/** The item's class name, e.g. `"item_kevlar"`. */
|
|
3801
|
+
item?: string;
|
|
3802
|
+
}
|
|
3803
|
+
|
|
3804
|
+
/** What `player.send("itemStatus", ...)` and `server.send("itemStatus", ...)` take: the game's `ItemStatus` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ItemStatus"))`, `write_*`, `message_end` */
|
|
3805
|
+
export interface ItemStatusFields {
|
|
3806
|
+
/** `true` when the player has night vision. */
|
|
3807
|
+
nightVision?: boolean;
|
|
3808
|
+
/** `true` when the player has a defuse kit. */
|
|
3809
|
+
defuseKit?: boolean;
|
|
3810
|
+
}
|
|
3811
|
+
|
|
3812
|
+
/** What `player.send("location", ...)` and `server.send("location", ...)` take: the game's `Location` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Location"))`, `write_*`, `message_end` */
|
|
3813
|
+
export interface LocationFields {
|
|
3814
|
+
/** The player whose place it is. */
|
|
3815
|
+
target?: Player | null;
|
|
3816
|
+
/** The place's name, e.g. `"BombsiteA"`. */
|
|
3817
|
+
place?: string;
|
|
3818
|
+
}
|
|
3819
|
+
|
|
3820
|
+
/** What `player.send("money", ...)` and `server.send("money", ...)` take: the game's `Money` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Money"))`, `write_*`, `message_end` */
|
|
3821
|
+
export interface MoneyFields {
|
|
3822
|
+
/** The money shown. */
|
|
3823
|
+
amount?: number;
|
|
3824
|
+
/** `true` to flash the change. */
|
|
3825
|
+
flash?: boolean;
|
|
3826
|
+
}
|
|
3827
|
+
|
|
3828
|
+
/** What `player.send("motd", ...)` and `server.send("motd", ...)` take: the game's `MOTD` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("MOTD"))`, `write_*`, `message_end` */
|
|
3829
|
+
export interface MOTDFields {
|
|
3830
|
+
/** `true` for the last part: the window opens. */
|
|
3831
|
+
last?: boolean;
|
|
3832
|
+
/** The part's text. */
|
|
3833
|
+
text?: string;
|
|
3834
|
+
}
|
|
3835
|
+
|
|
3836
|
+
/** What `player.send("nightVision", ...)` and `server.send("nightVision", ...)` take: the game's `NVGToggle` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("NVGToggle"))`, `write_*`, `message_end` */
|
|
3837
|
+
export interface NVGToggleFields {
|
|
3838
|
+
/** `true` while night vision is on. */
|
|
3839
|
+
on?: boolean;
|
|
3840
|
+
}
|
|
3841
|
+
|
|
3842
|
+
/** What `player.send("radar", ...)` and `server.send("radar", ...)` take: the game's `Radar` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Radar"))`, `write_*`, `message_end` */
|
|
3843
|
+
export interface RadarFields {
|
|
3844
|
+
/** The teammate shown. */
|
|
3845
|
+
target?: Player | null;
|
|
3846
|
+
/** The point where the teammate is. */
|
|
3847
|
+
origin?: number[];
|
|
3848
|
+
}
|
|
3849
|
+
|
|
3850
|
+
/** What `player.send("resetHud", ...)` and `server.send("resetHud", ...)` take: the game's `ResetHUD` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ResetHUD"))`, `write_*`, `message_end` */
|
|
3851
|
+
export interface ResetHUDFields {
|
|
3852
|
+
}
|
|
3853
|
+
|
|
3854
|
+
/** What `player.send("roundTime", ...)` and `server.send("roundTime", ...)` take: the game's `RoundTime` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("RoundTime"))`, `write_*`, `message_end` */
|
|
3855
|
+
export interface RoundTimeFields {
|
|
3856
|
+
/** The seconds the bar or the clock shows. Assign to change them. */
|
|
3857
|
+
seconds?: number;
|
|
3858
|
+
}
|
|
3859
|
+
|
|
3860
|
+
/** What `player.send("chat", ...)` and `server.send("chat", ...)` take: the game's `SayText` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("SayText"))`, `write_*`, `message_end` */
|
|
3861
|
+
export interface SayTextFields {
|
|
3862
|
+
/** The player who wrote it; `null` for the server. */
|
|
3863
|
+
sender?: Player | null;
|
|
3864
|
+
/** The line, or the game's format for it, e.g. `"#Cstrike_Chat_All"`. */
|
|
3865
|
+
text?: string;
|
|
3866
|
+
/** The texts put into the game's text in place of `%s1`, `%s2`, ... - e.g. a player's name. Assign to change them; their number stays. */
|
|
3867
|
+
params?: string[];
|
|
3868
|
+
}
|
|
3869
|
+
|
|
3870
|
+
/** What `player.send("scenarioIcon", ...)` and `server.send("scenarioIcon", ...)` take: the game's `Scenario` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Scenario"))`, `write_*`, `message_end` */
|
|
3871
|
+
export interface ScenarioFields {
|
|
3872
|
+
/** `true` while the icon is shown. */
|
|
3873
|
+
active?: boolean;
|
|
3874
|
+
/** The icon's sprite name, e.g. `"hostage1"`. */
|
|
3875
|
+
sprite?: string;
|
|
3876
|
+
/** The icon's opacity, `0` to `255`. */
|
|
3877
|
+
alpha?: number;
|
|
3878
|
+
}
|
|
3879
|
+
|
|
3880
|
+
/** What `player.send("scoreAttribute", ...)` and `server.send("scoreAttribute", ...)` take: the game's `ScoreAttrib` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ScoreAttrib"))`, `write_*`, `message_end` */
|
|
3881
|
+
export interface ScoreAttribFields {
|
|
3882
|
+
/** The player whose row it is. */
|
|
3883
|
+
target?: Player | null;
|
|
3884
|
+
/** The marks on the row, e.g. `"dead"`, `"bomb"`, `"vip"`. */
|
|
3885
|
+
flags?: ScoreStatus[];
|
|
3886
|
+
}
|
|
3887
|
+
|
|
3888
|
+
/** What `player.send("score", ...)` and `server.send("score", ...)` take: the game's `ScoreInfo` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ScoreInfo"))`, `write_*`, `message_end` */
|
|
3889
|
+
export interface ScoreInfoFields {
|
|
3890
|
+
/** The player whose row it is. */
|
|
3891
|
+
target?: Player | null;
|
|
3892
|
+
/** The frags shown. */
|
|
3893
|
+
frags?: number;
|
|
3894
|
+
/** The deaths shown. */
|
|
3895
|
+
deaths?: number;
|
|
3896
|
+
/** The team the row is under. */
|
|
3897
|
+
team?: Team;
|
|
3898
|
+
}
|
|
3899
|
+
|
|
3900
|
+
/** What `player.send("screenFade", ...)` and `server.send("screenFade", ...)` take: the game's `ScreenFade` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ScreenFade"))`, `write_*`, `message_end` */
|
|
3901
|
+
export interface ScreenFadeFields {
|
|
3902
|
+
/** The fade's duration, in seconds. */
|
|
3903
|
+
duration?: number;
|
|
3904
|
+
/** The time the full colour holds, in seconds. */
|
|
3905
|
+
hold?: number;
|
|
3906
|
+
/** One of `"in"`, from the colour to a clear view, or `"out"`, from a clear view to the colour. */
|
|
3907
|
+
direction?: FadeDirection;
|
|
3908
|
+
/** `true` when the colour tints the screen rather than painting over it. */
|
|
3909
|
+
modulate?: boolean;
|
|
3910
|
+
/** `true` when the colour stays until the next fade. */
|
|
3911
|
+
stay?: boolean;
|
|
3912
|
+
/** The colour: red, green, blue and alpha, `0` to `255` each. */
|
|
3913
|
+
color?: number[];
|
|
3914
|
+
}
|
|
3915
|
+
|
|
3916
|
+
/** What `player.send("screenShake", ...)` and `server.send("screenShake", ...)` take: the game's `ScreenShake` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ScreenShake"))`, `write_*`, `message_end` */
|
|
3917
|
+
export interface ScreenShakeFields {
|
|
3918
|
+
/** The shake's strength: how far the view moves, up to 16 units. */
|
|
3919
|
+
amplitude?: number;
|
|
3920
|
+
/** The shake's duration, in seconds. */
|
|
3921
|
+
duration?: number;
|
|
3922
|
+
/** The shake's frequency, in jolts a second. */
|
|
3923
|
+
frequency?: number;
|
|
3924
|
+
}
|
|
3925
|
+
|
|
3926
|
+
/** What `player.send("sound", ...)` and `server.send("sound", ...)` take: the game's `SendAudio` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("SendAudio"))`, `write_*`, `message_end` */
|
|
3927
|
+
export interface SendAudioFields {
|
|
3928
|
+
/** The player the sound is from; `null` for none. */
|
|
3929
|
+
sender?: Player | null;
|
|
3930
|
+
/** The sound, e.g. `"%!MRAD_GO"` for a radio line. */
|
|
3931
|
+
sound?: string;
|
|
3932
|
+
/** The pitch in percent, `100` as recorded. */
|
|
3933
|
+
pitch?: number;
|
|
3934
|
+
}
|
|
3935
|
+
|
|
3936
|
+
/** What `player.send("serverName", ...)` and `server.send("serverName", ...)` take: the game's `ServerName` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ServerName"))`, `write_*`, `message_end` */
|
|
3937
|
+
export interface ServerNameFields {
|
|
3938
|
+
/** The server's name, as `hostname` sets it. */
|
|
3939
|
+
serverName?: string;
|
|
3940
|
+
}
|
|
3941
|
+
|
|
3942
|
+
/** What `player.send("fov", ...)` and `server.send("fov", ...)` take: the game's `SetFOV` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("SetFOV"))`, `write_*`, `message_end` */
|
|
3943
|
+
export interface SetFOVFields {
|
|
3944
|
+
/** The field of view, in degrees. */
|
|
3945
|
+
fov?: number;
|
|
3946
|
+
}
|
|
3947
|
+
|
|
3948
|
+
/** What `player.send("showTimer", ...)` and `server.send("showTimer", ...)` take: the game's `ShowTimer` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ShowTimer"))`, `write_*`, `message_end` */
|
|
3949
|
+
export interface ShowTimerFields {
|
|
3950
|
+
}
|
|
3951
|
+
|
|
3952
|
+
/** What `player.send("spectatedHealth", ...)` and `server.send("spectatedHealth", ...)` take: the game's `SpecHealth2` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("SpecHealth2"))`, `write_*`, `message_end` */
|
|
3953
|
+
export interface SpecHealth2Fields {
|
|
3954
|
+
/** The health shown. */
|
|
3955
|
+
health?: number;
|
|
3956
|
+
/** The player watched. */
|
|
3957
|
+
target?: Player | null;
|
|
3958
|
+
}
|
|
3959
|
+
|
|
3960
|
+
/** What `player.send("spectator", ...)` and `server.send("spectator", ...)` take: the game's `Spectator` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Spectator"))`, `write_*`, `message_end` */
|
|
3961
|
+
export interface SpectatorFields {
|
|
3962
|
+
/** The player. */
|
|
3963
|
+
target?: Player | null;
|
|
3964
|
+
/** `true` while the player spectates. */
|
|
3965
|
+
spectator?: boolean;
|
|
3966
|
+
}
|
|
3967
|
+
|
|
3968
|
+
/** What `player.send("statusIcon", ...)` and `server.send("statusIcon", ...)` take: the game's `StatusIcon` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("StatusIcon"))`, `write_*`, `message_end` */
|
|
3969
|
+
export interface StatusIconFields {
|
|
3970
|
+
/** One of `"hide"`, `"show"` or `"flash"`. */
|
|
3971
|
+
state?: StatusIconState;
|
|
3972
|
+
/** The icon's sprite name, e.g. `"buyzone"`. */
|
|
3973
|
+
sprite?: string;
|
|
3974
|
+
/** The icon's colour: red, green and blue, `0` to `255` each; empty when it is hidden. */
|
|
3975
|
+
color?: number[];
|
|
3976
|
+
}
|
|
3977
|
+
|
|
3978
|
+
/** What `player.send("statusText", ...)` and `server.send("statusText", ...)` take: the game's `StatusText` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("StatusText"))`, `write_*`, `message_end` */
|
|
3979
|
+
export interface StatusTextFields {
|
|
3980
|
+
/** The status line's number, from `0`. */
|
|
3981
|
+
line?: number;
|
|
3982
|
+
/** The line's text, or its format, e.g. `"1 %c1: %p2"`. */
|
|
3983
|
+
text?: string;
|
|
3984
|
+
}
|
|
3985
|
+
|
|
3986
|
+
/** What `player.send("statusValue", ...)` and `server.send("statusValue", ...)` take: the game's `StatusValue` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("StatusValue"))`, `write_*`, `message_end` */
|
|
3987
|
+
export interface StatusValueFields {
|
|
3988
|
+
/** The value's number in the line's format: `1` a team, `2` a player, `3` health. */
|
|
3989
|
+
slot?: number;
|
|
3990
|
+
/** The value. */
|
|
3991
|
+
value?: number;
|
|
3992
|
+
}
|
|
3993
|
+
|
|
3994
|
+
/** What `player.send("taskTime", ...)` and `server.send("taskTime", ...)` take: the game's `TaskTime` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("TaskTime"))`, `write_*`, `message_end` */
|
|
3995
|
+
export interface TaskTimeFields {
|
|
3996
|
+
/** The seconds left. */
|
|
3997
|
+
seconds?: number;
|
|
3998
|
+
/** `true` while the clock runs. */
|
|
3999
|
+
active?: boolean;
|
|
4000
|
+
/** The seconds the clock takes to fade out. */
|
|
4001
|
+
fade?: number;
|
|
4002
|
+
}
|
|
4003
|
+
|
|
4004
|
+
/** What `player.send("team", ...)` and `server.send("team", ...)` take: the game's `TeamInfo` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("TeamInfo"))`, `write_*`, `message_end` */
|
|
4005
|
+
export interface TeamInfoFields {
|
|
4006
|
+
/** The player whose team it is. */
|
|
4007
|
+
target?: Player | null;
|
|
4008
|
+
/** The team, e.g. `"TERRORIST"`, `"CT"`. */
|
|
4009
|
+
team?: Team;
|
|
4010
|
+
}
|
|
4011
|
+
|
|
4012
|
+
/** What `player.send("teamScore", ...)` and `server.send("teamScore", ...)` take: the game's `TeamScore` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("TeamScore"))`, `write_*`, `message_end` */
|
|
4013
|
+
export interface TeamScoreFields {
|
|
4014
|
+
/** The team, `"TERRORIST"` or `"CT"`. */
|
|
4015
|
+
team?: Team;
|
|
4016
|
+
/** The rounds the team has won. */
|
|
4017
|
+
score?: number;
|
|
4018
|
+
}
|
|
4019
|
+
|
|
4020
|
+
/** What `player.send("text", ...)` and `server.send("text", ...)` take: the game's `TextMsg` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("TextMsg"))`, `write_*`, `message_end` */
|
|
4021
|
+
export interface TextMsgFields {
|
|
4022
|
+
/** The place it shows, one of `"chat"`, `"center"`, `"console"` or `"notify"`. */
|
|
4023
|
+
destination?: VariantName;
|
|
4024
|
+
/** The text, or the game's own for it, e.g. `"#Round_Draw"`. */
|
|
4025
|
+
text?: string;
|
|
4026
|
+
/** The texts put into the game's text in place of `%s1`, `%s2`, ... - e.g. a player's name. Assign to change them; their number stays. */
|
|
4027
|
+
params?: string[];
|
|
4028
|
+
}
|
|
4029
|
+
|
|
4030
|
+
/** What `player.send("train", ...)` and `server.send("train", ...)` take: the game's `Train` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("Train"))`, `write_*`, `message_end` */
|
|
4031
|
+
export interface TrainFields {
|
|
4032
|
+
/** The speed step, `0` for none. */
|
|
4033
|
+
speed?: number;
|
|
4034
|
+
}
|
|
4035
|
+
|
|
4036
|
+
/** What `player.send("tutorClose", ...)` and `server.send("tutorClose", ...)` take: the game's `TutorClose` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("TutorClose"))`, `write_*`, `message_end` */
|
|
4037
|
+
export interface TutorCloseFields {
|
|
4038
|
+
}
|
|
4039
|
+
|
|
4040
|
+
/** What `player.send("viewMode", ...)` and `server.send("viewMode", ...)` take: the game's `ViewMode` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("ViewMode"))`, `write_*`, `message_end` */
|
|
4041
|
+
export interface ViewModeFields {
|
|
4042
|
+
}
|
|
4043
|
+
|
|
4044
|
+
/** What `player.send("weaponList", ...)` and `server.send("weaponList", ...)` take: the game's `WeaponList` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("WeaponList"))`, `write_*`, `message_end` */
|
|
4045
|
+
export interface WeaponListFields {
|
|
4046
|
+
/** The weapon's class name, e.g. `"weapon_ak47"`. */
|
|
4047
|
+
classname?: string;
|
|
4048
|
+
/** The index of the weapon's ammo in the game's list of kinds. */
|
|
4049
|
+
ammo?: number;
|
|
4050
|
+
/** The most of that ammo a player carries. */
|
|
4051
|
+
maxAmmo?: number;
|
|
4052
|
+
/** The index of the weapon's second ammo, `-1` for none. */
|
|
4053
|
+
ammo2?: number;
|
|
4054
|
+
/** The most of the second ammo a player carries. */
|
|
4055
|
+
maxAmmo2?: number;
|
|
4056
|
+
/** The slot the weapon is in, from `0`. */
|
|
4057
|
+
slot?: number;
|
|
4058
|
+
/** The weapon's place in the slot, from `0`. */
|
|
4059
|
+
position?: number;
|
|
4060
|
+
/** The weapon, by its kind, e.g. `"ak47"`. */
|
|
4061
|
+
weapon?: WeaponKind;
|
|
4062
|
+
/** The weapon's ITEM_FLAG_* bits: `8` for one thrown when it is empty, `16` for one used only once. */
|
|
4063
|
+
flags?: number;
|
|
4064
|
+
}
|
|
4065
|
+
|
|
4066
|
+
/** What `player.send("weaponPickup", ...)` and `server.send("weaponPickup", ...)` take: the game's `WeapPickup` message, each field one of its arguments. A field left out goes as `0` or empty text. Pawn: `message_begin(..., get_user_msgid("WeapPickup"))`, `write_*`, `message_end` */
|
|
4067
|
+
export interface WeapPickupFields {
|
|
4068
|
+
/** The weapon, by its kind, e.g. `"knife"`. */
|
|
4069
|
+
weapon?: WeaponKind;
|
|
4070
|
+
}
|
|
4071
|
+
|
|
4072
|
+
/** Every message a plugin can send, by the name player.send and server.send take. */
|
|
4073
|
+
export interface ServerSendMap {
|
|
4074
|
+
/**
|
|
4075
|
+
* A player's HUD stops showing the round's advertisement.
|
|
4076
|
+
*
|
|
4077
|
+
* The game's `ADStop` message.
|
|
4078
|
+
*
|
|
4079
|
+
* Pawn: `register_message(get_user_msgid("ADStop"), ...)`
|
|
4080
|
+
*/
|
|
4081
|
+
adStop: ADStopFields;
|
|
4082
|
+
/**
|
|
4083
|
+
* Whether a player may pick Spectate in the team menu.
|
|
4084
|
+
*
|
|
4085
|
+
* The game's `AllowSpec` message.
|
|
4086
|
+
*
|
|
4087
|
+
* Pawn: `register_message(get_user_msgid("AllowSpec"), ...)`
|
|
4088
|
+
*/
|
|
4089
|
+
allowSpectate: AllowSpecFields;
|
|
4090
|
+
/**
|
|
4091
|
+
* A player picks up ammo: the notice at the side of his screen.
|
|
4092
|
+
*
|
|
4093
|
+
* The game's `AmmoPickup` message.
|
|
4094
|
+
*
|
|
4095
|
+
* Pawn: `register_message(get_user_msgid("AmmoPickup"), ...)`
|
|
4096
|
+
*/
|
|
4097
|
+
ammoPickup: AmmoPickupFields;
|
|
4098
|
+
/**
|
|
4099
|
+
* A player's reserve ammo of one kind on his HUD changes.
|
|
4100
|
+
*
|
|
4101
|
+
* The game's `AmmoX` message.
|
|
4102
|
+
*
|
|
4103
|
+
* Pawn: `register_message(get_user_msgid("AmmoX"), ...)`
|
|
4104
|
+
*/
|
|
4105
|
+
ammo: AmmoXFields;
|
|
4106
|
+
/**
|
|
4107
|
+
* The armour icon on a player's HUD: a vest, or a vest and a helmet.
|
|
4108
|
+
*
|
|
4109
|
+
* The game's `ArmorType` message.
|
|
4110
|
+
*
|
|
4111
|
+
* Pawn: `register_message(get_user_msgid("ArmorType"), ...)`
|
|
4112
|
+
*/
|
|
4113
|
+
armorType: ArmorTypeFields;
|
|
4114
|
+
/**
|
|
4115
|
+
* The progress bar in the middle of a player's screen is shown or hidden, from empty or part of the way full.
|
|
4116
|
+
*
|
|
4117
|
+
* The game's `BarTime` and `BarTime2` messages.
|
|
4118
|
+
*
|
|
4119
|
+
* Pawn: `register_message(get_user_msgid("BarTime"), ...)`, `register_message(get_user_msgid("BarTime2"), ...)`
|
|
4120
|
+
*/
|
|
4121
|
+
progressBar: BarTime2Fields;
|
|
4122
|
+
/**
|
|
4123
|
+
* A player's armour on his HUD changes.
|
|
4124
|
+
*
|
|
4125
|
+
* The game's `Battery` message.
|
|
4126
|
+
*
|
|
4127
|
+
* Pawn: `register_message(get_user_msgid("Battery"), ...)`
|
|
4128
|
+
*/
|
|
4129
|
+
armor: BatteryFields;
|
|
4130
|
+
/**
|
|
4131
|
+
* A player's money on his HUD blinks: he cannot afford what he tried to buy.
|
|
4132
|
+
*
|
|
4133
|
+
* The game's `BlinkAcct` message.
|
|
4134
|
+
*
|
|
4135
|
+
* Pawn: `register_message(get_user_msgid("BlinkAcct"), ...)`
|
|
4136
|
+
*/
|
|
4137
|
+
moneyBlink: BlinkAcctFields;
|
|
4138
|
+
/**
|
|
4139
|
+
* The bomb on the terrorists' radar: dropped or planted.
|
|
4140
|
+
*
|
|
4141
|
+
* The game's `BombDrop` message.
|
|
4142
|
+
*
|
|
4143
|
+
* Pawn: `register_message(get_user_msgid("BombDrop"), ...)`
|
|
4144
|
+
*/
|
|
4145
|
+
bombDrop: BombDropFields;
|
|
4146
|
+
/**
|
|
4147
|
+
* The bomb is picked up: it leaves the terrorists' radar.
|
|
4148
|
+
*
|
|
4149
|
+
* The game's `BombPickup` message.
|
|
4150
|
+
*
|
|
4151
|
+
* Pawn: `register_message(get_user_msgid("BombPickup"), ...)`
|
|
4152
|
+
*/
|
|
4153
|
+
bombPickup: BombPickupFields;
|
|
4154
|
+
/**
|
|
4155
|
+
* The voice icon over a bot who talks on the radio.
|
|
4156
|
+
*
|
|
4157
|
+
* The game's `BotVoice` message.
|
|
4158
|
+
*
|
|
4159
|
+
* Pawn: `register_message(get_user_msgid("BotVoice"), ...)`
|
|
4160
|
+
*/
|
|
4161
|
+
botVoice: BotVoiceFields;
|
|
4162
|
+
/**
|
|
4163
|
+
* A player's buy menu is closed.
|
|
4164
|
+
*
|
|
4165
|
+
* The game's `BuyClose` message.
|
|
4166
|
+
*
|
|
4167
|
+
* Pawn: `register_message(get_user_msgid("BuyClose"), ...)`
|
|
4168
|
+
*/
|
|
4169
|
+
closeBuyMenu: BuyCloseFields;
|
|
4170
|
+
/**
|
|
4171
|
+
* Counter-Strike's own crosshair on a player's screen is shown or hidden.
|
|
4172
|
+
*
|
|
4173
|
+
* The game's `Crosshair` message.
|
|
4174
|
+
*
|
|
4175
|
+
* Pawn: `register_message(get_user_msgid("Crosshair"), ...)`
|
|
4176
|
+
*/
|
|
4177
|
+
crosshair: CrosshairFields;
|
|
4178
|
+
/**
|
|
4179
|
+
* The weapon in a player's hands and its clip on his HUD.
|
|
4180
|
+
*
|
|
4181
|
+
* The game's `CurWeapon` message.
|
|
4182
|
+
*
|
|
4183
|
+
* Pawn: `register_message(get_user_msgid("CurWeapon"), ...)`
|
|
4184
|
+
*/
|
|
4185
|
+
currentWeapon: CurWeaponFields;
|
|
4186
|
+
/**
|
|
4187
|
+
* A player is shown the damage he took: the red marks at the side of his screen.
|
|
4188
|
+
*
|
|
4189
|
+
* The game's `Damage` message.
|
|
4190
|
+
*
|
|
4191
|
+
* Pawn: `register_message(get_user_msgid("Damage"), ...)`
|
|
4192
|
+
*/
|
|
4193
|
+
damage: DamageFields;
|
|
4194
|
+
/**
|
|
4195
|
+
* A kill in the top right corner of every screen.
|
|
4196
|
+
*
|
|
4197
|
+
* The game's `DeathMsg` message.
|
|
4198
|
+
*
|
|
4199
|
+
* Pawn: `register_message(get_user_msgid("DeathMsg"), ...)`
|
|
4200
|
+
*/
|
|
4201
|
+
death: DeathMsgFields;
|
|
4202
|
+
/**
|
|
4203
|
+
* The flashlight icon on a player's HUD: on or off, and its battery.
|
|
4204
|
+
*
|
|
4205
|
+
* The game's `Flashlight` message.
|
|
4206
|
+
*
|
|
4207
|
+
* Pawn: `register_message(get_user_msgid("Flashlight"), ...)`
|
|
4208
|
+
*/
|
|
4209
|
+
flashlight: FlashlightFields;
|
|
4210
|
+
/**
|
|
4211
|
+
* The flashlight's battery on a player's HUD changes.
|
|
4212
|
+
*
|
|
4213
|
+
* The game's `FlashBat` message.
|
|
4214
|
+
*
|
|
4215
|
+
* Pawn: `register_message(get_user_msgid("FlashBat"), ...)`
|
|
4216
|
+
*/
|
|
4217
|
+
flashlightBattery: FlashBatFields;
|
|
4218
|
+
/**
|
|
4219
|
+
* The Geiger counter's clicks a player hears near radiation.
|
|
4220
|
+
*
|
|
4221
|
+
* The game's `Geiger` message.
|
|
4222
|
+
*
|
|
4223
|
+
* Pawn: `register_message(get_user_msgid("Geiger"), ...)`
|
|
4224
|
+
*/
|
|
4225
|
+
geiger: GeigerFields;
|
|
4226
|
+
/**
|
|
4227
|
+
* A player's health on his HUD changes.
|
|
4228
|
+
*
|
|
4229
|
+
* The game's `Health` message.
|
|
4230
|
+
*
|
|
4231
|
+
* Pawn: `register_message(get_user_msgid("Health"), ...)`
|
|
4232
|
+
*/
|
|
4233
|
+
health: HealthFields;
|
|
4234
|
+
/**
|
|
4235
|
+
* The parts of a player's HUD that are hidden change.
|
|
4236
|
+
*
|
|
4237
|
+
* The game's `HideWeapon` message.
|
|
4238
|
+
*
|
|
4239
|
+
* Pawn: `register_message(get_user_msgid("HideWeapon"), ...)`
|
|
4240
|
+
*/
|
|
4241
|
+
hideWeapon: HideWeaponFields;
|
|
4242
|
+
/**
|
|
4243
|
+
* A hostage is killed: it leaves the counter-terrorists' radar.
|
|
4244
|
+
*
|
|
4245
|
+
* The game's `HostageK` message.
|
|
4246
|
+
*
|
|
4247
|
+
* Pawn: `register_message(get_user_msgid("HostageK"), ...)`
|
|
4248
|
+
*/
|
|
4249
|
+
hostageKilled: HostageKFields;
|
|
4250
|
+
/**
|
|
4251
|
+
* A player's HUD is set up, when he enters the game.
|
|
4252
|
+
*
|
|
4253
|
+
* The game's `InitHUD` message.
|
|
4254
|
+
*
|
|
4255
|
+
* Pawn: `register_message(get_user_msgid("InitHUD"), ...)`
|
|
4256
|
+
*/
|
|
4257
|
+
initHud: InitHUDFields;
|
|
4258
|
+
/**
|
|
4259
|
+
* A player picks up an item: the notice at the side of his screen.
|
|
4260
|
+
*
|
|
4261
|
+
* The game's `ItemPickup` message.
|
|
4262
|
+
*
|
|
4263
|
+
* Pawn: `register_message(get_user_msgid("ItemPickup"), ...)`
|
|
4264
|
+
*/
|
|
4265
|
+
itemPickup: ItemPickupFields;
|
|
4266
|
+
/**
|
|
4267
|
+
* The night vision and the defuse kit a player has, for his HUD.
|
|
4268
|
+
*
|
|
4269
|
+
* The game's `ItemStatus` message.
|
|
4270
|
+
*
|
|
4271
|
+
* Pawn: `register_message(get_user_msgid("ItemStatus"), ...)`
|
|
4272
|
+
*/
|
|
4273
|
+
itemStatus: ItemStatusFields;
|
|
4274
|
+
/**
|
|
4275
|
+
* The place on the map a player is in, as the radio names it.
|
|
4276
|
+
*
|
|
4277
|
+
* The game's `Location` message.
|
|
4278
|
+
*
|
|
4279
|
+
* Pawn: `register_message(get_user_msgid("Location"), ...)`
|
|
4280
|
+
*/
|
|
4281
|
+
location: LocationFields;
|
|
4282
|
+
/**
|
|
4283
|
+
* A player's money on his HUD changes.
|
|
4284
|
+
*
|
|
4285
|
+
* The game's `Money` message.
|
|
4286
|
+
*
|
|
4287
|
+
* Pawn: `register_message(get_user_msgid("Money"), ...)`
|
|
4288
|
+
*/
|
|
4289
|
+
money: MoneyFields;
|
|
4290
|
+
/**
|
|
4291
|
+
* A part of the message of the day, the window a joining player sees.
|
|
4292
|
+
*
|
|
4293
|
+
* The game's `MOTD` message.
|
|
4294
|
+
*
|
|
4295
|
+
* Pawn: `register_message(get_user_msgid("MOTD"), ...)`
|
|
4296
|
+
*/
|
|
4297
|
+
motd: MOTDFields;
|
|
4298
|
+
/**
|
|
4299
|
+
* A player's night vision is turned on or off.
|
|
4300
|
+
*
|
|
4301
|
+
* The game's `NVGToggle` message.
|
|
4302
|
+
*
|
|
4303
|
+
* Pawn: `register_message(get_user_msgid("NVGToggle"), ...)`
|
|
4304
|
+
*/
|
|
4305
|
+
nightVision: NVGToggleFields;
|
|
4306
|
+
/**
|
|
4307
|
+
* A teammate on a player's radar.
|
|
4308
|
+
*
|
|
4309
|
+
* The game's `Radar` message.
|
|
4310
|
+
*
|
|
4311
|
+
* Pawn: `register_message(get_user_msgid("Radar"), ...)`
|
|
4312
|
+
*/
|
|
4313
|
+
radar: RadarFields;
|
|
4314
|
+
/**
|
|
4315
|
+
* A player's HUD is reset, at his spawn.
|
|
4316
|
+
*
|
|
4317
|
+
* The game's `ResetHUD` message.
|
|
4318
|
+
*
|
|
4319
|
+
* Pawn: `register_message(get_user_msgid("ResetHUD"), ...)`
|
|
4320
|
+
*/
|
|
4321
|
+
resetHud: ResetHUDFields;
|
|
4322
|
+
/**
|
|
4323
|
+
* The round clock at the top of a player's HUD is set.
|
|
4324
|
+
*
|
|
4325
|
+
* The game's `RoundTime` message.
|
|
4326
|
+
*
|
|
4327
|
+
* Pawn: `register_message(get_user_msgid("RoundTime"), ...)`
|
|
4328
|
+
*/
|
|
4329
|
+
roundTime: RoundTimeFields;
|
|
4330
|
+
/**
|
|
4331
|
+
* A chat line.
|
|
4332
|
+
*
|
|
4333
|
+
* The game's `SayText` message.
|
|
4334
|
+
*
|
|
4335
|
+
* Pawn: `register_message(get_user_msgid("SayText"), ...)`
|
|
4336
|
+
*/
|
|
4337
|
+
chat: SayTextFields;
|
|
4338
|
+
/**
|
|
4339
|
+
* The scenario icon on a player's HUD, such as the bomb's or a hostage's.
|
|
4340
|
+
*
|
|
4341
|
+
* The game's `Scenario` message.
|
|
4342
|
+
*
|
|
4343
|
+
* Pawn: `register_message(get_user_msgid("Scenario"), ...)`
|
|
4344
|
+
*/
|
|
4345
|
+
scenarioIcon: ScenarioFields;
|
|
4346
|
+
/**
|
|
4347
|
+
* The marks the scoreboard shows beside a player: dead, the bomb, the VIP.
|
|
4348
|
+
*
|
|
4349
|
+
* The game's `ScoreAttrib` message.
|
|
4350
|
+
*
|
|
4351
|
+
* Pawn: `register_message(get_user_msgid("ScoreAttrib"), ...)`
|
|
4352
|
+
*/
|
|
4353
|
+
scoreAttribute: ScoreAttribFields;
|
|
4354
|
+
/**
|
|
4355
|
+
* A player's row on the scoreboard.
|
|
4356
|
+
*
|
|
4357
|
+
* The game's `ScoreInfo` message.
|
|
4358
|
+
*
|
|
4359
|
+
* Pawn: `register_message(get_user_msgid("ScoreInfo"), ...)`
|
|
4360
|
+
*/
|
|
4361
|
+
score: ScoreInfoFields;
|
|
4362
|
+
/**
|
|
4363
|
+
* A player's screen is coloured, fading in or out - a flashbang, a fade to black.
|
|
4364
|
+
*
|
|
4365
|
+
* The game's `ScreenFade` message.
|
|
4366
|
+
*
|
|
4367
|
+
* Pawn: `register_message(get_user_msgid("ScreenFade"), ...)`
|
|
4368
|
+
*/
|
|
4369
|
+
screenFade: ScreenFadeFields;
|
|
4370
|
+
/**
|
|
4371
|
+
* A player's view shakes - an explosion nearby.
|
|
4372
|
+
*
|
|
4373
|
+
* The game's `ScreenShake` message.
|
|
4374
|
+
*
|
|
4375
|
+
* Pawn: `register_message(get_user_msgid("ScreenShake"), ...)`
|
|
4376
|
+
*/
|
|
4377
|
+
screenShake: ScreenShakeFields;
|
|
4378
|
+
/**
|
|
4379
|
+
* A sound played to a player, such as a radio line.
|
|
4380
|
+
*
|
|
4381
|
+
* The game's `SendAudio` message.
|
|
4382
|
+
*
|
|
4383
|
+
* Pawn: `register_message(get_user_msgid("SendAudio"), ...)`
|
|
4384
|
+
*/
|
|
4385
|
+
sound: SendAudioFields;
|
|
4386
|
+
/**
|
|
4387
|
+
* The server's name a player's client shows.
|
|
4388
|
+
*
|
|
4389
|
+
* The game's `ServerName` message.
|
|
4390
|
+
*
|
|
4391
|
+
* Pawn: `register_message(get_user_msgid("ServerName"), ...)`
|
|
4392
|
+
*/
|
|
4393
|
+
serverName: ServerNameFields;
|
|
4394
|
+
/**
|
|
4395
|
+
* A player's field of view is set.
|
|
4396
|
+
*
|
|
4397
|
+
* The game's `SetFOV` message.
|
|
4398
|
+
*
|
|
4399
|
+
* Pawn: `register_message(get_user_msgid("SetFOV"), ...)`
|
|
4400
|
+
*/
|
|
4401
|
+
fov: SetFOVFields;
|
|
4402
|
+
/**
|
|
4403
|
+
* The round clock appears on a player's HUD.
|
|
4404
|
+
*
|
|
4405
|
+
* The game's `ShowTimer` message.
|
|
4406
|
+
*
|
|
4407
|
+
* Pawn: `register_message(get_user_msgid("ShowTimer"), ...)`
|
|
4408
|
+
*/
|
|
4409
|
+
showTimer: ShowTimerFields;
|
|
4410
|
+
/**
|
|
4411
|
+
* The health of the player a spectator watches.
|
|
4412
|
+
*
|
|
4413
|
+
* The game's `SpecHealth` and `SpecHealth2` messages.
|
|
4414
|
+
*
|
|
4415
|
+
* Pawn: `register_message(get_user_msgid("SpecHealth"), ...)`, `register_message(get_user_msgid("SpecHealth2"), ...)`
|
|
4416
|
+
*/
|
|
4417
|
+
spectatedHealth: SpecHealth2Fields;
|
|
4418
|
+
/**
|
|
4419
|
+
* A player becomes a spectator, or stops being one, on the scoreboard.
|
|
4420
|
+
*
|
|
4421
|
+
* The game's `Spectator` message.
|
|
4422
|
+
*
|
|
4423
|
+
* Pawn: `register_message(get_user_msgid("Spectator"), ...)`
|
|
4424
|
+
*/
|
|
4425
|
+
spectator: SpectatorFields;
|
|
4426
|
+
/**
|
|
4427
|
+
* A status icon on a player's HUD - the buy zone, the bomb - is shown, flashed or hidden.
|
|
4428
|
+
*
|
|
4429
|
+
* The game's `StatusIcon` message.
|
|
4430
|
+
*
|
|
4431
|
+
* Pawn: `register_message(get_user_msgid("StatusIcon"), ...)`
|
|
4432
|
+
*/
|
|
4433
|
+
statusIcon: StatusIconFields;
|
|
4434
|
+
/**
|
|
4435
|
+
* The status line at the bottom of a player's screen, such as the name of the player he aims at.
|
|
4436
|
+
*
|
|
4437
|
+
* The game's `StatusText` message.
|
|
4438
|
+
*
|
|
4439
|
+
* Pawn: `register_message(get_user_msgid("StatusText"), ...)`
|
|
4440
|
+
*/
|
|
4441
|
+
statusText: StatusTextFields;
|
|
4442
|
+
/**
|
|
4443
|
+
* A value the status line shows, such as the player a player aims at.
|
|
4444
|
+
*
|
|
4445
|
+
* The game's `StatusValue` message.
|
|
4446
|
+
*
|
|
4447
|
+
* Pawn: `register_message(get_user_msgid("StatusValue"), ...)`
|
|
4448
|
+
*/
|
|
4449
|
+
statusValue: StatusValueFields;
|
|
4450
|
+
/**
|
|
4451
|
+
* The countdown of a task on a player's HUD, such as rescuing the hostages in a career.
|
|
4452
|
+
*
|
|
4453
|
+
* The game's `TaskTime` message.
|
|
4454
|
+
*
|
|
4455
|
+
* Pawn: `register_message(get_user_msgid("TaskTime"), ...)`
|
|
4456
|
+
*/
|
|
4457
|
+
taskTime: TaskTimeFields;
|
|
4458
|
+
/**
|
|
4459
|
+
* A player's team on the scoreboard.
|
|
4460
|
+
*
|
|
4461
|
+
* The game's `TeamInfo` message.
|
|
4462
|
+
*
|
|
4463
|
+
* Pawn: `register_message(get_user_msgid("TeamInfo"), ...)`
|
|
4464
|
+
*/
|
|
4465
|
+
team: TeamInfoFields;
|
|
4466
|
+
/**
|
|
4467
|
+
* A team's score on the scoreboard.
|
|
4468
|
+
*
|
|
4469
|
+
* The game's `TeamScore` message.
|
|
4470
|
+
*
|
|
4471
|
+
* Pawn: `register_message(get_user_msgid("TeamScore"), ...)`
|
|
4472
|
+
*/
|
|
4473
|
+
teamScore: TeamScoreFields;
|
|
4474
|
+
/**
|
|
4475
|
+
* A text from the game - an announcement, a hint - in chat, the console or the middle of the screen.
|
|
4476
|
+
*
|
|
4477
|
+
* The game's `TextMsg` message.
|
|
4478
|
+
*
|
|
4479
|
+
* Pawn: `register_message(get_user_msgid("TextMsg"), ...)`
|
|
4480
|
+
*/
|
|
4481
|
+
text: TextMsgFields;
|
|
4482
|
+
/**
|
|
4483
|
+
* The speed of the train a player drives, on his HUD.
|
|
4484
|
+
*
|
|
4485
|
+
* The game's `Train` message.
|
|
4486
|
+
*
|
|
4487
|
+
* Pawn: `register_message(get_user_msgid("Train"), ...)`
|
|
4488
|
+
*/
|
|
4489
|
+
train: TrainFields;
|
|
4490
|
+
/**
|
|
4491
|
+
* A tutor's message on a player's screen closes.
|
|
4492
|
+
*
|
|
4493
|
+
* The game's `TutorClose` message.
|
|
4494
|
+
*
|
|
4495
|
+
* Pawn: `register_message(get_user_msgid("TutorClose"), ...)`
|
|
4496
|
+
*/
|
|
4497
|
+
tutorClose: TutorCloseFields;
|
|
4498
|
+
/**
|
|
4499
|
+
* A player's view goes back to first person.
|
|
4500
|
+
*
|
|
4501
|
+
* The game's `ViewMode` message.
|
|
4502
|
+
*
|
|
4503
|
+
* Pawn: `register_message(get_user_msgid("ViewMode"), ...)`
|
|
4504
|
+
*/
|
|
4505
|
+
viewMode: ViewModeFields;
|
|
4506
|
+
/**
|
|
4507
|
+
* A weapon's description for a player's client: its ammo, its slot, its place in the slot.
|
|
4508
|
+
*
|
|
4509
|
+
* The game's `WeaponList` message.
|
|
4510
|
+
*
|
|
4511
|
+
* Pawn: `register_message(get_user_msgid("WeaponList"), ...)`
|
|
4512
|
+
*/
|
|
4513
|
+
weaponList: WeaponListFields;
|
|
4514
|
+
/**
|
|
4515
|
+
* A player picks up a weapon: the notice at the side of his screen.
|
|
4516
|
+
*
|
|
4517
|
+
* The game's `WeapPickup` message.
|
|
4518
|
+
*
|
|
4519
|
+
* Pawn: `register_message(get_user_msgid("WeapPickup"), ...)`
|
|
4520
|
+
*/
|
|
4521
|
+
weaponPickup: WeapPickupFields;
|
|
4522
|
+
}
|
|
4523
|
+
|
|
4524
|
+
/** Sends a message of the fields F - player.send's and server.send's hood. */
|
|
4525
|
+
export function __sendMessage<F>(given: F, dest: i32, player: i32, origin: Vector | null): void {
|
|
4526
|
+
if (idof<F>() == idof<ADStopFields>()) {
|
|
4527
|
+
const fields = changetype<ADStopFields>(given);
|
|
4528
|
+
const out = new __MessageOut();
|
|
4529
|
+
if (!out.begin("ADStop", dest, player, origin)) return;
|
|
4530
|
+
emessage_end();
|
|
4531
|
+
return;
|
|
4532
|
+
}
|
|
4533
|
+
if (idof<F>() == idof<AllowSpecFields>()) {
|
|
4534
|
+
const fields = changetype<AllowSpecFields>(given);
|
|
4535
|
+
const out = new __MessageOut();
|
|
4536
|
+
{ const value: boolean = fields.allowed ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4537
|
+
if (!out.begin("AllowSpec", dest, player, origin)) return;
|
|
4538
|
+
ewrite_byte(out.int(1));
|
|
4539
|
+
emessage_end();
|
|
4540
|
+
return;
|
|
4541
|
+
}
|
|
4542
|
+
if (idof<F>() == idof<AmmoPickupFields>()) {
|
|
4543
|
+
const fields = changetype<AmmoPickupFields>(given);
|
|
4544
|
+
const out = new __MessageOut();
|
|
4545
|
+
{ const value: number = fields.ammo ?? 0; out.__setNumber(1, value); }
|
|
4546
|
+
{ const value: number = fields.amount ?? 0; out.__setNumber(2, value); }
|
|
4547
|
+
if (!out.begin("AmmoPickup", dest, player, origin)) return;
|
|
4548
|
+
ewrite_byte(out.int(1));
|
|
4549
|
+
ewrite_byte(out.int(2));
|
|
4550
|
+
emessage_end();
|
|
4551
|
+
return;
|
|
4552
|
+
}
|
|
4553
|
+
if (idof<F>() == idof<AmmoXFields>()) {
|
|
4554
|
+
const fields = changetype<AmmoXFields>(given);
|
|
4555
|
+
const out = new __MessageOut();
|
|
4556
|
+
{ const value: number = fields.ammo ?? 0; out.__setNumber(1, value); }
|
|
4557
|
+
{ const value: number = fields.amount ?? 0; out.__setNumber(2, value); }
|
|
4558
|
+
if (!out.begin("AmmoX", dest, player, origin)) return;
|
|
4559
|
+
ewrite_byte(out.int(1));
|
|
4560
|
+
ewrite_byte(out.int(2));
|
|
4561
|
+
emessage_end();
|
|
4562
|
+
return;
|
|
4563
|
+
}
|
|
4564
|
+
if (idof<F>() == idof<ArmorTypeFields>()) {
|
|
4565
|
+
const fields = changetype<ArmorTypeFields>(given);
|
|
4566
|
+
const out = new __MessageOut();
|
|
4567
|
+
{ const value: boolean = fields.helmet ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4568
|
+
if (!out.begin("ArmorType", dest, player, origin)) return;
|
|
4569
|
+
ewrite_byte(out.int(1));
|
|
4570
|
+
emessage_end();
|
|
4571
|
+
return;
|
|
4572
|
+
}
|
|
4573
|
+
if (idof<F>() == idof<BarTime2Fields>()) {
|
|
4574
|
+
const fields = changetype<BarTime2Fields>(given);
|
|
4575
|
+
const out = new __MessageOut();
|
|
4576
|
+
{ const value: number = fields.seconds ?? 0; out.__setNumber(1, value); }
|
|
4577
|
+
{ const value: number = fields.startPercent ?? 0; out.__setNumber(2, value); }
|
|
4578
|
+
if (!out.begin("BarTime2", dest, player, origin)) return;
|
|
4579
|
+
ewrite_short(out.int(1));
|
|
4580
|
+
ewrite_short(out.int(2));
|
|
4581
|
+
emessage_end();
|
|
4582
|
+
return;
|
|
4583
|
+
}
|
|
4584
|
+
if (idof<F>() == idof<BatteryFields>()) {
|
|
4585
|
+
const fields = changetype<BatteryFields>(given);
|
|
4586
|
+
const out = new __MessageOut();
|
|
4587
|
+
{ const value: number = fields.armor ?? 0; out.__setNumber(1, value); }
|
|
4588
|
+
if (!out.begin("Battery", dest, player, origin)) return;
|
|
4589
|
+
ewrite_short(out.int(1));
|
|
4590
|
+
emessage_end();
|
|
4591
|
+
return;
|
|
4592
|
+
}
|
|
4593
|
+
if (idof<F>() == idof<BlinkAcctFields>()) {
|
|
4594
|
+
const fields = changetype<BlinkAcctFields>(given);
|
|
4595
|
+
const out = new __MessageOut();
|
|
4596
|
+
{ const value: number = fields.blinks ?? 0; out.__setNumber(1, value); }
|
|
4597
|
+
if (!out.begin("BlinkAcct", dest, player, origin)) return;
|
|
4598
|
+
ewrite_byte(out.int(1));
|
|
4599
|
+
emessage_end();
|
|
4600
|
+
return;
|
|
4601
|
+
}
|
|
4602
|
+
if (idof<F>() == idof<BombDropFields>()) {
|
|
4603
|
+
const fields = changetype<BombDropFields>(given);
|
|
4604
|
+
const out = new __MessageOut();
|
|
4605
|
+
{ const value: number[] = fields.origin ?? [0, 0, 0]; out.__setVector(1, value); }
|
|
4606
|
+
{ const value: boolean = fields.planted ?? false; out.__setNumber(4, value ? 1 : 0); }
|
|
4607
|
+
if (!out.begin("BombDrop", dest, player, origin)) return;
|
|
4608
|
+
ewrite_coord_f(out.number(1));
|
|
4609
|
+
ewrite_coord_f(out.number(2));
|
|
4610
|
+
ewrite_coord_f(out.number(3));
|
|
4611
|
+
ewrite_byte(out.int(4));
|
|
4612
|
+
emessage_end();
|
|
4613
|
+
return;
|
|
4614
|
+
}
|
|
4615
|
+
if (idof<F>() == idof<BombPickupFields>()) {
|
|
4616
|
+
const fields = changetype<BombPickupFields>(given);
|
|
4617
|
+
const out = new __MessageOut();
|
|
4618
|
+
if (!out.begin("BombPickup", dest, player, origin)) return;
|
|
4619
|
+
emessage_end();
|
|
4620
|
+
return;
|
|
4621
|
+
}
|
|
4622
|
+
if (idof<F>() == idof<BotVoiceFields>()) {
|
|
4623
|
+
const fields = changetype<BotVoiceFields>(given);
|
|
4624
|
+
const out = new __MessageOut();
|
|
4625
|
+
{ const value: boolean = fields.talking ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4626
|
+
{ const value: Player | null = fields.target ?? null; out.__setNumber(2, value != null ? value.id : 0); }
|
|
4627
|
+
if (!out.begin("BotVoice", dest, player, origin)) return;
|
|
4628
|
+
ewrite_byte(out.int(1));
|
|
4629
|
+
ewrite_byte(out.int(2));
|
|
4630
|
+
emessage_end();
|
|
4631
|
+
return;
|
|
4632
|
+
}
|
|
4633
|
+
if (idof<F>() == idof<BuyCloseFields>()) {
|
|
4634
|
+
const fields = changetype<BuyCloseFields>(given);
|
|
4635
|
+
const out = new __MessageOut();
|
|
4636
|
+
if (!out.begin("BuyClose", dest, player, origin)) return;
|
|
4637
|
+
emessage_end();
|
|
4638
|
+
return;
|
|
4639
|
+
}
|
|
4640
|
+
if (idof<F>() == idof<CrosshairFields>()) {
|
|
4641
|
+
const fields = changetype<CrosshairFields>(given);
|
|
4642
|
+
const out = new __MessageOut();
|
|
4643
|
+
{ const value: boolean = fields.shown ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4644
|
+
if (!out.begin("Crosshair", dest, player, origin)) return;
|
|
4645
|
+
ewrite_byte(out.int(1));
|
|
4646
|
+
emessage_end();
|
|
4647
|
+
return;
|
|
4648
|
+
}
|
|
4649
|
+
if (idof<F>() == idof<CurWeaponFields>()) {
|
|
4650
|
+
const fields = changetype<CurWeaponFields>(given);
|
|
4651
|
+
const out = new __MessageOut();
|
|
4652
|
+
{ const value: boolean = fields.active ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4653
|
+
{ const value: WeaponKind = fields.weapon ?? "none"; out.__setNumber(2, weaponIdOf(value)); }
|
|
4654
|
+
{ const value: number = fields.clip ?? 0; out.__setNumber(3, value); }
|
|
4655
|
+
if (!out.begin("CurWeapon", dest, player, origin)) return;
|
|
4656
|
+
ewrite_byte(out.int(1));
|
|
4657
|
+
ewrite_byte(out.int(2));
|
|
4658
|
+
ewrite_byte(out.int(3));
|
|
4659
|
+
emessage_end();
|
|
4660
|
+
return;
|
|
4661
|
+
}
|
|
4662
|
+
if (idof<F>() == idof<DamageFields>()) {
|
|
4663
|
+
const fields = changetype<DamageFields>(given);
|
|
4664
|
+
const out = new __MessageOut();
|
|
4665
|
+
{ const value: number = fields.armor ?? 0; out.__setNumber(1, value); }
|
|
4666
|
+
{ const value: number = fields.damage ?? 0; out.__setNumber(2, value); }
|
|
4667
|
+
{ const value: Damage[] = fields.damageType ?? []; out.__setNumber(3, DAMAGE.maskOf(value)); }
|
|
4668
|
+
{ const value: number[] = fields.origin ?? [0, 0, 0]; out.__setVector(4, value); }
|
|
4669
|
+
if (!out.begin("Damage", dest, player, origin)) return;
|
|
4670
|
+
ewrite_byte(out.int(1));
|
|
4671
|
+
ewrite_byte(out.int(2));
|
|
4672
|
+
ewrite_long(out.int(3));
|
|
4673
|
+
ewrite_coord_f(out.number(4));
|
|
4674
|
+
ewrite_coord_f(out.number(5));
|
|
4675
|
+
ewrite_coord_f(out.number(6));
|
|
4676
|
+
emessage_end();
|
|
4677
|
+
return;
|
|
4678
|
+
}
|
|
4679
|
+
if (idof<F>() == idof<DeathMsgFields>()) {
|
|
4680
|
+
const fields = changetype<DeathMsgFields>(given);
|
|
4681
|
+
const out = new __MessageOut();
|
|
4682
|
+
{ const value: Player | null = fields.killer ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
4683
|
+
{ const value: Player | null = fields.victim ?? null; out.__setNumber(2, value != null ? value.id : 0); }
|
|
4684
|
+
{ const value: boolean = fields.headshot ?? false; out.__setNumber(3, value ? 1 : 0); }
|
|
4685
|
+
{ const value: string = fields.weapon ?? ""; out.__setText(4, value); }
|
|
4686
|
+
if (!out.begin("DeathMsg", dest, player, origin)) return;
|
|
4687
|
+
ewrite_byte(out.int(1));
|
|
4688
|
+
ewrite_byte(out.int(2));
|
|
4689
|
+
ewrite_byte(out.int(3));
|
|
4690
|
+
ewrite_string(out.text(4));
|
|
4691
|
+
emessage_end();
|
|
4692
|
+
return;
|
|
4693
|
+
}
|
|
4694
|
+
if (idof<F>() == idof<FlashlightFields>()) {
|
|
4695
|
+
const fields = changetype<FlashlightFields>(given);
|
|
4696
|
+
const out = new __MessageOut();
|
|
4697
|
+
{ const value: boolean = fields.on ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4698
|
+
{ const value: number = fields.battery ?? 0; out.__setNumber(2, value); }
|
|
4699
|
+
if (!out.begin("Flashlight", dest, player, origin)) return;
|
|
4700
|
+
ewrite_byte(out.int(1));
|
|
4701
|
+
ewrite_byte(out.int(2));
|
|
4702
|
+
emessage_end();
|
|
4703
|
+
return;
|
|
4704
|
+
}
|
|
4705
|
+
if (idof<F>() == idof<FlashBatFields>()) {
|
|
4706
|
+
const fields = changetype<FlashBatFields>(given);
|
|
4707
|
+
const out = new __MessageOut();
|
|
4708
|
+
{ const value: number = fields.battery ?? 0; out.__setNumber(1, value); }
|
|
4709
|
+
if (!out.begin("FlashBat", dest, player, origin)) return;
|
|
4710
|
+
ewrite_byte(out.int(1));
|
|
4711
|
+
emessage_end();
|
|
4712
|
+
return;
|
|
4713
|
+
}
|
|
4714
|
+
if (idof<F>() == idof<GeigerFields>()) {
|
|
4715
|
+
const fields = changetype<GeigerFields>(given);
|
|
4716
|
+
const out = new __MessageOut();
|
|
4717
|
+
{ const value: number = fields.range ?? 0; out.__setNumber(1, value); }
|
|
4718
|
+
if (!out.begin("Geiger", dest, player, origin)) return;
|
|
4719
|
+
ewrite_byte(out.int(1));
|
|
4720
|
+
emessage_end();
|
|
4721
|
+
return;
|
|
4722
|
+
}
|
|
4723
|
+
if (idof<F>() == idof<HealthFields>()) {
|
|
4724
|
+
const fields = changetype<HealthFields>(given);
|
|
4725
|
+
const out = new __MessageOut();
|
|
4726
|
+
{ const value: number = fields.health ?? 0; out.__setNumber(1, value); }
|
|
4727
|
+
if (!out.begin("Health", dest, player, origin)) return;
|
|
4728
|
+
ewrite_byte(out.int(1));
|
|
4729
|
+
emessage_end();
|
|
4730
|
+
return;
|
|
4731
|
+
}
|
|
4732
|
+
if (idof<F>() == idof<HideWeaponFields>()) {
|
|
4733
|
+
const fields = changetype<HideWeaponFields>(given);
|
|
4734
|
+
const out = new __MessageOut();
|
|
4735
|
+
{ const value: HideHud[] = fields.flags ?? []; out.__setNumber(1, HIDE_HUD.maskOf(value)); }
|
|
4736
|
+
if (!out.begin("HideWeapon", dest, player, origin)) return;
|
|
4737
|
+
ewrite_byte(out.int(1));
|
|
4738
|
+
emessage_end();
|
|
4739
|
+
return;
|
|
4740
|
+
}
|
|
4741
|
+
if (idof<F>() == idof<HostageKFields>()) {
|
|
4742
|
+
const fields = changetype<HostageKFields>(given);
|
|
4743
|
+
const out = new __MessageOut();
|
|
4744
|
+
{ const value: number = fields.hostage ?? 0; out.__setNumber(1, value); }
|
|
4745
|
+
if (!out.begin("HostageK", dest, player, origin)) return;
|
|
4746
|
+
ewrite_byte(out.int(1));
|
|
4747
|
+
emessage_end();
|
|
4748
|
+
return;
|
|
4749
|
+
}
|
|
4750
|
+
if (idof<F>() == idof<InitHUDFields>()) {
|
|
4751
|
+
const fields = changetype<InitHUDFields>(given);
|
|
4752
|
+
const out = new __MessageOut();
|
|
4753
|
+
if (!out.begin("InitHUD", dest, player, origin)) return;
|
|
4754
|
+
emessage_end();
|
|
4755
|
+
return;
|
|
4756
|
+
}
|
|
4757
|
+
if (idof<F>() == idof<ItemPickupFields>()) {
|
|
4758
|
+
const fields = changetype<ItemPickupFields>(given);
|
|
4759
|
+
const out = new __MessageOut();
|
|
4760
|
+
{ const value: string = fields.item ?? ""; out.__setText(1, value); }
|
|
4761
|
+
if (!out.begin("ItemPickup", dest, player, origin)) return;
|
|
4762
|
+
ewrite_string(out.text(1));
|
|
4763
|
+
emessage_end();
|
|
4764
|
+
return;
|
|
4765
|
+
}
|
|
4766
|
+
if (idof<F>() == idof<ItemStatusFields>()) {
|
|
4767
|
+
const fields = changetype<ItemStatusFields>(given);
|
|
4768
|
+
const out = new __MessageOut();
|
|
4769
|
+
{ const value: boolean = fields.nightVision ?? false; out.__setBit(1, 1, value); }
|
|
4770
|
+
{ const value: boolean = fields.defuseKit ?? false; out.__setBit(1, 2, value); }
|
|
4771
|
+
if (!out.begin("ItemStatus", dest, player, origin)) return;
|
|
4772
|
+
ewrite_byte(out.int(1));
|
|
4773
|
+
emessage_end();
|
|
4774
|
+
return;
|
|
4775
|
+
}
|
|
4776
|
+
if (idof<F>() == idof<LocationFields>()) {
|
|
4777
|
+
const fields = changetype<LocationFields>(given);
|
|
4778
|
+
const out = new __MessageOut();
|
|
4779
|
+
{ const value: Player | null = fields.target ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
4780
|
+
{ const value: string = fields.place ?? ""; out.__setText(2, value); }
|
|
4781
|
+
if (!out.begin("Location", dest, player, origin)) return;
|
|
4782
|
+
ewrite_byte(out.int(1));
|
|
4783
|
+
ewrite_string(out.text(2));
|
|
4784
|
+
emessage_end();
|
|
4785
|
+
return;
|
|
4786
|
+
}
|
|
4787
|
+
if (idof<F>() == idof<MoneyFields>()) {
|
|
4788
|
+
const fields = changetype<MoneyFields>(given);
|
|
4789
|
+
const out = new __MessageOut();
|
|
4790
|
+
{ const value: number = fields.amount ?? 0; out.__setNumber(1, value); }
|
|
4791
|
+
{ const value: boolean = fields.flash ?? false; out.__setNumber(2, value ? 1 : 0); }
|
|
4792
|
+
if (!out.begin("Money", dest, player, origin)) return;
|
|
4793
|
+
ewrite_long(out.int(1));
|
|
4794
|
+
ewrite_byte(out.int(2));
|
|
4795
|
+
emessage_end();
|
|
4796
|
+
return;
|
|
4797
|
+
}
|
|
4798
|
+
if (idof<F>() == idof<MOTDFields>()) {
|
|
4799
|
+
const fields = changetype<MOTDFields>(given);
|
|
4800
|
+
const out = new __MessageOut();
|
|
4801
|
+
{ const value: boolean = fields.last ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4802
|
+
{ const value: string = fields.text ?? ""; out.__setText(2, value); }
|
|
4803
|
+
if (!out.begin("MOTD", dest, player, origin)) return;
|
|
4804
|
+
ewrite_byte(out.int(1));
|
|
4805
|
+
ewrite_string(out.text(2));
|
|
4806
|
+
emessage_end();
|
|
4807
|
+
return;
|
|
4808
|
+
}
|
|
4809
|
+
if (idof<F>() == idof<NVGToggleFields>()) {
|
|
4810
|
+
const fields = changetype<NVGToggleFields>(given);
|
|
4811
|
+
const out = new __MessageOut();
|
|
4812
|
+
{ const value: boolean = fields.on ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4813
|
+
if (!out.begin("NVGToggle", dest, player, origin)) return;
|
|
4814
|
+
ewrite_byte(out.int(1));
|
|
4815
|
+
emessage_end();
|
|
4816
|
+
return;
|
|
4817
|
+
}
|
|
4818
|
+
if (idof<F>() == idof<RadarFields>()) {
|
|
4819
|
+
const fields = changetype<RadarFields>(given);
|
|
4820
|
+
const out = new __MessageOut();
|
|
4821
|
+
{ const value: Player | null = fields.target ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
4822
|
+
{ const value: number[] = fields.origin ?? [0, 0, 0]; out.__setVector(2, value); }
|
|
4823
|
+
if (!out.begin("Radar", dest, player, origin)) return;
|
|
4824
|
+
ewrite_byte(out.int(1));
|
|
4825
|
+
ewrite_coord_f(out.number(2));
|
|
4826
|
+
ewrite_coord_f(out.number(3));
|
|
4827
|
+
ewrite_coord_f(out.number(4));
|
|
4828
|
+
emessage_end();
|
|
4829
|
+
return;
|
|
4830
|
+
}
|
|
4831
|
+
if (idof<F>() == idof<ResetHUDFields>()) {
|
|
4832
|
+
const fields = changetype<ResetHUDFields>(given);
|
|
4833
|
+
const out = new __MessageOut();
|
|
4834
|
+
if (!out.begin("ResetHUD", dest, player, origin)) return;
|
|
4835
|
+
emessage_end();
|
|
4836
|
+
return;
|
|
4837
|
+
}
|
|
4838
|
+
if (idof<F>() == idof<RoundTimeFields>()) {
|
|
4839
|
+
const fields = changetype<RoundTimeFields>(given);
|
|
4840
|
+
const out = new __MessageOut();
|
|
4841
|
+
{ const value: number = fields.seconds ?? 0; out.__setNumber(1, value); }
|
|
4842
|
+
if (!out.begin("RoundTime", dest, player, origin)) return;
|
|
4843
|
+
ewrite_short(out.int(1));
|
|
4844
|
+
emessage_end();
|
|
4845
|
+
return;
|
|
4846
|
+
}
|
|
4847
|
+
if (idof<F>() == idof<SayTextFields>()) {
|
|
4848
|
+
const fields = changetype<SayTextFields>(given);
|
|
4849
|
+
const out = new __MessageOut();
|
|
4850
|
+
{ const value: Player | null = fields.sender ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
4851
|
+
{ const value: string = fields.text ?? ""; out.__setText(2, value); }
|
|
4852
|
+
{ const value: string[] = fields.params ?? []; out.__setTexts(3, value); }
|
|
4853
|
+
if (!out.begin("SayText", dest, player, origin)) return;
|
|
4854
|
+
ewrite_byte(out.int(1));
|
|
4855
|
+
ewrite_string(out.text(2));
|
|
4856
|
+
for (let at = 3; at <= out.count; at++) ewrite_string(out.text(at));
|
|
4857
|
+
emessage_end();
|
|
4858
|
+
return;
|
|
4859
|
+
}
|
|
4860
|
+
if (idof<F>() == idof<ScenarioFields>()) {
|
|
4861
|
+
const fields = changetype<ScenarioFields>(given);
|
|
4862
|
+
const out = new __MessageOut();
|
|
4863
|
+
{ const value: boolean = fields.active ?? false; out.__setNumber(1, value ? 1 : 0); }
|
|
4864
|
+
{ const value: string = fields.sprite ?? ""; out.__setText(2, value); }
|
|
4865
|
+
{ const value: number = fields.alpha ?? 0; out.__setNumber(3, value); }
|
|
4866
|
+
if (!out.begin("Scenario", dest, player, origin)) return;
|
|
4867
|
+
ewrite_byte(out.int(1));
|
|
4868
|
+
ewrite_string(out.text(2));
|
|
4869
|
+
ewrite_byte(out.int(3));
|
|
4870
|
+
emessage_end();
|
|
4871
|
+
return;
|
|
4872
|
+
}
|
|
4873
|
+
if (idof<F>() == idof<ScoreAttribFields>()) {
|
|
4874
|
+
const fields = changetype<ScoreAttribFields>(given);
|
|
4875
|
+
const out = new __MessageOut();
|
|
4876
|
+
{ const value: Player | null = fields.target ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
4877
|
+
{ const value: ScoreStatus[] = fields.flags ?? []; out.__setNumber(2, SCORE_STATUS.maskOf(value)); }
|
|
4878
|
+
if (!out.begin("ScoreAttrib", dest, player, origin)) return;
|
|
4879
|
+
ewrite_byte(out.int(1));
|
|
4880
|
+
ewrite_byte(out.int(2));
|
|
4881
|
+
emessage_end();
|
|
4882
|
+
return;
|
|
4883
|
+
}
|
|
4884
|
+
if (idof<F>() == idof<ScoreInfoFields>()) {
|
|
4885
|
+
const fields = changetype<ScoreInfoFields>(given);
|
|
4886
|
+
const out = new __MessageOut();
|
|
4887
|
+
{ const value: Player | null = fields.target ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
4888
|
+
{ const value: number = fields.frags ?? 0; out.__setNumber(2, value); }
|
|
4889
|
+
{ const value: number = fields.deaths ?? 0; out.__setNumber(3, value); }
|
|
4890
|
+
{ const value: Team = fields.team ?? "UNASSIGNED"; out.__setNumber(5, max(MESSAGE_TEAMS.indexOf(value), 0)); }
|
|
4891
|
+
if (!out.begin("ScoreInfo", dest, player, origin)) return;
|
|
4892
|
+
ewrite_byte(out.int(1));
|
|
4893
|
+
ewrite_short(out.int(2));
|
|
4894
|
+
ewrite_short(out.int(3));
|
|
4895
|
+
ewrite_short(0);
|
|
4896
|
+
ewrite_short(out.int(5));
|
|
4897
|
+
emessage_end();
|
|
4898
|
+
return;
|
|
4899
|
+
}
|
|
4900
|
+
if (idof<F>() == idof<ScreenFadeFields>()) {
|
|
4901
|
+
const fields = changetype<ScreenFadeFields>(given);
|
|
4902
|
+
const out = new __MessageOut();
|
|
4903
|
+
{ const value: number = fields.duration ?? 0; out.__setNumber(1, Math.round(value * 4096.0)); }
|
|
4904
|
+
{ const value: number = fields.hold ?? 0; out.__setNumber(2, Math.round(value * 4096.0)); }
|
|
4905
|
+
{ const value: FadeDirection = fields.direction ?? "in"; out.__setBit(3, FFADE_OUT, value == "out"); }
|
|
4906
|
+
{ const value: boolean = fields.modulate ?? false; out.__setBit(3, 2, value); }
|
|
4907
|
+
{ const value: boolean = fields.stay ?? false; out.__setBit(3, 4, value); }
|
|
4908
|
+
{ const value: number[] = fields.color ?? []; out.__setBytes(4, value); }
|
|
4909
|
+
if (!out.begin("ScreenFade", dest, player, origin)) return;
|
|
4910
|
+
ewrite_short(out.int(1));
|
|
4911
|
+
ewrite_short(out.int(2));
|
|
4912
|
+
ewrite_short(out.int(3));
|
|
4913
|
+
ewrite_byte(out.int(4));
|
|
4914
|
+
ewrite_byte(out.int(5));
|
|
4915
|
+
ewrite_byte(out.int(6));
|
|
4916
|
+
ewrite_byte(out.int(7));
|
|
4917
|
+
emessage_end();
|
|
4918
|
+
return;
|
|
4919
|
+
}
|
|
4920
|
+
if (idof<F>() == idof<ScreenShakeFields>()) {
|
|
4921
|
+
const fields = changetype<ScreenShakeFields>(given);
|
|
4922
|
+
const out = new __MessageOut();
|
|
4923
|
+
{ const value: number = fields.amplitude ?? 0; out.__setNumber(1, Math.round(value * 4096.0)); }
|
|
4924
|
+
{ const value: number = fields.duration ?? 0; out.__setNumber(2, Math.round(value * 4096.0)); }
|
|
4925
|
+
{ const value: number = fields.frequency ?? 0; out.__setNumber(3, Math.round(value * 256.0)); }
|
|
4926
|
+
if (!out.begin("ScreenShake", dest, player, origin)) return;
|
|
4927
|
+
ewrite_short(out.int(1));
|
|
4928
|
+
ewrite_short(out.int(2));
|
|
4929
|
+
ewrite_short(out.int(3));
|
|
4930
|
+
emessage_end();
|
|
4931
|
+
return;
|
|
4932
|
+
}
|
|
4933
|
+
if (idof<F>() == idof<SendAudioFields>()) {
|
|
4934
|
+
const fields = changetype<SendAudioFields>(given);
|
|
4935
|
+
const out = new __MessageOut();
|
|
4936
|
+
{ const value: Player | null = fields.sender ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
4937
|
+
{ const value: string = fields.sound ?? ""; out.__setText(2, value); }
|
|
4938
|
+
{ const value: number = fields.pitch ?? 0; out.__setNumber(3, value); }
|
|
4939
|
+
if (!out.begin("SendAudio", dest, player, origin)) return;
|
|
4940
|
+
ewrite_byte(out.int(1));
|
|
4941
|
+
ewrite_string(out.text(2));
|
|
4942
|
+
ewrite_short(out.int(3));
|
|
4943
|
+
emessage_end();
|
|
4944
|
+
return;
|
|
4945
|
+
}
|
|
4946
|
+
if (idof<F>() == idof<ServerNameFields>()) {
|
|
4947
|
+
const fields = changetype<ServerNameFields>(given);
|
|
4948
|
+
const out = new __MessageOut();
|
|
4949
|
+
{ const value: string = fields.serverName ?? ""; out.__setText(1, value); }
|
|
4950
|
+
if (!out.begin("ServerName", dest, player, origin)) return;
|
|
4951
|
+
ewrite_string(out.text(1));
|
|
4952
|
+
emessage_end();
|
|
4953
|
+
return;
|
|
4954
|
+
}
|
|
4955
|
+
if (idof<F>() == idof<SetFOVFields>()) {
|
|
4956
|
+
const fields = changetype<SetFOVFields>(given);
|
|
4957
|
+
const out = new __MessageOut();
|
|
4958
|
+
{ const value: number = fields.fov ?? 0; out.__setNumber(1, value); }
|
|
4959
|
+
if (!out.begin("SetFOV", dest, player, origin)) return;
|
|
4960
|
+
ewrite_byte(out.int(1));
|
|
4961
|
+
emessage_end();
|
|
4962
|
+
return;
|
|
4963
|
+
}
|
|
4964
|
+
if (idof<F>() == idof<ShowTimerFields>()) {
|
|
4965
|
+
const fields = changetype<ShowTimerFields>(given);
|
|
4966
|
+
const out = new __MessageOut();
|
|
4967
|
+
if (!out.begin("ShowTimer", dest, player, origin)) return;
|
|
4968
|
+
emessage_end();
|
|
4969
|
+
return;
|
|
4970
|
+
}
|
|
4971
|
+
if (idof<F>() == idof<SpecHealth2Fields>()) {
|
|
4972
|
+
const fields = changetype<SpecHealth2Fields>(given);
|
|
4973
|
+
const out = new __MessageOut();
|
|
4974
|
+
{ const value: number = fields.health ?? 0; out.__setNumber(1, value); }
|
|
4975
|
+
{ const value: Player | null = fields.target ?? null; out.__setNumber(2, value != null ? value.id : 0); }
|
|
4976
|
+
if (!out.begin("SpecHealth2", dest, player, origin)) return;
|
|
4977
|
+
ewrite_byte(out.int(1));
|
|
4978
|
+
ewrite_byte(out.int(2));
|
|
4979
|
+
emessage_end();
|
|
4980
|
+
return;
|
|
4981
|
+
}
|
|
4982
|
+
if (idof<F>() == idof<SpectatorFields>()) {
|
|
4983
|
+
const fields = changetype<SpectatorFields>(given);
|
|
4984
|
+
const out = new __MessageOut();
|
|
4985
|
+
{ const value: Player | null = fields.target ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
4986
|
+
{ const value: boolean = fields.spectator ?? false; out.__setNumber(2, value ? 1 : 0); }
|
|
4987
|
+
if (!out.begin("Spectator", dest, player, origin)) return;
|
|
4988
|
+
ewrite_byte(out.int(1));
|
|
4989
|
+
ewrite_byte(out.int(2));
|
|
4990
|
+
emessage_end();
|
|
4991
|
+
return;
|
|
4992
|
+
}
|
|
4993
|
+
if (idof<F>() == idof<StatusIconFields>()) {
|
|
4994
|
+
const fields = changetype<StatusIconFields>(given);
|
|
4995
|
+
const out = new __MessageOut();
|
|
4996
|
+
{ const value: StatusIconState = fields.state ?? "hide"; out.__setNumber(1, max(STATUS_ICON_STATES.indexOf(value), 0)); }
|
|
4997
|
+
{ const value: string = fields.sprite ?? ""; out.__setText(2, value); }
|
|
4998
|
+
{ const value: number[] = fields.color ?? []; out.__setBytes(3, value); }
|
|
4999
|
+
if (!out.begin("StatusIcon", dest, player, origin)) return;
|
|
5000
|
+
ewrite_byte(out.int(1));
|
|
5001
|
+
ewrite_string(out.text(2));
|
|
5002
|
+
ewrite_byte(out.int(3));
|
|
5003
|
+
ewrite_byte(out.int(4));
|
|
5004
|
+
ewrite_byte(out.int(5));
|
|
5005
|
+
emessage_end();
|
|
5006
|
+
return;
|
|
5007
|
+
}
|
|
5008
|
+
if (idof<F>() == idof<StatusTextFields>()) {
|
|
5009
|
+
const fields = changetype<StatusTextFields>(given);
|
|
5010
|
+
const out = new __MessageOut();
|
|
5011
|
+
{ const value: number = fields.line ?? 0; out.__setNumber(1, value); }
|
|
5012
|
+
{ const value: string = fields.text ?? ""; out.__setText(2, value); }
|
|
5013
|
+
if (!out.begin("StatusText", dest, player, origin)) return;
|
|
5014
|
+
ewrite_byte(out.int(1));
|
|
5015
|
+
ewrite_string(out.text(2));
|
|
5016
|
+
emessage_end();
|
|
5017
|
+
return;
|
|
5018
|
+
}
|
|
5019
|
+
if (idof<F>() == idof<StatusValueFields>()) {
|
|
5020
|
+
const fields = changetype<StatusValueFields>(given);
|
|
5021
|
+
const out = new __MessageOut();
|
|
5022
|
+
{ const value: number = fields.slot ?? 0; out.__setNumber(1, value); }
|
|
5023
|
+
{ const value: number = fields.value ?? 0; out.__setNumber(2, value); }
|
|
5024
|
+
if (!out.begin("StatusValue", dest, player, origin)) return;
|
|
5025
|
+
ewrite_byte(out.int(1));
|
|
5026
|
+
ewrite_short(out.int(2));
|
|
5027
|
+
emessage_end();
|
|
5028
|
+
return;
|
|
5029
|
+
}
|
|
5030
|
+
if (idof<F>() == idof<TaskTimeFields>()) {
|
|
5031
|
+
const fields = changetype<TaskTimeFields>(given);
|
|
5032
|
+
const out = new __MessageOut();
|
|
5033
|
+
{ const value: number = fields.seconds ?? 0; out.__setNumber(1, value); }
|
|
5034
|
+
{ const value: boolean = fields.active ?? false; out.__setNumber(2, value ? 1 : 0); }
|
|
5035
|
+
{ const value: number = fields.fade ?? 0; out.__setNumber(3, value); }
|
|
5036
|
+
if (!out.begin("TaskTime", dest, player, origin)) return;
|
|
5037
|
+
ewrite_short(out.int(1));
|
|
5038
|
+
ewrite_byte(out.int(2));
|
|
5039
|
+
ewrite_byte(out.int(3));
|
|
5040
|
+
emessage_end();
|
|
5041
|
+
return;
|
|
5042
|
+
}
|
|
5043
|
+
if (idof<F>() == idof<TeamInfoFields>()) {
|
|
5044
|
+
const fields = changetype<TeamInfoFields>(given);
|
|
5045
|
+
const out = new __MessageOut();
|
|
5046
|
+
{ const value: Player | null = fields.target ?? null; out.__setNumber(1, value != null ? value.id : 0); }
|
|
5047
|
+
{ const value: Team = fields.team ?? "UNASSIGNED"; out.__setText(2, value); }
|
|
5048
|
+
if (!out.begin("TeamInfo", dest, player, origin)) return;
|
|
5049
|
+
ewrite_byte(out.int(1));
|
|
5050
|
+
ewrite_string(out.text(2));
|
|
5051
|
+
emessage_end();
|
|
5052
|
+
return;
|
|
5053
|
+
}
|
|
5054
|
+
if (idof<F>() == idof<TeamScoreFields>()) {
|
|
5055
|
+
const fields = changetype<TeamScoreFields>(given);
|
|
5056
|
+
const out = new __MessageOut();
|
|
5057
|
+
{ const value: Team = fields.team ?? "UNASSIGNED"; out.__setText(1, value); }
|
|
5058
|
+
{ const value: number = fields.score ?? 0; out.__setNumber(2, value); }
|
|
5059
|
+
if (!out.begin("TeamScore", dest, player, origin)) return;
|
|
5060
|
+
ewrite_string(out.text(1));
|
|
5061
|
+
ewrite_short(out.int(2));
|
|
5062
|
+
emessage_end();
|
|
5063
|
+
return;
|
|
5064
|
+
}
|
|
5065
|
+
if (idof<F>() == idof<TextMsgFields>()) {
|
|
5066
|
+
const fields = changetype<TextMsgFields>(given);
|
|
5067
|
+
const out = new __MessageOut();
|
|
5068
|
+
{ const value: VariantName = fields.destination ?? "notify"; out.__setNumber(1, max(MESSAGE_DESTINATIONS.indexOf(value), 1)); }
|
|
5069
|
+
{ const value: string = fields.text ?? ""; out.__setText(2, value); }
|
|
5070
|
+
{ const value: string[] = fields.params ?? []; out.__setTexts(3, value); }
|
|
5071
|
+
if (!out.begin("TextMsg", dest, player, origin)) return;
|
|
5072
|
+
ewrite_byte(out.int(1));
|
|
5073
|
+
ewrite_string(out.text(2));
|
|
5074
|
+
for (let at = 3; at <= out.count; at++) ewrite_string(out.text(at));
|
|
5075
|
+
emessage_end();
|
|
5076
|
+
return;
|
|
5077
|
+
}
|
|
5078
|
+
if (idof<F>() == idof<TrainFields>()) {
|
|
5079
|
+
const fields = changetype<TrainFields>(given);
|
|
5080
|
+
const out = new __MessageOut();
|
|
5081
|
+
{ const value: number = fields.speed ?? 0; out.__setNumber(1, value); }
|
|
5082
|
+
if (!out.begin("Train", dest, player, origin)) return;
|
|
5083
|
+
ewrite_byte(out.int(1));
|
|
5084
|
+
emessage_end();
|
|
5085
|
+
return;
|
|
5086
|
+
}
|
|
5087
|
+
if (idof<F>() == idof<TutorCloseFields>()) {
|
|
5088
|
+
const fields = changetype<TutorCloseFields>(given);
|
|
5089
|
+
const out = new __MessageOut();
|
|
5090
|
+
if (!out.begin("TutorClose", dest, player, origin)) return;
|
|
5091
|
+
emessage_end();
|
|
5092
|
+
return;
|
|
5093
|
+
}
|
|
5094
|
+
if (idof<F>() == idof<ViewModeFields>()) {
|
|
5095
|
+
const fields = changetype<ViewModeFields>(given);
|
|
5096
|
+
const out = new __MessageOut();
|
|
5097
|
+
if (!out.begin("ViewMode", dest, player, origin)) return;
|
|
5098
|
+
emessage_end();
|
|
5099
|
+
return;
|
|
5100
|
+
}
|
|
5101
|
+
if (idof<F>() == idof<WeaponListFields>()) {
|
|
5102
|
+
const fields = changetype<WeaponListFields>(given);
|
|
5103
|
+
const out = new __MessageOut();
|
|
5104
|
+
{ const value: string = fields.classname ?? ""; out.__setText(1, value); }
|
|
5105
|
+
{ const value: number = fields.ammo ?? 0; out.__setNumber(2, value); }
|
|
5106
|
+
{ const value: number = fields.maxAmmo ?? 0; out.__setNumber(3, value); }
|
|
5107
|
+
{ const value: number = fields.ammo2 ?? 0; out.__setNumber(4, value); }
|
|
5108
|
+
{ const value: number = fields.maxAmmo2 ?? 0; out.__setNumber(5, value); }
|
|
5109
|
+
{ const value: number = fields.slot ?? 0; out.__setNumber(6, value); }
|
|
5110
|
+
{ const value: number = fields.position ?? 0; out.__setNumber(7, value); }
|
|
5111
|
+
{ const value: WeaponKind = fields.weapon ?? "none"; out.__setNumber(8, weaponIdOf(value)); }
|
|
5112
|
+
{ const value: number = fields.flags ?? 0; out.__setNumber(9, value); }
|
|
5113
|
+
if (!out.begin("WeaponList", dest, player, origin)) return;
|
|
5114
|
+
ewrite_string(out.text(1));
|
|
5115
|
+
ewrite_byte(out.int(2));
|
|
5116
|
+
ewrite_byte(out.int(3));
|
|
5117
|
+
ewrite_byte(out.int(4));
|
|
5118
|
+
ewrite_byte(out.int(5));
|
|
5119
|
+
ewrite_byte(out.int(6));
|
|
5120
|
+
ewrite_byte(out.int(7));
|
|
5121
|
+
ewrite_byte(out.int(8));
|
|
5122
|
+
ewrite_byte(out.int(9));
|
|
5123
|
+
emessage_end();
|
|
5124
|
+
return;
|
|
5125
|
+
}
|
|
5126
|
+
if (idof<F>() == idof<WeapPickupFields>()) {
|
|
5127
|
+
const fields = changetype<WeapPickupFields>(given);
|
|
5128
|
+
const out = new __MessageOut();
|
|
5129
|
+
{ const value: WeaponKind = fields.weapon ?? "none"; out.__setNumber(1, weaponIdOf(value)); }
|
|
5130
|
+
if (!out.begin("WeapPickup", dest, player, origin)) return;
|
|
5131
|
+
ewrite_byte(out.int(1));
|
|
5132
|
+
emessage_end();
|
|
5133
|
+
return;
|
|
5134
|
+
}
|
|
5135
|
+
}
|
|
5136
|
+
|
|
3033
5137
|
/** The game's names of the messages a name server.addMessageListener takes hears; a name it does not know as it is. */
|
|
3034
5138
|
export function protocolMessageNames(name: string): string[] {
|
|
3035
5139
|
if (name == "adStop") return ["ADStop"];
|
|
@@ -3113,510 +5217,1221 @@ export function protocolMessageNames(name: string): string[] {
|
|
|
3113
5217
|
return [name];
|
|
3114
5218
|
}
|
|
3115
5219
|
|
|
3116
|
-
const initListeners
|
|
5220
|
+
const initListeners = new __Listeners<(event: PluginInitEvent) => void>();
|
|
5221
|
+
let initView: PluginInitEvent | null = null;
|
|
3117
5222
|
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
for (let i = 0; i < listeners.length; i++) listeners[i](event);
|
|
5223
|
+
// @ts-ignore: decorator
|
|
5224
|
+
@inline function initObject(): PluginInitEvent {
|
|
5225
|
+
let event = initView;
|
|
5226
|
+
if (event == null) initView = event = new PluginInitEvent();
|
|
5227
|
+
return event;
|
|
3124
5228
|
}
|
|
3125
5229
|
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
const
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
5230
|
+
function initTrampoline(a0: i32): void {
|
|
5231
|
+
if (initListeners.count == 0) return;
|
|
5232
|
+
const event = initObject();
|
|
5233
|
+
const listeners = initListeners;
|
|
5234
|
+
const n = listeners.begin();
|
|
5235
|
+
for (let i = 0; i < n; i++) {
|
|
5236
|
+
const listener = listeners.at(i);
|
|
5237
|
+
if (listener) listener(event);
|
|
5238
|
+
}
|
|
5239
|
+
listeners.end();
|
|
5240
|
+
}
|
|
5241
|
+
|
|
5242
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5243
|
+
function initDirect(): void {
|
|
5244
|
+
const listeners = initListeners;
|
|
5245
|
+
if (listeners.count == 0) return;
|
|
5246
|
+
let listener: usize = 0;
|
|
5247
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5248
|
+
const one = listeners.at(i);
|
|
5249
|
+
if (one == null) continue;
|
|
5250
|
+
listener = changetype<usize>(one);
|
|
5251
|
+
break;
|
|
5252
|
+
}
|
|
5253
|
+
__onDirect("plugin_init", initTrampoline.index, listener, listener != 0 ? changetype<usize>(initObject()) : 0, false);
|
|
3134
5254
|
}
|
|
3135
5255
|
|
|
3136
|
-
const
|
|
5256
|
+
const changeLevelListeners = new __Listeners<(event: ServerChangelevelEvent) => void>();
|
|
5257
|
+
let changeLevelView: ServerChangelevelEvent | null = null;
|
|
3137
5258
|
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3141
|
-
|
|
3142
|
-
|
|
3143
|
-
for (let i = 0; i < listeners.length; i++) listeners[i](event);
|
|
5259
|
+
// @ts-ignore: decorator
|
|
5260
|
+
@inline function changeLevelObject(): ServerChangelevelEvent {
|
|
5261
|
+
let event = changeLevelView;
|
|
5262
|
+
if (event == null) changeLevelView = event = new ServerChangelevelEvent();
|
|
5263
|
+
return event;
|
|
3144
5264
|
}
|
|
3145
5265
|
|
|
3146
|
-
const changeLevelListeners: ((event: ServerChangelevelEvent) => void)[] = [];
|
|
3147
|
-
|
|
3148
5266
|
function changeLevelTrampoline(a0: i32): void {
|
|
3149
|
-
if (changeLevelListeners.
|
|
3150
|
-
const event =
|
|
3151
|
-
|
|
3152
|
-
const
|
|
3153
|
-
for (let i = 0; i <
|
|
5267
|
+
if (changeLevelListeners.count == 0) return;
|
|
5268
|
+
const event = changeLevelObject();
|
|
5269
|
+
const listeners = changeLevelListeners;
|
|
5270
|
+
const n = listeners.begin();
|
|
5271
|
+
for (let i = 0; i < n; i++) {
|
|
5272
|
+
const listener = listeners.at(i);
|
|
5273
|
+
if (listener) listener(event);
|
|
5274
|
+
}
|
|
5275
|
+
listeners.end();
|
|
5276
|
+
}
|
|
5277
|
+
|
|
5278
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5279
|
+
function changeLevelDirect(): void {
|
|
5280
|
+
const listeners = changeLevelListeners;
|
|
5281
|
+
if (listeners.count == 0) return;
|
|
5282
|
+
let listener: usize = 0;
|
|
5283
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5284
|
+
const one = listeners.at(i);
|
|
5285
|
+
if (one == null) continue;
|
|
5286
|
+
listener = changetype<usize>(one);
|
|
5287
|
+
break;
|
|
5288
|
+
}
|
|
5289
|
+
__onDirect("server_changelevel", changeLevelTrampoline.index, listener, listener != 0 ? changetype<usize>(changeLevelObject()) : 0, false);
|
|
3154
5290
|
}
|
|
3155
5291
|
|
|
3156
|
-
const pluginsLoadedListeners
|
|
5292
|
+
const pluginsLoadedListeners = new __Listeners<(event: PluginCfgEvent) => void>();
|
|
5293
|
+
let pluginsLoadedView: PluginCfgEvent | null = null;
|
|
5294
|
+
|
|
5295
|
+
// @ts-ignore: decorator
|
|
5296
|
+
@inline function pluginsLoadedObject(): PluginCfgEvent {
|
|
5297
|
+
let event = pluginsLoadedView;
|
|
5298
|
+
if (event == null) pluginsLoadedView = event = new PluginCfgEvent();
|
|
5299
|
+
return event;
|
|
5300
|
+
}
|
|
3157
5301
|
|
|
3158
5302
|
function pluginsLoadedTrampoline(a0: i32): void {
|
|
3159
|
-
if (pluginsLoadedListeners.
|
|
3160
|
-
const event =
|
|
3161
|
-
|
|
3162
|
-
const
|
|
3163
|
-
for (let i = 0; i <
|
|
5303
|
+
if (pluginsLoadedListeners.count == 0) return;
|
|
5304
|
+
const event = pluginsLoadedObject();
|
|
5305
|
+
const listeners = pluginsLoadedListeners;
|
|
5306
|
+
const n = listeners.begin();
|
|
5307
|
+
for (let i = 0; i < n; i++) {
|
|
5308
|
+
const listener = listeners.at(i);
|
|
5309
|
+
if (listener) listener(event);
|
|
5310
|
+
}
|
|
5311
|
+
listeners.end();
|
|
5312
|
+
}
|
|
5313
|
+
|
|
5314
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5315
|
+
function pluginsLoadedDirect(): void {
|
|
5316
|
+
const listeners = pluginsLoadedListeners;
|
|
5317
|
+
if (listeners.count == 0) return;
|
|
5318
|
+
let listener: usize = 0;
|
|
5319
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5320
|
+
const one = listeners.at(i);
|
|
5321
|
+
if (one == null) continue;
|
|
5322
|
+
listener = changetype<usize>(one);
|
|
5323
|
+
break;
|
|
5324
|
+
}
|
|
5325
|
+
__onDirect("plugin_cfg", pluginsLoadedTrampoline.index, listener, listener != 0 ? changetype<usize>(pluginsLoadedObject()) : 0, false);
|
|
3164
5326
|
}
|
|
3165
5327
|
|
|
3166
|
-
const endListeners
|
|
5328
|
+
const endListeners = new __Listeners<(event: PluginEndEvent) => void>();
|
|
5329
|
+
let endView: PluginEndEvent | null = null;
|
|
5330
|
+
|
|
5331
|
+
// @ts-ignore: decorator
|
|
5332
|
+
@inline function endObject(): PluginEndEvent {
|
|
5333
|
+
let event = endView;
|
|
5334
|
+
if (event == null) endView = event = new PluginEndEvent();
|
|
5335
|
+
return event;
|
|
5336
|
+
}
|
|
3167
5337
|
|
|
3168
5338
|
function endTrampoline(a0: i32): void {
|
|
3169
|
-
if (endListeners.
|
|
3170
|
-
const event =
|
|
3171
|
-
|
|
3172
|
-
const
|
|
3173
|
-
for (let i = 0; i <
|
|
5339
|
+
if (endListeners.count == 0) return;
|
|
5340
|
+
const event = endObject();
|
|
5341
|
+
const listeners = endListeners;
|
|
5342
|
+
const n = listeners.begin();
|
|
5343
|
+
for (let i = 0; i < n; i++) {
|
|
5344
|
+
const listener = listeners.at(i);
|
|
5345
|
+
if (listener) listener(event);
|
|
5346
|
+
}
|
|
5347
|
+
listeners.end();
|
|
5348
|
+
}
|
|
5349
|
+
|
|
5350
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5351
|
+
function endDirect(): void {
|
|
5352
|
+
const listeners = endListeners;
|
|
5353
|
+
if (listeners.count == 0) return;
|
|
5354
|
+
let listener: usize = 0;
|
|
5355
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5356
|
+
const one = listeners.at(i);
|
|
5357
|
+
if (one == null) continue;
|
|
5358
|
+
listener = changetype<usize>(one);
|
|
5359
|
+
break;
|
|
5360
|
+
}
|
|
5361
|
+
__onDirect("plugin_end", endTrampoline.index, listener, listener != 0 ? changetype<usize>(endObject()) : 0, false);
|
|
3174
5362
|
}
|
|
3175
5363
|
|
|
3176
|
-
const logListeners
|
|
5364
|
+
const logListeners = new __Listeners<(event: PluginLogEvent) => void>();
|
|
5365
|
+
let logView: PluginLogEvent | null = null;
|
|
5366
|
+
|
|
5367
|
+
// @ts-ignore: decorator
|
|
5368
|
+
@inline function logObject(): PluginLogEvent {
|
|
5369
|
+
let event = logView;
|
|
5370
|
+
if (event == null) logView = event = new PluginLogEvent();
|
|
5371
|
+
return event;
|
|
5372
|
+
}
|
|
3177
5373
|
|
|
3178
5374
|
function logTrampoline(a0: i32): void {
|
|
3179
|
-
if (logListeners.
|
|
3180
|
-
const event =
|
|
3181
|
-
|
|
3182
|
-
const
|
|
3183
|
-
for (let i = 0; i <
|
|
5375
|
+
if (logListeners.count == 0) return;
|
|
5376
|
+
const event = logObject();
|
|
5377
|
+
const listeners = logListeners;
|
|
5378
|
+
const n = listeners.begin();
|
|
5379
|
+
for (let i = 0; i < n; i++) {
|
|
5380
|
+
const listener = listeners.at(i);
|
|
5381
|
+
if (listener) listener(event);
|
|
5382
|
+
}
|
|
5383
|
+
listeners.end();
|
|
5384
|
+
}
|
|
5385
|
+
|
|
5386
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5387
|
+
function logDirect(): void {
|
|
5388
|
+
const listeners = logListeners;
|
|
5389
|
+
if (listeners.count == 0) return;
|
|
5390
|
+
let listener: usize = 0;
|
|
5391
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5392
|
+
const one = listeners.at(i);
|
|
5393
|
+
if (one == null) continue;
|
|
5394
|
+
listener = changetype<usize>(one);
|
|
5395
|
+
break;
|
|
5396
|
+
}
|
|
5397
|
+
__onDirect("plugin_log", logTrampoline.index, listener, listener != 0 ? changetype<usize>(logObject()) : 0, false);
|
|
3184
5398
|
}
|
|
3185
5399
|
|
|
3186
|
-
const precacheListeners
|
|
5400
|
+
const precacheListeners = new __Listeners<(event: PluginPrecacheEvent) => void>();
|
|
5401
|
+
let precacheView: PluginPrecacheEvent | null = null;
|
|
5402
|
+
|
|
5403
|
+
// @ts-ignore: decorator
|
|
5404
|
+
@inline function precacheObject(): PluginPrecacheEvent {
|
|
5405
|
+
let event = precacheView;
|
|
5406
|
+
if (event == null) precacheView = event = new PluginPrecacheEvent();
|
|
5407
|
+
return event;
|
|
5408
|
+
}
|
|
3187
5409
|
|
|
3188
5410
|
function precacheTrampoline(a0: i32): void {
|
|
3189
|
-
if (precacheListeners.
|
|
3190
|
-
const event =
|
|
3191
|
-
|
|
3192
|
-
const
|
|
3193
|
-
for (let i = 0; i <
|
|
5411
|
+
if (precacheListeners.count == 0) return;
|
|
5412
|
+
const event = precacheObject();
|
|
5413
|
+
const listeners = precacheListeners;
|
|
5414
|
+
const n = listeners.begin();
|
|
5415
|
+
for (let i = 0; i < n; i++) {
|
|
5416
|
+
const listener = listeners.at(i);
|
|
5417
|
+
if (listener) listener(event);
|
|
5418
|
+
}
|
|
5419
|
+
listeners.end();
|
|
5420
|
+
}
|
|
5421
|
+
|
|
5422
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5423
|
+
function precacheDirect(): void {
|
|
5424
|
+
const listeners = precacheListeners;
|
|
5425
|
+
if (listeners.count == 0) return;
|
|
5426
|
+
let listener: usize = 0;
|
|
5427
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5428
|
+
const one = listeners.at(i);
|
|
5429
|
+
if (one == null) continue;
|
|
5430
|
+
listener = changetype<usize>(one);
|
|
5431
|
+
break;
|
|
5432
|
+
}
|
|
5433
|
+
__onDirect("plugin_precache", precacheTrampoline.index, listener, listener != 0 ? changetype<usize>(precacheObject()) : 0, false);
|
|
3194
5434
|
}
|
|
3195
5435
|
|
|
3196
|
-
const clientInfochangedListeners
|
|
5436
|
+
const clientInfochangedListeners = new __Listeners<(event: ClientInfochangedEvent) => void>();
|
|
5437
|
+
let clientInfochangedView: ClientInfochangedEvent | null = null;
|
|
5438
|
+
|
|
5439
|
+
// @ts-ignore: decorator
|
|
5440
|
+
@inline function clientInfochangedObject(): ClientInfochangedEvent {
|
|
5441
|
+
let event = clientInfochangedView;
|
|
5442
|
+
if (event == null) clientInfochangedView = event = new ClientInfochangedEvent();
|
|
5443
|
+
return event;
|
|
5444
|
+
}
|
|
3197
5445
|
|
|
3198
5446
|
function clientInfochangedTrampoline(a0: i32): void {
|
|
3199
|
-
if (clientInfochangedListeners.
|
|
3200
|
-
const event =
|
|
3201
|
-
|
|
3202
|
-
const
|
|
5447
|
+
if (clientInfochangedListeners.count == 0) return;
|
|
5448
|
+
const event = clientInfochangedObject();
|
|
5449
|
+
const listeners = clientInfochangedListeners;
|
|
5450
|
+
const n = listeners.begin();
|
|
3203
5451
|
const ambient = __co_ambient_player;
|
|
3204
5452
|
__co_ambient_player = a0;
|
|
3205
|
-
for (let i = 0; i <
|
|
5453
|
+
for (let i = 0; i < n; i++) {
|
|
5454
|
+
const listener = listeners.at(i);
|
|
5455
|
+
if (listener) listener(event);
|
|
5456
|
+
}
|
|
3206
5457
|
__co_ambient_player = ambient;
|
|
5458
|
+
listeners.end();
|
|
5459
|
+
}
|
|
5460
|
+
|
|
5461
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5462
|
+
function clientInfochangedDirect(): void {
|
|
5463
|
+
const listeners = clientInfochangedListeners;
|
|
5464
|
+
if (listeners.count == 0) return;
|
|
5465
|
+
let listener: usize = 0;
|
|
5466
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5467
|
+
const one = listeners.at(i);
|
|
5468
|
+
if (one == null) continue;
|
|
5469
|
+
listener = changetype<usize>(one);
|
|
5470
|
+
break;
|
|
5471
|
+
}
|
|
5472
|
+
__onDirect("client_infochanged", clientInfochangedTrampoline.index, listener, listener != 0 ? changetype<usize>(clientInfochangedObject()) : 0, true);
|
|
3207
5473
|
}
|
|
3208
5474
|
|
|
3209
|
-
const connectListeners
|
|
5475
|
+
const connectListeners = new __Listeners<(event: ClientConnectEvent) => void>();
|
|
5476
|
+
let connectView: ClientConnectEvent | null = null;
|
|
5477
|
+
|
|
5478
|
+
// @ts-ignore: decorator
|
|
5479
|
+
@inline function connectObject(): ClientConnectEvent {
|
|
5480
|
+
let event = connectView;
|
|
5481
|
+
if (event == null) connectView = event = new ClientConnectEvent();
|
|
5482
|
+
return event;
|
|
5483
|
+
}
|
|
3210
5484
|
|
|
3211
5485
|
function connectTrampoline(a0: i32): void {
|
|
3212
|
-
if (connectListeners.
|
|
3213
|
-
const event =
|
|
3214
|
-
|
|
3215
|
-
const
|
|
5486
|
+
if (connectListeners.count == 0) return;
|
|
5487
|
+
const event = connectObject();
|
|
5488
|
+
const listeners = connectListeners;
|
|
5489
|
+
const n = listeners.begin();
|
|
3216
5490
|
const ambient = __co_ambient_player;
|
|
3217
5491
|
__co_ambient_player = a0;
|
|
3218
|
-
for (let i = 0; i <
|
|
5492
|
+
for (let i = 0; i < n; i++) {
|
|
5493
|
+
const listener = listeners.at(i);
|
|
5494
|
+
if (listener) listener(event);
|
|
5495
|
+
}
|
|
3219
5496
|
__co_ambient_player = ambient;
|
|
5497
|
+
listeners.end();
|
|
5498
|
+
}
|
|
5499
|
+
|
|
5500
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5501
|
+
function connectDirect(): void {
|
|
5502
|
+
const listeners = connectListeners;
|
|
5503
|
+
if (listeners.count == 0) return;
|
|
5504
|
+
let listener: usize = 0;
|
|
5505
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5506
|
+
const one = listeners.at(i);
|
|
5507
|
+
if (one == null) continue;
|
|
5508
|
+
listener = changetype<usize>(one);
|
|
5509
|
+
break;
|
|
5510
|
+
}
|
|
5511
|
+
__onDirect("client_connect", connectTrampoline.index, listener, listener != 0 ? changetype<usize>(connectObject()) : 0, true);
|
|
3220
5512
|
}
|
|
3221
5513
|
|
|
3222
|
-
const connectAttemptListeners
|
|
5514
|
+
const connectAttemptListeners = new __Listeners<(event: ClientConnectexEvent) => void>();
|
|
5515
|
+
let connectAttemptView: ClientConnectexEvent | null = null;
|
|
5516
|
+
|
|
5517
|
+
// @ts-ignore: decorator
|
|
5518
|
+
@inline function connectAttemptObject(): ClientConnectexEvent {
|
|
5519
|
+
let event = connectAttemptView;
|
|
5520
|
+
if (event == null) connectAttemptView = event = new ClientConnectexEvent();
|
|
5521
|
+
return event;
|
|
5522
|
+
}
|
|
3223
5523
|
|
|
3224
5524
|
function connectAttemptTrampoline(a0: i32): void {
|
|
3225
|
-
if (connectAttemptListeners.
|
|
3226
|
-
const event =
|
|
3227
|
-
|
|
3228
|
-
const
|
|
5525
|
+
if (connectAttemptListeners.count == 0) return;
|
|
5526
|
+
const event = connectAttemptObject();
|
|
5527
|
+
const listeners = connectAttemptListeners;
|
|
5528
|
+
const n = listeners.begin();
|
|
3229
5529
|
const ambient = __co_ambient_player;
|
|
3230
5530
|
__co_ambient_player = a0;
|
|
3231
|
-
for (let i = 0; i <
|
|
5531
|
+
for (let i = 0; i < n; i++) {
|
|
5532
|
+
const listener = listeners.at(i);
|
|
5533
|
+
if (listener) listener(event);
|
|
5534
|
+
}
|
|
3232
5535
|
__co_ambient_player = ambient;
|
|
5536
|
+
listeners.end();
|
|
5537
|
+
}
|
|
5538
|
+
|
|
5539
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5540
|
+
function connectAttemptDirect(): void {
|
|
5541
|
+
const listeners = connectAttemptListeners;
|
|
5542
|
+
if (listeners.count == 0) return;
|
|
5543
|
+
let listener: usize = 0;
|
|
5544
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5545
|
+
const one = listeners.at(i);
|
|
5546
|
+
if (one == null) continue;
|
|
5547
|
+
listener = changetype<usize>(one);
|
|
5548
|
+
break;
|
|
5549
|
+
}
|
|
5550
|
+
__onDirect("client_connectex", connectAttemptTrampoline.index, listener, listener != 0 ? changetype<usize>(connectAttemptObject()) : 0, true);
|
|
3233
5551
|
}
|
|
3234
5552
|
|
|
3235
|
-
const authorizedListeners
|
|
5553
|
+
const authorizedListeners = new __Listeners<(event: ClientAuthorizedEvent) => void>();
|
|
5554
|
+
let authorizedView: ClientAuthorizedEvent | null = null;
|
|
5555
|
+
|
|
5556
|
+
// @ts-ignore: decorator
|
|
5557
|
+
@inline function authorizedObject(): ClientAuthorizedEvent {
|
|
5558
|
+
let event = authorizedView;
|
|
5559
|
+
if (event == null) authorizedView = event = new ClientAuthorizedEvent();
|
|
5560
|
+
return event;
|
|
5561
|
+
}
|
|
3236
5562
|
|
|
3237
5563
|
function authorizedTrampoline(a0: i32): void {
|
|
3238
|
-
if (authorizedListeners.
|
|
3239
|
-
const event =
|
|
3240
|
-
|
|
3241
|
-
const
|
|
5564
|
+
if (authorizedListeners.count == 0) return;
|
|
5565
|
+
const event = authorizedObject();
|
|
5566
|
+
const listeners = authorizedListeners;
|
|
5567
|
+
const n = listeners.begin();
|
|
3242
5568
|
const ambient = __co_ambient_player;
|
|
3243
5569
|
__co_ambient_player = a0;
|
|
3244
|
-
for (let i = 0; i <
|
|
5570
|
+
for (let i = 0; i < n; i++) {
|
|
5571
|
+
const listener = listeners.at(i);
|
|
5572
|
+
if (listener) listener(event);
|
|
5573
|
+
}
|
|
3245
5574
|
__co_ambient_player = ambient;
|
|
5575
|
+
listeners.end();
|
|
5576
|
+
}
|
|
5577
|
+
|
|
5578
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5579
|
+
function authorizedDirect(): void {
|
|
5580
|
+
const listeners = authorizedListeners;
|
|
5581
|
+
if (listeners.count == 0) return;
|
|
5582
|
+
let listener: usize = 0;
|
|
5583
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5584
|
+
const one = listeners.at(i);
|
|
5585
|
+
if (one == null) continue;
|
|
5586
|
+
listener = changetype<usize>(one);
|
|
5587
|
+
break;
|
|
5588
|
+
}
|
|
5589
|
+
__onDirect("client_authorized", authorizedTrampoline.index, listener, listener != 0 ? changetype<usize>(authorizedObject()) : 0, true);
|
|
3246
5590
|
}
|
|
3247
5591
|
|
|
3248
|
-
const disconnectedListeners
|
|
5592
|
+
const disconnectedListeners = new __Listeners<(event: ClientDisconnectedEvent) => void>();
|
|
5593
|
+
let disconnectedView: ClientDisconnectedEvent | null = null;
|
|
5594
|
+
|
|
5595
|
+
// @ts-ignore: decorator
|
|
5596
|
+
@inline function disconnectedObject(): ClientDisconnectedEvent {
|
|
5597
|
+
let event = disconnectedView;
|
|
5598
|
+
if (event == null) disconnectedView = event = new ClientDisconnectedEvent();
|
|
5599
|
+
return event;
|
|
5600
|
+
}
|
|
3249
5601
|
|
|
3250
5602
|
function disconnectedTrampoline(a0: i32): void {
|
|
3251
|
-
if (disconnectedListeners.
|
|
3252
|
-
const event =
|
|
3253
|
-
|
|
3254
|
-
const
|
|
3255
|
-
for (let i = 0; i <
|
|
5603
|
+
if (disconnectedListeners.count == 0) return;
|
|
5604
|
+
const event = disconnectedObject();
|
|
5605
|
+
const listeners = disconnectedListeners;
|
|
5606
|
+
const n = listeners.begin();
|
|
5607
|
+
for (let i = 0; i < n; i++) {
|
|
5608
|
+
const listener = listeners.at(i);
|
|
5609
|
+
if (listener) listener(event);
|
|
5610
|
+
}
|
|
5611
|
+
listeners.end();
|
|
5612
|
+
}
|
|
5613
|
+
|
|
5614
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5615
|
+
function disconnectedDirect(): void {
|
|
5616
|
+
const listeners = disconnectedListeners;
|
|
5617
|
+
if (listeners.count == 0) return;
|
|
5618
|
+
let listener: usize = 0;
|
|
5619
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5620
|
+
const one = listeners.at(i);
|
|
5621
|
+
if (one == null) continue;
|
|
5622
|
+
listener = changetype<usize>(one);
|
|
5623
|
+
break;
|
|
5624
|
+
}
|
|
5625
|
+
__onDirect("client_disconnected", disconnectedTrampoline.index, listener, listener != 0 ? changetype<usize>(disconnectedObject()) : 0, false);
|
|
3256
5626
|
}
|
|
3257
5627
|
|
|
3258
|
-
const removeListeners
|
|
5628
|
+
const removeListeners = new __Listeners<(event: ClientRemoveEvent) => void>();
|
|
5629
|
+
let removeView: ClientRemoveEvent | null = null;
|
|
5630
|
+
|
|
5631
|
+
// @ts-ignore: decorator
|
|
5632
|
+
@inline function removeObject(): ClientRemoveEvent {
|
|
5633
|
+
let event = removeView;
|
|
5634
|
+
if (event == null) removeView = event = new ClientRemoveEvent();
|
|
5635
|
+
return event;
|
|
5636
|
+
}
|
|
3259
5637
|
|
|
3260
5638
|
function removeTrampoline(a0: i32): void {
|
|
3261
|
-
if (removeListeners.
|
|
3262
|
-
const event =
|
|
3263
|
-
|
|
3264
|
-
const
|
|
3265
|
-
for (let i = 0; i <
|
|
5639
|
+
if (removeListeners.count == 0) return;
|
|
5640
|
+
const event = removeObject();
|
|
5641
|
+
const listeners = removeListeners;
|
|
5642
|
+
const n = listeners.begin();
|
|
5643
|
+
for (let i = 0; i < n; i++) {
|
|
5644
|
+
const listener = listeners.at(i);
|
|
5645
|
+
if (listener) listener(event);
|
|
5646
|
+
}
|
|
5647
|
+
listeners.end();
|
|
5648
|
+
}
|
|
5649
|
+
|
|
5650
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5651
|
+
function removeDirect(): void {
|
|
5652
|
+
const listeners = removeListeners;
|
|
5653
|
+
if (listeners.count == 0) return;
|
|
5654
|
+
let listener: usize = 0;
|
|
5655
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5656
|
+
const one = listeners.at(i);
|
|
5657
|
+
if (one == null) continue;
|
|
5658
|
+
listener = changetype<usize>(one);
|
|
5659
|
+
break;
|
|
5660
|
+
}
|
|
5661
|
+
__onDirect("client_remove", removeTrampoline.index, listener, listener != 0 ? changetype<usize>(removeObject()) : 0, false);
|
|
3266
5662
|
}
|
|
3267
5663
|
|
|
3268
|
-
const commandListeners
|
|
5664
|
+
const commandListeners = new __Listeners<(event: ClientCommandEvent) => void>();
|
|
5665
|
+
let commandView: ClientCommandEvent | null = null;
|
|
5666
|
+
|
|
5667
|
+
// @ts-ignore: decorator
|
|
5668
|
+
@inline function commandObject(): ClientCommandEvent {
|
|
5669
|
+
let event = commandView;
|
|
5670
|
+
if (event == null) commandView = event = new ClientCommandEvent();
|
|
5671
|
+
return event;
|
|
5672
|
+
}
|
|
3269
5673
|
|
|
3270
5674
|
function commandTrampoline(a0: i32): void {
|
|
3271
|
-
if (commandListeners.
|
|
3272
|
-
const event =
|
|
3273
|
-
|
|
3274
|
-
const
|
|
5675
|
+
if (commandListeners.count == 0) return;
|
|
5676
|
+
const event = commandObject();
|
|
5677
|
+
const listeners = commandListeners;
|
|
5678
|
+
const n = listeners.begin();
|
|
3275
5679
|
const ambient = __co_ambient_player;
|
|
3276
5680
|
__co_ambient_player = a0;
|
|
3277
|
-
for (let i = 0; i <
|
|
5681
|
+
for (let i = 0; i < n; i++) {
|
|
5682
|
+
const listener = listeners.at(i);
|
|
5683
|
+
if (listener) listener(event);
|
|
5684
|
+
}
|
|
3278
5685
|
__co_ambient_player = ambient;
|
|
5686
|
+
listeners.end();
|
|
5687
|
+
}
|
|
5688
|
+
|
|
5689
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5690
|
+
function commandDirect(): void {
|
|
5691
|
+
const listeners = commandListeners;
|
|
5692
|
+
if (listeners.count == 0) return;
|
|
5693
|
+
let listener: usize = 0;
|
|
5694
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5695
|
+
const one = listeners.at(i);
|
|
5696
|
+
if (one == null) continue;
|
|
5697
|
+
listener = changetype<usize>(one);
|
|
5698
|
+
break;
|
|
5699
|
+
}
|
|
5700
|
+
__onDirect("client_command", commandTrampoline.index, listener, listener != 0 ? changetype<usize>(commandObject()) : 0, true);
|
|
3279
5701
|
}
|
|
3280
5702
|
|
|
3281
|
-
const putInServerListeners
|
|
5703
|
+
const putInServerListeners = new __Listeners<(event: ClientPutinserverEvent) => void>();
|
|
5704
|
+
let putInServerView: ClientPutinserverEvent | null = null;
|
|
5705
|
+
|
|
5706
|
+
// @ts-ignore: decorator
|
|
5707
|
+
@inline function putInServerObject(): ClientPutinserverEvent {
|
|
5708
|
+
let event = putInServerView;
|
|
5709
|
+
if (event == null) putInServerView = event = new ClientPutinserverEvent();
|
|
5710
|
+
return event;
|
|
5711
|
+
}
|
|
3282
5712
|
|
|
3283
5713
|
function putInServerTrampoline(a0: i32): void {
|
|
3284
|
-
if (putInServerListeners.
|
|
3285
|
-
const event =
|
|
3286
|
-
|
|
3287
|
-
const
|
|
5714
|
+
if (putInServerListeners.count == 0) return;
|
|
5715
|
+
const event = putInServerObject();
|
|
5716
|
+
const listeners = putInServerListeners;
|
|
5717
|
+
const n = listeners.begin();
|
|
3288
5718
|
const ambient = __co_ambient_player;
|
|
3289
5719
|
__co_ambient_player = a0;
|
|
3290
|
-
for (let i = 0; i <
|
|
5720
|
+
for (let i = 0; i < n; i++) {
|
|
5721
|
+
const listener = listeners.at(i);
|
|
5722
|
+
if (listener) listener(event);
|
|
5723
|
+
}
|
|
3291
5724
|
__co_ambient_player = ambient;
|
|
5725
|
+
listeners.end();
|
|
5726
|
+
}
|
|
5727
|
+
|
|
5728
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5729
|
+
function putInServerDirect(): void {
|
|
5730
|
+
const listeners = putInServerListeners;
|
|
5731
|
+
if (listeners.count == 0) return;
|
|
5732
|
+
let listener: usize = 0;
|
|
5733
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5734
|
+
const one = listeners.at(i);
|
|
5735
|
+
if (one == null) continue;
|
|
5736
|
+
listener = changetype<usize>(one);
|
|
5737
|
+
break;
|
|
5738
|
+
}
|
|
5739
|
+
__onDirect("client_putinserver", putInServerTrampoline.index, listener, listener != 0 ? changetype<usize>(putInServerObject()) : 0, true);
|
|
3292
5740
|
}
|
|
3293
5741
|
|
|
3294
|
-
const inconsistentFileListeners
|
|
5742
|
+
const inconsistentFileListeners = new __Listeners<(event: InconsistentFileEvent) => void>();
|
|
5743
|
+
let inconsistentFileView: InconsistentFileEvent | null = null;
|
|
5744
|
+
|
|
5745
|
+
// @ts-ignore: decorator
|
|
5746
|
+
@inline function inconsistentFileObject(): InconsistentFileEvent {
|
|
5747
|
+
let event = inconsistentFileView;
|
|
5748
|
+
if (event == null) inconsistentFileView = event = new InconsistentFileEvent();
|
|
5749
|
+
return event;
|
|
5750
|
+
}
|
|
3295
5751
|
|
|
3296
5752
|
function inconsistentFileTrampoline(a0: i32): void {
|
|
3297
|
-
if (inconsistentFileListeners.
|
|
3298
|
-
const event =
|
|
3299
|
-
|
|
3300
|
-
const
|
|
5753
|
+
if (inconsistentFileListeners.count == 0) return;
|
|
5754
|
+
const event = inconsistentFileObject();
|
|
5755
|
+
const listeners = inconsistentFileListeners;
|
|
5756
|
+
const n = listeners.begin();
|
|
3301
5757
|
const ambient = __co_ambient_player;
|
|
3302
5758
|
__co_ambient_player = a0;
|
|
3303
|
-
for (let i = 0; i <
|
|
5759
|
+
for (let i = 0; i < n; i++) {
|
|
5760
|
+
const listener = listeners.at(i);
|
|
5761
|
+
if (listener) listener(event);
|
|
5762
|
+
}
|
|
3304
5763
|
__co_ambient_player = ambient;
|
|
5764
|
+
listeners.end();
|
|
5765
|
+
}
|
|
5766
|
+
|
|
5767
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5768
|
+
function inconsistentFileDirect(): void {
|
|
5769
|
+
const listeners = inconsistentFileListeners;
|
|
5770
|
+
if (listeners.count == 0) return;
|
|
5771
|
+
let listener: usize = 0;
|
|
5772
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5773
|
+
const one = listeners.at(i);
|
|
5774
|
+
if (one == null) continue;
|
|
5775
|
+
listener = changetype<usize>(one);
|
|
5776
|
+
break;
|
|
5777
|
+
}
|
|
5778
|
+
__onDirect("inconsistent_file", inconsistentFileTrampoline.index, listener, listener != 0 ? changetype<usize>(inconsistentFileObject()) : 0, true);
|
|
3305
5779
|
}
|
|
3306
5780
|
|
|
3307
|
-
const
|
|
5781
|
+
const configsExecutedListeners = new __Listeners<(event: OnConfigsExecutedEvent) => void>();
|
|
5782
|
+
let configsExecutedView: OnConfigsExecutedEvent | null = null;
|
|
3308
5783
|
|
|
3309
|
-
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
for (let i = 0; i < listeners.length; i++) listeners[i](event);
|
|
5784
|
+
// @ts-ignore: decorator
|
|
5785
|
+
@inline function configsExecutedObject(): OnConfigsExecutedEvent {
|
|
5786
|
+
let event = configsExecutedView;
|
|
5787
|
+
if (event == null) configsExecutedView = event = new OnConfigsExecutedEvent();
|
|
5788
|
+
return event;
|
|
3315
5789
|
}
|
|
3316
5790
|
|
|
3317
|
-
const configsExecutedListeners: ((event: OnConfigsExecutedEvent) => void)[] = [];
|
|
3318
|
-
|
|
3319
5791
|
function configsExecutedTrampoline(a0: i32): void {
|
|
3320
|
-
if (configsExecutedListeners.
|
|
3321
|
-
const event =
|
|
3322
|
-
|
|
3323
|
-
const
|
|
3324
|
-
for (let i = 0; i <
|
|
5792
|
+
if (configsExecutedListeners.count == 0) return;
|
|
5793
|
+
const event = configsExecutedObject();
|
|
5794
|
+
const listeners = configsExecutedListeners;
|
|
5795
|
+
const n = listeners.begin();
|
|
5796
|
+
for (let i = 0; i < n; i++) {
|
|
5797
|
+
const listener = listeners.at(i);
|
|
5798
|
+
if (listener) listener(event);
|
|
5799
|
+
}
|
|
5800
|
+
listeners.end();
|
|
5801
|
+
}
|
|
5802
|
+
|
|
5803
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5804
|
+
function configsExecutedDirect(): void {
|
|
5805
|
+
const listeners = configsExecutedListeners;
|
|
5806
|
+
if (listeners.count == 0) return;
|
|
5807
|
+
let listener: usize = 0;
|
|
5808
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5809
|
+
const one = listeners.at(i);
|
|
5810
|
+
if (one == null) continue;
|
|
5811
|
+
listener = changetype<usize>(one);
|
|
5812
|
+
break;
|
|
5813
|
+
}
|
|
5814
|
+
__onDirect("OnConfigsExecuted", configsExecutedTrampoline.index, listener, listener != 0 ? changetype<usize>(configsExecutedObject()) : 0, false);
|
|
3325
5815
|
}
|
|
3326
5816
|
|
|
3327
|
-
const configsQueuedListeners
|
|
5817
|
+
const configsQueuedListeners = new __Listeners<(event: OnAutoConfigsBufferedEvent) => void>();
|
|
5818
|
+
let configsQueuedView: OnAutoConfigsBufferedEvent | null = null;
|
|
5819
|
+
|
|
5820
|
+
// @ts-ignore: decorator
|
|
5821
|
+
@inline function configsQueuedObject(): OnAutoConfigsBufferedEvent {
|
|
5822
|
+
let event = configsQueuedView;
|
|
5823
|
+
if (event == null) configsQueuedView = event = new OnAutoConfigsBufferedEvent();
|
|
5824
|
+
return event;
|
|
5825
|
+
}
|
|
3328
5826
|
|
|
3329
5827
|
function configsQueuedTrampoline(a0: i32): void {
|
|
3330
|
-
if (configsQueuedListeners.
|
|
3331
|
-
const event =
|
|
3332
|
-
|
|
3333
|
-
const
|
|
3334
|
-
for (let i = 0; i <
|
|
5828
|
+
if (configsQueuedListeners.count == 0) return;
|
|
5829
|
+
const event = configsQueuedObject();
|
|
5830
|
+
const listeners = configsQueuedListeners;
|
|
5831
|
+
const n = listeners.begin();
|
|
5832
|
+
for (let i = 0; i < n; i++) {
|
|
5833
|
+
const listener = listeners.at(i);
|
|
5834
|
+
if (listener) listener(event);
|
|
5835
|
+
}
|
|
5836
|
+
listeners.end();
|
|
5837
|
+
}
|
|
5838
|
+
|
|
5839
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5840
|
+
function configsQueuedDirect(): void {
|
|
5841
|
+
const listeners = configsQueuedListeners;
|
|
5842
|
+
if (listeners.count == 0) return;
|
|
5843
|
+
let listener: usize = 0;
|
|
5844
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5845
|
+
const one = listeners.at(i);
|
|
5846
|
+
if (one == null) continue;
|
|
5847
|
+
listener = changetype<usize>(one);
|
|
5848
|
+
break;
|
|
5849
|
+
}
|
|
5850
|
+
__onDirect("OnAutoConfigsBuffered", configsQueuedTrampoline.index, listener, listener != 0 ? changetype<usize>(configsQueuedObject()) : 0, false);
|
|
3335
5851
|
}
|
|
3336
5852
|
|
|
3337
|
-
const internalCommandListeners
|
|
5853
|
+
const internalCommandListeners = new __Listeners<(event: CS_InternalCommandEvent) => void>();
|
|
5854
|
+
let internalCommandView: CS_InternalCommandEvent | null = null;
|
|
5855
|
+
|
|
5856
|
+
// @ts-ignore: decorator
|
|
5857
|
+
@inline function internalCommandObject(): CS_InternalCommandEvent {
|
|
5858
|
+
let event = internalCommandView;
|
|
5859
|
+
if (event == null) internalCommandView = event = new CS_InternalCommandEvent();
|
|
5860
|
+
return event;
|
|
5861
|
+
}
|
|
3338
5862
|
|
|
3339
5863
|
function internalCommandTrampoline(a0: i32): void {
|
|
3340
|
-
if (internalCommandListeners.
|
|
3341
|
-
const event =
|
|
3342
|
-
|
|
3343
|
-
const
|
|
5864
|
+
if (internalCommandListeners.count == 0) return;
|
|
5865
|
+
const event = internalCommandObject();
|
|
5866
|
+
const listeners = internalCommandListeners;
|
|
5867
|
+
const n = listeners.begin();
|
|
3344
5868
|
const ambient = __co_ambient_player;
|
|
3345
5869
|
__co_ambient_player = a0;
|
|
3346
|
-
for (let i = 0; i <
|
|
5870
|
+
for (let i = 0; i < n; i++) {
|
|
5871
|
+
const listener = listeners.at(i);
|
|
5872
|
+
if (listener) listener(event);
|
|
5873
|
+
}
|
|
3347
5874
|
__co_ambient_player = ambient;
|
|
5875
|
+
listeners.end();
|
|
5876
|
+
}
|
|
5877
|
+
|
|
5878
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5879
|
+
function internalCommandDirect(): void {
|
|
5880
|
+
const listeners = internalCommandListeners;
|
|
5881
|
+
if (listeners.count == 0) return;
|
|
5882
|
+
let listener: usize = 0;
|
|
5883
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5884
|
+
const one = listeners.at(i);
|
|
5885
|
+
if (one == null) continue;
|
|
5886
|
+
listener = changetype<usize>(one);
|
|
5887
|
+
break;
|
|
5888
|
+
}
|
|
5889
|
+
__onDirect("CS_InternalCommand", internalCommandTrampoline.index, listener, listener != 0 ? changetype<usize>(internalCommandObject()) : 0, true);
|
|
3348
5890
|
}
|
|
3349
5891
|
|
|
3350
|
-
const CS_OnBuyAttemptListeners
|
|
5892
|
+
const CS_OnBuyAttemptListeners = new __Listeners<(event: CS_OnBuyAttemptEvent) => void>();
|
|
5893
|
+
let CS_OnBuyAttemptView: CS_OnBuyAttemptEvent | null = null;
|
|
5894
|
+
|
|
5895
|
+
// @ts-ignore: decorator
|
|
5896
|
+
@inline function CS_OnBuyAttemptObject(): CS_OnBuyAttemptEvent {
|
|
5897
|
+
let event = CS_OnBuyAttemptView;
|
|
5898
|
+
if (event == null) CS_OnBuyAttemptView = event = new CS_OnBuyAttemptEvent();
|
|
5899
|
+
return event;
|
|
5900
|
+
}
|
|
3351
5901
|
|
|
3352
5902
|
function CS_OnBuyAttemptTrampoline(a0: i32): void {
|
|
3353
|
-
if (CS_OnBuyAttemptListeners.
|
|
3354
|
-
const event =
|
|
3355
|
-
|
|
3356
|
-
const
|
|
5903
|
+
if (CS_OnBuyAttemptListeners.count == 0) return;
|
|
5904
|
+
const event = CS_OnBuyAttemptObject();
|
|
5905
|
+
const listeners = CS_OnBuyAttemptListeners;
|
|
5906
|
+
const n = listeners.begin();
|
|
3357
5907
|
const ambient = __co_ambient_player;
|
|
3358
5908
|
__co_ambient_player = a0;
|
|
3359
|
-
for (let i = 0; i <
|
|
5909
|
+
for (let i = 0; i < n; i++) {
|
|
5910
|
+
const listener = listeners.at(i);
|
|
5911
|
+
if (listener) listener(event);
|
|
5912
|
+
}
|
|
3360
5913
|
__co_ambient_player = ambient;
|
|
5914
|
+
listeners.end();
|
|
5915
|
+
}
|
|
5916
|
+
|
|
5917
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5918
|
+
function CS_OnBuyAttemptDirect(): void {
|
|
5919
|
+
const listeners = CS_OnBuyAttemptListeners;
|
|
5920
|
+
if (listeners.count == 0) return;
|
|
5921
|
+
let listener: usize = 0;
|
|
5922
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5923
|
+
const one = listeners.at(i);
|
|
5924
|
+
if (one == null) continue;
|
|
5925
|
+
listener = changetype<usize>(one);
|
|
5926
|
+
break;
|
|
5927
|
+
}
|
|
5928
|
+
__onDirect("CS_OnBuyAttempt", CS_OnBuyAttemptTrampoline.index, listener, listener != 0 ? changetype<usize>(CS_OnBuyAttemptObject()) : 0, true);
|
|
3361
5929
|
}
|
|
3362
5930
|
|
|
3363
|
-
const CS_OnBuyListeners
|
|
5931
|
+
const CS_OnBuyListeners = new __Listeners<(event: CS_OnBuyEvent) => void>();
|
|
5932
|
+
let CS_OnBuyView: CS_OnBuyEvent | null = null;
|
|
5933
|
+
|
|
5934
|
+
// @ts-ignore: decorator
|
|
5935
|
+
@inline function CS_OnBuyObject(): CS_OnBuyEvent {
|
|
5936
|
+
let event = CS_OnBuyView;
|
|
5937
|
+
if (event == null) CS_OnBuyView = event = new CS_OnBuyEvent();
|
|
5938
|
+
return event;
|
|
5939
|
+
}
|
|
3364
5940
|
|
|
3365
5941
|
function CS_OnBuyTrampoline(a0: i32): void {
|
|
3366
|
-
if (CS_OnBuyListeners.
|
|
3367
|
-
const event =
|
|
3368
|
-
|
|
3369
|
-
const
|
|
5942
|
+
if (CS_OnBuyListeners.count == 0) return;
|
|
5943
|
+
const event = CS_OnBuyObject();
|
|
5944
|
+
const listeners = CS_OnBuyListeners;
|
|
5945
|
+
const n = listeners.begin();
|
|
3370
5946
|
const ambient = __co_ambient_player;
|
|
3371
5947
|
__co_ambient_player = a0;
|
|
3372
|
-
for (let i = 0; i <
|
|
5948
|
+
for (let i = 0; i < n; i++) {
|
|
5949
|
+
const listener = listeners.at(i);
|
|
5950
|
+
if (listener) listener(event);
|
|
5951
|
+
}
|
|
3373
5952
|
__co_ambient_player = ambient;
|
|
5953
|
+
listeners.end();
|
|
5954
|
+
}
|
|
5955
|
+
|
|
5956
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5957
|
+
function CS_OnBuyDirect(): void {
|
|
5958
|
+
const listeners = CS_OnBuyListeners;
|
|
5959
|
+
if (listeners.count == 0) return;
|
|
5960
|
+
let listener: usize = 0;
|
|
5961
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5962
|
+
const one = listeners.at(i);
|
|
5963
|
+
if (one == null) continue;
|
|
5964
|
+
listener = changetype<usize>(one);
|
|
5965
|
+
break;
|
|
5966
|
+
}
|
|
5967
|
+
__onDirect("CS_OnBuy", CS_OnBuyTrampoline.index, listener, listener != 0 ? changetype<usize>(CS_OnBuyObject()) : 0, true);
|
|
3374
5968
|
}
|
|
3375
5969
|
|
|
3376
|
-
const frameListeners
|
|
5970
|
+
const frameListeners = new __Listeners<(event: ServerFrameEvent) => void>();
|
|
5971
|
+
let frameView: ServerFrameEvent | null = null;
|
|
5972
|
+
|
|
5973
|
+
// @ts-ignore: decorator
|
|
5974
|
+
@inline function frameObject(): ServerFrameEvent {
|
|
5975
|
+
let event = frameView;
|
|
5976
|
+
if (event == null) frameView = event = new ServerFrameEvent();
|
|
5977
|
+
return event;
|
|
5978
|
+
}
|
|
3377
5979
|
|
|
3378
5980
|
function frameTrampoline(a0: i32): void {
|
|
3379
|
-
if (frameListeners.
|
|
3380
|
-
const event =
|
|
3381
|
-
|
|
3382
|
-
const
|
|
3383
|
-
for (let i = 0; i <
|
|
5981
|
+
if (frameListeners.count == 0) return;
|
|
5982
|
+
const event = frameObject();
|
|
5983
|
+
const listeners = frameListeners;
|
|
5984
|
+
const n = listeners.begin();
|
|
5985
|
+
for (let i = 0; i < n; i++) {
|
|
5986
|
+
const listener = listeners.at(i);
|
|
5987
|
+
if (listener) listener(event);
|
|
5988
|
+
}
|
|
5989
|
+
listeners.end();
|
|
5990
|
+
}
|
|
5991
|
+
|
|
5992
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
5993
|
+
function frameDirect(): void {
|
|
5994
|
+
const listeners = frameListeners;
|
|
5995
|
+
if (listeners.count == 0) return;
|
|
5996
|
+
let listener: usize = 0;
|
|
5997
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
5998
|
+
const one = listeners.at(i);
|
|
5999
|
+
if (one == null) continue;
|
|
6000
|
+
listener = changetype<usize>(one);
|
|
6001
|
+
break;
|
|
6002
|
+
}
|
|
6003
|
+
__onDirect("server_frame", frameTrampoline.index, listener, listener != 0 ? changetype<usize>(frameObject()) : 0, false);
|
|
3384
6004
|
}
|
|
3385
6005
|
|
|
3386
|
-
const suicideListeners
|
|
6006
|
+
const suicideListeners = new __Listeners<(event: ClientKillEvent) => void>();
|
|
6007
|
+
let suicideView: ClientKillEvent | null = null;
|
|
6008
|
+
|
|
6009
|
+
// @ts-ignore: decorator
|
|
6010
|
+
@inline function suicideObject(): ClientKillEvent {
|
|
6011
|
+
let event = suicideView;
|
|
6012
|
+
if (event == null) suicideView = event = new ClientKillEvent();
|
|
6013
|
+
return event;
|
|
6014
|
+
}
|
|
3387
6015
|
|
|
3388
6016
|
function suicideTrampoline(a0: i32): void {
|
|
3389
|
-
if (suicideListeners.
|
|
3390
|
-
const event =
|
|
3391
|
-
|
|
3392
|
-
const
|
|
6017
|
+
if (suicideListeners.count == 0) return;
|
|
6018
|
+
const event = suicideObject();
|
|
6019
|
+
const listeners = suicideListeners;
|
|
6020
|
+
const n = listeners.begin();
|
|
3393
6021
|
const ambient = __co_ambient_player;
|
|
3394
6022
|
__co_ambient_player = a0;
|
|
3395
|
-
for (let i = 0; i <
|
|
6023
|
+
for (let i = 0; i < n; i++) {
|
|
6024
|
+
const listener = listeners.at(i);
|
|
6025
|
+
if (listener) listener(event);
|
|
6026
|
+
}
|
|
3396
6027
|
__co_ambient_player = ambient;
|
|
6028
|
+
listeners.end();
|
|
6029
|
+
}
|
|
6030
|
+
|
|
6031
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
6032
|
+
function suicideDirect(): void {
|
|
6033
|
+
const listeners = suicideListeners;
|
|
6034
|
+
if (listeners.count == 0) return;
|
|
6035
|
+
let listener: usize = 0;
|
|
6036
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
6037
|
+
const one = listeners.at(i);
|
|
6038
|
+
if (one == null) continue;
|
|
6039
|
+
listener = changetype<usize>(one);
|
|
6040
|
+
break;
|
|
6041
|
+
}
|
|
6042
|
+
__onDirect("client_kill", suicideTrampoline.index, listener, listener != 0 ? changetype<usize>(suicideObject()) : 0, true);
|
|
3397
6043
|
}
|
|
3398
6044
|
|
|
3399
|
-
const impulseListeners
|
|
6045
|
+
const impulseListeners = new __Listeners<(event: ClientImpulseEvent) => void>();
|
|
6046
|
+
let impulseView: ClientImpulseEvent | null = null;
|
|
6047
|
+
|
|
6048
|
+
// @ts-ignore: decorator
|
|
6049
|
+
@inline function impulseObject(): ClientImpulseEvent {
|
|
6050
|
+
let event = impulseView;
|
|
6051
|
+
if (event == null) impulseView = event = new ClientImpulseEvent();
|
|
6052
|
+
return event;
|
|
6053
|
+
}
|
|
3400
6054
|
|
|
3401
6055
|
function impulseTrampoline(a0: i32): void {
|
|
3402
|
-
if (impulseListeners.
|
|
3403
|
-
const event =
|
|
3404
|
-
|
|
3405
|
-
const
|
|
6056
|
+
if (impulseListeners.count == 0) return;
|
|
6057
|
+
const event = impulseObject();
|
|
6058
|
+
const listeners = impulseListeners;
|
|
6059
|
+
const n = listeners.begin();
|
|
3406
6060
|
const ambient = __co_ambient_player;
|
|
3407
6061
|
__co_ambient_player = a0;
|
|
3408
|
-
for (let i = 0; i <
|
|
6062
|
+
for (let i = 0; i < n; i++) {
|
|
6063
|
+
const listener = listeners.at(i);
|
|
6064
|
+
if (listener) listener(event);
|
|
6065
|
+
}
|
|
3409
6066
|
__co_ambient_player = ambient;
|
|
6067
|
+
listeners.end();
|
|
6068
|
+
}
|
|
6069
|
+
|
|
6070
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
6071
|
+
function impulseDirect(): void {
|
|
6072
|
+
const listeners = impulseListeners;
|
|
6073
|
+
if (listeners.count == 0) return;
|
|
6074
|
+
let listener: usize = 0;
|
|
6075
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
6076
|
+
const one = listeners.at(i);
|
|
6077
|
+
if (one == null) continue;
|
|
6078
|
+
listener = changetype<usize>(one);
|
|
6079
|
+
break;
|
|
6080
|
+
}
|
|
6081
|
+
__onDirect("client_impulse", impulseTrampoline.index, listener, listener != 0 ? changetype<usize>(impulseObject()) : 0, true);
|
|
3410
6082
|
}
|
|
3411
6083
|
|
|
3412
|
-
const cmdStartListeners
|
|
6084
|
+
const cmdStartListeners = new __Listeners<(event: ClientCmdStartEvent) => void>();
|
|
6085
|
+
let cmdStartView: ClientCmdStartEvent | null = null;
|
|
6086
|
+
|
|
6087
|
+
// @ts-ignore: decorator
|
|
6088
|
+
@inline function cmdStartObject(): ClientCmdStartEvent {
|
|
6089
|
+
let event = cmdStartView;
|
|
6090
|
+
if (event == null) cmdStartView = event = new ClientCmdStartEvent();
|
|
6091
|
+
return event;
|
|
6092
|
+
}
|
|
3413
6093
|
|
|
3414
6094
|
function cmdStartTrampoline(a0: i32): void {
|
|
3415
|
-
if (cmdStartListeners.
|
|
3416
|
-
const event =
|
|
3417
|
-
|
|
3418
|
-
const
|
|
6095
|
+
if (cmdStartListeners.count == 0) return;
|
|
6096
|
+
const event = cmdStartObject();
|
|
6097
|
+
const listeners = cmdStartListeners;
|
|
6098
|
+
const n = listeners.begin();
|
|
3419
6099
|
const ambient = __co_ambient_player;
|
|
3420
6100
|
__co_ambient_player = a0;
|
|
3421
|
-
for (let i = 0; i <
|
|
6101
|
+
for (let i = 0; i < n; i++) {
|
|
6102
|
+
const listener = listeners.at(i);
|
|
6103
|
+
if (listener) listener(event);
|
|
6104
|
+
}
|
|
3422
6105
|
__co_ambient_player = ambient;
|
|
6106
|
+
listeners.end();
|
|
6107
|
+
}
|
|
6108
|
+
|
|
6109
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
6110
|
+
function cmdStartDirect(): void {
|
|
6111
|
+
const listeners = cmdStartListeners;
|
|
6112
|
+
if (listeners.count == 0) return;
|
|
6113
|
+
let listener: usize = 0;
|
|
6114
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
6115
|
+
const one = listeners.at(i);
|
|
6116
|
+
if (one == null) continue;
|
|
6117
|
+
listener = changetype<usize>(one);
|
|
6118
|
+
break;
|
|
6119
|
+
}
|
|
6120
|
+
__onDirect("client_cmdStart", cmdStartTrampoline.index, listener, listener != 0 ? changetype<usize>(cmdStartObject()) : 0, true);
|
|
3423
6121
|
}
|
|
3424
6122
|
|
|
3425
|
-
const entityThinkListeners
|
|
6123
|
+
const entityThinkListeners = new __Listeners<(event: PfnThinkEvent) => void>();
|
|
6124
|
+
let entityThinkView: PfnThinkEvent | null = null;
|
|
6125
|
+
|
|
6126
|
+
// @ts-ignore: decorator
|
|
6127
|
+
@inline function entityThinkObject(): PfnThinkEvent {
|
|
6128
|
+
let event = entityThinkView;
|
|
6129
|
+
if (event == null) entityThinkView = event = new PfnThinkEvent();
|
|
6130
|
+
return event;
|
|
6131
|
+
}
|
|
3426
6132
|
|
|
3427
6133
|
function entityThinkTrampoline(a0: i32): void {
|
|
3428
|
-
if (entityThinkListeners.
|
|
3429
|
-
const event =
|
|
3430
|
-
|
|
3431
|
-
const
|
|
3432
|
-
for (let i = 0; i <
|
|
6134
|
+
if (entityThinkListeners.count == 0) return;
|
|
6135
|
+
const event = entityThinkObject();
|
|
6136
|
+
const listeners = entityThinkListeners;
|
|
6137
|
+
const n = listeners.begin();
|
|
6138
|
+
for (let i = 0; i < n; i++) {
|
|
6139
|
+
const listener = listeners.at(i);
|
|
6140
|
+
if (listener) listener(event);
|
|
6141
|
+
}
|
|
6142
|
+
listeners.end();
|
|
6143
|
+
}
|
|
6144
|
+
|
|
6145
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
6146
|
+
function entityThinkDirect(): void {
|
|
6147
|
+
const listeners = entityThinkListeners;
|
|
6148
|
+
if (listeners.count == 0) return;
|
|
6149
|
+
let listener: usize = 0;
|
|
6150
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
6151
|
+
const one = listeners.at(i);
|
|
6152
|
+
if (one == null) continue;
|
|
6153
|
+
listener = changetype<usize>(one);
|
|
6154
|
+
break;
|
|
6155
|
+
}
|
|
6156
|
+
__onDirect("pfn_think", entityThinkTrampoline.index, listener, listener != 0 ? changetype<usize>(entityThinkObject()) : 0, false);
|
|
3433
6157
|
}
|
|
3434
6158
|
|
|
3435
|
-
const playbackEventListeners
|
|
6159
|
+
const playbackEventListeners = new __Listeners<(event: PfnPlaybackeventEvent) => void>();
|
|
6160
|
+
let playbackEventView: PfnPlaybackeventEvent | null = null;
|
|
6161
|
+
|
|
6162
|
+
// @ts-ignore: decorator
|
|
6163
|
+
@inline function playbackEventObject(): PfnPlaybackeventEvent {
|
|
6164
|
+
let event = playbackEventView;
|
|
6165
|
+
if (event == null) playbackEventView = event = new PfnPlaybackeventEvent();
|
|
6166
|
+
return event;
|
|
6167
|
+
}
|
|
3436
6168
|
|
|
3437
6169
|
function playbackEventTrampoline(a0: i32): void {
|
|
3438
|
-
if (playbackEventListeners.
|
|
3439
|
-
const event =
|
|
3440
|
-
|
|
3441
|
-
const
|
|
3442
|
-
for (let i = 0; i <
|
|
6170
|
+
if (playbackEventListeners.count == 0) return;
|
|
6171
|
+
const event = playbackEventObject();
|
|
6172
|
+
const listeners = playbackEventListeners;
|
|
6173
|
+
const n = listeners.begin();
|
|
6174
|
+
for (let i = 0; i < n; i++) {
|
|
6175
|
+
const listener = listeners.at(i);
|
|
6176
|
+
if (listener) listener(event);
|
|
6177
|
+
}
|
|
6178
|
+
listeners.end();
|
|
6179
|
+
}
|
|
6180
|
+
|
|
6181
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
6182
|
+
function playbackEventDirect(): void {
|
|
6183
|
+
const listeners = playbackEventListeners;
|
|
6184
|
+
if (listeners.count == 0) return;
|
|
6185
|
+
let listener: usize = 0;
|
|
6186
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
6187
|
+
const one = listeners.at(i);
|
|
6188
|
+
if (one == null) continue;
|
|
6189
|
+
listener = changetype<usize>(one);
|
|
6190
|
+
break;
|
|
6191
|
+
}
|
|
6192
|
+
__onDirect("pfn_playbackevent", playbackEventTrampoline.index, listener, listener != 0 ? changetype<usize>(playbackEventObject()) : 0, false);
|
|
3443
6193
|
}
|
|
3444
6194
|
|
|
3445
|
-
const keyValueListeners
|
|
6195
|
+
const keyValueListeners = new __Listeners<(event: PfnKeyvalueEvent) => void>();
|
|
6196
|
+
let keyValueView: PfnKeyvalueEvent | null = null;
|
|
6197
|
+
|
|
6198
|
+
// @ts-ignore: decorator
|
|
6199
|
+
@inline function keyValueObject(): PfnKeyvalueEvent {
|
|
6200
|
+
let event = keyValueView;
|
|
6201
|
+
if (event == null) keyValueView = event = new PfnKeyvalueEvent();
|
|
6202
|
+
return event;
|
|
6203
|
+
}
|
|
3446
6204
|
|
|
3447
6205
|
function keyValueTrampoline(a0: i32): void {
|
|
3448
|
-
if (keyValueListeners.
|
|
3449
|
-
const event =
|
|
3450
|
-
|
|
3451
|
-
const
|
|
3452
|
-
for (let i = 0; i <
|
|
6206
|
+
if (keyValueListeners.count == 0) return;
|
|
6207
|
+
const event = keyValueObject();
|
|
6208
|
+
const listeners = keyValueListeners;
|
|
6209
|
+
const n = listeners.begin();
|
|
6210
|
+
for (let i = 0; i < n; i++) {
|
|
6211
|
+
const listener = listeners.at(i);
|
|
6212
|
+
if (listener) listener(event);
|
|
6213
|
+
}
|
|
6214
|
+
listeners.end();
|
|
6215
|
+
}
|
|
6216
|
+
|
|
6217
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
6218
|
+
function keyValueDirect(): void {
|
|
6219
|
+
const listeners = keyValueListeners;
|
|
6220
|
+
if (listeners.count == 0) return;
|
|
6221
|
+
let listener: usize = 0;
|
|
6222
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
6223
|
+
const one = listeners.at(i);
|
|
6224
|
+
if (one == null) continue;
|
|
6225
|
+
listener = changetype<usize>(one);
|
|
6226
|
+
break;
|
|
6227
|
+
}
|
|
6228
|
+
__onDirect("pfn_keyvalue", keyValueTrampoline.index, listener, listener != 0 ? changetype<usize>(keyValueObject()) : 0, false);
|
|
3453
6229
|
}
|
|
3454
6230
|
|
|
3455
|
-
const entitySpawnListeners
|
|
6231
|
+
const entitySpawnListeners = new __Listeners<(event: PfnSpawnEvent) => void>();
|
|
6232
|
+
let entitySpawnView: PfnSpawnEvent | null = null;
|
|
6233
|
+
|
|
6234
|
+
// @ts-ignore: decorator
|
|
6235
|
+
@inline function entitySpawnObject(): PfnSpawnEvent {
|
|
6236
|
+
let event = entitySpawnView;
|
|
6237
|
+
if (event == null) entitySpawnView = event = new PfnSpawnEvent();
|
|
6238
|
+
return event;
|
|
6239
|
+
}
|
|
3456
6240
|
|
|
3457
6241
|
function entitySpawnTrampoline(a0: i32): void {
|
|
3458
|
-
if (entitySpawnListeners.
|
|
3459
|
-
const event =
|
|
3460
|
-
|
|
3461
|
-
const
|
|
3462
|
-
for (let i = 0; i <
|
|
6242
|
+
if (entitySpawnListeners.count == 0) return;
|
|
6243
|
+
const event = entitySpawnObject();
|
|
6244
|
+
const listeners = entitySpawnListeners;
|
|
6245
|
+
const n = listeners.begin();
|
|
6246
|
+
for (let i = 0; i < n; i++) {
|
|
6247
|
+
const listener = listeners.at(i);
|
|
6248
|
+
if (listener) listener(event);
|
|
6249
|
+
}
|
|
6250
|
+
listeners.end();
|
|
6251
|
+
}
|
|
6252
|
+
|
|
6253
|
+
/** The one listener of the event is called by the module itself; with more, the trampoline walks them. */
|
|
6254
|
+
function entitySpawnDirect(): void {
|
|
6255
|
+
const listeners = entitySpawnListeners;
|
|
6256
|
+
if (listeners.count == 0) return;
|
|
6257
|
+
let listener: usize = 0;
|
|
6258
|
+
for (let i = 0; i < listeners.slots && listeners.count == 1; i++) {
|
|
6259
|
+
const one = listeners.at(i);
|
|
6260
|
+
if (one == null) continue;
|
|
6261
|
+
listener = changetype<usize>(one);
|
|
6262
|
+
break;
|
|
6263
|
+
}
|
|
6264
|
+
__onDirect("pfn_spawn", entitySpawnTrampoline.index, listener, listener != 0 ? changetype<usize>(entitySpawnObject()) : 0, false);
|
|
3463
6265
|
}
|
|
3464
6266
|
|
|
3465
6267
|
/** Adds a listener for the event E - server.addEventListener's hood. */
|
|
3466
6268
|
export function addServerListener<E>(listener: (event: E) => void): void {
|
|
3467
6269
|
if (idof<E>() == idof<PluginInitEvent>()) {
|
|
3468
|
-
if (initListeners.
|
|
6270
|
+
if (initListeners.count == 0) _on("plugin_init", initTrampoline.index, 0);
|
|
3469
6271
|
initListeners.push(changetype<(event: PluginInitEvent) => void>(listener));
|
|
3470
|
-
|
|
3471
|
-
}
|
|
3472
|
-
if (idof<E>() == idof<PluginPauseEvent>()) {
|
|
3473
|
-
if (pauseListeners.length == 0) _on("plugin_pause", pauseTrampoline.index, 0);
|
|
3474
|
-
pauseListeners.push(changetype<(event: PluginPauseEvent) => void>(listener));
|
|
3475
|
-
return;
|
|
3476
|
-
}
|
|
3477
|
-
if (idof<E>() == idof<PluginUnpauseEvent>()) {
|
|
3478
|
-
if (unpauseListeners.length == 0) _on("plugin_unpause", unpauseTrampoline.index, 0);
|
|
3479
|
-
unpauseListeners.push(changetype<(event: PluginUnpauseEvent) => void>(listener));
|
|
6272
|
+
initDirect();
|
|
3480
6273
|
return;
|
|
3481
6274
|
}
|
|
3482
6275
|
if (idof<E>() == idof<ServerChangelevelEvent>()) {
|
|
3483
|
-
if (changeLevelListeners.
|
|
6276
|
+
if (changeLevelListeners.count == 0) _on("server_changelevel", changeLevelTrampoline.index, 0);
|
|
3484
6277
|
changeLevelListeners.push(changetype<(event: ServerChangelevelEvent) => void>(listener));
|
|
6278
|
+
changeLevelDirect();
|
|
3485
6279
|
return;
|
|
3486
6280
|
}
|
|
3487
6281
|
if (idof<E>() == idof<PluginCfgEvent>()) {
|
|
3488
|
-
if (pluginsLoadedListeners.
|
|
6282
|
+
if (pluginsLoadedListeners.count == 0) _on("plugin_cfg", pluginsLoadedTrampoline.index, 0);
|
|
3489
6283
|
pluginsLoadedListeners.push(changetype<(event: PluginCfgEvent) => void>(listener));
|
|
6284
|
+
pluginsLoadedDirect();
|
|
3490
6285
|
return;
|
|
3491
6286
|
}
|
|
3492
6287
|
if (idof<E>() == idof<PluginEndEvent>()) {
|
|
3493
|
-
if (endListeners.
|
|
6288
|
+
if (endListeners.count == 0) _on("plugin_end", endTrampoline.index, 0);
|
|
3494
6289
|
endListeners.push(changetype<(event: PluginEndEvent) => void>(listener));
|
|
6290
|
+
endDirect();
|
|
3495
6291
|
return;
|
|
3496
6292
|
}
|
|
3497
6293
|
if (idof<E>() == idof<PluginLogEvent>()) {
|
|
3498
|
-
if (logListeners.
|
|
6294
|
+
if (logListeners.count == 0) _on("plugin_log", logTrampoline.index, 0);
|
|
3499
6295
|
logListeners.push(changetype<(event: PluginLogEvent) => void>(listener));
|
|
6296
|
+
logDirect();
|
|
3500
6297
|
return;
|
|
3501
6298
|
}
|
|
3502
6299
|
if (idof<E>() == idof<PluginPrecacheEvent>()) {
|
|
3503
|
-
if (precacheListeners.
|
|
6300
|
+
if (precacheListeners.count == 0) _on("plugin_precache", precacheTrampoline.index, 0);
|
|
3504
6301
|
precacheListeners.push(changetype<(event: PluginPrecacheEvent) => void>(listener));
|
|
6302
|
+
precacheDirect();
|
|
3505
6303
|
return;
|
|
3506
6304
|
}
|
|
3507
6305
|
if (idof<E>() == idof<ClientInfochangedEvent>()) {
|
|
3508
|
-
if (clientInfochangedListeners.
|
|
6306
|
+
if (clientInfochangedListeners.count == 0) _on("client_infochanged", clientInfochangedTrampoline.index, 0);
|
|
3509
6307
|
clientInfochangedListeners.push(changetype<(event: ClientInfochangedEvent) => void>(listener));
|
|
6308
|
+
clientInfochangedDirect();
|
|
3510
6309
|
return;
|
|
3511
6310
|
}
|
|
3512
6311
|
if (idof<E>() == idof<ClientConnectEvent>()) {
|
|
3513
|
-
if (connectListeners.
|
|
6312
|
+
if (connectListeners.count == 0) _on("client_connect", connectTrampoline.index, 0);
|
|
3514
6313
|
connectListeners.push(changetype<(event: ClientConnectEvent) => void>(listener));
|
|
6314
|
+
connectDirect();
|
|
3515
6315
|
return;
|
|
3516
6316
|
}
|
|
3517
6317
|
if (idof<E>() == idof<ClientConnectexEvent>()) {
|
|
3518
|
-
if (connectAttemptListeners.
|
|
6318
|
+
if (connectAttemptListeners.count == 0) _on("client_connectex", connectAttemptTrampoline.index, 0);
|
|
3519
6319
|
connectAttemptListeners.push(changetype<(event: ClientConnectexEvent) => void>(listener));
|
|
6320
|
+
connectAttemptDirect();
|
|
3520
6321
|
return;
|
|
3521
6322
|
}
|
|
3522
6323
|
if (idof<E>() == idof<ClientAuthorizedEvent>()) {
|
|
3523
|
-
if (authorizedListeners.
|
|
6324
|
+
if (authorizedListeners.count == 0) _on("client_authorized", authorizedTrampoline.index, 0);
|
|
3524
6325
|
authorizedListeners.push(changetype<(event: ClientAuthorizedEvent) => void>(listener));
|
|
6326
|
+
authorizedDirect();
|
|
3525
6327
|
return;
|
|
3526
6328
|
}
|
|
3527
6329
|
if (idof<E>() == idof<ClientDisconnectedEvent>()) {
|
|
3528
|
-
if (disconnectedListeners.
|
|
6330
|
+
if (disconnectedListeners.count == 0) _on("client_disconnected", disconnectedTrampoline.index, 0);
|
|
3529
6331
|
disconnectedListeners.push(changetype<(event: ClientDisconnectedEvent) => void>(listener));
|
|
6332
|
+
disconnectedDirect();
|
|
3530
6333
|
return;
|
|
3531
6334
|
}
|
|
3532
6335
|
if (idof<E>() == idof<ClientRemoveEvent>()) {
|
|
3533
|
-
if (removeListeners.
|
|
6336
|
+
if (removeListeners.count == 0) _on("client_remove", removeTrampoline.index, 0);
|
|
3534
6337
|
removeListeners.push(changetype<(event: ClientRemoveEvent) => void>(listener));
|
|
6338
|
+
removeDirect();
|
|
3535
6339
|
return;
|
|
3536
6340
|
}
|
|
3537
6341
|
if (idof<E>() == idof<ClientCommandEvent>()) {
|
|
3538
|
-
if (commandListeners.
|
|
6342
|
+
if (commandListeners.count == 0) _on("client_command", commandTrampoline.index, 0);
|
|
3539
6343
|
commandListeners.push(changetype<(event: ClientCommandEvent) => void>(listener));
|
|
6344
|
+
commandDirect();
|
|
3540
6345
|
return;
|
|
3541
6346
|
}
|
|
3542
6347
|
if (idof<E>() == idof<ClientPutinserverEvent>()) {
|
|
3543
|
-
if (putInServerListeners.
|
|
6348
|
+
if (putInServerListeners.count == 0) _on("client_putinserver", putInServerTrampoline.index, 0);
|
|
3544
6349
|
putInServerListeners.push(changetype<(event: ClientPutinserverEvent) => void>(listener));
|
|
6350
|
+
putInServerDirect();
|
|
3545
6351
|
return;
|
|
3546
6352
|
}
|
|
3547
6353
|
if (idof<E>() == idof<InconsistentFileEvent>()) {
|
|
3548
|
-
if (inconsistentFileListeners.
|
|
6354
|
+
if (inconsistentFileListeners.count == 0) _on("inconsistent_file", inconsistentFileTrampoline.index, 0);
|
|
3549
6355
|
inconsistentFileListeners.push(changetype<(event: InconsistentFileEvent) => void>(listener));
|
|
3550
|
-
|
|
3551
|
-
}
|
|
3552
|
-
if (idof<E>() == idof<PluginModulesEvent>()) {
|
|
3553
|
-
if (modulesListeners.length == 0) _on("plugin_modules", modulesTrampoline.index, 0);
|
|
3554
|
-
modulesListeners.push(changetype<(event: PluginModulesEvent) => void>(listener));
|
|
6356
|
+
inconsistentFileDirect();
|
|
3555
6357
|
return;
|
|
3556
6358
|
}
|
|
3557
6359
|
if (idof<E>() == idof<OnConfigsExecutedEvent>()) {
|
|
3558
|
-
if (configsExecutedListeners.
|
|
6360
|
+
if (configsExecutedListeners.count == 0) _on("OnConfigsExecuted", configsExecutedTrampoline.index, 0);
|
|
3559
6361
|
configsExecutedListeners.push(changetype<(event: OnConfigsExecutedEvent) => void>(listener));
|
|
6362
|
+
configsExecutedDirect();
|
|
3560
6363
|
return;
|
|
3561
6364
|
}
|
|
3562
6365
|
if (idof<E>() == idof<OnAutoConfigsBufferedEvent>()) {
|
|
3563
|
-
if (configsQueuedListeners.
|
|
6366
|
+
if (configsQueuedListeners.count == 0) _on("OnAutoConfigsBuffered", configsQueuedTrampoline.index, 0);
|
|
3564
6367
|
configsQueuedListeners.push(changetype<(event: OnAutoConfigsBufferedEvent) => void>(listener));
|
|
6368
|
+
configsQueuedDirect();
|
|
3565
6369
|
return;
|
|
3566
6370
|
}
|
|
3567
6371
|
if (idof<E>() == idof<CS_InternalCommandEvent>()) {
|
|
3568
|
-
if (internalCommandListeners.
|
|
6372
|
+
if (internalCommandListeners.count == 0) _on("CS_InternalCommand", internalCommandTrampoline.index, 0);
|
|
3569
6373
|
internalCommandListeners.push(changetype<(event: CS_InternalCommandEvent) => void>(listener));
|
|
6374
|
+
internalCommandDirect();
|
|
3570
6375
|
return;
|
|
3571
6376
|
}
|
|
3572
6377
|
if (idof<E>() == idof<CS_OnBuyAttemptEvent>()) {
|
|
3573
|
-
if (CS_OnBuyAttemptListeners.
|
|
6378
|
+
if (CS_OnBuyAttemptListeners.count == 0) _on("CS_OnBuyAttempt", CS_OnBuyAttemptTrampoline.index, 0);
|
|
3574
6379
|
CS_OnBuyAttemptListeners.push(changetype<(event: CS_OnBuyAttemptEvent) => void>(listener));
|
|
6380
|
+
CS_OnBuyAttemptDirect();
|
|
3575
6381
|
return;
|
|
3576
6382
|
}
|
|
3577
6383
|
if (idof<E>() == idof<CS_OnBuyEvent>()) {
|
|
3578
|
-
if (CS_OnBuyListeners.
|
|
6384
|
+
if (CS_OnBuyListeners.count == 0) _on("CS_OnBuy", CS_OnBuyTrampoline.index, 0);
|
|
3579
6385
|
CS_OnBuyListeners.push(changetype<(event: CS_OnBuyEvent) => void>(listener));
|
|
6386
|
+
CS_OnBuyDirect();
|
|
3580
6387
|
return;
|
|
3581
6388
|
}
|
|
3582
6389
|
if (idof<E>() == idof<ServerFrameEvent>()) {
|
|
3583
|
-
if (frameListeners.
|
|
6390
|
+
if (frameListeners.count == 0) _on("server_frame", frameTrampoline.index, 0);
|
|
3584
6391
|
frameListeners.push(changetype<(event: ServerFrameEvent) => void>(listener));
|
|
6392
|
+
frameDirect();
|
|
3585
6393
|
return;
|
|
3586
6394
|
}
|
|
3587
6395
|
if (idof<E>() == idof<ClientKillEvent>()) {
|
|
3588
|
-
if (suicideListeners.
|
|
6396
|
+
if (suicideListeners.count == 0) _on("client_kill", suicideTrampoline.index, 0);
|
|
3589
6397
|
suicideListeners.push(changetype<(event: ClientKillEvent) => void>(listener));
|
|
6398
|
+
suicideDirect();
|
|
3590
6399
|
return;
|
|
3591
6400
|
}
|
|
3592
6401
|
if (idof<E>() == idof<ClientImpulseEvent>()) {
|
|
3593
|
-
if (impulseListeners.
|
|
6402
|
+
if (impulseListeners.count == 0) _on("client_impulse", impulseTrampoline.index, 0);
|
|
3594
6403
|
impulseListeners.push(changetype<(event: ClientImpulseEvent) => void>(listener));
|
|
6404
|
+
impulseDirect();
|
|
3595
6405
|
return;
|
|
3596
6406
|
}
|
|
3597
6407
|
if (idof<E>() == idof<ClientCmdStartEvent>()) {
|
|
3598
|
-
if (cmdStartListeners.
|
|
6408
|
+
if (cmdStartListeners.count == 0) _on("client_cmdStart", cmdStartTrampoline.index, 0);
|
|
3599
6409
|
cmdStartListeners.push(changetype<(event: ClientCmdStartEvent) => void>(listener));
|
|
6410
|
+
cmdStartDirect();
|
|
3600
6411
|
return;
|
|
3601
6412
|
}
|
|
3602
6413
|
if (idof<E>() == idof<PfnThinkEvent>()) {
|
|
3603
|
-
if (entityThinkListeners.
|
|
6414
|
+
if (entityThinkListeners.count == 0) _on("pfn_think", entityThinkTrampoline.index, 0);
|
|
3604
6415
|
entityThinkListeners.push(changetype<(event: PfnThinkEvent) => void>(listener));
|
|
6416
|
+
entityThinkDirect();
|
|
3605
6417
|
return;
|
|
3606
6418
|
}
|
|
3607
6419
|
if (idof<E>() == idof<PfnPlaybackeventEvent>()) {
|
|
3608
|
-
if (playbackEventListeners.
|
|
6420
|
+
if (playbackEventListeners.count == 0) _on("pfn_playbackevent", playbackEventTrampoline.index, 0);
|
|
3609
6421
|
playbackEventListeners.push(changetype<(event: PfnPlaybackeventEvent) => void>(listener));
|
|
6422
|
+
playbackEventDirect();
|
|
3610
6423
|
return;
|
|
3611
6424
|
}
|
|
3612
6425
|
if (idof<E>() == idof<PfnKeyvalueEvent>()) {
|
|
3613
|
-
if (keyValueListeners.
|
|
6426
|
+
if (keyValueListeners.count == 0) _on("pfn_keyvalue", keyValueTrampoline.index, 0);
|
|
3614
6427
|
keyValueListeners.push(changetype<(event: PfnKeyvalueEvent) => void>(listener));
|
|
6428
|
+
keyValueDirect();
|
|
3615
6429
|
return;
|
|
3616
6430
|
}
|
|
3617
6431
|
if (idof<E>() == idof<PfnSpawnEvent>()) {
|
|
3618
|
-
if (entitySpawnListeners.
|
|
6432
|
+
if (entitySpawnListeners.count == 0) _on("pfn_spawn", entitySpawnTrampoline.index, 0);
|
|
3619
6433
|
entitySpawnListeners.push(changetype<(event: PfnSpawnEvent) => void>(listener));
|
|
6434
|
+
entitySpawnDirect();
|
|
3620
6435
|
return;
|
|
3621
6436
|
}
|
|
3622
6437
|
}
|
|
@@ -3624,220 +6439,171 @@ export function addServerListener<E>(listener: (event: E) => void): void {
|
|
|
3624
6439
|
/** Takes a listener off again - server.removeEventListener's hood. */
|
|
3625
6440
|
export function removeServerListener<E>(listener: (event: E) => void): void {
|
|
3626
6441
|
if (idof<E>() == idof<PluginInitEvent>()) {
|
|
3627
|
-
|
|
3628
|
-
if (
|
|
3629
|
-
|
|
3630
|
-
if (initListeners.length == 0) __off("plugin_init", initTrampoline.index);
|
|
3631
|
-
return;
|
|
3632
|
-
}
|
|
3633
|
-
if (idof<E>() == idof<PluginPauseEvent>()) {
|
|
3634
|
-
const at = pauseListeners.indexOf(changetype<(event: PluginPauseEvent) => void>(listener));
|
|
3635
|
-
if (at < 0) return;
|
|
3636
|
-
pauseListeners.splice(at, 1);
|
|
3637
|
-
if (pauseListeners.length == 0) __off("plugin_pause", pauseTrampoline.index);
|
|
3638
|
-
return;
|
|
3639
|
-
}
|
|
3640
|
-
if (idof<E>() == idof<PluginUnpauseEvent>()) {
|
|
3641
|
-
const at = unpauseListeners.indexOf(changetype<(event: PluginUnpauseEvent) => void>(listener));
|
|
3642
|
-
if (at < 0) return;
|
|
3643
|
-
unpauseListeners.splice(at, 1);
|
|
3644
|
-
if (unpauseListeners.length == 0) __off("plugin_unpause", unpauseTrampoline.index);
|
|
6442
|
+
if (!initListeners.remove(changetype<(event: PluginInitEvent) => void>(listener))) return;
|
|
6443
|
+
if (initListeners.count == 0) __off("plugin_init", initTrampoline.index);
|
|
6444
|
+
initDirect();
|
|
3645
6445
|
return;
|
|
3646
6446
|
}
|
|
3647
6447
|
if (idof<E>() == idof<ServerChangelevelEvent>()) {
|
|
3648
|
-
|
|
3649
|
-
if (
|
|
3650
|
-
|
|
3651
|
-
if (changeLevelListeners.length == 0) __off("server_changelevel", changeLevelTrampoline.index);
|
|
6448
|
+
if (!changeLevelListeners.remove(changetype<(event: ServerChangelevelEvent) => void>(listener))) return;
|
|
6449
|
+
if (changeLevelListeners.count == 0) __off("server_changelevel", changeLevelTrampoline.index);
|
|
6450
|
+
changeLevelDirect();
|
|
3652
6451
|
return;
|
|
3653
6452
|
}
|
|
3654
6453
|
if (idof<E>() == idof<PluginCfgEvent>()) {
|
|
3655
|
-
|
|
3656
|
-
if (
|
|
3657
|
-
|
|
3658
|
-
if (pluginsLoadedListeners.length == 0) __off("plugin_cfg", pluginsLoadedTrampoline.index);
|
|
6454
|
+
if (!pluginsLoadedListeners.remove(changetype<(event: PluginCfgEvent) => void>(listener))) return;
|
|
6455
|
+
if (pluginsLoadedListeners.count == 0) __off("plugin_cfg", pluginsLoadedTrampoline.index);
|
|
6456
|
+
pluginsLoadedDirect();
|
|
3659
6457
|
return;
|
|
3660
6458
|
}
|
|
3661
6459
|
if (idof<E>() == idof<PluginEndEvent>()) {
|
|
3662
|
-
|
|
3663
|
-
if (
|
|
3664
|
-
|
|
3665
|
-
if (endListeners.length == 0) __off("plugin_end", endTrampoline.index);
|
|
6460
|
+
if (!endListeners.remove(changetype<(event: PluginEndEvent) => void>(listener))) return;
|
|
6461
|
+
if (endListeners.count == 0) __off("plugin_end", endTrampoline.index);
|
|
6462
|
+
endDirect();
|
|
3666
6463
|
return;
|
|
3667
6464
|
}
|
|
3668
6465
|
if (idof<E>() == idof<PluginLogEvent>()) {
|
|
3669
|
-
|
|
3670
|
-
if (
|
|
3671
|
-
|
|
3672
|
-
if (logListeners.length == 0) __off("plugin_log", logTrampoline.index);
|
|
6466
|
+
if (!logListeners.remove(changetype<(event: PluginLogEvent) => void>(listener))) return;
|
|
6467
|
+
if (logListeners.count == 0) __off("plugin_log", logTrampoline.index);
|
|
6468
|
+
logDirect();
|
|
3673
6469
|
return;
|
|
3674
6470
|
}
|
|
3675
6471
|
if (idof<E>() == idof<PluginPrecacheEvent>()) {
|
|
3676
|
-
|
|
3677
|
-
if (
|
|
3678
|
-
|
|
3679
|
-
if (precacheListeners.length == 0) __off("plugin_precache", precacheTrampoline.index);
|
|
6472
|
+
if (!precacheListeners.remove(changetype<(event: PluginPrecacheEvent) => void>(listener))) return;
|
|
6473
|
+
if (precacheListeners.count == 0) __off("plugin_precache", precacheTrampoline.index);
|
|
6474
|
+
precacheDirect();
|
|
3680
6475
|
return;
|
|
3681
6476
|
}
|
|
3682
6477
|
if (idof<E>() == idof<ClientInfochangedEvent>()) {
|
|
3683
|
-
|
|
3684
|
-
if (
|
|
3685
|
-
|
|
3686
|
-
if (clientInfochangedListeners.length == 0) __off("client_infochanged", clientInfochangedTrampoline.index);
|
|
6478
|
+
if (!clientInfochangedListeners.remove(changetype<(event: ClientInfochangedEvent) => void>(listener))) return;
|
|
6479
|
+
if (clientInfochangedListeners.count == 0) __off("client_infochanged", clientInfochangedTrampoline.index);
|
|
6480
|
+
clientInfochangedDirect();
|
|
3687
6481
|
return;
|
|
3688
6482
|
}
|
|
3689
6483
|
if (idof<E>() == idof<ClientConnectEvent>()) {
|
|
3690
|
-
|
|
3691
|
-
if (
|
|
3692
|
-
|
|
3693
|
-
if (connectListeners.length == 0) __off("client_connect", connectTrampoline.index);
|
|
6484
|
+
if (!connectListeners.remove(changetype<(event: ClientConnectEvent) => void>(listener))) return;
|
|
6485
|
+
if (connectListeners.count == 0) __off("client_connect", connectTrampoline.index);
|
|
6486
|
+
connectDirect();
|
|
3694
6487
|
return;
|
|
3695
6488
|
}
|
|
3696
6489
|
if (idof<E>() == idof<ClientConnectexEvent>()) {
|
|
3697
|
-
|
|
3698
|
-
if (
|
|
3699
|
-
|
|
3700
|
-
if (connectAttemptListeners.length == 0) __off("client_connectex", connectAttemptTrampoline.index);
|
|
6490
|
+
if (!connectAttemptListeners.remove(changetype<(event: ClientConnectexEvent) => void>(listener))) return;
|
|
6491
|
+
if (connectAttemptListeners.count == 0) __off("client_connectex", connectAttemptTrampoline.index);
|
|
6492
|
+
connectAttemptDirect();
|
|
3701
6493
|
return;
|
|
3702
6494
|
}
|
|
3703
6495
|
if (idof<E>() == idof<ClientAuthorizedEvent>()) {
|
|
3704
|
-
|
|
3705
|
-
if (
|
|
3706
|
-
|
|
3707
|
-
if (authorizedListeners.length == 0) __off("client_authorized", authorizedTrampoline.index);
|
|
6496
|
+
if (!authorizedListeners.remove(changetype<(event: ClientAuthorizedEvent) => void>(listener))) return;
|
|
6497
|
+
if (authorizedListeners.count == 0) __off("client_authorized", authorizedTrampoline.index);
|
|
6498
|
+
authorizedDirect();
|
|
3708
6499
|
return;
|
|
3709
6500
|
}
|
|
3710
6501
|
if (idof<E>() == idof<ClientDisconnectedEvent>()) {
|
|
3711
|
-
|
|
3712
|
-
if (
|
|
3713
|
-
|
|
3714
|
-
if (disconnectedListeners.length == 0) __off("client_disconnected", disconnectedTrampoline.index);
|
|
6502
|
+
if (!disconnectedListeners.remove(changetype<(event: ClientDisconnectedEvent) => void>(listener))) return;
|
|
6503
|
+
if (disconnectedListeners.count == 0) __off("client_disconnected", disconnectedTrampoline.index);
|
|
6504
|
+
disconnectedDirect();
|
|
3715
6505
|
return;
|
|
3716
6506
|
}
|
|
3717
6507
|
if (idof<E>() == idof<ClientRemoveEvent>()) {
|
|
3718
|
-
|
|
3719
|
-
if (
|
|
3720
|
-
|
|
3721
|
-
if (removeListeners.length == 0) __off("client_remove", removeTrampoline.index);
|
|
6508
|
+
if (!removeListeners.remove(changetype<(event: ClientRemoveEvent) => void>(listener))) return;
|
|
6509
|
+
if (removeListeners.count == 0) __off("client_remove", removeTrampoline.index);
|
|
6510
|
+
removeDirect();
|
|
3722
6511
|
return;
|
|
3723
6512
|
}
|
|
3724
6513
|
if (idof<E>() == idof<ClientCommandEvent>()) {
|
|
3725
|
-
|
|
3726
|
-
if (
|
|
3727
|
-
|
|
3728
|
-
if (commandListeners.length == 0) __off("client_command", commandTrampoline.index);
|
|
6514
|
+
if (!commandListeners.remove(changetype<(event: ClientCommandEvent) => void>(listener))) return;
|
|
6515
|
+
if (commandListeners.count == 0) __off("client_command", commandTrampoline.index);
|
|
6516
|
+
commandDirect();
|
|
3729
6517
|
return;
|
|
3730
6518
|
}
|
|
3731
6519
|
if (idof<E>() == idof<ClientPutinserverEvent>()) {
|
|
3732
|
-
|
|
3733
|
-
if (
|
|
3734
|
-
|
|
3735
|
-
if (putInServerListeners.length == 0) __off("client_putinserver", putInServerTrampoline.index);
|
|
6520
|
+
if (!putInServerListeners.remove(changetype<(event: ClientPutinserverEvent) => void>(listener))) return;
|
|
6521
|
+
if (putInServerListeners.count == 0) __off("client_putinserver", putInServerTrampoline.index);
|
|
6522
|
+
putInServerDirect();
|
|
3736
6523
|
return;
|
|
3737
6524
|
}
|
|
3738
6525
|
if (idof<E>() == idof<InconsistentFileEvent>()) {
|
|
3739
|
-
|
|
3740
|
-
if (
|
|
3741
|
-
|
|
3742
|
-
if (inconsistentFileListeners.length == 0) __off("inconsistent_file", inconsistentFileTrampoline.index);
|
|
3743
|
-
return;
|
|
3744
|
-
}
|
|
3745
|
-
if (idof<E>() == idof<PluginModulesEvent>()) {
|
|
3746
|
-
const at = modulesListeners.indexOf(changetype<(event: PluginModulesEvent) => void>(listener));
|
|
3747
|
-
if (at < 0) return;
|
|
3748
|
-
modulesListeners.splice(at, 1);
|
|
3749
|
-
if (modulesListeners.length == 0) __off("plugin_modules", modulesTrampoline.index);
|
|
6526
|
+
if (!inconsistentFileListeners.remove(changetype<(event: InconsistentFileEvent) => void>(listener))) return;
|
|
6527
|
+
if (inconsistentFileListeners.count == 0) __off("inconsistent_file", inconsistentFileTrampoline.index);
|
|
6528
|
+
inconsistentFileDirect();
|
|
3750
6529
|
return;
|
|
3751
6530
|
}
|
|
3752
6531
|
if (idof<E>() == idof<OnConfigsExecutedEvent>()) {
|
|
3753
|
-
|
|
3754
|
-
if (
|
|
3755
|
-
|
|
3756
|
-
if (configsExecutedListeners.length == 0) __off("OnConfigsExecuted", configsExecutedTrampoline.index);
|
|
6532
|
+
if (!configsExecutedListeners.remove(changetype<(event: OnConfigsExecutedEvent) => void>(listener))) return;
|
|
6533
|
+
if (configsExecutedListeners.count == 0) __off("OnConfigsExecuted", configsExecutedTrampoline.index);
|
|
6534
|
+
configsExecutedDirect();
|
|
3757
6535
|
return;
|
|
3758
6536
|
}
|
|
3759
6537
|
if (idof<E>() == idof<OnAutoConfigsBufferedEvent>()) {
|
|
3760
|
-
|
|
3761
|
-
if (
|
|
3762
|
-
|
|
3763
|
-
if (configsQueuedListeners.length == 0) __off("OnAutoConfigsBuffered", configsQueuedTrampoline.index);
|
|
6538
|
+
if (!configsQueuedListeners.remove(changetype<(event: OnAutoConfigsBufferedEvent) => void>(listener))) return;
|
|
6539
|
+
if (configsQueuedListeners.count == 0) __off("OnAutoConfigsBuffered", configsQueuedTrampoline.index);
|
|
6540
|
+
configsQueuedDirect();
|
|
3764
6541
|
return;
|
|
3765
6542
|
}
|
|
3766
6543
|
if (idof<E>() == idof<CS_InternalCommandEvent>()) {
|
|
3767
|
-
|
|
3768
|
-
if (
|
|
3769
|
-
|
|
3770
|
-
if (internalCommandListeners.length == 0) __off("CS_InternalCommand", internalCommandTrampoline.index);
|
|
6544
|
+
if (!internalCommandListeners.remove(changetype<(event: CS_InternalCommandEvent) => void>(listener))) return;
|
|
6545
|
+
if (internalCommandListeners.count == 0) __off("CS_InternalCommand", internalCommandTrampoline.index);
|
|
6546
|
+
internalCommandDirect();
|
|
3771
6547
|
return;
|
|
3772
6548
|
}
|
|
3773
6549
|
if (idof<E>() == idof<CS_OnBuyAttemptEvent>()) {
|
|
3774
|
-
|
|
3775
|
-
if (
|
|
3776
|
-
|
|
3777
|
-
if (CS_OnBuyAttemptListeners.length == 0) __off("CS_OnBuyAttempt", CS_OnBuyAttemptTrampoline.index);
|
|
6550
|
+
if (!CS_OnBuyAttemptListeners.remove(changetype<(event: CS_OnBuyAttemptEvent) => void>(listener))) return;
|
|
6551
|
+
if (CS_OnBuyAttemptListeners.count == 0) __off("CS_OnBuyAttempt", CS_OnBuyAttemptTrampoline.index);
|
|
6552
|
+
CS_OnBuyAttemptDirect();
|
|
3778
6553
|
return;
|
|
3779
6554
|
}
|
|
3780
6555
|
if (idof<E>() == idof<CS_OnBuyEvent>()) {
|
|
3781
|
-
|
|
3782
|
-
if (
|
|
3783
|
-
|
|
3784
|
-
if (CS_OnBuyListeners.length == 0) __off("CS_OnBuy", CS_OnBuyTrampoline.index);
|
|
6556
|
+
if (!CS_OnBuyListeners.remove(changetype<(event: CS_OnBuyEvent) => void>(listener))) return;
|
|
6557
|
+
if (CS_OnBuyListeners.count == 0) __off("CS_OnBuy", CS_OnBuyTrampoline.index);
|
|
6558
|
+
CS_OnBuyDirect();
|
|
3785
6559
|
return;
|
|
3786
6560
|
}
|
|
3787
6561
|
if (idof<E>() == idof<ServerFrameEvent>()) {
|
|
3788
|
-
|
|
3789
|
-
if (
|
|
3790
|
-
|
|
3791
|
-
if (frameListeners.length == 0) __off("server_frame", frameTrampoline.index);
|
|
6562
|
+
if (!frameListeners.remove(changetype<(event: ServerFrameEvent) => void>(listener))) return;
|
|
6563
|
+
if (frameListeners.count == 0) __off("server_frame", frameTrampoline.index);
|
|
6564
|
+
frameDirect();
|
|
3792
6565
|
return;
|
|
3793
6566
|
}
|
|
3794
6567
|
if (idof<E>() == idof<ClientKillEvent>()) {
|
|
3795
|
-
|
|
3796
|
-
if (
|
|
3797
|
-
|
|
3798
|
-
if (suicideListeners.length == 0) __off("client_kill", suicideTrampoline.index);
|
|
6568
|
+
if (!suicideListeners.remove(changetype<(event: ClientKillEvent) => void>(listener))) return;
|
|
6569
|
+
if (suicideListeners.count == 0) __off("client_kill", suicideTrampoline.index);
|
|
6570
|
+
suicideDirect();
|
|
3799
6571
|
return;
|
|
3800
6572
|
}
|
|
3801
6573
|
if (idof<E>() == idof<ClientImpulseEvent>()) {
|
|
3802
|
-
|
|
3803
|
-
if (
|
|
3804
|
-
|
|
3805
|
-
if (impulseListeners.length == 0) __off("client_impulse", impulseTrampoline.index);
|
|
6574
|
+
if (!impulseListeners.remove(changetype<(event: ClientImpulseEvent) => void>(listener))) return;
|
|
6575
|
+
if (impulseListeners.count == 0) __off("client_impulse", impulseTrampoline.index);
|
|
6576
|
+
impulseDirect();
|
|
3806
6577
|
return;
|
|
3807
6578
|
}
|
|
3808
6579
|
if (idof<E>() == idof<ClientCmdStartEvent>()) {
|
|
3809
|
-
|
|
3810
|
-
if (
|
|
3811
|
-
|
|
3812
|
-
if (cmdStartListeners.length == 0) __off("client_cmdStart", cmdStartTrampoline.index);
|
|
6580
|
+
if (!cmdStartListeners.remove(changetype<(event: ClientCmdStartEvent) => void>(listener))) return;
|
|
6581
|
+
if (cmdStartListeners.count == 0) __off("client_cmdStart", cmdStartTrampoline.index);
|
|
6582
|
+
cmdStartDirect();
|
|
3813
6583
|
return;
|
|
3814
6584
|
}
|
|
3815
6585
|
if (idof<E>() == idof<PfnThinkEvent>()) {
|
|
3816
|
-
|
|
3817
|
-
if (
|
|
3818
|
-
|
|
3819
|
-
if (entityThinkListeners.length == 0) __off("pfn_think", entityThinkTrampoline.index);
|
|
6586
|
+
if (!entityThinkListeners.remove(changetype<(event: PfnThinkEvent) => void>(listener))) return;
|
|
6587
|
+
if (entityThinkListeners.count == 0) __off("pfn_think", entityThinkTrampoline.index);
|
|
6588
|
+
entityThinkDirect();
|
|
3820
6589
|
return;
|
|
3821
6590
|
}
|
|
3822
6591
|
if (idof<E>() == idof<PfnPlaybackeventEvent>()) {
|
|
3823
|
-
|
|
3824
|
-
if (
|
|
3825
|
-
|
|
3826
|
-
if (playbackEventListeners.length == 0) __off("pfn_playbackevent", playbackEventTrampoline.index);
|
|
6592
|
+
if (!playbackEventListeners.remove(changetype<(event: PfnPlaybackeventEvent) => void>(listener))) return;
|
|
6593
|
+
if (playbackEventListeners.count == 0) __off("pfn_playbackevent", playbackEventTrampoline.index);
|
|
6594
|
+
playbackEventDirect();
|
|
3827
6595
|
return;
|
|
3828
6596
|
}
|
|
3829
6597
|
if (idof<E>() == idof<PfnKeyvalueEvent>()) {
|
|
3830
|
-
|
|
3831
|
-
if (
|
|
3832
|
-
|
|
3833
|
-
if (keyValueListeners.length == 0) __off("pfn_keyvalue", keyValueTrampoline.index);
|
|
6598
|
+
if (!keyValueListeners.remove(changetype<(event: PfnKeyvalueEvent) => void>(listener))) return;
|
|
6599
|
+
if (keyValueListeners.count == 0) __off("pfn_keyvalue", keyValueTrampoline.index);
|
|
6600
|
+
keyValueDirect();
|
|
3834
6601
|
return;
|
|
3835
6602
|
}
|
|
3836
6603
|
if (idof<E>() == idof<PfnSpawnEvent>()) {
|
|
3837
|
-
|
|
3838
|
-
if (
|
|
3839
|
-
|
|
3840
|
-
if (entitySpawnListeners.length == 0) __off("pfn_spawn", entitySpawnTrampoline.index);
|
|
6604
|
+
if (!entitySpawnListeners.remove(changetype<(event: PfnSpawnEvent) => void>(listener))) return;
|
|
6605
|
+
if (entitySpawnListeners.count == 0) __off("pfn_spawn", entitySpawnTrampoline.index);
|
|
6606
|
+
entitySpawnDirect();
|
|
3841
6607
|
return;
|
|
3842
6608
|
}
|
|
3843
6609
|
}
|