@nativewrappers/redm-codegen 0.0.5 → 0.0.6

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.
Files changed (213) hide show
  1. package/dist/classes/AnimScene.d.ts +126 -126
  2. package/dist/classes/AnimScene.d.ts.map +1 -1
  3. package/dist/classes/AnimScene.js +184 -184
  4. package/dist/classes/BaseModel.d.ts +17 -17
  5. package/dist/classes/BaseModel.d.ts.map +1 -1
  6. package/dist/classes/BaseModel.js +25 -25
  7. package/dist/classes/BaseTask.d.ts +12 -12
  8. package/dist/classes/BaseTask.d.ts.map +1 -1
  9. package/dist/classes/BaseTask.js +14 -14
  10. package/dist/classes/Cam.d.ts +94 -94
  11. package/dist/classes/Cam.d.ts.map +1 -1
  12. package/dist/classes/Cam.js +126 -126
  13. package/dist/classes/Entity.d.ts +471 -471
  14. package/dist/classes/Entity.d.ts.map +1 -1
  15. package/dist/classes/Entity.js +672 -672
  16. package/dist/classes/PedTask.d.ts +155 -155
  17. package/dist/classes/PedTask.d.ts.map +1 -1
  18. package/dist/classes/PedTask.js +204 -204
  19. package/dist/classes/PersChar.d.ts +9 -9
  20. package/dist/classes/PersChar.d.ts.map +1 -1
  21. package/dist/classes/PersChar.js +21 -21
  22. package/dist/classes/Pickup.d.ts +5 -5
  23. package/dist/classes/Pickup.d.ts.map +1 -1
  24. package/dist/classes/Pickup.js +9 -9
  25. package/dist/classes/Player.d.ts +687 -687
  26. package/dist/classes/Player.d.ts.map +1 -1
  27. package/dist/classes/Player.js +1013 -1013
  28. package/dist/classes/Prop.d.ts +87 -87
  29. package/dist/classes/Prop.d.ts.map +1 -1
  30. package/dist/classes/Prop.js +121 -121
  31. package/dist/classes/PropSet.d.ts +4 -4
  32. package/dist/classes/PropSet.d.ts.map +1 -1
  33. package/dist/classes/PropSet.js +6 -6
  34. package/dist/classes/VehicleTask.d.ts +17 -17
  35. package/dist/classes/VehicleTask.d.ts.map +1 -1
  36. package/dist/classes/VehicleTask.js +21 -21
  37. package/dist/classes/Weapon.d.ts +306 -306
  38. package/dist/classes/Weapon.d.ts.map +1 -1
  39. package/dist/classes/Weapon.js +411 -411
  40. package/dist/namespaces/Animscene.d.ts +59 -59
  41. package/dist/namespaces/Animscene.d.ts.map +1 -1
  42. package/dist/namespaces/Animscene.js +77 -77
  43. package/dist/namespaces/Audio.d.ts +569 -569
  44. package/dist/namespaces/Audio.d.ts.map +1 -1
  45. package/dist/namespaces/Audio.js +728 -728
  46. package/dist/namespaces/Bounty.d.ts +70 -70
  47. package/dist/namespaces/Bounty.d.ts.map +1 -1
  48. package/dist/namespaces/Bounty.js +115 -115
  49. package/dist/namespaces/Brain.d.ts +15 -15
  50. package/dist/namespaces/Brain.d.ts.map +1 -1
  51. package/dist/namespaces/Brain.js +20 -20
  52. package/dist/namespaces/CamStatics.d.ts +399 -399
  53. package/dist/namespaces/CamStatics.d.ts.map +1 -1
  54. package/dist/namespaces/CamStatics.js +574 -574
  55. package/dist/namespaces/Clock.d.ts +51 -51
  56. package/dist/namespaces/Clock.d.ts.map +1 -1
  57. package/dist/namespaces/Clock.js +73 -73
  58. package/dist/namespaces/Collection.d.ts +76 -76
  59. package/dist/namespaces/Collection.d.ts.map +1 -1
  60. package/dist/namespaces/Collection.js +108 -108
  61. package/dist/namespaces/Companion.d.ts +22 -22
  62. package/dist/namespaces/Companion.d.ts.map +1 -1
  63. package/dist/namespaces/Companion.js +30 -30
  64. package/dist/namespaces/Compendium.d.ts +38 -38
  65. package/dist/namespaces/Compendium.d.ts.map +1 -1
  66. package/dist/namespaces/Compendium.js +52 -52
  67. package/dist/namespaces/Crashlog.d.ts +10 -10
  68. package/dist/namespaces/Crashlog.d.ts.map +1 -1
  69. package/dist/namespaces/Crashlog.js +14 -14
  70. package/dist/namespaces/Crew.d.ts +9 -9
  71. package/dist/namespaces/Crew.d.ts.map +1 -1
  72. package/dist/namespaces/Crew.js +14 -14
  73. package/dist/namespaces/Databinding.d.ts +177 -177
  74. package/dist/namespaces/Databinding.d.ts.map +1 -1
  75. package/dist/namespaces/Databinding.js +271 -271
  76. package/dist/namespaces/Dlc.d.ts +5 -5
  77. package/dist/namespaces/Dlc.d.ts.map +1 -1
  78. package/dist/namespaces/Dlc.js +9 -9
  79. package/dist/namespaces/EntityStatics.d.ts +193 -193
  80. package/dist/namespaces/EntityStatics.d.ts.map +1 -1
  81. package/dist/namespaces/EntityStatics.js +263 -263
  82. package/dist/namespaces/Fire.d.ts +7 -7
  83. package/dist/namespaces/Fire.d.ts.map +1 -1
  84. package/dist/namespaces/Fire.js +9 -9
  85. package/dist/namespaces/Graphics.d.ts +820 -820
  86. package/dist/namespaces/Graphics.d.ts.map +1 -1
  87. package/dist/namespaces/Graphics.js +1118 -1118
  88. package/dist/namespaces/Hud.d.ts +494 -494
  89. package/dist/namespaces/Hud.d.ts.map +1 -1
  90. package/dist/namespaces/Hud.js +789 -789
  91. package/dist/namespaces/Inventory.d.ts +180 -180
  92. package/dist/namespaces/Inventory.d.ts.map +1 -1
  93. package/dist/namespaces/Inventory.js +239 -239
  94. package/dist/namespaces/Itemdatabase.d.ts +78 -78
  95. package/dist/namespaces/Itemdatabase.d.ts.map +1 -1
  96. package/dist/namespaces/Itemdatabase.js +106 -106
  97. package/dist/namespaces/Map.d.ts +156 -156
  98. package/dist/namespaces/Map.d.ts.map +1 -1
  99. package/dist/namespaces/Map.js +207 -207
  100. package/dist/namespaces/Minigame.d.ts +78 -78
  101. package/dist/namespaces/Minigame.d.ts.map +1 -1
  102. package/dist/namespaces/Minigame.js +116 -116
  103. package/dist/namespaces/Missiondata.d.ts +15 -15
  104. package/dist/namespaces/Missiondata.d.ts.map +1 -1
  105. package/dist/namespaces/Missiondata.js +23 -23
  106. package/dist/namespaces/Network.d.ts +636 -636
  107. package/dist/namespaces/Network.d.ts.map +1 -1
  108. package/dist/namespaces/Network.js +915 -915
  109. package/dist/namespaces/Object.d.ts +121 -121
  110. package/dist/namespaces/Object.d.ts.map +1 -1
  111. package/dist/namespaces/Object.js +162 -162
  112. package/dist/namespaces/Pad.d.ts +94 -94
  113. package/dist/namespaces/Pad.d.ts.map +1 -1
  114. package/dist/namespaces/Pad.js +127 -127
  115. package/dist/namespaces/Perschar.d.ts +44 -44
  116. package/dist/namespaces/Perschar.d.ts.map +1 -1
  117. package/dist/namespaces/Perschar.js +68 -68
  118. package/dist/namespaces/Physics.d.ts +158 -158
  119. package/dist/namespaces/Physics.d.ts.map +1 -1
  120. package/dist/namespaces/Physics.js +207 -207
  121. package/dist/namespaces/PlayerStatics.d.ts +127 -127
  122. package/dist/namespaces/PlayerStatics.d.ts.map +1 -1
  123. package/dist/namespaces/PlayerStatics.js +177 -177
  124. package/dist/namespaces/Population.d.ts +75 -75
  125. package/dist/namespaces/Population.d.ts.map +1 -1
  126. package/dist/namespaces/Population.js +101 -101
  127. package/dist/namespaces/Posse.d.ts +38 -38
  128. package/dist/namespaces/Posse.d.ts.map +1 -1
  129. package/dist/namespaces/Posse.js +62 -62
  130. package/dist/namespaces/Propset.d.ts +30 -30
  131. package/dist/namespaces/Propset.d.ts.map +1 -1
  132. package/dist/namespaces/Propset.js +38 -38
  133. package/dist/namespaces/Shapetest.d.ts +11 -11
  134. package/dist/namespaces/Shapetest.d.ts.map +1 -1
  135. package/dist/namespaces/Shapetest.js +13 -13
  136. package/dist/namespaces/Stats.d.ts +88 -88
  137. package/dist/namespaces/Stats.d.ts.map +1 -1
  138. package/dist/namespaces/Stats.js +123 -123
  139. package/dist/namespaces/Streaming.d.ts +58 -58
  140. package/dist/namespaces/Streaming.d.ts.map +1 -1
  141. package/dist/namespaces/Streaming.js +92 -92
  142. package/dist/namespaces/Task.d.ts +62 -62
  143. package/dist/namespaces/Task.d.ts.map +1 -1
  144. package/dist/namespaces/Task.js +90 -90
  145. package/dist/namespaces/Telemetry.d.ts +172 -172
  146. package/dist/namespaces/Telemetry.d.ts.map +1 -1
  147. package/dist/namespaces/Telemetry.js +240 -240
  148. package/dist/namespaces/Uifeed.d.ts +15 -15
  149. package/dist/namespaces/Uifeed.d.ts.map +1 -1
  150. package/dist/namespaces/Uifeed.js +24 -24
  151. package/dist/namespaces/Voice.d.ts +38 -38
  152. package/dist/namespaces/Voice.d.ts.map +1 -1
  153. package/dist/namespaces/Voice.js +56 -56
  154. package/dist/namespaces/Water.d.ts +27 -27
  155. package/dist/namespaces/Water.d.ts.map +1 -1
  156. package/dist/namespaces/Water.js +41 -41
  157. package/dist/namespaces/WeaponStatics.d.ts +250 -250
  158. package/dist/namespaces/WeaponStatics.d.ts.map +1 -1
  159. package/dist/namespaces/WeaponStatics.js +346 -346
  160. package/package.json +1 -1
  161. package/src/classes/AnimScene.ts +199 -199
  162. package/src/classes/BaseModel.ts +29 -29
  163. package/src/classes/BaseTask.ts +15 -15
  164. package/src/classes/Cam.ts +135 -135
  165. package/src/classes/Entity.ts +687 -687
  166. package/src/classes/PedTask.ts +223 -223
  167. package/src/classes/PersChar.ts +24 -24
  168. package/src/classes/Pickup.ts +10 -10
  169. package/src/classes/Player.ts +1024 -1024
  170. package/src/classes/Prop.ts +136 -136
  171. package/src/classes/PropSet.ts +7 -7
  172. package/src/classes/VehicleTask.ts +23 -23
  173. package/src/classes/Weapon.ts +429 -429
  174. package/src/namespaces/Animscene.ts +86 -86
  175. package/src/namespaces/Audio.ts +804 -804
  176. package/src/namespaces/Bounty.ts +131 -131
  177. package/src/namespaces/Brain.ts +22 -22
  178. package/src/namespaces/CamStatics.ts +599 -599
  179. package/src/namespaces/Clock.ts +82 -82
  180. package/src/namespaces/Collection.ts +109 -109
  181. package/src/namespaces/Companion.ts +34 -34
  182. package/src/namespaces/Compendium.ts +59 -59
  183. package/src/namespaces/Crashlog.ts +16 -16
  184. package/src/namespaces/Crew.ts +16 -16
  185. package/src/namespaces/Databinding.ts +286 -286
  186. package/src/namespaces/Dlc.ts +9 -9
  187. package/src/namespaces/EntityStatics.ts +279 -279
  188. package/src/namespaces/Fire.ts +10 -10
  189. package/src/namespaces/Graphics.ts +1196 -1196
  190. package/src/namespaces/Hud.ts +799 -799
  191. package/src/namespaces/Inventory.ts +245 -245
  192. package/src/namespaces/Itemdatabase.ts +118 -118
  193. package/src/namespaces/Map.ts +215 -215
  194. package/src/namespaces/Minigame.ts +132 -132
  195. package/src/namespaces/Missiondata.ts +27 -27
  196. package/src/namespaces/Network.ts +951 -951
  197. package/src/namespaces/Object.ts +171 -171
  198. package/src/namespaces/Pad.ts +127 -127
  199. package/src/namespaces/Perschar.ts +72 -72
  200. package/src/namespaces/Physics.ts +231 -231
  201. package/src/namespaces/PlayerStatics.ts +202 -202
  202. package/src/namespaces/Population.ts +114 -114
  203. package/src/namespaces/Posse.ts +62 -62
  204. package/src/namespaces/Propset.ts +42 -42
  205. package/src/namespaces/Shapetest.ts +14 -14
  206. package/src/namespaces/Stats.ts +139 -139
  207. package/src/namespaces/Streaming.ts +104 -104
  208. package/src/namespaces/Task.ts +100 -100
  209. package/src/namespaces/Telemetry.ts +265 -265
  210. package/src/namespaces/Uifeed.ts +27 -27
  211. package/src/namespaces/Voice.ts +65 -65
  212. package/src/namespaces/Water.ts +47 -47
  213. package/src/namespaces/WeaponStatics.ts +365 -365
@@ -19,6 +19,98 @@ export class Weapon {
19
19
  this.ped = ped;
20
20
  }
21
21
 
22
+ /**
23
+ * Stores longarms to your horse on dismount
24
+ * Params: p2 = 0
25
+ * SET_[I - M]*
26
+ *
27
+ * @param storeLongarms
28
+ * @param p2
29
+ */
30
+ setInstantlyStoreLongarmsOnDismount(storeLongarms: boolean, p2: number): void {
31
+ inv<void>('0xB832F1A686B9B810', this.ped.handle, storeLongarms, p2);
32
+ }
33
+
34
+ /**
35
+ * @param removeReason Refer to [enum: eRemoveItemReason]
36
+ * @returns weaponGuid
37
+ */
38
+ removeWeaponFromPedByGuid(removeReason: eRemoveItemReason): number {
39
+ const result = inv<number>('0x51C3B71591811485', this.ped.handle, pvi(), removeReason);
40
+ return result;
41
+ }
42
+
43
+ /**
44
+ * attachPoint:
45
+ *
46
+ * @param weaponHash Refer to [enum: eWeaponHash]
47
+ * @param equipNow
48
+ * @param attachPoint Refer to [enum: eWeaponAttachPoint]
49
+ * @param p4
50
+ * @param p5
51
+ */
52
+ setCurrentPedWeapon(weaponHash: eWeaponHash, equipNow: boolean, attachPoint: number, p4: boolean, p5: boolean): void {
53
+ inv<void>('0xADF692B254977C0C', this.ped.handle, weaponHash, equipNow, attachPoint, p4, p5);
54
+ }
55
+
56
+ /**
57
+ * Equips a weapon from a weaponItem, similar to GIVE_WEAPON_TO_PED
58
+ *
59
+ * @param p2
60
+ * @param p3
61
+ * @param p4
62
+ * @param p5
63
+ * @returns weaponUid
64
+ */
65
+ setCurrentPedWeaponByGuid(p2: boolean, p3: boolean, p4: boolean, p5: boolean): number {
66
+ const result = inv<number>('0x12FB95FE3D579238', this.ped.handle, pvi(), p2, p3, p4, p5);
67
+ return result;
68
+ }
69
+
70
+ /**
71
+ * @param componentHash
72
+ * @param weaponHash Refer to [enum: eWeaponHash]
73
+ * @returns
74
+ */
75
+ hasPedGotWeaponComponent(componentHash: string | number, weaponHash: eWeaponHash): any {
76
+ return inv<number>('0xBBC67A6F965C688A', this.ped.handle, _h(componentHash), weaponHash);
77
+ }
78
+
79
+ /**
80
+ * @param weaponHash Refer to [enum: eWeaponHash]
81
+ * @param amount The amount of ped to add to the ammo
82
+ * @param addReason Refer to [enum: eAddItemReason]
83
+ */
84
+ addAmmoToPed(weaponHash: eWeaponHash, amount: number, addReason: eAddItemReason): void {
85
+ inv<void>('0xB190BCA3F4042F95', this.ped.handle, weaponHash, amount, addReason);
86
+ }
87
+
88
+ /**
89
+ * @param ammoType
90
+ * @param amount
91
+ * @param addReason Refer to [enum: eAddItemReason]
92
+ */
93
+ addAmmoToPedByType(ammoType: string | number, amount: number, addReason: eAddItemReason): void {
94
+ inv<void>('0x106A811C6D3035F3', this.ped.handle, _h(ammoType), amount, addReason);
95
+ }
96
+
97
+ /**
98
+ * @param targetPed
99
+ * @returns
100
+ */
101
+ isTargetPedConstrainedByPedUsingBolas(targetPed: Ped): boolean {
102
+ return !!inv<boolean>('0x8D50F43298AB9545', this.ped.handle, targetPed.handle, rai());
103
+ }
104
+
105
+ /**
106
+ * @param p1
107
+ * @returns guidPrimary
108
+ */
109
+ getBestPedWeaponInInventory(p1: any): [any, number] {
110
+ const result = inv<[number, number]>('0x7B98500614C8E8B8', this.ped.handle, p1, pvi());
111
+ return [result[0], result[1]];
112
+ }
113
+
22
114
  /**
23
115
  * @param visible
24
116
  */
@@ -101,102 +193,72 @@ export class Weapon {
101
193
  }
102
194
 
103
195
  /**
104
- * @param ammoType
105
- * @returns
106
- */
107
- getPedAmmoByType(ammoType: string | number): number {
108
- return inv<number>('0x39D22031557946C1', this.ped.handle, _h(ammoType), rai());
109
- }
110
-
111
- /**
112
- * @param p1
113
- * @param p2
114
- * @returns
115
- */
116
- getBestPedWeapon(p1: boolean, p2: boolean): number {
117
- return (inv<number>('0x8483E98E8B888AE2', this.ped.handle, p1, p2, rai())) & 0xFFFFFFFF;
118
- }
119
-
120
- /**
121
- * @param toggle
122
- * @param weaponHash Refer to [enum: eWeaponHash]
123
- */
124
- setPedInfiniteAmmo(toggle: boolean, weaponHash: eWeaponHash): void {
125
- inv<void>('0x3EDCB0505123623B', this.ped.handle, toggle, weaponHash);
126
- }
127
-
128
- /**
129
- * @param weaponHash Refer to [enum: eWeaponHash]
130
196
  * @param ammoHash Refer to [enum: eAmmoType]
131
197
  */
132
- setAmmoTypeForPedWeapon(weaponHash: eWeaponHash, ammoHash: eAmmoType): void {
133
- inv<void>('0xCC9C4393523833E2', this.ped.handle, weaponHash, ammoHash);
198
+ disableAmmoTypeForPed(ammoHash: eAmmoType): void {
199
+ inv<void>('0xAA5A52204E077883', this.ped.handle, ammoHash);
134
200
  }
135
201
 
136
202
  /**
137
- * *GET_BEST** - *GET_CLOSEST**
203
+ * Returns whether the ped has a shotgun p1: 0 or 1
138
204
  *
139
- * @returns weaponGuid
205
+ * @param p1
206
+ * @returns
140
207
  */
141
- get CorrectKitEmoteTwirlGun(): [boolean, number] {
142
- const result = inv<[boolean, number]>('0xCD356B42C57BFE01', this.ped.handle, pvi(), rai());
143
- return [!!result[0], result[1]];
208
+ doesPedHaveShotgun(p1: number): any {
209
+ return inv<number>('0xABC18A28BAD4B46F', this.ped.handle, p1);
144
210
  }
145
211
 
146
- /**
147
- * @param weaponHash Refer to [enum: eWeaponHash]
148
- * @returns
149
- */
150
- setCurrentPedVehicleWeapon(weaponHash: eWeaponHash): boolean {
151
- return !!inv<boolean>('0x75C55983C2C39DAA', this.ped.handle, weaponHash, rai());
212
+ clearPedLastWeaponDamage(): void {
213
+ inv<void>('0x087D8F4BC65F68E4', this.ped.handle);
152
214
  }
153
215
 
154
216
  /**
155
- * Returns whether the ped has a rifle p1: 0 or 1
217
+ * Returns true if ped is on a horse while inside of a town
218
+ * Params: p1 = 0
219
+ * GET_L* - GET_MA*
156
220
  *
157
221
  * @param p1
158
222
  * @returns
159
223
  */
160
- doesPedHaveRifle(p1: number): any {
161
- return inv<number>('0x95CA12E2C68043E5', this.ped.handle, p1);
224
+ N_0x5A695BD328586B44(p1: number): any {
225
+ return inv<number>('0x5A695BD328586B44', this.ped.handle, p1);
162
226
  }
163
227
 
164
228
  /**
165
- * Puts the gun visibly in your horse's holster without having to be close to the horse. Use `_SEND_WEAPON_TO_INVENTORY` before using this native
166
- * _A* or _B*
167
- *
168
229
  * @param weaponHash Refer to [enum: eWeaponHash]
169
- * @param ped
230
+ * @param amount
231
+ * @param removeReason Refer to [enum: eRemoveItemReason]
170
232
  */
171
- N_0x14FF0C2545527F9B(weaponHash: eWeaponHash, ped: Ped): void {
172
- inv<void>('0x14FF0C2545527F9B', this.ped.handle, weaponHash, ped.handle);
233
+ removeAmmoFromPed(weaponHash: eWeaponHash, amount: number, removeReason: eRemoveItemReason): void {
234
+ inv<void>('0xF4823C813CB8277D', this.ped.handle, weaponHash, amount, removeReason);
173
235
  }
174
236
 
175
237
  /**
176
- * Returns iSpinHash / iVariationSpin
177
- *
178
- * @param weaponEmoteVariation
179
- * @returns
238
+ * @param p1
239
+ * @param p2
180
240
  */
181
- getPedGunSpinningHashFromWeaponEmoteVariation(weaponEmoteVariation: number): number {
182
- return (inv<number>('0xF3B1620B920D1708', this.ped.handle, weaponEmoteVariation, rai())) & 0xFFFFFFFF;
241
+ setPedAmmoToDrop(p1: number, p2: number): void {
242
+ inv<void>('0xA4EFEF9440A5B0EF', this.ped.handle, p1, p2);
183
243
  }
184
244
 
185
245
  /**
186
- * Returns whether the ped has a repeater p1: 0 or 1
246
+ * Returns the current ammo type of the specified ped's specified weapon.
187
247
  *
188
- * @param p1
248
+ * @param weaponHash Refer to [enum: eWeaponHash]
189
249
  * @returns
190
250
  */
191
- doesPedHaveRepeater(p1: number): any {
192
- return inv<number>('0x495A04CAEC263AF8', this.ped.handle, p1);
251
+ getPedAmmoTypeFromWeapon(weaponHash: eWeaponHash): number {
252
+ return (inv<number>('0x7FEAD38B326B9F74', this.ped.handle, weaponHash, rai())) & 0xFFFFFFFF;
193
253
  }
194
254
 
195
255
  /**
196
- * @param weaponCollection
256
+ * @param weaponHash Refer to [enum: eWeaponHash]
257
+ * @returns ammo
197
258
  */
198
- giveWeaponCollectionToPed(weaponCollection: string | number): void {
199
- inv<void>('0x899A04AFCC725D04', this.ped.handle, _h(weaponCollection));
259
+ getMaxAmmo(weaponHash: eWeaponHash): [boolean, number] {
260
+ const result = inv<[boolean, number]>('0xDC16122C7A20C933', this.ped.handle, pvi(), weaponHash, rai());
261
+ return [!!result[0], result[1]];
200
262
  }
201
263
 
202
264
  /**
@@ -274,280 +336,329 @@ export class Weapon {
274
336
 
275
337
  /**
276
338
  * @param weaponHash Refer to [enum: eWeaponHash]
277
- * @param ammoHash Refer to [enum: eAmmoType]
278
339
  */
279
- enableAmmoTypeForPedWeapon(weaponHash: eWeaponHash, ammoHash: eAmmoType): void {
280
- inv<void>('0x23FB9FACA28779C1', this.ped.handle, weaponHash, ammoHash);
340
+ enableAmmoTypeForPed(weaponHash: eWeaponHash): void {
341
+ inv<void>('0x3B7B7908B7ADFB4B', this.ped.handle, weaponHash);
281
342
  }
282
343
 
283
344
  /**
284
- * @param toggle
345
+ * Detaches the weapon from the ped and actually removes the ped's weapon
346
+ *
347
+ * @param p1
348
+ * @returns
285
349
  */
286
- N_0x431240A58484D5D0(toggle: boolean): void {
287
- inv<void>('0x431240A58484D5D0', this.ped.handle, toggle);
350
+ getWeaponObjectFromPed(p1: boolean): Prop | null {
351
+ return createFromHandle<Prop>('Prop', inv<number>('0xC6A6789BB405D11C', this.ped.handle, p1, rai()));
288
352
  }
289
353
 
290
354
  /**
291
- * @param p2
292
- * @param p3
293
- * @returns outGUID
355
+ * @returns
294
356
  */
295
- getBestPedShortarmGuid(p2: boolean, p3: boolean): number {
296
- const result = inv<number>('0xF52BD94B47CCF736', this.ped.handle, pvi(), p2, p3);
297
- return result;
357
+ get IsPedCurrentWeaponHolstered(): any {
358
+ return inv<number>('0xBDD9C235D8D1052E', this.ped.handle);
298
359
  }
299
360
 
300
361
  /**
301
- * @returns coords
362
+ * @param toggle
302
363
  */
303
- get PedLastWeaponImpactCoord(): [boolean, Vector3] {
304
- const result = inv<[boolean, number[]]>('0x6C4D0409BA1A2BC2', this.ped.handle, pvv(), rai());
305
- return [!!result[0], Vector3.fromArray(result[1])];
364
+ set InstantlyEquipWeaponPickups(toggle: boolean) {
365
+ inv<void>('0x739B9C6D0E7F7F93', this.ped.handle, toggle);
306
366
  }
307
367
 
308
368
  /**
309
- * Returns WeaponAttachPoint
369
+ * Hides the ped's weapon during a cutscene.
310
370
  *
311
- * @param attachPoint Refer to [enum: eWeaponAttachPoint]
312
- * @returns
371
+ * @param toggle
313
372
  */
314
- getWeaponAttachPoint(attachPoint: number): number {
315
- return inv<number>('0xCAD4FE9398820D24', this.ped.handle, attachPoint, rai());
373
+ hidePedWeaponForScriptedCutscene(toggle: boolean): void {
374
+ inv<void>('0x6F6981D2253C208F', this.ped.handle, toggle);
316
375
  }
317
376
 
318
377
  /**
319
- * @param p2
320
- * @param attachPoint Refer to [enum: eWeaponAttachPoint]
321
- * @param p4
322
- * @returns weaponHash: Refer to [enum: eWeaponHash]
378
+ * @returns guidPrimary; guidSecondary
323
379
  */
324
- getCurrentPedWeapon(p2: boolean, attachPoint: number, p4: boolean): [boolean, number] {
325
- const result = inv<[boolean, number]>('0x3A87E44BB9A01D54', this.ped.handle, pvi(), p2, attachPoint, p4, rai());
326
- return [!!result[0], result[1]];
380
+ setPlayerPedQuickSwapWeaponByGuid(): [number, number] {
381
+ const result = inv<[number, number]>('0xEC1F85DA51D3D6C4', this.ped.handle, pvi(), pvi());
382
+ return [result[0], result[1]];
383
+ }
384
+
385
+ /**
386
+ * @returns Returns the total ammo in the ped weapon from it's guid, or `0`.; guid
387
+ */
388
+ get AmmoInPedWeaponFromGuid(): [number, number] {
389
+ const result = inv<[number, number]>('0x4823F13A21F51964', this.ped.handle, pvi(), rai());
390
+ return [result[0], result[1]];
327
391
  }
328
392
 
329
393
  /**
330
- * Returns whether the ped has a revolver p1: 0 or 1
331
- *
332
394
  * @param p1
333
- * @returns
395
+ * @param p2
334
396
  */
335
- doesPedHaveRevolver(p1: number): any {
336
- return inv<number>('0x5B235F24472F2C3B', this.ped.handle, p1);
397
+ removeAllPedWeapons(p1: boolean, p2: boolean): void {
398
+ inv<void>('0xF25DF915FA38C5F3', this.ped.handle, p1, p2);
337
399
  }
338
400
 
339
401
  /**
340
- * Returns emote Hash
341
- *
342
402
  * @returns
343
403
  */
344
- get PedGunSpinningEquippedKitEmoteTwirl(): number {
345
- return (inv<number>('0x2C4FEC3D0EFA9FC0', this.ped.handle, rai())) & 0xFFFFFFFF;
404
+ get AllowDualWield(): any {
405
+ return inv<number>('0x918990BD9CE08582', this.ped.handle);
346
406
  }
347
407
 
348
408
  /**
349
- * @param weaponHash Refer to [enum: eWeaponHash]
409
+ * Returns eCurrentHeldWeapon
410
+ * _GET_R* - _GET_T*
411
+ *
412
+ * @returns
350
413
  */
351
- enableAmmoTypeForPed(weaponHash: eWeaponHash): void {
352
- inv<void>('0x3B7B7908B7ADFB4B', this.ped.handle, weaponHash);
414
+ get PedCurrentHeldWeapon(): number {
415
+ return (inv<number>('0x8425C5F057012DAB', this.ped.handle, rai())) & 0xFFFFFFFF;
353
416
  }
354
417
 
355
418
  /**
356
- * Detaches the weapon from the ped and actually removes the ped's weapon
357
- *
358
- * @param p1
359
- * @returns
419
+ * @param toggle
360
420
  */
361
- getWeaponObjectFromPed(p1: boolean): Prop | null {
362
- return createFromHandle<Prop>('Prop', inv<number>('0xC6A6789BB405D11C', this.ped.handle, p1, rai()));
421
+ set ForceAutoEquip(toggle: boolean) {
422
+ inv<void>('0xBE711B14A159E84F', this.ped.handle, toggle);
363
423
  }
364
424
 
365
425
  /**
366
- * @returns
426
+ * @param weaponHash Refer to [enum: eWeaponHash]
427
+ * @param ammo
367
428
  */
368
- get IsPedCurrentWeaponHolstered(): any {
369
- return inv<number>('0xBDD9C235D8D1052E', this.ped.handle);
429
+ setPedAmmo(weaponHash: eWeaponHash, ammo: number): void {
430
+ inv<void>('0x14E56BC5B5DB6A19', this.ped.handle, weaponHash, ammo);
370
431
  }
371
432
 
372
433
  /**
373
- * @param toggle
434
+ * Gives the ped the weapon.
435
+ * List: https://github.com/femga/rdr3_discoveries/blob/master/weapons/weapons.lua Params: p7 is 0.5f, and p8 is 1.0f. p11 and p12 are both 0 in R* Scripts
436
+ * permanentDegradation: default 0.5, any higher than 0 it will automatically make the weapon worn, you can also adjust the value to change the weapons maximum cleanliness
437
+ *
438
+ * @param weaponHash Refer to [enum: eWeaponHash]
439
+ * @param ammoCount
440
+ * @param bForceInHand
441
+ * @param bForceInHolster
442
+ * @param attachPoint Refer to [enum: eWeaponAttachPoint]
443
+ * @param bAllowMultipleCopies
444
+ * @param p7
445
+ * @param p8
446
+ * @param addReason Refer to [enum: eAddItemReason]
447
+ * @param bIgnoreUnlocks
448
+ * @param permanentDegradation
449
+ * @param p12
450
+ * @returns
374
451
  */
375
- set InstantlyEquipWeaponPickups(toggle: boolean) {
376
- inv<void>('0x739B9C6D0E7F7F93', this.ped.handle, toggle);
452
+ giveWeaponToPed(weaponHash: eWeaponHash, ammoCount: number, bForceInHand: boolean, bForceInHolster: boolean, attachPoint: number, bAllowMultipleCopies: boolean, p7: number, p8: number, addReason: eAddItemReason, bIgnoreUnlocks: boolean, permanentDegradation: number, p12: boolean): number {
453
+ return (inv<number>('0x5E3BDDBCB83F3D84', this.ped.handle, weaponHash, ammoCount, bForceInHand, bForceInHolster, attachPoint, bAllowMultipleCopies, f(p7), f(p8), addReason, bIgnoreUnlocks, f(permanentDegradation), p12, rai())) & 0xFFFFFFFF;
377
454
  }
378
455
 
379
456
  /**
380
- * Hides the ped's weapon during a cutscene.
381
- *
382
- * @param toggle
457
+ * @param weaponHash Refer to [enum: eWeaponHash]
458
+ * @returns
383
459
  */
384
- hidePedWeaponForScriptedCutscene(toggle: boolean): void {
385
- inv<void>('0x6F6981D2253C208F', this.ped.handle, toggle);
460
+ getAmmoInPedWeapon(weaponHash: eWeaponHash): number {
461
+ return inv<number>('0x015A522136D7F951', this.ped.handle, weaponHash, rai());
386
462
  }
387
463
 
388
464
  /**
389
- * @returns guidPrimary; guidSecondary
465
+ * @param attachPoint Refer to [enum: eWeaponAttachPoint]
466
+ * @returns weaponGuid
390
467
  */
391
- setPlayerPedQuickSwapWeaponByGuid(): [number, number] {
392
- const result = inv<[number, number]>('0xEC1F85DA51D3D6C4', this.ped.handle, pvi(), pvi());
468
+ getPedWeaponGuidAtAttachPoint(attachPoint: number): [any, number] {
469
+ const result = inv<[number, number]>('0x6929E22158E52265', this.ped.handle, attachPoint, pvi());
393
470
  return [result[0], result[1]];
394
471
  }
395
472
 
396
473
  /**
397
- * @returns Returns the total ammo in the ped weapon from it's guid, or `0`.; guid
474
+ * @param weaponHash Refer to [enum: eWeaponHash]
475
+ * @returns ammo
398
476
  */
399
- get AmmoInPedWeaponFromGuid(): [number, number] {
400
- const result = inv<[number, number]>('0x4823F13A21F51964', this.ped.handle, pvi(), rai());
401
- return [result[0], result[1]];
477
+ getAmmoInClip(weaponHash: eWeaponHash): [boolean, number] {
478
+ const result = inv<[boolean, number]>('0x2E1202248937775C', this.ped.handle, pvi(), weaponHash, rai());
479
+ return [!!result[0], result[1]];
402
480
  }
403
481
 
404
482
  /**
405
- * @param p1
406
- * @param p2
483
+ * @param toggle
407
484
  */
408
- removeAllPedWeapons(p1: boolean, p2: boolean): void {
409
- inv<void>('0xF25DF915FA38C5F3', this.ped.handle, p1, p2);
485
+ N_0x16D9841A85FA627E(toggle: boolean): void {
486
+ inv<void>('0x16D9841A85FA627E', this.ped.handle, toggle);
410
487
  }
411
488
 
412
489
  /**
413
- * Stores longarms to your horse on dismount
414
- * Params: p2 = 0
415
- * SET_[I - M]*
416
- *
417
- * @param storeLongarms
418
- * @param p2
490
+ * @param weaponHash Refer to [enum: eWeaponHash]
491
+ * @param offset
492
+ * @param ammoCount
419
493
  */
420
- setInstantlyStoreLongarmsOnDismount(storeLongarms: boolean, p2: number): void {
421
- inv<void>('0xB832F1A686B9B810', this.ped.handle, storeLongarms, p2);
494
+ setPedDropsInventoryWeapon(weaponHash: eWeaponHash, offset: Vector3, ammoCount: number): void {
495
+ inv<void>('0x208A1888007FC0E6', this.ped.handle, weaponHash, f(offset.x), f(offset.y), f(offset.z), ammoCount);
422
496
  }
423
497
 
424
498
  /**
425
- * @param removeReason Refer to [enum: eRemoveItemReason]
426
- * @returns weaponGuid
499
+ * spinHash can be -1, 0 to disable
500
+ *
501
+ * @param weaponEmoteTrickType
502
+ * @param spin
427
503
  */
428
- removeWeaponFromPedByGuid(removeReason: eRemoveItemReason): number {
429
- const result = inv<number>('0x51C3B71591811485', this.ped.handle, pvi(), removeReason);
430
- return result;
504
+ setActiveGunSpinningKitEmoteTwirl(weaponEmoteTrickType: number, spin: string | number): void {
505
+ inv<void>('0x01F661BB9C71B465', this.ped.handle, weaponEmoteTrickType, _h(spin));
431
506
  }
432
507
 
433
508
  /**
434
- * attachPoint:
509
+ * Appears to just send specified weapon to your horse holster without having to be close
510
+ * However, the weapon is not visible on the horse holster, but you can reach the weapon on the weapon wheel
435
511
  *
436
512
  * @param weaponHash Refer to [enum: eWeaponHash]
437
- * @param equipNow
438
- * @param attachPoint Refer to [enum: eWeaponAttachPoint]
439
- * @param p4
440
- * @param p5
441
513
  */
442
- setCurrentPedWeapon(weaponHash: eWeaponHash, equipNow: boolean, attachPoint: number, p4: boolean, p5: boolean): void {
443
- inv<void>('0xADF692B254977C0C', this.ped.handle, weaponHash, equipNow, attachPoint, p4, p5);
514
+ sendWeaponToInventory(weaponHash: eWeaponHash): void {
515
+ inv<void>('0xE9BD19F8121ADE3E', this.ped.handle, weaponHash);
444
516
  }
445
517
 
446
518
  /**
447
- * Equips a weapon from a weaponItem, similar to GIVE_WEAPON_TO_PED
519
+ * If near your horse when called, weapons stored on your horse will be considered
520
+ * Returns weaponHash
448
521
  *
522
+ * @param weaponGroup
449
523
  * @param p2
450
524
  * @param p3
451
- * @param p4
452
- * @param p5
453
- * @returns weaponUid
525
+ * @returns
454
526
  */
455
- setCurrentPedWeaponByGuid(p2: boolean, p3: boolean, p4: boolean, p5: boolean): number {
456
- const result = inv<number>('0x12FB95FE3D579238', this.ped.handle, pvi(), p2, p3, p4, p5);
457
- return result;
527
+ getBestPedWeaponInGroup(weaponGroup: string | number, p2: boolean, p3: boolean): number {
528
+ return (inv<number>('0x9F67929D98E7C6E8', this.ped.handle, _h(weaponGroup), p2, p3, rai())) & 0xFFFFFFFF;
458
529
  }
459
530
 
460
531
  /**
461
- * @param componentHash
462
- * @param weaponHash Refer to [enum: eWeaponHash]
463
- * @returns
532
+ * Only used in R* SP Scripts native_son2, native_son3 and smuggler2
533
+ * Params: p2 = -1
534
+ *
535
+ * @param p1
536
+ * @param p2
464
537
  */
465
- hasPedGotWeaponComponent(componentHash: string | number, weaponHash: eWeaponHash): any {
466
- return inv<number>('0xBBC67A6F965C688A', this.ped.handle, _h(componentHash), weaponHash);
538
+ N_0x8A779706DA5CA3DD(p1: boolean, p2: number): void {
539
+ inv<void>('0x8A779706DA5CA3DD', this.ped.handle, p1, p2);
467
540
  }
468
541
 
469
542
  /**
470
543
  * @param weaponHash Refer to [enum: eWeaponHash]
471
- * @param amount The amount of ped to add to the ammo
472
- * @param addReason Refer to [enum: eAddItemReason]
544
+ * @param ammoHash Refer to [enum: eAmmoType]
473
545
  */
474
- addAmmoToPed(weaponHash: eWeaponHash, amount: number, addReason: eAddItemReason): void {
475
- inv<void>('0xB190BCA3F4042F95', this.ped.handle, weaponHash, amount, addReason);
546
+ disableAmmoTypeForPedWeapon(weaponHash: eWeaponHash, ammoHash: eAmmoType): void {
547
+ inv<void>('0xF0D728EEA3C99775', this.ped.handle, weaponHash, ammoHash);
476
548
  }
477
549
 
478
550
  /**
479
- * @param ammoType
480
- * @param amount
481
- * @param addReason Refer to [enum: eAddItemReason]
551
+ * @returns data; outData
482
552
  */
483
- addAmmoToPedByType(ammoType: string | number, amount: number, addReason: eAddItemReason): void {
484
- inv<void>('0x106A811C6D3035F3', this.ped.handle, _h(ammoType), amount, addReason);
553
+ giveWeaponToPedWithOptions(): [boolean, number, number] {
554
+ const result = inv<[boolean, number, number]>('0xBE7E42B07FD317AC', this.ped.handle, pvi(), pvi(), rai());
555
+ return [!!result[0], result[1], result[2]];
485
556
  }
486
557
 
487
558
  /**
488
- * @param targetPed
489
559
  * @returns
490
560
  */
491
- isTargetPedConstrainedByPedUsingBolas(targetPed: Ped): boolean {
492
- return !!inv<boolean>('0x8D50F43298AB9545', this.ped.handle, targetPed.handle, rai());
561
+ get MaxLockonDistanceOfCurrentPedWeapon(): number {
562
+ return inv<number>('0x79B1A6E780266DB0', this.ped.handle, raf());
563
+ }
564
+
565
+ /**
566
+ * @param ammoType
567
+ * @returns
568
+ */
569
+ getPedAmmoByType(ammoType: string | number): number {
570
+ return inv<number>('0x39D22031557946C1', this.ped.handle, _h(ammoType), rai());
493
571
  }
494
572
 
495
573
  /**
496
574
  * @param p1
497
- * @returns guidPrimary
575
+ * @param p2
576
+ * @returns
498
577
  */
499
- getBestPedWeaponInInventory(p1: any): [any, number] {
500
- const result = inv<[number, number]>('0x7B98500614C8E8B8', this.ped.handle, p1, pvi());
501
- return [result[0], result[1]];
578
+ getBestPedWeapon(p1: boolean, p2: boolean): number {
579
+ return (inv<number>('0x8483E98E8B888AE2', this.ped.handle, p1, p2, rai())) & 0xFFFFFFFF;
502
580
  }
503
581
 
504
582
  /**
505
583
  * @param toggle
584
+ * @param weaponHash Refer to [enum: eWeaponHash]
506
585
  */
507
- set AllowAnyWeaponDrop(toggle: boolean) {
508
- inv<void>('0x78030C7867D8B9B6', this.ped.handle, toggle);
586
+ setPedInfiniteAmmo(toggle: boolean, weaponHash: eWeaponHash): void {
587
+ inv<void>('0x3EDCB0505123623B', this.ped.handle, toggle, weaponHash);
588
+ }
589
+
590
+ /**
591
+ * @param weaponHash Refer to [enum: eWeaponHash]
592
+ * @param ammoHash Refer to [enum: eAmmoType]
593
+ */
594
+ setAmmoTypeForPedWeapon(weaponHash: eWeaponHash, ammoHash: eAmmoType): void {
595
+ inv<void>('0xCC9C4393523833E2', this.ped.handle, weaponHash, ammoHash);
596
+ }
597
+
598
+ /**
599
+ * *GET_BEST** - *GET_CLOSEST**
600
+ *
601
+ * @returns weaponGuid
602
+ */
603
+ get CorrectKitEmoteTwirlGun(): [boolean, number] {
604
+ const result = inv<[boolean, number]>('0xCD356B42C57BFE01', this.ped.handle, pvi(), rai());
605
+ return [!!result[0], result[1]];
509
606
  }
510
607
 
511
608
  /**
609
+ * @param weaponHash Refer to [enum: eWeaponHash]
512
610
  * @returns
513
611
  */
514
- makePedReload(): any {
515
- return inv<number>('0x79E1E511FF7EFB13', this.ped.handle);
612
+ setCurrentPedVehicleWeapon(weaponHash: eWeaponHash): boolean {
613
+ return !!inv<boolean>('0x75C55983C2C39DAA', this.ped.handle, weaponHash, rai());
614
+ }
615
+
616
+ /**
617
+ * Returns whether the ped has a rifle p1: 0 or 1
618
+ *
619
+ * @param p1
620
+ * @returns
621
+ */
622
+ doesPedHaveRifle(p1: number): any {
623
+ return inv<number>('0x95CA12E2C68043E5', this.ped.handle, p1);
516
624
  }
517
625
 
518
626
  /**
627
+ * Puts the gun visibly in your horse's holster without having to be close to the horse. Use `_SEND_WEAPON_TO_INVENTORY` before using this native
628
+ * _A* or _B*
629
+ *
519
630
  * @param weaponHash Refer to [enum: eWeaponHash]
520
- * @param ammoCount
521
- * @param p3
522
- * @param addReason Refer to [enum: eAddItemReason]
631
+ * @param ped
523
632
  */
524
- giveDelayedWeaponToPed(weaponHash: eWeaponHash, ammoCount: number, p3: boolean, addReason: eAddItemReason): void {
525
- inv<void>('0xB282DC6EBD803C75', this.ped.handle, weaponHash, ammoCount, p3, addReason);
633
+ N_0x14FF0C2545527F9B(weaponHash: eWeaponHash, ped: Ped): void {
634
+ inv<void>('0x14FF0C2545527F9B', this.ped.handle, weaponHash, ped.handle);
526
635
  }
527
636
 
528
637
  /**
529
- * @param toggle
638
+ * Returns iSpinHash / iVariationSpin
639
+ *
640
+ * @param weaponEmoteVariation
641
+ * @returns
530
642
  */
531
- N_0x45E57FDD531C9477(toggle: boolean): void {
532
- inv<void>('0x45E57FDD531C9477', this.ped.handle, toggle);
643
+ getPedGunSpinningHashFromWeaponEmoteVariation(weaponEmoteVariation: number): number {
644
+ return (inv<number>('0xF3B1620B920D1708', this.ped.handle, weaponEmoteVariation, rai())) & 0xFFFFFFFF;
533
645
  }
534
646
 
535
647
  /**
536
- * @param ammoHash Refer to [enum: eAmmoType]
537
- * @returns weaponInventoryUid
648
+ * Returns whether the ped has a repeater p1: 0 or 1
649
+ *
650
+ * @param p1
651
+ * @returns
538
652
  */
539
- setAmmoTypeForPedWeaponInventory(ammoHash: eAmmoType): number {
540
- const result = inv<number>('0xEBE46B501BC3FBCF', this.ped.handle, pvi(), ammoHash);
541
- return result;
653
+ doesPedHaveRepeater(p1: number): any {
654
+ return inv<number>('0x495A04CAEC263AF8', this.ped.handle, p1);
542
655
  }
543
656
 
544
657
  /**
545
- * @param weaponHash Refer to [enum: eWeaponHash]
546
- * @param p2
547
- * @param removeReason Refer to [enum: eRemoveItemReason]
658
+ * @param weaponCollection
548
659
  */
549
- removeWeaponFromPed(weaponHash: eWeaponHash, p2: boolean, removeReason: eRemoveItemReason): void {
550
- inv<void>('0x4899CB088EDF59B8', this.ped.handle, weaponHash, p2, removeReason);
660
+ giveWeaponCollectionToPed(weaponCollection: string | number): void {
661
+ inv<void>('0x899A04AFCC725D04', this.ped.handle, _h(weaponCollection));
551
662
  }
552
663
 
553
664
  /**
@@ -644,275 +755,245 @@ export class Weapon {
644
755
  }
645
756
 
646
757
  /**
647
- * @param toggle
648
- */
649
- N_0xF08D8FEB455F2C8C(toggle: boolean): void {
650
- inv<void>('0xF08D8FEB455F2C8C', this.ped.handle, toggle);
758
+ * Returns ammoHash from weaponObject (Returned by 0x6CA484C9A7377E4F)
759
+ *
760
+ * @param weaponObject
761
+ * @returns
762
+ */
763
+ getCurrentPedWeaponAmmoType(weaponObject: Prop): number {
764
+ return (inv<number>('0x7E7B19A4355FEE13', this.ped.handle, weaponObject.handle, rai())) & 0xFFFFFFFF;
651
765
  }
652
766
 
653
767
  /**
654
- * @returns ammo; inventoryUid
768
+ * @param p1
769
+ * @param p2
770
+ * @param p3
771
+ * @returns
655
772
  */
656
- get AmmoInClipByInventoryUid(): [any, number, number] {
657
- const result = inv<[number, number, number]>('0x678F00858980F516', this.ped.handle, pvi(), pvi());
658
- return [result[0], result[1], result[2]];
773
+ getPedWorstWeapon(p1: boolean, p2: boolean, p3: boolean): number {
774
+ return (inv<number>('0xDA37A053C1522F5D', this.ped.handle, p1, p2, p3, rai())) & 0xFFFFFFFF;
659
775
  }
660
776
 
661
777
  /**
662
- * removeReason must be REMOVE_REASON_USED, REMOVE_REASON_GIVEN, REMOVE_REASON_DROPPED or REMOVE_REASON_DEBUG, unless amount is -1
663
- *
664
- * @param ammoHash Refer to [enum: eAmmoType]
665
- * @param amount
666
- * @param removeReason Refer to [enum: eRemoveItemReason]
778
+ * @param toggle
667
779
  */
668
- removeAmmoFromPedByType(ammoHash: eAmmoType, amount: number, removeReason: eRemoveItemReason): void {
669
- inv<void>('0xB6CFEC32E3742779', this.ped.handle, ammoHash, amount, removeReason);
780
+ set PedDropsWeaponsWhenDead(toggle: boolean) {
781
+ inv<void>('0x476AE72C1D19D1A8', this.ped.handle, toggle);
670
782
  }
671
783
 
672
784
  /**
673
- * Holster the holded shoulder weapon. Precisions: 0 means with anim while 1 means direct holster
785
+ * Returns ammoHash
674
786
  *
675
- * @param disableAnim
787
+ * @returns Returns the [enum: eAmmoType]; weaponGuid
676
788
  */
677
- set PedWeaponOnBack(disableAnim: boolean) {
678
- inv<void>('0x4820A6939D7CEF28', this.ped.handle, disableAnim);
789
+ get CurrentAmmoTypeFromGuid(): [number, number] {
790
+ const result = inv<[number, number]>('0xAF9D167A5656D6A6', this.ped.handle, pvi(), rai());
791
+ return [result[0] & 0xFFFFFFFF, result[1]];
679
792
  }
680
793
 
681
794
  /**
682
- * @param ammoType
683
- * @param ammo
795
+ * @param toggle
684
796
  */
685
- setPedAmmoByType(ammoType: string | number, ammo: number): void {
686
- inv<void>('0x5FD1E1F011E76D7E', this.ped.handle, _h(ammoType), ammo);
797
+ set PedInfiniteAmmoClip(toggle: boolean) {
798
+ inv<void>('0xFBAA1E06B6BCA741', this.ped.handle, toggle);
687
799
  }
688
800
 
689
801
  /**
690
- * @param p1
802
+ * returns the amount of peds that were restrained with the weapon thrown bolas
803
+ *
691
804
  * @returns
692
805
  */
693
- getPedBackupWeapon(p1: boolean): number {
694
- return (inv<number>('0xC71FE230A513C30F', this.ped.handle, p1, rai())) & 0xFFFFFFFF;
806
+ get NumPedsRestrainedFromWeaponBolas(): any {
807
+ return inv<number>('0x46D42883E873C1D7', this.ped.handle);
695
808
  }
696
809
 
697
810
  /**
698
- * @param attachPoint Refer to [enum: eWeaponAttachPoint]
811
+ * emote hashes: KIT_EMOTE_TWIRL_GUN, KIT_EMOTE_TWIRL_GUN_LEFT_HOLSTER, KIT_EMOTE_TWIRL_GUN_DUAL, 0 (to unequip)
812
+ *
813
+ * @param emote
699
814
  */
700
- set ForceCurrentWeaponIntoCockedState(attachPoint: number) {
701
- inv<void>('0x5230D3F6EE56CFE6', this.ped.handle, attachPoint);
815
+ set ActiveGunSpinningEquipKitEmoteTwirl(emote: string | number) {
816
+ inv<void>('0xCBCFFF805F1B4596', this.ped.handle, _h(emote));
702
817
  }
703
818
 
704
819
  /**
705
- * @param weaponHash Refer to [enum: eWeaponHash]
706
- * @returns ammo
820
+ * @param toggle
707
821
  */
708
- getAmmoInClip(weaponHash: eWeaponHash): [boolean, number] {
709
- const result = inv<[boolean, number]>('0x2E1202248937775C', this.ped.handle, pvi(), weaponHash, rai());
710
- return [!!result[0], result[1]];
822
+ set AllowAnyWeaponDrop(toggle: boolean) {
823
+ inv<void>('0x78030C7867D8B9B6', this.ped.handle, toggle);
711
824
  }
712
825
 
713
826
  /**
714
- * @param toggle
827
+ * @returns
715
828
  */
716
- N_0x16D9841A85FA627E(toggle: boolean): void {
717
- inv<void>('0x16D9841A85FA627E', this.ped.handle, toggle);
829
+ makePedReload(): any {
830
+ return inv<number>('0x79E1E511FF7EFB13', this.ped.handle);
718
831
  }
719
832
 
720
833
  /**
721
834
  * @param weaponHash Refer to [enum: eWeaponHash]
722
- * @param offset
723
835
  * @param ammoCount
836
+ * @param p3
837
+ * @param addReason Refer to [enum: eAddItemReason]
724
838
  */
725
- setPedDropsInventoryWeapon(weaponHash: eWeaponHash, offset: Vector3, ammoCount: number): void {
726
- inv<void>('0x208A1888007FC0E6', this.ped.handle, weaponHash, f(offset.x), f(offset.y), f(offset.z), ammoCount);
727
- }
728
-
729
- /**
730
- * spinHash can be -1, 0 to disable
731
- *
732
- * @param weaponEmoteTrickType
733
- * @param spin
734
- */
735
- setActiveGunSpinningKitEmoteTwirl(weaponEmoteTrickType: number, spin: string | number): void {
736
- inv<void>('0x01F661BB9C71B465', this.ped.handle, weaponEmoteTrickType, _h(spin));
839
+ giveDelayedWeaponToPed(weaponHash: eWeaponHash, ammoCount: number, p3: boolean, addReason: eAddItemReason): void {
840
+ inv<void>('0xB282DC6EBD803C75', this.ped.handle, weaponHash, ammoCount, p3, addReason);
737
841
  }
738
842
 
739
843
  /**
740
- * Appears to just send specified weapon to your horse holster without having to be close
741
- * However, the weapon is not visible on the horse holster, but you can reach the weapon on the weapon wheel
742
- *
743
- * @param weaponHash Refer to [enum: eWeaponHash]
844
+ * @param toggle
744
845
  */
745
- sendWeaponToInventory(weaponHash: eWeaponHash): void {
746
- inv<void>('0xE9BD19F8121ADE3E', this.ped.handle, weaponHash);
846
+ N_0x45E57FDD531C9477(toggle: boolean): void {
847
+ inv<void>('0x45E57FDD531C9477', this.ped.handle, toggle);
747
848
  }
748
849
 
749
850
  /**
750
- * If near your horse when called, weapons stored on your horse will be considered
751
- * Returns weaponHash
752
- *
753
- * @param weaponGroup
754
- * @param p2
755
- * @param p3
756
- * @returns
851
+ * @param ammoHash Refer to [enum: eAmmoType]
852
+ * @returns weaponInventoryUid
757
853
  */
758
- getBestPedWeaponInGroup(weaponGroup: string | number, p2: boolean, p3: boolean): number {
759
- return (inv<number>('0x9F67929D98E7C6E8', this.ped.handle, _h(weaponGroup), p2, p3, rai())) & 0xFFFFFFFF;
854
+ setAmmoTypeForPedWeaponInventory(ammoHash: eAmmoType): number {
855
+ const result = inv<number>('0xEBE46B501BC3FBCF', this.ped.handle, pvi(), ammoHash);
856
+ return result;
760
857
  }
761
858
 
762
859
  /**
763
- * Only used in R* SP Scripts native_son2, native_son3 and smuggler2
764
- * Params: p2 = -1
765
- *
766
- * @param p1
860
+ * @param weaponHash Refer to [enum: eWeaponHash]
767
861
  * @param p2
862
+ * @param removeReason Refer to [enum: eRemoveItemReason]
768
863
  */
769
- N_0x8A779706DA5CA3DD(p1: boolean, p2: number): void {
770
- inv<void>('0x8A779706DA5CA3DD', this.ped.handle, p1, p2);
864
+ removeWeaponFromPed(weaponHash: eWeaponHash, p2: boolean, removeReason: eRemoveItemReason): void {
865
+ inv<void>('0x4899CB088EDF59B8', this.ped.handle, weaponHash, p2, removeReason);
771
866
  }
772
867
 
773
868
  /**
774
869
  * @param weaponHash Refer to [enum: eWeaponHash]
775
870
  * @param ammoHash Refer to [enum: eAmmoType]
776
871
  */
777
- disableAmmoTypeForPedWeapon(weaponHash: eWeaponHash, ammoHash: eAmmoType): void {
778
- inv<void>('0xF0D728EEA3C99775', this.ped.handle, weaponHash, ammoHash);
779
- }
780
-
781
- /**
782
- * @returns data; outData
783
- */
784
- giveWeaponToPedWithOptions(): [boolean, number, number] {
785
- const result = inv<[boolean, number, number]>('0xBE7E42B07FD317AC', this.ped.handle, pvi(), pvi(), rai());
786
- return [!!result[0], result[1], result[2]];
872
+ enableAmmoTypeForPedWeapon(weaponHash: eWeaponHash, ammoHash: eAmmoType): void {
873
+ inv<void>('0x23FB9FACA28779C1', this.ped.handle, weaponHash, ammoHash);
787
874
  }
788
875
 
789
876
  /**
790
- * @returns
877
+ * @param toggle
791
878
  */
792
- get MaxLockonDistanceOfCurrentPedWeapon(): number {
793
- return inv<number>('0x79B1A6E780266DB0', this.ped.handle, raf());
879
+ N_0x431240A58484D5D0(toggle: boolean): void {
880
+ inv<void>('0x431240A58484D5D0', this.ped.handle, toggle);
794
881
  }
795
882
 
796
883
  /**
797
- * @param ammoHash Refer to [enum: eAmmoType]
884
+ * @param p2
885
+ * @param p3
886
+ * @returns outGUID
798
887
  */
799
- disableAmmoTypeForPed(ammoHash: eAmmoType): void {
800
- inv<void>('0xAA5A52204E077883', this.ped.handle, ammoHash);
888
+ getBestPedShortarmGuid(p2: boolean, p3: boolean): number {
889
+ const result = inv<number>('0xF52BD94B47CCF736', this.ped.handle, pvi(), p2, p3);
890
+ return result;
801
891
  }
802
892
 
803
893
  /**
804
- * Returns whether the ped has a shotgun p1: 0 or 1
805
- *
806
- * @param p1
807
- * @returns
894
+ * @returns coords
808
895
  */
809
- doesPedHaveShotgun(p1: number): any {
810
- return inv<number>('0xABC18A28BAD4B46F', this.ped.handle, p1);
811
- }
812
-
813
- clearPedLastWeaponDamage(): void {
814
- inv<void>('0x087D8F4BC65F68E4', this.ped.handle);
896
+ get PedLastWeaponImpactCoord(): [boolean, Vector3] {
897
+ const result = inv<[boolean, number[]]>('0x6C4D0409BA1A2BC2', this.ped.handle, pvv(), rai());
898
+ return [!!result[0], Vector3.fromArray(result[1])];
815
899
  }
816
900
 
817
901
  /**
818
- * Returns true if ped is on a horse while inside of a town
819
- * Params: p1 = 0
820
- * GET_L* - GET_MA*
902
+ * Returns WeaponAttachPoint
821
903
  *
822
- * @param p1
904
+ * @param attachPoint Refer to [enum: eWeaponAttachPoint]
823
905
  * @returns
824
906
  */
825
- N_0x5A695BD328586B44(p1: number): any {
826
- return inv<number>('0x5A695BD328586B44', this.ped.handle, p1);
907
+ getWeaponAttachPoint(attachPoint: number): number {
908
+ return inv<number>('0xCAD4FE9398820D24', this.ped.handle, attachPoint, rai());
827
909
  }
828
910
 
829
911
  /**
830
- * @param weaponHash Refer to [enum: eWeaponHash]
831
- * @param amount
832
- * @param removeReason Refer to [enum: eRemoveItemReason]
912
+ * @param p2
913
+ * @param attachPoint Refer to [enum: eWeaponAttachPoint]
914
+ * @param p4
915
+ * @returns weaponHash: Refer to [enum: eWeaponHash]
833
916
  */
834
- removeAmmoFromPed(weaponHash: eWeaponHash, amount: number, removeReason: eRemoveItemReason): void {
835
- inv<void>('0xF4823C813CB8277D', this.ped.handle, weaponHash, amount, removeReason);
917
+ getCurrentPedWeapon(p2: boolean, attachPoint: number, p4: boolean): [boolean, number] {
918
+ const result = inv<[boolean, number]>('0x3A87E44BB9A01D54', this.ped.handle, pvi(), p2, attachPoint, p4, rai());
919
+ return [!!result[0], result[1]];
836
920
  }
837
921
 
838
922
  /**
923
+ * Returns whether the ped has a revolver p1: 0 or 1
924
+ *
839
925
  * @param p1
840
- * @param p2
926
+ * @returns
841
927
  */
842
- setPedAmmoToDrop(p1: number, p2: number): void {
843
- inv<void>('0xA4EFEF9440A5B0EF', this.ped.handle, p1, p2);
928
+ doesPedHaveRevolver(p1: number): any {
929
+ return inv<number>('0x5B235F24472F2C3B', this.ped.handle, p1);
844
930
  }
845
931
 
846
932
  /**
847
- * Returns the current ammo type of the specified ped's specified weapon.
933
+ * Returns emote Hash
848
934
  *
849
- * @param weaponHash Refer to [enum: eWeaponHash]
850
935
  * @returns
851
936
  */
852
- getPedAmmoTypeFromWeapon(weaponHash: eWeaponHash): number {
853
- return (inv<number>('0x7FEAD38B326B9F74', this.ped.handle, weaponHash, rai())) & 0xFFFFFFFF;
937
+ get PedGunSpinningEquippedKitEmoteTwirl(): number {
938
+ return (inv<number>('0x2C4FEC3D0EFA9FC0', this.ped.handle, rai())) & 0xFFFFFFFF;
854
939
  }
855
940
 
856
941
  /**
857
- * @param weaponHash Refer to [enum: eWeaponHash]
858
- * @returns ammo
942
+ * @param toggle
859
943
  */
860
- getMaxAmmo(weaponHash: eWeaponHash): [boolean, number] {
861
- const result = inv<[boolean, number]>('0xDC16122C7A20C933', this.ped.handle, pvi(), weaponHash, rai());
862
- return [!!result[0], result[1]];
944
+ N_0xF08D8FEB455F2C8C(toggle: boolean): void {
945
+ inv<void>('0xF08D8FEB455F2C8C', this.ped.handle, toggle);
863
946
  }
864
947
 
865
948
  /**
866
- * Returns ammoHash from weaponObject (Returned by 0x6CA484C9A7377E4F)
867
- *
868
- * @param weaponObject
869
- * @returns
949
+ * @returns ammo; inventoryUid
870
950
  */
871
- getCurrentPedWeaponAmmoType(weaponObject: Prop): number {
872
- return (inv<number>('0x7E7B19A4355FEE13', this.ped.handle, weaponObject.handle, rai())) & 0xFFFFFFFF;
951
+ get AmmoInClipByInventoryUid(): [any, number, number] {
952
+ const result = inv<[number, number, number]>('0x678F00858980F516', this.ped.handle, pvi(), pvi());
953
+ return [result[0], result[1], result[2]];
873
954
  }
874
955
 
875
956
  /**
876
- * @param p1
877
- * @param p2
878
- * @param p3
879
- * @returns
957
+ * removeReason must be REMOVE_REASON_USED, REMOVE_REASON_GIVEN, REMOVE_REASON_DROPPED or REMOVE_REASON_DEBUG, unless amount is -1
958
+ *
959
+ * @param ammoHash Refer to [enum: eAmmoType]
960
+ * @param amount
961
+ * @param removeReason Refer to [enum: eRemoveItemReason]
880
962
  */
881
- getPedWorstWeapon(p1: boolean, p2: boolean, p3: boolean): number {
882
- return (inv<number>('0xDA37A053C1522F5D', this.ped.handle, p1, p2, p3, rai())) & 0xFFFFFFFF;
963
+ removeAmmoFromPedByType(ammoHash: eAmmoType, amount: number, removeReason: eRemoveItemReason): void {
964
+ inv<void>('0xB6CFEC32E3742779', this.ped.handle, ammoHash, amount, removeReason);
883
965
  }
884
966
 
885
967
  /**
886
- * @param toggle
968
+ * Holster the holded shoulder weapon. Precisions: 0 means with anim while 1 means direct holster
969
+ *
970
+ * @param disableAnim
887
971
  */
888
- set PedDropsWeaponsWhenDead(toggle: boolean) {
889
- inv<void>('0x476AE72C1D19D1A8', this.ped.handle, toggle);
972
+ set PedWeaponOnBack(disableAnim: boolean) {
973
+ inv<void>('0x4820A6939D7CEF28', this.ped.handle, disableAnim);
890
974
  }
891
975
 
892
976
  /**
893
- * Returns ammoHash
894
- *
895
- * @returns Returns the [enum: eAmmoType]; weaponGuid
977
+ * @param ammoType
978
+ * @param ammo
896
979
  */
897
- get CurrentAmmoTypeFromGuid(): [number, number] {
898
- const result = inv<[number, number]>('0xAF9D167A5656D6A6', this.ped.handle, pvi(), rai());
899
- return [result[0] & 0xFFFFFFFF, result[1]];
980
+ setPedAmmoByType(ammoType: string | number, ammo: number): void {
981
+ inv<void>('0x5FD1E1F011E76D7E', this.ped.handle, _h(ammoType), ammo);
900
982
  }
901
983
 
902
984
  /**
903
- * @param toggle
985
+ * @param p1
986
+ * @returns
904
987
  */
905
- set PedInfiniteAmmoClip(toggle: boolean) {
906
- inv<void>('0xFBAA1E06B6BCA741', this.ped.handle, toggle);
988
+ getPedBackupWeapon(p1: boolean): number {
989
+ return (inv<number>('0xC71FE230A513C30F', this.ped.handle, p1, rai())) & 0xFFFFFFFF;
907
990
  }
908
991
 
909
992
  /**
910
- * returns the amount of peds that were restrained with the weapon thrown bolas
911
- *
912
- * @returns
993
+ * @param attachPoint Refer to [enum: eWeaponAttachPoint]
913
994
  */
914
- get NumPedsRestrainedFromWeaponBolas(): any {
915
- return inv<number>('0x46D42883E873C1D7', this.ped.handle);
995
+ set ForceCurrentWeaponIntoCockedState(attachPoint: number) {
996
+ inv<void>('0x5230D3F6EE56CFE6', this.ped.handle, attachPoint);
916
997
  }
917
998
 
918
999
  /**
@@ -979,85 +1060,4 @@ export class Weapon {
979
1060
  return !!inv<boolean>('0x8DECB02F88F428BC', this.ped.handle, weaponHash, p2, onlyCheckPlayerInventory, rai());
980
1061
  }
981
1062
 
982
- /**
983
- * @returns
984
- */
985
- get AllowDualWield(): any {
986
- return inv<number>('0x918990BD9CE08582', this.ped.handle);
987
- }
988
-
989
- /**
990
- * Returns eCurrentHeldWeapon
991
- * _GET_R* - _GET_T*
992
- *
993
- * @returns
994
- */
995
- get PedCurrentHeldWeapon(): number {
996
- return (inv<number>('0x8425C5F057012DAB', this.ped.handle, rai())) & 0xFFFFFFFF;
997
- }
998
-
999
- /**
1000
- * @param toggle
1001
- */
1002
- set ForceAutoEquip(toggle: boolean) {
1003
- inv<void>('0xBE711B14A159E84F', this.ped.handle, toggle);
1004
- }
1005
-
1006
- /**
1007
- * @param weaponHash Refer to [enum: eWeaponHash]
1008
- * @param ammo
1009
- */
1010
- setPedAmmo(weaponHash: eWeaponHash, ammo: number): void {
1011
- inv<void>('0x14E56BC5B5DB6A19', this.ped.handle, weaponHash, ammo);
1012
- }
1013
-
1014
- /**
1015
- * Gives the ped the weapon.
1016
- * List: https://github.com/femga/rdr3_discoveries/blob/master/weapons/weapons.lua Params: p7 is 0.5f, and p8 is 1.0f. p11 and p12 are both 0 in R* Scripts
1017
- * permanentDegradation: default 0.5, any higher than 0 it will automatically make the weapon worn, you can also adjust the value to change the weapons maximum cleanliness
1018
- *
1019
- * @param weaponHash Refer to [enum: eWeaponHash]
1020
- * @param ammoCount
1021
- * @param bForceInHand
1022
- * @param bForceInHolster
1023
- * @param attachPoint Refer to [enum: eWeaponAttachPoint]
1024
- * @param bAllowMultipleCopies
1025
- * @param p7
1026
- * @param p8
1027
- * @param addReason Refer to [enum: eAddItemReason]
1028
- * @param bIgnoreUnlocks
1029
- * @param permanentDegradation
1030
- * @param p12
1031
- * @returns
1032
- */
1033
- giveWeaponToPed(weaponHash: eWeaponHash, ammoCount: number, bForceInHand: boolean, bForceInHolster: boolean, attachPoint: number, bAllowMultipleCopies: boolean, p7: number, p8: number, addReason: eAddItemReason, bIgnoreUnlocks: boolean, permanentDegradation: number, p12: boolean): number {
1034
- return (inv<number>('0x5E3BDDBCB83F3D84', this.ped.handle, weaponHash, ammoCount, bForceInHand, bForceInHolster, attachPoint, bAllowMultipleCopies, f(p7), f(p8), addReason, bIgnoreUnlocks, f(permanentDegradation), p12, rai())) & 0xFFFFFFFF;
1035
- }
1036
-
1037
- /**
1038
- * @param weaponHash Refer to [enum: eWeaponHash]
1039
- * @returns
1040
- */
1041
- getAmmoInPedWeapon(weaponHash: eWeaponHash): number {
1042
- return inv<number>('0x015A522136D7F951', this.ped.handle, weaponHash, rai());
1043
- }
1044
-
1045
- /**
1046
- * @param attachPoint Refer to [enum: eWeaponAttachPoint]
1047
- * @returns weaponGuid
1048
- */
1049
- getPedWeaponGuidAtAttachPoint(attachPoint: number): [any, number] {
1050
- const result = inv<[number, number]>('0x6929E22158E52265', this.ped.handle, attachPoint, pvi());
1051
- return [result[0], result[1]];
1052
- }
1053
-
1054
- /**
1055
- * emote hashes: KIT_EMOTE_TWIRL_GUN, KIT_EMOTE_TWIRL_GUN_LEFT_HOLSTER, KIT_EMOTE_TWIRL_GUN_DUAL, 0 (to unequip)
1056
- *
1057
- * @param emote
1058
- */
1059
- set ActiveGunSpinningEquipKitEmoteTwirl(emote: string | number) {
1060
- inv<void>('0xCBCFFF805F1B4596', this.ped.handle, _h(emote));
1061
- }
1062
-
1063
1063
  }