-
Notifications
You must be signed in to change notification settings - Fork 68
/
IPlayer.cs
496 lines (394 loc) · 16.4 KB
/
IPlayer.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
using System;
using System.Numerics;
using AltV.Net.Data;
using AltV.Net.Elements.Args;
using AltV.Net.Enums;
using AltV.Net.Shared.Elements.Entities;
namespace AltV.Net.Elements.Entities
{
public interface IPlayer : ISharedPlayer, IEntity
{
/// <summary>
/// Returns the current vehicle. Null if not in a vehicle
/// </summary>
new IVehicle Vehicle { get; }
/// <summary>
/// The players model / skin
/// </summary>
new uint Model { get; set; }
/// <summary>
/// Returns true if player is connected - false if not connected
/// </summary>
bool IsConnected { get; }
/// <summary>
/// Returns the players Social Club ID
/// </summary>
ulong SocialClubId { get; }
/// <summary>
/// Returns the players Hardware ID Hash
/// </summary>
ulong HardwareIdHash { get; }
ulong HardwareIdExHash { get; }
string AuthToken { get; }
long DiscordId { get; }
/// <summary>
/// Gets and Sets the players health
/// </summary>
new ushort Health { get; set; }
/// <summary>
/// Gets and Sets the players max health
/// </summary>
new ushort MaxHealth { get; set; }
/// <summary>
/// Returns if the player is jumping. True = player jumping
/// </summary>
bool IsJumping { get; }
/// <summary>
/// Returns if the player is firing.
/// </summary>
bool IsShooting { get; }
/// <summary>
/// Sets and returns the players current armor
/// </summary>
new ushort Armor { get; set; }
/// <summary>
/// Sets and returns the max armor for the player
/// </summary>
new ushort MaxArmor { get; set; }
/// <summary>
/// Returns the current weapon the player has equipped
/// </summary>
new uint CurrentWeapon { get; set; }
/// <summary>
/// Returns the IEntity object if the player is aiming at
/// </summary>
new IEntity EntityAimingAt { get; }
/// <summary>
/// Returns the current ping of the player
/// </summary>
uint Ping { get; }
/// <summary>
/// Returns the IP of the player
/// </summary>
string Ip { get; }
uint InteriorLocation { get; }
/// <summary>
/// Spawns a player at the designated position with a optional delay in milliseconds
/// </summary>
/// <param name="position">position</param>
/// <param name="delayMs">delay in milliseconds until player is spawned</param>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
void Spawn(Position position, uint delayMs = 0);
/// <summary>
/// Despawns a player
/// </summary>
void Despawn();
/// <summary>
/// Sets the current date and time for a player
/// </summary>
/// <param name="day"></param>
/// <param name="month"></param>
/// <param name="year"></param>
/// <param name="hour"></param>
/// <param name="minute"></param>
/// <param name="second"></param>
void SetDateTime(int day, int month, int year, int hour,
int minute, int second);
void SetDateTime(DateTime dateTime);
/// <summary>
/// Sets the current weather for the player
/// </summary>
/// <param name="weather"></param>
void SetWeather(uint weather);
void SetWeather(WeatherType weatherType);
/// <summary>
/// Gives the player a weapon, ammo and if it is active
/// </summary>
/// <param name="weapon">weapon hash</param>
/// <param name="ammo">ammo count</param>
/// <param name="selectWeapon">True - Places into hand</param>
void GiveWeapon(uint weapon, int ammo, bool selectWeapon);
void GiveWeapon(WeaponModel weaponModel, int ammo, bool selectWeapon);
/// <summary>
/// Removes the weapon by hash
/// </summary>
/// <param name="weapon"></param>
bool RemoveWeapon(uint weapon);
bool RemoveWeapon(WeaponModel weaponModel);
/// <summary>
/// Removes all player weapons
/// </summary>
void RemoveAllWeapons(bool removeAllAmmo);
bool HasWeapon(uint weapon);
bool HasWeapon(WeaponModel weapon);
/// <summary>
/// Kicks the player with reason
/// </summary>
/// <param name="reason">Reason why the player is kicked</param>
void Kick(string reason);
/// <summary>
/// Triggers client side event for a player
/// </summary>
/// <param name="eventName">Event Trigger</param>
/// <param name="args">Parameters</param>
void Emit(string eventName, params object[] args);
ushort EmitRPC(string name, params object[] args);
void EmitRPCAnswer(ushort answerId, object answer, string error);
/// <summary>
/// Triggers client side event for a player
/// </summary>
/// <param name="eventName">Event Trigger</param>
/// <param name="args">Parameters</param>
void EmitUnreliable(string eventName, params object[] args);
/// <summary>
/// Adds a weapon component to a weapon
/// </summary>
/// <param name="weapon">Weapon hash</param>
/// <param name="weaponComponent">Weapon Component hash</param>
void AddWeaponComponent(uint weapon, uint weaponComponent);
void AddWeaponComponent(WeaponModel weaponModel, uint weaponComponent);
/// <summary>
/// Removes a weapon component from a weapon
/// </summary>
/// <param name="weapon">Weapon hash</param>
/// <param name="weaponComponent">Weapon Component hash</param>
void RemoveWeaponComponent(uint weapon, uint weaponComponent);
void RemoveWeaponComponent(WeaponModel weaponModel, uint weaponComponent);
/// <summary>
/// Checks if a weapon has a component
/// </summary>
/// <param name="weapon">Weapon hash</param>
/// <param name="weaponComponent">Weapon Component hash</param>
/// <returns></returns>
bool HasWeaponComponent(uint weapon, uint weaponComponent);
bool HasWeaponComponent(WeaponModel weapon, uint weaponComponent);
/// <summary>
/// Sets the weapon tint to a weapon
/// </summary>
/// <param name="weapon">Weapon hash</param>
/// <param name="tintIndex">tintIndex</param>
void SetWeaponTintIndex(uint weapon, byte tintIndex);
void SetWeaponTintIndex(WeaponModel weaponModel, byte tintIndex);
/// <summary>
/// Gets the weapon tint of a weapon
/// </summary>
/// <param name="weapon">Weapon hash</param>
byte GetWeaponTintIndex(uint weapon);
byte GetWeaponTintIndex(WeaponModel weapon);
/// <summary>
/// Returns weapon tint of current weapon
/// </summary>
/// <returns></returns>
byte GetCurrentWeaponTintIndex();
/// <summary>
/// Returns player weapons
/// </summary>
/// <returns></returns>
WeaponData[] GetWeapons();
/// <summary>
/// Clears the blood damage of the player
/// </summary>
void ClearBloodDamage();
/// <summary>
/// Gets the player clothes
/// </summary>
Cloth GetClothes(byte component);
/// <summary>
/// Gets the player clothes
/// </summary>
void GetClothes(byte component, ref Cloth cloth);
/// <summary>
/// Sets the player clothes
/// </summary>
bool SetClothes(byte component, ushort drawable, byte texture, byte palette);
/// <summary>
/// Gets the player dlc clothes
/// </summary>
DlcCloth GetDlcClothes(byte component);
/// <summary>
/// Gets the player dlc clothes
/// </summary>
void GetDlcClothes(byte component, ref DlcCloth cloth);
/// <summary>
/// Sets the player dlc clothes
/// </summary>
/// <param name="component">Id of the component</param>
/// <param name="drawable">Drawable id of the component. Can't be higher then 127</param>
/// <param name="texture">Texture id of the component</param>
/// <param name="palette">Palette id of the component</param>
/// <param name="dlc">Hash of the components dlc pack</param>
/// <exception cref="System.ArgumentOutOfRangeException">Thrown if drawable id is higher then 127</exception>
bool SetDlcClothes(byte component, ushort drawable, byte texture, byte palette, uint dlc);
bool ClearClothes(byte component);
/// <summary>
/// Gets the player props
/// </summary>
Prop GetProps(byte component);
/// <summary>
/// Gets the player props
/// </summary>
void GetProps(byte component, ref Prop prop);
/// <summary>
/// Sets the player props
/// </summary>
bool SetProps(byte component, ushort drawable, byte texture);
/// <summary>
/// Gets the player dlc props
/// </summary>
DlcProp GetDlcProps(byte component);
/// <summary>
/// Gets the player dlc props
/// </summary>
void GetDlcProps(byte component, ref DlcProp prop);
/// <summary>
/// Sets the player dlc props
/// </summary>
bool SetDlcProps(byte component, ushort drawable, byte texture, uint dlc);
/// <summary>
/// Clear the player props
/// </summary>
void ClearProps(byte component);
/// <summary>
/// Returns if the entity is in the streaming range of the player
/// </summary>
bool IsEntityInStreamingRange(IEntity entity);
/// <summary>
/// Get or set if the player is invincible.
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool Invincible { get; set; }
uint LastDamagedBodyPart { get; set; }
void SetIntoVehicle(IVehicle vehicle, byte seat);
/// <summary>
/// Gets if the player has super jump enabled.
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool IsSuperJumpEnabled { get; }
/// <summary>
/// Gets if the player is crouching.
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool IsCrouching { get; }
/// <summary>
/// Gets if the player is stealthy.
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool IsStealthy { get; }
/// <summary>
/// Plays ambient speech
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
void PlayAmbientSpeech(string speechName, string speechParam, uint speechHash);
/// <summary>
/// Get Head Blend Data
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
HeadBlendData HeadBlendData { get; }
/// <summary>
/// Get Eye Color
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
ushort EyeColor { get; }
/// <summary>
/// Get/Set Hair Color
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
byte HairColor { get; set; }
/// <summary>
/// Get/Set Hair Highlight Color
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
byte HairHighlightColor { get; set; }
/// <summary>
/// Set Head Overlay
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool SetHeadOverlay(byte overlayId, byte index, float opacity);
/// <summary>
/// Remove Head Overlay
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool RemoveHeadOverlay(byte overlayId);
/// <summary>
/// Set Head Overlay Color
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool SetHeadOverlayColor(byte overlayId, byte colorType, byte colorIndex, byte secondColorIndex);
/// <summary>
/// Get Head Overlay
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
HeadOverlay GetHeadOverlay(byte overlayID);
/// <summary>
/// Set Face Feature
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool SetFaceFeature(byte index, float scale);
/// <summary>
/// Get Face Feature Scale
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
float GetFaceFeatureScale(byte index);
/// <summary>
/// Remove Face Feature
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool RemoveFaceFeature(byte index);
/// <summary>
/// Set Head Blend Palette Color
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool SetHeadBlendPaletteColor(byte id, Rgba rgba);
/// <summary>
/// Get Head Blend Palette Color
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
Rgba GetHeadBlendPaletteColor(byte id);
void RemoveHeadBlendPaletteColor();
/// <summary>
/// Set Head Blend Data
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
void SetHeadBlendData(uint shapeFirstID, uint shapeSecondID, uint shapeThirdID, uint skinFirstID, uint skinSecondID, uint skinThirdID, float shapeMix, float skinMix, float thirdMix);
void RemoveHeadBlendData();
/// <summary>
/// Set Eye Color
/// </summary>
/// <exception cref="EntityRemovedException">This entity was removed</exception>
bool SetEyeColor(ushort eyeColor);
void GetLocalMetaData(string key, out MValueConst value);
bool GetLocalMetaData<T>(string key, out T result);
void SetLocalMetaData(string key, object value);
void SetLocalMetaData(string key, in MValueConst value);
bool HasLocalMetaData(string key);
void DeleteLocalMetaData(string key);
bool SendNames { get; set; }
void PlayAnimation(string animDict, string animName, float blendInSpeed, float blendOutSpeed, int duration,
int flags, float playbackRate, bool lockX, bool lockY, bool lockZ);
void ClearTasks();
string SocialClubName { get; }
void SetAmmo(uint ammoHash, ushort ammo);
ushort GetAmmo(uint ammoHash);
void SetWeaponAmmo(uint weaponHash, ushort ammo);
ushort GetWeaponAmmo(uint weaponHash);
void SetAmmoSpecialType(uint ammoHash, AmmoSpecialType ammoSpecialType);
AmmoSpecialType GetAmmoSpecialType(uint ammoHash);
void SetAmmoFlags(uint ammoHash, AmmoFlags ammoFlags);
AmmoFlags GetAmmoFlags(uint ammoHash);
void SetAmmoMax(uint ammoHash, int ammoMax);
int GetAmmoMax(uint ammoHash);
void SetAmmoMax50(uint ammoHash, int ammoMax);
int GetAmmoMax50(uint ammoHash);
void SetAmmoMax100(uint ammoHash, int ammoMax);
int GetAmmoMax100(uint ammoHash);
void AddDecoration(uint collection, uint overlay, byte count = 1);
void RemoveDecoration(uint collection, uint overlay);
void ClearDecorations();
Decoration[] GetDecorations();
void PlayScenario(string name);
string CloudId { get; }
CloudAuthResult CloudAuthResult { get; }
string BloodDamage { get; set; }
Vector3 GetForwardVector();
}
}