@open-core/ragemp-adapter 0.1.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 +51 -0
- package/dist/.tsbuildinfo/client.tsbuildinfo +1 -0
- package/dist/.tsbuildinfo/root.tsbuildinfo +1 -0
- package/dist/.tsbuildinfo/server.tsbuildinfo +1 -0
- package/dist/.tsbuildinfo/shared.tsbuildinfo +1 -0
- package/dist/client/create-ragemp-client-adapter.d.ts +9 -0
- package/dist/client/create-ragemp-client-adapter.js +48 -0
- package/dist/client/index.d.ts +9 -0
- package/dist/client/index.js +25 -0
- package/dist/client/key-maps.d.ts +9 -0
- package/dist/client/key-maps.js +128 -0
- package/dist/client/native-chat.d.ts +2 -0
- package/dist/client/native-chat.js +50 -0
- package/dist/client/ragemp-blip-bridge.d.ts +12 -0
- package/dist/client/ragemp-blip-bridge.js +139 -0
- package/dist/client/ragemp-hasher.d.ts +4 -0
- package/dist/client/ragemp-hasher.js +20 -0
- package/dist/client/ragemp-local-player-bridge.d.ts +8 -0
- package/dist/client/ragemp-local-player-bridge.js +26 -0
- package/dist/client/ragemp-log-console.d.ts +11 -0
- package/dist/client/ragemp-log-console.js +75 -0
- package/dist/client/ragemp-marker-bridge.d.ts +11 -0
- package/dist/client/ragemp-marker-bridge.js +57 -0
- package/dist/client/ragemp-notification-bridge.d.ts +5 -0
- package/dist/client/ragemp-notification-bridge.js +70 -0
- package/dist/client/ragemp-platform-bridge.d.ts +141 -0
- package/dist/client/ragemp-platform-bridge.js +479 -0
- package/dist/client/ragemp-runtime-bridge.d.ts +30 -0
- package/dist/client/ragemp-runtime-bridge.js +119 -0
- package/dist/client/ragemp-runtime-globals.d.ts +5 -0
- package/dist/client/ragemp-runtime-globals.js +57 -0
- package/dist/client/ragemp-spawn-bridge.d.ts +15 -0
- package/dist/client/ragemp-spawn-bridge.js +107 -0
- package/dist/client/ragemp-webview-bridge.d.ts +22 -0
- package/dist/client/ragemp-webview-bridge.js +131 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +20 -0
- package/dist/server/create-ragemp-server-adapter.d.ts +9 -0
- package/dist/server/create-ragemp-server-adapter.js +54 -0
- package/dist/server/index.d.ts +11 -0
- package/dist/server/index.js +27 -0
- package/dist/server/ragemp-capabilities.d.ts +14 -0
- package/dist/server/ragemp-capabilities.js +36 -0
- package/dist/server/ragemp-engine-events.d.ts +11 -0
- package/dist/server/ragemp-engine-events.js +72 -0
- package/dist/server/ragemp-entity-server.d.ts +29 -0
- package/dist/server/ragemp-entity-server.js +122 -0
- package/dist/server/ragemp-exports.d.ts +7 -0
- package/dist/server/ragemp-exports.js +36 -0
- package/dist/server/ragemp-hasher.d.ts +7 -0
- package/dist/server/ragemp-hasher.js +23 -0
- package/dist/server/ragemp-npc-lifecycle-server.d.ts +9 -0
- package/dist/server/ragemp-npc-lifecycle-server.js +51 -0
- package/dist/server/ragemp-ped-server.d.ts +8 -0
- package/dist/server/ragemp-ped-server.js +37 -0
- package/dist/server/ragemp-player-appearance-lifecycle-server.d.ts +19 -0
- package/dist/server/ragemp-player-appearance-lifecycle-server.js +66 -0
- package/dist/server/ragemp-player-lifecycle-server.d.ts +7 -0
- package/dist/server/ragemp-player-lifecycle-server.js +40 -0
- package/dist/server/ragemp-player-server.d.ts +20 -0
- package/dist/server/ragemp-player-server.js +89 -0
- package/dist/server/ragemp-player-state-sync-server.d.ts +7 -0
- package/dist/server/ragemp-player-state-sync-server.js +29 -0
- package/dist/server/ragemp-playerinfo.d.ts +6 -0
- package/dist/server/ragemp-playerinfo.js +19 -0
- package/dist/server/ragemp-resourceinfo.d.ts +5 -0
- package/dist/server/ragemp-resourceinfo.js +25 -0
- package/dist/server/ragemp-tick.d.ts +7 -0
- package/dist/server/ragemp-tick.js +24 -0
- package/dist/server/ragemp-vehicle-lifecycle-server.d.ts +10 -0
- package/dist/server/ragemp-vehicle-lifecycle-server.js +57 -0
- package/dist/server/ragemp-vehicle-server.d.ts +15 -0
- package/dist/server/ragemp-vehicle-server.js +59 -0
- package/dist/shared/exports-registry.d.ts +29 -0
- package/dist/shared/exports-registry.js +87 -0
- package/dist/shared/transport/adapter.d.ts +8 -0
- package/dist/shared/transport/adapter.js +18 -0
- package/dist/shared/transport/helpers.d.ts +24 -0
- package/dist/shared/transport/helpers.js +70 -0
- package/dist/shared/transport/ragemp.events.d.ts +10 -0
- package/dist/shared/transport/ragemp.events.js +45 -0
- package/dist/shared/transport/ragemp.rpc.d.ts +27 -0
- package/dist/shared/transport/ragemp.rpc.js +181 -0
- package/package.json +64 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.enableRageMPNativeChat = enableRageMPNativeChat;
|
|
4
|
+
const nativeChatGlobal = globalThis;
|
|
5
|
+
const CHAT_TYPE_COLORS = {
|
|
6
|
+
chat: { r: 255, g: 255, b: 255 },
|
|
7
|
+
error: { r: 224, g: 62, b: 62 },
|
|
8
|
+
success: { r: 88, g: 196, b: 110 },
|
|
9
|
+
warning: { r: 232, g: 181, b: 55 },
|
|
10
|
+
};
|
|
11
|
+
function toHex(color) {
|
|
12
|
+
const part = (value) => Math.max(0, Math.min(255, value)).toString(16).padStart(2, '0');
|
|
13
|
+
return `${part(color.r)}${part(color.g)}${part(color.b)}`;
|
|
14
|
+
}
|
|
15
|
+
function pushNativeChatLine(text, color) {
|
|
16
|
+
try {
|
|
17
|
+
mp.gui.chat.activate(true);
|
|
18
|
+
mp.gui.chat.show(true);
|
|
19
|
+
mp.gui.chat.push(`!{${toHex(color)}}${text}`);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
// Ignore chat output when RageMP chat runtime is not ready yet.
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function formatPayload(payload) {
|
|
26
|
+
const [author, message] = payload.args ?? ['SYSTEM', ''];
|
|
27
|
+
return {
|
|
28
|
+
text: author ? `${author}: ${message}` : String(message),
|
|
29
|
+
color: payload.color ?? CHAT_TYPE_COLORS.chat,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function enableRageMPNativeChat(events) {
|
|
33
|
+
if (nativeChatGlobal.__OPENCORE_RAGEMP_NATIVE_CHAT_ENABLED__)
|
|
34
|
+
return;
|
|
35
|
+
nativeChatGlobal.__OPENCORE_RAGEMP_NATIVE_CHAT_ENABLED__ = true;
|
|
36
|
+
events.on('core:chat:addMessage', (_ctx, payload) => {
|
|
37
|
+
const { text, color } = formatPayload(payload);
|
|
38
|
+
pushNativeChatLine(text, color);
|
|
39
|
+
});
|
|
40
|
+
events.on('core:chat:message', (_ctx, payload) => {
|
|
41
|
+
const { text, color } = formatPayload(payload);
|
|
42
|
+
pushNativeChatLine(text, color);
|
|
43
|
+
});
|
|
44
|
+
events.on('core:chat:send', (_ctx, message, type = 'chat') => {
|
|
45
|
+
pushNativeChatLine(message, CHAT_TYPE_COLORS[type] ?? CHAT_TYPE_COLORS.chat);
|
|
46
|
+
});
|
|
47
|
+
events.on('core:chat:clear', () => {
|
|
48
|
+
// RageMP native chat has no public clear API.
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IClientBlipBridge, type ClientBlipDefinition } from '@open-core/framework/contracts/client';
|
|
2
|
+
export declare class RageMPClientBlipBridge extends IClientBlipBridge {
|
|
3
|
+
private readonly blips;
|
|
4
|
+
private readonly definitions;
|
|
5
|
+
create(id: string, definition: ClientBlipDefinition): void;
|
|
6
|
+
update(id: string, patch: Partial<ClientBlipDefinition>): boolean;
|
|
7
|
+
exists(id: string): boolean;
|
|
8
|
+
remove(id: string): boolean;
|
|
9
|
+
clear(): void;
|
|
10
|
+
private createRef;
|
|
11
|
+
private apply;
|
|
12
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RageMPClientBlipBridge = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const client_1 = require("@open-core/framework/contracts/client");
|
|
12
|
+
function toVector3(position) {
|
|
13
|
+
return new mp.Vector3(position.x, position.y, position.z);
|
|
14
|
+
}
|
|
15
|
+
let RageMPClientBlipBridge = class RageMPClientBlipBridge extends client_1.IClientBlipBridge {
|
|
16
|
+
constructor() {
|
|
17
|
+
super(...arguments);
|
|
18
|
+
this.blips = new Map();
|
|
19
|
+
this.definitions = new Map();
|
|
20
|
+
}
|
|
21
|
+
create(id, definition) {
|
|
22
|
+
this.remove(id);
|
|
23
|
+
const ref = this.createRef(definition);
|
|
24
|
+
if (!ref)
|
|
25
|
+
return;
|
|
26
|
+
this.blips.set(id, ref);
|
|
27
|
+
this.definitions.set(id, { ...definition });
|
|
28
|
+
this.apply(id, definition);
|
|
29
|
+
}
|
|
30
|
+
update(id, patch) {
|
|
31
|
+
const current = this.definitions.get(id);
|
|
32
|
+
if (!current)
|
|
33
|
+
return false;
|
|
34
|
+
const next = { ...current, ...patch };
|
|
35
|
+
const changedAnchor = patch.position !== undefined || patch.entity !== undefined || patch.radius !== undefined;
|
|
36
|
+
if (changedAnchor) {
|
|
37
|
+
this.create(id, next);
|
|
38
|
+
return this.exists(id);
|
|
39
|
+
}
|
|
40
|
+
this.definitions.set(id, next);
|
|
41
|
+
this.apply(id, next);
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
exists(id) {
|
|
45
|
+
return this.blips.has(id);
|
|
46
|
+
}
|
|
47
|
+
remove(id) {
|
|
48
|
+
const ref = this.blips.get(id);
|
|
49
|
+
if (!ref)
|
|
50
|
+
return false;
|
|
51
|
+
if (ref.kind === 'mp')
|
|
52
|
+
ref.blip.destroy();
|
|
53
|
+
else
|
|
54
|
+
mp.game.ui.removeBlip(ref.handle);
|
|
55
|
+
this.blips.delete(id);
|
|
56
|
+
this.definitions.delete(id);
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
clear() {
|
|
60
|
+
for (const id of this.blips.keys())
|
|
61
|
+
this.remove(id);
|
|
62
|
+
}
|
|
63
|
+
createRef(definition) {
|
|
64
|
+
if (definition.entity !== undefined) {
|
|
65
|
+
return { kind: 'native', handle: mp.game.ui.addBlipForEntity(definition.entity) };
|
|
66
|
+
}
|
|
67
|
+
if (definition.radius !== undefined && definition.position) {
|
|
68
|
+
return {
|
|
69
|
+
kind: 'native',
|
|
70
|
+
handle: mp.game.ui.addBlipForRadius(definition.position.x, definition.position.y, definition.position.z, definition.radius),
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
if (!definition.position)
|
|
74
|
+
return null;
|
|
75
|
+
return {
|
|
76
|
+
kind: 'mp',
|
|
77
|
+
blip: mp.blips.new(definition.icon ?? 1, toVector3(definition.position), {
|
|
78
|
+
color: definition.color,
|
|
79
|
+
scale: definition.scale,
|
|
80
|
+
shortRange: definition.shortRange,
|
|
81
|
+
name: definition.label,
|
|
82
|
+
alpha: definition.alpha,
|
|
83
|
+
}),
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
apply(id, definition) {
|
|
87
|
+
const ref = this.blips.get(id);
|
|
88
|
+
if (!ref)
|
|
89
|
+
return;
|
|
90
|
+
if (ref.kind === 'mp') {
|
|
91
|
+
if (definition.position)
|
|
92
|
+
ref.blip.setCoords(toVector3(definition.position));
|
|
93
|
+
if (definition.icon !== undefined)
|
|
94
|
+
ref.blip.setSprite(definition.icon);
|
|
95
|
+
if (definition.color !== undefined)
|
|
96
|
+
ref.blip.setColour(definition.color);
|
|
97
|
+
if (definition.scale !== undefined)
|
|
98
|
+
ref.blip.setScale(definition.scale);
|
|
99
|
+
if (definition.shortRange !== undefined)
|
|
100
|
+
ref.blip.setAsShortRange(definition.shortRange);
|
|
101
|
+
if (definition.route !== undefined)
|
|
102
|
+
ref.blip.setRoute(definition.route);
|
|
103
|
+
if (definition.routeColor !== undefined)
|
|
104
|
+
ref.blip.setRouteColour(definition.routeColor);
|
|
105
|
+
if (definition.alpha !== undefined)
|
|
106
|
+
ref.blip.setAlpha(definition.alpha);
|
|
107
|
+
if (definition.visible !== undefined)
|
|
108
|
+
ref.blip.setDisplay(definition.visible ? 4 : 0);
|
|
109
|
+
if (definition.label) {
|
|
110
|
+
;
|
|
111
|
+
ref.blip.name = definition.label;
|
|
112
|
+
}
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const handle = ref.handle;
|
|
116
|
+
if (definition.position)
|
|
117
|
+
mp.game.ui.setBlipCoords(handle, definition.position.x, definition.position.y, definition.position.z);
|
|
118
|
+
if (definition.icon !== undefined)
|
|
119
|
+
mp.game.ui.setBlipSprite(handle, definition.icon);
|
|
120
|
+
if (definition.color !== undefined)
|
|
121
|
+
mp.game.ui.setBlipColour(handle, definition.color);
|
|
122
|
+
if (definition.scale !== undefined)
|
|
123
|
+
mp.game.ui.setBlipScale(handle, definition.scale);
|
|
124
|
+
if (definition.shortRange !== undefined)
|
|
125
|
+
mp.game.ui.setBlipAsShortRange(handle, definition.shortRange);
|
|
126
|
+
if (definition.route !== undefined)
|
|
127
|
+
mp.game.ui.setBlipRoute(handle, definition.route);
|
|
128
|
+
if (definition.routeColor !== undefined)
|
|
129
|
+
mp.game.ui.setBlipRouteColour(handle, definition.routeColor);
|
|
130
|
+
if (definition.alpha !== undefined)
|
|
131
|
+
mp.game.ui.setBlipAlpha(handle, definition.alpha);
|
|
132
|
+
if (definition.visible !== undefined)
|
|
133
|
+
mp.game.ui.setBlipDisplay(handle, definition.visible ? 4 : 0);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
exports.RageMPClientBlipBridge = RageMPClientBlipBridge;
|
|
137
|
+
exports.RageMPClientBlipBridge = RageMPClientBlipBridge = __decorate([
|
|
138
|
+
(0, tsyringe_1.injectable)()
|
|
139
|
+
], RageMPClientBlipBridge);
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RageMPClientHasher = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const contracts_1 = require("@open-core/framework/contracts");
|
|
12
|
+
let RageMPClientHasher = class RageMPClientHasher extends contracts_1.IHasher {
|
|
13
|
+
getHashKey(str) {
|
|
14
|
+
return mp.game.joaat(str);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
exports.RageMPClientHasher = RageMPClientHasher;
|
|
18
|
+
exports.RageMPClientHasher = RageMPClientHasher = __decorate([
|
|
19
|
+
(0, tsyringe_1.injectable)()
|
|
20
|
+
], RageMPClientHasher);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IClientLocalPlayerBridge } from '@open-core/framework/contracts/client';
|
|
2
|
+
import type { Vector3 } from '@open-core/framework/kernel';
|
|
3
|
+
/**
|
|
4
|
+
* RAGE Multiplayer implementation of local player movement helpers.
|
|
5
|
+
*/
|
|
6
|
+
export declare class RageMPLocalPlayerBridge extends IClientLocalPlayerBridge {
|
|
7
|
+
setPosition(position: Vector3, heading?: number): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RageMPLocalPlayerBridge = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const client_1 = require("@open-core/framework/contracts/client");
|
|
12
|
+
/**
|
|
13
|
+
* RAGE Multiplayer implementation of local player movement helpers.
|
|
14
|
+
*/
|
|
15
|
+
let RageMPLocalPlayerBridge = class RageMPLocalPlayerBridge extends client_1.IClientLocalPlayerBridge {
|
|
16
|
+
setPosition(position, heading) {
|
|
17
|
+
mp.players.local.position = new mp.Vector3(position.x, position.y, position.z);
|
|
18
|
+
if (typeof heading === 'number') {
|
|
19
|
+
mp.players.local.heading = heading;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.RageMPLocalPlayerBridge = RageMPLocalPlayerBridge;
|
|
24
|
+
exports.RageMPLocalPlayerBridge = RageMPLocalPlayerBridge = __decorate([
|
|
25
|
+
(0, tsyringe_1.injectable)()
|
|
26
|
+
], RageMPLocalPlayerBridge);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IClientLogConsole, type ClientLogConsoleCapabilities } from '@open-core/framework/contracts/client';
|
|
2
|
+
export declare class RageMPClientLogConsole extends IClientLogConsole {
|
|
3
|
+
getCapabilities(): ClientLogConsoleCapabilities;
|
|
4
|
+
trace(message: string, details?: unknown): void;
|
|
5
|
+
debug(message: string, details?: unknown): void;
|
|
6
|
+
info(message: string, details?: unknown): void;
|
|
7
|
+
warn(message: string, details?: unknown): void;
|
|
8
|
+
error(message: string, details?: unknown): void;
|
|
9
|
+
private write;
|
|
10
|
+
}
|
|
11
|
+
export declare function installRageMPClientLogConsole(logConsole: IClientLogConsole): void;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RageMPClientLogConsole = void 0;
|
|
10
|
+
exports.installRageMPClientLogConsole = installRageMPClientLogConsole;
|
|
11
|
+
const tsyringe_1 = require("tsyringe");
|
|
12
|
+
const client_1 = require("@open-core/framework/contracts/client");
|
|
13
|
+
const kernel_1 = require("@open-core/framework/kernel");
|
|
14
|
+
const RAGEMP_CLIENT_LOG_CAPABILITIES = {
|
|
15
|
+
supportsColors: false,
|
|
16
|
+
supportsStructuredData: false,
|
|
17
|
+
supportsRichFormatting: false,
|
|
18
|
+
};
|
|
19
|
+
function stringifyDetails(details) {
|
|
20
|
+
if (details === undefined)
|
|
21
|
+
return '';
|
|
22
|
+
if (typeof details === 'string')
|
|
23
|
+
return details;
|
|
24
|
+
try {
|
|
25
|
+
return JSON.stringify(details);
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return String(details);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
let RageMPClientLogConsole = class RageMPClientLogConsole extends client_1.IClientLogConsole {
|
|
32
|
+
getCapabilities() {
|
|
33
|
+
return RAGEMP_CLIENT_LOG_CAPABILITIES;
|
|
34
|
+
}
|
|
35
|
+
trace(message, details) {
|
|
36
|
+
this.write('logInfo', `[TRACE] ${message}`, details);
|
|
37
|
+
}
|
|
38
|
+
debug(message, details) {
|
|
39
|
+
this.write('logInfo', `[DEBUG] ${message}`, details);
|
|
40
|
+
}
|
|
41
|
+
info(message, details) {
|
|
42
|
+
this.write('logInfo', message, details);
|
|
43
|
+
}
|
|
44
|
+
warn(message, details) {
|
|
45
|
+
this.write('logWarning', message, details);
|
|
46
|
+
}
|
|
47
|
+
error(message, details) {
|
|
48
|
+
this.write('logError', message, details);
|
|
49
|
+
}
|
|
50
|
+
write(method, message, details) {
|
|
51
|
+
const suffix = stringifyDetails(details);
|
|
52
|
+
const output = suffix ? `${message} ${suffix}` : message;
|
|
53
|
+
try {
|
|
54
|
+
mp.console[method](output);
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
if (method === 'logError') {
|
|
58
|
+
console.error(output);
|
|
59
|
+
}
|
|
60
|
+
else if (method === 'logWarning') {
|
|
61
|
+
console.warn(output);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
console.info(output);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
exports.RageMPClientLogConsole = RageMPClientLogConsole;
|
|
70
|
+
exports.RageMPClientLogConsole = RageMPClientLogConsole = __decorate([
|
|
71
|
+
(0, tsyringe_1.injectable)()
|
|
72
|
+
], RageMPClientLogConsole);
|
|
73
|
+
function installRageMPClientLogConsole(logConsole) {
|
|
74
|
+
(0, kernel_1.setClientLogConsole)(logConsole);
|
|
75
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { IClientMarkerBridge, type ClientMarkerDefinition } from '@open-core/framework/contracts/client';
|
|
2
|
+
export declare class RageMPClientMarkerBridge extends IClientMarkerBridge {
|
|
3
|
+
private readonly markers;
|
|
4
|
+
constructor();
|
|
5
|
+
create(id: string, definition: ClientMarkerDefinition): void;
|
|
6
|
+
update(id: string, patch: Partial<ClientMarkerDefinition>): boolean;
|
|
7
|
+
remove(id: string): boolean;
|
|
8
|
+
exists(id: string): boolean;
|
|
9
|
+
clear(): void;
|
|
10
|
+
draw(definition: ClientMarkerDefinition): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.RageMPClientMarkerBridge = void 0;
|
|
13
|
+
const tsyringe_1 = require("tsyringe");
|
|
14
|
+
const client_1 = require("@open-core/framework/contracts/client");
|
|
15
|
+
let RageMPClientMarkerBridge = class RageMPClientMarkerBridge extends client_1.IClientMarkerBridge {
|
|
16
|
+
constructor() {
|
|
17
|
+
super();
|
|
18
|
+
this.markers = new Map();
|
|
19
|
+
mp.events.add('render', () => {
|
|
20
|
+
for (const marker of this.markers.values()) {
|
|
21
|
+
if (marker.visible === false)
|
|
22
|
+
continue;
|
|
23
|
+
this.draw(marker);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
create(id, definition) {
|
|
28
|
+
this.markers.set(id, { ...definition });
|
|
29
|
+
}
|
|
30
|
+
update(id, patch) {
|
|
31
|
+
const current = this.markers.get(id);
|
|
32
|
+
if (!current)
|
|
33
|
+
return false;
|
|
34
|
+
this.markers.set(id, { ...current, ...patch });
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
remove(id) {
|
|
38
|
+
return this.markers.delete(id);
|
|
39
|
+
}
|
|
40
|
+
exists(id) {
|
|
41
|
+
return this.markers.has(id);
|
|
42
|
+
}
|
|
43
|
+
clear() {
|
|
44
|
+
this.markers.clear();
|
|
45
|
+
}
|
|
46
|
+
draw(definition) {
|
|
47
|
+
const rotation = definition.rotation ?? { x: 0, y: 0, z: 0 };
|
|
48
|
+
const size = definition.size ?? definition.scale ?? { x: 1, y: 1, z: 1 };
|
|
49
|
+
const color = definition.color ?? { r: 255, g: 0, b: 0, a: 200 };
|
|
50
|
+
mp.game.graphics.drawMarker(definition.variant ?? definition.type ?? 1, definition.position.x, definition.position.y, definition.position.z, 0, 0, 0, rotation.x, rotation.y, rotation.z, size.x, size.y, size.z, color.r, color.g, color.b, color.a, definition.bob ?? definition.bobUpAndDown ?? false, definition.faceCamera ?? false, 2, definition.rotate ?? false, null, null, definition.drawOnEnts ?? false);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
exports.RageMPClientMarkerBridge = RageMPClientMarkerBridge;
|
|
54
|
+
exports.RageMPClientMarkerBridge = RageMPClientMarkerBridge = __decorate([
|
|
55
|
+
(0, tsyringe_1.injectable)(),
|
|
56
|
+
__metadata("design:paramtypes", [])
|
|
57
|
+
], RageMPClientMarkerBridge);
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { IClientNotificationBridge, type ClientNotificationDefinition } from '@open-core/framework/contracts/client';
|
|
2
|
+
export declare class RageMPClientNotificationBridge extends IClientNotificationBridge {
|
|
3
|
+
show(definition: ClientNotificationDefinition): void;
|
|
4
|
+
clear(scope?: 'help' | 'subtitle' | 'all'): void;
|
|
5
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.RageMPClientNotificationBridge = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const client_1 = require("@open-core/framework/contracts/client");
|
|
12
|
+
const ICON_MAP = {
|
|
13
|
+
info: 1,
|
|
14
|
+
success: 2,
|
|
15
|
+
warning: 3,
|
|
16
|
+
error: 4,
|
|
17
|
+
};
|
|
18
|
+
let RageMPClientNotificationBridge = class RageMPClientNotificationBridge extends client_1.IClientNotificationBridge {
|
|
19
|
+
show(definition) {
|
|
20
|
+
switch (definition.kind) {
|
|
21
|
+
case 'feed':
|
|
22
|
+
mp.game.ui.setNotificationTextEntry('STRING');
|
|
23
|
+
mp.game.ui.addTextComponentSubstringPlayerName(definition.message);
|
|
24
|
+
mp.game.ui.drawNotification(definition.blink ?? false, definition.saveToBrief ?? true);
|
|
25
|
+
return;
|
|
26
|
+
case 'typed':
|
|
27
|
+
mp.game.ui.beginTextCommandThefeedPost('STRING');
|
|
28
|
+
mp.game.ui.addTextComponentSubstringPlayerName(definition.message);
|
|
29
|
+
mp.game.ui.endTextCommandThefeedPostMessagetext('CHAR_SOCIAL_CLUB', 'CHAR_SOCIAL_CLUB', true, ICON_MAP[definition.type ?? 'info'], '', definition.message);
|
|
30
|
+
return;
|
|
31
|
+
case 'advanced':
|
|
32
|
+
mp.game.ui.setNotificationTextEntry('STRING');
|
|
33
|
+
mp.game.ui.addTextComponentSubstringPlayerName(definition.message);
|
|
34
|
+
mp.game.ui.setNotificationMessage('CHAR_HUMANDEFAULT', 'CHAR_HUMANDEFAULT', definition.flash ?? false, ICON_MAP[definition.type ?? 'info'], definition.title ?? '', definition.subtitle ?? '');
|
|
35
|
+
mp.game.ui.drawNotification(definition.flash ?? false, definition.saveToBrief ?? true);
|
|
36
|
+
return;
|
|
37
|
+
case 'help':
|
|
38
|
+
mp.game.ui.beginTextCommandDisplayHelp('STRING');
|
|
39
|
+
mp.game.ui.addTextComponentSubstringPlayerName(definition.message);
|
|
40
|
+
mp.game.ui.endTextCommandDisplayHelp(0, definition.looped ?? false, definition.beep ?? true, definition.duration ?? 5000);
|
|
41
|
+
return;
|
|
42
|
+
case 'subtitle':
|
|
43
|
+
mp.game.ui.beginTextCommandPrint('STRING');
|
|
44
|
+
mp.game.ui.addTextComponentSubstringPlayerName(definition.message);
|
|
45
|
+
mp.game.ui.endTextCommandPrint(definition.duration ?? 2500, true);
|
|
46
|
+
return;
|
|
47
|
+
case 'floating':
|
|
48
|
+
if (!definition.worldPosition)
|
|
49
|
+
return;
|
|
50
|
+
mp.game.ui.setFloatingHelpTextWorldPosition(1, definition.worldPosition.x, definition.worldPosition.y, definition.worldPosition.z);
|
|
51
|
+
mp.game.ui.setFloatingHelpTextStyle(1, 1, 2, -1, 3, 0);
|
|
52
|
+
mp.game.ui.beginTextCommandDisplayHelp('STRING');
|
|
53
|
+
mp.game.ui.addTextComponentSubstringPlayerName(definition.message);
|
|
54
|
+
mp.game.ui.endTextCommandDisplayHelp(2, false, false, -1);
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
clear(scope) {
|
|
59
|
+
if (!scope || scope === 'all' || scope === 'help') {
|
|
60
|
+
mp.game.ui.clearAllHelpMessages();
|
|
61
|
+
}
|
|
62
|
+
if (!scope || scope === 'all' || scope === 'subtitle') {
|
|
63
|
+
mp.game.ui.clearPrints();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
exports.RageMPClientNotificationBridge = RageMPClientNotificationBridge;
|
|
68
|
+
exports.RageMPClientNotificationBridge = RageMPClientNotificationBridge = __decorate([
|
|
69
|
+
(0, tsyringe_1.injectable)()
|
|
70
|
+
], RageMPClientNotificationBridge);
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { IClientPlatformBridge, IGtaPedAppearanceBridge } from '@open-core/framework/contracts/client';
|
|
2
|
+
import type { Vector3 as CoreVector3 } from '@open-core/framework/kernel';
|
|
3
|
+
import type { HeadBlendData } from '@open-core/framework/kernel';
|
|
4
|
+
export declare class RageMPPedAppearanceClient extends IGtaPedAppearanceBridge {
|
|
5
|
+
setComponentVariation(ped: number, componentId: number, drawableId: number, textureId: number): void;
|
|
6
|
+
setPropIndex(ped: number, propId: number, drawableId: number, textureId: number): void;
|
|
7
|
+
clearProp(ped: number, propId: number): void;
|
|
8
|
+
setDefaultComponentVariation(ped: number): void;
|
|
9
|
+
setHeadBlendData(ped: number, data: HeadBlendData): void;
|
|
10
|
+
setFaceFeature(ped: number, index: number, scale: number): void;
|
|
11
|
+
setHeadOverlay(ped: number, overlayId: number, index: number, opacity: number): void;
|
|
12
|
+
setHeadOverlayColor(ped: number, overlayId: number, colorType: number, colorId: number, secondColorId: number): void;
|
|
13
|
+
setHairColor(ped: number, colorId: number, highlightColorId: number): void;
|
|
14
|
+
setEyeColor(ped: number, colorId: number): void;
|
|
15
|
+
addDecoration(ped: number, collectionHash: number, overlayHash: number): void;
|
|
16
|
+
clearDecorations(ped: number): void;
|
|
17
|
+
getDrawableVariation(ped: number, componentId: number): number;
|
|
18
|
+
getTextureVariation(ped: number, componentId: number): number;
|
|
19
|
+
getPropIndex(ped: number, propId: number): number;
|
|
20
|
+
getPropTextureIndex(ped: number, propId: number): number;
|
|
21
|
+
getNumDrawableVariations(ped: number, componentId: number): number;
|
|
22
|
+
getNumTextureVariations(ped: number, componentId: number, drawableId: number): number;
|
|
23
|
+
getNumPropDrawableVariations(ped: number, propId: number): number;
|
|
24
|
+
getNumPropTextureVariations(ped: number, propId: number, drawableId: number): number;
|
|
25
|
+
getNumOverlayValues(overlayId: number): number;
|
|
26
|
+
getNumHairColors(): number;
|
|
27
|
+
getNumMakeupColors(): number;
|
|
28
|
+
}
|
|
29
|
+
export declare class RageMPPlatformBridge extends IClientPlatformBridge {
|
|
30
|
+
private playerReady;
|
|
31
|
+
constructor();
|
|
32
|
+
getHashKey(value: string): number;
|
|
33
|
+
getLocalPlayerPed(): number;
|
|
34
|
+
getEntityCoords(entity: number): CoreVector3;
|
|
35
|
+
getWorldPositionOfEntityBone(entity: number, bone: number): CoreVector3;
|
|
36
|
+
getGameplayCamCoords(): CoreVector3;
|
|
37
|
+
worldToScreen(position: CoreVector3): {
|
|
38
|
+
onScreen: boolean;
|
|
39
|
+
x: number;
|
|
40
|
+
y: number;
|
|
41
|
+
};
|
|
42
|
+
isModelInCdimage(hash: number): boolean;
|
|
43
|
+
isModelValid(hash: number): boolean;
|
|
44
|
+
isModelAVehicle(hash: number): boolean;
|
|
45
|
+
isModelAPed(hash: number): boolean;
|
|
46
|
+
requestModel(hash: number): void;
|
|
47
|
+
hasModelLoaded(hash: number): boolean;
|
|
48
|
+
setModelAsNoLongerNeeded(hash: number): void;
|
|
49
|
+
requestAnimDict(dict: string): void;
|
|
50
|
+
hasAnimDictLoaded(dict: string): boolean;
|
|
51
|
+
removeAnimDict(dict: string): void;
|
|
52
|
+
doesEntityExist(entity: number): boolean;
|
|
53
|
+
setEntityAsMissionEntity(entity: number, mission: boolean, scriptHostObject: boolean): void;
|
|
54
|
+
setBlockingOfNonTemporaryEvents(ped: number, toggle: boolean): void;
|
|
55
|
+
setPedRelationshipGroupHash(ped: number, groupHash: number): void;
|
|
56
|
+
createPed(pedType: number, modelHash: number, position: CoreVector3, heading: number, networked: boolean, scriptHostPed: boolean): number;
|
|
57
|
+
deletePed(ped: number): void;
|
|
58
|
+
createObject(modelHash: number, position: CoreVector3, networked: boolean, dynamic: boolean, _placeOnGround: boolean): number;
|
|
59
|
+
deleteEntity(entity: number): void;
|
|
60
|
+
attachEntityToEntity(entity: number, target: number, boneIndex: number, offset: CoreVector3, rotation: CoreVector3): void;
|
|
61
|
+
getPedBoneIndex(ped: number, bone: number): number;
|
|
62
|
+
taskPlayAnim(ped: number, dict: string, anim: string, blendInSpeed: number, blendOutSpeed: number, duration: number, flags: number, playbackRate: number): void;
|
|
63
|
+
stopAnimTask(ped: number, dict: string, anim: string, blendOutSpeed: number): void;
|
|
64
|
+
clearPedTasks(ped: number): void;
|
|
65
|
+
clearPedTasksImmediately(ped: number): void;
|
|
66
|
+
freezeEntityPosition(entity: number, toggle: boolean): void;
|
|
67
|
+
setEntityInvincible(entity: number, toggle: boolean): void;
|
|
68
|
+
giveWeaponToPed(ped: number, weaponHash: number, ammoCount: number, _hidden: boolean, forceInHand: boolean): void;
|
|
69
|
+
removeAllPedWeapons(ped: number, _includeCurrentWeapon: boolean): void;
|
|
70
|
+
getClosestPed(position: CoreVector3, radius: number): number | null;
|
|
71
|
+
getNearbyPeds(position: CoreVector3, radius: number, excludeEntity?: number): number[];
|
|
72
|
+
taskLookAtEntity(ped: number, entity: number, duration: number): void;
|
|
73
|
+
taskLookAtCoord(ped: number, position: CoreVector3, duration: number): void;
|
|
74
|
+
taskGoStraightToCoord(ped: number, position: CoreVector3, speed: number): void;
|
|
75
|
+
setPedCombatAttributes(): void;
|
|
76
|
+
createVehicle(modelHash: number, position: CoreVector3, heading: number, networked: boolean, scriptHostVehicle: boolean): number;
|
|
77
|
+
deleteVehicle(vehicle: number): void;
|
|
78
|
+
setVehicleOnGroundProperly(vehicle: number): void;
|
|
79
|
+
getVehicleColours(vehicle: number): [number, number];
|
|
80
|
+
setVehicleColours(vehicle: number, primary: number, secondary: number): void;
|
|
81
|
+
setVehicleNumberPlateText(vehicle: number, plateText: string): void;
|
|
82
|
+
taskWarpPedIntoVehicle(ped: number, vehicle: number, seatIndex: number): void;
|
|
83
|
+
taskLeaveVehicle(ped: number, vehicle: number, flags: number): void;
|
|
84
|
+
getClosestVehicle(position: CoreVector3, radius: number): number | null;
|
|
85
|
+
isPedInAnyVehicle(ped: number): boolean;
|
|
86
|
+
getVehiclePedIsIn(ped: number, lastVehicle: boolean): number | null;
|
|
87
|
+
getPedInVehicleSeat(vehicle: number, seatIndex: number): number | null;
|
|
88
|
+
getEntitySpeed(entity: number): number;
|
|
89
|
+
networkGetNetworkIdFromEntity(entity: number): number;
|
|
90
|
+
networkDoesEntityExistWithNetworkId(networkId: number): boolean;
|
|
91
|
+
networkGetEntityFromNetworkId(networkId: number): number;
|
|
92
|
+
getEntityHeading(entity: number): number;
|
|
93
|
+
getEntityModel(entity: number): number;
|
|
94
|
+
setVehicleModKit(vehicle: number, kit: number): void;
|
|
95
|
+
setVehicleMod(vehicle: number, modType: number, modIndex: number, customTires: boolean): void;
|
|
96
|
+
toggleVehicleMod(vehicle: number, modType: number, toggle: boolean): void;
|
|
97
|
+
setVehicleWheelType(vehicle: number, wheelType: number): void;
|
|
98
|
+
setVehicleWindowTint(vehicle: number, tint: number): void;
|
|
99
|
+
setVehicleLivery(vehicle: number, livery: number): void;
|
|
100
|
+
setVehicleNumberPlateTextIndex(vehicle: number, index: number): void;
|
|
101
|
+
setVehicleNeonLightEnabled(vehicle: number, index: number, enabled: boolean): void;
|
|
102
|
+
setVehicleNeonLightsColour(vehicle: number, r: number, g: number, b: number): void;
|
|
103
|
+
setVehicleExtra(vehicle: number, extraId: number, disable: boolean): void;
|
|
104
|
+
getVehicleExtraColours(vehicle: number): [number, number];
|
|
105
|
+
setVehicleExtraColours(vehicle: number, pearl: number, wheel: number): void;
|
|
106
|
+
setVehicleFixed(vehicle: number): void;
|
|
107
|
+
setVehicleDeformationFixed(vehicle: number): void;
|
|
108
|
+
setVehicleUndriveable(vehicle: number, toggle: boolean): void;
|
|
109
|
+
setVehicleEngineOn(vehicle: number, value: boolean, instantly: boolean, disableAutoStart: boolean): void;
|
|
110
|
+
setVehicleEngineHealth(vehicle: number, health: number): void;
|
|
111
|
+
setVehiclePetrolTankHealth(vehicle: number, health: number): void;
|
|
112
|
+
setVehicleFuelLevel(_vehicle: number, _level: number): void;
|
|
113
|
+
getVehicleFuelLevel(_vehicle: number): number;
|
|
114
|
+
setVehicleDoorsLocked(vehicle: number, doorLockStatus: number): void;
|
|
115
|
+
setEntityHeading(entity: number, heading: number): void;
|
|
116
|
+
setEntityCoords(entity: number, position: CoreVector3): void;
|
|
117
|
+
setEntityCoordsNoOffset(entity: number, position: CoreVector3): void;
|
|
118
|
+
setEntityHealth(entity: number, health: number): void;
|
|
119
|
+
getEntityMaxHealth(entity: number): number;
|
|
120
|
+
setPedArmour(ped: number, armour: number): void;
|
|
121
|
+
networkIsSessionStarted(): boolean;
|
|
122
|
+
isScreenFadedOut(): boolean;
|
|
123
|
+
isScreenFadingOut(): boolean;
|
|
124
|
+
doScreenFadeOut(ms: number): void;
|
|
125
|
+
isScreenFadedIn(): boolean;
|
|
126
|
+
isScreenFadingIn(): boolean;
|
|
127
|
+
doScreenFadeIn(ms: number): void;
|
|
128
|
+
networkResurrectLocalPlayer(position: CoreVector3, heading: number): void;
|
|
129
|
+
playerId(): number;
|
|
130
|
+
setPlayerModel(_playerId: number, modelHash: number): void;
|
|
131
|
+
requestCollisionAtCoord(position: CoreVector3): void;
|
|
132
|
+
shutdownLoadingScreen(): void;
|
|
133
|
+
shutdownLoadingScreenNui(): void;
|
|
134
|
+
hasCollisionLoadedAroundEntity(_entity: number): boolean;
|
|
135
|
+
resetEntityAlpha(entity: number): void;
|
|
136
|
+
setEntityAlpha(entity: number, alphaLevel: number): void;
|
|
137
|
+
setEntityVisible(entity: number, toggle: boolean): void;
|
|
138
|
+
setEntityCollision(entity: number, toggle: boolean): void;
|
|
139
|
+
getVehicleNumberPlateText(vehicle: number): string;
|
|
140
|
+
requestScriptAudioBank(_bank: string, _networked: boolean): boolean;
|
|
141
|
+
}
|