import type { Entity } from '../classes/Entity'; import type { ItemSet } from '../classes/ItemSet'; import type { Ped } from '../classes/Ped'; import type { Prop } from '../classes/Prop'; import type { Vehicle } from '../classes/Vehicle'; import type { Volume } from '../classes/Volume'; import type { ScrHandle } from '../types/NativeAliases'; 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 EntityStatics { /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 * @returns */ static N_0x5744562E973E33CD(p0: any, p1: any, p2: any, p3: any, p4: any): any { return inv('0x5744562E973E33CD', p0, p1, p2, p3, p4); } /** * @param p0 * @param p1 * @param p2 */ static N_0xC76E94A78127412B(p0: any, p1: any, p2: any): void { inv('0xC76E94A78127412B', p0, p1, p2); } /** * @param mount * @param visiblelootslotrequestType * @param flag * @param p4 * @param p5 * @returns argStruct */ static requestEntityLootList(mount: Ped, visiblelootslotrequestType: string | number, flag: int, p4: int, p5: boolean): [any, number] { const result = inv<[number, number]>('0xA88E215CEB0435C0', mount.handle, pvi(), _h(visiblelootslotrequestType), flag, p4, p5); return [result[0], result[1]]; } /** * This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. * * @returns ped */ static setPedAsNoLongerNeeded(): Ped | null { const result = inv('0x2595DD4236549CE3', pvi()); return createFromHandle('Ped', result); } /** * Returns BOOL in ida * * @param ped * @param p1 * @param p2 */ static N_0xC3ABCFBC7D74AFA5(ped: Ped, p1: int, p2: boolean): void { inv('0xC3ABCFBC7D74AFA5', ped.handle, p1, p2); } /** * @param p0 * @param p1 */ static N_0xE9E7A0BAC7F57746(p0: any, p1: any): void { inv('0xE9E7A0BAC7F57746', p0, p1); } /** * @param p0 * @param p1 * @returns */ static N_0x350E9211074955AF(p0: any, p1: any): any { return inv('0x350E9211074955AF', p0, p1); } /** * @param p0 */ static N_0xF41E2979D5BC5370(p0: any): void { inv('0xF41E2979D5BC5370', p0); } /** * @param model * @returns */ static isCarriableModel(model: string | number): boolean { return !!inv('0x5AFFA9DDC87846F8', _h(model), rai()); } /** * @param p0 * @param waypointRecord * @param bUseSnowOffset * @param p3 * @param p4 * @param p5 * @param p6 * @param p7 * @param p8 * @param p9 * @param p10 * @param bInit * @returns */ static createFootpathTrail(p0: any, waypointRecord: string, bUseSnowOffset: boolean, p3: float, p4: float, p5: any, p6: any, p7: any, p8: any, p9: any, p10: any, bInit: boolean): any { return inv('0x29BA9F78321E5A6C', p0, waypointRecord, bUseSnowOffset, f(p3), f(p4), p5, p6, p7, p8, p9, p10, bInit); } /** * This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. * * @returns object */ static setObjectAsNoLongerNeeded(): Prop | null { const result = inv('0x3AE22DEB5BA5A3E6', pvi()); return createFromHandle('Prop', result); } /** * @param p0 * @param p1 * @returns */ static N_0x188736456D1DEDE6(p0: any, p1: any): any { return inv('0x188736456D1DEDE6', p0, p1); } /** * Returns the ped's animal type hash: https://alloc8or.re/rdr3/doc/enums/eAnimalType.txt * Combine this with GET_STRING_FROM_HASH_KEY to display localized entity names * * @param ped * @returns */ static getPedAnimalType(ped: Ped): number { return (inv('0x964000D355219FC0', ped.handle, rai())) & 0xFFFFFFFF; } /** * @param p0 * @param p1 */ static N_0x119A5714578F4E05(p0: any, p1: any): void { inv('0x119A5714578F4E05', p0, p1); } /** * Params: p1 = 0 in R* Scripts (GET_DOOR_ENTITY_FROM_ID) * https://github.com/femga/rdr3_discoveries/blob/master/doorHashes/doorhashes.lua * * @param doorHash * @param p1 * @returns */ static getEntityByDoorhash(doorHash: string | number, p1: int): Entity | null { return createFromHandle('Entity', inv('0xF7424890E4A094C0', _h(doorHash), p1, rai())); } /** * @param p0 * @param p1 * @param p2 * @returns */ static N_0xE31FC20319874CB3(p0: any, p1: any, p2: any): any { return inv('0xE31FC20319874CB3', p0, p1, p2); } /** * @param pos * @param radius * @param model * @param p5 */ static createModelHide(pos: Vector3, radius: float, model: string | number, p5: boolean): void { inv('0x069848B3FB3C4426', f(pos.x), f(pos.y), f(pos.z), f(radius), _h(model), p5); } /** * Alternative Name: _GET_ENTITY_FROM_MAP_OBJECT; You can get existing objects and manipulate them using this native. * * @param modelHash * @returns */ static searchBuildingPoolForEntityWithThisModel(modelHash: string | number): Entity | null { return createFromHandle('Entity', inv('0x66B2B83B94B22458', _h(modelHash), rai())); } /** * @param p0 * @returns */ static N_0xF59FDE7B4D31A630(p0: any): any { return inv('0xF59FDE7B4D31A630', p0); } /** * @param p0 */ static N_0x0FD7D7C232876E72(p0: any): void { inv('0x0FD7D7C232876E72', p0); } /** * @param p0 * @returns */ static N_0xB16C780C51E51E2B(p0: any): any { return inv('0xB16C780C51E51E2B', p0); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 * @param p5 * @param p6 * @param p7 */ static N_0xD45BB89B53FC0CFD(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any, p7: any): void { inv('0xD45BB89B53FC0CFD', p0, p1, p2, p3, p4, p5, p6, p7); } /** * @param p0 * @returns */ static N_0xD21C7418C590BB40(p0: any): any { return inv('0xD21C7418C590BB40', p0); } /** * @param p0 * @returns */ static N_0xC2E71D7E0A7B4C89(p0: any): any { return inv('0xC2E71D7E0A7B4C89', p0); } /** * @param p0 * @param p1 */ static N_0x2D40BCBFE9305DEA(p0: any, p1: any): void { inv('0x2D40BCBFE9305DEA', p0, p1); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @returns */ static N_0xD46BF94C4C66FAB0(p0: any, p1: any, p2: any, p3: any): any { return inv('0xD46BF94C4C66FAB0', p0, p1, p2, p3); } /** * @param entityModelHash * @param pos * @param p4 * @returns */ static wouldEntityBeOccluded(entityModelHash: string | number, pos: Vector3, p4: boolean): boolean { return !!inv('0x3546FAB293FF2981', _h(entityModelHash), f(pos.x), f(pos.y), f(pos.z), p4, rai()); } /** * @param p0 */ static N_0x37CEB637BA3B1A47(p0: any): void { inv('0x37CEB637BA3B1A47', p0); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 * @returns */ static N_0xBA2A089E60ED1163(p0: any, p1: any, p2: any, p3: any, p4: any): any { return inv('0xBA2A089E60ED1163', p0, p1, p2, p3, p4); } /** * @param p0 * @param p1 */ static N_0xA9E6D8F2DDFC4DB9(p0: any, p1: any): void { inv('0xA9E6D8F2DDFC4DB9', p0, p1); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 * @param p5 */ static removeModelHide(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): void { inv('0x3F38A98576F6213A', p0, p1, p2, p3, p4, p5); } /** * @param volume * @param itemSet * @param entityType * @returns */ static getEntitiesInVolume(volume: Volume, itemSet: ItemSet, entityType: int): int { return inv('0x886171A12F400B89', volume.handle, itemSet.handle, entityType, rai()); } /** * @param p0 * @returns */ static N_0xAAACB74442C1BED3(p0: any): any { return inv('0xAAACB74442C1BED3', p0); } /** * @param p0 */ static N_0xEAB3D91D30A344F1(p0: any): void { inv('0xEAB3D91D30A344F1', p0); } /** * This is an alias of SET_ENTITY_AS_NO_LONGER_NEEDED. * * @returns vehicle */ static setVehicleAsNoLongerNeeded(): Vehicle | null { const result = inv('0x629BFA74418D6239', pvi()); return createFromHandle('Vehicle', result); } /** * @param p0 * @param p1 */ static N_0x6C31B06E91518269(p0: any, p1: any): void { inv('0x6C31B06E91518269', p0, p1); } /** * @param p0 * @returns */ static isMapEntityPinned(p0: any): boolean { return !!inv('0x1FF441D7954F8709', p0, rai()); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 */ static removeForcedObject(p0: any, p1: any, p2: any, p3: any, p4: any): void { inv('0x553FA683F2BCD814', p0, p1, p2, p3, p4); } /** * @param p0 * @returns */ static N_0xD4636C2EDB0DEA8A(p0: any): any { return inv('0xD4636C2EDB0DEA8A', p0); } /** * @param p0 * @returns */ static N_0x2A77EF9BEC8518F4(p0: any): any { return inv('0x2A77EF9BEC8518F4', p0); } /** * @param p0 * @param p1 * @param p2 */ static N_0xB38A29CCD5447783(p0: any, p1: any, p2: any): void { inv('0xB38A29CCD5447783', p0, p1, p2); } /** * @param vehicle * @returns */ static N_0x6D58167F62238284(vehicle: Vehicle): float { return inv('0x6D58167F62238284', vehicle.handle, raf()); } /** * @param p0 * @param p1 */ static N_0x7A49D40DE437BC8D(p0: any, p1: any): void { inv('0x7A49D40DE437BC8D', p0, p1); } /** * @param p0 */ static N_0x0DB41D59E0F1502B(p0: any): void { inv('0x0DB41D59E0F1502B', p0); } /** * Used when checking if ped is in water * * @param entity * @param p2 * @param ped * @param p4 * @param p5 * @returns p0 */ static N_0x383F64263F946E45(entity: Entity, p2: int, ped: Ped, p4: any, p5: int): [boolean, number] { const result = inv<[boolean, number]>('0x383F64263F946E45', pvi(), entity.handle, p2, ped.handle, p4, p5, rai()); return [!!result[0], result[1]]; } /** * @param p0 * @param p1 * @param p2 * @param p3 */ static N_0xDD03FC2089AD093C(p0: any, p1: any, p2: any, p3: any): void { inv('0xDD03FC2089AD093C', p0, p1, p2, p3); } /** * Old name: _HAS_COLLISION_LOADED_AT_COORDS * * @param pos * @returns */ static hasCollisionLoadedAroundPosition(pos: Vector3): any { return inv('0x6BFBDC46139C45AB', f(pos.x), f(pos.y), f(pos.z)); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 * @param p5 */ static N_0xBD94CECFB2D65119(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): void { inv('0xBD94CECFB2D65119', p0, p1, p2, p3, p4, p5); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 */ static N_0x16908E859C3AB698(p0: any, p1: any, p2: any, p3: any, p4: any): void { inv('0x16908E859C3AB698', p0, p1, p2, p3, p4); } /** * @param p0 * @param p1 */ static N_0x56E0735D6273B227(p0: any, p1: any): void { inv('0x56E0735D6273B227', p0, p1); } /** * @param animDictionary * @param animName * @param p2 * @returns p3; p4 */ static findAnimEventPhase(animDictionary: string, animName: string, p2: string): [boolean, number, number] { const result = inv<[boolean, number, number]>('0x42718CC559BD7776', animDictionary, animName, p2, pvi(), pvi(), rai()); return [!!result[0], result[1], result[2]]; } /** * @param ped */ static N_0x898586729DB5221D(ped: Ped): void { inv('0x898586729DB5221D', ped.handle); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 * @returns */ static N_0x8E10DF0FFA63FB65(p0: any, p1: any, p2: any, p3: any, p4: any): any { return inv('0x8E10DF0FFA63FB65', p0, p1, p2, p3, p4); } /** * @param p0 */ static N_0x7F20092547B4DDEA(p0: any): void { inv('0x7F20092547B4DDEA', p0); } /** * @param pos * @param radius * @param model * @param p5 */ static createModelHideExcludingScriptObjects(pos: Vector3, radius: float, model: string | number, p5: boolean): void { inv('0xD136090A9AAAB17D', f(pos.x), f(pos.y), f(pos.z), f(radius), _h(model), p5); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 * @param p5 */ static N_0xE75EEA8DB59A9F39(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any): void { inv('0xE75EEA8DB59A9F39', p0, p1, p2, p3, p4, p5); } /** * @param p0 * @param p1 */ static N_0x002AAC783ED323ED(p0: any, p1: any): void { inv('0x002AAC783ED323ED', p0, p1); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @returns */ static N_0x3AB3A77672F6473F(p0: any, p1: any, p2: any, p3: any): Vector3 { return Vector3.fromArray(inv('0x3AB3A77672F6473F', p0, p1, p2, p3, rav())); } /** * @param pos * @param radius * @param originalModel * @param newModel * @param p6 */ static removeModelSwap(pos: Vector3, radius: float, originalModel: string | number, newModel: string | number, p6: boolean): void { inv('0x824E1C26A14CB817', f(pos.x), f(pos.y), f(pos.z), f(radius), _h(originalModel), _h(newModel), p6); } /** * @param p0 * @param p1 */ static N_0xC6A1A3D63F122DE7(p0: any, p1: any): void { inv('0xC6A1A3D63F122DE7', p0, p1); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @returns */ static N_0x0CCEFC6C2C95DA2A(p0: any, p1: any, p2: any, p3: any): any { return inv('0x0CCEFC6C2C95DA2A', p0, p1, p2, p3); } /** * @param p0 * @param p1 * @returns */ static N_0x120376C23F019C6C(p0: any, p1: any): any { return inv('0x120376C23F019C6C', p0, p1); } /** * @param pos * @param radius * @param itemSet * @param p5 * @returns */ static getEntitiesNearPoint(pos: Vector3, radius: float, itemSet: ItemSet, p5: int): int { return inv('0x59B57C4B06531E1E', f(pos.x), f(pos.y), f(pos.z), f(radius), itemSet.handle, p5, rai()); } /** * @param pos * @param p3 * @param modelHash * @param p5 */ static createForcedObject(pos: Vector3, p3: any, modelHash: string | number, p5: boolean): void { inv('0x0961A905AFBC34C7', f(pos.x), f(pos.y), f(pos.z), p3, _h(modelHash), p5); } /** * @param volume * @param itemSet * @param entityType * @param p3 * @param p4 * @param p5 * @returns */ static getMatchingEntities(volume: Volume, itemSet: ItemSet, entityType: int, p3: any, p4: string | number, p5: string): int { return inv('0x84CCF9A12942C83D', volume.handle, itemSet.handle, entityType, p3, _h(p4), p5, rai()); } /** * @param modelHash * @param pos * @param flags * @returns */ static pinClosestMapEntity(modelHash: string | number, pos: Vector3, flags: int): any { return inv('0x6F3068258A499E52', _h(modelHash), f(pos.x), f(pos.y), f(pos.z), flags); } /** * @param p0 * @param p1 */ static N_0xE19035EB65AB2932(p0: any, p1: any): void { inv('0xE19035EB65AB2932', p0, p1); } /** * @param p0 */ static N_0x3F08C6163A4AB1D6(p0: any): void { inv('0x3F08C6163A4AB1D6', p0); } /** * @param p0 * @param p1 */ static N_0x978AA2323ED32209(p0: any, p1: any): void { inv('0x978AA2323ED32209', p0, p1); } /** * Only works with objects! * * @param pos * @param radius * @param originalModel * @param newModel * @param p6 */ static createModelSwap(pos: Vector3, radius: float, originalModel: string | number, newModel: string | number, p6: boolean): void { inv('0x10B2218320B6F5AC', f(pos.x), f(pos.y), f(pos.z), f(radius), _h(originalModel), _h(newModel), p6); } /** * @param handle * @returns */ static isAnEntity(handle: number): boolean { return !!inv('0x27CFF3E5A286D3DF', handle, rai()); } /** * @param p0 * @param p1 * @param p2 * @returns */ static N_0x582F73ACFE969571(p0: any, p1: any, p2: any): any { return inv('0x582F73ACFE969571', p0, p1, p2); } /** * @param p0 * @returns */ static getPinnedMapEntity(p0: any): Entity | null { return createFromHandle('Entity', inv('0x4735E2A4BB83D9DA', p0, rai())); } /** * @param p0 * @param p1 * @returns */ static N_0xDFC2B226D56D85F6(p0: any, p1: any): float { return inv('0xDFC2B226D56D85F6', p0, p1, raf()); } /** * @param animDict * @param animName * @returns */ static getAnimDuration(animDict: string, animName: string): float { return inv('0x9FFAF4940A54CC09', animDict, animName, raf()); } static N_0x0939E773925C4719(): void { inv('0x0939E773925C4719'); } /** * Hardcoded to return zero/false. * * @param p0 * @param p1 * @param p2 * @returns */ static N_0xDF8E49EA89A01DB1(p0: any, p1: any, p2: any): any { return inv('0xDF8E49EA89A01DB1', p0, p1, p2); } static N_0x20FAEE47427A4497(): void { inv('0x20FAEE47427A4497'); } /** * @param p0 * @param p1 * @param p2 */ static N_0x007AAC783ED323ED(p0: any, p1: any, p2: any): void { inv('0x007AAC783ED323ED', p0, p1, p2); } }