lenix 1.7.5 → 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 -61
- package/package.json +1 -1
- package/shared/types.ts +1 -0
package/client/client.ts
CHANGED
|
@@ -1,50 +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: <T extends string>(key: T, value: string) => void
|
|
43
|
-
get: <T extends string>(key: T) => string
|
|
44
|
-
delete: <T extends string>(key: T) => void
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
} = {
|
|
4
|
+
export const client = {
|
|
48
5
|
entity: {
|
|
49
6
|
/**
|
|
50
7
|
* Gets the local entity handle from a network ID.
|
|
@@ -60,7 +17,7 @@ export const client: {
|
|
|
60
17
|
* - entity(pedNetId) -> local ped handle
|
|
61
18
|
* - entity() -> your own player ped handle
|
|
62
19
|
*/
|
|
63
|
-
handle: (entityNetId
|
|
20
|
+
handle: (entityNetId: number) => NetworkGetEntityFromNetworkId(entityNetId),
|
|
64
21
|
|
|
65
22
|
/**
|
|
66
23
|
* Gets the network ID for an entity.
|
|
@@ -75,15 +32,15 @@ export const client: {
|
|
|
75
32
|
* - netId(targetPed) -> network ID of that ped
|
|
76
33
|
* - netId() -> network ID of your own player ped
|
|
77
34
|
*/
|
|
78
|
-
netId: (entity
|
|
35
|
+
netId: (entity: number) => NetworkGetNetworkIdFromEntity(entity),
|
|
79
36
|
|
|
80
37
|
/**
|
|
81
38
|
* Gets entity coordinates and heading.
|
|
82
39
|
*/
|
|
83
40
|
coords: (() => {
|
|
84
|
-
function coords(
|
|
85
|
-
function coords(
|
|
86
|
-
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) {
|
|
87
44
|
const entityCoords = GetEntityCoords(entity, isAlive) as Vec3
|
|
88
45
|
|
|
89
46
|
if (excludeH) return entityCoords
|
|
@@ -98,22 +55,28 @@ export const client: {
|
|
|
98
55
|
})(),
|
|
99
56
|
|
|
100
57
|
/* */
|
|
101
|
-
teleport: (
|
|
102
|
-
entity
|
|
58
|
+
teleport: (
|
|
59
|
+
entity: number,
|
|
60
|
+
x: number,
|
|
61
|
+
y: number,
|
|
62
|
+
z: number,
|
|
63
|
+
h?: number,
|
|
103
64
|
clearArea = false,
|
|
104
65
|
alive = true,
|
|
105
66
|
deadDisable = false,
|
|
106
67
|
ragdol = false
|
|
107
68
|
) => {
|
|
108
69
|
SetEntityCoords(entity, x, y, z, alive, deadDisable, ragdol, clearArea)
|
|
109
|
-
SetEntityHeading(entity, h
|
|
70
|
+
h && SetEntityHeading(entity, h)
|
|
110
71
|
},
|
|
111
72
|
|
|
112
73
|
/* */
|
|
113
|
-
playAnim: async (
|
|
74
|
+
playAnim: async (
|
|
75
|
+
ped: number,
|
|
76
|
+
dict: string,
|
|
77
|
+
name: string,
|
|
114
78
|
blendIn = 2.0,
|
|
115
79
|
blendOut = 2.0,
|
|
116
|
-
ped = client.entity.handle(),
|
|
117
80
|
duration = -1,
|
|
118
81
|
flag = 0,
|
|
119
82
|
playbackFrom = 0.0,
|
|
@@ -127,12 +90,33 @@ export const client: {
|
|
|
127
90
|
},
|
|
128
91
|
|
|
129
92
|
/* */
|
|
130
|
-
stopAnim: (
|
|
93
|
+
stopAnim: (ped: number, dict: string) => {
|
|
131
94
|
RemoveAnimDict(dict)
|
|
132
95
|
ClearPedTasks(ped)
|
|
133
96
|
}
|
|
134
97
|
},
|
|
135
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
|
+
|
|
136
120
|
/**
|
|
137
121
|
* Gets a client player ID.
|
|
138
122
|
*
|
|
@@ -145,7 +129,7 @@ export const client: {
|
|
|
145
129
|
* - id(targetServerId) -> target player's client player ID
|
|
146
130
|
* - id() -> your own client player ID
|
|
147
131
|
*/
|
|
148
|
-
id: (serverId) => serverId ? GetPlayerFromServerId(serverId) : PlayerId(),
|
|
132
|
+
id: (serverId?: number) => serverId ? GetPlayerFromServerId(serverId) : PlayerId(),
|
|
149
133
|
|
|
150
134
|
/**
|
|
151
135
|
* Gets a player's server ID from their client player ID.
|
|
@@ -159,13 +143,31 @@ export const client: {
|
|
|
159
143
|
* - serverId(targetPlayerId) -> target player's server ID
|
|
160
144
|
* - serverId() -> your own server ID
|
|
161
145
|
*/
|
|
162
|
-
serverId: (playerId
|
|
146
|
+
serverId: (playerId?: number) => GetPlayerServerId(playerId ?? client.player.id()),
|
|
163
147
|
|
|
164
148
|
storage: {
|
|
165
|
-
set: (
|
|
166
|
-
|
|
167
|
-
|
|
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),
|
|
170
|
+
/* TODO: add on event */
|
|
168
171
|
}
|
|
169
172
|
}
|
|
170
173
|
}
|
|
171
|
-
|
package/package.json
CHANGED