@infernus/core 0.8.7 → 0.9.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.
Files changed (105) hide show
  1. package/dist/bundle.js +1 -1
  2. package/dist/bundle.mjs +1 -0
  3. package/package.json +10 -3
  4. package/rollup.config.mjs +5 -2
  5. package/.eslintrc +0 -3
  6. package/src/controllers/command/index.ts +0 -57
  7. package/src/controllers/filterscript/index.ts +0 -69
  8. package/src/controllers/gamemode/index.ts +0 -277
  9. package/src/controllers/gamemode/settings.ts +0 -3
  10. package/src/controllers/gametext/index.ts +0 -61
  11. package/src/controllers/gangzone/baseGangZone.ts +0 -284
  12. package/src/controllers/gangzone/gangZoneBus.ts +0 -8
  13. package/src/controllers/gangzone/gangZoneEvent.ts +0 -91
  14. package/src/controllers/gangzone/index.ts +0 -2
  15. package/src/controllers/i18n/index.ts +0 -81
  16. package/src/controllers/index.ts +0 -12
  17. package/src/controllers/menu/baseMenu.ts +0 -203
  18. package/src/controllers/menu/index.ts +0 -2
  19. package/src/controllers/menu/menuBus.ts +0 -8
  20. package/src/controllers/menu/menuEvent.ts +0 -76
  21. package/src/controllers/netstats/index.ts +0 -43
  22. package/src/controllers/npc/index.ts +0 -2
  23. package/src/controllers/npc/npcEvent.ts +0 -26
  24. package/src/controllers/npc/npcFunc.ts +0 -64
  25. package/src/controllers/player/basePlayer.ts +0 -980
  26. package/src/controllers/player/index.ts +0 -3
  27. package/src/controllers/player/pauseChecker.ts +0 -39
  28. package/src/controllers/player/playerBus.ts +0 -9
  29. package/src/controllers/player/playerEvent.ts +0 -468
  30. package/src/controllers/promise/client/index.ts +0 -31
  31. package/src/controllers/promise/dialog/index.ts +0 -143
  32. package/src/controllers/textdraw/baseTextDraw.ts +0 -416
  33. package/src/controllers/textdraw/index.ts +0 -2
  34. package/src/controllers/textdraw/textdrawBus.ts +0 -8
  35. package/src/controllers/textdraw/textdrawEvent.ts +0 -61
  36. package/src/controllers/vehicle/baseVehicle.ts +0 -503
  37. package/src/controllers/vehicle/index.ts +0 -2
  38. package/src/controllers/vehicle/vehicleBus.ts +0 -8
  39. package/src/controllers/vehicle/vehicleEvent.ts +0 -201
  40. package/src/enums/artwork.ts +0 -5
  41. package/src/enums/clickSources.ts +0 -3
  42. package/src/enums/dialogStyles.ts +0 -8
  43. package/src/enums/editResponseTypes.ts +0 -5
  44. package/src/enums/index.ts +0 -18
  45. package/src/enums/invalid.ts +0 -13
  46. package/src/enums/keys.ts +0 -25
  47. package/src/enums/limits.ts +0 -18
  48. package/src/enums/marker.ts +0 -5
  49. package/src/enums/netstat.ts +0 -11
  50. package/src/enums/npc.ts +0 -11
  51. package/src/enums/object.ts +0 -25
  52. package/src/enums/player.ts +0 -92
  53. package/src/enums/record.ts +0 -5
  54. package/src/enums/specialActions.ts +0 -22
  55. package/src/enums/streamer.ts +0 -10
  56. package/src/enums/textdrawFonts.ts +0 -23
  57. package/src/enums/vehicle.ts +0 -32
  58. package/src/enums/weapon.ts +0 -82
  59. package/src/interfaces/index.ts +0 -233
  60. package/src/logger/index.ts +0 -24
  61. package/src/main.ts +0 -6
  62. package/src/types/index.ts +0 -48
  63. package/src/utils/EventBus.ts +0 -60
  64. package/src/utils/animateUtils.ts +0 -2504
  65. package/src/utils/colorUtils.ts +0 -43
  66. package/src/utils/helperUtils.ts +0 -403
  67. package/src/utils/vehicleUtils.ts +0 -321
  68. package/src/wrapper/native/callbacks/index.ts +0 -395
  69. package/src/wrapper/native/functions/index.ts +0 -3131
  70. package/src/wrapper/streamer/3dtext/3dTextBus.ts +0 -8
  71. package/src/wrapper/streamer/3dtext/3dTextEvent.ts +0 -70
  72. package/src/wrapper/streamer/3dtext/base3DText.ts +0 -184
  73. package/src/wrapper/streamer/3dtext/index.ts +0 -2
  74. package/src/wrapper/streamer/actor/actorBus.ts +0 -8
  75. package/src/wrapper/streamer/actor/actorEvent.ts +0 -95
  76. package/src/wrapper/streamer/actor/baseActor.ts +0 -278
  77. package/src/wrapper/streamer/actor/index.ts +0 -2
  78. package/src/wrapper/streamer/area/areaBus.ts +0 -8
  79. package/src/wrapper/streamer/area/areaEvent.ts +0 -99
  80. package/src/wrapper/streamer/area/baseArea.ts +0 -450
  81. package/src/wrapper/streamer/area/index.ts +0 -2
  82. package/src/wrapper/streamer/checkpoint/baseCheckpoint.ts +0 -136
  83. package/src/wrapper/streamer/checkpoint/checkPointBus.ts +0 -8
  84. package/src/wrapper/streamer/checkpoint/checkPointEvent.ts +0 -100
  85. package/src/wrapper/streamer/checkpoint/index.ts +0 -2
  86. package/src/wrapper/streamer/common/index.ts +0 -318
  87. package/src/wrapper/streamer/index.ts +0 -9
  88. package/src/wrapper/streamer/mapIcon/baseMapIcon.ts +0 -128
  89. package/src/wrapper/streamer/mapIcon/index.ts +0 -2
  90. package/src/wrapper/streamer/mapIcon/mapIconBus.ts +0 -8
  91. package/src/wrapper/streamer/mapIcon/mapIconEvent.ts +0 -67
  92. package/src/wrapper/streamer/object/baseObject.ts +0 -415
  93. package/src/wrapper/streamer/object/index.ts +0 -2
  94. package/src/wrapper/streamer/object/objectBus.ts +0 -8
  95. package/src/wrapper/streamer/object/objectEvent.ts +0 -177
  96. package/src/wrapper/streamer/pickup/basePickup.ts +0 -114
  97. package/src/wrapper/streamer/pickup/index.ts +0 -2
  98. package/src/wrapper/streamer/pickup/pickupBus.ts +0 -8
  99. package/src/wrapper/streamer/pickup/pickupEvent.ts +0 -84
  100. package/src/wrapper/streamer/raceCP/baseRaceCP.ts +0 -151
  101. package/src/wrapper/streamer/raceCP/index.ts +0 -2
  102. package/src/wrapper/streamer/raceCP/raceCPBus.ts +0 -8
  103. package/src/wrapper/streamer/raceCP/raceCPEvent.ts +0 -100
  104. package/tsconfig.json +0 -16
  105. /package/{LICENSE → LICENSE.md} +0 -0
@@ -0,0 +1 @@
1
+ import{encodingExists as Et,encode as Tt,decode as Dt}from"iconv-lite";import Lt from"pino";import{snakeCase as Te,merge as Rt,omit as bt,get as ke,mapKeys as Bt,throttle as Ge}from"lodash";import{Streamer_GetTickRate as Ot,Streamer_SetTickRate as wt,Streamer_GetPlayerTickRate as kt,Streamer_SetPlayerTickRate as Gt,Streamer_ToggleChunkStream as Mt,Streamer_IsToggleChunkStream as Ft,Streamer_GetChunkTickRate as Me,Streamer_SetChunkTickRate as Fe,Streamer_GetChunkSize as Nt,Streamer_SetChunkSize as Ht,Streamer_GetMaxItems as vt,Streamer_SetMaxItems as xt,Streamer_GetVisibleItems as Ne,Streamer_SetVisibleItems as He,Streamer_GetRadiusMultiplier as ve,Streamer_SetRadiusMultiplier as xe,Streamer_GetTypePriority as Vt,Streamer_SetTypePriority as Ut,Streamer_GetCellDistance as Wt,Streamer_SetCellDistance as Kt,Streamer_GetCellSize as jt,Streamer_SetCellSize as Zt,Streamer_ToggleItemStatic as zt,Streamer_IsToggleItemStatic as Xt,Streamer_ToggleItemInvAreas as Yt,Streamer_IsToggleItemInvAreas as Jt,Streamer_ToggleItemCallbacks as Qt,Streamer_IsToggleItemCallbacks as $t,Streamer_ToggleErrorCallback as qt,Streamer_IsToggleErrorCallback as en,Streamer_AmxUnloadDestroyItems as tn,Streamer_ProcessActiveItems as nn,Streamer_ToggleIdleUpdate as rn,Streamer_IsToggleIdleUpdate as an,Streamer_ToggleCameraUpdate as sn,Streamer_IsToggleCameraUpdate as dn,Streamer_ToggleItemUpdate as on,Streamer_IsToggleItemUpdate as ln,Streamer_GetLastUpdateTime as _n,Streamer_Update as cn,Streamer_UpdateEx as hn,Streamer_GetDistanceToItem as un,Streamer_ToggleItem as yn,Streamer_IsToggleItem as mn,Streamer_ToggleAllItems as Sn,Streamer_GetItemInternalID as gn,Streamer_GetItemStreamerID as Pn,Streamer_IsItemVisible as pn,Streamer_DestroyAllVisibleItems as An,Streamer_CountVisibleItems as In,Streamer_DestroyAllItems as Cn,Streamer_CountItems as fn,Streamer_GetNearbyItems as En,Streamer_GetAllVisibleItems as Tn,Streamer_GetItemPos as Dn,Streamer_SetItemPos as Ln,Streamer_GetItemOffset as Rn,Streamer_SetItemOffset as bn,Streamer_GetFloatData as Bn,Streamer_SetFloatData as On,Streamer_GetIntData as wn,Streamer_SetIntData as kn,Streamer_GetArrayData as Gn,Streamer_SetArrayData as Mn,Streamer_IsInArrayData as Fn,Streamer_AppendArrayData as Nn,Streamer_RemoveArrayData as Hn,Streamer_GetArrayDataLength as vn,Streamer_GetUpperBound as xn,Streamer_OnItemStreamIn as Vn,Streamer_OnItemStreamOut as Un,Streamer_OnPluginError as Wn,MapIconStyles as Kn,StreamerDistances as G,CreateDynamicMapIconEx as jn,CreateDynamicMapIcon as Zn,DestroyDynamicMapIcon as zn,IsValidDynamicMapIcon as Xn,StreamerItemTypes as p,CreateDynamicPickupEx as Yn,CreateDynamicPickup as Jn,DestroyDynamicPickup as Qn,IsValidDynamicPickup as $n,OnPlayerPickUpDynamicPickup as qn,CreateDynamicCPEx as er,CreateDynamicCP as tr,DestroyDynamicCP as Ve,IsValidDynamicCP as Ue,TogglePlayerDynamicCP as nr,TogglePlayerAllDynamicCPs as rr,IsPlayerInDynamicCP as ir,GetPlayerVisibleDynamicCP as ar,OnPlayerEnterDynamicCP as sr,OnPlayerLeaveDynamicCP as dr,CreateDynamicRaceCPEx as or,CreateDynamicRaceCP as lr,TogglePlayerDynamicRaceCP as _r,TogglePlayerAllDynamicRaceCPs as cr,IsPlayerInDynamicRaceCP as hr,GetPlayerVisibleDynamicRaceCP as ur,OnPlayerEnterDynamicRaceCP as yr,OnPlayerLeaveDynamicRaceCP as mr,CreateDynamicActorEx as Sr,CreateDynamicActor as gr,DestroyDynamicActor as Pr,IsValidDynamicActor as pr,IsDynamicActorStreamedIn as Ar,GetDynamicActorVirtualWorld as Ir,SetDynamicActorVirtualWorld as Cr,ApplyDynamicActorAnimation as fr,ClearDynamicActorAnimations as Er,GetDynamicActorFacingAngle as Tr,SetDynamicActorFacingAngle as Dr,GetDynamicActorPos as Lr,SetDynamicActorPos as Rr,GetDynamicActorHealth as br,SetDynamicActorHealth as Br,IsDynamicActorInvulnerable as Or,SetDynamicActorInvulnerable as wr,GetPlayerTargetDynamicActor as kr,GetPlayerCameraTargetDynActor as Gr,OnDynamicActorStreamIn as Mr,OnDynamicActorStreamOut as Fr,OnPlayerGiveDamageDynamicActor as Nr,DestroyDynamic3DTextLabel as Hr,IsValidDynamic3DTextLabel as vr,CreateDynamicObjectEx as xr,CreateDynamicObject as Vr,DestroyDynamicObject as Ur,IsValidDynamicObject as Wr,GetDynamicObjectPos as Kr,SetDynamicObjectPos as jr,GetDynamicObjectRot as Zr,SetDynamicObjectRot as zr,MoveDynamicObject as Xr,StopDynamicObject as Yr,IsDynamicObjectMoving as Jr,AttachCameraToDynamicObject as Qr,AttachDynamicObjectToObject as $r,AttachDynamicObjectToPlayer as qr,AttachDynamicObjectToVehicle as ei,EditDynamicObject as ti,IsDynamicObjectMaterialUsed as ni,RemoveDynamicObjectMaterial as ri,GetDynamicObjectMaterial as ii,SetDynamicObjectMaterial as ai,IsDynamicObjectMaterialTextUsed as si,RemoveDynamicObjectMaterialText as di,MaterialTextSizes as oi,GetPlayerCameraTargetDynObject as li,OnDynamicObjectMoved as _i,OnPlayerEditDynamicObject as ci,OnPlayerSelectDynamicObject as hi,OnPlayerShootDynamicObject as ui,CreateDynamicCircleEx as yi,CreateDynamicCuboidEx as mi,CreateDynamicCylinderEx as Si,CreateDynamicPolygonEx as gi,CreateDynamicRectangleEx as Pi,CreateDynamicSphereEx as pi,CreateDynamicCircle as Ai,CreateDynamicCuboid as Ii,CreateDynamicCylinder as Ci,CreateDynamicPolygon as fi,CreateDynamicRectangle as Ei,CreateDynamicSphere as Ti,DestroyDynamicArea as Di,IsValidDynamicArea as Li,GetDynamicAreaType as Ri,GetDynamicPolygonPoints as bi,GetDynamicPolygonNumberPoints as Bi,IsPlayerInDynamicArea as Oi,IsPlayerInAnyDynamicArea as wi,IsAnyPlayerInDynamicArea as ki,IsAnyPlayerInAnyDynamicArea as Gi,GetPlayerDynamicAreas as Mi,GetPlayerNumberDynamicAreas as Fi,IsPointInDynamicArea as Ni,IsPointInAnyDynamicArea as Hi,IsLineInDynamicArea as vi,IsLineInAnyDynamicArea as xi,GetDynamicAreasForPoint as Vi,GetNumberDynamicAreasForPoint as Ui,GetDynamicAreasForLine as Wi,GetNumberDynamicAreasForLine as Ki,AttachDynamicAreaToObject as ji,StreamerObjectTypes as Zi,AttachDynamicAreaToPlayer as zi,AttachDynamicAreaToVehicle as Xi,ToggleDynAreaSpectateMode as Yi,IsToggleDynAreaSpectateMode as Ji,OnPlayerEnterDynamicArea as Qi,OnPlayerLeaveDynamicArea as $i}from"@infernus/streamer";import{E_STREAMER as ny,MapIconStyles as ry,MaterialTextSizes as iy,StreamerAreaTypes as ay,StreamerDistances as sy,StreamerItemTypes as dy,StreamerMiscellaneous as oy,StreamerObjectTypes as ly}from"@infernus/streamer";import{HidePlayerDialog as qi,AllowPlayerTeleport as ea,IsPlayerTeleportAllowed as ta,GetPlayerWeather as na,TogglePlayerWidescreen as ra,IsPlayerWidescreenToggled as ia,GetSpawnInfo as aa,GetPlayerSkillLevel as sa,IsPlayerCheckpointActive as da,GetPlayerCheckpoint as oa,IsPlayerRaceCheckpointActive as la,GetPlayerRaceCheckpoint as _a,GetPlayerWorldBounds as ca,IsPlayerInModShop as ha,GetPlayerSirenState as ua,GetPlayerLandingGearState as ya,GetPlayerHydraReactorAngle as ma,GetPlayerTrainSpeed as Sa,GetPlayerZAim as ga,GetPlayerSurfingOffsets as Pa,GetPlayerRotationQuat as pa,GetPlayerDialogID as Aa,GetPlayerSpectateID as Ia,GetPlayerSpectateType as Ca,GetPlayerRawIp as fa,SetPlayerGravity as Ea,GetPlayerGravity as Ta,SetPlayerAdmin as Da,IsPlayerSpawned as La,IsPlayerControllable as Ra,IsPlayerCameraTargetEnabled as ba,TogglePlayerGhostMode as Ba,GetPlayerGhostMode as Oa,GetPlayerBuildingsRemoved as wa,GetPlayerAttachedObject as ka,RemovePlayerWeapon as Ga,IsPlayerUsingOfficialClient as Ma,AllowPlayerWeapons as Fa,ArePlayerWeaponsAllowed as Na,GetVehicleMatrix as Ha,GetVehicleTrainSpeed as va,GetVehicleHydraReactorAngle as xa,GetVehicleLandingGearState as Va,GetVehicleSirenState as Ua,GetVehicleModelsUsed as Wa,GetVehicleDriver as Ka,GetVehicleLastDriver as ja,GetVehicleModelCount as Za,IsVehicleSirenEnabled as za,ToggleVehicleSirenEnabled as Xa,IsVehicleDead as Ya,GetVehicleRespawnTick as Ja,IsVehicleOccupied as Qa,HasVehicleBeenOccupied as $a,GetVehicleOccupiedTick as qa,GetVehicleCab as es,GetVehicleRespawnDelay as ts,SetVehicleRespawnDelay as ns,GetVehicleNumberPlate as rs,GetVehicleInterior as is,GetVehiclePaintjob as as,GetVehicleColours as ss,SetVehicleSpawnInfo as ds,GetVehicleSpawnInfo as os,AllowAdminTeleport as ls,IsAdminTeleportAllowed as _s,AllowInteriorWeapons as cs,AreInteriorWeaponsAllowed as hs,AreAllAnimationsEnabled as us,EnableAllAnimations as ys,ClearBanList as ms,IsBanned as Ss,IsValidNickName as gs,AllowNickNameCharacter as Ps,IsNickNameCharacterAllowed as ps,AddServerRule as As,SetServerRule as Is,IsValidServerRule as Cs,RemoveServerRule as fs,GetWeaponSlot as Es,GetAvailableClasses as Ts,GetPlayerClass as Ds,EditPlayerClass as Ls,ToggleChatTextReplacement as Rs,ChatTextReplacementToggled as bs,IsMenuDisabled as Bs,IsMenuRowDisabled as Os,GetMenuItems as ws,GetMenuPos as ks,GetMenuColumnWidth as Gs,GetMenuColumnHeader as Ms,GetMenuItem as Fs,CreatePlayerGangZone as Ns,PlayerGangZoneDestroy as Hs,PlayerGangZoneShow as vs,PlayerGangZoneHide as xs,PlayerGangZoneFlash as Vs,PlayerGangZoneStopFlash as Us,IsValidPlayerGangZone as Ws,IsValidGangZone as Ks,IsPlayerInPlayerGangZone as js,IsPlayerInGangZone as Zs,IsPlayerGangZoneVisible as zs,IsGangZoneVisibleForPlayer as Xs,PlayerGangZoneGetColour as Ys,GangZoneGetColourForPlayer as Js,PlayerGangZoneGetFlashColour as Qs,GangZoneGetFlashColourForPlayer as $s,IsPlayerGangZoneFlashing as qs,IsGangZoneFlashingForPlayer as ed,PlayerGangZoneGetPos as td,GangZoneGetPos as nd,UsePlayerGangZoneCheck as rd,UseGangZoneCheck as id,OnPlayerEnterGangZone as ad,OnPlayerEnterPlayerGangZone as sd,OnPlayerLeaveGangZone as dd,OnPlayerLeavePlayerGangZone as od,GetActorSkin as ld,SetActorSkin as _d,GetActorSpawnInfo as cd,GetActorAnimation as hd,IsValidPlayer3DTextLabel as ud,IsValidTextDraw as yd,IsTextDrawVisibleForPlayer as md,PlayerTextDrawGetString as Sd,TextDrawGetString as gd,PlayerTextDrawSetPos as Pd,TextDrawSetPos as pd,PlayerTextDrawGetLetterSize as Ad,TextDrawGetLetterSize as Id,PlayerTextDrawGetTextSize as Cd,TextDrawGetTextSize as fd,PlayerTextDrawGetPos as Ed,TextDrawGetPos as Td,PlayerTextDrawGetColour as Dd,TextDrawGetColour as Ld,PlayerTextDrawGetBoxColour as Rd,TextDrawGetBoxColour as bd,PlayerTextDrawGetBackgroundColour as Bd,TextDrawGetBackgroundColour as Od,PlayerTextDrawGetShadow as wd,TextDrawGetShadow as kd,PlayerTextDrawGetOutline as Gd,TextDrawGetOutline as Md,PlayerTextDrawGetFont as Fd,TextDrawGetFont as Nd,PlayerTextDrawIsBox as Hd,TextDrawIsBox as vd,PlayerTextDrawIsProportional as xd,TextDrawIsProportional as Vd,PlayerTextDrawIsSelectable as Ud,TextDrawIsSelectable as Wd,PlayerTextDrawGetAlignment as Kd,TextDrawGetAlignment as jd,PlayerTextDrawGetPreviewModel as Zd,TextDrawGetPreviewModel as zd,PlayerTextDrawGetPreviewRot as Xd,TextDrawGetPreviewRot as Yd,PlayerTextDrawGetPreviewVehicleColours as Jd,TextDrawGetPreviewVehicleColours as Qd}from"@infernus/wrapper";import{GangZonePos as cy,IActorAnimation as hy,IActorSpawn as uy,IAttachedData as yy,IAttachedObject as my,IBounds as Sy,ICheckPoint as gy,IMaterial as Py,IMaterialText as py,IObjectPos as Ay,IObjectRotPos as Iy,IOffsets as Cy,IPlayerClass as fy,IQuat as Ey,IRaceCheckPoint as Ty,ITextDrawCommonSize as Dy,ITextDrawRot as Ly,IVehColor as Ry,IVehMatrix as by,IVehSpawnInfo as By}from"@infernus/wrapper";const l=Lt({transport:{target:"pino-pretty",options:{translateTime:"SYS:standard",ignore:"pid,hostname"}}});process.on("uncaughtException",e=>{l.error(e),process.exit(1)}),process.on("unhandledRejection",e=>{if(e instanceof Error){l.warn(e);return}l.warn(new Error(JSON.stringify(e)))});class A{constructor(t,n){this.defaultLocale=t,this.locales=n,this.defaultLocale=Te(t),this.locales=A.snakeLocaleKeys(n)}addLocales=t=>{Rt(this.locales,A.snakeLocaleKeys(t))};removeLocales=(...t)=>{this.locales=bt(this.locales,t)};$t=(t,n,r=this.defaultLocale)=>{const i=this.locales[Te(r)],a=ke(this.locales[this.defaultLocale],t),s=ke(i,t,a);if(s===void 0)return l.warn(`[i18n]: cannot find ${r}["${t}"]`),"undefined";if(typeof s!="string")return JSON.stringify(s);let o=s;if(n&&n.length){const _=/%s/i;for(let c=0;c<n.length&&o.match(_)!==null;c++)o=o.replace(_,n[c])}return o};static isValidate(t){Et(t)||(l.fatal(`[i18n]: unknown charset ${t}`),process.exit(1))}static encodeToBuf(t,n){return A.isValidate(n),[...Tt(t,n),0]}static decodeFromBuf(t,n){A.isValidate(n);const r=t instanceof Buffer?t:Buffer.from(t);return Dt(r,n)}static getValidStr(t){return t.slice(0,t.indexOf(0))}static snakeLocaleKeys(t){return Bt(t,(n,r)=>Te(r))}}var We=(e=>(e[e.DOWNLOAD_REQUEST_EMPTY=0]="DOWNLOAD_REQUEST_EMPTY",e[e.DOWNLOAD_REQUEST_MODEL_FILE=1]="DOWNLOAD_REQUEST_MODEL_FILE",e[e.DOWNLOAD_REQUEST_TEXTURE_FILE=2]="DOWNLOAD_REQUEST_TEXTURE_FILE",e))(We||{}),Ke=(e=>(e[e.SCOREBOARD=0]="SCOREBOARD",e))(Ke||{}),De=(e=>(e[e.MSGBOX=0]="MSGBOX",e[e.INPUT=1]="INPUT",e[e.LIST=2]="LIST",e[e.PASSWORD=3]="PASSWORD",e[e.TABLIST=4]="TABLIST",e[e.TABLIST_HEADERS=5]="TABLIST_HEADERS",e))(De||{}),je=(e=>(e[e.CANCEL=0]="CANCEL",e[e.FINAL=1]="FINAL",e[e.UPDATE=2]="UPDATE",e))(je||{}),Ze=(e=>(e[e.NO_ACTION=0]="NO_ACTION",e[e.DISCONNECT_ASAP=1]="DISCONNECT_ASAP",e[e.DISCONNECT_ASAP_SILENTLY=2]="DISCONNECT_ASAP_SILENTLY",e[e.DISCONNECT_ON_NO_ACK=3]="DISCONNECT_ON_NO_ACK",e[e.REQUESTED_CONNECTION=4]="REQUESTED_CONNECTION",e[e.HANDLING_CONNECTION_REQUEST=5]="HANDLING_CONNECTION_REQUEST",e[e.UNVERIFIED_SENDER=6]="UNVERIFIED_SENDER",e[e.SET_ENCRYPTION_ON_MULTIPLE_16_BYTE_PACKET=7]="SET_ENCRYPTION_ON_MULTIPLE_16_BYTE_PACKET",e[e.CONNECTED=8]="CONNECTED",e))(Ze||{}),C=(e=>(e[e.NO_TEAM=255]="NO_TEAM",e[e.PLAYER_ID=65535]="PLAYER_ID",e[e.VEHICLE_ID=65535]="VEHICLE_ID",e[e.ACTOR_ID=65535]="ACTOR_ID",e[e.OBJECT_ID=65535]="OBJECT_ID",e[e.MENU=255]="MENU",e[e.TEXT_DRAW=65535]="TEXT_DRAW",e[e.PLAYER_TEXT_DRAW=65535]="PLAYER_TEXT_DRAW",e[e.GANG_ZONE=-1]="GANG_ZONE",e[e._3DTEXT_ID=65535]="_3DTEXT_ID",e[e.PLAYER_3DTEXT_ID=65535]="PLAYER_3DTEXT_ID",e))(C||{}),ze=(e=>(e[e.ACTION=1]="ACTION",e[e.CROUCH=2]="CROUCH",e[e.FIRE=4]="FIRE",e[e.SPRINT=8]="SPRINT",e[e.SECONDARY_ATTACK=16]="SECONDARY_ATTACK",e[e.JUMP=32]="JUMP",e[e.LOOK_RIGHT=64]="LOOK_RIGHT",e[e.HANDBRAKE=128]="HANDBRAKE",e[e.LOOK_LEFT=256]="LOOK_LEFT",e[e.SUBMISSION=512]="SUBMISSION",e[e.LOOK_BEHIND=512]="LOOK_BEHIND",e[e.WALK=1024]="WALK",e[e.ANALOG_UP=2048]="ANALOG_UP",e[e.ANALOG_DOWN=4096]="ANALOG_DOWN",e[e.ANALOG_LEFT=8192]="ANALOG_LEFT",e[e.ANALOG_RIGHT=16384]="ANALOG_RIGHT",e[e.YES=65536]="YES",e[e.NO=131072]="NO",e[e.CTRL_BACK=262144]="CTRL_BACK",e[e.KEY_UP=-128]="KEY_UP",e[e.KEY_DOWN=128]="KEY_DOWN",e[e.KEY_LEFT=-128]="KEY_LEFT",e[e.KEY_RIGHT=128]="KEY_RIGHT",e))(ze||{}),b=(e=>(e[e.MAX_PLAYER_NAME=24]="MAX_PLAYER_NAME",e[e.MAX_PLAYERS=1e3]="MAX_PLAYERS",e[e.MAX_VEHICLES=2e3]="MAX_VEHICLES",e[e.MAX_ACTORS=1e3]="MAX_ACTORS",e[e.MAX_OBJECTS=1e3]="MAX_OBJECTS",e[e.MAX_GANG_ZONES=1024]="MAX_GANG_ZONES",e[e.MAX_TEXT_DRAWS=2048]="MAX_TEXT_DRAWS",e[e.MAX_PLAYER_TEXT_DRAWS=256]="MAX_PLAYER_TEXT_DRAWS",e[e.MAX_MENUS=128]="MAX_MENUS",e[e.MAX_MENU_ROW=12]="MAX_MENU_ROW",e[e.MAX_MENU_COL=2]="MAX_MENU_COL",e[e.MAX_3DTEXT_GLOBAL=1024]="MAX_3DTEXT_GLOBAL",e[e.MAX_3DTEXT_PLAYER=1024]="MAX_3DTEXT_PLAYER",e[e.MAX_PICKUPS=4096]="MAX_PICKUPS",e[e.MAX_PLAYER_ATTACHED_OBJECTS=10]="MAX_PLAYER_ATTACHED_OBJECTS",e[e.MAX_CHATBUBBLE_LENGTH=144]="MAX_CHATBUBBLE_LENGTH",e))(b||{}),Xe=(e=>(e[e.OFF=0]="OFF",e[e.GLOBAL=1]="GLOBAL",e[e.STREAMED=2]="STREAMED",e))(Xe||{}),Ye=(e=>(e[e.NONE=1]="NONE",e[e.DRIVER=2]="DRIVER",e[e.ONFOOT=3]="ONFOOT",e))(Ye||{}),B=(e=>(e[e.none=0]="none",e[e.start=1]="start",e[e.pause=2]="pause",e))(B||{}),Je=(e=>(e[e._32x32=10]="_32x32",e[e._64x32=20]="_64x32",e[e._64x64=30]="_64x64",e[e._128x32=40]="_128x32",e[e._128x64=50]="_128x64",e[e._128x128=60]="_128x128",e[e._256x32=70]="_256x32",e[e._256x64=80]="_256x64",e[e._256x128=90]="_256x128",e[e._256x256=100]="_256x256",e[e._512x64=110]="_512x64",e[e._512x128=120]="_512x128",e[e._512x256=130]="_512x256",e[e._512x512=140]="_512x512",e))(Je||{}),Qe=(e=>(e[e.LEFT=0]="LEFT",e[e.CENTER=1]="CENTER",e[e.RIGHT=2]="RIGHT",e))(Qe||{}),$e=(e=>(e[e.GLOBAL_OBJECT=1]="GLOBAL_OBJECT",e[e.PLAYER_OBJECT=2]="PLAYER_OBJECT",e))($e||{}),qe=(e=>(e[e.NORMAL=0]="NORMAL",e[e.BOXING=1]="BOXING",e[e.KUNGFU=2]="KUNGFU",e[e.KNEEHEAD=3]="KNEEHEAD",e[e.GRABKICK=4]="GRABKICK",e[e.ELBOW=5]="ELBOW",e))(qe||{}),et=(e=>(e[e.LOCAL=0]="LOCAL",e[e.GLOBAL=1]="GLOBAL",e[e.LOCAL_CHECKPOINT=2]="LOCAL_CHECKPOINT",e[e.GLOBAL_CHECKPOINT=3]="GLOBAL_CHECKPOINT",e))(et||{}),de=(e=>(e[e.MOVE=1]="MOVE",e[e.CUT=2]="CUT",e))(de||{}),tt=(e=>(e[e.BEHINDCAR=3]="BEHINDCAR",e[e.FOLLOWPED=4]="FOLLOWPED",e[e.SNIPER=7]="SNIPER",e[e.ROCKETLAUNCHER=8]="ROCKETLAUNCHER",e[e.FIXED=15]="FIXED",e[e._1STPERSON=16]="_1STPERSON",e[e.CAM_ON_A_STRING=18]="CAM_ON_A_STRING",e[e.BEHINDBOAT=22]="BEHINDBOAT",e[e.CAMERA=46]="CAMERA",e[e.ROCKETLAUNCHER_HS=51]="ROCKETLAUNCHER_HS",e[e.AIMWEAPON=53]="AIMWEAPON",e[e.AIMWEAPON_FROMCAR=55]="AIMWEAPON_FROMCAR",e[e.DW_HELI_CHASE=56]="DW_HELI_CHASE",e[e.DW_CAM_MAN=57]="DW_CAM_MAN",e[e.DW_BIRDY=58]="DW_BIRDY",e[e.DW_PLANE_SPOTTER=59]="DW_PLANE_SPOTTER",e[e.DW_PLANECAM1=62]="DW_PLANECAM1",e[e.DW_PLANECAM2=63]="DW_PLANECAM2",e[e.DW_PLANECAM3=64]="DW_PLANECAM3",e))(tt||{}),oe=(e=>(e[e.NORMAL=1]="NORMAL",e[e.FIXED=2]="FIXED",e[e.SIDE=3]="SIDE",e))(oe||{}),N=(e=>(e[e.NONE=0]="NONE",e[e.ONFOOT=1]="ONFOOT",e[e.DRIVER=2]="DRIVER",e[e.PASSENGER=3]="PASSENGER",e[e.EXIT_VEHICLE=4]="EXIT_VEHICLE",e[e.ENTER_VEHICLE_DRIVER=5]="ENTER_VEHICLE_DRIVER",e[e.ENTER_VEHICLE_PASSENGER=6]="ENTER_VEHICLE_PASSENGER",e[e.WASTED=7]="WASTED",e[e.SPAWNED=8]="SPAWNED",e[e.SPECTATING=9]="SPECTATING",e))(N||{}),nt=(e=>(e[e.TORSO=3]="TORSO",e[e.GROIN=4]="GROIN",e[e.LEFT_ARM=5]="LEFT_ARM",e[e.RIGHT_ARM=6]="RIGHT_ARM",e[e.LEFT_LEG=7]="LEFT_LEG",e[e.RIGHT_LEG=8]="RIGHT_LEG",e[e.HEAD=9]="HEAD",e))(nt||{}),rt=(e=>(e[e.Spine=1]="Spine",e[e.Head=2]="Head",e[e.LeftUpperArm=3]="LeftUpperArm",e[e.RightUpperArm=4]="RightUpperArm",e[e.LeftHand=5]="LeftHand",e[e.RightHand=6]="RightHand",e[e.LeftThigh=7]="LeftThigh",e[e.RightThigh=8]="RightThigh",e[e.LeftFoot=9]="LeftFoot",e[e.RightFoot=10]="RightFoot",e[e.RightCalf=11]="RightCalf",e[e.LeftCalf=12]="LeftCalf",e[e.LeftForearm=13]="LeftForearm",e[e.RightForearm=14]="RightForearm",e[e.LeftClavicle=15]="LeftClavicle",e[e.RightClavicle=16]="RightClavicle",e[e.Neck=17]="Neck",e[e.Jaw=18]="Jaw",e))(rt||{}),Le=(e=>(e[e.NONE=0]="NONE",e[e.DUCK=1]="DUCK",e[e.USEJETPACK=2]="USEJETPACK",e[e.ENTER_VEHICLE=3]="ENTER_VEHICLE",e[e.EXIT_VEHICLE=4]="EXIT_VEHICLE",e[e.DANCE1=5]="DANCE1",e[e.DANCE2=6]="DANCE2",e[e.DANCE3=7]="DANCE3",e[e.DANCE4=8]="DANCE4",e[e.HANDSUP=10]="HANDSUP",e[e.USECELLPHONE=11]="USECELLPHONE",e[e.SITTING=12]="SITTING",e[e.STOPUSECELLPHONE=13]="STOPUSECELLPHONE",e[e.DRINK_BEER=20]="DRINK_BEER",e[e.SMOKE_CIGGY=21]="SMOKE_CIGGY",e[e.DRINK_WINE=22]="DRINK_WINE",e[e.DRINK_SPRUNK=23]="DRINK_SPRUNK",e[e.CUFFED=24]="CUFFED",e[e.CARRY=25]="CARRY",e[e.PISSING=68]="PISSING",e))(Le||{}),Z=(e=>(e[e.FONT_0=0]="FONT_0",e[e.FONT_1=1]="FONT_1",e[e.FONT_2=2]="FONT_2",e[e.FONT_3=3]="FONT_3",e[e.SPRITE_DRAW=4]="SPRITE_DRAW",e[e.MODEL_PREVIEW=5]="MODEL_PREVIEW",e[e.BANK=0]="BANK",e[e.STANDARD=1]="STANDARD",e[e.SPACEAGE=2]="SPACEAGE",e[e.HEADING=3]="HEADING",e[e.BECKETT_REGULAR=0]="BECKETT_REGULAR",e[e.AHARONI_BOLD=1]="AHARONI_BOLD",e[e.BANK_GOTHIC=2]="BANK_GOTHIC",e[e.PRICEDOWN=3]="PRICEDOWN",e[e.SPRITE=4]="SPRITE",e[e.PREVIEW=5]="PREVIEW",e))(Z||{}),it=(e=>(e[e.LEFT=1]="LEFT",e[e.CENTER=2]="CENTER",e[e.RIGHT=3]="RIGHT",e))(it||{}),at=(e=>(e[e.SPOILER=0]="SPOILER",e[e.HOOD=1]="HOOD",e[e.ROOF=2]="ROOF",e[e.SIDESKIRT=3]="SIDESKIRT",e[e.LAMPS=4]="LAMPS",e[e.NITRO=5]="NITRO",e[e.EXHAUST=6]="EXHAUST",e[e.WHEELS=7]="WHEELS",e[e.STEREO=8]="STEREO",e[e.HYDRAULICS=9]="HYDRAULICS",e[e.FRONT_BUMPER=10]="FRONT_BUMPER",e[e.REAR_BUMPER=11]="REAR_BUMPER",e[e.VENT_RIGHT=12]="VENT_RIGHT",e[e.VENT_LEFT=13]="VENT_LEFT",e))(at||{}),st=(e=>(e[e.UNSET=0]="UNSET",e[e.OFF=1]="OFF",e[e.ON=2]="ON",e))(st||{}),dt=(e=>(e[e.SIZE=1]="SIZE",e[e.FRONTSEAT=2]="FRONTSEAT",e[e.REARSEAT=3]="REARSEAT",e[e.PETROLCAP=4]="PETROLCAP",e[e.WHEELSFRONT=5]="WHEELSFRONT",e[e.WHEELSREAR=6]="WHEELSREAR",e[e.WHEELSMID=7]="WHEELSMID",e[e.FRONT_BUMPER_Z=8]="FRONT_BUMPER_Z",e[e.REAR_BUMPER_Z=9]="REAR_BUMPER_Z",e))(dt||{}),ot=(e=>(e[e.BRASSKNUCKLE=1]="BRASSKNUCKLE",e[e.GOLFCLUB=2]="GOLFCLUB",e[e.NITESTICK=3]="NITESTICK",e[e.KNIFE=4]="KNIFE",e[e.BAT=5]="BAT",e[e.SHOVEL=6]="SHOVEL",e[e.POOLSTICK=7]="POOLSTICK",e[e.KATANA=8]="KATANA",e[e.CHAINSAW=9]="CHAINSAW",e[e.DILDO=10]="DILDO",e[e.DILDO2=11]="DILDO2",e[e.VIBRATOR=12]="VIBRATOR",e[e.VIBRATOR2=13]="VIBRATOR2",e[e.FLOWER=14]="FLOWER",e[e.CANE=15]="CANE",e[e.GRENADE=16]="GRENADE",e[e.TEARGAS=17]="TEARGAS",e[e.MOLTOV=18]="MOLTOV",e[e.COLT45=22]="COLT45",e[e.SILENCED=23]="SILENCED",e[e.DEAGLE=24]="DEAGLE",e[e.SHOTGUN=25]="SHOTGUN",e[e.SAWEDOFF=26]="SAWEDOFF",e[e.SHOTGSPA=27]="SHOTGSPA",e[e.UZI=28]="UZI",e[e.MP5=29]="MP5",e[e.AK47=30]="AK47",e[e.M4=31]="M4",e[e.TEC9=32]="TEC9",e[e.RIFLE=33]="RIFLE",e[e.SNIPER=34]="SNIPER",e[e.ROCKETLAUNCHER=35]="ROCKETLAUNCHER",e[e.HEATSEEKER=36]="HEATSEEKER",e[e.FLAMETHROWER=37]="FLAMETHROWER",e[e.MINIGUN=38]="MINIGUN",e[e.SATCHEL=39]="SATCHEL",e[e.BOMB=40]="BOMB",e[e.SPRAYCAN=41]="SPRAYCAN",e[e.FIREEXTINGUISHER=42]="FIREEXTINGUISHER",e[e.CAMERA=43]="CAMERA",e[e.PARACHUTE=46]="PARACHUTE",e))(ot||{}),lt=(e=>(e[e.PISTOL=0]="PISTOL",e[e.PISTOL_SILENCED=1]="PISTOL_SILENCED",e[e.DESERT_EAGLE=2]="DESERT_EAGLE",e[e.SHOTGUN=3]="SHOTGUN",e[e.SAWNOFF_SHOTGUN=4]="SAWNOFF_SHOTGUN",e[e.SPAS12_SHOTGUN=5]="SPAS12_SHOTGUN",e[e.MICRO_UZI=6]="MICRO_UZI",e[e.MP5=7]="MP5",e[e.AK47=8]="AK47",e[e.M4=9]="M4",e[e.SNIPERRIFLE=10]="SNIPERRIFLE",e))(lt||{}),_t=(e=>(e[e.NONE=0]="NONE",e[e.PLAYER=1]="PLAYER",e[e.VEHICLE=2]="VEHICLE",e[e.OBJECT=3]="OBJECT",e[e.PLAYER_OBJECT=4]="PLAYER_OBJECT",e))(_t||{}),ct=(e=>(e[e.UNKNOWN=-1]="UNKNOWN",e[e.NO_BULLETS=0]="NO_BULLETS",e[e.LAST_BULLET=1]="LAST_BULLET",e[e.MORE_BULLETS=2]="MORE_BULLETS",e[e.RELOADING=3]="RELOADING",e))(ct||{}),Re=(e=>(e[e.VEHICLE=49]="VEHICLE",e[e.HELICOPTERBLADES=50]="HELICOPTERBLADES",e[e.EXPLOSION=51]="EXPLOSION",e[e.DROWN=53]="DROWN",e[e.COLLISION=54]="COLLISION",e[e.CONNECT=200]="CONNECT",e[e.DISCONNECT=201]="DISCONNECT",e[e.SUICIDE=255]="SUICIDE",e))(Re||{}),ht=(e=>(e[e.NONE=0]="NONE",e[e.DRIVER=1]="DRIVER",e[e.ONFOOT=2]="ONFOOT",e))(ht||{});const g=e=>{if(typeof e=="number")return e;if(typeof+e=="number"&&!isNaN(+e))return+e;if(e.charAt(0)==="#")return e.length===4?parseInt(e.charAt(1)+e.charAt(1)+e.charAt(2)+e.charAt(2)+e.charAt(3)+e.charAt(3)+"FF",16):e.length===7?parseInt(e.slice(1,e.length)+"FF",16):e.length===9?parseInt(e.slice(1,e.length),16):255;const t=(e.match(/([0-9])+/g)||[]).map(r=>parseInt(r,10));if(t.length!==4&&t.length!==3)return 255;t.length===3?t.push(255):t[3]=t[3]<1?Math.floor(t[3]*255):255;let n=0;return t.reverse().forEach((r,i)=>{r!==0&&(n+=Math.pow(16,i*2)*r)}),n},L="utf8",$d="en_US",U=(e,t)=>{const n=t.replace("-","")==="utf8"?e:A.encodeToBuf(e,t);return[n instanceof Array?"a":"s",n]},ut=(e,t,n)=>{const r=U(n,e.charset);return d("SendClientMessage",`ii${r[0]}`,e.id,g(t),r[1])},qd=(e,t,n)=>(e.forEach(r=>ut(r,t,n)),1),yt=(e,t,n)=>{const r=U(n,e.charset);return d("SendPlayerMessageToPlayer",`ii${r[0]}`,e.id,t,r[1])},eo=(e,t,n)=>(e.forEach(r=>yt(r,t,n)),1),to=(e,t,n)=>{const{charset:r}=e,{style:i,caption:a,info:s,button1:o,button2:_}=n,[c,u]=U(a||"",r),[,y]=U(s||"",r),[,S]=U(o||"",r),[,I]=U(_||"",r);return d("ShowPlayerDialog",`iii${c.repeat(4)}`,e.id,t,i,u,y,S,I)};samp.registerEvent("OnPlayerTextI18n","iai");const no=e=>{samp.addEventListener("OnPlayerTextI18n",e)};samp.registerEvent("OnPlayerCommandTextI18n","iai");const ro=e=>{samp.addEventListener("OnPlayerCommandTextI18n",e)};samp.registerEvent("OnDialogResponseI18n","iiiiai");const io=e=>{samp.addEventListener("OnDialogResponseI18n",e)};samp.registerEvent("OnClientMessageI18n","iai");const ao=(e,t=L)=>{samp.addEventListener("OnClientMessageI18n",(n,r)=>e(n,A.decodeFromBuf(r,t)))};samp.registerEvent("OnRconCommandI18n","ai");const so=(e,t=L)=>{samp.addEventListener("OnRconCommandI18n",n=>e(A.decodeFromBuf(n,t)))};samp.registerEvent("OnRconLoginAttemptI18n","aiaii");const oo=(e,t=L)=>{samp.addEventListener("OnRconLoginAttemptI18n",(n,r,i)=>e(A.decodeFromBuf(n,t),A.decodeFromBuf(r,t),Boolean(i)))},lo=e=>{const t=d("GetPlayerName","iAi",e.id,b.MAX_PLAYER_NAME);return A.decodeFromBuf(A.getValidStr(t),e.charset)},_o=(e,t)=>d("SetPlayerName","ia",e.id,A.encodeToBuf(t,e.charset)),co=(e,t,n)=>{const r=A.encodeToBuf(t,n);return d("BanEx","ia",e,r)},ho=(e,t,n,r,i,a,s,o,_,c,u,y,S,I,f,R)=>{const V=A.encodeToBuf(t,e);return d("CreateDynamic3DTextLabel","aiffffiiiiiifii",V,n,r,i,a,s,o,_,c,u,y,S,I,f,R)},uo=(e,t,n,r,i,a,s,o,_,c,u,y,S,I,f,R)=>{const V=A.encodeToBuf(e,R);return d("CreateDynamic3DTextLabelEx","aiffffiiifaaaaiiiii",V,t,n,r,i,a,s,o,_,c,u,y,S,I,f,u.length,y.length,S.length,I.length)},yo=(e,t,n,r)=>{const i=A.encodeToBuf(n,r);return d("UpdateDynamic3DTextLabelText","iia",e,t,i)},mo=(e,t)=>{const n=d("GetDynamic3DTextLabelText","iAi",e,1024);return A.decodeFromBuf(A.getValidStr(n),t)},So=(e,t,n,r,i,a,s,o,_,c,u)=>{const y=A.encodeToBuf(r,e),S=A.encodeToBuf(a,e);return d("SetDynamicObjectMaterialText","iiaiaiiiii",t,n,y,i,S,s,o,_,c,u)},go=(e,t,n)=>{const[r,i,a,s,o,_,c]=d("GetDynamicObjectMaterialText","iiAIAIIIIIii",e,t,2048,32),u=A.decodeFromBuf(r,n),y=A.decodeFromBuf(a,n);return{text:u,materialsize:i,fontface:y,bold:s,fontcolour:o,backcolour:_,textalignment:c}},h=(e,t,n=1)=>(...r)=>{if(!e[t])return n;const i=e[t](...r);return i instanceof Promise||i===void 0?n:Number(i)},mt=(e=0)=>h({NOOP:()=>e},"NOOP"),{callNative:d,callNativeFloat:H}=samp;io((e,t,n,r,i)=>{const a=T.waitingQueue.get(e);return a?(setTimeout(()=>a.resolve({response:n,listitem:r,inputbuf:i})),1):0});class T{id;static CREATED_ID=-1;static MAX_DIALOGID=32767;dialog;static waitingQueue=new Map;constructor(t={style:De.MSGBOX,caption:"",info:"",button1:"",button2:""}){T.CREATED_ID<T.MAX_DIALOGID?T.CREATED_ID++:l.warn("[Dialog]: The maximum number of dialogs is reached"),this.dialog=t,this.id=T.CREATED_ID}get style(){return this.dialog.style}set style(t){this.dialog.style=t}get caption(){return this.dialog.caption}set caption(t){this.dialog.caption=t}get info(){return this.dialog.info}set info(t){this.dialog.info=t}get button1(){return this.dialog.button1}set button1(t){this.dialog.button1=t}get button2(){return this.dialog.button2}set button2(t){this.dialog.button2=t}static delDialogTask(t,n=!1){const r=T.waitingQueue.get(t.id);return r?(n&&r.reject("[Dialog]: player timeout does not respond or second request show dialog"),T.waitingQueue.delete(t.id),!0):!1}show(t){return new Promise((n,r)=>{T.close(t),T.waitingQueue.set(t.id,{resolve:n,reject:r}),to(t,this.id,this.dialog)}).then(n=>{const{response:r,listitem:i}=n,a=A.decodeFromBuf(n.inputbuf,t.charset);return Promise.resolve({response:r,listitem:i,inputtext:a})}).catch(n=>Promise.reject(n)).finally(()=>T.delDialogTask(t))}static close(t){T.delDialogTask(t,!0),qi(t.id)}}const St=e=>{samp.addEventListener("OnGameModeInit",e)},E=e=>{samp.addEventListener("OnGameModeExit",e)},gt=e=>{samp.addEventListener("OnPlayerConnect",e)},Pt=e=>{samp.addEventListener("OnPlayerDisconnect",e)},Po=e=>{samp.addEventListener("OnPlayerSpawn",e)},po=e=>{samp.addEventListener("OnPlayerDeath",e)},Ao=e=>{samp.addEventListener("OnVehicleSpawn",e)},Io=e=>{samp.addEventListener("OnVehicleDeath",e)},Co=e=>{samp.addEventListener("OnPlayerRequestClass",e)},fo=e=>{samp.addEventListener("OnPlayerEnterVehicle",e)},Eo=e=>{samp.addEventListener("OnPlayerExitVehicle",e)},To=e=>{samp.addEventListener("OnPlayerStateChange",e)},Do=e=>{samp.addEventListener("OnPlayerRequestSpawn",e)},Lo=e=>{samp.addEventListener("OnVehicleMod",e)},Ro=e=>{samp.addEventListener("OnEnterExitModShop",e)},bo=e=>{samp.addEventListener("OnVehiclePaintjob",e)},Bo=e=>{samp.addEventListener("OnVehicleRespray",e)},Oo=e=>{samp.addEventListener("OnVehicleDamageStatusUpdate",e)},wo=e=>{samp.addEventListener("OnPlayerSelectedMenuRow",e)},ko=e=>{samp.addEventListener("OnPlayerExitedMenu",e)},Go=e=>{samp.addEventListener("OnPlayerInteriorChange",e)},Mo=e=>{samp.addEventListener("OnPlayerKeyStateChange",e)},Fo=e=>{samp.addEventListener("OnPlayerUpdate",e)},No=e=>{samp.addEventListener("OnPlayerStreamIn",e)},Ho=e=>{samp.addEventListener("OnPlayerStreamOut",e)},vo=e=>{samp.addEventListener("OnVehicleStreamIn",e)},xo=e=>{samp.addEventListener("OnVehicleStreamOut",e)},Vo=e=>{samp.addEventListener("OnPlayerTakeDamage",e)},Uo=e=>{samp.addEventListener("OnPlayerGiveDamage",e)},Wo=e=>{samp.addEventListener("OnPlayerClickMap",e)},Ko=e=>{samp.addEventListener("OnPlayerClickTextDraw",e)},jo=e=>{samp.addEventListener("OnPlayerClickPlayerTextDraw",e)},Zo=e=>{samp.addEventListener("OnIncomingConnection",e)},zo=e=>{samp.addEventListener("OnTrailerUpdate",e)},Xo=e=>{samp.addEventListener("OnVehicleSirenStateChange",e)},Yo=e=>{samp.addEventListener("OnPlayerFinishedDownloading",e)},Jo=e=>{samp.addEventListener("OnPlayerRequestDownload",e)},Qo=e=>{samp.addEventListener("OnPlayerClickPlayer",e)},$o=e=>{samp.addEventListener("OnClientCheckResponse",e)},qo=e=>{samp.addEventListener("OnNPCEnterVehicle",e)},el=e=>{samp.addEventListener("OnNPCExitVehicle",e)},tl=e=>{samp.addEventListener("OnNpcConnect",e)},nl=e=>{samp.addEventListener("OnNpcDisconnect",e)},rl=e=>{samp.addEventListener("OnNPCModeInit",e)},il=e=>{samp.addEventListener("OnNPCModeExit",e)},al=e=>{samp.addEventListener("OnNPCSpawn",e)};class sl{constructor(){tl(h(this,"onConnect")),nl(h(this,"onDisconnect")),rl(h(this,"onModeInit")),il(h(this,"onModeExit")),al(h(this,"onSpawn")),ao(h(this,"onClientMessage"))}}const dl=(e,t,n)=>d("SendDeathMessage","iii",e,t,n),ol=(e,t,n,r)=>d("SendDeathMessageToPlayer","iiii",e,t,n,r),ll=(e,t,n)=>d("GameTextForAll","sii",e,t,n),_l=e=>{d("HideGameTextForAll","i",e)},cl=(e,t,n,r)=>Boolean(d("GameTextForPlayer","isii",e,t,n,r)),hl=(e,t)=>Boolean(d("HasGameText","ii",e,t)),ul=(e,t)=>Boolean(d("HideGameTextForPlayer","ii",e,t)),yl=()=>d("GetMaxPlayers",""),ml=(e,t,n,r,i,a)=>H("VectorSize","ffffff",e,t,n,r,i,a),Sl=()=>d("GetPlayerPoolSize",""),gl=()=>d("GetVehiclePoolSize",""),Pl=e=>d("SetGameModeText","s",e),pl=e=>d("SetTeamCount","i",e),Al=(e,t,n,r,i,a,s,o,_,c,u)=>d("AddPlayerClass","iffffiiiiii",e,t,n,r,i,a,s,o,_,c,u),Il=(e,t,n,r,i,a,s,o,_,c,u,y)=>d("AddPlayerClassEx","iiffffiiiiii",e,t,n,r,i,a,s,o,_,c,u,y),Cl=(e,t,n,r,i,a,s)=>d("AddStaticVehicle","iffffii",e,t,n,r,i,a,s),fl=(e,t,n,r,i,a,s,o,_)=>d("AddStaticVehicleEx","iffffiiii",e,t,n,r,i,a,s,o,_),El=e=>d("ShowNameTags","i",e),Tl=e=>d("ShowPlayerMarkers","i",e),Dl=()=>d("GameModeExit",""),Ll=e=>d("SetWorldTime","i",e),Rl=()=>d("EnableVehicleFriendlyFire",""),bl=e=>d("SetWeather","i",e),Bl=()=>H("GetGravity",""),Ol=e=>d("SetGravity","f",e),wl=(e,t,n,r,i)=>d("CreateExplosion","fffif",e,t,n,r,i),kl=e=>d("EnableZoneNames","i",e),Gl=()=>d("UsePlayerPedAnims",""),Ml=()=>d("DisableInteriorEnterExits",""),Fl=e=>d("SetNameTagDrawDistance","f",e),Nl=()=>d("DisableNameTagLOS",""),Hl=e=>d("LimitGlobalChatRadius","f",e),vl=e=>d("LimitPlayerMarkerRadius","f",e),xl=(e,t)=>d("ConnectNPC","ss",e,t),Vl=e=>Boolean(d("IsPlayerNPC","i",e)),Ul=e=>Boolean(d("IsPlayerAdmin","i",e)),Wl=e=>d("Kick","i",e),Kl=e=>d("Ban","i",e),jl=e=>d("SendRconCommand","s",e),Zl=e=>d("GetPlayerNetworkStats","iSi",e,1024),zl=()=>d("GetNetworkStats","Si",1024),Xl=(e,t)=>d("BlockIpAddress","si",e,t),Yl=e=>d("UnBlockIpAddress","s",e),Jl=()=>d("GetServerTickRate",""),Ql=e=>d("NetStats_GetConnectedTime","i",e),$l=e=>d("NetStats_MessagesReceived","i",e),ql=e=>d("NetStats_BytesReceived","i",e),e_=e=>d("NetStats_MessagesSent","i",e),t_=e=>d("NetStats_BytesSent","i",e),n_=e=>d("NetStats_MessagesRecvPerSecond","i",e),r_=e=>H("NetStats_PacketLossPercent","i",e),i_=e=>d("NetStats_ConnectionStatus","i",e),a_=(e,t,n,r,i,a)=>d("CreateMenu","siffff",e,t,n,r,i,a),s_=e=>d("DestroyMenu","i",e),d_=(e,t,n)=>d("AddMenuItem","iis",e,t,n),o_=(e,t,n)=>d("SetMenuColumnHeader","iis",e,t,n),l_=(e,t)=>d("ShowMenuForPlayer","ii",e,t),__=(e,t)=>d("HideMenuForPlayer","ii",e,t),c_=e=>Boolean(d("IsValidMenu","i",e)),h_=e=>d("DisableMenu","i",e),u_=(e,t)=>d("DisableMenuRow","ii",e,t),be=e=>d("GetPlayerMenu","i",e),y_=(e,t,n)=>d("TextDrawCreate","ffs",e,t,n),m_=e=>d("TextDrawDestroy","i",e),S_=(e,t,n)=>d("TextDrawLetterSize","iff",e,t,n),g_=(e,t,n)=>d("TextDrawTextSize","iff",e,t,n),P_=(e,t)=>d("TextDrawAlignment","ii",e,t),p_=(e,t)=>Boolean(d("TextDrawColour","ii",e,g(t))),A_=(e,t)=>d("TextDrawUseBox","ii",e,t),I_=(e,t)=>Boolean(d("TextDrawBoxColour","ii",e,g(t))),C_=(e,t)=>d("TextDrawSetShadow","ii",e,t),f_=(e,t)=>d("TextDrawSetOutline","ii",e,t),E_=(e,t)=>Boolean(d("TextDrawBackgroundColour","ii",e,g(t))),T_=(e,t)=>d("TextDrawFont","ii",e,t),D_=(e,t)=>d("TextDrawSetProportional","ii",e,t),L_=(e,t)=>d("TextDrawSetSelectable","ii",e,t),R_=(e,t)=>d("TextDrawShowForPlayer","ii",e,t),b_=(e,t)=>d("TextDrawHideForPlayer","ii",e,t),B_=e=>d("TextDrawShowForAll","i",e),O_=e=>d("TextDrawHideForAll","i",e),w_=(e,t)=>d("TextDrawSetString","is",e,t),k_=(e,t)=>d("TextDrawSetPreviewModel","ii",e,t),G_=(e,t,n,r,i=1)=>{d("TextDrawSetPreviewRot","iffff",e,t,n,r,i)},M_=(e,t,n)=>Boolean(d("TextDrawSetPreviewVehicleColours","iii",e,g(t),g(n))),F_=(e,t,n,r)=>d("GangZoneCreate","ffff",e,t,n,r),N_=e=>d("GangZoneDestroy","i",e),H_=(e,t,n)=>d("GangZoneShowForPlayer","iii",e,t,g(n)),v_=(e,t)=>d("GangZoneShowForAll","ii",e,g(t)),x_=(e,t)=>d("GangZoneHideForPlayer","ii",e,t),V_=e=>d("GangZoneHideForAll","i",e),U_=(e,t,n)=>d("GangZoneFlashForPlayer","iii",e,t,g(n)),W_=(e,t)=>d("GangZoneFlashForAll","ii",e,g(t)),K_=(e,t)=>d("GangZoneStopFlashForPlayer","ii",e,t),j_=e=>d("GangZoneStopFlashForAll","i",e),Z_=(e,t=L)=>A.decodeFromBuf(A.getValidStr(d("GPCI","iAi",e,41)),t),z_=e=>Boolean(d("BeginObjectSelecting","i",e)),X_=e=>Boolean(d("EndObjectEditing","i",e)),Y_=e=>Boolean(d("SetObjectsDefaultCameraCollision","i",e)),J_=(e,t,n,r,i,a,s,o,_,c,u,y,S)=>d("SetSpawnInfo","iiiffffiiiiii",e,t,n,r,i,a,s,o,_,c,u,y,S),Q_=e=>d("SpawnPlayer","i",e),pt=(e,t,n,r)=>d("SetPlayerPos","ifff",e,t,n,r),$_=(e,t,n,r)=>d("SetPlayerPosFindZ","ifff",e,t,n,r),q_=e=>d("GetPlayerPos","iFFF",e),ec=(e,t)=>d("SetPlayerFacingAngle","if",e,t),tc=e=>d("GetPlayerFacingAngle","iF",e),nc=(e,t,n,r,i)=>Boolean(d("IsPlayerInRangeOfPoint","iffff",e,t,n,r,i)),rc=(e,t,n,r)=>H("GetPlayerDistanceFromPoint","ifff",e,t,n,r),ic=(e,t)=>Boolean(d("IsPlayerStreamedIn","ii",e,t)),ac=(e,t)=>d("SetPlayerInterior","ii",e,t),sc=e=>d("GetPlayerInterior","i",e),dc=(e,t)=>d("SetPlayerHealth","if",e,t),oc=e=>d("GetPlayerHealth","iF",e),lc=(e,t)=>d("SetPlayerArmour","if",e,t),_c=e=>d("GetPlayerArmour","iF",e),cc=(e,t,n)=>d("SetPlayerAmmo","iii",e,t,n),hc=e=>d("GetPlayerAmmo","i",e),uc=e=>d("GetPlayerWeaponState","i",e),yc=e=>d("GetPlayerTargetPlayer","i",e),mc=(e,t)=>{d("SetPlayerTeam","ii",e,t)},Sc=e=>d("GetPlayerTeam","i",e),gc=(e,t)=>d("SetPlayerScore","ii",e,t),Pc=e=>d("GetPlayerScore","i",e),pc=e=>d("GetPlayerDrunkLevel","i",e),Ac=(e,t)=>d("SetPlayerDrunkLevel","ii",e,t),Ic=(e,t)=>d("SetPlayerColor","ii",e,g(t)),Cc=e=>d("GetPlayerColor","i",e),fc=(e,t)=>d("SetPlayerSkin","ii",e,t),Ec=e=>d("GetPlayerSkin","i",e),Tc=(e,t,n)=>d("GivePlayerWeapon","iii",e,t,n),Dc=e=>d("ResetPlayerWeapons","i",e),Lc=(e,t)=>d("SetPlayerArmedWeapon","ii",e,t),Rc=(e,t)=>d("GetPlayerWeaponData","iiII",e,t),bc=(e,t)=>d("GivePlayerMoney","ii",e,t),Bc=e=>d("ResetPlayerMoney","i",e),Oc=e=>d("GetPlayerMoney","i",e),wc=e=>d("GetPlayerState","i",e),kc=e=>d("GetPlayerPing","i",e),Gc=e=>d("GetPlayerWeapon","i",e),Mc=e=>d("GetPlayerKeys","iIII",e),Fc=(e,t,n)=>d("SetPlayerTime","iii",e,t,n),Nc=e=>d("GetPlayerTime","iII",e),Hc=(e,t)=>d("TogglePlayerClock","ii",e,t),vc=(e,t)=>d("SetPlayerWeather","ii",e,t),xc=e=>d("ForceClassSelection","i",e),Vc=(e,t)=>d("SetPlayerWantedLevel","ii",e,t),Uc=e=>d("GetPlayerWantedLevel","i",e),Wc=(e,t)=>d("SetPlayerFightingStyle","ii",e,t),Kc=e=>d("GetPlayerFightingStyle","i",e),jc=(e,t,n,r)=>d("SetPlayerVelocity","ifff",e,t,n,r),Zc=e=>d("GetPlayerVelocity","iFFF",e),zc=(e,t,n)=>d("PlayCrimeReportForPlayer","iii",e,t,n),Xc=(e,t,n,r,i,a,s=!1)=>d("PlayAudioStreamForPlayer","isffffi",e,t,n,r,i,a,s),Yc=e=>d("StopAudioStreamForPlayer","i",e),Jc=(e,t)=>d("SetPlayerShopName","is",e,t),Qc=(e,t,n)=>d("SetPlayerSkillLevel","iii",e,t,n),$c=e=>d("GetPlayerSurfingVehicleID","i",e),qc=e=>d("GetPlayerSurfingObjectID","i",e),eh=(e,t,n,r,i,a)=>d("RemoveBuildingForPlayer","iiffff",e,t,n,r,i,a),th=e=>d("GetPlayerLastShotVectors","iFFFFFF",e),nh=(e,t,n,r,i,a,s,o,_,c,u,y,S,I,f)=>d("SetPlayerAttachedObject","iiiifffffffffii",e,t,n,r,i,a,s,o,_,c,u,y,S,g(I),g(f)),rh=(e,t)=>d("RemovePlayerAttachedObject","ii",e,t),ih=(e,t)=>Boolean(d("IsPlayerAttachedObjectSlotUsed","ii",e,t)),ah=(e,t,n,r)=>d("CreatePlayerTextDraw","iffs",e,t,n,r),sh=(e,t)=>{d("PlayerTextDrawDestroy","ii",e,t)},dh=(e,t,n,r)=>d("PlayerTextDrawLetterSize","iiff",e,t,n,r),oh=(e,t,n)=>d("PlayerTextDrawAlignment","iii",e,t,n),lh=(e,t,n)=>Boolean(d("PlayerTextDrawColour","iii",e,t,g(n))),_h=(e,t,n)=>d("PlayerTextDrawUseBox","iii",e,t,n),ch=(e,t,n)=>Boolean(d("PlayerTextDrawBoxColour","iii",e,t,g(n))),hh=(e,t,n)=>d("PlayerTextDrawSetShadow","iii",e,t,n),uh=(e,t,n)=>d("PlayerTextDrawSetOutline","iii",e,t,n),yh=(e,t,n)=>Boolean(d("PlayerTextDrawBackgroundColour","iii",e,t,g(n))),mh=(e,t,n)=>d("PlayerTextDrawFont","iii",e,t,n),Sh=(e,t,n)=>d("PlayerTextDrawSetProportional","iii",e,t,n),gh=(e,t,n)=>d("PlayerTextDrawSetSelectable","iii",e,t,n),Ph=(e,t)=>d("PlayerTextDrawShow","ii",e,t),ph=(e,t)=>d("PlayerTextDrawHide","ii",e,t),Ah=(e,t,n)=>d("PlayerTextDrawSetString","iis",e,t,n),Ih=(e,t,n)=>d("PlayerTextDrawSetPreviewModel","iii",e,t,n),Ch=(e,t,n,r,i,a)=>d("PlayerTextDrawSetPreviewRot","iiffff",e,t,n,r,i,a),fh=(e,t,n,r)=>Boolean(d("PlayerTextDrawSetPreviewVehicleColours","iiii",e,t,n,r)),Eh=(e,t,n,r,i)=>d("SetPlayerChatBubble","isifi",e,t,g(n),r,i),Th=(e,t,n)=>d("PutPlayerInVehicle","iii",e,t,n),Dh=e=>d("GetPlayerVehicleID","i",e),Lh=e=>d("GetPlayerVehicleSeat","i",e),Rh=e=>d("RemovePlayerFromVehicle","i",e),bh=(e,t)=>d("TogglePlayerControllable","ii",e,t),Bh=(e,t,n,r,i)=>d("PlayerPlaySound","iifff",e,t,n,r,i),Oh=(e,t,n,r,i,a,s,o,_,c)=>d("ApplyAnimation","issfiiiiii",e,t,n,r,i,a,s,o,_,c),wh=(e,t)=>d("ClearAnimations","ii",e,t),kh=e=>d("GetPlayerAnimationIndex","i",e),Gh=e=>d("GetPlayerSpecialAction","i",e),Mh=(e,t)=>d("SetPlayerSpecialAction","ii",e,t),Fh=(e,t)=>d("DisableRemoteVehicleCollisions","ii",e,t),Nh=(e,t,n,r,i)=>d("SetPlayerWorldBounds","iffff",e,t,n,r,i),Hh=(e,t,n)=>d("SetPlayerMarkerForPlayer","iii",e,t,g(n)),vh=(e,t,n)=>d("ShowPlayerNameTagForPlayer","iii",e,t,n),xh=(e,t,n,r)=>d("SetPlayerCameraPos","ifff",e,t,n,r),Vh=(e,t,n,r,i)=>d("SetPlayerCameraLookAt","ifffi",e,t,n,r,i),Uh=e=>d("SetCameraBehindPlayer","i",e),Wh=e=>d("GetPlayerCameraPos","iFFF",e),Kh=e=>d("GetPlayerCameraFrontVector","iFFF",e),jh=e=>d("GetPlayerCameraMode","i",e),Zh=(e,t)=>d("EnablePlayerCameraTarget","ii",e,t),zh=e=>d("GetPlayerCameraTargetVehicle","i",e),Xh=e=>d("GetPlayerCameraTargetPlayer","i",e),Yh=e=>H("GetPlayerCameraAspectRatio","i",e),Jh=e=>H("GetPlayerCameraZoom","i",e),Qh=(e,t,n,r,i,a,s,o,_)=>d("InterpolateCameraPos","iffffffii",e,t,n,r,i,a,s,o,_),$h=(e,t,n,r,i,a,s,o,_)=>d("InterpolateCameraLookAt","iffffffii",e,t,n,r,i,a,s,o,_),At=e=>Boolean(d("IsPlayerConnected","i",e)),qh=(e,t)=>Boolean(d("IsPlayerInVehicle","ii",e,t)),eu=e=>Boolean(d("IsPlayerInAnyVehicle","i",e)),tu=(e,t)=>d("SetPlayerVirtualWorld","ii",e,t),nu=e=>d("GetPlayerVirtualWorld","i",e),ru=(e,t)=>d("EnableStuntBonusForPlayer","ii",e,t),iu=e=>d("EnableStuntBonusForAll","i",e),au=(e,t)=>d("TogglePlayerSpectating","ii",e,t),su=(e,t,n)=>d("PlayerSpectatePlayer","iii",e,t,n),du=(e,t,n)=>d("PlayerSpectateVehicle","iii",e,t,n),ou=(e,t,n)=>d("StartRecordingPlayerData","iis",e,t,n),lu=e=>d("StopRecordingPlayerData","i",e),_u=(e,t)=>{d("SelectTextDraw","ii",e,g(t))},cu=e=>{d("CancelSelectTextDraw","i",e)},hu=(e,t,n,r,i,a)=>d("CreateExplosionForPlayer","ifffif",e,t,n,r,i,a),uu=(e,t,n,r,i)=>d("SendClientCheck","iiiii",e,t,n,r,i),yu=(e,t,n,r,i,a,s,o,_)=>d("CreateVehicle","iffffiiii",e,t,n,r,i,g(a),g(s),o,_),mu=e=>d("DestroyVehicle","i",e),Su=(e,t)=>Boolean(d("IsVehicleStreamedIn","ii",e,t)),gu=e=>{const t=d("GetVehiclePos","iFFF",e);if(t.length<3)throw new Error("VehicleID "+e+" not found");return{x:t[0],y:t[1],z:t[2]}},Pu=(e,t,n,r)=>d("SetVehiclePos","ifff",e,t,n,r),pu=e=>d("GetVehicleZAngle","iF",e),Au=e=>d("GetVehicleRotationQuat","iFFFF",e),Iu=(e,t,n,r)=>H("GetVehicleDistanceFromPoint","ifff",e,t,n,r),Cu=(e,t)=>d("SetVehicleZAngle","if",e,t),fu=(e,t,n,r)=>d("SetVehicleParamsForPlayer","iiii",e,t,n,r),Eu=()=>d("ManualVehicleEngineAndLights",""),Tu=(e,t,n,r,i,a,s,o)=>d("SetVehicleParamsEx","iiiiiiii",e,t,n,r,i,a,s,o),Du=e=>d("GetVehicleParamsEx","iIIIIIII",e),Lu=e=>d("GetVehicleParamsSirenState","i",e),Ru=(e,t,n,r,i)=>d("SetVehicleParamsCarDoors","iiiii",e,t,n,r,i),bu=e=>{const t=d("GetVehicleParamsCarDoors","iIIII",e);return{driver:t[0],passenger:t[1],backleft:t[2],backright:t[3]}},Bu=(e,t,n,r,i)=>d("SetVehicleParamsCarWindows","iiiii",e,t,n,r,i),Ou=e=>{const t=d("GetVehicleParamsCarWindows","iIIII",e);return{driver:t[0],passenger:t[1],backleft:t[2],backright:t[3]}},wu=e=>d("SetVehicleToRespawn","i",e),ku=(e,t)=>d("LinkVehicleToInterior","ii",e,t),Gu=(e,t)=>d("AddVehicleComponent","ii",e,t),Mu=(e,t)=>d("RemoveVehicleComponent","ii",e,t),Fu=(e,t,n)=>d("ChangeVehicleColours","iii",e,g(t),g(n)),Nu=(e,t)=>d("ChangeVehiclePaintjob","ii",e,t),Hu=(e,t)=>d("SetVehicleHealth","if",e,t),vu=e=>d("GetVehicleHealth","iF",e),xu=(e,t)=>d("AttachTrailerToVehicle","ii",e,t),Vu=e=>d("DetachTrailerFromVehicle","i",e),Uu=e=>Boolean(d("IsTrailerAttachedToVehicle","i",e)),Wu=e=>d("GetVehicleTrailer","i",e),Ku=(e,t)=>d("SetVehicleNumberPlate","is",e,t),ju=e=>d("GetVehicleModel","i",e),Zu=(e,t)=>d("GetVehicleComponentInSlot","ii",e,t),zu=e=>d("GetVehicleComponentType","i",e),Xu=e=>d("RepairVehicle","i",e),Yu=e=>d("GetVehicleVelocity","iFFF",e),Ju=(e,t,n,r)=>d("SetVehicleVelocity","ifff",e,t,n,r),Qu=(e,t,n,r)=>d("SetVehicleAngularVelocity","ifff",e,t,n,r),$u=e=>{const t=d("GetVehicleDamageStatus","iIIII",e);if(t.length<4)throw new Error("VehicleID "+e+" not found");return{panels:t[0],doors:t[1],lights:t[2],tires:t[3]}},qu=(e,t,n,r,i)=>d("UpdateVehicleDamageStatus","iiiii",e,t,n,r,i),e1=(e,t)=>{const n=d("GetVehicleModelInfo","iiFFF",e,t);if(n.length<3)throw new Error("ModelID "+e+" not found");return{x:n[0],y:n[1],z:n[2]}},t1=(e,t)=>d("SetVehicleVirtualWorld","ii",e,t),n1=e=>d("GetVehicleVirtualWorld","i",e),It=e=>Boolean(d("IsValidVehicle","i",e)),r1=(e,t)=>d("StartRecordingPlayback","is",e,t),i1=()=>d("StopRecordingPlayback",""),a1=()=>d("PauseRecordingPlayback",""),s1=()=>d("ResumeRecordingPlayback",""),d1=e=>d("GetPlayerCustomSkin","i",e),o1=(e,t)=>d("RedirectDownload","is",e,t),l1=(e,t,n,r,i)=>d("AddSimpleModel","iiiss",e,t,n,r,i),_1=(e,t,n,r,i,a,s)=>d("AddSimpleModelTimed","iiissii",e,t,n,r,i,a,s),c1=e=>d("GetWeaponName","iSi",e,32),h1=e=>d("NetStats_GetIpPort","iSi",e,128+6),u1=e=>d("GetPlayerIp","iSi",e,128),y1=e=>d("GetAnimationName","iSiSi",e,32,32),m1=e=>d("GetPlayerVersion","iSi",e,24),S1=e=>d("FindModelFileNameFromCRC","iSi",e,255),g1=e=>d("FindTextureFileNameFromCRC","iSi",e,255);class w{constructor(){}static recordStatus;static connectNPC=xl;static startRecordingPlayerData(t,n,r){if(t.isRecording)return l.warn("[NpcFunc]: It should be stopped before recording");ou(t.id,n,r),t.isRecording=!0}static stopRecordingPlayerData(t){if(!t.isRecording)return l.warn("[NpcFunc]: It should be started before stop");lu(t.id),t.isRecording=!1}static startRecordingPlayback(t,n){if(w.recordStatus>=B.start)return l.warn("[NpcFunc]: The current status cannot be replayed");r1(t,n),w.recordStatus=B.start}static stopRecordingPlayback(){if(w.recordStatus<B.start)return l.warn("[NpcFunc]: The current status cannot be stopped");i1(),w.recordStatus=B.none}static pauseRecordingPlayback(){if(w.recordStatus!==B.start)return l.warn("[NpcFunc]: The current status cannot be paused");a1(),w.recordStatus=B.pause}static resumeRecordingPlayback(){if(w.recordStatus!==B.pause)return l.warn("[NpcFunc]: The current status cannot be paused");s1(),w.recordStatus=B.start}}const P1=new Map([["AIRPORT",[{n:"thrw_barl_thrw",d:2}]],["Attractors",[{n:"Stepsit_in",d:1.67},{n:"Stepsit_loop",d:3.33},{n:"Stepsit_out",d:1.67}]],["BAR",[{n:"Barcustom_get",d:3},{n:"Barcustom_loop",d:2},{n:"Barcustom_order",d:3.67},{n:"BARman_idle",d:8.33},{n:"Barserve_bottle",d:3},{n:"Barserve_give",d:2.33},{n:"Barserve_glass",d:3.67},{n:"Barserve_in",d:1.67},{n:"Barserve_loop",d:2.33},{n:"Barserve_order",d:3.67},{n:"dnk_stndF_loop",d:2.33},{n:"dnk_stndM_loop",d:2.33}]],["BASEBALL",[{n:"Bat_1",d:.9},{n:"Bat_2",d:1.13},{n:"Bat_3",d:1.2},{n:"Bat_4",d:1},{n:"Bat_block",d:.47},{n:"Bat_Hit_1",d:.83},{n:"Bat_Hit_2",d:1.07},{n:"Bat_Hit_3",d:1.13},{n:"Bat_IDLE",d:.93},{n:"Bat_M",d:.53},{n:"BAT_PART",d:.53}]],["BD_FIRE",[{n:"BD_Fire1",d:1.83},{n:"BD_Fire2",d:1.67},{n:"BD_Fire3",d:1.83},{n:"BD_GF_Wave",d:5.07},{n:"BD_Panic_01",d:3.33},{n:"BD_Panic_02",d:3.33},{n:"BD_Panic_03",d:3.33},{n:"BD_Panic_04",d:3.33},{n:"BD_Panic_Loop",d:3.33},{n:"Grlfrd_Kiss_03",d:7},{n:"M_smklean_loop",d:5},{n:"Playa_Kiss_03",d:7},{n:"wash_up",d:3}]],["BEACH",[{n:"bather",d:4.2},{n:"Lay_Bac_Loop",d:2.67},{n:"ParkSit_M_loop",d:3.67},{n:"ParkSit_W_loop",d:3.33},{n:"SitnWait_loop_W",d:1.33}]],["benchpress",[{n:"gym_bp_celebrate",d:5},{n:"gym_bp_down",d:1},{n:"gym_bp_getoff",d:8.67},{n:"gym_bp_geton",d:5.33},{n:"gym_bp_up_A",d:2.33},{n:"gym_bp_up_B",d:2.67},{n:"gym_bp_up_smooth",d:1.33}]],["BF_injection",[{n:"BF_getin_LHS",d:1},{n:"BF_getin_RHS",d:1},{n:"BF_getout_LHS",d:1.13},{n:"BF_getout_RHS",d:1.13}]],["BIKED",[{n:"BIKEd_Back",d:.1},{n:"BIKEd_drivebyFT",d:.2},{n:"BIKEd_drivebyLHS",d:.2},{n:"BIKEd_drivebyRHS",d:.2},{n:"BIKEd_Fwd",d:.2},{n:"BIKEd_getoffBACK",d:1.47},{n:"BIKEd_getoffLHS",d:1},{n:"BIKEd_getoffRHS",d:1},{n:"BIKEd_hit",d:.03},{n:"BIKEd_jumponL",d:.97},{n:"BIKEd_jumponR",d:.97},{n:"BIKEd_kick",d:1.07},{n:"BIKEd_Left",d:.1},{n:"BIKEd_passenger",d:.03},{n:"BIKEd_pushes",d:.8},{n:"BIKEd_Ride",d:.03},{n:"BIKEd_Right",d:.1},{n:"BIKEd_shuffle",d:.43},{n:"BIKEd_Still",d:.03}]],["BIKEH",[{n:"BIKEh_Back",d:.1},{n:"BIKEh_drivebyFT",d:.2},{n:"BIKEh_drivebyLHS",d:.2},{n:"BIKEh_drivebyRHS",d:.2},{n:"BIKEh_Fwd",d:.2},{n:"BIKEh_getoffBACK",d:1.7},{n:"BIKEh_getoffLHS",d:.77},{n:"BIKEh_getoffRHS",d:.73},{n:"BIKEh_hit",d:.03},{n:"BIKEh_jumponL",d:1.47},{n:"BIKEh_jumponR",d:1.5},{n:"BIKEh_kick",d:1.07},{n:"BIKEh_Left",d:.13},{n:"BIKEh_passenger",d:.03},{n:"BIKEh_pushes",d:.97},{n:"BIKEh_Ride",d:.03},{n:"BIKEh_Right",d:.13},{n:"BIKEh_Still",d:.03}]],["BIKELEAP",[{n:"bk_blnce_in",d:1.9},{n:"bk_blnce_out",d:1},{n:"bk_jmp",d:.4},{n:"bk_rdy_in",d:.5},{n:"bk_rdy_out",d:.4},{n:"struggle_cesar",d:.47},{n:"struggle_driver",d:.47},{n:"truck_driver",d:.73},{n:"truck_getin",d:2.5}]],["BIKES",[{n:"BIKEs_Back",d:.1},{n:"BIKEs_drivebyFT",d:.2},{n:"BIKEs_drivebyLHS",d:.2},{n:"BIKEs_drivebyRHS",d:.2},{n:"BIKEs_Fwd",d:.2},{n:"BIKEs_getoffBACK",d:2.43},{n:"BIKEs_getoffLHS",d:1.1},{n:"BIKEs_getoffRHS",d:1.1},{n:"BIKEs_hit",d:.03},{n:"BIKEs_jumponL",d:.9},{n:"BIKEs_jumponR",d:.9},{n:"BIKEs_kick",d:1},{n:"BIKEs_Left",d:.1},{n:"BIKEs_passenger",d:.03},{n:"BIKEs_pushes",d:.73},{n:"BIKEs_Ride",d:.03},{n:"BIKEs_Right",d:.1},{n:"BIKEs_Snatch_L",d:.43},{n:"BIKEs_Snatch_R",d:.43},{n:"BIKEs_Still",d:.03}]],["BIKEV",[{n:"BIKEv_Back",d:.17},{n:"BIKEv_drivebyFT",d:.17},{n:"BIKEv_drivebyLHS",d:.23},{n:"BIKEv_drivebyRHS",d:.2},{n:"BIKEv_Fwd",d:.2},{n:"BIKEv_getoffBACK",d:1.7},{n:"BIKEv_getoffLHS",d:.67},{n:"BIKEv_getoffRHS",d:.67},{n:"BIKEv_hit",d:.03},{n:"BIKEv_jumponL",d:.67},{n:"BIKEv_jumponR",d:.67},{n:"BIKEv_kick",d:1},{n:"BIKEv_Left",d:.1},{n:"BIKEv_passenger",d:.03},{n:"BIKEv_pushes",d:.73},{n:"BIKEv_Ride",d:.03},{n:"BIKEv_Right",d:.1},{n:"BIKEv_Still",d:.03}]],["BIKE_DBZ",[{n:"Pass_Driveby_BWD",d:.83},{n:"Pass_Driveby_FWD",d:.83},{n:"Pass_Driveby_LHS",d:.83},{n:"Pass_Driveby_RHS",d:.83}]],["BLOWJOBZ",[{n:"BJ_Car_End_P",d:4.13},{n:"BJ_Car_End_W",d:3.67},{n:"BJ_Car_Loop_P",d:.67},{n:"BJ_Car_Loop_W",d:.67},{n:"BJ_Car_Start_P",d:2.33},{n:"BJ_Car_Start_W",d:2.33},{n:"BJ_Couch_End_P",d:7.67},{n:"BJ_Couch_End_W",d:7.67},{n:"BJ_Couch_Loop_P",d:2},{n:"BJ_Couch_Loop_W",d:2},{n:"BJ_Couch_Start_P",d:5.33},{n:"BJ_Couch_Start_W",d:5.33},{n:"BJ_Stand_End_P",d:4.87},{n:"BJ_Stand_End_W",d:5.33},{n:"BJ_Stand_Loop_P",d:.67},{n:"BJ_Stand_Loop_W",d:.67},{n:"BJ_Stand_Start_P",d:2},{n:"BJ_Stand_Start_W",d:2}]],["BMX",[{n:"BMX_back",d:.1},{n:"BMX_bunnyhop",d:.33},{n:"BMX_drivebyFT",d:.2},{n:"BMX_driveby_LHS",d:.2},{n:"BMX_driveby_RHS",d:.2},{n:"BMX_fwd",d:.13},{n:"BMX_getoffBACK",d:1.37},{n:"BMX_getoffLHS",d:.73},{n:"BMX_getoffRHS",d:.63},{n:"BMX_jumponL",d:.9},{n:"BMX_jumponR",d:.9},{n:"BMX_Left",d:.13},{n:"BMX_pedal",d:.73},{n:"BMX_pushes",d:.8},{n:"BMX_Ride",d:.03},{n:"BMX_Right",d:.13},{n:"BMX_sprint",d:.67},{n:"BMX_still",d:.03}]],["BOMBER",[{n:"BOM_Plant",d:2.67},{n:"BOM_Plant_2Idle",d:1},{n:"BOM_Plant_Crouch_In",d:.8},{n:"BOM_Plant_Crouch_Out",d:.8},{n:"BOM_Plant_In",d:.87},{n:"BOM_Plant_Loop",d:.8}]],["BOX",[{n:"boxhipin",d:6.53},{n:"boxhipup",d:5},{n:"boxshdwn",d:6.1},{n:"boxshup",d:5.2},{n:"bxhipwlk",d:1.5},{n:"bxhwlki",d:.97},{n:"bxshwlk",d:2.5},{n:"bxshwlki",d:.97},{n:"bxwlko",d:.53},{n:"catch_box",d:1.5}]],["BSKTBALL",[{n:"BBALL_def_jump_shot",d:1.17},{n:"BBALL_def_loop",d:1},{n:"BBALL_def_stepL",d:.6},{n:"BBALL_def_stepR",d:.6},{n:"BBALL_Dnk",d:1.4},{n:"BBALL_Dnk_Gli",d:.37},{n:"BBALL_Dnk_Gli_O",d:.37},{n:"BBALL_Dnk_Lnch",d:.2},{n:"BBALL_Dnk_Lnch_O",d:.2},{n:"BBALL_Dnk_Lnd",d:.93},{n:"BBALL_Dnk_O",d:.1},{n:"BBALL_idle",d:2.43},{n:"BBALL_idle2",d:2.67},{n:"BBALL_idle2_O",d:2.67},{n:"BBALL_idleloop",d:.67},{n:"BBALL_idleloop_O",d:.67},{n:"BBALL_idle_O",d:2.43},{n:"BBALL_Jump_Cancel",d:1.07},{n:"BBALL_Jump_Cancel_O",d:1.07},{n:"BBALL_Jump_End",d:.93},{n:"BBALL_Jump_Shot",d:1.67},{n:"BBALL_Jump_Shot_O",d:.67},{n:"BBALL_Net_Dnk_O",d:1.83},{n:"BBALL_pickup",d:1.83},{n:"BBALL_pickup_O",d:1.83},{n:"BBALL_react_miss",d:.8},{n:"BBALL_react_score",d:1.1},{n:"BBALL_run",d:.9},{n:"BBALL_run_O",d:.9},{n:"BBALL_SkidStop_L",d:.5},{n:"BBALL_SkidStop_L_O",d:.5},{n:"BBALL_SkidStop_R",d:.5},{n:"BBALL_SkidStop_R_O",d:.5},{n:"BBALL_walk",d:1.07},{n:"BBALL_WalkStop_L",d:.5},{n:"BBALL_WalkStop_L_O",d:.5},{n:"BBALL_WalkStop_R",d:.5},{n:"BBALL_WalkStop_R_O",d:.5},{n:"BBALL_walk_O",d:1.07},{n:"BBALL_walk_start",d:.2},{n:"BBALL_walk_start_O",d:.2}]],["BUDDY",[{n:"buddy_crouchfire",d:.87},{n:"buddy_crouchreload",d:1.1},{n:"buddy_fire",d:.8},{n:"buddy_fire_poor",d:1.33},{n:"buddy_reload",d:1.3}]],["BUS",[{n:"BUS_close",d:.4},{n:"BUS_getin_LHS",d:.33},{n:"BUS_getin_RHS",d:2.17},{n:"BUS_getout_LHS",d:.8},{n:"BUS_getout_RHS",d:1.87},{n:"BUS_jacked_LHS",d:1.13},{n:"BUS_open",d:1.47},{n:"BUS_open_RHS",d:1.2},{n:"BUS_pullout_LHS",d:.8}]],["CAMERA",[{n:"camcrch_cmon",d:2.33},{n:"camcrch_idleloop",d:2},{n:"camcrch_stay",d:2},{n:"camcrch_to_camstnd",d:1.33},{n:"camstnd_cmon",d:3},{n:"camstnd_idleloop",d:2},{n:"camstnd_lkabt",d:4.33},{n:"camstnd_to_camcrch",d:1},{n:"piccrch_in",d:1.33},{n:"piccrch_out",d:2},{n:"piccrch_take",d:1},{n:"picstnd_in",d:1},{n:"picstnd_out",d:.67},{n:"picstnd_take",d:1}]],["CAR",[{n:"Fixn_Car_Loop",d:5},{n:"Fixn_Car_Out",d:2.33},{n:"flag_drop",d:4.5},{n:"Sit_relaxed",d:.03},{n:"Tap_hand",d:.33},{n:"Tyd2car_bump",d:.83},{n:"Tyd2car_high",d:8},{n:"Tyd2car_low",d:6.67},{n:"Tyd2car_med",d:6.67},{n:"Tyd2car_TurnL",d:1},{n:"Tyd2car_TurnR",d:1}]],["CARRY",[{n:"crry_prtial",d:.03},{n:"liftup",d:1.53},{n:"liftup05",d:.63},{n:"liftup105",d:.67},{n:"putdwn",d:1.13},{n:"putdwn05",d:.67},{n:"putdwn105",d:.53}]],["CAR_CHAT",[{n:"carfone_in",d:6},{n:"carfone_loopA",d:4},{n:"carfone_loopA_to_B",d:1},{n:"carfone_loopB",d:5},{n:"carfone_loopB_to_A",d:.67},{n:"carfone_out",d:3},{n:"CAR_Sc1_BL",d:11.67},{n:"CAR_Sc1_BR",d:11.67},{n:"CAR_Sc1_FL",d:11.67},{n:"CAR_Sc1_FR",d:11.67},{n:"CAR_Sc2_FL",d:5},{n:"CAR_Sc3_BR",d:10.83},{n:"CAR_Sc3_FL",d:10.83},{n:"CAR_Sc3_FR",d:10.83},{n:"CAR_Sc4_BL",d:4.4},{n:"CAR_Sc4_BR",d:6.53},{n:"CAR_Sc4_FL",d:10},{n:"CAR_Sc4_FR",d:10},{n:"car_talkm_in",d:1.67},{n:"car_talkm_loop",d:4.33},{n:"car_talkm_out",d:7.33}]],["CASINO",[{n:"cards_in",d:.67},{n:"cards_loop",d:3.33},{n:"cards_lose",d:3.33},{n:"cards_out",d:.67},{n:"cards_pick_01",d:4.67},{n:"cards_pick_02",d:5.33},{n:"cards_raise",d:1.67},{n:"cards_win",d:3},{n:"dealone",d:.8},{n:"manwinb",d:1.5},{n:"manwind",d:1.67},{n:"Roulette_bet",d:2.33},{n:"Roulette_in",d:.67},{n:"Roulette_loop",d:3.67},{n:"Roulette_lose",d:2.67},{n:"Roulette_out",d:.67},{n:"Roulette_win",d:2.33},{n:"Slot_bet_01",d:4.67},{n:"Slot_bet_02",d:2},{n:"Slot_in",d:3.67},{n:"Slot_lose_out",d:4},{n:"Slot_Plyr",d:1.33},{n:"Slot_wait",d:3.67},{n:"Slot_win_out",d:9.33},{n:"wof",d:1.47}]],["CHAINSAW",[{n:"CSAW_1",d:1},{n:"CSAW_2",d:1.03},{n:"CSAW_3",d:.87},{n:"CSAW_G",d:1.17},{n:"CSAW_Hit_1",d:.83},{n:"CSAW_Hit_2",d:1.07},{n:"CSAW_Hit_3",d:1.13},{n:"csaw_part",d:.13},{n:"IDLE_csaw",d:1.5},{n:"WEAPON_csaw",d:1.33},{n:"WEAPON_csawlo",d:1.9}]],["CHOPPA",[{n:"CHOPPA_back",d:.1},{n:"CHOPPA_bunnyhop",d:.33},{n:"CHOPPA_drivebyFT",d:.2},{n:"CHOPPA_driveby_LHS",d:.2},{n:"CHOPPA_driveby_RHS",d:.2},{n:"CHOPPA_fwd",d:.2},{n:"CHOPPA_getoffBACK",d:1.27},{n:"CHOPPA_getoffLHS",d:.73},{n:"CHOPPA_getoffRHS",d:.63},{n:"CHOPPA_jumponL",d:.7},{n:"CHOPPA_jumponR",d:.8},{n:"CHOPPA_Left",d:.13},{n:"CHOPPA_pedal",d:.73},{n:"CHOPPA_Pushes",d:.8},{n:"CHOPPA_ride",d:.03},{n:"CHOPPA_Right",d:.13},{n:"CHOPPA_sprint",d:.67},{n:"CHOPPA_Still",d:.03}]],["CLOTHES",[{n:"CLO_Buy",d:2.07},{n:"CLO_In",d:4},{n:"CLO_Out",d:2.67},{n:"CLO_Pose_Hat",d:3.33},{n:"CLO_Pose_In",d:3.13},{n:"CLO_Pose_In_O",d:4},{n:"CLO_Pose_Legs",d:3.33},{n:"CLO_Pose_Loop",d:6},{n:"CLO_Pose_Out",d:4},{n:"CLO_Pose_Out_O",d:4},{n:"CLO_Pose_Shoes",d:3.33},{n:"CLO_Pose_Torso",d:3.33},{n:"CLO_Pose_Watch",d:3.33}]],["COACH",[{n:"COACH_inL",d:2.17},{n:"COACH_inR",d:2.2},{n:"COACH_opnL",d:1.2},{n:"COACH_opnR",d:1.2},{n:"COACH_outL",d:1.73},{n:"COACH_outR",d:1.83}]],["COLT45",[{n:"2guns_crouchfire",d:.8},{n:"colt45_crouchfire",d:.8},{n:"colt45_crouchreload",d:1},{n:"colt45_fire",d:.73},{n:"colt45_fire_2hands",d:.87},{n:"colt45_reload",d:.93},{n:"sawnoff_reload",d:.93}]],["COP_AMBIENT",[{n:"Copbrowse_in",d:5},{n:"Copbrowse_loop",d:2.33},{n:"Copbrowse_nod",d:4},{n:"Copbrowse_out",d:2.67},{n:"Copbrowse_shake",d:1.83},{n:"Coplook_in",d:1.33},{n:"Coplook_loop",d:2.67},{n:"Coplook_nod",d:5.33},{n:"Coplook_out",d:.67},{n:"Coplook_shake",d:4},{n:"Coplook_think",d:3.33},{n:"Coplook_watch",d:2}]],["COP_DVBYZ",[{n:"COP_Dvby_B",d:.83},{n:"COP_Dvby_FT",d:.83},{n:"COP_Dvby_L",d:.83},{n:"COP_Dvby_R",d:.83}]],["CRACK",[{n:"Bbalbat_Idle_01",d:6.67},{n:"Bbalbat_Idle_02",d:10},{n:"crckdeth1",d:2.17},{n:"crckdeth2",d:3},{n:"crckdeth3",d:2.17},{n:"crckdeth4",d:1.67},{n:"crckidle1",d:3.5},{n:"crckidle2",d:3.33},{n:"crckidle3",d:3.33},{n:"crckidle4",d:2.67}]],["CRIB",[{n:"CRIB_Console_Loop",d:3},{n:"CRIB_Use_Switch",d:1.17},{n:"PED_Console_Loop",d:3},{n:"PED_Console_Loose",d:3.5},{n:"PED_Console_Win",d:3.5}]],["DAM_JUMP",[{n:"DAM_Dive_Loop",d:1.33},{n:"DAM_Land",d:2.6},{n:"DAM_Launch",d:2.4},{n:"Jump_Roll",d:3.17},{n:"SF_JumpWall",d:3}]],["DANCING",[{n:"bd_clap",d:3.2},{n:"bd_clap1",d:2.63},{n:"dance_loop",d:1.17},{n:"DAN_Down_A",d:1},{n:"DAN_Left_A",d:1},{n:"DAN_Loop_A",d:2},{n:"DAN_Right_A",d:1},{n:"DAN_Up_A",d:1},{n:"dnce_M_a",d:2.13},{n:"dnce_M_b",d:1.93},{n:"dnce_M_c",d:1.93},{n:"dnce_M_d",d:2.43},{n:"dnce_M_e",d:.9}]],["DEALER",[{n:"DEALER_DEAL",d:3.17},{n:"DEALER_IDLE",d:6.67},{n:"DEALER_IDLE_01",d:5},{n:"DEALER_IDLE_02",d:4},{n:"DEALER_IDLE_03",d:4.67},{n:"DRUGS_BUY",d:3.17},{n:"shop_pay",d:4.67}]],["DILDO",[{n:"DILDO_1",d:.97},{n:"DILDO_2",d:1.1},{n:"DILDO_3",d:1.17},{n:"DILDO_block",d:.47},{n:"DILDO_G",d:1.47},{n:"DILDO_Hit_1",d:.77},{n:"DILDO_Hit_2",d:1.03},{n:"DILDO_Hit_3",d:.9},{n:"DILDO_IDLE",d:.87}]],["DODGE",[{n:"Cover_Dive_01",d:6},{n:"Cover_Dive_02",d:6},{n:"Crushed",d:.93},{n:"Crush_Jump",d:3.17}]],["DOZER",[{n:"DOZER_Align_LHS",d:.97},{n:"DOZER_Align_RHS",d:.93},{n:"DOZER_getin_LHS",d:.43},{n:"DOZER_getin_RHS",d:.43},{n:"DOZER_getout_LHS",d:1.07},{n:"DOZER_getout_RHS",d:.77},{n:"DOZER_Jacked_LHS",d:1.27},{n:"DOZER_Jacked_RHS",d:1.07},{n:"DOZER_pullout_LHS",d:.73},{n:"DOZER_pullout_RHS",d:.7}]],["DRIVEBYS",[{n:"Gang_DrivebyLHS",d:.83},{n:"Gang_DrivebyLHS_Bwd",d:.83},{n:"Gang_DrivebyLHS_Fwd",d:.83},{n:"Gang_DrivebyRHS",d:.83},{n:"Gang_DrivebyRHS_Bwd",d:.83},{n:"Gang_DrivebyRHS_Fwd",d:.83},{n:"Gang_DrivebyTop_LHS",d:.83},{n:"Gang_DrivebyTop_RHS",d:.83}]],["FAT",[{n:"FatIdle",d:1.5},{n:"FatIdle_armed",d:1.53},{n:"FatIdle_Csaw",d:1.5},{n:"FatIdle_Rocket",d:1.6},{n:"FatRun",d:.77},{n:"FatRun_armed",d:.77},{n:"FatRun_Csaw",d:.77},{n:"FatRun_Rocket",d:.77},{n:"FatSprint",d:.6},{n:"FatWalk",d:1.17},{n:"FatWalkstart",d:.2},{n:"FatWalkstart_Csaw",d:.2},{n:"FatWalkSt_armed",d:.2},{n:"FatWalkSt_Rocket",d:.2},{n:"FatWalk_armed",d:1.17},{n:"FatWalk_Csaw",d:1.17},{n:"FatWalk_Rocket",d:1.17},{n:"IDLE_tired",d:1.07}]],["FIGHT_B",[{n:"FightB_1",d:.73},{n:"FightB_2",d:1.1},{n:"FightB_3",d:1.2},{n:"FightB_block",d:.47},{n:"FightB_G",d:1.07},{n:"FightB_IDLE",d:.8},{n:"FightB_M",d:.5},{n:"HitB_1",d:.73},{n:"HitB_2",d:.83},{n:"HitB_3",d:1.43}]],["FIGHT_C",[{n:"FightC_1",d:.83},{n:"FightC_2",d:1.03},{n:"FightC_3",d:1},{n:"FightC_block",d:.47},{n:"FightC_blocking",d:3.2},{n:"FightC_G",d:.77},{n:"FightC_IDLE",d:1},{n:"FightC_M",d:.9},{n:"FightC_Spar",d:3.2},{n:"HitC_1",d:.3},{n:"HitC_2",d:.67},{n:"HitC_3",d:.83}]],["FIGHT_D",[{n:"FightD_1",d:.93},{n:"FightD_2",d:1.87},{n:"FightD_3",d:.9},{n:"FightD_block",d:.47},{n:"FightD_G",d:.83},{n:"FightD_IDLE",d:1.53},{n:"FightD_M",d:1.07},{n:"HitD_1",d:.67},{n:"HitD_2",d:1.83},{n:"HitD_3",d:.97}]],["FIGHT_E",[{n:"FightKick",d:.77},{n:"FightKick_B",d:1.03},{n:"Hit_fightkick",d:.5},{n:"Hit_fightkick_B",d:1.13}]],["FINALE",[{n:"FIN_Climb_In",d:2.9},{n:"FIN_Cop1_ClimbOut2",d:6},{n:"FIN_Cop1_Loop",d:2},{n:"FIN_Cop1_Stomp",d:1},{n:"FIN_Hang_L",d:.57},{n:"FIN_Hang_Loop",d:4},{n:"FIN_Hang_R",d:.57},{n:"FIN_Hang_Slip",d:3.33},{n:"FIN_Jump_On",d:5.6},{n:"FIN_Land_Car",d:.67},{n:"FIN_Land_Die",d:2.37},{n:"FIN_LegsUp",d:1},{n:"FIN_LegsUp_L",d:.5},{n:"FIN_LegsUp_Loop",d:1.33},{n:"FIN_LegsUp_R",d:.5},{n:"FIN_Let_Go",d:.17}]],["FINALE2",[{n:"FIN_Cop1_ClimbOut",d:4},{n:"FIN_Cop1_Fall",d:.43},{n:"FIN_Cop1_Loop",d:2},{n:"FIN_Cop1_Shot",d:2.07},{n:"FIN_Cop1_Swing",d:1.17},{n:"FIN_Cop2_ClimbOut",d:5.33},{n:"FIN_Switch_P",d:3.97},{n:"FIN_Switch_S",d:2.17}]],["FLAME",[{n:"FLAME_fire",d:.8}]],["Flowers",[{n:"Flower_attack",d:.8},{n:"Flower_attack_M",d:1.23},{n:"Flower_Hit",d:.83}]],["FOOD",[{n:"EAT_Burger",d:5},{n:"EAT_Chicken",d:5},{n:"EAT_Pizza",d:5},{n:"EAT_Vomit_P",d:8},{n:"EAT_Vomit_SK",d:8},{n:"FF_Dam_Bkw",d:.67},{n:"FF_Dam_Fwd",d:.67},{n:"FF_Dam_Left",d:.67},{n:"FF_Dam_Right",d:.67},{n:"FF_Die_Bkw",d:.67},{n:"FF_Die_Fwd",d:.67},{n:"FF_Die_Left",d:.67},{n:"FF_Die_Right",d:.67},{n:"FF_Sit_Eat1",d:2.83},{n:"FF_Sit_Eat2",d:2.67},{n:"FF_Sit_Eat3",d:2.67},{n:"FF_Sit_In",d:3},{n:"FF_Sit_In_L",d:2},{n:"FF_Sit_In_R",d:2},{n:"FF_Sit_Look",d:8},{n:"FF_Sit_Loop",d:2.67},{n:"FF_Sit_Out_180",d:2.83},{n:"FF_Sit_Out_L_180",d:1.33},{n:"FF_Sit_Out_R_180",d:1.33},{n:"SHP_Thank",d:1.17},{n:"SHP_Tray_In",d:.67},{n:"SHP_Tray_Lift",d:1.67},{n:"SHP_Tray_Lift_In",d:.5},{n:"SHP_Tray_Lift_Loop",d:8},{n:"SHP_Tray_Lift_Out",d:.5},{n:"SHP_Tray_Out",d:.67},{n:"SHP_Tray_Pose",d:.67},{n:"SHP_Tray_Return",d:1.33}]],["Freeweights",[{n:"gym_barbell",d:2.37},{n:"gym_free_A",d:1.93},{n:"gym_free_B",d:2.33},{n:"gym_free_celebrate",d:3.33},{n:"gym_free_down",d:.57},{n:"gym_free_loop",d:.67},{n:"gym_free_pickup",d:3.17},{n:"gym_free_putdown",d:3.17},{n:"gym_free_up_smooth",d:1}]],["GANGS",[{n:"DEALER_DEAL",d:1.17},{n:"DEALER_IDLE",d:2},{n:"drnkbr_prtl",d:2.67},{n:"drnkbr_prtl_F",d:2.67},{n:"DRUGS_BUY",d:1.17},{n:"hndshkaa",d:4},{n:"hndshkba",d:2.33},{n:"hndshkca",d:3.33},{n:"hndshkcb",d:3.33},{n:"hndshkda",d:2},{n:"hndshkea",d:1},{n:"hndshkfa",d:4.17},{n:"hndshkfa_swt",d:4.17},{n:"Invite_No",d:3.33},{n:"Invite_Yes",d:4.33},{n:"leanIDLE",d:1},{n:"leanIN",d:1},{n:"leanOUT",d:1},{n:"prtial_gngtlkA",d:4},{n:"prtial_gngtlkB",d:6.17},{n:"prtial_gngtlkC",d:7.33},{n:"prtial_gngtlkD",d:3},{n:"prtial_gngtlkE",d:2.83},{n:"prtial_gngtlkF",d:5.17},{n:"prtial_gngtlkG",d:7},{n:"prtial_gngtlkH",d:6},{n:"prtial_hndshk_01",d:1.67},{n:"prtial_hndshk_biz_01",d:2.33},{n:"shake_cara",d:1.67},{n:"shake_carK",d:1.27},{n:"shake_carSH",d:1.5},{n:"smkcig_prtl",d:7.5},{n:"smkcig_prtl_F",d:7.5}]],["GFUNK",[{n:"Dance_B1",d:1.27},{n:"Dance_B2",d:1.27},{n:"Dance_B3",d:1.27},{n:"Dance_B4",d:1.27},{n:"Dance_B5",d:1.27},{n:"Dance_B6",d:1.27},{n:"Dance_B7",d:1.27},{n:"Dance_B8",d:1.27},{n:"Dance_B9",d:1.27},{n:"Dance_B10",d:1.27},{n:"Dance_B11",d:1.27},{n:"Dance_B12",d:1.27},{n:"Dance_B13",d:1.27},{n:"Dance_B14",d:1.27},{n:"Dance_B15",d:1.27},{n:"Dance_B16",d:1.27},{n:"Dance_G1",d:1.27},{n:"Dance_G2",d:1.27},{n:"Dance_G3",d:1.27},{n:"Dance_G4",d:1.27},{n:"Dance_G5",d:1.27},{n:"Dance_G6",d:1.27},{n:"Dance_G7",d:1.27},{n:"Dance_G8",d:1.27},{n:"Dance_G9",d:1.27},{n:"Dance_G10",d:1.27},{n:"Dance_G11",d:1.27},{n:"Dance_G12",d:1.27},{n:"Dance_G13",d:1.27},{n:"Dance_G14",d:1.27},{n:"Dance_G15",d:1.27},{n:"Dance_G16",d:1.27},{n:"dance_loop",d:1.17}]],["GHANDS",[{n:"gsign1",d:4.77},{n:"gsign1LH",d:2.73},{n:"gsign2",d:2.13},{n:"gsign2LH",d:2.33},{n:"gsign3",d:4.67},{n:"gsign3LH",d:2},{n:"gsign4",d:4.17},{n:"gsign4LH",d:4.67},{n:"gsign5",d:6.2},{n:"gsign5LH",d:2},{n:"LHGsign1",d:2},{n:"LHGsign2",d:2},{n:"LHGsign3",d:2},{n:"LHGsign4",d:2},{n:"LHGsign5",d:2},{n:"RHGsign1",d:2},{n:"RHGsign2",d:2},{n:"RHGsign3",d:2},{n:"RHGsign4",d:2},{n:"RHGsign5",d:2}]],["GHETTO_DB",[{n:"GDB_Car2_PLY",d:9.5},{n:"GDB_Car2_SMO",d:9.5},{n:"GDB_Car2_SWE",d:9.5},{n:"GDB_Car_PLY",d:13.33},{n:"GDB_Car_RYD",d:13.33},{n:"GDB_Car_SMO",d:13.33},{n:"GDB_Car_SWE",d:13.33}]],["goggles",[{n:"goggles_put_on",d:.8}]],["GRAFFITI",[{n:"graffiti_Chkout",d:4.67},{n:"spraycan_fire",d:2.33}]],["GRAVEYARD",[{n:"mrnF_loop",d:4.67},{n:"mrnM_loop",d:2.67},{n:"prst_loopa",d:4}]],["GRENADE",[{n:"WEAPON_start_throw",d:.2},{n:"WEAPON_throw",d:.87},{n:"WEAPON_throwu",d:.67}]],["GYMNASIUM",[{n:"GYMshadowbox",d:5.1},{n:"gym_bike_celebrate",d:1.93},{n:"gym_bike_fast",d:.4},{n:"gym_bike_faster",d:.4},{n:"gym_bike_getoff",d:1.67},{n:"gym_bike_geton",d:1.67},{n:"gym_bike_pedal",d:.4},{n:"gym_bike_slow",d:.43},{n:"gym_bike_still",d:1.67},{n:"gym_jog_falloff",d:2.17},{n:"gym_shadowbox",d:5.1},{n:"gym_tread_celebrate",d:2.5},{n:"gym_tread_falloff",d:2},{n:"gym_tread_getoff",d:3.33},{n:"gym_tread_geton",d:2.5},{n:"gym_tread_jog",d:.77},{n:"gym_tread_sprint",d:.67},{n:"gym_tread_tired",d:1.33},{n:"gym_tread_walk",d:1.07},{n:"gym_walk_falloff",d:3.33},{n:"Pedals_fast",d:.4},{n:"Pedals_med",d:.4},{n:"Pedals_slow",d:.43},{n:"Pedals_still",d:.43}]],["HAIRCUTS",[{n:"BRB_Beard_01",d:4.5},{n:"BRB_Buy",d:4.17},{n:"BRB_Cut",d:1.7},{n:"BRB_Cut_In",d:.83},{n:"BRB_Cut_Out",d:1.33},{n:"BRB_Hair_01",d:3.83},{n:"BRB_Hair_02",d:4.5},{n:"BRB_In",d:1.33},{n:"BRB_Loop",d:2.67},{n:"BRB_Out",d:.67},{n:"BRB_Sit_In",d:2.07},{n:"BRB_Sit_Loop",d:7},{n:"BRB_Sit_Out",d:3}]],["HEIST9",[{n:"CAS_G2_GasKO",d:3.33},{n:"swt_wllpk_L",d:2.67},{n:"swt_wllpk_L_back",d:.5},{n:"swt_wllpk_R",d:3.67},{n:"swt_wllpk_R_back",d:.43},{n:"swt_wllshoot_in_L",d:1},{n:"swt_wllshoot_in_R",d:1.3},{n:"swt_wllshoot_out_L",d:2},{n:"swt_wllshoot_out_R",d:1.43},{n:"Use_SwipeCard",d:1.17}]],["INT_HOUSE",[{n:"BED_In_L",d:3.33},{n:"BED_In_R",d:3.33},{n:"BED_Loop_L",d:3.33},{n:"BED_Loop_R",d:3.33},{n:"BED_Out_L",d:3.33},{n:"BED_Out_R",d:3.33},{n:"LOU_In",d:1.83},{n:"LOU_Loop",d:3.33},{n:"LOU_Out",d:2},{n:"wash_up",d:3}]],["INT_OFFICE",[{n:"FF_Dam_Fwd",d:.67},{n:"OFF_Sit_2Idle_180",d:2.83},{n:"OFF_Sit_Bored_Loop",d:2.83},{n:"OFF_Sit_Crash",d:3.33},{n:"OFF_Sit_Drink",d:4.17},{n:"OFF_Sit_Idle_Loop",d:2.07},{n:"OFF_Sit_In",d:2.77},{n:"OFF_Sit_Read",d:3.33},{n:"OFF_Sit_Type_Loop",d:3.33},{n:"OFF_Sit_Watch",d:2}]],["INT_SHOP",[{n:"shop_cashier",d:6.67},{n:"shop_in",d:1},{n:"shop_lookA",d:2},{n:"shop_lookB",d:3},{n:"shop_loop",d:2},{n:"shop_out",d:1.33},{n:"shop_pay",d:6.67},{n:"shop_shelf",d:2.33}]],["JST_BUISNESS",[{n:"girl_01",d:3.33},{n:"girl_02",d:11.33},{n:"player_01",d:24.83},{n:"smoke_01",d:25}]],["KART",[{n:"KART_getin_LHS",d:.83},{n:"KART_getin_RHS",d:.83},{n:"KART_getout_LHS",d:.83},{n:"KART_getout_RHS",d:.83}]],["KISSING",[{n:"BD_GF_Wave",d:5.07},{n:"gfwave2",d:2.67},{n:"GF_CarArgue_01",d:5},{n:"GF_CarArgue_02",d:5},{n:"GF_CarSpot",d:5},{n:"GF_StreetArgue_01",d:5},{n:"GF_StreetArgue_02",d:5},{n:"gift_get",d:5.33},{n:"gift_give",d:5.33},{n:"Grlfrd_Kiss_01",d:4.17},{n:"Grlfrd_Kiss_02",d:5.77},{n:"Grlfrd_Kiss_03",d:7},{n:"Playa_Kiss_01",d:5},{n:"Playa_Kiss_02",d:5.77},{n:"Playa_Kiss_03",d:7}]],["KNIFE",[{n:"KILL_Knife_Ped_Damage",d:2.23},{n:"KILL_Knife_Ped_Die",d:1.93},{n:"KILL_Knife_Player",d:2.67},{n:"KILL_Partial",d:.03},{n:"knife_1",d:1},{n:"knife_2",d:.93},{n:"knife_3",d:.87},{n:"Knife_4",d:.9},{n:"knife_block",d:.47},{n:"Knife_G",d:.9},{n:"knife_hit_1",d:.57},{n:"knife_hit_2",d:.63},{n:"knife_hit_3",d:1.6},{n:"knife_IDLE",d:1.3},{n:"knife_part",d:.53},{n:"WEAPON_knifeidle",d:1.3}]],["LAPDAN1",[{n:"LAPDAN_D",d:37.73},{n:"LAPDAN_P",d:37.73}]],["LAPDAN2",[{n:"LAPDAN_D",d:46.83},{n:"LAPDAN_P",d:46.83}]],["LAPDAN3",[{n:"LAPDAN_D",d:51.47},{n:"LAPDAN_P",d:51.47}]],["LOWRIDER",[{n:"F_smklean_loop",d:4},{n:"lrgirl_bdbnce",d:2.67},{n:"lrgirl_hair",d:2.33},{n:"lrgirl_hurry",d:2.83},{n:"lrgirl_idleloop",d:2.17},{n:"lrgirl_idle_to_l0",d:2.17},{n:"lrgirl_l0_bnce",d:.67},{n:"lrgirl_l0_loop",d:2},{n:"lrgirl_l0_to_l1",d:3.67},{n:"lrgirl_l12_to_l0",d:2},{n:"lrgirl_l1_bnce",d:.67},{n:"lrgirl_l1_loop",d:2},{n:"lrgirl_l1_to_l2",d:1.33},{n:"lrgirl_l2_bnce",d:.67},{n:"lrgirl_l2_loop",d:1.5},{n:"lrgirl_l2_to_l3",d:1.5},{n:"lrgirl_l345_to_l1",d:1},{n:"lrgirl_l3_bnce",d:.67},{n:"lrgirl_l3_loop",d:2},{n:"lrgirl_l3_to_l4",d:.67},{n:"lrgirl_l4_bnce",d:.67},{n:"lrgirl_l4_loop",d:2.33},{n:"lrgirl_l4_to_l5",d:1},{n:"lrgirl_l5_bnce",d:.83},{n:"lrgirl_l5_loop",d:1.67},{n:"M_smklean_loop",d:5},{n:"M_smkstnd_loop",d:5.33},{n:"prtial_gngtlkB",d:1.47},{n:"prtial_gngtlkC",d:1.5},{n:"prtial_gngtlkD",d:2.47},{n:"prtial_gngtlkE",d:3},{n:"prtial_gngtlkF",d:2.67},{n:"prtial_gngtlkG",d:2.67},{n:"prtial_gngtlkH",d:3.33},{n:"RAP_A_Loop",d:2.67},{n:"RAP_B_Loop",d:2.67},{n:"RAP_C_Loop",d:3},{n:"Sit_relaxed",d:.03},{n:"Tap_hand",d:.33}]],["MD_CHASE",[{n:"Carhit_Hangon",d:1.53},{n:"Carhit_Tumble",d:2.03},{n:"donutdrop",d:1.5},{n:"Fen_Choppa_L1",d:1.43},{n:"Fen_Choppa_L2",d:1.3},{n:"Fen_Choppa_L3",d:1.3},{n:"Fen_Choppa_R1",d:1.3},{n:"Fen_Choppa_R2",d:1.3},{n:"Fen_Choppa_R3",d:1.3},{n:"Hangon_Stun_loop",d:4.67},{n:"Hangon_Stun_Turn",d:4},{n:"MD_BIKE_2_HANG",d:1.37},{n:"MD_BIKE_Jmp_BL",d:1.1},{n:"MD_BIKE_Jmp_F",d:1},{n:"MD_BIKE_Lnd_BL",d:.9},{n:"MD_BIKE_Lnd_Die_BL",d:1.53},{n:"MD_BIKE_Lnd_Die_F",d:.8},{n:"MD_BIKE_Lnd_F",d:1.17},{n:"MD_BIKE_Lnd_Roll",d:2.7},{n:"MD_BIKE_Lnd_Roll_F",d:1.03},{n:"MD_BIKE_Punch",d:1.83},{n:"MD_BIKE_Punch_F",d:1.83},{n:"MD_BIKE_Shot_F",d:1.33},{n:"MD_HANG_Lnd_Roll",d:2.7},{n:"MD_HANG_Loop",d:1}]],["MD_END",[{n:"END_SC1_PLY",d:5},{n:"END_SC1_RYD",d:5},{n:"END_SC1_SMO",d:5},{n:"END_SC1_SWE",d:5},{n:"END_SC2_PLY",d:9},{n:"END_SC2_RYD",d:9},{n:"END_SC2_SMO",d:9},{n:"END_SC2_SWE",d:9}]],["MEDIC",[{n:"CPR",d:8.33}]],["MISC",[{n:"bitchslap",d:1.17},{n:"BMX_celebrate",d:1.57},{n:"BMX_comeon",d:.77},{n:"bmx_idleloop_01",d:3.33},{n:"bmx_idleloop_02",d:6.67},{n:"bmx_talkleft_in",d:.67},{n:"bmx_talkleft_loop",d:6.67},{n:"bmx_talkleft_out",d:.67},{n:"bmx_talkright_in",d:.67},{n:"bmx_talkright_loop",d:7.33},{n:"bmx_talkright_out",d:.67},{n:"bng_wndw",d:7.33},{n:"bng_wndw_02",d:7.33},{n:"Case_pickup",d:1},{n:"door_jet",d:5.33},{n:"GRAB_L",d:.4},{n:"GRAB_R",d:.4},{n:"Hiker_Pose",d:.33},{n:"Hiker_Pose_L",d:.33},{n:"Idle_Chat_02",d:7.23},{n:"KAT_Throw_K",d:3.33},{n:"KAT_Throw_O",d:3.33},{n:"KAT_Throw_P",d:3.33},{n:"PASS_Rifle_O",d:1.33},{n:"PASS_Rifle_Ped",d:1.33},{n:"PASS_Rifle_Ply",d:1.33},{n:"pickup_box",d:.4},{n:"Plane_door",d:5.33},{n:"Plane_exit",d:5.33},{n:"Plane_hijack",d:5.33},{n:"Plunger_01",d:3.33},{n:"Plyrlean_loop",d:2.67},{n:"plyr_shkhead",d:1.67},{n:"Run_Dive",d:8.27},{n:"Scratchballs_01",d:8.33},{n:"SEAT_LR",d:3.67},{n:"Seat_talk_01",d:3.67},{n:"Seat_talk_02",d:3.33},{n:"SEAT_watch",d:2.33},{n:"smalplane_door",d:6.33},{n:"smlplane_door",d:5.33},{n:"MTB_back",d:.1},{n:"MTB_bunnyhop",d:.33},{n:"MTB_drivebyFT",d:.2},{n:"MTB_driveby_LHS",d:.2},{n:"MTB_driveby_RHS",d:.2},{n:"MTB_fwd",d:.2},{n:"MTB_getoffBACK",d:1.53},{n:"MTB_getoffLHS",d:.73},{n:"MTB_getoffRHS",d:.73},{n:"MTB_jumponL",d:.8},{n:"MTB_jumponR",d:.83},{n:"MTB_Left",d:.13},{n:"MTB_pedal",d:.67},{n:"MTB_pushes",d:.8},{n:"MTB_Ride",d:.03},{n:"MTB_Right",d:.13},{n:"MTB_sprint",d:.8},{n:"MTB_still",d:.03},{n:"MscleWalkst_armed",d:.2},{n:"MscleWalkst_Csaw",d:.2},{n:"Mscle_rckt_run",d:.8},{n:"Mscle_rckt_walkst",d:.2},{n:"Mscle_run_Csaw",d:.8},{n:"MuscleIdle",d:1.5},{n:"MuscleIdle_armed",d:1.5},{n:"MuscleIdle_Csaw",d:1.5},{n:"MuscleIdle_rocket",d:1.5},{n:"MuscleRun",d:.8},{n:"MuscleRun_armed",d:.8},{n:"MuscleSprint",d:.57},{n:"MuscleWalk",d:1.07},{n:"MuscleWalkstart",d:.27},{n:"MuscleWalk_armed",d:1.07},{n:"Musclewalk_Csaw",d:1.07},{n:"Musclewalk_rocket",d:1.07}]],["NEVADA",[{n:"NEVADA_getin",d:1.87},{n:"NEVADA_getout",d:.93}]],["ON_LOOKERS",[{n:"lkaround_in",d:.33},{n:"lkaround_loop",d:7},{n:"lkaround_out",d:.33},{n:"lkup_in",d:1.67},{n:"lkup_loop",d:5.33},{n:"lkup_out",d:1},{n:"lkup_point",d:3.33},{n:"panic_cower",d:6.67},{n:"panic_hide",d:6.33},{n:"panic_in",d:.83},{n:"panic_loop",d:1.67},{n:"panic_out",d:.67},{n:"panic_point",d:6},{n:"panic_shout",d:8.67},{n:"Pointup_in",d:1},{n:"Pointup_loop",d:2.67},{n:"Pointup_out",d:1},{n:"Pointup_shout",d:3},{n:"point_in",d:.5},{n:"point_loop",d:3},{n:"point_out",d:.33},{n:"shout_01",d:2.67},{n:"shout_02",d:4},{n:"shout_in",d:1.67},{n:"shout_loop",d:2},{n:"shout_out",d:.33},{n:"wave_in",d:.83},{n:"wave_loop",d:1.5},{n:"wave_out",d:.83}]],["OTB",[{n:"betslp_in",d:1.33},{n:"betslp_lkabt",d:2.67},{n:"betslp_loop",d:2.67},{n:"betslp_out",d:1},{n:"betslp_tnk",d:5.6},{n:"wtchrace_cmon",d:5},{n:"wtchrace_in",d:1.67},{n:"wtchrace_loop",d:2.67},{n:"wtchrace_lose",d:4},{n:"wtchrace_out",d:1},{n:"wtchrace_win",d:4.33}]],["PARACHUTE",[{n:"FALL_skyDive",d:1.33},{n:"FALL_SkyDive_Accel",d:1.33},{n:"FALL_skyDive_DIE",d:1},{n:"FALL_SkyDive_L",d:1.33},{n:"FALL_SkyDive_R",d:1.33},{n:"PARA_decel",d:2},{n:"PARA_decel_O",d:2},{n:"PARA_float",d:2},{n:"PARA_float_O",d:2},{n:"PARA_Land",d:1.67},{n:"PARA_Land_O",d:2.17},{n:"PARA_Land_Water",d:2.33},{n:"PARA_Land_Water_O",d:2.17},{n:"PARA_open",d:2.83},{n:"PARA_open_O",d:2.33},{n:"PARA_Rip_Land_O",d:.9},{n:"PARA_Rip_Loop_O",d:1},{n:"PARA_Rip_O",d:.23},{n:"PARA_steerL",d:2},{n:"PARA_steerL_O",d:2},{n:"PARA_steerR",d:2},{n:"PARA_steerR_O",d:2}]],["PARK",[{n:"Tai_Chi_in",d:2.17},{n:"Tai_Chi_Loop",d:12},{n:"Tai_Chi_Out",d:.83}]],["PAULNMAC",[{n:"Piss_in",d:9},{n:"Piss_loop",d:6.67},{n:"Piss_out",d:11},{n:"PnM_Argue1_A",d:4.33},{n:"PnM_Argue1_B",d:4.33},{n:"PnM_Argue2_A",d:4.33},{n:"PnM_Argue2_B",d:4.33},{n:"PnM_Loop_A",d:5.33},{n:"PnM_Loop_B",d:5.33},{n:"wank_in",d:7.33},{n:"wank_loop",d:2.67},{n:"wank_out",d:11.67}]],["ped",[{n:"abseil",d:.03},{n:"ARRESTgun",d:.67},{n:"ATM",d:12.17},{n:"BIKE_elbowL",d:.97},{n:"BIKE_elbowR",d:.97},{n:"BIKE_fallR",d:1.63},{n:"BIKE_fall_off",d:1.07},{n:"BIKE_pickupL",d:1.07},{n:"BIKE_pickupR",d:1.07},{n:"BIKE_pullupL",d:1},{n:"BIKE_pullupR",d:1},{n:"bomber",d:.6},{n:"CAR_alignHI_LHS",d:.73},{n:"CAR_alignHI_RHS",d:.73},{n:"CAR_align_LHS",d:.13},{n:"CAR_align_RHS",d:.13},{n:"CAR_closedoorL_LHS",d:.6},{n:"CAR_closedoorL_RHS",d:.4},{n:"CAR_closedoor_LHS",d:.6},{n:"CAR_closedoor_RHS",d:.4},{n:"CAR_close_LHS",d:.73},{n:"CAR_close_RHS",d:.73},{n:"CAR_crawloutRHS",d:2.17},{n:"CAR_dead_LHS",d:.03},{n:"CAR_dead_RHS",d:.03},{n:"CAR_doorlocked_LHS",d:1.33},{n:"CAR_doorlocked_RHS",d:1.27},{n:"CAR_fallout_LHS",d:.57},{n:"CAR_fallout_RHS",d:.57},{n:"CAR_getinL_LHS",d:1},{n:"CAR_getinL_RHS",d:1},{n:"CAR_getin_LHS",d:1},{n:"CAR_getin_RHS",d:1},{n:"CAR_getoutL_LHS",d:.93},{n:"CAR_getoutL_RHS",d:1},{n:"CAR_getout_LHS",d:1.13},{n:"CAR_getout_RHS",d:.8},{n:"car_hookertalk",d:4.3},{n:"CAR_jackedLHS",d:2.9},{n:"CAR_jackedRHS",d:3.43},{n:"CAR_jumpin_LHS",d:1},{n:"CAR_LB",d:.23},{n:"CAR_LB_pro",d:.1},{n:"CAR_LB_weak",d:.23},{n:"CAR_LjackedLHS",d:3.57},{n:"CAR_LjackedRHS",d:3.47},{n:"CAR_Lshuffle_RHS",d:.4},{n:"CAR_Lsit",d:.03},{n:"CAR_open_LHS",d:1.1},{n:"CAR_open_RHS",d:1.1},{n:"CAR_pulloutL_LHS",d:2.93},{n:"CAR_pulloutL_RHS",d:2.93},{n:"CAR_pullout_LHS",d:2.3},{n:"CAR_pullout_RHS",d:2.8},{n:"CAR_Qjacked",d:3.3},{n:"CAR_rolldoor",d:.6},{n:"CAR_rolldoorLO",d:.6},{n:"CAR_rollout_LHS",d:1.63},{n:"CAR_rollout_RHS",d:1.27},{n:"CAR_shuffle_RHS",d:.4},{n:"CAR_sit",d:.03},{n:"CAR_sitp",d:.03},{n:"CAR_sitpLO",d:.03},{n:"CAR_sit_pro",d:.03},{n:"CAR_sit_weak",d:.03},{n:"CAR_tune_radio",d:.63},{n:"CLIMB_idle",d:.8},{n:"CLIMB_jump",d:.57},{n:"CLIMB_jump2fall",d:.03},{n:"CLIMB_jump_B",d:.97},{n:"CLIMB_Pull",d:.87},{n:"CLIMB_Stand",d:.8},{n:"CLIMB_Stand_finish",d:.2},{n:"cower",d:.8},{n:"Crouch_Roll_L",d:.93},{n:"Crouch_Roll_R",d:.93},{n:"DAM_armL_frmBK",d:.83},{n:"DAM_armL_frmFT",d:.83},{n:"DAM_armL_frmLT",d:.67},{n:"DAM_armR_frmBK",d:.83},{n:"DAM_armR_frmFT",d:.5},{n:"DAM_armR_frmRT",d:.27},{n:"DAM_LegL_frmBK",d:.83},{n:"DAM_LegL_frmFT",d:.83},{n:"DAM_LegL_frmLT",d:.83},{n:"DAM_LegR_frmBK",d:.83},{n:"DAM_LegR_frmFT",d:.83},{n:"DAM_LegR_frmRT",d:.83},{n:"DAM_stomach_frmBK",d:.83},{n:"DAM_stomach_frmFT",d:.83},{n:"DAM_stomach_frmLT",d:.83},{n:"DAM_stomach_frmRT",d:.83},{n:"DOOR_LHinge_O",d:1.07},{n:"DOOR_RHinge_O",d:1.07},{n:"DrivebyL_L",d:.2},{n:"DrivebyL_R",d:.2},{n:"Driveby_L",d:.2},{n:"Driveby_R",d:.2},{n:"DRIVE_BOAT",d:.03},{n:"DRIVE_BOAT_back",d:.1},{n:"DRIVE_BOAT_L",d:.1},{n:"DRIVE_BOAT_R",d:.1},{n:"Drive_L",d:.13},{n:"Drive_LO_l",d:.13},{n:"Drive_LO_R",d:.13},{n:"Drive_L_pro",d:.13},{n:"Drive_L_pro_slow",d:.13},{n:"Drive_L_slow",d:.13},{n:"Drive_L_weak",d:.13},{n:"Drive_L_weak_slow",d:.13},{n:"Drive_R",d:.13},{n:"Drive_R_pro",d:.13},{n:"Drive_R_pro_slow",d:.13},{n:"Drive_R_slow",d:.13},{n:"Drive_R_weak",d:.13},{n:"Drive_R_weak_slow",d:.13},{n:"Drive_truck",d:.03},{n:"DRIVE_truck_back",d:.1},{n:"DRIVE_truck_L",d:.13},{n:"DRIVE_truck_R",d:.13},{n:"Drown",d:2.5},{n:"DUCK_cower",d:.8},{n:"endchat_01",d:2},{n:"endchat_02",d:2},{n:"endchat_03",d:2.33},{n:"EV_dive",d:2.33},{n:"EV_step",d:1.07},{n:"facanger",d:.13},{n:"facgum",d:1.03},{n:"facsurp",d:.13},{n:"facsurpm",d:.13},{n:"factalk",d:2.33},{n:"facurios",d:.13},{n:"FALL_back",d:.73},{n:"FALL_collapse",d:1},{n:"FALL_fall",d:.73},{n:"FALL_front",d:.73},{n:"FALL_glide",d:.8},{n:"FALL_land",d:.47},{n:"FALL_skyDive",d:1.33},{n:"Fight2Idle",d:.33},{n:"FightA_1",d:.43},{n:"FightA_2",d:.77},{n:"FightA_3",d:.87},{n:"FightA_block",d:.47},{n:"FightA_G",d:.93},{n:"FightA_M",d:.4},{n:"FIGHTIDLE",d:1.3},{n:"FightShB",d:.47},{n:"FightShF",d:.53},{n:"FightSh_BWD",d:.67},{n:"FightSh_FWD",d:.67},{n:"FightSh_Left",d:.67},{n:"FightSh_Right",d:.67},{n:"flee_lkaround_01",d:2},{n:"FLOOR_hit",d:.37},{n:"FLOOR_hit_f",d:.4},{n:"fucku",d:1.33},{n:"gang_gunstand",d:.03},{n:"gas_cwr",d:1},{n:"getup",d:1.37},{n:"getup_front",d:1.37},{n:"gum_eat",d:5.33},{n:"GunCrouchBwd",d:1},{n:"GunCrouchFwd",d:.73},{n:"GunMove_BWD",d:1.03},{n:"GunMove_FWD",d:1},{n:"GunMove_L",d:1},{n:"GunMove_R",d:1},{n:"Gun_2_IDLE",d:.27},{n:"GUN_BUTT",d:.43},{n:"GUN_BUTT_crouch",d:.43},{n:"Gun_stand",d:.03},{n:"handscower",d:1.93},{n:"handsup",d:.6},{n:"HitA_1",d:.3},{n:"HitA_2",d:.53},{n:"HitA_3",d:.57},{n:"HIT_back",d:.5},{n:"HIT_behind",d:.67},{n:"HIT_front",d:.6},{n:"HIT_GUN_BUTT",d:.5},{n:"HIT_L",d:.7},{n:"HIT_R",d:.6},{n:"HIT_walk",d:.33},{n:"HIT_wall",d:.7},{n:"Idlestance_fat",d:1.67},{n:"idlestance_old",d:2},{n:"IDLE_armed",d:1.47},{n:"IDLE_chat",d:6.67},{n:"IDLE_csaw",d:1.53},{n:"Idle_Gang1",d:1.67},{n:"IDLE_HBHB",d:2.67},{n:"IDLE_ROCKET",d:1.57},{n:"IDLE_stance",d:1.5},{n:"IDLE_taxi",d:.87},{n:"IDLE_tired",d:1},{n:"Jetpack_Idle",d:.03},{n:"JOG_femaleA",d:.77},{n:"JOG_maleA",d:.77},{n:"JUMP_glide",d:.5},{n:"JUMP_land",d:.23},{n:"JUMP_launch",d:.2},{n:"JUMP_launch_R",d:.2},{n:"KART_drive",d:.03},{n:"KART_L",d:.13},{n:"KART_LB",d:.03},{n:"KART_R",d:.13},{n:"KD_left",d:.9},{n:"KD_right",d:.9},{n:"KO_shot_face",d:2.1},{n:"KO_shot_front",d:.57},{n:"KO_shot_stom",d:3.17},{n:"KO_skid_back",d:.97},{n:"KO_skid_front",d:1.13},{n:"KO_spin_L",d:.87},{n:"KO_spin_R",d:.93},{n:"pass_Smoke_in_car",d:1.73},{n:"phone_in",d:2.33},{n:"phone_out",d:2},{n:"phone_talk",d:2},{n:"Player_Sneak",d:1.33},{n:"Player_Sneak_walkstart",d:.3},{n:"roadcross",d:2},{n:"roadcross_female",d:4},{n:"roadcross_gang",d:2},{n:"roadcross_old",d:4},{n:"run_1armed",d:.77},{n:"run_armed",d:.7},{n:"run_civi",d:.73},{n:"run_csaw",d:.7},{n:"run_fat",d:.8},{n:"run_fatold",d:.8},{n:"run_gang1",d:.83},{n:"run_left",d:.67},{n:"run_old",d:.8},{n:"run_player",d:.73},{n:"run_right",d:.67},{n:"run_rocket",d:.77},{n:"Run_stop",d:.87},{n:"Run_stopR",d:.8},{n:"Run_Wuzi",d:.77},{n:"SEAT_down",d:1.5},{n:"SEAT_idle",d:2},{n:"SEAT_up",d:1.17},{n:"SHOT_leftP",d:.3},{n:"SHOT_partial",d:.37},{n:"SHOT_partial_B",d:.33},{n:"SHOT_rightP",d:.33},{n:"Shove_Partial",d:.53},{n:"Smoke_in_car",d:1.73},{n:"sprint_civi",d:.53},{n:"sprint_panic",d:.6},{n:"Sprint_Wuzi",d:.67},{n:"swat_run",d:.67},{n:"Swim_Tread",d:1.3},{n:"Tap_hand",d:.03},{n:"Tap_handP",d:.03},{n:"turn_180",d:.63},{n:"Turn_L",d:.8},{n:"Turn_R",d:.8},{n:"WALK_armed",d:1.07},{n:"WALK_civi",d:1.13},{n:"WALK_csaw",d:1.07},{n:"Walk_DoorPartial",d:.8},{n:"WALK_drunk",d:3.93},{n:"WALK_fat",d:1.33},{n:"WALK_fatold",d:1.17},{n:"WALK_gang1",d:1.4},{n:"WALK_gang2",d:1.4},{n:"WALK_old",d:1.4},{n:"WALK_player",d:1.2},{n:"WALK_rocket",d:1.07},{n:"WALK_shuffle",d:1.2},{n:"WALK_start",d:.27},{n:"WALK_start_armed",d:.2},{n:"WALK_start_csaw",d:.2},{n:"WALK_start_rocket",d:.2},{n:"Walk_Wuzi",d:1.17},{n:"WEAPON_crouch",d:.8},{n:"woman_idlestance",d:5.33},{n:"woman_run",d:.77},{n:"WOMAN_runbusy",d:.67},{n:"WOMAN_runfatold",d:1.2},{n:"woman_runpanic",d:.6},{n:"WOMAN_runsexy",d:.7},{n:"WOMAN_walkbusy",d:1},{n:"WOMAN_walkfatold",d:1.2},{n:"WOMAN_walknorm",d:1.13},{n:"WOMAN_walkold",d:1.2},{n:"WOMAN_walkpro",d:1.33},{n:"WOMAN_walksexy",d:1.17},{n:"WOMAN_walkshop",d:.97},{n:"XPRESSscratch",d:3.97}]],["PLAYER_DVBYS",[{n:"Plyr_DrivebyBwd",d:.83},{n:"Plyr_DrivebyFwd",d:.83},{n:"Plyr_DrivebyLHS",d:.83},{n:"Plyr_DrivebyRHS",d:.83}]],["PLAYIDLES",[{n:"shift",d:3.6},{n:"shldr",d:2.17},{n:"stretch",d:4.6},{n:"strleg",d:3.67},{n:"time",d:5.2}]],["POLICE",[{n:"CopTraf_Away",d:1.47},{n:"CopTraf_Come",d:2.87},{n:"CopTraf_Left",d:2},{n:"CopTraf_Stop",d:2},{n:"COP_getoutcar_LHS",d:.83},{n:"Cop_move_FWD",d:1},{n:"crm_drgbst_01",d:18.57},{n:"Door_Kick",d:1.33},{n:"plc_drgbst_01",d:20.6},{n:"plc_drgbst_02",d:7.57}]],["POOL",[{n:"POOL_ChalkCue",d:4.83},{n:"POOL_Idle_Stance",d:2},{n:"POOL_Long_Shot",d:1.67},{n:"POOL_Long_Shot_O",d:1.67},{n:"POOL_Long_Start",d:.67},{n:"POOL_Long_Start_O",d:.67},{n:"POOL_Med_Shot",d:1.67},{n:"POOL_Med_Shot_O",d:1.67},{n:"POOL_Med_Start",d:.67},{n:"POOL_Med_Start_O",d:.67},{n:"POOL_Place_White",d:2.5},{n:"POOL_Short_Shot",d:1.67},{n:"POOL_Short_Shot_O",d:1.67},{n:"POOL_Short_Start",d:.67},{n:"POOL_Short_Start_O",d:.67},{n:"POOL_Walk",d:1.27},{n:"POOL_Walk_Start",d:.2},{n:"POOL_XLong_Shot",d:1.67},{n:"POOL_XLong_Shot_O",d:1.67},{n:"POOL_XLong_Start",d:.67},{n:"POOL_XLong_Start_O",d:.67}]],["POOR",[{n:"WINWASH_Start",d:.43},{n:"WINWASH_Wash2Beg",d:2.13}]],["PYTHON",[{n:"python_crouchfire",d:1.2},{n:"python_crouchreload",d:1},{n:"python_fire",d:1.17},{n:"python_fire_poor",d:1.47},{n:"python_reload",d:.93}]],["QUAD",[{n:"QUAD_back",d:.1},{n:"QUAD_driveby_FT",d:.2},{n:"QUAD_driveby_LHS",d:.2},{n:"QUAD_driveby_RHS",d:.2},{n:"QUAD_FWD",d:.2},{n:"QUAD_getoff_B",d:1.63},{n:"QUAD_getoff_LHS",d:.67},{n:"QUAD_getoff_RHS",d:.7},{n:"QUAD_geton_LHS",d:.73},{n:"QUAD_geton_RHS",d:.73},{n:"QUAD_hit",d:.03},{n:"QUAD_kick",d:1.13},{n:"QUAD_Left",d:.13},{n:"QUAD_passenger",d:.03},{n:"QUAD_reverse",d:.17},{n:"QUAD_ride",d:.03},{n:"QUAD_Right",d:.13}]],["QUAD_DBZ",[{n:"Pass_Driveby_BWD",d:.83},{n:"Pass_Driveby_FWD",d:.83},{n:"Pass_Driveby_LHS",d:.83},{n:"Pass_Driveby_RHS",d:.83}]],["RAPPING",[{n:"Laugh_01",d:5.33},{n:"RAP_A_IN",d:.83},{n:"RAP_A_Loop",d:2.67},{n:"RAP_A_OUT",d:.33},{n:"RAP_B_IN",d:1},{n:"RAP_B_Loop",d:2.67},{n:"RAP_B_OUT",d:.87},{n:"RAP_C_Loop",d:3}]],["RIFLE",[{n:"RIFLE_crouchfire",d:.87},{n:"RIFLE_crouchload",d:1.27},{n:"RIFLE_fire",d:.8},{n:"RIFLE_fire_poor",d:.8},{n:"RIFLE_load",d:1.4}]],["RIOT",[{n:"RIOT_ANGRY",d:5},{n:"RIOT_ANGRY_B",d:.63},{n:"RIOT_challenge",d:3.23},{n:"RIOT_CHANT",d:1.73},{n:"RIOT_FUKU",d:.67},{n:"RIOT_PUNCHES",d:.67},{n:"RIOT_shout",d:1}]],["ROB_BANK",[{n:"CAT_Safe_End",d:.5},{n:"CAT_Safe_Open",d:3.33},{n:"CAT_Safe_Open_O",d:3.33},{n:"CAT_Safe_Rob",d:1.83},{n:"SHP_HandsUp_Scr",d:.67}]],["ROCKET",[{n:"idle_rocket",d:1.6},{n:"RocketFire",d:.97},{n:"run_rocket",d:.77},{n:"walk_rocket",d:1.07},{n:"WALK_start_rocket",d:.2}]],["RUNNINGMAN",[{n:"Dance_B1",d:.53},{n:"Dance_B2",d:.57},{n:"Dance_B3",d:.53},{n:"Dance_B4",d:.57},{n:"Dance_B5",d:.53},{n:"Dance_B6",d:.57},{n:"Dance_B7",d:.53},{n:"Dance_B8",d:.57},{n:"Dance_B9",d:.53},{n:"Dance_B10",d:.57},{n:"Dance_B11",d:.53},{n:"Dance_B12",d:.57},{n:"Dance_B13",d:.53},{n:"Dance_B14",d:.57},{n:"Dance_B15",d:.53},{n:"Dance_B16",d:.57},{n:"Dance_G1",d:.53},{n:"Dance_G2",d:.57},{n:"Dance_G3",d:.53},{n:"Dance_G4",d:.57},{n:"Dance_G5",d:.53},{n:"Dance_G6",d:.57},{n:"Dance_G7",d:.53},{n:"Dance_G8",d:.57},{n:"Dance_G9",d:.53},{n:"Dance_G10",d:.57},{n:"Dance_G11",d:.53},{n:"Dance_G12",d:.57},{n:"Dance_G13",d:.53},{n:"Dance_G14",d:.57},{n:"Dance_G15",d:.53},{n:"Dance_G16",d:.57},{n:"dance_loop",d:1.17}]],["RUSTLER",[{n:"Plane_align_LHS",d:.73},{n:"Plane_close",d:.4},{n:"Plane_getin",d:.8},{n:"Plane_getout",d:1.57},{n:"Plane_open",d:.7}]],["RYDER",[{n:"RYD_Beckon_01",d:1.23},{n:"RYD_Beckon_02",d:1},{n:"RYD_Beckon_03",d:1.07},{n:"RYD_Die_PT1",d:4},{n:"RYD_Die_PT2",d:7.93},{n:"Van_Crate_L",d:.67},{n:"Van_Crate_R",d:.67},{n:"Van_Fall_L",d:.47},{n:"Van_Fall_R",d:.93},{n:"Van_Lean_L",d:.67},{n:"Van_Lean_R",d:.67},{n:"VAN_PickUp_E",d:1.83},{n:"VAN_PickUp_S",d:1.5},{n:"Van_Stand",d:.67},{n:"Van_Stand_Crate",d:.67},{n:"Van_Throw",d:1.37}]],["SAMP",[{n:"FishingIdle",d:1}]],["SCRATCHING",[{n:"scdldlp",d:.67},{n:"scdlulp",d:.67},{n:"scdrdlp",d:.67},{n:"scdrulp",d:.67},{n:"sclng_l",d:1},{n:"sclng_r",d:1},{n:"scmid_l",d:.47},{n:"scmid_r",d:.47},{n:"scshrtl",d:.2},{n:"scshrtr",d:.2},{n:"sc_ltor",d:.67},{n:"sc_rtol",d:.67}]],["SHAMAL",[{n:"SHAMAL_align",d:.2},{n:"SHAMAL_getin_LHS",d:1.4},{n:"SHAMAL_getout_LHS",d:1.37},{n:"SHAMAL_open",d:.6}]],["SHOP",[{n:"ROB_2Idle",d:1.17},{n:"ROB_Loop",d:2.67},{n:"ROB_Loop_Threat",d:2},{n:"ROB_Shifty",d:5.67},{n:"ROB_StickUp_In",d:.53},{n:"SHP_Duck",d:.67},{n:"SHP_Duck_Aim",d:.33},{n:"SHP_Duck_Fire",d:.83},{n:"SHP_Gun_Aim",d:.63},{n:"SHP_Gun_Duck",d:.5},{n:"SHP_Gun_Fire",d:.87},{n:"SHP_Gun_Grab",d:.87},{n:"SHP_Gun_Threat",d:.83},{n:"SHP_HandsUp_Scr",d:.67},{n:"SHP_Jump_Glide",d:.33},{n:"SHP_Jump_Land",d:.7},{n:"SHP_Jump_Launch",d:.57},{n:"SHP_Rob_GiveCash",d:3.83},{n:"SHP_Rob_HandsUp",d:2.67},{n:"SHP_Rob_React",d:2.67},{n:"SHP_Serve_End",d:5.5},{n:"SHP_Serve_Idle",d:5},{n:"SHP_Serve_Loop",d:4.17},{n:"SHP_Serve_Start",d:1.33},{n:"Smoke_RYD",d:6.67}]],["SHOTGUN",[{n:"shotgun_crouchfire",d:1.47},{n:"shotgun_fire",d:1.47},{n:"shotgun_fire_poor",d:1.5}]],["SILENCED",[{n:"CrouchReload",d:1},{n:"SilenceCrouchfire",d:.93},{n:"Silence_fire",d:.87},{n:"Silence_reload",d:.93}]],["SKATE",[{n:"skate_idle",d:1},{n:"skate_run",d:.83},{n:"skate_sprint",d:.67}]],["SMOKING",[{n:"F_smklean_loop",d:4},{n:"M_smklean_loop",d:5},{n:"M_smkstnd_loop",d:5.33},{n:"M_smk_drag",d:3.67},{n:"M_smk_in",d:6.67},{n:"M_smk_loop",d:3.33},{n:"M_smk_out",d:3},{n:"M_smk_tap",d:3}]],["SNIPER",[{n:"WEAPON_sniper",d:1.47}]],["SnM",[{n:"SnM_Caned_Idle_P",d:2},{n:"SnM_Caned_Idle_W",d:2},{n:"SnM_Caned_P",d:1.33},{n:"SnM_Caned_W",d:1.33},{n:"SnM_Cane_Idle_P",d:2},{n:"SnM_Cane_Idle_W",d:2},{n:"SnM_Cane_P",d:1.33},{n:"SnM_Cane_W",d:1.33},{n:"SpankedP",d:1.33},{n:"SpankedW",d:1.33},{n:"Spanked_IdleP",d:1.33},{n:"Spanked_IdleW",d:1.33},{n:"SpankingP",d:1.33},{n:"SpankingW",d:1.33},{n:"Spanking_endP",d:6.67},{n:"Spanking_endW",d:6.67},{n:"Spanking_IdleP",d:1.33},{n:"Spanking_IdleW",d:1.33},{n:"Spanking_SittingIdleP",d:1.33},{n:"Spanking_SittingIdleW",d:1.33},{n:"Spanking_SittingP",d:1},{n:"Spanking_SittingW",d:1}]],["SPRAYCAN",[{n:"spraycan_fire",d:2.33},{n:"spraycan_full",d:4.5}]],["STRIP",[{n:"PLY_CASH",d:1.67},{n:"PUN_CASH",d:3.33},{n:"PUN_HOLLER",d:5},{n:"PUN_LOOP",d:1.93},{n:"strip_A",d:2.07},{n:"strip_B",d:1},{n:"strip_C",d:.97},{n:"strip_D",d:1.9},{n:"strip_E",d:3.33},{n:"strip_F",d:1.03},{n:"strip_G",d:2.27},{n:"STR_A2B",d:4},{n:"STR_B2A",d:.5},{n:"STR_B2C",d:5},{n:"STR_C1",d:6},{n:"STR_C2",d:6},{n:"STR_C2B",d:1},{n:"STR_Loop_A",d:1},{n:"STR_Loop_B",d:2},{n:"STR_Loop_C",d:3}]],["SUNBATHE",[{n:"batherdown",d:3.93},{n:"batherup",d:12.3},{n:"Lay_Bac_in",d:2.33},{n:"Lay_Bac_out",d:3},{n:"ParkSit_M_IdleA",d:3.33},{n:"ParkSit_M_IdleB",d:2.67},{n:"ParkSit_M_IdleC",d:4.33},{n:"ParkSit_M_in",d:2.33},{n:"ParkSit_M_out",d:2},{n:"ParkSit_W_idleA",d:3.33},{n:"ParkSit_W_idleB",d:5},{n:"ParkSit_W_idleC",d:3},{n:"ParkSit_W_in",d:4},{n:"ParkSit_W_out",d:2.67},{n:"SBATHE_F_LieB2Sit",d:1.67},{n:"SBATHE_F_Out",d:2},{n:"SitnWait_in_W",d:4.67},{n:"SitnWait_out_W",d:2.67}]],["SWAT",[{n:"gnstwall_injurd",d:2},{n:"JMP_Wall1m_180",d:1.17},{n:"Rail_fall",d:3},{n:"Rail_fall_crawl",d:5.67},{n:"swt_breach_01",d:5.47},{n:"swt_breach_02",d:5.33},{n:"swt_breach_03",d:4.3},{n:"swt_go",d:1.67},{n:"swt_lkt",d:3},{n:"swt_sty",d:1.17},{n:"swt_vent_01",d:4.73},{n:"swt_vent_02",d:4.43},{n:"swt_vnt_sht_die",d:.67},{n:"swt_vnt_sht_in",d:1.6},{n:"swt_vnt_sht_loop",d:.27},{n:"swt_wllpk_L",d:2.67},{n:"swt_wllpk_L_back",d:.5},{n:"swt_wllpk_R",d:3.67},{n:"swt_wllpk_R_back",d:.43},{n:"swt_wllshoot_in_L",d:1},{n:"swt_wllshoot_in_R",d:1.3},{n:"swt_wllshoot_out_L",d:2},{n:"swt_wllshoot_out_R",d:1.43}]],["SWEET",[{n:"ho_ass_slapped",d:2},{n:"LaFin_Player",d:26.67},{n:"LaFin_Sweet",d:26.67},{n:"plyr_hndshldr_01",d:4},{n:"sweet_ass_slap",d:2},{n:"sweet_hndshldr_01",d:4},{n:"Sweet_injuredloop",d:2}]],["SWIM",[{n:"Swim_Breast",d:1.3},{n:"SWIM_crawl",d:.9},{n:"Swim_Dive_Under",d:1.07},{n:"Swim_Glide",d:1.47},{n:"Swim_jumpout",d:.33},{n:"Swim_Tread",d:1.3},{n:"Swim_Under",d:1.5}]],["SWORD",[{n:"sword_1",d:.87},{n:"sword_2",d:1.07},{n:"sword_3",d:.8},{n:"sword_4",d:1.1},{n:"sword_block",d:.47},{n:"Sword_Hit_1",d:.83},{n:"Sword_Hit_2",d:1.03},{n:"Sword_Hit_3",d:.87},{n:"sword_IDLE",d:1},{n:"sword_part",d:.67}]],["TANK",[{n:"TANK_align_LHS",d:1.43},{n:"TANK_close_LHS",d:.33},{n:"TANK_doorlocked",d:.53},{n:"TANK_getin_LHS",d:.43},{n:"TANK_getout_LHS",d:1.97},{n:"TANK_open_LHS",d:.3}]],["TATTOOS",[{n:"TAT_ArmL_In_O",d:.83},{n:"TAT_ArmL_In_P",d:.83},{n:"TAT_ArmL_In_T",d:.83},{n:"TAT_ArmL_Out_O",d:.93},{n:"TAT_ArmL_Out_P",d:2.5},{n:"TAT_ArmL_Out_T",d:.93},{n:"TAT_ArmL_Pose_O",d:.83},{n:"TAT_ArmL_Pose_P",d:.83},{n:"TAT_ArmL_Pose_T",d:.83},{n:"TAT_ArmR_In_O",d:.83},{n:"TAT_ArmR_In_P",d:.83},{n:"TAT_ArmR_In_T",d:.83},{n:"TAT_ArmR_Out_O",d:1},{n:"TAT_ArmR_Out_P",d:2.5},{n:"TAT_ArmR_Out_T",d:1},{n:"TAT_ArmR_Pose_O",d:.83},{n:"TAT_ArmR_Pose_P",d:.83},{n:"TAT_ArmR_Pose_T",d:.83},{n:"TAT_Back_In_O",d:.83},{n:"TAT_Back_In_P",d:.83},{n:"TAT_Back_In_T",d:.83},{n:"TAT_Back_Out_O",d:.93},{n:"TAT_Back_Out_P",d:2.5},{n:"TAT_Back_Out_T",d:.93},{n:"TAT_Back_Pose_O",d:.83},{n:"TAT_Back_Pose_P",d:.83},{n:"TAT_Back_Pose_T",d:.83},{n:"TAT_Back_Sit_In_P",d:.83},{n:"TAT_Back_Sit_Loop_P",d:2.67},{n:"TAT_Back_Sit_Out_P",d:.83},{n:"TAT_Bel_In_O",d:.83},{n:"TAT_Bel_In_T",d:.83},{n:"TAT_Bel_Out_O",d:.97},{n:"TAT_Bel_Out_T",d:.97},{n:"TAT_Bel_Pose_O",d:.83},{n:"TAT_Bel_Pose_T",d:.83},{n:"TAT_Che_In_O",d:.83},{n:"TAT_Che_In_P",d:.83},{n:"TAT_Che_In_T",d:.83},{n:"TAT_Che_Out_O",d:.93},{n:"TAT_Che_Out_P",d:2.5},{n:"TAT_Che_Out_T",d:.93},{n:"TAT_Che_Pose_O",d:.83},{n:"TAT_Che_Pose_P",d:.83},{n:"TAT_Che_Pose_T",d:.83},{n:"TAT_Drop_O",d:.5},{n:"TAT_Idle_Loop_O",d:2.67},{n:"TAT_Idle_Loop_T",d:2.67},{n:"TAT_Sit_In_O",d:2.33},{n:"TAT_Sit_In_P",d:2.33},{n:"TAT_Sit_In_T",d:2.33},{n:"TAT_Sit_Loop_O",d:2.67},{n:"TAT_Sit_Loop_P",d:2.67},{n:"TAT_Sit_Loop_T",d:2.67},{n:"TAT_Sit_Out_O",d:2.83},{n:"TAT_Sit_Out_P",d:2.17},{n:"TAT_Sit_Out_T",d:2.83}]],["TEC",[{n:"TEC_crouchfire",d:.97},{n:"TEC_crouchreload",d:1.33},{n:"TEC_fire",d:1.1},{n:"TEC_reload",d:1.5}]],["TRAIN",[{n:"tran_gtup",d:3.17},{n:"tran_hng",d:2.33},{n:"tran_ouch",d:1.17},{n:"tran_stmb",d:2.33}]],["TRUCK",[{n:"TRUCK_ALIGN_LHS",d:.57},{n:"TRUCK_ALIGN_RHS",d:.57},{n:"TRUCK_closedoor_LHS",d:.4},{n:"TRUCK_closedoor_RHS",d:.4},{n:"TRUCK_close_LHS",d:.73},{n:"TRUCK_close_RHS",d:.73},{n:"TRUCK_getin_LHS",d:.6},{n:"TRUCK_getin_RHS",d:.6},{n:"TRUCK_getout_LHS",d:.8},{n:"TRUCK_getout_RHS",d:.8},{n:"TRUCK_jackedLHS",d:1.73},{n:"TRUCK_jackedRHS",d:1.5},{n:"TRUCK_open_LHS",d:.53},{n:"TRUCK_open_RHS",d:.53},{n:"TRUCK_pullout_LHS",d:.9},{n:"TRUCK_pullout_RHS",d:.9},{n:"TRUCK_Shuffle",d:.4}]],["UZI",[{n:"UZI_crouchfire",d:.63},{n:"UZI_crouchreload",d:1.37},{n:"UZI_fire",d:.57},{n:"UZI_fire_poor",d:.53},{n:"UZI_reload",d:1.4}]],["VAN",[{n:"VAN_close_back_LHS",d:.33},{n:"VAN_close_back_RHS",d:.33},{n:"VAN_getin_Back_LHS",d:.6},{n:"VAN_getin_Back_RHS",d:.6},{n:"VAN_getout_back_LHS",d:.63},{n:"VAN_getout_back_RHS",d:.63},{n:"VAN_open_back_LHS",d:.97},{n:"VAN_open_back_RHS",d:.97}]],["VENDING",[{n:"VEND_Drink2_P",d:3.33},{n:"VEND_Drink_P",d:1.33},{n:"vend_eat1_P",d:4.33},{n:"VEND_Eat_P",d:1.67},{n:"VEND_Use",d:2.6},{n:"VEND_Use_pt2",d:.4}]],["VORTEX",[{n:"CAR_jumpin_LHS",d:1},{n:"CAR_jumpin_RHS",d:.93},{n:"vortex_getout_LHS",d:1},{n:"vortex_getout_RHS",d:1}]],["WAYFARER",[{n:"WF_Back",d:.1},{n:"WF_drivebyFT",d:.2},{n:"WF_drivebyLHS",d:.2},{n:"WF_drivebyRHS",d:.2},{n:"WF_Fwd",d:.2},{n:"WF_getoffBACK",d:1.73},{n:"WF_getoffLHS",d:.9},{n:"WF_getoffRHS",d:.9},{n:"WF_hit",d:.03},{n:"WF_jumponL",d:.9},{n:"WF_jumponR",d:.9},{n:"WF_kick",d:1.03},{n:"WF_Left",d:.13},{n:"WF_passenger",d:.03},{n:"WF_pushes",d:.97},{n:"WF_Ride",d:.03},{n:"WF_Right",d:.13},{n:"WF_Still",d:.03}]],["WEAPONS",[{n:"SHP_1H_Lift",d:1},{n:"SHP_1H_Lift_End",d:.33},{n:"SHP_1H_Ret",d:.83},{n:"SHP_1H_Ret_S",d:.33},{n:"SHP_2H_Lift",d:.93},{n:"SHP_2H_Lift_End",d:.33},{n:"SHP_2H_Ret",d:.9},{n:"SHP_2H_Ret_S",d:.33},{n:"SHP_Ar_Lift",d:1},{n:"SHP_Ar_Lift_End",d:.33},{n:"SHP_Ar_Ret",d:1.17},{n:"SHP_Ar_Ret_S",d:.33},{n:"SHP_G_Lift_In",d:.67},{n:"SHP_G_Lift_Out",d:.67},{n:"SHP_Tray_In",d:.67},{n:"SHP_Tray_Out",d:.67},{n:"SHP_Tray_Pose",d:2.67}]],["WOP",[{n:"Dance_B1",d:1.13},{n:"Dance_B2",d:1.17},{n:"Dance_B3",d:1.13},{n:"Dance_B4",d:1.17},{n:"Dance_B5",d:1.13},{n:"Dance_B6",d:1.17},{n:"Dance_B7",d:1.13},{n:"Dance_B8",d:1.17},{n:"Dance_B9",d:1.13},{n:"Dance_B10",d:1.17},{n:"Dance_B11",d:1.13},{n:"Dance_B12",d:1.17},{n:"Dance_B13",d:1.13},{n:"Dance_B14",d:1.17},{n:"Dance_B15",d:1.13},{n:"Dance_B16",d:1.17},{n:"Dance_G1",d:1.13},{n:"Dance_G2",d:1.17},{n:"Dance_G3",d:1.13},{n:"Dance_G4",d:1.17},{n:"Dance_G5",d:1.13},{n:"Dance_G6",d:1.17},{n:"Dance_G7",d:1.13},{n:"Dance_G8",d:1.17},{n:"Dance_G9",d:1.13},{n:"Dance_G10",d:1.17},{n:"Dance_G11",d:1.13},{n:"Dance_G12",d:1.17},{n:"Dance_G13",d:1.13},{n:"Dance_G14",d:1.17},{n:"Dance_G15",d:1.13},{n:"Dance_G16",d:1.17},{n:"dance_loop",d:1.17}]],["WUZI",[{n:"CS_Dead_Guy",d:5.07},{n:"CS_Plyr_pt1",d:3.77},{n:"CS_Plyr_pt2",d:9.67},{n:"CS_Wuzi_pt1",d:3.77},{n:"CS_Wuzi_pt2",d:9.67},{n:"Walkstart_Idle_01",d:3.17},{n:"Wuzi_follow",d:3},{n:"Wuzi_Greet_Plyr",d:4},{n:"Wuzi_Greet_Wuzi",d:4},{n:"Wuzi_grnd_chk",d:4},{n:"Wuzi_stand_loop",d:2.67},{n:"Wuzi_Walk",d:1.17}]]]),p1=e=>{const t=P1.get(e);return t===void 0?!1:t},Ct=(e,t)=>{const n=p1(e);if(n)return n.find(r=>r.n===t)?.d},le=new Map,_e=(e,t=!1)=>{const n=le.get(e);return n?(t&&n.reject("[Player]: An attempt to check the player client response timed out"),clearTimeout(n.timeout),le.delete(e),!0):!1};$o((e,t,n,r)=>{const i=le.get(e);return i?(clearTimeout(i.timeout),setTimeout(()=>i.resolve({actionid:t,memaddr:n,retndata:r})),1):0});class D{map=new Map;on(t,n){let r=this.map.get(t);r||(r=new Set,this.map.set(t,r)),r.add(n)}emit(t,n){const r=this.map.get(t);!r||[...r].forEach(i=>i(n))}off(t,n){if(!t){this.map.clear();return}if(!n){this.map.delete(t);return}const r=this.map.get(t);!r||r.delete(n)}}var k=(e=>(e.pause="OnPlayerPause",e.create="OnPlayerEventCreate",e.setCommonProp="OnPlayerSetCommonProp",e))(k||{});const M=new D;class O{_id;_isNpc;_locale=$d;_charset=L;_isRecording=!1;lastDrunkLevel=0;lastFps=0;isPaused=!1;lastUpdateTick=0;get id(){return this._id}get locale(){return this._locale}set locale(t){M.emit(k.setCommonProp,{player:this,prop:"_locale",value:t})}get charset(){return this._charset}set charset(t){M.emit(k.setCommonProp,{player:this,prop:"_charset",value:t})}get isRecording(){return this._isRecording}set isRecording(t){M.emit(k.setCommonProp,{player:this,prop:"_isRecording",value:t})}constructor(t){this._id=t,this._isNpc=Vl(this.id)}sendClientMessage(t,n){return ut(this,t,n)}static sendClientMessageToAll(t,n,r){qd(t,n,r)}sendPlayerMessage(t,n){return yt(t,this.id,n)}sendPlayerMessageToAll(t,n){return eo(t,this.id,n)}isNpc(){return this._isNpc}getFps(){return this.lastFps}getDrunkLevel(){return pc(this.id)}setDrunkLevel(t){if(t<0||t>5e4)return l.error(new Error("[Player]: player's drunk level ranges from 0 to 50000"));Ac(this.id,t)}allowTeleport(t){ea(this.id,t)}isTeleportAllowed(){return ta(this.id)}enableCameraTarget(t){Zh(this.id,t)}enableStuntBonus(t){ru(this.id,t)}getInterior(){return sc(this.id)}setInterior(t){return ac(this.id,t)}showPlayerNameTag(t,n){vh(this.id,t.id,n)}setColor(t){Ic(this.id,t)}getColor(){return Cc(this.id)}setPlayerMarker(t,n){Hh(this.id,t.id,n)}resetMoney(){return Bc(this.id)}getMoney(){return Oc(this.id)}giveMoney(t){return bc(this.id,t)}resetWeapons(){return Dc(this.id)}spawn(){return this.isSpectating()?(this.toggleSpectating(!1),1):Q_(this.id)}setHealth(t){return dc(this.id,t)}getHealth(){return oc(this.id)}toggleClock(t){return Hc(this.id,t)}toggleControllable(t){return bh(this.id,t)}toggleSpectating(t){return au(this.id,t)}spectatePlayer(t,n=oe.NORMAL){return su(this.id,t.id,n)}spectateVehicle(t,n=oe.NORMAL){return du(this.id,t.id,n)}forceClassSelection(){xc(this.id)}kick(){Wl(this.id)}ban(){Kl(this.id)}banEx(t,n){co(this.id,t,n)}isAdmin(){return Ul(this.id)}isInRangeOfPoint(t,n,r,i){return nc(this.id,t,n,r,i)}isStreamedIn(t){return ic(this.id,t.id)}setSkin(t,n=!1){return!n&&(t<0||t>311||t==74)||this.getHealth()<=0||this.isInAnyVehicle()||this.getSpecialAction()===Le.DUCK?0:fc(this.id,t)}getSkin(){return Ec(this.id)}isInAnyVehicle(){return eu(this.id)}getSpecialAction(){return Gh(this.id)}setSpecialAction(t){return Mh(this.id,t)}setScore(t){return gc(this.id,t)}getScore(){return Pc(this.id)}getPing(){return kc(this.id)||0}setPos(t,n,r){return pt(this.id,t,n,r)}getPos(){if(this.isSpectating()||this.isWasted()||this.getState()===N.NONE)return;const[t,n,r]=q_(this.id);return{x:t,y:n,z:r}}isSpectating(){return this.getState()===N.SPECTATING}isWasted(){return this.getState()===N.WASTED}getState(){return wc(this.id)}getVersion(){return this.isNpc()?"":m1(this.id)}setVirtualWorld(t){return tu(this.id,t)}getVirtualWorld(){return nu(this.id)}removeFromVehicle(){return Rh(this.id)}setWantedLevel(t){return t<0||t>6?(l.error("[Player]: player's wanted level ranges from 0 to 6"),0):Vc(this.id,t)}getWantedLevel(){return Uc(this.id)}setFacingAngle(t){return ec(this.id,t)}getFacingAngle(){return tc(this.id)}setWeather(t){if(t<0||t>255){l.warn("[Player]: The valid weather value is only 0 to 255");return}vc(this.id,t)}getWeather(){return na(this.id)}setTime(t,n){if(t<0||t>23){l.warn("[Player]: The valid hour value is only 0 to 23");return}if(n<0||n>59){l.warn("[Player]: The valid minute value is only 0 to 59");return}return Fc(this.id,t,n)}getTime(){const[t,n]=Nc(this.id);return{hour:t,minute:n}}removeBuilding(t,n,r,i,a){eh(this.id,t,n,r,i,a)}setTeam(t){t<0||t>C.NO_TEAM||mc(this.id,t)}getTeam(){return Sc(this.id)}setSkillLevel(t,n){if(n<0||n>999){l.warn("[Player]: The valid skill level is only 0 to 999");return}Qc(this.id,t,n)}getName(){return lo(this)}setName(t){return _o(this,t)}setVelocity(t,n,r){return jc(this.id,t,n,r)}getVelocity(){const[t,n,r]=Zc(this.id);return{x:t,y:n,z:r}}getKeys(){const[t,n,r]=Mc(this.id);return{keys:t,updown:n,leftright:r}}getIp(){return u1(this.id)}getFightingStyle(){return Kc(this.id)}setFightingStyle(t){Wc(this.id,t)}setArmour(t){return lc(this.id,t)}getArmour(){return _c(this.id)}setCameraBehind(){return Uh(this.id)}setCameraPos(t,n,r){return xh(this.id,t,n,r)}setCameraLookAt(t,n,r,i){return Vh(this.id,t,n,r,i)}getCameraAspectRatio(){return Yh(this.id)}getCameraFrontVector(){const[t,n,r]=Kh(this.id);return{x:t,y:n,z:r}}getCameraMode(){return jh(this.id)}getCameraPos(){const[t,n,r]=Wh(this.id);return{x:t,y:n,z:r}}getCameraTargetPlayer(t){const n=Xh(this.id);return t.find(r=>r.id===n)}getCameraTargetVehicle(t){const n=zh(this.id);return t.find(r=>r.id===n)}getCameraZoom(){return Jh(this.id)}playAudioStream(t,n=0,r=0,i=0,a=5){let s=!1;return(n!==0||r!==0||i!==0)&&(s=!0),Xc(this.id,t,n,r,i,a,s)}stopAudioStream(){Yc(this.id)}playSound(t,n=0,r=0,i=0){return Bh(this.id,t,n,r,i)}static getPoolSize(){return Sl()}static getMaxPlayers(){return yl()}playCrimeReport(t,n){return n<3||n>22?(l.warn("[Player]: Available crime ids range from 3 to 22"),0):zc(this.id,t.id,n)}interpolateCameraPos(t,n,r,i,a,s,o,_=de.CUT){Qh(this.id,t,n,r,i,a,s,o,_)}interpolateCameraLookAt(t,n,r,i,a,s,o,_=de.CUT){$h(this.id,t,n,r,i,a,s,o,_)}createExplosion(t,n,r,i,a){return i<0||i>13?(l.error("[Player]: The valid explosion type value is only 0 to 13"),0):hu(this.id,t,n,r,i,a)}static isConnected(t){return At(t)}isConnected(){return At(this.id)}disableRemoteVehicleCollisions(t){return Fh(this.id,t)}getVehicle(t){if(!this.isInAnyVehicle())return;const n=Dh(this.id);return t.find(r=>r.id===n)}getVehicleSeat(){return Lh(this.id)}getSurfingVehicle(t){const n=$c(this.id);if(n!==C.VEHICLE_ID)return t.find(r=>r.id===n)}applyAnimation(t,n,r=!1,i=!0,a=!0,s=!1,o=!1){const _=Ct(t,n);if(_===void 0)return l.error("[Player]: Invalid anim library or name");Oh(this.id,t,n,4.1,r,i,a,s,r?0:_,o)}clearAnimations(t=!1){wh(this.id,t)}getAnimationIndex(){return kh(this.id)}getAnimationName(){const[t,n]=y1(this.getAnimationIndex());return{animLib:t,animName:n}}setShopName(t){Jc(this.id,t)}setPosFindZ(t,n,r=150){return new Promise(i=>{pt(this.id,t,n,r),setTimeout(()=>i($_(this.id,t,n,r)))})}setWorldBounds(t,n,r,i){Nh(this.id,t,n,r,i)}setChatBubble(t,n,r,i){Eh(this.id,t,n,r,i)}getDistanceFromPoint(t,n,r){return rc(this.id,t,n,r)}getCustomSkin(){return d1(this.id)}getTargetPlayer(t){const n=yc(this.id);if(n!==C.PLAYER_ID)return t.find(r=>r.id===n)}getLastShotVectors(){const[t,n,r,i,a,s]=th(this.id);return{fOriginX:t,fOriginY:n,fOriginZ:r,fHitPosX:i,fHitPosY:a,fHitPosZ:s}}getWeapon(){return Gc(this.id)}getWeaponData(t){if(t<0||t>12){l.error("[Player]: weapon slots range from 0 to 12");return}const[n,r]=Rc(this.id,t);return{weapons:n,ammo:r}}getWeaponState(){return uc(this.id)}giveWeapon(t,n){return Tc(this.id,t,n)}setAmmo(t,n){return cc(this.id,t,n)}getAmmo(){return hc(this.id)}setArmedWeapon(t){return Lc(this.id,t)}clearDeathMessage(){for(let t=0;t<5;t++)this.sendDeathMessageToPlayer(C.PLAYER_ID,C.PLAYER_ID,Re.CONNECT)}sendDeathMessage(t,n){dl(t===C.PLAYER_ID?t:t.id,this.id,n)}sendDeathMessageToPlayer(t,n,r){ol(this.id,t===C.PLAYER_ID?t:t.id,n===C.PLAYER_ID?n:n.id,r)}setSpawnInfo(t,n,r,i,a,s,o,_,c,u,y,S){t<0||t>C.NO_TEAM||n<0||n>311||n==74||_<0||u<0||S<0||J_(this.id,t,n,r,i,a,s,o,_,c,u,y,S)}redirectDownload(t){return o1(this.id,t)}sendClientCheck(t,n,r,i){const a=[2,5,69,70,71,72];return a.includes(t)?new Promise((s,o)=>{if(_e(this.id,!0),this.isPaused)return o("[Player]: An attempt to check the player client response, but the player paused the game");const _=new Promise((c,u)=>{const y=this.getPing(),S=(y>=200?0:y)+200;le.set(this.id,{resolve:c,reject:u,timeout:setTimeout(()=>_e(this.id,!0),S)}),uu(this.id,t,n,r,i)});_.then(s,o),_.finally(()=>_e(this.id))}):l.error(`[Player]: sendClientCheck valid types are ${a.toString()}`)}selectTextDraw(t){_u(this.id,t)}cancelSelectTextDraw(){cu(this.id)}beginObjectSelecting(){z_(this.id)}endObjectEditing(){X_(this.id)}getSurfingObject(t){const n=qc(this.id);if(n!==C.OBJECT_ID)return t.get(n)}isAttachedObjectSlotUsed(t){return ih(this.id,t)}setAttachedObject(t,n,r,i,a,s,o,_,c,u,y,S,I,f){return this.isAttachedObjectSlotUsed(t)?0:nh(this.id,t,n,r,i,a,s,o,_,c,u,y,S,I,f)}removeAttachedObject(t){return this.isAttachedObjectSlotUsed(t)?rh(this.id,t):0}toggleWidescreen(t){return ra(this.id,t)}isPlayerWidescreenToggled(){return ia(this.id)}getSpawnInfo(){return aa(this.id)}getSkillLevel(t){return sa(this.id,t)}isCheckpointActive(){return da(this.id)}getCheckpoint(){return oa(this.id)}isRaceCheckpointActive(){return la(this.id)}getRaceCheckpoint(){return _a(this.id)}getWorldBounds(){ca(this.id)}isInModShop(){return ha(this.id)}getSirenState(){return ua(this.id)}getLandingGearState(){return ya(this.id)}getHydraReactorAngle(){return ma(this.id)}getTrainSpeed(){return Sa(this.id)}getZAim(){return ga(this.id)}getSurfingOffsets(){return Pa(this.id)}getRotationQuat(){return pa(this.id)}getDialogID(){return Aa(this.id)}getSpectateID(){return Ia(this.id)}getSpectateType(){return Ca(this.id)}getRawIp(){return fa(this.id)}setGravity(t){return Ea(this.id,t)}getGravity(){return Ta(this.id)}setAdmin(t){return Da(this.id,t)}isSpawned(){return La(this.id)}isControllable(){return Ra(this.id)}isCameraTargetEnabled(){return ba(this.id)}toggleGhostMode(t){return Ba(this.id,t)}getGhostMode(){return Oa(this.id)}getBuildingsRemoved(){return wa(this.id)}getAttachedObject(t){return ka(this.id,t)}removeWeapon(t){return Ga(this.id,t)}isUsingOfficialClient(){return Ma(this.id)}allowWeapons(t){return Fa(this.id,t)}areWeaponsAllowed(){return Na(this.id)}gpci(t){return Z_(this.id,t)}}let ce=null,he=null;M.on(k.create,e=>{he===null&&(he=e)}),gt(()=>(!ce&&he&&O.getPoolSize()>-1&&(ce=setInterval(()=>{for(const e of he){const t=e[1];!t.isNpc()&&!t.isPaused&&t.getState()!==N.NONE&&Date.now()-t.lastUpdateTick>1e3&&M.emit(k.pause,t)}},500)),1)),Pt(()=>(ce&&O.getPoolSize()<=0&&clearInterval(ce),1));class A1{eventMap=new Map;on=(t,n,r)=>(n instanceof Array||(n=[n]),n.forEach(i=>{const a=this.eventMap.get(i);if(!a)this.eventMap.set(i,new Map().set(t,r instanceof Array?r:[r]));else{const s=a.get(t);s?(r instanceof Array?r:[r]).forEach(o=>s.push(o)):a.set(t,r instanceof Array?r:[r])}}),()=>this.off(t,n,r));off=(t,n,r)=>{n instanceof Array||(n=[n]),n.forEach(i=>{const a=this.eventMap.get(i);if(!a)return;const s=a.get(t);if(s){r instanceof Array||(r=[r]);for(let o=0;o<s.length;o++){const _=s[o];!r.includes(_)||(s.splice(o,1),o--)}}})}}const Be={format:{code:0,msg:"failed to recognize command (almost never)"},notExist:{code:1,msg:"command does not exist"},rejected:{code:2,msg:"rejected because true/1 was not returned"}};class j{players=new Map;static cmdBus=new A1;constructor(t){gt(n=>{const r=t(n);return this.players.set(n,r),h(this,"onConnect")(r)}),Pt((n,r)=>{const i=this.findPlayerById(n);if(!i)return 0;T.close(i),_e(n,!0);const a=h(this,"onDisconnect")(i,r);return this.players.delete(n),a}),no((n,r)=>{const i=this.findPlayerById(n);return i?h(this,"onText",0)(i,A.decodeFromBuf(r,i.charset)):1}),ro((n,r)=>{const i=this.findPlayerById(n);if(!i)return 0;const a=A.decodeFromBuf(r,i.charset),s=a.match(/[^/\s]+/gi);return s===null||s.length===0?(this.onCommandError&&this.onCommandError(i,a,Be.format),0):(this.promiseCommand(i,s),1)}),Ro((n,r,i)=>{const a=this.findPlayerById(n);return a?h(this,"onEnterExitModShop")(a,r,i):0}),Wo((n,r,i,a)=>{const s=this.findPlayerById(n);return s?h(this,"onClickMap")(s,r,i,a):0}),Qo((n,r,i)=>{const a=this.findPlayerById(n);if(!a)return 0;const s=this.findPlayerById(r);return s?h(this,"onClickPlayer")(a,s,i):0}),po((n,r,i)=>{const a=h(this,"onDeath"),s=this.findPlayerById(n);if(!s)return 0;if(r===C.PLAYER_ID)return a(s,r,i);const o=this.findPlayerById(r);return o?a(s,o,i):0}),Uo((n,r,i,a,s)=>{const o=this.findPlayerById(n);if(!o)return 0;const _=this.findPlayerById(r);return _?h(this,"onGiveDamage")(o,_,i,a,s):0}),Mo((n,r,i)=>{const a=this.findPlayerById(n);return a?h(this,"onKeyStateChange")(a,r,i):0}),Co((n,r)=>{const i=this.findPlayerById(n);return i?h(this,"onRequestClass")(i,r):0}),Do(n=>{const r=this.findPlayerById(n);return r?h(this,"onRequestSpawn")(r):0}),Po(n=>{const r=this.findPlayerById(n);return r?h(this,"onSpawn")(r):0}),To((n,r,i)=>{const a=this.findPlayerById(n);return a?(i===N.NONE&&(a.lastUpdateTick=Date.now()),h(this,"onStateChange")(a,r,i)):0}),No((n,r)=>{const i=this.findPlayerById(n);if(!i)return 0;const a=this.findPlayerById(r);return a?h(this,"onStreamIn")(i,a):0}),Ho((n,r)=>{const i=this.findPlayerById(n);if(!i)return 0;const a=this.findPlayerById(r);return a?h(this,"onStreamOut")(i,a):0}),Vo((n,r,i,a,s)=>{const o=this.findPlayerById(n);if(!o)return 0;if(r===C.PLAYER_ID)return h(this,"onTakeDamage")(o,r,i,a,s);const _=this.findPlayerById(r);return _?h(this,"onTakeDamage")(o,_,i,a,s):0}),Fo(n=>{const r=this.findPlayerById(n);if(!r)return 0;if(!r.isNpc()){const a=Date.now();r.isPaused&&(r.isPaused=!1,this.onResume&&this.onResume(r,a-r.lastUpdateTick)),r.lastUpdateTick=a,j.fpsHeartbeat(r)}const i=h(this,"throttleUpdate")(r);return i===void 0?0:i}),Go((n,r,i)=>{const a=this.findPlayerById(n);return a?h(this,"onInteriorChange")(a,r,i):0}),Jo((n,r,i)=>{const a=this.findPlayerById(n);return a?h(this,"onRequestDownload")(a,r,i):0}),Yo((n,r)=>{const i=this.findPlayerById(n);return i?h(this,"onFinishedDownloading")(i,r):0}),M.emit(k.create,this.players),M.on(k.pause,n=>{n.isPaused=!0,this.onPause&&this.onPause(n,n.lastUpdateTick)}),M.on(k.setCommonProp,({player:n,prop:r,value:i})=>{Reflect.set(n,r,i),this.players.set(n.id,n)})}findPlayerById(t){return this.players.get(t)}getPlayersArr(){return[...this.players.values()]}getPlayersMap(){return this.players}throttleUpdate=Ge(t=>this.onUpdate&&this.onUpdate(t),60);static fpsHeartbeat=Ge(t=>{if(!O.isConnected(t.id))return;const n=t.getDrunkLevel();if(n<100){t.setDrunkLevel(2e3),t.lastDrunkLevel=2e3,t.lastFps=0;return}t.lastFps=t.lastDrunkLevel-n-1,t.lastDrunkLevel=n},1e3);onCommandText=(t,n)=>j.cmdBus.on(this,t,n);offCommandText=(t,n)=>{j.cmdBus.off(this,t,n)};promiseCommand=async(t,n)=>{const r=n.join(" "),i=n[0],a=j.cmdBus.eventMap.get(i);if(!a&&this.onCommandError){this.onCommandError(t,r,Be.notExist);return}const s=a?.get(this);if(!s)return;let o=this.onCommandReceived&&this.onCommandReceived(t,r);if(o!==void 0&&(o instanceof Promise&&(o=await o),!o))return mt();s.forEach(async _=>{let c=_.call(this,t,...n.slice(1));if(c instanceof Promise&&(c=await c),c==null&&(c=!1),c){let u=this.onCommandPerformed&&this.onCommandPerformed(t,r);return u instanceof Promise&&(u=await u),u?void 0:mt()}h(this,"onCommandError")(t,r,Be.rejected)})}}const I1=[8,9,10,25,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,96,97,98],C1=[[13,18,19,20,21,24],[1,3,4,5,6,7,13,17,19,20,142,143,144,145],[],[],[0,2,7,13,16,17,19,20,21],[0,1,14,18,19,20,21,23],[],[],[],[],[1,3,7,13,17,19,20,21,23,24],[],[],[],[],[1,3,7,17,18,19,23],[],[],[2,6,16,20,21],[],[1,3,4,5,19,21],[0,14,16,18,19,20,21,23],[7,13,17,19,20,21],[],[],[],[1,3,4,5,6,19,21],[],[],[],null,[],[],[],[],[],[1,3,6,7,13,17,19,20,21,22],[],[],[1,3,7,13,17,23,142,143,144,145],[],[],[],[],[],[],null,[],null,null,[],[],null,null,null,[],[],[],[],[],[],null,null,null,[],[],[],[],null,[],[],[],null,null,[],[],[],[6,7,17,18,19,20,21],[4,5,12,13,20,21,22,24],[],[],null,[],[],null,[],[],[],[],[0,2,4,5,6,13,16,18,19,20,24],[],[3,7,14,17,18,19,20,21,23,142,143,144,145],[0,4,5,6,16],null,[],[],[1,2,3,6,7,11,17,19,20,23,142,143],[],[],[],[13,19,20,21,24],[],[],[],[],[],[],[],[],null,null,[],[],[],[],[],[0,2,4,7,15,16,17,18,19,20,21],[2,3,7,16,17,18,19,20,23,142,143,144,145],[1,3,5,6,7,13,17,18,20,23,142,143,144,145],[],[],null,null,null,[],[],[],[1,7,14,15,17,18,20,21],[],[1,3,6,7,11,12,17,18,19,20,23],[],[],[],[],[100,101,106,122,123,124,125,126,127,178,179,180,185],[109,110,113,114,115,116,117,118,119,120,121],[103,104,105,107,108,128,181,182,183,184],null,null,[],[1,4,6,7,17,18,19,20,23,24,142,143,144,145],[],[14,15,18,19,20,21,144,145],[],[],[],[1,2,4,6,7,17,18,19,23,24,142,143,144,145],[0,3,16,18,19,20,21,142,143],[],[1,3,7,11,12,17,18,19,20,23,142,143,144,145],[1,3,4,5,6,18,19,20,23,142,143,144,145],[2,3,5,6,16,18,19,20,21,23],[],[],[],[],[],[],[88,89,90,91,92,93,94,95,163,164,165,166,167,168],[65,66,67,68,69,70,71,72,158,159,160,161,162,173],[26,27,28,29,30,31,32,33,138,139,140,141,169,170],[55,56,57,58,59,60,61,62,63,64,154,155,156,157],[34,35,36,37,38,39,40,41,146,147,148,149,171,172],[],[],[45,46,47,48,49,50,51,52,53,54,150,151,152,153],[],[102,129,130,131,132,133,186,187,188,189],[],null,null,[],[],[],[],[42,43,44,99,174,175,176,177],[134,135,136,137,190,191,192,193],[],[],[],[1,6,7,17,18,20,23],null,[],[],[],[0,1,2,3,6,7,13,14,15,16,17,18,19,20,21,22,23,24,142,143,144,145],null,[],[],[0,4,5,6,7,13,16,17,18,20,24,144,145],null,[],[],[],[],null,[],[],[],[],[4,5,6,7,13,17,18,20,22],[],[],[1,6,7,17,18,19,20,23,24,142,143,144,145],[],[],[],[],[],[],[],[]],f1=(e,t)=>{if(!E1(e))return l.error("[vehicleUtils]: Invalid model id"),!1;const n=C1[e-400];if(n===null)return!1;const r=t-1e3;return I1.includes(r)||n.includes(r)},E1=e=>e>=400&&e<=611,T1=(e,t)=>{if(t<0||t>2)return!1;const n=new Map([[483,0],[534,2],[535,2],[536,2],[558,2],[559,2],[560,2],[561,2],[562,2],[565,2],[567,2],[575,1],[576,2]]).get(e);return n===void 0?!1:t<=n};var z=(e=>(e.created="OnVehicleCreate",e.destroyed="OnVehicleDestroy",e))(z||{});const ue=new D;class x{_id=-1;static createdCount=0;sourceInfo;isStatic;get id(){return this._id}constructor(t,n=!1){this.sourceInfo=t,this.isStatic=n}create(t=!1){if(this.id!==-1)return l.warn("[Vehicle]: Unable to create the vehicle again");if(x.createdCount===b.MAX_VEHICLES)return l.warn("[Vehicle]: Unable to continue to create vehicle, maximum allowable quantity has been reached");const{modelid:n,x:r,y:i,z:a,z_angle:s,colour1:o,colour2:_,respawn_delay:c,addsiren:u}=this.sourceInfo;if(!(!t&&(n<400||n>611))){if(this.isStatic){if(c===void 0){this._id=Cl(n,r,i,a,s,o,_);return}this._id=fl(n,r,i,a,s,o,_,c||-1,u||!1)}else this._id=yu(n,r,i,a,s,o,_,c||-1,u||!1);x.createdCount++,ue.emit(z.created,this)}}destroy(){if(this.id===-1)return l.warn("[Vehicle]: Unable to destroy the vehicle before create");mu(this.id),x.createdCount--,ue.emit(z.destroyed,this),this._id=-1}addComponent(t){return this.id===-1?0:f1(this.getModel(),t)?Gu(this.id,t):(l.warn(`[Vehicle]: Invalid component id ${t} attempted to attach to the vehicle ${this}`),0)}removeComponent(t){return this.getComponentInSlot(x.getComponentType(t))===0?(l.warn(`[Vehicle]: component id ${t} does not exist on this vehicle`),0):Mu(this.id,t)}getComponentInSlot(t){return Zu(this.id,t)}static getComponentType(t){return zu(t)}linkToInterior(t){return this.id===-1?0:ku(this.id,t)}setVirtualWorld(t){return this.id===-1?0:t1(this.id,t)}getVirtualWorld(){return this.id===-1?0:n1(this.id)}repair(){return this.id===-1?0:Xu(this.id)}setPos(t,n,r){return this.id===-1?0:Pu(this.id,t,n,r)}getPos(){if(this.id!==-1)return gu(this.id)}getHealth(){return this.id===-1?0:vu(this.id)}setHealth(t){return this.id===-1?0:Hu(this.id,t)}isPlayerIn(t){return this.id===-1?!1:qh(t.id,this.id)}putPlayerIn(t,n){return this.id===-1||n<0?0:(n>4&&l.warn("[Vehicle]: If the seat is invalid or is taken, will cause a crash when they EXIT the vehicle."),Th(t.id,this.id,n))}getZAngle(){return this.id===-1?0:pu(this.id)}setZAngle(t){return this.id===-1?0:Cu(this.id,t)}setNumberPlate(t){return this.id===-1?0:t.length<1||t.length>32?(l.error("[Vehicle]: The length of the number plate ranges from 32 characters"),0):/^[a-zA-Z0-9]+$/.test(t)?Ku(this.id,t):(l.error("[Vehicle]: number plates only allow letters and numbers"),0)}static getPoolSize(){return gl()}changeColours(t,n){return this.id===-1?0:Fu(this.id,t,n)}setVelocity(t,n,r){return this.id===-1?0:Ju(this.id,t,n,r)}getVelocity(){if(this.id===-1)return;const[t,n,r]=Yu(this.id);return{x:t,y:n,z:r}}setAngularVelocity(t,n,r){return this.id===-1?0:Qu(this.id,t,n,r)}getDamageStatus(){if(this.id!==-1)return $u(this.id)}updateDamageStatus(t,n,r,i){this.id!==-1&&qu(this.id,t,n,r,i)}getDistanceFromPoint(t,n,r){return Iu(this.id,t,n,r)}getModel(){return ju(this.id)}static getModelInfo(t,n){return e1(t,n)}getModelInfo(t){if(this.id!==-1)return x.getModelInfo(this.getModel(),t)}getRotationQuat(){if(this.id===-1)return;const[t,n,r,i]=Au(this.id);return{w:t,x:n,y:r,z:i}}setRespawn(){return this.id===-1?0:wu(this.id)}isStreamedIn(t){return this.id===-1?!1:Su(this.id,t.id)}setParamsCarDoors(t,n,r,i){return this.id===-1?0:Ru(this.id,t,n,r,i)}setParamsCarWindows(t,n,r,i){return this.id===-1?0:Bu(this.id,t,n,r,i)}getParamsCarDoors(){if(this.id!==-1)return bu(this.id)}getParamsCarWindows(){if(this.id!==-1)return Ou(this.id)}setParamsEx(t,n,r,i,a,s,o){return this.id===-1?0:Tu(this.id,t,n,r,i,a,s,o)}getParamsEx(){if(this.id===-1)return;const[t,n,r,i,a,s,o]=Du(this.id);return{engine:t,lights:n,alarm:r,doors:i,bonnet:a,boot:s,objective:o}}getParamsSirenState(){return this.id===-1?-2:Lu(this.id)}setParamsForPlayer(t,n,r){return this.id===-1?0:fu(this.id,t.id,n,r)}isTrailerAttached(){return this.id===-1?!1:Uu(this.id)}changePaintjob(t){return this.id===-1||!T1(this.getModel(),t)?0:(this.changeColours("#fff","#fff"),Nu(this.id,t),1)}attachTrailer(t){return this.id===-1?0:xu(t.id,this.id)}detachTrailer(){this.id!==-1&&this.isTrailerAttached()&&Vu(this.id)}getTrailer(t){if(this.id!==-1)return t.find(n=>n.id===Wu(this.id))}isValid(){return It(this.id)}static isValid(t){return It(t)}getMatrix(){if(this.id!==-1)return Ha(this.id)}getTrainSpeed(){return this.id===-1?0:va(this.id)}getHydraReactorAngle(){return this.id===-1?0:xa(this.id)}getLandingGearState(){return this.id===-1?0:Va(this.id)}getSirenState(){return this.id===-1?0:Ua(this.id)}static getModelsUsed=Wa;getDriver(t){if(this.id!==-1)return t.get(Ka(this.id))}getLastDriver(t){if(this.id!==-1)return t.get(ja(this.id))}static getModelCount=Za;isSirenEnabled(){return za(this.id)}toggleSirenEnabled(t){return this.id===-1?0:Xa(this.id,t)}isDead(){return this.id===-1?!0:Ya(this.id)}getRespawnTick(){return this.id===-1?0:Ja(this.id)}isOccupied(){return this.id===-1?!1:Qa(this.id)}hasBeenOccupied(){return this.id===-1?!1:$a(this.id)}getOccupiedTick(){return this.id===-1?0:qa(this.id)}getCab(){return this.id===-1?0:es(this.id)}getRespawnDelay(){return this.id===-1?0:ts(this.id)}setRespawnDelay(t){return this.id===-1?0:ns(this.id,t)}getNumberPlate(){return this.id===-1?"":rs(this.id)}getInterior(){return this.id===-1?0:is(this.id)}getPaintjob(){return this.id===-1?-1:as(this.id)}getColours(){if(this.id!==-1)return ss(this.id)}setSpawnInfo(t,n,r,i,a,s,o,_=-2,c=-2,u=!1){return this.id===-1||!u&&(t<400||t>611)?0:ds(this.id,t,n,r,i,a,g(s),g(o),_,c)}getSpawnInfo(){if(this.id!==-1)return os(this.id)}}class D1{vehicles=new Map;players;constructor(t,n=!0){this.players=t,ue.on(z.created,r=>{this.vehicles.set(r.id,r)}),ue.on(z.destroyed,r=>{this.vehicles.delete(r.id)}),n&&E(()=>{this.vehicles.forEach(r=>r.destroy()),this.vehicles.clear()}),Oo((r,i)=>{const a=this.findVehicleById(r);if(!a)return 0;const s=this.findPlayerById(i);return s?h(this,"onDamageStatusUpdate")(a,s):0}),Io((r,i)=>{const a=this.findVehicleById(r);if(!a)return 0;const s=this.findPlayerById(i);return s?h(this,"onDeath")(a,s):0}),Lo((r,i,a)=>{const s=this.findPlayerById(r);if(!s)return 1;const o=this.findVehicleById(i);return o?h(this,"onMod")(s,o,a):1}),bo((r,i,a)=>{const s=this.findPlayerById(r);if(!s)return 1;const o=this.findVehicleById(i);return o?h(this,"onPaintjob")(s,o,a):1}),Bo((r,i,a,s)=>{const o=this.findPlayerById(r);if(!o)return 1;const _=this.findVehicleById(i);return _?h(this,"onRespray")(o,_,a,s):1}),Xo((r,i,a)=>{const s=this.findPlayerById(r);if(!s)return 0;const o=this.findVehicleById(i);return o?h(this,"onSirenStateChange")(s,o,Boolean(a)):0}),Ao(r=>{const i=this.findVehicleById(r);return i?h(this,"onSpawn")(i):1}),vo((r,i)=>{const a=this.findVehicleById(r);if(!a)return 0;const s=this.findPlayerById(i);return s?h(this,"onStreamIn")(a,s):0}),xo((r,i)=>{const a=this.findVehicleById(r);if(!a)return 0;const s=this.findPlayerById(i);return s?h(this,"onStreamOut")(a,s):0}),fo((r,i,a)=>{const s=this.findPlayerById(r);if(!s)return 0;const o=this.findVehicleById(i);return o?h(this,"onPlayerEnter")(s,o,Boolean(a)):0}),Eo((r,i)=>{const a=this.findPlayerById(r);if(!a)return 0;const s=this.findVehicleById(i);return s?h(this,"onPlayerExit")(a,s):0}),qo((r,i)=>{const a=this.findVehicleById(r);return a?h(this,"onNpcEnter")(a,i):0}),el(h(this,"onNpcExit")),zo((r,i)=>{const a=this.findPlayerById(r);if(!a)return 0;const s=this.findVehicleById(i);return s?h(this,"onTrailerUpdate")(a,s):0})}findVehicleById(t){return this.vehicles.get(t)}findPlayerById(t){return this.players.get(t)}getVehiclesArr(){return[...this.vehicles.values()]}getVehiclesMap(){return this.vehicles}}const v=[],W=[],Oe=e=>{setTimeout(async()=>{try{const t=v.findIndex(r=>r.name===e);if(t===-1)return;const n=v[t];await n.load(),v.splice(t,1),W.push(n)}catch(t){l.error(`[GameMode]: script ${e} load fail`),l.warn(new Error(JSON.stringify(t)))}})},we=e=>{setTimeout(async()=>{try{const t=W.findIndex(r=>r.name===e);if(t===-1)return;const n=W[t];await n.unload(),W.splice(t,1),v.push(n)}catch(t){l.error(`[GameMode]: script ${e} unload fail`),l.warn(new Error(JSON.stringify(t)))}})},L1=e=>{we(e),Oe(e)};St(()=>{v.forEach(e=>Oe(e.name))}),E(()=>{W.forEach(e=>we(e.name))});const R1=function(e,...t){if(v.some(n=>n===e)||W.some(n=>n===e)){l.warn("[GameMode]: script has already been applied");return}e.load=e.load.bind(e,...t),v.push(e)};class ae{static charset=L;initialized=!1;constructor(){St(()=>{if(this.initialized)return l.error("[GameMode]: Cannot be initialized more than once");ae.supportAllNickname(),this.initialized=!0,this.onInit&&this.onInit()}),E(()=>{if(!this.initialized)return l.error("[GameMode]: Cannot unload more than once");this.initialized=!1,this.onExit&&this.onExit()}),Zo(h(this,"onIncomingConnection")),so(h(this,"onRconCommand")),oo(h(this,"onRconLoginAttempt"))}isInitialized(){return this.initialized}static exit(){Dl()}static use=(t,...n)=>(R1(t,...n),this);static loadScript=Oe;static unloadScript=we;static reloadScript=L1;static supportAllNickname(){for(let t=0;t<=255;t++)ae.isNickNameCharacterAllowed(t)||ae.allowNickNameCharacter(t,!0)}static allowAdminTeleport=ls;static isAdminTeleportAllowed=_s;static allowInteriorWeapons=cs;static areInteriorWeaponsAllowed=hs;static areAllAnimationsEnabled=us;static enableAllAnimations=ys;static enableStuntBonusForAll=iu;static enableVehicleFriendlyFire=Rl;static enableZoneNames=kl;static disableInteriorEnterExits=Ml;static setGameModeText=Pl;static getGravity=Bl;static setGravity=Ol;static showNameTags=El;static disableNameTagLOS=Nl;static usePlayerPedAnims=Gl;static showPlayerMarkers=Tl;static limitPlayerMarkerRadius=vl;static limitGlobalChatRadius=Hl;static setNameTagDrawDistance=Fl;static setWeather(t){return t<0||t>255?(l.error("[GameMode]: The valid weather value is only 0 to 255"),0):bl(t)}static setWorldTime(t){return t<0||t>23?(l.error("[GameMode]: The valid hour value is only 0 to 23"),0):Ll(t)}static setTeamCount=pl;static sendRconCommand=jl;static addPlayerClass=Al;static addPlayerClassEx=Il;static createExplosion(t,n,r,i,a){return i<0||i>13?(l.error("[GameMode]: The valid explosion type value is only 0 to 13"),0):wl(t,n,r,i,a)}static manualVehicleEngineAndLights=Eu;static blockIpAddress=Xl;static unBlockIpAddress=Yl;static getServerTickRate=Jl;static addSimpleModel(t,n,r,i,a){return this.checkSimpleModel(t,n,r,i,a)?l1(t,n,r,i,a):0}static addSimpleModelTimed(t,n,r,i,a,s,o){return this.checkSimpleModel(t,n,r,i,a,s,o)?_1(t,n,r,i,a,s,o):0}static checkSimpleModel(t,n,r,i,a,s,o){return t<-1?(l.error("[GameMode]: AddSimpleModel - Error virtual world"),0):n<0?(l.error("[GameMode]: AddSimpleModel - Error baseid"),0):r>-1e3||r<-3e4?(l.error("[GameMode]: AddSimpleModel - Error newid range"),0):i.trim().length<0?(l.error("[GameMode]: AddSimpleModel - Empty dffname"),0):a.trim().length<0?(l.error("[GameMode]: AddSimpleModel - Empty txdname"),0):s!==void 0&&(s<0||s>23)?(l.error("[GameMode]: AddSimpleModel - Error time on range"),0):o!==void 0&&(o<0||o>23)?(l.error("[GameMode]: AddSimpleModel - Error time off range"),0):1}static findModelFileNameFromCRC=S1;static findTextureFileNameFromCRC=g1;static getWeaponName=c1;static setObjectsDefaultCameraCollision=Y_;static vectorSize=ml;static clearBanList=ms;static isBanned=Ss;static isValidNickName=gs;static allowNickNameCharacter=Ps;static isNickNameCharacterAllowed=ps;static addServerRule=As;static setServerRule=Is;static isValidServerRule=Cs;static removeServerRule=fs;static getWeaponSlot=Es;static getAvailableClasses=Ts;static getPlayerClass=Ds;static editPlayerClass=Ls;static toggleChatTextReplacement=Rs;static chatTextReplacementToggled=bs}class b1{constructor(){}static getNetworkStats(){return zl()}static getPlayerNetworkStats(t){return Zl(t.id)}static getBytesReceived(t){return ql(t.id)}static getBytesSent(t){return t_(t.id)}static getConnectionStatus(t){return i_(t.id)}static getConnectedTime(t){return Ql(t.id)}static getIpPort(t){return h1(t.id)}static getMessagesReceived(t){return $l(t.id)}static getMessagesRecvPerSecond(t){return n_(t.id)}static getMessagesSent(t){return e_(t.id)}static getPacketLossPercent(t){return r_(t.id)}}class B1{_text;_time;_style;get text(){return this._text}set text(t){this._text=t}get time(){return this._time}set time(t){this._time=t}get style(){return this._style}set style(t){this._style=t}constructor(t,n,r){this._text=t,this._time=n,this._style=r}static hideForAll(t){_l(t)}static has(t,n){return hl(t.id,n)}forAll(){ll(this.text,this.time,this.style)}forPlayer(t){cl(t.id,this.text,this.time,this.style)}hideForPlayer(t){return ul(t.id,this.style)}}var X=(e=>(e.created="OnMenuCreate",e.destroyed="OnMenuDestroy",e))(X||{});const ye=new D;class Ee{static menuCount=0;_id=-1;_itemCount=0;get itemCount(){return this._itemCount}get id(){return this._id}_title;get title(){return this._title}set title(t){this._title=t}_columns=1;get columns(){return this._columns}set columns(t){if(t!==1&&t!==2){l.error("[Menu]: The menu column number interval is between 1 and 2");return}this._columns=t}_x;get x(){return this._x}set x(t){this._x=t}_y;get y(){return this._y}set y(t){this._y=t}_col1width;get col1width(){return this._col1width}set col1width(t){this._col1width=t}_col2width;get col2width(){return this._col2width}set col2width(t){this._col2width=t}constructor(t,n,r,i,a,s){this._title=t,this.columns=n,this._x=r,this._y=i,this._col1width=a,this._col2width=s}create(){return this._id!==-1?l.error("[Menu]: Cannot be created twice"):Ee.menuCount===b.MAX_MENUS?l.error("[Menu]: The maximum number of menus allowed to be created has been reached 128"):(this._id=a_(this.title,this.columns,this.x,this.y,this.col1width,this.col2width),ye.emit(X.created,this),Ee.menuCount++,this)}destroy(){return this._id===-1?l.error("[Menu]: Cannot destroy before create"):(s_(this.id),ye.emit(X.destroyed,this),this)}addItem(t,n){return this._id===-1?l.error("[Menu]: Cannot addItem before create"):this._itemCount===b.MAX_MENU_ROW?l.error("[Menu]: The maximum number of items allowed to be added has been reached 12"):t!==0&&t!==1?l.error("[Menu]: Wrong number of columns"):(d_(this.id,t,n),this._itemCount++,this)}setColumnHeader(t,n){return this._id===-1?l.error("[Menu]: Cannot setColumnHeader before create"):t!==0&&t!==1?l.error("[Menu]: Wrong number of columns"):(o_(this.id,t,n),this)}disable(){return this._id===-1?l.error("[Menu]: Cannot disable menu before create"):(h_(this.id),this)}disableRow(t){if(this._id===-1)return l.error("[Menu]: Cannot disable row before create");if(t<0||t>this.itemCount-1)return l.error("[Menu]: Wrong number of rows");u_(this.id,t)}isValid(){return c_(this.id)}showForPlayer(t){return this._id===-1?l.error("[Menu]: Cannot show menu before create"):l_(this.id,t.id)}hideForPlayer(t){return this._id===-1?l.error("[Menu]: Cannot hide menu before create"):__(this.id,t.id)}static getMenu(t,n){return n.find(r=>r.id===be(t.id))}isDisabled(){return this._id===-1?!1:Bs(this.id)}isRowDisabled(t){return this._id===-1||t<0||t>this._itemCount?!1:Os(this.id,t)}getItems(t){return this._id===-1?0:ws(this.id,t)}getPos(){return this._id===-1?{fX:this.x,fY:this.y}:ks(this.id)}getColumnWidth(){return this.id===-1?{fColumn1:this.col1width,fColumn2:this.col2width}:Gs(this.id)}getColumnHeader(t){return this._id===-1?l.error("[Menu]: Cannot get column header before create"):Ms(this.id,t)}getItem(t,n){if(this._id===-1)return l.error("[Menu]: Cannot get item before create");if(!(n<0||n>this.getItems(t)-1))return Fs(this.id,t,n)}}class O1{menus=new Map;players;constructor(t,n=!0){this.players=t,ye.on(X.created,r=>{this.menus.set(r.id,r)}),ye.on(X.destroyed,r=>{this.menus.delete(r.id)}),n&&E(()=>{this.menus.forEach(r=>r.destroy()),this.menus.clear()}),ko(r=>{const i=this.findMenuById(be(r));if(!i)return 0;const a=this.findPlayerById(r);return a?h(this,"onPlayerExited")(a,i):0}),wo((r,i)=>{const a=this.findMenuById(be(r));if(!a)return 0;const s=this.findPlayerById(r);return s?h(this,"onPlayerSelectedRow")(s,a,i):0})}findPlayerById(t){return this.players.get(t)}findMenuById(t){if(t!==C.MENU)return this.menus.get(t)}getMenusArr(){return[...this.menus.values()]}getMenusMap(){return this.menus}}var Y=(e=>(e.created="OnGangZoneCreate",e.destroyed="OnGangZoneDestroy",e))(Y||{});const me=new D;class F{_id=-1;static createdGlobalCount=0;static createdPlayerCount=0;sourceInfo;constructor(t){this.sourceInfo=t}get id(){return this._id}create(){if(this.id!==-1)return l.warn("[GangZone]: Unable to create the gangzone again");const{player:t}=this.sourceInfo;if(t){if(F.createdPlayerCount===b.MAX_GANG_ZONES)return l.warn("[GangZone]: Unable to continue to create gangzone, maximum allowable quantity has been reached");const{minx:n,miny:r,maxx:i,maxy:a}=this.sourceInfo;this._id=Ns(t.id,n,r,i,a),F.createdPlayerCount++,samp.addEventListener("OnPlayerDisconnect",this.unregisterEvent)}else{if(F.createdGlobalCount===b.MAX_GANG_ZONES)return l.warn("[GangZone]: Unable to continue to create gangzone, maximum allowable quantity has been reached");const{minx:n,miny:r,maxx:i,maxy:a}=this.sourceInfo;this._id=F_(n,r,i,a),F.createdGlobalCount++}me.emit(Y.created,{key:{id:this.id,global:t===void 0},value:this})}destroy(){if(this.id===-1)return l.warn("[GangZone]: Unable to destroy the gangzone before create");const{player:t}=this.sourceInfo;t?(Hs(t.id,this.id),F.createdPlayerCount--):(N_(this.id),F.createdGlobalCount--),me.emit(Y.destroyed,{id:this.id,global:t===void 0}),this._id=-1}showForAll(t){return this.id===-1?l.warn("[GangZone]: Unable to show the gangzone before create"):this.sourceInfo.player?l.warn("[GangZone]: player's gangzone should not be show for all."):(v_(this.id,t),this)}showForPlayer(t,n){if(this.id===-1)return l.warn("[GangZone]: Unable to show the gangzone before create");const r=this.sourceInfo.player;if(r)vs(r.id,this.id,g(t));else if(n)H_(n.id,this.id,t);else return l.warn("[GangZone]: invalid player for show");return this}hideForAll(){return this.id===-1?l.warn("[GangZone]: Unable to hide the gangzone before create"):this.sourceInfo.player?l.warn("[GangZone]: player's gangzone should not be hide for all."):(V_(this.id),this)}hideForPlayer(t){if(this.id===-1)return l.warn("[GangZone]: Unable to hide the gangzone before create");const n=this.sourceInfo.player;if(n)xs(n.id,this.id);else if(t)x_(t.id,this.id);else return l.warn("[GangZone]: invalid player for hide");return this}flashForAll(t){return this.id===-1?l.warn("[GangZone]: Unable to flash the gangzone before create"):this.sourceInfo.player?l.warn("[GangZone]: player's gangzone should not be flash for all."):(W_(this.id,t),this)}flashForPlayer(t,n){if(this.id===-1)return l.warn("[GangZone]: Unable to flash the gangzone before create");const r=this.sourceInfo.player;if(r)Vs(r.id,this.id,g(n));else if(t)U_(t.id,this.id,n);else return l.warn("[GangZone]: invalid player for flash");return this}StopFlashForAll(){return this.id===-1?l.warn("[GangZone]: Unable to stop flash the gangzone before create"):this.sourceInfo.player?l.warn("[GangZone]: player's gangzone should not be stop flash for all."):(j_(this.id),this)}StopFlashForPlayer(t){if(this.id===-1)return l.warn("[GangZone]: Unable to stop flash the gangzone before create");const n=this.sourceInfo.player;if(n)Us(n.id,this.id);else if(t)K_(t.id,this.id);else return l.warn("[GangZone]: invalid player for flash");return this}isValid(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?Ws(t.id,this.id):Ks(this.id)}isPlayerIn(t){if(this.id===-1)return!1;const n=this.sourceInfo.player;return n?js(n.id,this.id):Zs(t.id,this.id)}isVisibleForPlayer(t){if(this.id===-1)return!1;const n=this.sourceInfo.player;return n?zs(n.id,this.id):Xs(t.id,this.id)}getColourForPlayer(t){if(this.id===-1)return l.warn("[GangZone]: Unable to get colour before create");const n=this.sourceInfo.player;return n?Ys(n.id,this.id):Js(t.id,this.id)}getFlashColourForPlayer(t){if(this.id===-1)return l.warn("[GangZone]: Unable to get flash colour before create");const n=this.sourceInfo.player;return n?Qs(n.id,this.id):$s(t.id,this.id)}isFlashingForPlayer(t){if(this.id===-1)return!1;const n=this.sourceInfo.player;return n?qs(n.id,this.id):ed(t.id,this.id)}getPos(){if(this.id===-1)return l.warn("[GangZone]: Unable to get position before create");const t=this.sourceInfo.player;return t?td(t.id,this.id):nd(this.id)}useCheck(t){if(this.id===-1)return l.warn("[GangZone]: Unable to use check before create");const n=this.sourceInfo.player;return n?rd(n.id,this.id,t):id(this.id,t),this}unregisterEvent(){return this.destroy(),samp.removeEventListener("OnPlayerDisconnect",this.unregisterEvent),1}}class w1{gangZones=new Map;players;constructor(t,n=!0){this.players=t,me.on(Y.created,r=>{this.gangZones.set(r.key,r.value)}),me.on(Y.destroyed,r=>{this.gangZones.has(r)&&this.gangZones.delete(r)}),n&&E(()=>{this.gangZones.forEach(r=>r.destroy()),this.gangZones.clear()}),ad((r,i)=>{const a=this.players.get(r);if(!a)return 0;const s=this.gangZones.get({id:i,global:!0});return s?h(this,"onPlayerEnter")(a,s):0}),sd((r,i)=>{const a=this.players.get(r);if(!a)return 0;const s=this.gangZones.get({id:i,global:!1});return s?h(this,"onPlayerEnter")(a,s):0}),dd((r,i)=>{const a=this.players.get(r);if(!a)return 0;const s=this.gangZones.get({id:i,global:!0});return s?h(this,"onPlayerLeave")(a,s):0}),od((r,i)=>{const a=this.players.get(r);if(!a)return 0;const s=this.gangZones.get({id:i,global:!1});return s?h(this,"onPlayerLeave")(a,s):0})}}class P{constructor(){}static getTickRate=Ot;static setTickRate=wt;static getPlayerTickRate(t){return kt(t.id)}static setPlayerTickRate(t,n=50){return Gt(t.id,n)}static toggleChunkStream=Mt;static isToggleChunkStream=Ft;static getChunkTickRate(t,n=-1){return n instanceof O?Me(t,n.id):Me(t,n)}static setChunkTickRate(t,n,r=-1){return r instanceof O?Fe(t,n,r.id):Fe(t,n,r)}static getChunkSize=Nt;static setChunkSize=Ht;static getMaxItems=vt;static setMaxItems=xt;static getVisibleItems(t,n=-1){return n instanceof O?Ne(t,n.id):Ne(t,n)}static setVisibleItems(t,n,r=-1){return r instanceof O?He(t,n,r.id):He(t,n,r)}static getRadiusMultiplier(t,n=-1){return n instanceof O?ve(t,n.id):ve(t,n)}static setRadiusMultiplier(t,n,r=-1){return r instanceof O?xe(t,r.id):xe(t,n,r)}static getTypePriority=Vt;static setTypePriority=Ut;static getCellDistance=Wt;static setCellDistance=Kt;static getCellSize=jt;static setCellSize=Zt;static toggleItemStatic=zt;static isToggleItemStatic=Xt;static toggleItemInvAreas=Yt;static isToggleItemInvAreas=Jt;static toggleItemCallbacks=Qt;static isToggleItemCallbacks=$t;static toggleErrorCallback=qt;static isToggleErrorCallback=en;static amxUnloadDestroyItems=tn;static processActiveItems=nn;static toggleIdleUpdate(t,n){return rn(t.id,n)}static isToggleIdleUpdate(t){return an(t.id)}static toggleCameraUpdate(t,n){return sn(t.id,n)}static isToggleCameraUpdate(t){return dn(t.id)}static toggleItemUpdate(t,n,r){return on(t.id,n,r)}static isToggleItemUpdate(t,n){return ln(t.id,n)}static getLastUpdateTime(){return _n()}static update(t,n=-1){return cn(t.id,n)}static updateEx(t,n,r,i,a,s,o,_,c){return hn(t.id,n,r,i,a,s,o,_,c)}static getDistanceToItem=un;static toggleItem(t,n,r,i){return yn(t.id,n,r,i)}static isToggleItem(t,n,r){return mn(t.id,n,r)}static toggleAllItems(t,n,r,i=[-1]){return Sn(t.id,n,r,i)}static getItemInternalID(t,n,r){return gn(t.id,n,r)}static getItemStreamerID(t,n,r){return Pn(t.id,n,r)}static isItemVisible(t,n,r){return pn(t.id,n,r)}static destroyAllVisibleItems(t,n,r=1){return An(t.id,n,r)}static countVisibleItems(t,n,r=1){return In(t.id,n,r)}static destroyAllItems=Cn;static countItems=fn;static getNearbyItems=En;static getAllVisibleItems(t,n,r){Tn(t.id,n,r)}static getItemPos=Dn;static setItemPos=Ln;static getItemOffset=Rn;static setItemOffset=bn;static getFloatData=Bn;static setFloatData=On;static getIntData=wn;static setIntData=kn;static getArrayData=Gn;static setArrayData=Mn;static isInArrayData=Fn;static appendArrayData=Nn;static removeArrayData=Hn;static getArrayDataLength=vn;static getUpperBound=xn;static onItemStreamIn=Vn;static onItemStreamOut=Un;static onPluginError=Wn}var K=(e=>(e.created="OnMapIconCreate",e.destroyed="OnMapIconDestroy",e))(K||{});const J=new D;class k1{sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[StreamerMapIcon]: Unable to create map icon again");let{style:t,streamdistance:n,worldid:r,interiorid:i,playerid:a,areaid:s,priority:o}=this.sourceInfo;const{x:_,y:c,z:u,type:y,colour:S,extended:I}=this.sourceInfo;return y<0||y>63?l.error("[StreamerMapIcon]: Invalid map icon type"):(t??=Kn.LOCAL,n??=G.MAP_ICON_SD,o??=0,I?(typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof a=="number"?a=[-1]:a??=[-1],typeof s=="number"?s=[-1]:s??=[-1],this._id=jn(_,c,u,y,g(S),t,n,r,i,a,s,o),J.emit(K.created,this),this):(Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(a)?a=-1:a??=-1,Array.isArray(s)?s=-1:s??=-1,this._id=Zn(_,c,u,y,g(S),r,i,a,n,t,s,o),J.emit(K.created,this),this))}destroy(){return this.id===-1?l.warn("[StreamerMapIcon]: Unable to destroy the map icon before create"):(zn(this.id),J.emit(K.destroyed,this),this)}isValid(){return Xn(this.id)}toggleCallbacks(t=!0){return this.id===-1?l.warn("[StreamerMapIcon]: Unable to toggle callbacks before create"):P.toggleItemCallbacks(p.MAP_ICON,this.id,t)}isToggleCallbacks(){return this.id,P.isToggleItemCallbacks(p.MAP_ICON,this.id)}}class G1{mapIcons=new Map;players;constructor(t,n=!0){this.players=t,J.on(K.created,r=>{this.mapIcons.set(r.id,r)}),J.on(K.destroyed,r=>{this.mapIcons.delete(r.id)}),n&&E(()=>{this.mapIcons.forEach(r=>r.destroy()),this.mapIcons.clear()}),P.onItemStreamIn((r,i,a)=>{if(r===p.MAP_ICON){const s=this.mapIcons.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamIn")(s,o)}return 1}),P.onItemStreamOut((r,i,a)=>{if(r===p.MAP_ICON){const s=this.mapIcons.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamOut")(s,o)}return 1})}getMapIconsArr(){return[...this.mapIcons.values()]}getMapIconsMap(){return this.mapIcons}}var Q=(e=>(e.created="OnPickupCreate",e.destroyed="OnPickupDestroy",e))(Q||{});const Se=new D;class M1{sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[StreamerPickup]: Unable to create pickup again");let{streamdistance:t,worldid:n,interiorid:r,playerid:i,areaid:a,priority:s}=this.sourceInfo;const{type:o,modelid:_,x:c,y:u,z:y,extended:S}=this.sourceInfo;return o<0||o>22?l.error("[StreamerPickup]: Invalid pickup type"):(t??=G.PICKUP_SD,s??=0,S?(typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof a=="number"?a=[-1]:a??=[-1],this._id=Yn(_,o,c,u,y,t,n,r,i,a,s)):(Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(a)?a=-1:a??=-1,this._id=Jn(_,o,c,u,y,n,r,i,t,a,s)),Se.emit(Q.created,this),this)}destroy(){return this.id===-1?l.warn("[StreamerPickup]: Unable to destroy the pickup before create"):(Qn(this.id),Se.emit(Q.destroyed,this),this)}isValid(){return $n(this.id)}toggleCallbacks(t=!0){return this.id===-1?l.warn("[StreamerPickup]: Unable to toggle callbacks before create"):P.toggleItemCallbacks(p.PICKUP,this.id,t)}isToggleCallbacks(){return this.id,P.isToggleItemCallbacks(p.PICKUP,this.id)}}class F1{pickups=new Map;players;constructor(t,n=!0){this.players=t,Se.on(Q.created,r=>{this.pickups.set(r.id,r)}),Se.on(Q.destroyed,r=>{this.pickups.delete(r.id)}),n&&E(()=>{this.pickups.forEach(r=>r.destroy()),this.pickups.clear()}),qn((r,i)=>{const a=this.pickups.get(i);if(!a)return 0;const s=this.players.get(r);return s?h(this,"onPlayerPickUp")(s,a):0}),P.onItemStreamIn((r,i,a)=>{if(r===p.PICKUP){const s=this.pickups.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamIn")(s,o)}return 1}),P.onItemStreamOut((r,i,a)=>{if(r===p.PICKUP){const s=this.pickups.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamOut")(s,o)}return 1})}getPickupsArr(){return[...this.pickups.values()]}getPickupsMap(){return this.pickups}}var $=(e=>(e.created="OnCheckPointCreate",e.destroyed="OnCheckPointDestroy",e))($||{});const ge=new D;class N1{sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[StreamerCheckpoint]: Unable to create checkpoint again");let{streamdistance:t,worldid:n,interiorid:r,playerid:i,areaid:a,priority:s}=this.sourceInfo;const{size:o,x:_,y:c,z:u,extended:y}=this.sourceInfo;return o<0?l.error("[StreamerCheckpoint]: Invalid checkpoint size"):(t??=G.CP_SD,s??=0,y?(typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof a=="number"?a=[-1]:a??=[-1],this._id=er(_,c,u,o,t,n,r,i,a,s)):(Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(a)?a=-1:a??=-1,this._id=tr(_,c,u,o,n,r,i,t,a,s)),ge.emit($.created,this),this)}destroy(){return this.id===-1?l.warn("[StreamerCheckpoint]: Unable to destroy the checkpoint before create"):(Ve(this.id),ge.emit($.destroyed,this),this)}isValid(){return Ue(this.id)}togglePlayer(t,n){return this.id===-1?l.warn("[StreamerCheckpoint]: Unable to toggle the player before create"):(nr(t.id,this.id,n),this)}static togglePlayerAll(t,n){return rr(t.id,n)}isPlayerIn(t){return this.id===-1?!1:ir(t.id,this.id)}static getPlayerVisible(t,n){return n.get(ar(t.id))}toggleCallbacks(t=!0){return this.id===-1?l.warn("[StreamerCheckpoint]: Unable to toggle callbacks before create"):P.toggleItemCallbacks(p.CP,this.id,t)}isToggleCallbacks(){return this.id,P.isToggleItemCallbacks(p.CP,this.id)}}class H1{checkpoints=new Map;players;constructor(t,n=!0){this.players=t,ge.on($.created,r=>{this.checkpoints.set(r.id,r)}),ge.on($.destroyed,r=>{this.checkpoints.delete(r.id)}),n&&E(()=>{this.checkpoints.forEach(r=>r.destroy()),this.checkpoints.clear()}),sr((r,i)=>{const a=this.checkpoints.get(i);if(!a)return 0;const s=this.players.get(r);return s?h(this,"onPlayerEnter")(s,a):0}),dr((r,i)=>{const a=this.checkpoints.get(i);if(!a)return 0;const s=this.players.get(r);return s?h(this,"onPlayerLeave")(s,a):0}),P.onItemStreamIn((r,i,a)=>{if(r===p.CP){const s=this.checkpoints.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamIn")(s,o)}return 1}),P.onItemStreamOut((r,i,a)=>{if(r===p.CP){const s=this.checkpoints.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamOut")(s,o)}return 1})}getCheckPointsArr(){return[...this.checkpoints.values()]}getCheckPointsMap(){return this.checkpoints}}var q=(e=>(e.created="OnRaceCPCreate",e.destroyed="OnRaceCPDestroy",e))(q||{});const Pe=new D;class v1{sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[StreamerRaceCP]: Unable to create checkpoint again");let{streamdistance:t,worldid:n,interiorid:r,playerid:i,areaid:a,priority:s}=this.sourceInfo;const{type:o,size:_,x:c,y:u,z:y,nextx:S,nexty:I,nextz:f,extended:R}=this.sourceInfo;return o<0||o>8?l.error("[StreamerRaceCP]: Invalid type"):_<0?l.error("[StreamerRaceCP]: Invalid size"):(t??=G.RACE_CP_SD,s??=0,R?(typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof a=="number"?a=[-1]:a??=[-1],this._id=or(o,c,u,y,S,I,f,_,t,n,r,i,a,s)):(Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(a)?a=-1:a??=-1,this._id=lr(o,c,u,y,S,I,f,_,n,r,i,t,a,s)),Pe.emit(q.created,this),this)}destroy(){return this.id===-1?l.warn("[StreamerRaceCP]: Unable to destroy the checkpoint before create"):(Ve(this.id),Pe.emit(q.destroyed,this),this)}isValid(){return Ue(this.id)}togglePlayer(t,n){return this.id===-1?l.warn("[StreamerRaceCP]: Unable to toggle the player before create"):(_r(t.id,this.id,n),this)}static togglePlayerAll(t,n){return cr(t.id,n)}isPlayerIn(t){return this.id===-1?!1:hr(t.id,this.id)}static getPlayerVisible(t,n){return n.get(ur(t.id))}toggleCallbacks(t=!0){return this.id===-1?l.warn("[StreamerRaceCP]: Unable to toggle callbacks before create"):P.toggleItemCallbacks(p.RACE_CP,this.id,t)}isToggleCallbacks(){return this.id,P.isToggleItemCallbacks(p.RACE_CP,this.id)}}class x1{raceCPs=new Map;players;constructor(t,n=!0){this.players=t,Pe.on(q.created,r=>{this.raceCPs.set(r.id,r)}),Pe.on(q.destroyed,r=>{this.raceCPs.delete(r.id)}),n&&E(()=>{this.raceCPs.forEach(r=>r.destroy()),this.raceCPs.clear()}),yr((r,i)=>{const a=this.raceCPs.get(i);if(!a)return 0;const s=this.players.get(r);return s?h(this,"onPlayerEnter")(s,a):0}),mr((r,i)=>{const a=this.raceCPs.get(i);if(!a)return 0;const s=this.players.get(r);return s?h(this,"onPlayerLeave")(s,a):0}),P.onItemStreamIn((r,i,a)=>{if(r===p.RACE_CP){const s=this.raceCPs.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamIn")(s,o)}return 1}),P.onItemStreamOut((r,i,a)=>{if(r===p.RACE_CP){const s=this.raceCPs.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamOut")(s,o)}return 1})}getRaceCPsArr(){return[...this.raceCPs.values()]}getRaceCPsMap(){return this.raceCPs}}var ee=(e=>(e.created="OnActorCreate",e.destroyed="OnActorDestroy",e))(ee||{});const pe=new D;class V1{sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[StreamerActor]: Unable to create actor again");let{streamdistance:t,worldid:n,interiorid:r,playerid:i,areaid:a,priority:s}=this.sourceInfo;const{modelid:o,x:_,y:c,z:u,r:y,invulnerable:S,health:I,extended:f}=this.sourceInfo;return t??=G.ACTOR_SD,s??=0,f?(typeof n=="number"?n=[0]:n??=[0],typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof a=="number"?a=[-1]:a??=[-1],this._id=Sr(o,_,c,u,y,S,I,t,n,r,i,a,s)):(Array.isArray(n)?n=0:n??=0,Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(a)?a=-1:a??=-1,this._id=gr(o,_,c,u,y,S,I,n,r,i,t,a,s)),pe.emit(ee.created,this),this}destroy(){return this.id===-1?l.warn("[StreamerActor]: Unable to destroy the actor before create"):(Pr(this.id),pe.emit(ee.destroyed,this),this)}isValid(){return pr(this.id)}isStreamedIn(t){return this.id===-1?!1:Ar(this.id,t.id)}getVirtualWorld(){return this.id===-1?l.warn("[StreamerActor]: Unable to get virtual world before create"):Ir(this.id)}setVirtualWorld(t){return this.id===-1?l.warn("[StreamerActor]: Unable to set virtual world before create"):Cr(this.id,t)}applyAnimation(t,n,r=!1,i=!0,a=!0,s=!1){if(this.id===-1)return l.warn("[StreamerActor]: Unable to apply animation before create");const o=Ct(t,n);return o===void 0?l.error("[StreamerActor]: Invalid anim library or name"):fr(this.id,t,n,4.1,r,i,a,s,r?0:o)}clearAnimations(){return this.id===-1?l.warn("[StreamerActor]: Unable to clear animation before create"):Er(this.id)}getFacingAngle(){return this.id===-1?l.warn("[StreamerActor]: Unable to get facing angle before create"):Tr(this.id)}setFacingAngle(t){return this.id===-1?l.warn("[StreamerActor]: Unable to set facing angle before create"):Dr(this.id,t)}getPos(){return this.id===-1?l.warn("[StreamerActor]: Unable to get pos before create"):Lr(this.id)}setPos(t,n,r){return this.id===-1?l.warn("[StreamerActor]: Unable to set pos before create"):Rr(this.id,t,n,r)}getHealth(){return this.id===-1?l.warn("[StreamerActor]: Unable to get health before create"):br(this.id)}setHealth(t){return this.id===-1?l.warn("[StreamerActor]: Unable to set health before create"):Br(this.id,t)}isInvulnerable(){return this.id===-1?!1:Or(this.id)}setInvulnerable(t=!0){return this.id===-1?l.warn("[StreamerActor]: Unable to set invulnerable before create"):wr(this.id,t)}getPlayerTarget(t,n){if(this.id===-1)return;const r=kr(t.id);return n.get(r)}getPlayerCameraTarget(t,n){if(this.id===-1)return;const r=Gr(t.id);return n.get(r)}getSkin(){return this.id===-1?l.warn("[StreamerActor]: Unable to get skin before create"):ld(this.id)}setSkin(t,n=!1){return this.id===-1?l.warn("[StreamerActor]: Unable to set skin before create"):!n&&(t<0||t>311||t==74)?0:_d(this.id,t)}getSpawnInfo(){return this.id===-1?l.warn("[StreamerActor]: Unable to get spawn info before create"):cd(this.id)}getAnimation(){return this.id===-1?l.warn("[StreamerActor]: Unable to get animation before create"):hd(this.id)}toggleCallbacks(t=!0){return this.id===-1?l.warn("[StreamerActor]: Unable to toggle callbacks before create"):P.toggleItemCallbacks(p.ACTOR,this.id,t)}isToggleCallbacks(){return this.id,P.isToggleItemCallbacks(p.ACTOR,this.id)}}class U1{actors=new Map;players;constructor(t,n=!0){this.players=t,pe.on(ee.created,r=>{this.actors.set(r.id,r)}),pe.on(ee.destroyed,r=>{this.actors.delete(r.id)}),n&&E(()=>{this.actors.forEach(r=>r.destroy()),this.actors.clear()}),Mr((r,i)=>{const a=this.actors.get(r);if(!a)return 0;const s=this.players.get(i);return s?h(this,"onStreamIn")(a,s):0}),Fr((r,i)=>{const a=this.actors.get(r);if(!a)return 0;const s=this.players.get(i);return s?h(this,"onStreamOut")(a,s):0}),Nr((r,i,a,s,o)=>{const _=this.actors.get(i);if(!_)return 0;const c=this.players.get(r);return c?h(this,"onPlayerGiveDamage")(c,_,a,s,o):0})}getActorsArr(){return[...this.actors.values()]}getActorsMap(){return this.actors}}var te=(e=>(e.created="On3dTextCreate",e.destroyed="On3dTextDestroy",e))(te||{});const Ae=new D;class W1{sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[Streamer3DTextLabel]: Unable to create again");let{attachedplayer:t,attachedvehicle:n,testlos:r,streamdistance:i,worldid:a,interiorid:s,playerid:o,areaid:_,priority:c}=this.sourceInfo;const{charset:u,text:y,colour:S,drawdistance:I,x:f,y:R,z:V,extended:ft}=this.sourceInfo;return t??=C.PLAYER_ID,n??=C.VEHICLE_ID,i??=G.TEXT_3D_LABEL_SD,r??=!1,c??=0,ft?(typeof a=="number"?a=[-1]:a??=[-1],typeof s=="number"?s=[-1]:s??=[-1],typeof o=="number"?o=[-1]:o??=[-1],typeof _=="number"?_=[-1]:_??=[-1],this._id=uo(y,g(S),f,R,V,I,t,n,r,i,a,s,o,_,c,u||L)):(Array.isArray(a)?a=-1:a??=-1,Array.isArray(s)?s=-1:s??=-1,Array.isArray(o)?o=-1:o??=-1,Array.isArray(_)?_=-1:_??=-1,this._id=ho(u||L,y,g(S),f,R,V,I,t,n,r,a,s,o,i,_,c)),Ae.emit(te.created,this),this}destroy(){return this.id===-1?l.warn("[Streamer3DTextLabel]: Unable to destroy before create"):(Hr(this.id),Ae.emit(te.destroyed,this),this)}isValid(){return vr(this.id)}getColour(){return this.id===-1?l.warn("[Streamer3DTextLabel]: Unable to get colour before create"):this.sourceInfo.colour}getCharset(){return this.id===-1?l.warn("[Streamer3DTextLabel]: Unable to get charset before create"):this.sourceInfo.charset}getText(){return this.id===-1?l.warn("[Streamer3DTextLabel]: Unable to get text before create"):mo(this.id,this.sourceInfo.charset||L)}updateText(t,n,r=this.sourceInfo.charset){return this.id===-1?l.warn("[Streamer3DTextLabel]: Unable to update text before create"):(this.sourceInfo.charset=r,yo(this.id,g(t),n,r||L))}toggleCallbacks(t=!0){return this.id===-1?l.warn("[Streamer3DTextLabel]: Unable to toggle callbacks before create"):P.toggleItemCallbacks(p.TEXT_3D_LABEL,this.id,t)}isToggleCallbacks(){return this.id,P.isToggleItemCallbacks(p.TEXT_3D_LABEL,this.id)}}class K1{_3dTexts=new Map;players;constructor(t,n=!0){this.players=t,Ae.on(te.created,r=>{this._3dTexts.set(r.id,r)}),Ae.on(te.destroyed,r=>{this._3dTexts.delete(r.id)}),n&&E(()=>{this._3dTexts.forEach(r=>r.destroy()),this._3dTexts.clear()}),P.onItemStreamIn((r,i,a)=>{if(r===p.TEXT_3D_LABEL){const s=this._3dTexts.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamIn")(s,o)}return 1}),P.onItemStreamOut((r,i,a)=>{if(r===p.TEXT_3D_LABEL){const s=this._3dTexts.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamOut")(s,o)}return 1})}get3dTextLabelsArr(){return[...this._3dTexts.values()]}get3dTextLabelsMap(){return this._3dTexts}}var ne=(e=>(e.created="OnObjectCreate",e.destroyed="OnObjectDestroy",e))(ne||{});const Ie=new D;class j1{sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[StreamerObject]: Unable to create object again");let{streamdistance:t,drawdistance:n,worldid:r,interiorid:i,playerid:a,areaid:s,priority:o}=this.sourceInfo;const{modelid:_,x:c,y:u,z:y,rx:S,ry:I,rz:f,extended:R}=this.sourceInfo;return t??=G.OBJECT_SD,n??=G.OBJECT_DD,o??=0,R?(typeof r=="number"?r=[-1]:r??=[-1],typeof i=="number"?i=[-1]:i??=[-1],typeof a=="number"?a=[-1]:a??=[-1],typeof s=="number"?s=[-1]:s??=[-1],this._id=xr(_,c,u,y,S,I,f,t,n,r,i,a,s,o)):(Array.isArray(r)?r=-1:r??=-1,Array.isArray(i)?i=-1:i??=-1,Array.isArray(a)?a=-1:a??=-1,Array.isArray(s)?s=-1:s??=-1,this._id=Vr(_,c,u,y,S,I,f,r,i,a,t,n,s,o)),Ie.emit(ne.created,this),this}destroy(){return this.id===-1?l.warn("[StreamerObject]: Unable to destroy the object before create"):(Ur(this.id),Ie.emit(ne.destroyed,this),this)}isValid(){return Wr(this.id)}getPos(){return this.id===-1?l.warn("[StreamerObject]: Cannot get position before create"):Kr(this.id)}setPos(t,n,r){return this.id===-1?l.warn("[StreamerObject]: Cannot set position before create"):jr(this.id,t,n,r)}getRot(){return this.id===-1?l.warn("[StreamerObject]: Cannot get rotation before create"):Zr(this.id)}setRot(t,n,r){return this.id===-1?l.warn("[StreamerObject]: Cannot set rotation before create"):zr(this.id,t,n,r)}move(t,n,r,i,a=-1e3,s=-1e3,o=-1e3){return this.id===-1?l.warn("[StreamerObject]: Cannot start moving before create"):i<0?l.warn("[StreamerObject]: speed must not be less than 0"):(i>120*1e3&&l.warn("[StreamerObject]: speed more than 120 seconds, warn if it's not intentional"),this.isMoving()&&this.stop(),Xr(this.id,t,n,r,i,a,s,o))}stop(){return this.id===-1?l.warn("[StreamerObject]: Cannot stop moving before create"):Yr(this.id)}isMoving(){return this.id===-1?!1:Jr(this.id)}attachCamera(t){return this.id===-1||t.id===-1?l.warn("[StreamerObject]: Cannot attachCamera before both are created"):Qr(t.id,this.id)}attachToObject(t,n,r,i,a,s,o,_=!0){return this.id===-1||t.id===-1?l.warn("[StreamerObject]: Cannot attachToObject before both are created"):$r(this.id,t.id,n,r,i,a,s,o,_)}attachToPlayer(t,n,r,i,a,s,o){return this.id===-1||t.id===-1?l.warn("[StreamerObject]: Cannot attachToVehicle before both are created"):qr(this.id,t.id,n,r,i,a,s,o)}attachToVehicle(t,n,r,i,a,s,o){return this.id===-1||t.id===-1?l.warn("[StreamerObject]: Cannot attachToVehicle before both are created"):ei(this.id,t.id,n,r,i,a,s,o)}edit(t){return this.id===-1?l.warn("[StreamerObject]: Unable to edit before create"):(t.endObjectEditing(),ti(t.id,this.id))}isMaterialUsed(t){return this.id===-1?!1:ni(this.id,t)}removeMaterial(t){return this.id===-1||!this.isMaterialUsed(t)?0:ri(this.id,t)}getMaterial(t,n,r){return this.id===-1?l.warn("[StreamerObject]: Unable to get material before create"):ii(this.id,t,n,r)}setMaterial(t,n,r,i,a="#000"){return this.id===-1?l.warn("[StreamerObject]: Unable to set material before create"):ai(this.id,t,n,r,i,g(a))}isMaterialTextUsed(t){return this.id===-1?!1:si(this.id,t)}removeMaterialText(t){return this.isMaterialTextUsed(t)?di(this.id,t):0}getMaterialText(t){return this.id===-1?l.warn("[StreamerObject]: Unable to get material text before create"):go(this.id,t,this.sourceInfo.charset||L)}setMaterialText(t=this.sourceInfo.charset,n,r,i=oi.SIZE_256x128,a="Arial",s=24,o=1,_="#fff",c="#000",u=0){return this.id===-1?l.warn("[StreamerObject]: Unable to set material text before create"):(this.sourceInfo.charset=t,So(t||L,this.id,n,r,i,a,s,o,g(_),g(c),u))}getPlayerCameraTarget(t,n){const r=li(t.id);if(r!==C.OBJECT_ID)return n.get(r)}toggleCallbacks(t=!0){return this.id===-1?l.warn("[StreamerObject]: Unable to toggle callbacks before create"):P.toggleItemCallbacks(p.OBJECT,this.id,t)}isToggleCallbacks(){return this.id,P.isToggleItemCallbacks(p.OBJECT,this.id)}}class Z1{objects=new Map;players;constructor(t,n=!0){this.players=t,Ie.on(ne.created,r=>{this.objects.set(r.id,r)}),Ie.on(ne.destroyed,r=>{this.objects.delete(r.id)}),n&&E(()=>{this.objects.forEach(r=>r.destroy()),this.objects.clear()}),_i(r=>{const i=this.objects.get(r);return i?h(this,"onMoved")(i):0}),ci((r,i,a,s,o,_,c,u,y)=>{const S=this.objects.get(i);if(!S)return 0;const I=this.players.get(r);return I?h(this,"onPlayerEdit")(I,S,a,s,o,_,c,u,y):0}),hi((r,i,a,s,o,_)=>{const c=this.players.get(r);if(!c)return 0;const u=this.objects.get(i);return u?h(this,"onPlayerSelect")(c,u,a,s,o,_):0}),ui((r,i,a,s,o,_)=>{const c=this.players.get(r);if(!c)return 0;const u=this.objects.get(a);return u?h(this,"onPlayerShoot")(c,i,u,s,o,_):0}),P.onItemStreamIn((r,i,a)=>{if(r===p.OBJECT){const s=this.objects.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamIn")(s,o)}return 1}),P.onItemStreamOut((r,i,a)=>{if(r===p.OBJECT){const s=this.objects.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamOut")(s,o)}return 1})}getObjectsArr(){return[...this.objects.values()]}getObjectsMap(){return this.objects}}var re=(e=>(e.created="OnAreaCreate",e.destroyed="OnAreaDestroy",e))(re||{});const Ce=new D;class se{sourceInfo;_id=-1;get type(){return this.sourceInfo.type}get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[StreamerArea]: Unable to create area again");let{worldid:t,interiorid:n,playerid:r}=this.sourceInfo;const{type:i,extended:a}=this.sourceInfo;if(a)if(typeof t=="number"?t=[-1]:t??=[-1],typeof n=="number"?n=[-1]:n??=[-1],typeof r=="number"?r=[-1]:r??=[-1],i==="circle"){const{x:s,y:o,size:_}=this.sourceInfo;if(_<0)return l.error("[StreamerArea]: Invalid circle extend size");this._id=yi(s,o,_,t,n,r)}else if(i==="cuboid"){const{minx:s,miny:o,minz:_,maxx:c,maxy:u,maxz:y}=this.sourceInfo;this._id=mi(s,o,_,c,u,y,t,n,r)}else if(i==="cylinder"){const{x:s,y:o,minz:_,maxz:c,size:u}=this.sourceInfo;if(u<0)return l.error("[StreamerArea]: Invalid cylinder extend size");this._id=Si(s,o,_,c,u,t,n,r)}else if(i==="polygon"){const{points:s,minz:o,maxz:_}=this.sourceInfo;if(s.length%2!==0)return l.warn("[StreamerArea]: Unable to create polygon extended with asymmetrical points");this._id=gi(s,o,_,t,n,r)}else if(i==="rectangle"){const{minx:s,miny:o,maxx:_,maxy:c}=this.sourceInfo;this._id=Pi(s,o,_,c,t,n,r)}else{const{x:s,y:o,z:_,size:c}=this.sourceInfo;if(c<0)return l.error("[StreamerArea]: Invalid sphere extended size");this._id=pi(s,o,_,c,t,n,r)}else if(Array.isArray(t)?t=-1:t??=-1,Array.isArray(n)?n=-1:n??=-1,Array.isArray(r)?r=-1:r??=-1,i==="circle"){const{x:s,y:o,size:_}=this.sourceInfo;if(_<0)return l.error("[StreamerArea]: Invalid circle size");this._id=Ai(s,o,_,t,n,r)}else if(i==="cuboid"){const{minx:s,miny:o,minz:_,maxx:c,maxy:u,maxz:y}=this.sourceInfo;this._id=Ii(s,o,_,c,u,y,t,n,r)}else if(i==="cylinder"){const{x:s,y:o,minz:_,maxz:c,size:u}=this.sourceInfo;if(u<0)return l.error("[StreamerArea]: Invalid cylinder size");this._id=Ci(s,o,_,c,u,t,n,r)}else if(i==="polygon"){const{points:s,minz:o,maxz:_}=this.sourceInfo;if(s.length%2!==0)return l.warn("[StreamerArea]: Unable to create polygon with asymmetrical points");this._id=fi(s,o,_,t,n,r)}else if(i==="rectangle"){const{minx:s,miny:o,maxx:_,maxy:c}=this.sourceInfo;this._id=Ei(s,o,_,c,t,n,r)}else{const{x:s,y:o,z:_,size:c}=this.sourceInfo;if(c<0)return l.error("[StreamerArea]: Invalid sphere size");this._id=Ti(s,o,_,c,t,n,r)}return Ce.emit(re.created,this),this}destroy(){return this.id===-1?l.warn("[StreamerArea]: Unable to destroy the area before create"):(Di(this.id),Ce.emit(re.destroyed,this),this)}isValid(){return this.id===-1?!1:Li(this.id)}getType(){return this.id!==-1?l.warn("[StreamerArea]: Unable to get type before create"):Ri(this.id)}getPolygonPoints(){if(this.id!==-1)return l.warn("[StreamerArea]: Unable to get polygon points before create");if(this.type==="polygon")return bi(this.id)}getPolygonNumberPoints(){if(this.id!==-1)return l.warn("[StreamerArea]: Unable to get polygon points number before create");if(this.type==="polygon")return Bi(this.id)}isPlayerIn(t,n=!1){return this.id===-1?!1:Oi(t.id,this.id,n)}static isPlayerInAny(t,n=!1){return wi(t.id,n)}isAnyPlayerIn(t=!1){return this.id===-1?!1:ki(this.id,t)}static isAnyPlayerInAny(t=!1){return Gi(t)}static getPlayerAreas(t,n){return se.getPlayerAreasNumber(t)?Mi(t.id).map(r=>n.get(r)):[]}static getPlayerAreasNumber(t){return Fi(t.id)}isPointIn(t,n,r){return this.id===-1?!1:Ni(this.id,t,n,r)}static isPointInAny(t,n,r){return Hi(t,n,r)}isLineIn(t,n,r,i,a,s){return this.id===-1?!1:vi(this.id,t,n,r,i,a,s)}static isLineInAny(t,n,r,i,a,s){return xi(t,n,r,i,a,s)}static getForPoint(t,n,r,i){return se.getNumberForPoint(t,n,r)?Vi(t,n,r).map(a=>i.get(a)):[]}static getNumberForPoint(t,n,r){return Ui(t,n,r)}static getForLine(t,n,r,i,a,s,o){return se.getNumberForLine(t,n,r,i,a,s)?Wi(t,n,r,i,a,s).map(_=>o.get(_)):[]}static getNumberForLine(t,n,r,i,a,s){return Ki(t,n,r,i,a,s)}attachToObject(t,n=0,r=0,i=0){return this.id===-1||t.id===-1?l.warn("[StreamerArea]: Unable to toggle attach to object before create"):ji(this.id,t.id,Zi.DYNAMIC,C.PLAYER_ID,n,r,i)}attachToPlayer(t,n=0,r=0,i=0){return this.id===-1||t.id===-1?l.warn("[StreamerArea]: Unable to toggle attach to player before create"):zi(this.id,t.id,n,r,i)}attachToVehicle(t,n=0,r=0,i=0){return this.id===-1||t.id===-1?l.warn("[StreamerArea]: Unable to toggle attach to vehicle before create"):Xi(this.id,t.id,n,r,i)}toggleSpectateMode(t){return this.id===-1?l.warn("[StreamerArea]: Unable to toggle specate mode before create"):Yi(this.id,t)}isToggleSpectateMode(){return this.id===-1?!1:Ji(this.id)}toggleCallbacks(t=!0){return this.id===-1?l.warn("[StreamerArea]: Unable to toggle callbacks before create"):P.toggleItemCallbacks(p.AREA,this.id,t)}isToggleCallbacks(){return this.id,P.isToggleItemCallbacks(p.AREA,this.id)}}class z1{areas=new Map;players;constructor(t,n=!0){this.players=t,Ce.on(re.created,r=>{this.areas.set(r.id,r)}),Ce.on(re.destroyed,r=>{this.areas.has(r.id)&&this.areas.delete(r.id)}),n&&E(()=>{this.areas.forEach(r=>r.destroy()),this.areas.clear()}),Qi((r,i)=>{const a=this.players.get(r);if(!a)return 0;const s=this.areas.get(i);return s?h(this,"onPlayerEnter")(a,s):0}),$i((r,i)=>{const a=this.players.get(r);if(!a)return 0;const s=this.areas.get(i);return s?h(this,"onPlayerLeave")(a,s):0}),P.onItemStreamIn((r,i,a)=>{if(r===p.AREA){const s=this.areas.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamIn")(s,o)}return 1}),P.onItemStreamOut((r,i,a)=>{if(r===p.AREA){const s=this.areas.get(i),o=this.players.get(a);if(s&&o)return h(this,"onStreamOut")(s,o)}return 1})}getAreasArr(){return[...this.areas.values()]}getAreasMap(){return this.areas}}var ie=(e=>(e.created="OnTextDrawCreate",e.destroyed="OnTextDrawDestroy",e))(ie||{});const fe=new D;class m{static createdGlobalCount=0;static createdPlayerCount=0;sourceInfo;_id=-1;get id(){return this._id}constructor(t){this.sourceInfo=t}create(){if(this.id!==-1)return l.warn("[TextDraw]: Unable to create the textdraw again");const{x:t,y:n,text:r,player:i}=this.sourceInfo;if(i){if(m.createdPlayerCount===b.MAX_TEXT_DRAWS)return l.warn("[TextDraw]: Unable to continue to create textdraw, maximum allowable quantity has been reached");this._id=ah(i.id,t,n,r),m.createdPlayerCount++,samp.addEventListener("OnPlayerDisconnect",this.unregisterEvent)}else{if(m.createdGlobalCount===b.MAX_TEXT_DRAWS)return l.warn("[TextDraw]: Unable to continue to create textdraw, maximum allowable quantity has been reached");this._id=y_(t,n,r),m.createdGlobalCount++}return fe.emit(ie.created,{key:{id:this.id,global:i===void 0},value:this}),this}destroy(){if(this.id===-1)return m.beforeCreateWarn("destroy the textdraw");const{player:t}=this.sourceInfo;return t?(sh(t.id,this.id),m.createdPlayerCount--):(m_(this.id),m.createdGlobalCount--),fe.emit(ie.destroyed,{id:this.id,global:t===void 0}),this._id=-1,this}setFont(t){if(this.id===-1)return m.beforeCreateWarn("set font");const{player:n}=this.sourceInfo;return n?mh(n.id,this.id,t):T_(this.id,t),this}setColour(t){if(this.id===-1)return m.beforeCreateWarn("set Colour");const{player:n}=this.sourceInfo;return n?lh(n.id,this.id,t):p_(this.id,t),this}setBoxColours(t){if(this.id===-1)return m.beforeCreateWarn("set box Colour");const{player:n}=this.sourceInfo;return n?ch(n.id,this.id,t):I_(this.id,t),this}setBackgroundColours(t){if(this.id===-1)return m.beforeCreateWarn("set background Colour");const{player:n}=this.sourceInfo;return n?yh(n.id,this.id,t):E_(this.id,t),this}setAlignment(t){if(this.id===-1)return m.beforeCreateWarn("set alignment");const{player:n}=this.sourceInfo;return n?oh(n.id,this.id,t):P_(this.id,t),this}setLetterSize(t,n){if(this.id===-1)return m.beforeCreateWarn("set letter size");const{player:r}=this.sourceInfo;return r?dh(r.id,this.id,t,n):S_(this.id,t,n),this}setOutline(t){if(this.id===-1)return m.beforeCreateWarn("set outline model");if(t<0)return l.warn("[TextDraw]: Invalid outline value");const{player:n}=this.sourceInfo;return n?uh(n.id,this.id,t):f_(this.id,t),this}setPreviewModel(t){if(this.id===-1)return m.beforeCreateWarn("set preview model");this.setFont(Z.MODEL_PREVIEW);const{player:n}=this.sourceInfo;return n?Ih(n.id,this.id,t):k_(this.id,t),this}setPreviewRot(t,n,r,i=1){if(this.id===-1)return m.beforeCreateWarn("set preview rot");this.setFont(Z.MODEL_PREVIEW);const{player:a}=this.sourceInfo;return a?Ch(a.id,this.id,t,n,r,i):G_(this.id,t,n,r,i),this}setPreviewVehColours(t,n){if(this.id===-1)return m.beforeCreateWarn("set preview veh col");this.setFont(Z.MODEL_PREVIEW);const{player:r}=this.sourceInfo;return r?fh(r.id,this.id,t,n):M_(this.id,t,n),this}setProportional(t=!0){if(this.id===-1)return m.beforeCreateWarn("set Proportional");const{player:n}=this.sourceInfo;return n?Sh(n.id,this.id,t):D_(this.id,t),this}setSelectable(t){if(this.id===-1)return m.beforeCreateWarn("set Selectable");const{player:n}=this.sourceInfo;return n?gh(n.id,this.id,t):L_(this.id,t),this}setShadow(t){if(this.id===-1)return m.beforeCreateWarn("set shadow");if(t<0)return l.warn("[TextDraw]: Invalid shadow value");const{player:n}=this.sourceInfo;return n?hh(n.id,this.id,t):C_(this.id,t),this}setString(t){if(this.id===-1)return m.beforeCreateWarn("set string");if(t.length===0||t.length>1024)return l.warn("[TextDraw]: Invalid text length");const{player:n}=this.sourceInfo;return n?Ah(n.id,this.id,t):w_(this.id,t),this}setTextSize(t,n){return this.id===-1?m.beforeCreateWarn("set TextSize"):(g_(this.id,t,n),this)}useBox(t){if(this.id===-1)return m.beforeCreateWarn("set TextSize");const{player:n}=this.sourceInfo;return n?_h(n.id,this.id,t):A_(this.id,t),this}static beforeCreateWarn(t){l.warn(`[TextDraw]: Unable to ${t} before create`)}unregisterEvent(){return this.destroy(),samp.removeEventListener("OnPlayerDisconnect",this.unregisterEvent),1}show(t){if(this.id===-1)return m.beforeCreateWarn("show");const n=this.sourceInfo.player;if(n)Ph(n.id,this.id);else if(t)R_(t.id,this.id);else return l.warn("[TextDraw]: invalid player for show");return this}hide(t){if(this.id===-1)return m.beforeCreateWarn("hide");const n=this.sourceInfo.player;if(n)ph(n.id,this.id);else if(t)b_(t.id,this.id);else return l.warn("[TextDraw]: invalid player for hide");return this}showAll(){return this.id===-1?m.beforeCreateWarn("show"):this.sourceInfo.player?l.warn("[TextDraw]: player's textdraw should not be show for all."):(B_(this.id),this)}hideAll(){return this.id===-1?m.beforeCreateWarn("hideAll"):this.sourceInfo.player?l.warn("[TextDraw]: player's textdraw should not be hide for all."):(O_(this.id),this)}isValid(){const t=this.sourceInfo.player;return t?ud(t.id,this.id):yd(this.id)}isVisibleForPlayer(t){return this.id===-1?!1:md(t.id,this.id)}getString(){if(this.id===-1)return this.sourceInfo.text;const t=this.sourceInfo.player;return t?Sd(t.id,this.id):gd(this.id)}setPos(t,n){if(this.id===-1)return m.beforeCreateWarn("set position");const r=this.sourceInfo.player;return r?Pd(r.id,this.id,t,n):pd(this.id,t,n),this}getLetterSize(){if(this.id===-1)return m.beforeCreateWarn("get letter size");const t=this.sourceInfo.player;return t?Ad(t.id,this.id):Id(this.id)}getTextSize(){if(this.id===-1)return m.beforeCreateWarn("get text size");const t=this.sourceInfo.player;return t?Cd(t.id,this.id):fd(this.id)}getPos(){if(this.id===-1)return m.beforeCreateWarn("get position");const t=this.sourceInfo.player;return t?Ed(t.id,this.id):Td(this.id)}getColour(){if(this.id===-1)return m.beforeCreateWarn("get Colour");const t=this.sourceInfo.player;return t?Dd(t.id,this.id):Ld(this.id)}getBoxColour(){if(this.id===-1)return m.beforeCreateWarn("get box Colour");const t=this.sourceInfo.player;return t?Rd(t.id,this.id):bd(this.id)}getBackgroundColour(){if(this.id===-1)return m.beforeCreateWarn("get bg Colour");const t=this.sourceInfo.player;return t?Bd(t.id,this.id):Od(this.id)}getShadow(){if(this.id===-1)return m.beforeCreateWarn("get shadow");const t=this.sourceInfo.player;return t?wd(t.id,this.id):kd(this.id)}getOutline(){if(this.id===-1)return m.beforeCreateWarn("get outline");const t=this.sourceInfo.player;return t?Gd(t.id,this.id):Md(this.id)}getFont(){if(this.id===-1)return m.beforeCreateWarn("get font");const t=this.sourceInfo.player;return t?Fd(t.id,this.id):Nd(this.id)}isBox(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?Hd(t.id,this.id):vd(this.id)}isProportional(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?xd(t.id,this.id):Vd(this.id)}isSelectable(){if(this.id===-1)return!1;const t=this.sourceInfo.player;return t?Ud(t.id,this.id):Wd(this.id)}getAlignment(){if(this.id===-1)return m.beforeCreateWarn("get alignment");const t=this.sourceInfo.player;return t?Kd(t.id,this.id):jd(this.id)}getPreviewModel(){if(this.id===-1)return m.beforeCreateWarn("get preview model");const t=this.sourceInfo.player;return t?Zd(t.id,this.id):zd(this.id)}getPreviewRot(){if(this.id===-1)return m.beforeCreateWarn("get preview rotation");const t=this.sourceInfo.player;return t?Xd(t.id,this.id):Yd(this.id)}getPreviewVehColours(){if(this.id===-1)return m.beforeCreateWarn("get preview vel Colours");const t=this.sourceInfo.player;return t?Jd(t.id,this.id):Qd(this.id)}}class X1{textDraws=new Map;players;constructor(t,n=!0){this.players=t,fe.on(ie.created,r=>{this.textDraws.set(r.key,r.value)}),fe.on(ie.destroyed,r=>{this.textDraws.has(r)&&this.textDraws.delete(r)}),n&&E(()=>{this.textDraws.forEach(r=>r.destroy()),this.textDraws.clear()}),Ko((r,i)=>{const a=this.players.get(r);if(!a)return 0;const s=this.textDraws.get({id:i,global:!0});return h(this,"onPlayerClick")(a,s||C.TEXT_DRAW)}),jo((r,i)=>{const a=this.players.get(r);if(!a)return 0;const s=this.textDraws.get({id:i,global:!1});return h(this,"onPlayerClick")(a,s||C.TEXT_DRAW)})}}export{We as ArtworkEnum,nt as BodyPartsEnum,rt as BoneIdsEnum,_t as BulletHitTypesEnum,de as CameraCutStylesEnum,tt as CameraModesEnum,at as CarModTypeEnum,Ke as ClickSourcesEnum,Ze as ConnectionStatusEnum,Re as DamageDeathReasonEnum,T as Dialog,De as DialogStylesEnum,W1 as Dynamic3DTextLabel,K1 as Dynamic3dTextLabelEvent,V1 as DynamicActor,U1 as DynamicActorEvent,se as DynamicArea,z1 as DynamicAreaEvent,H1 as DynamicCheckPointEvent,N1 as DynamicCheckpoint,k1 as DynamicMapIcon,G1 as DynamicMapIconEvent,j1 as DynamicObject,Z1 as DynamicObjectEvent,M1 as DynamicPickup,F1 as DynamicPickupEvent,v1 as DynamicRaceCP,x1 as DynamicRaceCPEvent,B as ERecordStatus,ny as E_STREAMER,je as EditResponseTypesEnum,qe as FightingStylesEnum,ae as GameMode,B1 as GameText,F as GangZone,w1 as GangZoneEvent,cy as GangZonePos,A as I18n,hy as IActorAnimation,uy as IActorSpawn,yy as IAttachedData,my as IAttachedObject,Sy as IBounds,gy as ICheckPoint,Py as IMaterial,py as IMaterialText,Ay as IObjectPos,Iy as IObjectRotPos,Cy as IOffsets,fy as IPlayerClass,Ey as IQuat,Ty as IRaceCheckPoint,Dy as ITextDrawCommonSize,Ly as ITextDrawRot,Ry as IVehColor,by as IVehMatrix,By as IVehSpawnInfo,C as InvalidEnum,ze as KeysEnum,b as LimitsEnum,ry as MapIconStyles,et as MapIconStylesEnum,Xe as MarkerModesEnum,iy as MaterialTextSizes,Ee as Menu,O1 as MenuEvent,Ye as NPCPlaybackEnum,b1 as NetStats,sl as NpcEvent,w as NpcFunc,Qe as ObjectMaterialAlignmmentEnum,Je as ObjectMaterialTextSizeEnum,O as Player,j as PlayerEvent,N as PlayerStateEnum,ht as RecordTypesEnum,$e as SelectObjectTypesEnum,Le as SpecialActionsEnum,oe as SpectateModesEnum,P as Streamer,ay as StreamerAreaTypes,sy as StreamerDistances,dy as StreamerItemTypes,oy as StreamerMiscellaneous,ly as StreamerObjectTypes,m as TextDraw,it as TextDrawAlignEnum,X1 as TextDrawEvent,Z as TextDrawFontsEnum,x as Vehicle,D1 as VehicleEvent,dt as VehicleModelInfoEnum,st as VehicleParamsEnum,ot as WeaponEnum,lt as WeaponSkillsEnum,ct as WeaponStatesEnum,g as rgba};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infernus/core",
3
- "version": "0.8.7",
3
+ "version": "0.9.0",
4
4
  "description": "NodeJS library for Scripting Open Multiplayer",
5
5
  "keywords": [
6
6
  "omp",
@@ -16,15 +16,22 @@
16
16
  },
17
17
  "license": "MIT",
18
18
  "author": "dockfries",
19
+ "exports": {
20
+ ".": {
21
+ "require": "./dist/bundle.js",
22
+ "import": "./dist/bundle.mjs"
23
+ }
24
+ },
19
25
  "main": "dist/bundle.js",
26
+ "module": "dist/bundle.mjs",
20
27
  "types": "dist/bundle.d.ts",
21
28
  "dependencies": {
22
29
  "iconv-lite": "^0.6.3",
23
30
  "lodash": "^4.17.21",
24
31
  "pino": "~8.6.1",
25
32
  "pino-pretty": "^9.1.1",
26
- "@infernus/streamer": "0.2.3",
27
- "@infernus/wrapper": "0.2.3"
33
+ "@infernus/streamer": "0.2.4",
34
+ "@infernus/wrapper": "0.2.4"
28
35
  },
29
36
  "devDependencies": {
30
37
  "@types/lodash": "^4.14.192"
package/rollup.config.mjs CHANGED
@@ -13,7 +13,10 @@ const outputPath = "./dist";
13
13
  export default [
14
14
  {
15
15
  input: inputPath,
16
- output: { file: outputPath + "/bundle.js", format: "cjs" },
16
+ output: [
17
+ { file: outputPath + "/bundle.js", format: "cjs" },
18
+ { file: outputPath + "/bundle.mjs", format: "es" },
19
+ ],
17
20
  plugins: [
18
21
  del({ targets: outputPath + "/*" }),
19
22
  esbuild({ minify: true }),
@@ -23,7 +26,7 @@ export default [
23
26
  },
24
27
  {
25
28
  input: inputPath,
26
- output: [{ file: outputPath + "/bundle.d.ts", format: "cjs" }],
29
+ output: [{ file: outputPath + "/bundle.d.ts" }],
27
30
  plugins: [dts({ compilerOptions: { paths: compilerOptions.paths } })],
28
31
  },
29
32
  ];
package/.eslintrc DELETED
@@ -1,3 +0,0 @@
1
- {
2
- "extends": "@infernus/eslint-config"
3
- }
@@ -1,57 +0,0 @@
1
- import type { TEventFunc, TEventName } from "@/types";
2
- import type { PlayerEvent } from "../player";
3
-
4
- // This is an event bus for distributing instructions entered by the user.
5
- // You can bind a single instruction as a string, or you can bind multiple alias instructions as an array string
6
-
7
- type trigger = PlayerEvent<any>;
8
- type callFn<P = any> = TEventFunc<P>;
9
-
10
- export class CmdBus {
11
- readonly eventMap: Map<string, Map<trigger, callFn[]>> = new Map();
12
-
13
- on = (trigger: trigger, name: TEventName, fn: callFn | callFn[]) => {
14
- if (!(name instanceof Array)) name = [name];
15
- name.forEach((e) => {
16
- const events = this.eventMap.get(e);
17
- // No events registered
18
- if (!events) {
19
- this.eventMap.set(
20
- e,
21
- // init the trigger and fns
22
- new Map().set(trigger, fn instanceof Array ? fn : [fn])
23
- );
24
- } else {
25
- // Has event registration, but does not know if it already contains the same trigger (playerEvent instance)
26
- const registeredFns = events.get(trigger);
27
- // If registered, add fn to what you already have
28
- if (registeredFns) {
29
- (fn instanceof Array ? fn : [fn]).forEach((f) =>
30
- registeredFns.push(f)
31
- );
32
- } else {
33
- // this trigger not registered,init the trigger and fns
34
- events.set(trigger, fn instanceof Array ? fn : [fn]);
35
- }
36
- }
37
- });
38
- return () => this.off(trigger, name, fn);
39
- };
40
-
41
- off = (trigger: trigger, name: TEventName, fn: callFn | callFn[]) => {
42
- if (!(name instanceof Array)) name = [name];
43
- name.forEach((e) => {
44
- const events = this.eventMap.get(e);
45
- if (!events) return;
46
- const registeredFns = events.get(trigger);
47
- if (!registeredFns) return;
48
- if (!(fn instanceof Array)) fn = [fn];
49
- for (let i = 0; i < registeredFns.length; i++) {
50
- const f = registeredFns[i];
51
- if (!fn.includes(f)) continue;
52
- registeredFns.splice(i, 1);
53
- i--;
54
- }
55
- });
56
- };
57
- }