lenix 1.7.6 → 1.7.7
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/client/client.ts +63 -65
- package/package.json +1 -1
package/client/client.ts
CHANGED
|
@@ -1,54 +1,7 @@
|
|
|
1
1
|
import { repeat } from '../shared/repeat.ts'
|
|
2
2
|
import type { Vec3, Vec4 } from '../shared/types.ts'
|
|
3
3
|
|
|
4
|
-
export const client
|
|
5
|
-
entity: {
|
|
6
|
-
handle: (entityNetId?: number) => number
|
|
7
|
-
netId: (entity?: number) => number
|
|
8
|
-
coords: {
|
|
9
|
-
(excludeH: true, entity?: number, isAlive?: boolean): Vec3;
|
|
10
|
-
(excludeH?: false, entity?: number, isAlive?: boolean): Vec4
|
|
11
|
-
}
|
|
12
|
-
teleport: (
|
|
13
|
-
x: number,
|
|
14
|
-
y: number,
|
|
15
|
-
z: number,
|
|
16
|
-
h?: number,
|
|
17
|
-
entity?: number,
|
|
18
|
-
clearArea?: boolean,
|
|
19
|
-
alive?: boolean,
|
|
20
|
-
deadDisable?: boolean,
|
|
21
|
-
ragdol?: boolean
|
|
22
|
-
) => void
|
|
23
|
-
playAnim: (
|
|
24
|
-
dict: string,
|
|
25
|
-
name: string,
|
|
26
|
-
blendIn?: number,
|
|
27
|
-
blendOut?: number,
|
|
28
|
-
ped?: number,
|
|
29
|
-
duration?: number,
|
|
30
|
-
flag?: number,
|
|
31
|
-
playbackFrom?: number,
|
|
32
|
-
x?: boolean,
|
|
33
|
-
y?: boolean,
|
|
34
|
-
z?: boolean
|
|
35
|
-
) => Promise<void>
|
|
36
|
-
stopAnim: (dict: string, ped?: number) => void
|
|
37
|
-
}
|
|
38
|
-
player: {
|
|
39
|
-
serverId: (playerId?: number) => number
|
|
40
|
-
id: (serverId?: number) => number
|
|
41
|
-
storage: {
|
|
42
|
-
set: <Storage>(
|
|
43
|
-
...args: {
|
|
44
|
-
[K in keyof Storage]: [key: K, value: Storage[K]];
|
|
45
|
-
}[keyof Storage]
|
|
46
|
-
) => void;
|
|
47
|
-
get: <Storage, K extends keyof Storage>(key: K) => Storage[K];
|
|
48
|
-
delete: <Storage>(key: keyof Storage) => void
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
} = {
|
|
4
|
+
export const client = {
|
|
52
5
|
entity: {
|
|
53
6
|
/**
|
|
54
7
|
* Gets the local entity handle from a network ID.
|
|
@@ -64,7 +17,7 @@ export const client: {
|
|
|
64
17
|
* - entity(pedNetId) -> local ped handle
|
|
65
18
|
* - entity() -> your own player ped handle
|
|
66
19
|
*/
|
|
67
|
-
handle: (entityNetId
|
|
20
|
+
handle: (entityNetId: number) => NetworkGetEntityFromNetworkId(entityNetId),
|
|
68
21
|
|
|
69
22
|
/**
|
|
70
23
|
* Gets the network ID for an entity.
|
|
@@ -79,15 +32,15 @@ export const client: {
|
|
|
79
32
|
* - netId(targetPed) -> network ID of that ped
|
|
80
33
|
* - netId() -> network ID of your own player ped
|
|
81
34
|
*/
|
|
82
|
-
netId: (entity
|
|
35
|
+
netId: (entity: number) => NetworkGetNetworkIdFromEntity(entity),
|
|
83
36
|
|
|
84
37
|
/**
|
|
85
38
|
* Gets entity coordinates and heading.
|
|
86
39
|
*/
|
|
87
40
|
coords: (() => {
|
|
88
|
-
function coords(
|
|
89
|
-
function coords(
|
|
90
|
-
function coords(
|
|
41
|
+
function coords(entity: number, excludeH: boolean, isAlive?: boolean): Vec3
|
|
42
|
+
function coords(entity: number, excludeH?: false, isAlive?: boolean): Vec4
|
|
43
|
+
function coords(entity: number, excludeH = false, isAlive = true) {
|
|
91
44
|
const entityCoords = GetEntityCoords(entity, isAlive) as Vec3
|
|
92
45
|
|
|
93
46
|
if (excludeH) return entityCoords
|
|
@@ -102,22 +55,28 @@ export const client: {
|
|
|
102
55
|
})(),
|
|
103
56
|
|
|
104
57
|
/* */
|
|
105
|
-
teleport: (
|
|
106
|
-
entity
|
|
58
|
+
teleport: (
|
|
59
|
+
entity: number,
|
|
60
|
+
x: number,
|
|
61
|
+
y: number,
|
|
62
|
+
z: number,
|
|
63
|
+
h?: number,
|
|
107
64
|
clearArea = false,
|
|
108
65
|
alive = true,
|
|
109
66
|
deadDisable = false,
|
|
110
67
|
ragdol = false
|
|
111
68
|
) => {
|
|
112
69
|
SetEntityCoords(entity, x, y, z, alive, deadDisable, ragdol, clearArea)
|
|
113
|
-
SetEntityHeading(entity, h
|
|
70
|
+
h && SetEntityHeading(entity, h)
|
|
114
71
|
},
|
|
115
72
|
|
|
116
73
|
/* */
|
|
117
|
-
playAnim: async (
|
|
74
|
+
playAnim: async (
|
|
75
|
+
ped: number,
|
|
76
|
+
dict: string,
|
|
77
|
+
name: string,
|
|
118
78
|
blendIn = 2.0,
|
|
119
79
|
blendOut = 2.0,
|
|
120
|
-
ped = client.entity.handle(),
|
|
121
80
|
duration = -1,
|
|
122
81
|
flag = 0,
|
|
123
82
|
playbackFrom = 0.0,
|
|
@@ -131,12 +90,33 @@ export const client: {
|
|
|
131
90
|
},
|
|
132
91
|
|
|
133
92
|
/* */
|
|
134
|
-
stopAnim: (
|
|
93
|
+
stopAnim: (ped: number, dict: string) => {
|
|
135
94
|
RemoveAnimDict(dict)
|
|
136
95
|
ClearPedTasks(ped)
|
|
137
96
|
}
|
|
138
97
|
},
|
|
139
98
|
player: {
|
|
99
|
+
/* */
|
|
100
|
+
handle: () => PlayerPedId(),
|
|
101
|
+
|
|
102
|
+
/* */
|
|
103
|
+
netId: () => client.entity.netId(client.player.handle()),
|
|
104
|
+
|
|
105
|
+
/* */
|
|
106
|
+
coords: () => client.entity.coords(client.player.handle()),
|
|
107
|
+
|
|
108
|
+
/* */
|
|
109
|
+
teleport: (
|
|
110
|
+
x: number,
|
|
111
|
+
y: number,
|
|
112
|
+
z: number,
|
|
113
|
+
h?: number,
|
|
114
|
+
clearArea?: boolean,
|
|
115
|
+
alive?: boolean,
|
|
116
|
+
deadDisable?: boolean,
|
|
117
|
+
ragdol?: boolean
|
|
118
|
+
) => client.entity.teleport(client.player.handle(), x, y, z, h, clearArea, alive, deadDisable, ragdol),
|
|
119
|
+
|
|
140
120
|
/**
|
|
141
121
|
* Gets a client player ID.
|
|
142
122
|
*
|
|
@@ -149,7 +129,7 @@ export const client: {
|
|
|
149
129
|
* - id(targetServerId) -> target player's client player ID
|
|
150
130
|
* - id() -> your own client player ID
|
|
151
131
|
*/
|
|
152
|
-
id: (serverId) => serverId ? GetPlayerFromServerId(serverId) : PlayerId(),
|
|
132
|
+
id: (serverId?: number) => serverId ? GetPlayerFromServerId(serverId) : PlayerId(),
|
|
153
133
|
|
|
154
134
|
/**
|
|
155
135
|
* Gets a player's server ID from their client player ID.
|
|
@@ -163,13 +143,31 @@ export const client: {
|
|
|
163
143
|
* - serverId(targetPlayerId) -> target player's server ID
|
|
164
144
|
* - serverId() -> your own server ID
|
|
165
145
|
*/
|
|
166
|
-
serverId: (playerId
|
|
146
|
+
serverId: (playerId?: number) => GetPlayerServerId(playerId ?? client.player.id()),
|
|
167
147
|
|
|
168
148
|
storage: {
|
|
169
|
-
set: (
|
|
170
|
-
|
|
171
|
-
|
|
149
|
+
set: <Storage>(
|
|
150
|
+
...[key, value]: {
|
|
151
|
+
[K in keyof Storage]: [key: Extract<K, string>, value: Extract<Storage[K], string>]
|
|
152
|
+
}[keyof Storage]
|
|
153
|
+
) => SetResourceKvp(key, value),
|
|
154
|
+
|
|
155
|
+
get: <Storage, K extends Extract<keyof Storage, string>>(
|
|
156
|
+
key: K,
|
|
157
|
+
init?: Extract<Storage[K], string>
|
|
158
|
+
): Storage[K] => {
|
|
159
|
+
const get = GetResourceKvpString
|
|
160
|
+
if (!get(key)) {
|
|
161
|
+
if (init === undefined || init === null) throw new Error(`Failed to get Storage<${key}> value, reason: The key was never assigned before and you did not provided an initiate value`)
|
|
162
|
+
client.player.storage.set<Storage>(key, init)
|
|
163
|
+
}
|
|
164
|
+
return get(key) as Storage[K]
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
delete: <Storage>(
|
|
168
|
+
key: Extract<keyof Storage, string>
|
|
169
|
+
) => DeleteResourceKvp(key),
|
|
172
170
|
/* TODO: add on event */
|
|
173
171
|
}
|
|
174
172
|
}
|
|
175
|
-
}
|
|
173
|
+
}
|