@infernus/core 0.8.7 → 0.9.1
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/dist/bundle.d.ts +1553 -1551
- package/dist/bundle.js +1 -1
- package/dist/bundle.mjs +1 -0
- package/package.json +10 -3
- package/rollup.config.mjs +5 -2
- package/.eslintrc +0 -3
- package/src/controllers/command/index.ts +0 -57
- package/src/controllers/filterscript/index.ts +0 -69
- package/src/controllers/gamemode/index.ts +0 -277
- package/src/controllers/gamemode/settings.ts +0 -3
- package/src/controllers/gametext/index.ts +0 -61
- package/src/controllers/gangzone/baseGangZone.ts +0 -284
- package/src/controllers/gangzone/gangZoneBus.ts +0 -8
- package/src/controllers/gangzone/gangZoneEvent.ts +0 -91
- package/src/controllers/gangzone/index.ts +0 -2
- package/src/controllers/i18n/index.ts +0 -81
- package/src/controllers/index.ts +0 -12
- package/src/controllers/menu/baseMenu.ts +0 -203
- package/src/controllers/menu/index.ts +0 -2
- package/src/controllers/menu/menuBus.ts +0 -8
- package/src/controllers/menu/menuEvent.ts +0 -76
- package/src/controllers/netstats/index.ts +0 -43
- package/src/controllers/npc/index.ts +0 -2
- package/src/controllers/npc/npcEvent.ts +0 -26
- package/src/controllers/npc/npcFunc.ts +0 -64
- package/src/controllers/player/basePlayer.ts +0 -980
- package/src/controllers/player/index.ts +0 -3
- package/src/controllers/player/pauseChecker.ts +0 -39
- package/src/controllers/player/playerBus.ts +0 -9
- package/src/controllers/player/playerEvent.ts +0 -468
- package/src/controllers/promise/client/index.ts +0 -31
- package/src/controllers/promise/dialog/index.ts +0 -143
- package/src/controllers/textdraw/baseTextDraw.ts +0 -416
- package/src/controllers/textdraw/index.ts +0 -2
- package/src/controllers/textdraw/textdrawBus.ts +0 -8
- package/src/controllers/textdraw/textdrawEvent.ts +0 -61
- package/src/controllers/vehicle/baseVehicle.ts +0 -503
- package/src/controllers/vehicle/index.ts +0 -2
- package/src/controllers/vehicle/vehicleBus.ts +0 -8
- package/src/controllers/vehicle/vehicleEvent.ts +0 -201
- package/src/enums/artwork.ts +0 -5
- package/src/enums/clickSources.ts +0 -3
- package/src/enums/dialogStyles.ts +0 -8
- package/src/enums/editResponseTypes.ts +0 -5
- package/src/enums/index.ts +0 -18
- package/src/enums/invalid.ts +0 -13
- package/src/enums/keys.ts +0 -25
- package/src/enums/limits.ts +0 -18
- package/src/enums/marker.ts +0 -5
- package/src/enums/netstat.ts +0 -11
- package/src/enums/npc.ts +0 -11
- package/src/enums/object.ts +0 -25
- package/src/enums/player.ts +0 -92
- package/src/enums/record.ts +0 -5
- package/src/enums/specialActions.ts +0 -22
- package/src/enums/streamer.ts +0 -10
- package/src/enums/textdrawFonts.ts +0 -23
- package/src/enums/vehicle.ts +0 -32
- package/src/enums/weapon.ts +0 -82
- package/src/interfaces/index.ts +0 -233
- package/src/logger/index.ts +0 -24
- package/src/main.ts +0 -6
- package/src/types/index.ts +0 -48
- package/src/utils/EventBus.ts +0 -60
- package/src/utils/animateUtils.ts +0 -2504
- package/src/utils/colorUtils.ts +0 -43
- package/src/utils/helperUtils.ts +0 -403
- package/src/utils/vehicleUtils.ts +0 -321
- package/src/wrapper/native/callbacks/index.ts +0 -395
- package/src/wrapper/native/functions/index.ts +0 -3131
- package/src/wrapper/streamer/3dtext/3dTextBus.ts +0 -8
- package/src/wrapper/streamer/3dtext/3dTextEvent.ts +0 -70
- package/src/wrapper/streamer/3dtext/base3DText.ts +0 -184
- package/src/wrapper/streamer/3dtext/index.ts +0 -2
- package/src/wrapper/streamer/actor/actorBus.ts +0 -8
- package/src/wrapper/streamer/actor/actorEvent.ts +0 -95
- package/src/wrapper/streamer/actor/baseActor.ts +0 -278
- package/src/wrapper/streamer/actor/index.ts +0 -2
- package/src/wrapper/streamer/area/areaBus.ts +0 -8
- package/src/wrapper/streamer/area/areaEvent.ts +0 -99
- package/src/wrapper/streamer/area/baseArea.ts +0 -450
- package/src/wrapper/streamer/area/index.ts +0 -2
- package/src/wrapper/streamer/checkpoint/baseCheckpoint.ts +0 -136
- package/src/wrapper/streamer/checkpoint/checkPointBus.ts +0 -8
- package/src/wrapper/streamer/checkpoint/checkPointEvent.ts +0 -100
- package/src/wrapper/streamer/checkpoint/index.ts +0 -2
- package/src/wrapper/streamer/common/index.ts +0 -318
- package/src/wrapper/streamer/index.ts +0 -9
- package/src/wrapper/streamer/mapIcon/baseMapIcon.ts +0 -128
- package/src/wrapper/streamer/mapIcon/index.ts +0 -2
- package/src/wrapper/streamer/mapIcon/mapIconBus.ts +0 -8
- package/src/wrapper/streamer/mapIcon/mapIconEvent.ts +0 -67
- package/src/wrapper/streamer/object/baseObject.ts +0 -415
- package/src/wrapper/streamer/object/index.ts +0 -2
- package/src/wrapper/streamer/object/objectBus.ts +0 -8
- package/src/wrapper/streamer/object/objectEvent.ts +0 -177
- package/src/wrapper/streamer/pickup/basePickup.ts +0 -114
- package/src/wrapper/streamer/pickup/index.ts +0 -2
- package/src/wrapper/streamer/pickup/pickupBus.ts +0 -8
- package/src/wrapper/streamer/pickup/pickupEvent.ts +0 -84
- package/src/wrapper/streamer/raceCP/baseRaceCP.ts +0 -151
- package/src/wrapper/streamer/raceCP/index.ts +0 -2
- package/src/wrapper/streamer/raceCP/raceCPBus.ts +0 -8
- package/src/wrapper/streamer/raceCP/raceCPEvent.ts +0 -100
- package/tsconfig.json +0 -16
- /package/{LICENSE → LICENSE.md} +0 -0
|
@@ -1,980 +0,0 @@
|
|
|
1
|
-
import type { IClientResRaw } from "@/interfaces";
|
|
2
|
-
import {
|
|
3
|
-
BanEx,
|
|
4
|
-
GetPlayerName,
|
|
5
|
-
SendClientMessage,
|
|
6
|
-
SendClientMessageToAll,
|
|
7
|
-
SendPlayerMessageToAll,
|
|
8
|
-
SendPlayerMessageToPlayer,
|
|
9
|
-
SetPlayerName,
|
|
10
|
-
} from "@/utils/helperUtils";
|
|
11
|
-
import * as playerFunc from "@/wrapper/native/functions";
|
|
12
|
-
import { logger } from "@/logger";
|
|
13
|
-
import type {
|
|
14
|
-
BoneIdsEnum,
|
|
15
|
-
CameraModesEnum,
|
|
16
|
-
FightingStylesEnum,
|
|
17
|
-
WeaponEnum,
|
|
18
|
-
WeaponSkillsEnum,
|
|
19
|
-
WeaponStatesEnum,
|
|
20
|
-
} from "@/enums";
|
|
21
|
-
import {
|
|
22
|
-
CameraCutStylesEnum,
|
|
23
|
-
DamageDeathReasonEnum,
|
|
24
|
-
InvalidEnum,
|
|
25
|
-
PlayerStateEnum,
|
|
26
|
-
SpecialActionsEnum,
|
|
27
|
-
SpectateModesEnum,
|
|
28
|
-
} from "@/enums";
|
|
29
|
-
import type { Vehicle } from "../vehicle";
|
|
30
|
-
import type { TPos } from "@/types";
|
|
31
|
-
|
|
32
|
-
import { getAnimateDurationByLibName } from "@/utils/animateUtils";
|
|
33
|
-
import type { DynamicObject } from "../../wrapper/streamer";
|
|
34
|
-
import { ccWaitingQueue, delCCTask } from "../promise/client";
|
|
35
|
-
import {
|
|
36
|
-
GetPlayerWeather,
|
|
37
|
-
TogglePlayerWidescreen,
|
|
38
|
-
IsPlayerWidescreenToggled,
|
|
39
|
-
GetSpawnInfo,
|
|
40
|
-
GetPlayerSkillLevel,
|
|
41
|
-
IsPlayerCheckpointActive,
|
|
42
|
-
GetPlayerCheckpoint,
|
|
43
|
-
IsPlayerRaceCheckpointActive,
|
|
44
|
-
GetPlayerRaceCheckpoint,
|
|
45
|
-
GetPlayerWorldBounds,
|
|
46
|
-
IsPlayerInModShop,
|
|
47
|
-
GetPlayerSirenState,
|
|
48
|
-
GetPlayerLandingGearState,
|
|
49
|
-
GetPlayerHydraReactorAngle,
|
|
50
|
-
GetPlayerTrainSpeed,
|
|
51
|
-
GetPlayerZAim,
|
|
52
|
-
GetPlayerSurfingOffsets,
|
|
53
|
-
GetPlayerRotationQuat,
|
|
54
|
-
GetPlayerDialogID,
|
|
55
|
-
GetPlayerSpectateID,
|
|
56
|
-
GetPlayerSpectateType,
|
|
57
|
-
GetPlayerRawIp,
|
|
58
|
-
SetPlayerGravity,
|
|
59
|
-
GetPlayerGravity,
|
|
60
|
-
SetPlayerAdmin,
|
|
61
|
-
IsPlayerSpawned,
|
|
62
|
-
IsPlayerControllable,
|
|
63
|
-
IsPlayerCameraTargetEnabled,
|
|
64
|
-
TogglePlayerGhostMode,
|
|
65
|
-
GetPlayerGhostMode,
|
|
66
|
-
GetPlayerBuildingsRemoved,
|
|
67
|
-
GetPlayerAttachedObject,
|
|
68
|
-
RemovePlayerWeapon,
|
|
69
|
-
IsPlayerUsingOfficialClient,
|
|
70
|
-
AllowPlayerTeleport,
|
|
71
|
-
IsPlayerTeleportAllowed,
|
|
72
|
-
AllowPlayerWeapons,
|
|
73
|
-
ArePlayerWeaponsAllowed,
|
|
74
|
-
} from "@infernus/wrapper";
|
|
75
|
-
import { defaultCharset, defaultLocale } from "../gamemode/settings";
|
|
76
|
-
import { playerBus, playerHooks } from "./playerBus";
|
|
77
|
-
|
|
78
|
-
export class Player {
|
|
79
|
-
private _id: number;
|
|
80
|
-
private _isNpc: boolean;
|
|
81
|
-
private _locale: string = defaultLocale;
|
|
82
|
-
private _charset: string = defaultCharset;
|
|
83
|
-
private _isRecording = false;
|
|
84
|
-
|
|
85
|
-
lastDrunkLevel = 0;
|
|
86
|
-
lastFps = 0;
|
|
87
|
-
isPaused = false;
|
|
88
|
-
lastUpdateTick = 0;
|
|
89
|
-
|
|
90
|
-
get id(): number {
|
|
91
|
-
return this._id;
|
|
92
|
-
}
|
|
93
|
-
get locale(): string {
|
|
94
|
-
return this._locale;
|
|
95
|
-
}
|
|
96
|
-
set locale(value: string) {
|
|
97
|
-
playerBus.emit(playerHooks.setCommonProp, {
|
|
98
|
-
player: this,
|
|
99
|
-
prop: "_locale",
|
|
100
|
-
value,
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
get charset(): string {
|
|
104
|
-
return this._charset;
|
|
105
|
-
}
|
|
106
|
-
set charset(value: string) {
|
|
107
|
-
playerBus.emit(playerHooks.setCommonProp, {
|
|
108
|
-
player: this,
|
|
109
|
-
prop: "_charset",
|
|
110
|
-
value,
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
get isRecording() {
|
|
114
|
-
return this._isRecording;
|
|
115
|
-
}
|
|
116
|
-
set isRecording(value) {
|
|
117
|
-
playerBus.emit(playerHooks.setCommonProp, {
|
|
118
|
-
player: this,
|
|
119
|
-
prop: "_isRecording",
|
|
120
|
-
value,
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
constructor(id: number) {
|
|
125
|
-
this._id = id;
|
|
126
|
-
this._isNpc = playerFunc.IsPlayerNPC(this.id);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
sendClientMessage(colour: string | number, msg: string): number {
|
|
130
|
-
return SendClientMessage(this, colour, msg);
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
static sendClientMessageToAll<P extends Player>(
|
|
134
|
-
players: Array<P>,
|
|
135
|
-
colour: string | number,
|
|
136
|
-
msg: string
|
|
137
|
-
) {
|
|
138
|
-
SendClientMessageToAll(players, colour, msg);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
sendPlayerMessage<P extends Player>(player: P, message: string): number {
|
|
142
|
-
return SendPlayerMessageToPlayer(player, this.id, message);
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
sendPlayerMessageToAll<P extends Player>(
|
|
146
|
-
players: Array<P>,
|
|
147
|
-
message: string
|
|
148
|
-
): number {
|
|
149
|
-
return SendPlayerMessageToAll(players, this.id, message);
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
isNpc(): boolean {
|
|
153
|
-
return this._isNpc;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// first call will return 0;
|
|
157
|
-
// should be called at one second intervals, implemented internally by throttling
|
|
158
|
-
getFps(): number {
|
|
159
|
-
return this.lastFps;
|
|
160
|
-
}
|
|
161
|
-
getDrunkLevel(): number {
|
|
162
|
-
return playerFunc.GetPlayerDrunkLevel(this.id);
|
|
163
|
-
}
|
|
164
|
-
setDrunkLevel(level: number): void {
|
|
165
|
-
if (level < 0 || level > 50000)
|
|
166
|
-
return logger.error(
|
|
167
|
-
new Error("[Player]: player's drunk level ranges from 0 to 50000")
|
|
168
|
-
);
|
|
169
|
-
playerFunc.SetPlayerDrunkLevel(this.id, level);
|
|
170
|
-
}
|
|
171
|
-
allowTeleport(allow: boolean): void {
|
|
172
|
-
AllowPlayerTeleport(this.id, allow);
|
|
173
|
-
}
|
|
174
|
-
isTeleportAllowed() {
|
|
175
|
-
return IsPlayerTeleportAllowed(this.id);
|
|
176
|
-
}
|
|
177
|
-
enableCameraTarget(enable: boolean): void {
|
|
178
|
-
playerFunc.EnablePlayerCameraTarget(this.id, enable);
|
|
179
|
-
}
|
|
180
|
-
enableStuntBonus(enable: boolean): void {
|
|
181
|
-
playerFunc.EnableStuntBonusForPlayer(this.id, enable);
|
|
182
|
-
}
|
|
183
|
-
getInterior(): number {
|
|
184
|
-
return playerFunc.GetPlayerInterior(this.id);
|
|
185
|
-
}
|
|
186
|
-
setInterior(interiorId: number): number {
|
|
187
|
-
return playerFunc.SetPlayerInterior(this.id, interiorId);
|
|
188
|
-
}
|
|
189
|
-
showPlayerNameTag<P extends Player>(showPlayer: P, show: boolean): void {
|
|
190
|
-
playerFunc.ShowPlayerNameTagForPlayer(this.id, showPlayer.id, show);
|
|
191
|
-
}
|
|
192
|
-
setColor(colour: string | number): void {
|
|
193
|
-
playerFunc.SetPlayerColor(this.id, colour);
|
|
194
|
-
}
|
|
195
|
-
getColor(): number {
|
|
196
|
-
return playerFunc.GetPlayerColor(this.id);
|
|
197
|
-
}
|
|
198
|
-
setPlayerMarker<P extends Player>(showPlayer: P, colour: string | number) {
|
|
199
|
-
playerFunc.SetPlayerMarkerForPlayer(this.id, showPlayer.id, colour);
|
|
200
|
-
}
|
|
201
|
-
resetMoney(): number {
|
|
202
|
-
return playerFunc.ResetPlayerMoney(this.id);
|
|
203
|
-
}
|
|
204
|
-
getMoney(): number {
|
|
205
|
-
return playerFunc.GetPlayerMoney(this.id);
|
|
206
|
-
}
|
|
207
|
-
giveMoney(money: number): number {
|
|
208
|
-
return playerFunc.GivePlayerMoney(this.id, money);
|
|
209
|
-
}
|
|
210
|
-
resetWeapons(): number {
|
|
211
|
-
return playerFunc.ResetPlayerWeapons(this.id);
|
|
212
|
-
}
|
|
213
|
-
spawn(): number {
|
|
214
|
-
if (this.isSpectating()) {
|
|
215
|
-
this.toggleSpectating(false);
|
|
216
|
-
return 1;
|
|
217
|
-
}
|
|
218
|
-
return playerFunc.SpawnPlayer(this.id);
|
|
219
|
-
}
|
|
220
|
-
setHealth(health: number): number {
|
|
221
|
-
return playerFunc.SetPlayerHealth(this.id, health);
|
|
222
|
-
}
|
|
223
|
-
getHealth(): number {
|
|
224
|
-
return playerFunc.GetPlayerHealth(this.id);
|
|
225
|
-
}
|
|
226
|
-
toggleClock(toggle: boolean): number {
|
|
227
|
-
return playerFunc.TogglePlayerClock(this.id, toggle);
|
|
228
|
-
}
|
|
229
|
-
toggleControllable(toggle: boolean): number {
|
|
230
|
-
return playerFunc.TogglePlayerControllable(this.id, toggle);
|
|
231
|
-
}
|
|
232
|
-
toggleSpectating(toggle: boolean): number {
|
|
233
|
-
return playerFunc.TogglePlayerSpectating(this.id, toggle);
|
|
234
|
-
}
|
|
235
|
-
spectatePlayer<P extends Player>(
|
|
236
|
-
targetPlayer: P,
|
|
237
|
-
mode = SpectateModesEnum.NORMAL
|
|
238
|
-
) {
|
|
239
|
-
return playerFunc.PlayerSpectatePlayer(this.id, targetPlayer.id, mode);
|
|
240
|
-
}
|
|
241
|
-
spectateVehicle<V extends Vehicle>(
|
|
242
|
-
targetVehicle: V,
|
|
243
|
-
mode = SpectateModesEnum.NORMAL
|
|
244
|
-
) {
|
|
245
|
-
return playerFunc.PlayerSpectateVehicle(this.id, targetVehicle.id, mode);
|
|
246
|
-
}
|
|
247
|
-
forceClassSelection(): void {
|
|
248
|
-
playerFunc.ForceClassSelection(this.id);
|
|
249
|
-
}
|
|
250
|
-
kick(): void {
|
|
251
|
-
playerFunc.Kick(this.id);
|
|
252
|
-
}
|
|
253
|
-
ban(): void {
|
|
254
|
-
playerFunc.Ban(this.id);
|
|
255
|
-
}
|
|
256
|
-
banEx(reason: string, charset: string): void {
|
|
257
|
-
BanEx(this.id, reason, charset);
|
|
258
|
-
}
|
|
259
|
-
isAdmin() {
|
|
260
|
-
return playerFunc.IsPlayerAdmin(this.id);
|
|
261
|
-
}
|
|
262
|
-
isInRangeOfPoint(range: number, x: number, y: number, z: number) {
|
|
263
|
-
return playerFunc.IsPlayerInRangeOfPoint(this.id, range, x, y, z);
|
|
264
|
-
}
|
|
265
|
-
isStreamedIn<P extends Player>(forplayer: P) {
|
|
266
|
-
return playerFunc.IsPlayerStreamedIn(this.id, forplayer.id);
|
|
267
|
-
}
|
|
268
|
-
setSkin(skinId: number, ignoreRange = false): number {
|
|
269
|
-
if (!ignoreRange && (skinId < 0 || skinId > 311 || skinId == 74)) return 0;
|
|
270
|
-
if (this.getHealth() <= 0) return 0;
|
|
271
|
-
if (this.isInAnyVehicle()) return 0;
|
|
272
|
-
if (this.getSpecialAction() === SpecialActionsEnum.DUCK) return 0;
|
|
273
|
-
return playerFunc.SetPlayerSkin(this.id, skinId);
|
|
274
|
-
}
|
|
275
|
-
getSkin(): number {
|
|
276
|
-
return playerFunc.GetPlayerSkin(this.id);
|
|
277
|
-
}
|
|
278
|
-
isInAnyVehicle(): boolean {
|
|
279
|
-
return playerFunc.IsPlayerInAnyVehicle(this.id);
|
|
280
|
-
}
|
|
281
|
-
getSpecialAction(): SpecialActionsEnum {
|
|
282
|
-
return playerFunc.GetPlayerSpecialAction(this.id);
|
|
283
|
-
}
|
|
284
|
-
setSpecialAction(actionId: SpecialActionsEnum): number {
|
|
285
|
-
return playerFunc.SetPlayerSpecialAction(this.id, actionId);
|
|
286
|
-
}
|
|
287
|
-
setScore(score: number): number {
|
|
288
|
-
return playerFunc.SetPlayerScore(this.id, score);
|
|
289
|
-
}
|
|
290
|
-
getScore(): number {
|
|
291
|
-
return playerFunc.GetPlayerScore(this.id);
|
|
292
|
-
}
|
|
293
|
-
getPing(): number {
|
|
294
|
-
return playerFunc.GetPlayerPing(this.id) || 0;
|
|
295
|
-
}
|
|
296
|
-
setPos(x: number, y: number, z: number): number {
|
|
297
|
-
return playerFunc.SetPlayerPos(this.id, x, y, z);
|
|
298
|
-
}
|
|
299
|
-
getPos(): TPos | undefined {
|
|
300
|
-
if (
|
|
301
|
-
this.isSpectating() ||
|
|
302
|
-
this.isWasted() ||
|
|
303
|
-
this.getState() === PlayerStateEnum.NONE
|
|
304
|
-
)
|
|
305
|
-
return undefined;
|
|
306
|
-
const [x, y, z] = playerFunc.GetPlayerPos(this.id);
|
|
307
|
-
return { x, y, z };
|
|
308
|
-
}
|
|
309
|
-
isSpectating(): boolean {
|
|
310
|
-
return this.getState() === PlayerStateEnum.SPECTATING;
|
|
311
|
-
}
|
|
312
|
-
isWasted(): boolean {
|
|
313
|
-
return this.getState() === PlayerStateEnum.WASTED;
|
|
314
|
-
}
|
|
315
|
-
getState(): PlayerStateEnum {
|
|
316
|
-
return playerFunc.GetPlayerState(this.id);
|
|
317
|
-
}
|
|
318
|
-
getVersion(): string {
|
|
319
|
-
if (this.isNpc()) return "";
|
|
320
|
-
return playerFunc.GetPlayerVersion(this.id);
|
|
321
|
-
}
|
|
322
|
-
setVirtualWorld(worldId: number): number {
|
|
323
|
-
return playerFunc.SetPlayerVirtualWorld(this.id, worldId);
|
|
324
|
-
}
|
|
325
|
-
getVirtualWorld(): number {
|
|
326
|
-
return playerFunc.GetPlayerVirtualWorld(this.id);
|
|
327
|
-
}
|
|
328
|
-
removeFromVehicle(): number {
|
|
329
|
-
return playerFunc.RemovePlayerFromVehicle(this.id);
|
|
330
|
-
}
|
|
331
|
-
setWantedLevel(level: number): number {
|
|
332
|
-
if (level < 0 || level > 6) {
|
|
333
|
-
logger.error("[Player]: player's wanted level ranges from 0 to 6");
|
|
334
|
-
return 0;
|
|
335
|
-
}
|
|
336
|
-
return playerFunc.SetPlayerWantedLevel(this.id, level);
|
|
337
|
-
}
|
|
338
|
-
getWantedLevel(): number {
|
|
339
|
-
return playerFunc.GetPlayerWantedLevel(this.id);
|
|
340
|
-
}
|
|
341
|
-
setFacingAngle(ang: number): number {
|
|
342
|
-
return playerFunc.SetPlayerFacingAngle(this.id, ang);
|
|
343
|
-
}
|
|
344
|
-
getFacingAngle(): number {
|
|
345
|
-
return playerFunc.GetPlayerFacingAngle(this.id);
|
|
346
|
-
}
|
|
347
|
-
setWeather(weather: number): void {
|
|
348
|
-
if (weather < 0 || weather > 255) {
|
|
349
|
-
logger.warn("[Player]: The valid weather value is only 0 to 255");
|
|
350
|
-
return;
|
|
351
|
-
}
|
|
352
|
-
playerFunc.SetPlayerWeather(this.id, weather);
|
|
353
|
-
}
|
|
354
|
-
getWeather(): number {
|
|
355
|
-
return GetPlayerWeather(this.id);
|
|
356
|
-
}
|
|
357
|
-
setTime(hour: number, minute: number): void | number {
|
|
358
|
-
if (hour < 0 || hour > 23) {
|
|
359
|
-
logger.warn("[Player]: The valid hour value is only 0 to 23");
|
|
360
|
-
return;
|
|
361
|
-
}
|
|
362
|
-
if (minute < 0 || minute > 59) {
|
|
363
|
-
logger.warn("[Player]: The valid minute value is only 0 to 59");
|
|
364
|
-
return;
|
|
365
|
-
}
|
|
366
|
-
return playerFunc.SetPlayerTime(this.id, hour, minute);
|
|
367
|
-
}
|
|
368
|
-
getTime() {
|
|
369
|
-
const [hour, minute] = playerFunc.GetPlayerTime(this.id);
|
|
370
|
-
return { hour, minute };
|
|
371
|
-
}
|
|
372
|
-
removeBuilding(
|
|
373
|
-
modelid: number,
|
|
374
|
-
fX: number,
|
|
375
|
-
fY: number,
|
|
376
|
-
fZ: number,
|
|
377
|
-
fRadius: number
|
|
378
|
-
): void {
|
|
379
|
-
playerFunc.RemoveBuildingForPlayer(this.id, modelid, fX, fY, fZ, fRadius);
|
|
380
|
-
}
|
|
381
|
-
setTeam(team: number): void {
|
|
382
|
-
if (team < 0 || team > InvalidEnum.NO_TEAM) return;
|
|
383
|
-
playerFunc.SetPlayerTeam(this.id, team);
|
|
384
|
-
}
|
|
385
|
-
getTeam(): number {
|
|
386
|
-
return playerFunc.GetPlayerTeam(this.id);
|
|
387
|
-
}
|
|
388
|
-
setSkillLevel(skill: WeaponSkillsEnum, level: number): void {
|
|
389
|
-
if (level < 0 || level > 999) {
|
|
390
|
-
logger.warn("[Player]: The valid skill level is only 0 to 999");
|
|
391
|
-
return;
|
|
392
|
-
}
|
|
393
|
-
playerFunc.SetPlayerSkillLevel(this.id, skill, level);
|
|
394
|
-
}
|
|
395
|
-
getName(): string {
|
|
396
|
-
return GetPlayerName(this);
|
|
397
|
-
}
|
|
398
|
-
setName(name: string): number {
|
|
399
|
-
return SetPlayerName(this, name);
|
|
400
|
-
}
|
|
401
|
-
setVelocity(x: number, y: number, z: number): number {
|
|
402
|
-
return playerFunc.SetPlayerVelocity(this.id, x, y, z);
|
|
403
|
-
}
|
|
404
|
-
getVelocity(): TPos {
|
|
405
|
-
const [x, y, z] = playerFunc.GetPlayerVelocity(this.id);
|
|
406
|
-
return { x, y, z };
|
|
407
|
-
}
|
|
408
|
-
getKeys() {
|
|
409
|
-
const [keys, updown, leftright] = playerFunc.GetPlayerKeys(this.id);
|
|
410
|
-
return { keys, updown, leftright };
|
|
411
|
-
}
|
|
412
|
-
getIp(): string {
|
|
413
|
-
return playerFunc.GetPlayerIp(this.id);
|
|
414
|
-
}
|
|
415
|
-
getFightingStyle(): FightingStylesEnum {
|
|
416
|
-
return playerFunc.GetPlayerFightingStyle(this.id);
|
|
417
|
-
}
|
|
418
|
-
setFightingStyle(style: FightingStylesEnum): void {
|
|
419
|
-
playerFunc.SetPlayerFightingStyle(this.id, style);
|
|
420
|
-
}
|
|
421
|
-
setArmour(armour: number): number {
|
|
422
|
-
return playerFunc.SetPlayerArmour(this.id, armour);
|
|
423
|
-
}
|
|
424
|
-
getArmour(): number {
|
|
425
|
-
return playerFunc.GetPlayerArmour(this.id);
|
|
426
|
-
}
|
|
427
|
-
setCameraBehind(): number {
|
|
428
|
-
return playerFunc.SetCameraBehindPlayer(this.id);
|
|
429
|
-
}
|
|
430
|
-
setCameraPos(x: number, y: number, z: number): number {
|
|
431
|
-
return playerFunc.SetPlayerCameraPos(this.id, x, y, z);
|
|
432
|
-
}
|
|
433
|
-
setCameraLookAt(
|
|
434
|
-
x: number,
|
|
435
|
-
y: number,
|
|
436
|
-
z: number,
|
|
437
|
-
cut: CameraCutStylesEnum
|
|
438
|
-
): number {
|
|
439
|
-
return playerFunc.SetPlayerCameraLookAt(this.id, x, y, z, cut);
|
|
440
|
-
}
|
|
441
|
-
getCameraAspectRatio(): number {
|
|
442
|
-
return playerFunc.GetPlayerCameraAspectRatio(this.id);
|
|
443
|
-
}
|
|
444
|
-
getCameraFrontVector(): TPos {
|
|
445
|
-
const [x, y, z] = playerFunc.GetPlayerCameraFrontVector(this.id);
|
|
446
|
-
return { x, y, z };
|
|
447
|
-
}
|
|
448
|
-
getCameraMode(): CameraModesEnum {
|
|
449
|
-
return playerFunc.GetPlayerCameraMode(this.id);
|
|
450
|
-
}
|
|
451
|
-
getCameraPos(): TPos {
|
|
452
|
-
const [x, y, z] = playerFunc.GetPlayerCameraPos(this.id);
|
|
453
|
-
return { x, y, z };
|
|
454
|
-
}
|
|
455
|
-
getCameraTargetPlayer<P extends Player>(players: Array<P>): P | undefined {
|
|
456
|
-
const target = playerFunc.GetPlayerCameraTargetPlayer(this.id);
|
|
457
|
-
return players.find((p) => p.id === target);
|
|
458
|
-
}
|
|
459
|
-
getCameraTargetVehicle<V extends Vehicle>(vehicles: Array<V>): V | undefined {
|
|
460
|
-
const target = playerFunc.GetPlayerCameraTargetVehicle(this.id);
|
|
461
|
-
return vehicles.find((v) => v.id === target);
|
|
462
|
-
}
|
|
463
|
-
getCameraZoom(): number {
|
|
464
|
-
return playerFunc.GetPlayerCameraZoom(this.id);
|
|
465
|
-
}
|
|
466
|
-
playAudioStream(
|
|
467
|
-
url: string,
|
|
468
|
-
posX = 0.0,
|
|
469
|
-
posY = 0.0,
|
|
470
|
-
posZ = 0.0,
|
|
471
|
-
distance = 5.0
|
|
472
|
-
): number {
|
|
473
|
-
let usepos = false;
|
|
474
|
-
if (posX !== 0.0 || posY !== 0.0 || posZ !== 0.0) {
|
|
475
|
-
usepos = true;
|
|
476
|
-
}
|
|
477
|
-
return playerFunc.PlayAudioStreamForPlayer(
|
|
478
|
-
this.id,
|
|
479
|
-
url,
|
|
480
|
-
posX,
|
|
481
|
-
posY,
|
|
482
|
-
posZ,
|
|
483
|
-
distance,
|
|
484
|
-
usepos
|
|
485
|
-
);
|
|
486
|
-
}
|
|
487
|
-
stopAudioStream(): void {
|
|
488
|
-
playerFunc.StopAudioStreamForPlayer(this.id);
|
|
489
|
-
}
|
|
490
|
-
playSound(
|
|
491
|
-
soundid: number,
|
|
492
|
-
relativeX = 0.0,
|
|
493
|
-
relativeY = 0.0,
|
|
494
|
-
relativeZ = 0.0
|
|
495
|
-
): number {
|
|
496
|
-
return playerFunc.PlayerPlaySound(
|
|
497
|
-
this.id,
|
|
498
|
-
soundid,
|
|
499
|
-
relativeX,
|
|
500
|
-
relativeY,
|
|
501
|
-
relativeZ
|
|
502
|
-
);
|
|
503
|
-
}
|
|
504
|
-
static getPoolSize(): number {
|
|
505
|
-
return playerFunc.GetPlayerPoolSize();
|
|
506
|
-
}
|
|
507
|
-
static getMaxPlayers(): number {
|
|
508
|
-
return playerFunc.GetMaxPlayers();
|
|
509
|
-
}
|
|
510
|
-
playCrimeReport<P extends Player>(suspect: P, crimeId: number): number {
|
|
511
|
-
if (crimeId < 3 || crimeId > 22) {
|
|
512
|
-
logger.warn("[Player]: Available crime ids range from 3 to 22");
|
|
513
|
-
return 0;
|
|
514
|
-
}
|
|
515
|
-
return playerFunc.PlayCrimeReportForPlayer(this.id, suspect.id, crimeId);
|
|
516
|
-
}
|
|
517
|
-
interpolateCameraPos(
|
|
518
|
-
FromX: number,
|
|
519
|
-
FromY: number,
|
|
520
|
-
FromZ: number,
|
|
521
|
-
ToX: number,
|
|
522
|
-
ToY: number,
|
|
523
|
-
ToZ: number,
|
|
524
|
-
time: number,
|
|
525
|
-
cut: CameraCutStylesEnum = CameraCutStylesEnum.CUT
|
|
526
|
-
): void {
|
|
527
|
-
playerFunc.InterpolateCameraPos(
|
|
528
|
-
this.id,
|
|
529
|
-
FromX,
|
|
530
|
-
FromY,
|
|
531
|
-
FromZ,
|
|
532
|
-
ToX,
|
|
533
|
-
ToY,
|
|
534
|
-
ToZ,
|
|
535
|
-
time,
|
|
536
|
-
cut
|
|
537
|
-
);
|
|
538
|
-
}
|
|
539
|
-
interpolateCameraLookAt(
|
|
540
|
-
FromX: number,
|
|
541
|
-
FromY: number,
|
|
542
|
-
FromZ: number,
|
|
543
|
-
ToX: number,
|
|
544
|
-
ToY: number,
|
|
545
|
-
ToZ: number,
|
|
546
|
-
time: number,
|
|
547
|
-
cut: CameraCutStylesEnum = CameraCutStylesEnum.CUT
|
|
548
|
-
): void {
|
|
549
|
-
playerFunc.InterpolateCameraLookAt(
|
|
550
|
-
this.id,
|
|
551
|
-
FromX,
|
|
552
|
-
FromY,
|
|
553
|
-
FromZ,
|
|
554
|
-
ToX,
|
|
555
|
-
ToY,
|
|
556
|
-
ToZ,
|
|
557
|
-
time,
|
|
558
|
-
cut
|
|
559
|
-
);
|
|
560
|
-
}
|
|
561
|
-
createExplosion(
|
|
562
|
-
X: number,
|
|
563
|
-
Y: number,
|
|
564
|
-
Z: number,
|
|
565
|
-
type: number,
|
|
566
|
-
Radius: number
|
|
567
|
-
): number {
|
|
568
|
-
if (type < 0 || type > 13) {
|
|
569
|
-
logger.error("[Player]: The valid explosion type value is only 0 to 13");
|
|
570
|
-
return 0;
|
|
571
|
-
}
|
|
572
|
-
return playerFunc.CreateExplosionForPlayer(this.id, X, Y, Z, type, Radius);
|
|
573
|
-
}
|
|
574
|
-
static isConnected(id: number): boolean {
|
|
575
|
-
return playerFunc.IsPlayerConnected(id);
|
|
576
|
-
}
|
|
577
|
-
isConnected(): boolean {
|
|
578
|
-
return playerFunc.IsPlayerConnected(this.id);
|
|
579
|
-
}
|
|
580
|
-
disableRemoteVehicleCollisions(disable: boolean) {
|
|
581
|
-
return playerFunc.DisableRemoteVehicleCollisions(this.id, disable);
|
|
582
|
-
}
|
|
583
|
-
getVehicle<V extends Vehicle>(vehicles: Array<V>): V | undefined {
|
|
584
|
-
if (!this.isInAnyVehicle()) return undefined;
|
|
585
|
-
const vehId: number = playerFunc.GetPlayerVehicleID(this.id);
|
|
586
|
-
return vehicles.find((v) => v.id === vehId);
|
|
587
|
-
}
|
|
588
|
-
getVehicleSeat(): number {
|
|
589
|
-
return playerFunc.GetPlayerVehicleSeat(this.id);
|
|
590
|
-
}
|
|
591
|
-
getSurfingVehicle<V extends Vehicle>(vehicles: Array<V>): V | undefined {
|
|
592
|
-
const vehId = playerFunc.GetPlayerSurfingVehicleID(this.id);
|
|
593
|
-
if (vehId === InvalidEnum.VEHICLE_ID) return undefined;
|
|
594
|
-
return vehicles.find((v) => v.id === vehId);
|
|
595
|
-
}
|
|
596
|
-
applyAnimation(
|
|
597
|
-
animLib: string,
|
|
598
|
-
animName: string,
|
|
599
|
-
loop = false,
|
|
600
|
-
lockX = true,
|
|
601
|
-
lockY = true,
|
|
602
|
-
freeze = false,
|
|
603
|
-
forceSync = false
|
|
604
|
-
): void {
|
|
605
|
-
const duration = getAnimateDurationByLibName(animLib, animName);
|
|
606
|
-
if (duration === undefined)
|
|
607
|
-
return logger.error("[Player]: Invalid anim library or name");
|
|
608
|
-
playerFunc.ApplyAnimation(
|
|
609
|
-
this.id,
|
|
610
|
-
animLib,
|
|
611
|
-
animName,
|
|
612
|
-
4.1,
|
|
613
|
-
loop,
|
|
614
|
-
lockX,
|
|
615
|
-
lockY,
|
|
616
|
-
freeze,
|
|
617
|
-
loop ? 0 : duration,
|
|
618
|
-
forceSync
|
|
619
|
-
);
|
|
620
|
-
}
|
|
621
|
-
clearAnimations(forceSync = false): void {
|
|
622
|
-
playerFunc.ClearAnimations(this.id, forceSync);
|
|
623
|
-
}
|
|
624
|
-
getAnimationIndex(): number {
|
|
625
|
-
return playerFunc.GetPlayerAnimationIndex(this.id);
|
|
626
|
-
}
|
|
627
|
-
getAnimationName() {
|
|
628
|
-
const [animLib, animName] = playerFunc.GetAnimationName(
|
|
629
|
-
this.getAnimationIndex()
|
|
630
|
-
);
|
|
631
|
-
return { animLib, animName };
|
|
632
|
-
}
|
|
633
|
-
setShopName(shopName: string): void {
|
|
634
|
-
playerFunc.SetPlayerShopName(this.id, shopName);
|
|
635
|
-
}
|
|
636
|
-
setPosFindZ(x: number, y: number, z = 150): Promise<number> {
|
|
637
|
-
return new Promise<number>((resolve) => {
|
|
638
|
-
playerFunc.SetPlayerPos(this.id, x, y, z);
|
|
639
|
-
setTimeout(() => resolve(playerFunc.SetPlayerPosFindZ(this.id, x, y, z)));
|
|
640
|
-
});
|
|
641
|
-
}
|
|
642
|
-
setWorldBounds(
|
|
643
|
-
x_max: number,
|
|
644
|
-
x_min: number,
|
|
645
|
-
y_max: number,
|
|
646
|
-
y_min: number
|
|
647
|
-
): void {
|
|
648
|
-
playerFunc.SetPlayerWorldBounds(this.id, x_max, x_min, y_max, y_min);
|
|
649
|
-
}
|
|
650
|
-
setChatBubble(
|
|
651
|
-
text: string,
|
|
652
|
-
colour: string | number,
|
|
653
|
-
drawDistance: number,
|
|
654
|
-
expireTime: number
|
|
655
|
-
): void {
|
|
656
|
-
playerFunc.SetPlayerChatBubble(
|
|
657
|
-
this.id,
|
|
658
|
-
text,
|
|
659
|
-
colour,
|
|
660
|
-
drawDistance,
|
|
661
|
-
expireTime
|
|
662
|
-
);
|
|
663
|
-
}
|
|
664
|
-
getDistanceFromPoint(X: number, Y: number, Z: number): number {
|
|
665
|
-
return playerFunc.GetPlayerDistanceFromPoint(this.id, X, Y, Z);
|
|
666
|
-
}
|
|
667
|
-
getCustomSkin(): number {
|
|
668
|
-
return playerFunc.GetPlayerCustomSkin(this.id);
|
|
669
|
-
}
|
|
670
|
-
getTargetPlayer<P extends Player>(players: Array<P>): undefined | P {
|
|
671
|
-
const pid = playerFunc.GetPlayerTargetPlayer(this.id);
|
|
672
|
-
if (pid === InvalidEnum.PLAYER_ID) return undefined;
|
|
673
|
-
return players.find((p) => p.id === pid);
|
|
674
|
-
}
|
|
675
|
-
getLastShotVectors() {
|
|
676
|
-
const [fOriginX, fOriginY, fOriginZ, fHitPosX, fHitPosY, fHitPosZ] =
|
|
677
|
-
playerFunc.GetPlayerLastShotVectors(this.id);
|
|
678
|
-
return { fOriginX, fOriginY, fOriginZ, fHitPosX, fHitPosY, fHitPosZ };
|
|
679
|
-
}
|
|
680
|
-
getWeapon(): WeaponEnum | -1 {
|
|
681
|
-
return playerFunc.GetPlayerWeapon(this.id);
|
|
682
|
-
}
|
|
683
|
-
getWeaponData(slot: number) {
|
|
684
|
-
if (slot < 0 || slot > 12) {
|
|
685
|
-
logger.error("[Player]: weapon slots range from 0 to 12");
|
|
686
|
-
return;
|
|
687
|
-
}
|
|
688
|
-
const [weapons, ammo] = playerFunc.GetPlayerWeaponData(this.id, slot);
|
|
689
|
-
return { weapons, ammo };
|
|
690
|
-
}
|
|
691
|
-
getWeaponState(): WeaponStatesEnum {
|
|
692
|
-
return playerFunc.GetPlayerWeaponState(this.id);
|
|
693
|
-
}
|
|
694
|
-
giveWeapon(weaponid: WeaponEnum, ammo: number): number {
|
|
695
|
-
return playerFunc.GivePlayerWeapon(this.id, weaponid, ammo);
|
|
696
|
-
}
|
|
697
|
-
setAmmo(weaponid: number, ammo: number) {
|
|
698
|
-
return playerFunc.SetPlayerAmmo(this.id, weaponid, ammo);
|
|
699
|
-
}
|
|
700
|
-
getAmmo(): number {
|
|
701
|
-
return playerFunc.GetPlayerAmmo(this.id);
|
|
702
|
-
}
|
|
703
|
-
setArmedWeapon(weaponid: number): number {
|
|
704
|
-
return playerFunc.SetPlayerArmedWeapon(this.id, weaponid);
|
|
705
|
-
}
|
|
706
|
-
// not test
|
|
707
|
-
clearDeathMessage() {
|
|
708
|
-
for (let i = 0; i < 5; i++) {
|
|
709
|
-
this.sendDeathMessageToPlayer(
|
|
710
|
-
InvalidEnum.PLAYER_ID,
|
|
711
|
-
InvalidEnum.PLAYER_ID,
|
|
712
|
-
DamageDeathReasonEnum.CONNECT
|
|
713
|
-
);
|
|
714
|
-
}
|
|
715
|
-
}
|
|
716
|
-
sendDeathMessage<P extends Player>(
|
|
717
|
-
killer: P | InvalidEnum.PLAYER_ID,
|
|
718
|
-
weapon: WeaponEnum | DamageDeathReasonEnum
|
|
719
|
-
): void {
|
|
720
|
-
playerFunc.SendDeathMessage(
|
|
721
|
-
killer === InvalidEnum.PLAYER_ID ? killer : killer.id,
|
|
722
|
-
this.id,
|
|
723
|
-
weapon
|
|
724
|
-
);
|
|
725
|
-
}
|
|
726
|
-
sendDeathMessageToPlayer<P extends Player>(
|
|
727
|
-
killer: P | InvalidEnum.PLAYER_ID,
|
|
728
|
-
killee: P | InvalidEnum.PLAYER_ID,
|
|
729
|
-
weapon: WeaponEnum | DamageDeathReasonEnum
|
|
730
|
-
): void {
|
|
731
|
-
playerFunc.SendDeathMessageToPlayer(
|
|
732
|
-
this.id,
|
|
733
|
-
killer === InvalidEnum.PLAYER_ID ? killer : killer.id,
|
|
734
|
-
killee === InvalidEnum.PLAYER_ID ? killee : killee.id,
|
|
735
|
-
weapon
|
|
736
|
-
);
|
|
737
|
-
}
|
|
738
|
-
setSpawnInfo(
|
|
739
|
-
team: number,
|
|
740
|
-
skin: number,
|
|
741
|
-
x: number,
|
|
742
|
-
y: number,
|
|
743
|
-
z: number,
|
|
744
|
-
rotation: number,
|
|
745
|
-
weapon1: WeaponEnum,
|
|
746
|
-
weapon1_ammo: number,
|
|
747
|
-
weapon2: WeaponEnum,
|
|
748
|
-
weapon2_ammo: number,
|
|
749
|
-
weapon3: WeaponEnum,
|
|
750
|
-
weapon3_ammo: number
|
|
751
|
-
): void {
|
|
752
|
-
if (team < 0 || team > InvalidEnum.NO_TEAM) return;
|
|
753
|
-
if (skin < 0 || skin > 311 || skin == 74) return;
|
|
754
|
-
if (weapon1_ammo < 0 || weapon2_ammo < 0 || weapon3_ammo < 0) return;
|
|
755
|
-
playerFunc.SetSpawnInfo(
|
|
756
|
-
this.id,
|
|
757
|
-
team,
|
|
758
|
-
skin,
|
|
759
|
-
x,
|
|
760
|
-
y,
|
|
761
|
-
z,
|
|
762
|
-
rotation,
|
|
763
|
-
weapon1,
|
|
764
|
-
weapon1_ammo,
|
|
765
|
-
weapon2,
|
|
766
|
-
weapon2_ammo,
|
|
767
|
-
weapon3,
|
|
768
|
-
weapon3_ammo
|
|
769
|
-
);
|
|
770
|
-
}
|
|
771
|
-
redirectDownload(url: string) {
|
|
772
|
-
return playerFunc.RedirectDownload(this.id, url);
|
|
773
|
-
}
|
|
774
|
-
sendClientCheck(
|
|
775
|
-
type: number,
|
|
776
|
-
memAddr: number,
|
|
777
|
-
memOffset: number,
|
|
778
|
-
byteCount: number
|
|
779
|
-
): void | Promise<IClientResRaw> {
|
|
780
|
-
const validTypes = [2, 5, 69, 70, 71, 72];
|
|
781
|
-
if (!validTypes.includes(type)) {
|
|
782
|
-
return logger.error(
|
|
783
|
-
`[Player]: sendClientCheck valid types are ${validTypes.toString()}`
|
|
784
|
-
);
|
|
785
|
-
}
|
|
786
|
-
|
|
787
|
-
return new Promise((resolve, reject) => {
|
|
788
|
-
delCCTask(this.id, true);
|
|
789
|
-
if (this.isPaused)
|
|
790
|
-
return reject(
|
|
791
|
-
"[Player]: An attempt to check the player client response, but the player paused the game"
|
|
792
|
-
);
|
|
793
|
-
const p = new Promise<IClientResRaw>((clientResolve, clientReject) => {
|
|
794
|
-
const ping = this.getPing();
|
|
795
|
-
const shouldResTime = (ping >= 200 ? 0 : ping) + 200;
|
|
796
|
-
ccWaitingQueue.set(this.id, {
|
|
797
|
-
resolve: clientResolve,
|
|
798
|
-
reject: clientReject,
|
|
799
|
-
timeout: setTimeout(() => delCCTask(this.id, true), shouldResTime),
|
|
800
|
-
});
|
|
801
|
-
playerFunc.SendClientCheck(
|
|
802
|
-
this.id,
|
|
803
|
-
type,
|
|
804
|
-
memAddr,
|
|
805
|
-
memOffset,
|
|
806
|
-
byteCount
|
|
807
|
-
);
|
|
808
|
-
});
|
|
809
|
-
p.then(resolve, reject);
|
|
810
|
-
p.finally(() => delCCTask(this.id));
|
|
811
|
-
});
|
|
812
|
-
}
|
|
813
|
-
selectTextDraw(colour: string | number): void {
|
|
814
|
-
playerFunc.SelectTextDraw(this.id, colour);
|
|
815
|
-
}
|
|
816
|
-
cancelSelectTextDraw(): void {
|
|
817
|
-
playerFunc.CancelSelectTextDraw(this.id);
|
|
818
|
-
}
|
|
819
|
-
beginObjectSelecting(): void {
|
|
820
|
-
playerFunc.BeginObjectSelecting(this.id);
|
|
821
|
-
}
|
|
822
|
-
endObjectEditing(): void {
|
|
823
|
-
playerFunc.EndObjectEditing(this.id);
|
|
824
|
-
}
|
|
825
|
-
getSurfingObject<O extends DynamicObject>(objects: Map<number, O>): void | O {
|
|
826
|
-
const id: number = playerFunc.GetPlayerSurfingObjectID(this.id);
|
|
827
|
-
if (id === InvalidEnum.OBJECT_ID) return;
|
|
828
|
-
return objects.get(id);
|
|
829
|
-
}
|
|
830
|
-
isAttachedObjectSlotUsed(index: number): boolean {
|
|
831
|
-
return playerFunc.IsPlayerAttachedObjectSlotUsed(this.id, index);
|
|
832
|
-
}
|
|
833
|
-
setAttachedObject(
|
|
834
|
-
index: number,
|
|
835
|
-
modelid: number,
|
|
836
|
-
bone: BoneIdsEnum,
|
|
837
|
-
fOffsetX: number,
|
|
838
|
-
fOffsetY: number,
|
|
839
|
-
fOffsetZ: number,
|
|
840
|
-
fRotX: number,
|
|
841
|
-
fRotY: number,
|
|
842
|
-
fRotZ: number,
|
|
843
|
-
fScaleX: number,
|
|
844
|
-
fScaleY: number,
|
|
845
|
-
fScaleZ: number,
|
|
846
|
-
materialcolour1: string | number,
|
|
847
|
-
materialcolour2: string | number
|
|
848
|
-
): void | number {
|
|
849
|
-
if (this.isAttachedObjectSlotUsed(index)) return 0;
|
|
850
|
-
return playerFunc.SetPlayerAttachedObject(
|
|
851
|
-
this.id,
|
|
852
|
-
index,
|
|
853
|
-
modelid,
|
|
854
|
-
bone,
|
|
855
|
-
fOffsetX,
|
|
856
|
-
fOffsetY,
|
|
857
|
-
fOffsetZ,
|
|
858
|
-
fRotX,
|
|
859
|
-
fRotY,
|
|
860
|
-
fRotZ,
|
|
861
|
-
fScaleX,
|
|
862
|
-
fScaleY,
|
|
863
|
-
fScaleZ,
|
|
864
|
-
materialcolour1,
|
|
865
|
-
materialcolour2
|
|
866
|
-
);
|
|
867
|
-
}
|
|
868
|
-
removeAttachedObject(index: number): number {
|
|
869
|
-
if (!this.isAttachedObjectSlotUsed(index)) return 0;
|
|
870
|
-
return playerFunc.RemovePlayerAttachedObject(this.id, index);
|
|
871
|
-
}
|
|
872
|
-
toggleWidescreen(set: boolean): number {
|
|
873
|
-
return TogglePlayerWidescreen(this.id, set);
|
|
874
|
-
}
|
|
875
|
-
isPlayerWidescreenToggled(): boolean {
|
|
876
|
-
return IsPlayerWidescreenToggled(this.id);
|
|
877
|
-
}
|
|
878
|
-
getSpawnInfo() {
|
|
879
|
-
return GetSpawnInfo(this.id);
|
|
880
|
-
}
|
|
881
|
-
getSkillLevel(skill: WeaponSkillsEnum): number {
|
|
882
|
-
return GetPlayerSkillLevel(this.id, skill);
|
|
883
|
-
}
|
|
884
|
-
isCheckpointActive(): boolean {
|
|
885
|
-
return IsPlayerCheckpointActive(this.id);
|
|
886
|
-
}
|
|
887
|
-
getCheckpoint() {
|
|
888
|
-
return GetPlayerCheckpoint(this.id);
|
|
889
|
-
}
|
|
890
|
-
isRaceCheckpointActive(): boolean {
|
|
891
|
-
return IsPlayerRaceCheckpointActive(this.id);
|
|
892
|
-
}
|
|
893
|
-
getRaceCheckpoint() {
|
|
894
|
-
return GetPlayerRaceCheckpoint(this.id);
|
|
895
|
-
}
|
|
896
|
-
getWorldBounds() {
|
|
897
|
-
GetPlayerWorldBounds(this.id);
|
|
898
|
-
}
|
|
899
|
-
isInModShop(): boolean {
|
|
900
|
-
return IsPlayerInModShop(this.id);
|
|
901
|
-
}
|
|
902
|
-
getSirenState(): number {
|
|
903
|
-
return GetPlayerSirenState(this.id);
|
|
904
|
-
}
|
|
905
|
-
getLandingGearState(): number {
|
|
906
|
-
return GetPlayerLandingGearState(this.id);
|
|
907
|
-
}
|
|
908
|
-
getHydraReactorAngle(): number {
|
|
909
|
-
return GetPlayerHydraReactorAngle(this.id);
|
|
910
|
-
}
|
|
911
|
-
getTrainSpeed(): number {
|
|
912
|
-
return GetPlayerTrainSpeed(this.id);
|
|
913
|
-
}
|
|
914
|
-
getZAim(): number {
|
|
915
|
-
return GetPlayerZAim(this.id);
|
|
916
|
-
}
|
|
917
|
-
getSurfingOffsets() {
|
|
918
|
-
return GetPlayerSurfingOffsets(this.id);
|
|
919
|
-
}
|
|
920
|
-
getRotationQuat() {
|
|
921
|
-
return GetPlayerRotationQuat(this.id);
|
|
922
|
-
}
|
|
923
|
-
getDialogID(): number {
|
|
924
|
-
return GetPlayerDialogID(this.id);
|
|
925
|
-
}
|
|
926
|
-
getSpectateID(): number {
|
|
927
|
-
return GetPlayerSpectateID(this.id);
|
|
928
|
-
}
|
|
929
|
-
getSpectateType(): SpectateModesEnum {
|
|
930
|
-
return GetPlayerSpectateType(this.id);
|
|
931
|
-
}
|
|
932
|
-
getRawIp(): string {
|
|
933
|
-
return GetPlayerRawIp(this.id);
|
|
934
|
-
}
|
|
935
|
-
setGravity(gravity: number): number {
|
|
936
|
-
return SetPlayerGravity(this.id, gravity);
|
|
937
|
-
}
|
|
938
|
-
getGravity(): number {
|
|
939
|
-
return GetPlayerGravity(this.id);
|
|
940
|
-
}
|
|
941
|
-
setAdmin(admin: boolean) {
|
|
942
|
-
return SetPlayerAdmin(this.id, admin);
|
|
943
|
-
}
|
|
944
|
-
isSpawned(): boolean {
|
|
945
|
-
return IsPlayerSpawned(this.id);
|
|
946
|
-
}
|
|
947
|
-
isControllable(): boolean {
|
|
948
|
-
return IsPlayerControllable(this.id);
|
|
949
|
-
}
|
|
950
|
-
isCameraTargetEnabled(): boolean {
|
|
951
|
-
return IsPlayerCameraTargetEnabled(this.id);
|
|
952
|
-
}
|
|
953
|
-
toggleGhostMode(toggle: boolean) {
|
|
954
|
-
return TogglePlayerGhostMode(this.id, toggle);
|
|
955
|
-
}
|
|
956
|
-
getGhostMode(): boolean {
|
|
957
|
-
return GetPlayerGhostMode(this.id);
|
|
958
|
-
}
|
|
959
|
-
getBuildingsRemoved(): number {
|
|
960
|
-
return GetPlayerBuildingsRemoved(this.id);
|
|
961
|
-
}
|
|
962
|
-
getAttachedObject(index: number) {
|
|
963
|
-
return GetPlayerAttachedObject(this.id, index);
|
|
964
|
-
}
|
|
965
|
-
removeWeapon(weaponid: number): number {
|
|
966
|
-
return RemovePlayerWeapon(this.id, weaponid);
|
|
967
|
-
}
|
|
968
|
-
isUsingOfficialClient() {
|
|
969
|
-
return IsPlayerUsingOfficialClient(this.id);
|
|
970
|
-
}
|
|
971
|
-
allowWeapons(allow: boolean) {
|
|
972
|
-
return AllowPlayerWeapons(this.id, allow);
|
|
973
|
-
}
|
|
974
|
-
areWeaponsAllowed() {
|
|
975
|
-
return ArePlayerWeaponsAllowed(this.id);
|
|
976
|
-
}
|
|
977
|
-
gpci(charset?: string) {
|
|
978
|
-
return playerFunc.GPCI(this.id, charset);
|
|
979
|
-
}
|
|
980
|
-
}
|