import type { eCrimeType } from '../enums/eCrimeType'; import type { Entity } from '../classes/Entity'; import type { ItemSet } from '../classes/ItemSet'; import type { Ped } from '../classes/Ped'; import type { Player } from '../classes/Player'; import type { Volume } from '../classes/Volume'; import { Vector2 } from '../types/Vector2'; import { Vector3 } from '../types/Vector3'; import { Vector4 } from '../types/Vector4'; import { Color } from '../types/Color'; import { createFromHandle } from '../types/HandleRegistry'; import { inv, rai, raf, ras, rav, pvi, pvf, pvv, pvii, pvfi, _h, f, int, uint, float, Hash, u8, u16, u32, u64, i8, i16, i32, i64 } from '../types/NativeAliases'; export class Law { /** * enum eLawRegion : Hash * { * LAW_DISPATCH_REGION_NONE = 0, * LAW_REGION_AGUASDULCES = 0x2F573EBE, * LAW_REGION_ANNESBURG = 0x68CAFD50, * LAW_REGION_ARMADILLO = 0xF0B90756, * LAW_REGION_BAYOU_NWA = 0x80966B1C, * LAW_REGION_BEECHERS_HOPE = 0xE2544977, * LAW_REGION_BIG_VALLEY = 0x3DF1559A, * LAW_REGION_BLACKWATER = 0x60D4886D, * LAW_REGION_BLACKWATER_MAINGAME = 0x66553576, * LAW_REGION_BLUEGILL_MARSH = 0x1D6AED8E, * LAW_REGION_BRAITHWAITE_MANOR = 0x3D71E7FF, * LAW_REGION_BUTCHER_CREEK = 0x2B3E1822, * LAW_REGION_CALIGA_HALL = 0xF3FE5080, * LAW_REGION_CORNWALL = 0xCC4672FA, * LAW_REGION_CUMBERLAND_FOREST = 0x81A78306, * LAW_REGION_EMERALD_RANCH = 0x5C069DF3, * LAW_REGION_FORT_WALLACE = 0x0AF25192, * LAW_REGION_GREAT_PLAINS = 0xB20573FA, * LAW_REGION_GREAT_PLAINS_MAINGAME = 0x9862FF7C, * LAW_REGION_GRIZZLIES = 0xBB936031, * LAW_REGION_GUAMA = 0x200DFF42, * LAW_REGION_HEARTLANDS = 0xAD14DA65, * LAW_REGION_LAGRAS = 0xC64808D3, * LAW_REGION_MACFARLANES_RANCH = 0x396A7D5F, * LAW_REGION_MANICATO = 0x039DB6BF, * LAW_REGION_MANZANITA_POST = 0x895E580E, * LAW_REGION_MANZANITA_POST_MAINGAME = 0x9BDD6A38, * LAW_REGION_OCCUPIED_CARAVAN_CAMP = 0x7EBABB01, * LAW_REGION_OLD_MAP_WILDERNESS = 0xCBB45950, * LAW_REGION_OLD_MAP_WILDERNESS_MAINGAME = 0x9F839BE7, * LAW_REGION_OUTLAW3 = 0x97A02FC1, * LAW_REGION_PRONGHORN_RANCH = 0x398E4BFC, * LAW_REGION_RHODES = 0x89222928, * LAW_REGION_RHODES_LOCKDOWN = 0xB1181671, * LAW_REGION_RIDGEWOOD_FARM = 0x635C3028, * LAW_REGION_ROANOKE_RIDGE = 0x46386A9A, * LAW_REGION_SAINT_DENIS = 0x5CF7C268, * LAW_REGION_SAINT_DENIS_RURAL = 0x4FD5331A, * LAW_REGION_SCARLETT_MEADOWS = 0x5FDD9717, * LAW_REGION_SISIKA = 0x2B6BBA52, * LAW_REGION_STRAWBERRY = 0xDD932620, * LAW_REGION_TALL_TREES = 0xD939B758, * LAW_REGION_TALL_TREES_MAINGAME = 0x084B17DF, * LAW_REGION_THIEVES_LANDING = 0x3D0C2EB6, * LAW_REGION_THIEVES_LANDING_MAINGAME = 0x61C450F3, * LAW_REGION_TUMBLEWEED = 0x0EFAF8DC, * LAW_REGION_VALENTINE = 0xA7A3F0C3, * LAW_REGION_VALENTINE_LOCKDOWN = 0x123582FE, * LAW_REGION_VAN_HORN = 0x619B528E, * LAW_REGION_WAPITI = 0x7A976E02 * }; * * @param player * @param lawRegionHash * @param stateHash */ static setLawRegion(player: Player, lawRegionHash: string | number, stateHash: string | number): void { inv('0x4752F68EB7F2D280', player.handle, _h(lawRegionHash), _h(stateHash)); } /** * @param toggle */ static setAllowDisabledLawResponses(toggle: boolean): void { inv('0x4B52BF96E225D230', toggle); } /** * @param p0 */ static N_0xDCF12B89624AAC96(p0: boolean): void { inv('0xDCF12B89624AAC96', p0); } /** * Only used in resapwn_dump_body R* Script * * @param p0 */ static N_0x2001687F9562FD9D(p0: any): void { inv('0x2001687F9562FD9D', p0); } /** * Note: This native is only used in multiplayer scripts * dispatchResponseHash: see update1/common/data/dispatchresponses/.. * * @param dispatchResponseHash */ static setCustomLawDispatchResponse(dispatchResponseHash: string | number): void { inv('0x009CF9A29972C298', _h(dispatchResponseHash)); } /** * _CLEAR* * * @param player * @param p1 */ static N_0x390710D2DAFA6BFF(player: Player, p1: boolean): void { inv('0x390710D2DAFA6BFF', player.handle, p1); } /** * @param player * @returns */ static N_0xE083BEDA81709891(player: Player): int { return inv('0xE083BEDA81709891', player.handle, rai()); } /** * @param player * @returns */ static getBounty(player: Player): int { return inv('0x54310AAB97B92816', player.handle, rai()); } /** * Force clears local player's wanted level */ static setBountyHunterPursuitCleared(): void { inv('0x55F37F5F3F2475E1'); } /** * Only used in R* Script fm_mission_controller * *CLEAR_WANTED** */ static N_0x292AD61A33A7A485(): void { inv('0x292AD61A33A7A485'); } /** * Only used in shoprobberies * * @param entity * @returns */ static N_0x7351DA734F989F4E(entity: Entity): boolean { return !!inv('0x7351DA734F989F4E', entity.handle, rai()); } /** * @param player */ static clearWantedScore(player: Player): void { inv('0x062B4A4A3396351D', player.handle); } /** * Default range is 1.0f * * @param player * @param range */ static setLawSenseRangeModifier(player: Player, range: float): void { inv('0xFEC85339AACA2A35', player.handle, f(range)); } /** * @param name * @param volume */ static setGuardZoneVolumeWarning(name: string, volume: Volume): void { inv('0xAD3E07C37A7C1ADC', name, volume.handle); } /** * Only used in rcm_gunslinger1_1 R* Script: p0 = 0 * * @param p0 */ static N_0x82F11E1296996574(p0: int): void { inv('0x82F11E1296996574', p0); } /** * Used in SP only * *REPORT** * * @param player * @param lawRegionHash */ static N_0x22741652985C84D0(player: Player, lawRegionHash: string | number): void { inv('0x22741652985C84D0', player.handle, _h(lawRegionHash)); } /** * @param player * @param itemValueAmount */ static addBounty(player: Player, itemValueAmount: int): void { inv('0x0E3BDEED21BEB945', player.handle, itemValueAmount); } /** * @param player * @returns */ static N_0x9D5C9A5A3321B128(player: Player): boolean { return !!inv('0x9D5C9A5A3321B128', player.handle, rai()); } /** * @param player * @param p2 * @returns crimeType: Refer to {@link eCrimeType} */ static N_0x6ABC50979655BEE7(player: Player, p2: any): number { const result = inv('0x6ABC50979655BEE7', player.handle, pvi(), p2); return result; } /** * @param ped * @returns */ static N_0x856CE8FDE2416602(ped: Ped): boolean { return !!inv('0x856CE8FDE2416602', ped.handle, rai()); } /** * @param player * @param amount */ static setBounty(player: Player, amount: int): void { inv('0x093A9D1F72DF0D19', player.handle, amount); } /** * @returns p0 */ static N_0xC687A23E166DCF68(): [any, number] { const result = inv<[number, number]>('0xC687A23E166DCF68', pvi()); return [result[0], result[1]]; } /** * Only used in sisikapenitentiary R* Script: name = SISIKA * _IS_G* or _IS_H* * * @param name * @returns */ static N_0x0DBACA9C38C9A686(name: string): boolean { return !!inv('0x0DBACA9C38C9A686', name, rai()); } /** * Only used in net_fetch R* Script * * @param crimeType Refer to {@link eCrimeType} * @returns */ static N_0x0BDFEBCF40A5F7E3(crimeType: eCrimeType): int { return inv('0x0BDFEBCF40A5F7E3', crimeType, rai()); } /** * @param player * @param lawRegionHash */ static setPlayerArrestedInRegion(player: Player, lawRegionHash: string | number): void { inv('0xE0FA74AA3CCE650B', player.handle, _h(lawRegionHash)); } /** * behaviour: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/CLawBehavior__Flags * * @param ped * @param behaviour */ static setPedLawBehaviour(ped: Ped, behaviour: int): void { inv('0x819ADD5EF1742F47', ped.handle, behaviour); } /** * @param player * @returns */ static N_0x0F230DE0DDBE3649(player: Player): boolean { return !!inv('0x0F230DE0DDBE3649', player.handle, rai()); } /** * @param player */ static resetWantedForNewIncident(player: Player): void { inv('0x2728C77FBC4B9796', player.handle); } /** * _SET_C* - _SET_D* * * @param player * @param crimeType Refer to {@link eCrimeType} * @param bounty * @param p3 * @param p4 * @param p5 * @param p6 * @param p7 * @param p8 */ static N_0xEDFC6C1FD1C964F5(player: Player, crimeType: eCrimeType, bounty: int, p3: float, p4: float, p5: boolean, p6: float, p7: float, p8: any): void { inv('0xEDFC6C1FD1C964F5', player.handle, crimeType, bounty, f(p3), f(p4), p5, f(p6), f(p7), p8); } /** * @param player * @param dispatchResponseHash */ static reportPlayerLawDispatchResponseOverride(player: Player, dispatchResponseHash: string | number): void { inv('0x9C4352134B2835FB', player.handle, _h(dispatchResponseHash)); } /** * @param player * @returns */ static areWitnessesActive(player: Player): any { return inv('0x69E181772886F48B', player.handle); } /** * @param p0 */ static N_0x331D349E0380B097(p0: any): void { inv('0x331D349E0380B097', p0); } static N_0xDEA083C16BB91345(): void { inv('0xDEA083C16BB91345'); } /** * @param player * @param p1 * @param p2 * @returns */ static N_0x89E005B1662F6E48(player: Player, p1: int, p2: int): boolean { return !!inv('0x89E005B1662F6E48', player.handle, p1, p2, rai()); } /** * @param multiplier */ static setDispatchMultiplierOverride(multiplier: float): void { inv('0x002BABE0B7D53136', f(multiplier)); } /** * @param player * @param p1 */ static setLawRbsVolume(player: Player, p1: string | number): void { inv('0x9BBDCB8DF789EBC1', player.handle, _h(p1)); } /** * Only used in loanshark_miner1 R* Script: name = ANNESBURG_MINES * * @param ped * @param name */ static N_0x9772395CC73E8D1F(ped: Ped, name: string): void { inv('0x9772395CC73E8D1F', ped.handle, name); } /** * @param name * @param pos */ static setGuardZonePosition2(name: string, pos: Vector3): void { inv('0x2F9005E2EA4E5EE4', name, f(pos.x), f(pos.y), f(pos.z)); } /** * Only used in trainrobbery_ambient R* Script * * @returns */ static areLawPedsEnabledForTrain(): any { return inv('0xA22C46F16359471C'); } /** * Returns p1 value for 0xE4D6E45F491A66CB * * @param player * @returns */ static N_0xE9EB79CBF9C0F58A(player: Player): int { return inv('0xE9EB79CBF9C0F58A', player.handle, rai()); } /** * Called together with REPORT_POLICE_SPOTTED_PLAYER */ static N_0xBD944A3D36E992DE(): void { inv('0xBD944A3D36E992DE'); } /** * @param toggle */ static enableDispatchLaw2(toggle: boolean): void { inv('0x710448D44A64C213', toggle); } /** * Seems to disable lawmen guarding behaviors (like during a region lockdown). Must be called every frame. * Only used in R* SP Scripts, mostly used in train_fast_travel_core */ static N_0xE94B5E938619712E(): void { inv('0xE94B5E938619712E'); } /** * Only used in R* SP Scripts * Params: p1 = 0 * * @param p0 * @param p1 */ static N_0xE9AC8466ABE484BB(p0: boolean, p1: any): void { inv('0xE9AC8466ABE484BB', p0, p1); } /** * @param player * @returns */ static N_0x26934083D3F2579C(player: Player): boolean { return !!inv('0x26934083D3F2579C', player.handle, rai()); } /** * @param name * @param volume */ static setGuardZoneVolumeRestricted(name: string, volume: Volume): void { inv('0x35815F372D43E1E5', name, volume.handle); } /** * @param player * @returns Refer to {@link eCrimeType} */ static getHudPlayerCrimeType(player: Player): number { return (inv('0x259CE340A8738814', player.handle, rai())) & 0xFFFFFFFF; } /** * @param name */ static createGuardZone(name: string): void { inv('0x8F9DE75680275C9F', name); } /** * @param p0 */ static N_0x987BE590FB9D41E5(p0: boolean): void { inv('0x987BE590FB9D41E5', p0); } /** * @param player * @returns */ static isLawIncidentActive(player: Player): boolean { return !!inv('0xAD401C63158ACBAA', player.handle, rai()); } /** * @param p0 */ static N_0x3852237A3D9DF145(p0: int): void { inv('0x3852237A3D9DF145', p0); } static N_0x29CD4896ECB66C12(): void { inv('0x29CD4896ECB66C12'); } /** * @param toggle */ static enableDispatchLaw(toggle: boolean): void { inv('0xC805EB785824F712', toggle); } /** * @param player * @param p1 */ static setPostponeDisturbanceCrimesDuringCombat(player: Player, p1: boolean): void { inv('0x362086B911657B1A', player.handle, p1); } /** * @param player * @param p1 * @returns crimeType: Refer to {@link eCrimeType} */ static N_0xB527099D1E1EED49(player: Player, p1: int): [boolean, number] { const result = inv<[boolean, number]>('0xB527099D1E1EED49', player.handle, p1, pvi(), rai()); return [!!result[0], result[1]]; } /** * Only used in rcm_serial_killer1 R* Script * * @param ped * @returns */ static N_0xC0DF161950FB101E(ped: Ped): boolean { return !!inv('0xC0DF161950FB101E', ped.handle, rai()); } /** * @param crimeType Refer to {@link eCrimeType} * @param p1 * @returns */ static N_0xDAEFDFDB2AEECE37(crimeType: eCrimeType, p1: any): int { return inv('0xDAEFDFDB2AEECE37', crimeType, p1, rai()); } /** * Only used in R* SP Scripts * Params: p1 = true, p2 = false * * @param itemSet * @param p1 * @param p2 */ static N_0xDA1A9ADC4E3D4B16(itemSet: ItemSet, p1: boolean, p2: boolean): void { inv('0xDA1A9ADC4E3D4B16', itemSet.handle, p1, p2); } /** * @param player * @param p1 * @param p2 * @returns */ static N_0x3738B784DDD35CC6(player: Player, p1: int, p2: int): boolean { return !!inv('0x3738B784DDD35CC6', player.handle, p1, p2, rai()); } /** * *SET_DISPATCH** * * @param flag * @param p1 */ static N_0x7EF2A2FE38D74456(flag: int, p1: boolean): void { inv('0x7EF2A2FE38D74456', flag, p1); } /** * @param player * @returns data */ static N_0xCBFB4951F2E3934C(player: Player): number { const result = inv('0xCBFB4951F2E3934C', player.handle, pvi()); return result; } /** * @param player * @param p1 */ static setDisableDisturbanceCrimes(player: Player, p1: boolean): void { inv('0xDE5FAA741A781F73', player.handle, p1); } /** * @param player * @param crimeType Refer to {@link eCrimeType} * @param p2 * @param p3 * @param p4 */ static suppressCrimeThisFrame(player: Player, crimeType: eCrimeType, p2: int, p3: int, p4: int): void { inv('0x785177E4D57D7389', player.handle, crimeType, p2, p3, p4); } /** * @param player * @param crimeType Refer to {@link eCrimeType} * @param bounty * @param entity * @param isKnownSuspect */ static reportCrime(player: Player, crimeType: eCrimeType, bounty: int, entity: Entity, isKnownSuspect: boolean): void { inv('0xF60386770878A98F', player.handle, crimeType, bounty, entity.handle, isKnownSuspect); } /** * p0 is always BOUNTYHUNTERSGLOBALCOOLDOWN in R* scripts * * @param p0 * @returns */ static getBountyHunterGlobalCooldown(p0: string | number): int { return inv('0x76CF93D4B416B288', _h(p0), rai()); } /** * p0 is always BOUNTYHUNTERSGLOBALCOOLDOWN in R* scripts * * @param p0 * @param p1 */ static setBountyHunterGlobalCooldown(p0: string | number, p1: int): void { inv('0xF19706B1F8FFA88F', _h(p0), p1); } /** * Only used in R* SP Scripts * * @param player * @param p1 */ static N_0x5E6F375CA101C108(player: Player, p1: boolean): void { inv('0x5E6F375CA101C108', player.handle, p1); } /** * @param crimeType Refer to {@link eCrimeType} * @param p1 */ static N_0xF611DE44AEB36A1D(crimeType: eCrimeType, p1: boolean): void { inv('0xF611DE44AEB36A1D', crimeType, p1); } /** * @param pedGroup1 * @param ped * @param pedGroup2 * @param pos * @param crimeType * @returns */ static witnessResponseTask(pedGroup1: Ped, ped: Ped, pedGroup2: Ped, pos: Vector3, crimeType: eCrimeType): any { return inv('0xF0B67BAD53C35BD9', pedGroup1.handle, ped.handle, pedGroup2.handle, f(pos.x), f(pos.y), f(pos.z), crimeType); } /** * @param ped * @returns */ static isGuardPedInvestigating(ped: Ped): boolean { return !!inv('0xD743C4293F47AFAD', ped.handle, rai()); } /** * @param name * @param volume */ static setGuardZoneVolumeRegistrationStart(name: string, volume: Volume): void { inv('0x8C598A930F471938', name, volume.handle); } /** * @param player * @returns */ static N_0x9945A3E2528A02E8(player: Player): boolean { return !!inv('0x9945A3E2528A02E8', player.handle, rai()); } /** * @param player */ static clearPlayerPastCrimes(player: Player): void { inv('0xBCC6DC59E32A2BDC', player.handle); } /** * @param player * @returns */ static areWitnessesPending(player: Player): any { return inv('0x0BB6DE7D23C60626', player.handle); } /** * Returns true when investigation creation was successful * * @param guardZoneName * @param entity * @param pos * @returns */ static createGuardZoneForEntity(guardZoneName: string, entity: Entity, pos: Vector3): boolean { return !!inv('0x0D4B77E862475ED3', guardZoneName, entity.handle, f(pos.x), f(pos.y), f(pos.z), rai()); } /** * Returns the amount of time (probably in game minutes) since last seen by the law / left the wanted radius * * @param player * @returns */ static getTimeSinceLastSeenByLaw(player: Player): float { return inv('0x717DA2281DF90855', player.handle, raf()); } /** * Params: p0 either 0, 1 or -1 in R* Scripts * Set to 0 called together with _SUPPRESS_CRIME * * @param p0 */ static N_0x15ABD5004CAD2D99(p0: int): void { inv('0x15ABD5004CAD2D99', p0); } /** * @param toggle */ static setLawDisabled(toggle: boolean): void { inv('0x8DE82BC774F3B862', toggle); } /** * @param player * @param itemSet */ static N_0x522F74636DF10201(player: Player, itemSet: ItemSet): void { inv('0x522F74636DF10201', player.handle, itemSet.handle); } /** * @param player */ static clearBounty(player: Player): void { inv('0xC76F252371150D9A', player.handle); } /** * *GET_DISPATCH** * * @param flag * @returns */ static N_0xC7DC5A0A7DF608CB(flag: int): boolean { return !!inv('0xC7DC5A0A7DF608CB', flag, rai()); } /** * Only used in shoprobberies R* Scripts * * @returns */ static N_0x9EF07CFBB19A9733(): boolean { return !!inv('0x9EF07CFBB19A9733', rai()); } static forceLawOnLocalPlayerImmediately(): void { inv('0x956510F8C36B5C64'); } /** * Returns amount of suppressed crimes to be used later in the function MPINTRO_CRIME_MONITOR_MAINTAIN * * @param player * @param crimeType Refer to {@link eCrimeType} * @returns */ static numCrimesSuppressed(player: Player, crimeType: eCrimeType): int { return inv('0xC08E804C91F47C80', player.handle, crimeType, rai()); } /** * @param name */ static disableGuardZone(name: string): void { inv('0x26D558692B25DD95', name); } /** * @param player */ static N_0x61B98367D93F012F(player: Player): void { inv('0x61B98367D93F012F', player.handle); } /** * @param enable */ static setCantLoseLawThisResponse(enable: boolean): void { inv('0xDDCE8E960D1DE240', enable); } /** * @param player * @param intensity */ static setWantedScore(player: Player, intensity: int): void { inv('0xA80FF73F772ACF6A', player.handle, intensity); } /** * dispatchResponseHash: see common/data/dispatchresponses/.. * * @param pos * @param dispatchResponseHash * @returns */ static createLawDispatchResponseForCoords(pos: Vector3, dispatchResponseHash: string | number): any { return inv('0x75CBF20BA47E4F89', f(pos.x), f(pos.y), f(pos.z), _h(dispatchResponseHash)); } /** * @param ped * @param crimeType Refer to {@link eCrimeType} * @param p2 * @returns */ static N_0xFFEBE5AA96BC2E4E(ped: Ped, crimeType: eCrimeType, p2: boolean): any { return inv('0xFFEBE5AA96BC2E4E', ped.handle, crimeType, p2); } /** * @param player * @param p1 */ static N_0xD6C0A8C7C0B2F82C(player: Player, p1: boolean): void { inv('0xD6C0A8C7C0B2F82C', player.handle, p1); } /** * @param name * @param volume */ static setGuardZoneVolumeThreat(name: string, volume: Volume): void { inv('0xA1B0E6301E2E02A6', name, volume.handle); } /** * @param name * @param pos */ static setGuardZonePosition(name: string, pos: Vector3): void { inv('0x7E7BF59F89FC6C6D', name, f(pos.x), f(pos.y), f(pos.z)); } /** * Only used in R* SP Scripts * Params: p2 either 1 or 2 * * @param player * @param crimeType Refer to {@link eCrimeType} * @param p2 */ static N_0xD7494DED50C6EF52(player: Player, crimeType: eCrimeType, p2: int): void { inv('0xD7494DED50C6EF52', player.handle, crimeType, p2); } /** * @param p0 */ static N_0xC5EB2755FA25F1E9(p0: boolean): void { inv('0xC5EB2755FA25F1E9', p0); } /** * @param name */ static removeGuardZone(name: string): void { inv('0x67EBDD958835956C', name); } /** * @param p0 */ static N_0x9B4C564BFA7CFF37(p0: float): void { inv('0x9B4C564BFA7CFF37', f(p0)); } /** * Only used in R* SP Script av_amb_camp_robbery * * @param ped * @returns p1 */ static N_0x318F0F9A4426CFA2(ped: Ped): [any, number] { const result = inv<[number, number]>('0x318F0F9A4426CFA2', ped.handle, pvi()); return [result[0], result[1]]; } /** * @param player * @param areInvestigatorsActive * @param p2 * @returns */ static areInvestigatorsActive(player: Player, areInvestigatorsActive: boolean, p2: any): any { return inv('0xF0FBFB9AB15F7734', player.handle, areInvestigatorsActive, p2); } /** * Used in SP only, called together with _SET_BOUNTY_HUNTER_PURSUIT_CLEARED & CLEAR_WANTED_SCORE * *REPORT** * * @param player */ static N_0x07E8B8B20570271C(player: Player): void { inv('0x07E8B8B20570271C', player.handle); } /** * @param ped * @returns */ static N_0x0EAF918F751F27BA(ped: Ped): boolean { return !!inv('0x0EAF918F751F27BA', ped.handle, rai()); } /** * @param player * @param ped * @returns outCoords */ static N_0x21213B833EF4DAE7(player: Player, ped: Ped): Vector3 { const result = inv('0x21213B833EF4DAE7', player.handle, ped.handle, pvv()); return Vector3.fromArray(result); } /** * @param pos * @param p3 * @param itemSet */ static N_0x0C392DB374655176(pos: Vector3, p3: float, itemSet: ItemSet): void { inv('0x0C392DB374655176', f(pos.x), f(pos.y), f(pos.z), f(p3), itemSet.handle); } /** * Only used in R* Script long_update * Returns a value thats being subtracted from GET_GAME_TIMER * * @param player * @returns */ static N_0x7FC667F6DDFBCDCC(player: Player): int { return inv('0x7FC667F6DDFBCDCC', player.handle, rai()); } /** * @param player * @param p1 * @returns crimeType: Refer to {@link eCrimeType} */ static getPlayerRegisteredCrime(player: Player, p1: int): [any, number] { const result = inv<[number, number]>('0x532C5FDDB986EE5C', player.handle, p1, pvi()); return [result[0], result[1]]; } /** * @param name * @param volume */ static setGuardZoneVolumeRegistrationEnd(name: string, volume: Volume): void { inv('0xA8A74AA79FB67159', name, volume.handle); } /** * @returns */ static N_0xF46108C50A22B029(): boolean { return !!inv('0xF46108C50A22B029', rai()); } /** * @param player * @param lawRegionHash */ static setPlayerTurnedInBountyInRegion(player: Player, lawRegionHash: string | number): void { inv('0x73BAD7B2F2DB50DE', player.handle, _h(lawRegionHash)); } static N_0x7803436E68C32B26(): void { inv('0x7803436E68C32B26'); } /** * Returns bounty (increment) value * * @param crimeType Refer to {@link eCrimeType} * @returns */ static getCrimeBountyAmountByType(crimeType: eCrimeType): int { return inv('0x35E5E21F9159849C', crimeType, rai()); } /** * @returns crimeType: Refer to {@link eCrimeType} */ static N_0x9C5BD8C562565CE6(): number { const result = inv('0x9C5BD8C562565CE6', pvi()); return result; } /** * @param player * @param p1 * @returns */ static N_0xE4D6E45F491A66CB(player: Player, p1: int): any { return inv('0xE4D6E45F491A66CB', player.handle, p1); } /** * @param player * @param crimeType Refer to {@link eCrimeType} * @param pedGroup */ static addWitnessResponse(player: Player, crimeType: eCrimeType, pedGroup: Ped): void { inv('0x10827B5A0AAC56A7', player.handle, crimeType, pedGroup.handle); } /** * @returns */ static N_0x3D2674828A4E6B3C(): boolean { return !!inv('0x3D2674828A4E6B3C', rai()); } /** * @param ped * @returns p1 */ static N_0x018F30D762E62DF8(ped: Ped): [any, number] { const result = inv<[number, number]>('0x018F30D762E62DF8', ped.handle, pvi()); return [result[0], result[1]]; } /** * @param player * @returns */ static N_0x148E7AC8141C9E64(player: Player): number { return (inv('0x148E7AC8141C9E64', player.handle, rai())) & 0xFFFFFFFF; } /** * Only used in rcm_homerob00 R* Script * * @returns */ static areAnyLawPedsInvestigating(): boolean { return !!inv('0xECE3C34B270428D5', rai()); } /** * @param entity * @param ped * @param p2 * @param pos * @param crimeType Refer to {@link eCrimeType} * @returns */ static N_0x95878B13E272EF1F(entity: Entity, ped: Ped, p2: boolean, pos: Vector3, crimeType: eCrimeType): any { return inv('0x95878B13E272EF1F', entity.handle, ped.handle, p2, f(pos.x), f(pos.y), f(pos.z), crimeType); } /** * Only used in act_bankrobbery01 R* Script * * @param player * @param itemSet */ static N_0x9C8A2BF37E966464(player: Player, itemSet: ItemSet): void { inv('0x9C8A2BF37E966464', player.handle, itemSet.handle); } /** * p0 is always BOUNTYHUNTERSGLOBALCOOLDOWN in R* scripts * * @param p0 * @param p1 * @param p2 */ static pauseBountyHunterCooldown(p0: string | number, p1: boolean, p2: any): void { inv('0xC61EDEBF16CD9668', _h(p0), p1, p2); } static N_0xC310239ACCCF5579(): void { inv('0xC310239ACCCF5579'); } /** * @param ped * @returns */ static N_0x40851BCC33ACD9AB(ped: Ped): boolean { return !!inv('0x40851BCC33ACD9AB', ped.handle, rai()); } /** * @param player * @returns */ static getWantedScore(player: Player): int { return inv('0xDD5FD601481F648B', player.handle, rai()); } /** * @param ped * @param bitset */ static N_0x00DB0BC05E3FAA4E(ped: Ped, bitset: int): void { inv('0x00DB0BC05E3FAA4E', ped.handle, bitset); } }