import type { eAmmoType } from '../enums/eAmmoType'; import type { eVehicleSeat } from '../enums/eVehicleSeat'; import type { eWeaponHash } from '../enums/eWeaponHash'; import type { Entity } from '../classes/Entity'; import type { Ped } from '../classes/Ped'; import type { Prop } from '../classes/Prop'; import type { Vehicle } from '../classes/Vehicle'; 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 WeaponStatics { /** * @param p0 * @param p1 * @param p2 */ static N_0xB0FB9B196A3D13F0(p0: any, p1: any, p2: any): void { inv('0xB0FB9B196A3D13F0', p0, p1, p2); } /** * @param entity * @param weaponName * @param weaponType * @returns */ static hasEntityBeenDamagedByWeapon(entity: Entity, weaponName: string | number, weaponType: int): any { return inv('0xDCF06D0CDFF68424', entity.handle, _h(weaponName), weaponType); } /** * @param weaponObject * @returns */ static getWeaponScale(weaponObject: Prop): float { return inv('0x22084CA699219624', weaponObject.handle, raf()); } /** * Returns iSpinHash * * @param emote * @param weaponEmoteTrickType * @returns */ static getWeaponGunSpinningWeaponEmoteTrickTypeHash(emote: string | number, weaponEmoteTrickType: int): number { return (inv('0xF4601C1203B1A78D', _h(emote), weaponEmoteTrickType, rai())) & 0xFFFFFFFF; } /** * Returns true if CWeaponInfoFlags::Flags::Gun is set. * * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponAGun(weaponHash: eWeaponHash): boolean { return !!inv('0x705BE297EEBDB95D', weaponHash, rai()); } /** * @param weaponObject * @param level * @param p2 */ static setWeaponSoot(weaponObject: Prop, level: float, p2: boolean): void { inv('0xA9EF4AD10BDDDB57', weaponObject.handle, f(level), p2); } /** * Returns weaponCollection Hash * Example: RE_POLICECHASE_MALES_01: Carbine Repeater + Knife, LO_AGRO_PED * * @param pedModel * @returns */ static getDefaultPedWeaponCollection(pedModel: string | number): number { return (inv('0xD42514C182121C23', _h(pedModel), rai())) & 0xFFFFFFFF; } /** * @param vehicle * @param seatIndex Refer to {@link eVehicleSeat} * @param heading * @param p3 */ static setVehicleWeaponHeading(vehicle: Vehicle, seatIndex: eVehicleSeat, heading: float, p3: boolean): void { inv('0x194D877FC5597B7D', vehicle.handle, seatIndex, f(heading), p3); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponLantern(weaponHash: eWeaponHash): boolean { return !!inv('0x79407D33328286C6', weaponHash, rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponRevolver(weaponHash: eWeaponHash): boolean { return !!inv('0xC212F1D05A8232BB', weaponHash, rai()); } /** * @param p0 */ static N_0x74C90AAACC1DD48F(p0: any): void { inv('0x74C90AAACC1DD48F', p0); } /** * @param weaponHash Refer to {@link eWeaponHash} * @param ammoCount * @param pos * @param showWorldModel * @param scale * @returns */ static createWeaponObject(weaponHash: eWeaponHash, ammoCount: int, pos: Vector3, showWorldModel: boolean, scale: float): Prop | null { return createFromHandle('Prop', inv('0x9888652B8BA77F73', weaponHash, ammoCount, f(pos.x), f(pos.y), f(pos.z), showWorldModel, f(scale), rai())); } /** * Returns true when the weapon passed is either a lasso, the camera or the binoculars * _IS_WEAPON_M* - _IS_WEAPON_P* * * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponKit(weaponHash: eWeaponHash): boolean { return !!inv('0x6ABAD7B0A854F8FB', weaponHash, rai()); } /** * @param entity * @param weaponHash Refer to {@link eWeaponHash} * @param ms * @returns */ static hasEntityBeenDamagedByWeaponRecently(entity: Entity, weaponHash: eWeaponHash, ms: int): any { return inv('0x9E2D5D6BC97A5F1E', entity.handle, weaponHash, ms); } /** * @param weaponObject * @returns */ static getWeaponDirt(weaponObject: Prop): float { return inv('0x810E8AE9AFEA7E54', weaponObject.handle, raf()); } /** * @param p0 */ static N_0xC5899C4CD2E2495D(p0: any): void { inv('0xC5899C4CD2E2495D', p0); } /** * Returns weaponHash * * @param weaponGroupHash * @param p1 * @param p2 * @param p3 * @returns */ static N_0xF8204EF17410BF43(weaponGroupHash: string | number, p1: float, p2: float, p3: any): number { return (inv('0xF8204EF17410BF43', _h(weaponGroupHash), f(p1), f(p2), p3, rai())) & 0xFFFFFFFF; } /** * @param ammoType * @returns */ static getWeaponTypeFromAmmoType(ammoType: string | number): number { return (inv('0x7AA043F6C41D151E', _h(ammoType), rai())) & 0xFFFFFFFF; } /** * Works exactly the same as * * @param weaponHash * @returns */ static getAmmoTypeForWeapon2(weaponHash: eWeaponHash): int { return inv('0xEC97101A8F311282', weaponHash, rai()); } /** * this native gets the weapon hash from the default ped weapon collection (see GetDefaultPedWeaponCollection for more info) will randomly return one of it's weapons * * @param weaponCollection * @param weaponGroup * @returns * @example * ```lua * local pedWeaponCollectionHash = GetDefaultPedWeaponCollection(joaat("mp_u_m_m_interrogator_01")) * local hash = Citizen.InvokeNative(0x9EEFD670F10656D7, pedWeaponCollectionHash, joaat("GROUP_REVOLVER")) * if hash and IsWeaponValid(hash) then * local name = GetWeaponName(hash) * local label = GetLabelText_2(name) * print(name, label) * end * ``` */ static getWeaponFromDefaultPedWeaponCollection(weaponCollection: int, weaponGroup: string | number): number { return (inv('0x9EEFD670F10656D7', weaponCollection, _h(weaponGroup), rai())) & 0xFFFFFFFF; } /** * entity can be a ped or weapon object. * * @param entity * @param componentHash * @param weaponHash Refer to {@link eWeaponHash} * @param p3 */ static giveWeaponComponentToEntity(entity: Entity, componentHash: string | number, weaponHash: eWeaponHash, p3: boolean): void { inv('0x74C9090FDD1BB48E', entity.handle, _h(componentHash), weaponHash, p3); } /** * @param p0 * @param p1 * @returns */ static N_0xA2091482ED42EF85(p0: any, p1: any): any { return inv('0xA2091482ED42EF85', p0, p1); } /** * @param weapon * @param addonHash * @returns */ static hasWeaponGotWeaponComponent(weapon: Prop, addonHash: string | number): boolean { return !!inv('0x76A18844E743BF91', weapon.handle, _h(addonHash), rai()); } /** * @param weaponObject * @returns */ static getWeaponSoot(weaponObject: Prop): float { return inv('0x4BF66F8878F67663', weaponObject.handle, raf()); } /** * Related to weapon visual damage, not actual damage. * * @param weaponObject * @param level * @param p2 */ static setWeaponDamage(weaponObject: Prop, level: float, p2: boolean): void { inv('0xE22060121602493B', weaponObject.handle, f(level), p2); } /** * @param p0 * @param p1 * @returns */ static N_0x74C8000FDD1BB111(p0: any, p1: any): any { return inv('0x74C8000FDD1BB111', p0, p1); } /** * _IS_WEAPON_CLOSE_RANGE? * returns true when it's lassos , melee, thrown weapons (matchetes and unarmed return false) * all guns ,bows and animal weapons return false * * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponCloseRange(weaponHash: eWeaponHash): boolean { return !!inv('0xEA522F991E120D45', weaponHash, rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponMeleeWeapon(weaponHash: eWeaponHash): boolean { return !!inv('0x959383DCD42040DA', weaponHash, rai()); } /** * @param ped * @param componentHash * @param p3 * @returns weaponObject */ static giveWeaponComponentToWeaponObject(ped: Ped, componentHash: string | number, p3: boolean): Prop | null { const result = inv('0x1A47699E8D533E8F', pvi(), ped.handle, _h(componentHash), p3); return createFromHandle('Prop', result); } /** * @param ammoHash Refer to {@link eAmmoType} * @returns */ static isAmmoSilent(ammoHash: eAmmoType): boolean { return !!inv('0xD2866CBA797E872E', ammoHash, rai()); } /** * @param p0 * @param p1 */ static N_0x641351E9AD103890(p0: any, p1: any): void { inv('0x641351E9AD103890', p0, p1); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeaponName2(weaponHash: eWeaponHash): string { return inv('0x6D3AC61694A791C5', weaponHash, ras()); } /** * @param weaponObject * @param level * @param p2 */ static setWeaponDirt(weaponObject: Prop, level: float, p2: boolean): void { inv('0x812CE61DEBCAB948', weaponObject.handle, f(level), p2); } /** * @param p0 */ static N_0xD4C6E24D955FF061(p0: any): void { inv('0xD4C6E24D955FF061', p0); } /** * @param weaponHash Refer to {@link eWeaponHash} * @param p1 * @param p2 */ static requestWeaponAsset(weaponHash: eWeaponHash, p1: int, p2: boolean): void { inv('0x72D4CB5DB927009C', weaponHash, p1, p2); } /** * Returns whether the weapon has multiple ammo types or not. * * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeaponHasMultipleAmmoTypes(weaponHash: eWeaponHash): any { return inv('0x58425FCA3D3A2D15', weaponHash); } /** * @param p0 * @param p1 */ static N_0x74C9080FDD1BB48E(p0: any, p1: any): void { inv('0x74C9080FDD1BB48E', p0, p1); } /** * every other level will have the max value of (brokeLevel - threshold) * * @param weaponObject * @param threshold */ static setWeaponLevelThreshold(weaponObject: Prop, threshold: float): void { inv('0xD4071EFC83794B2F', weaponObject.handle, f(threshold)); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponTwoHanded(weaponHash: eWeaponHash): boolean { return !!inv('0x0556E9D2ECF39D01', weaponHash, rai()); } /** * @param p0 * @returns */ static N_0x9F0E1892C7F228A8(p0: boolean): any { return inv('0x9F0E1892C7F228A8', p0); } /** * Only used in R* SP Script guama3 * * @param vehicle * @param p1 */ static N_0x9409C62504A8F9E9(vehicle: Vehicle, p1: boolean): void { inv('0x9409C62504A8F9E9', vehicle.handle, p1); } /** * @param p0 */ static N_0x457B16951AD77C1B(p0: any): void { inv('0x457B16951AD77C1B', p0); } /** * @param p0 * @returns */ static N_0xBC9444F2FF94A9C0(p0: any): any { return inv('0xBC9444F2FF94A9C0', p0); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponValid(weaponHash: eWeaponHash): boolean { return !!inv('0x937C71165CF334B3', weaponHash, rai()); } /** * @param p0 * @param p1 * @param p2 */ static N_0xE9B3FEC825668291(p0: any, p1: any, p2: any): void { inv('0xE9B3FEC825668291', p0, p1, p2); } /** * Returns true when the weapon passed is either the fishingrod, a lasso, the camera or the binoculars * _IS_WEAPON_M* - _IS_WEAPON_P* * * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponKit2(weaponHash: eWeaponHash): boolean { return !!inv('0x49E40483948AF062', weaponHash, rai()); } /** * 0.0: good condition, 1.0: poor condition * * @param weaponObject * @returns */ static getWeaponDegradation(weaponObject: Prop): float { return inv('0x0D78E1097F89E637', weaponObject.handle, raf()); } /** * @param p0 * @param p1 * @returns */ static N_0xFDCEDFB0577A390D(p0: any, p1: any): any { return inv('0xFDCEDFB0577A390D', p0, p1); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponPistol(weaponHash: eWeaponHash): boolean { return !!inv('0xDDC64F5E31EEDAB6', weaponHash, rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static hasWeaponAssetLoaded(weaponHash: eWeaponHash): any { return inv('0xFF07CF465F48B830', weaponHash); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponRepeater(weaponHash: eWeaponHash): boolean { return !!inv('0xDDB2578E95EF7138', weaponHash, rai()); } /** * @param vehicle * @param p1 * @param minHeading * @param maxHeading */ static setVehicleWeaponHeadingLimits(vehicle: Vehicle, p1: int, minHeading: float, maxHeading: float): void { inv('0x56CB3B4305A4F7CE', vehicle.handle, p1, f(minHeading), f(maxHeading)); } /** * @param p0 * @param p1 * @returns */ static N_0x74C8000FDD1BB222(p0: any, p1: any): any { return inv('0x74C8000FDD1BB222', p0, p1); } /** * @param weaponObject * @param scale */ static setWeaponScale(weaponObject: Prop, scale: float): void { inv('0xC3544AD0522E69B4', weaponObject.handle, f(scale)); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponSniper(weaponHash: eWeaponHash): boolean { return !!inv('0x6AD66548840472E5', weaponHash, rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponTorch(weaponHash: eWeaponHash): boolean { return !!inv('0x506F1DE1BFC75304', weaponHash, rai()); } /** * Gets the model hash from the weapon hash. * * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeapontypeModel(weaponHash: eWeaponHash): number { return (inv('0xF70825EB340E7D15', weaponHash, rai())) & 0xFFFFFFFF; } /** * @param p0 * @param p1 */ static N_0xD63B4BA3A02A99E0(p0: any, p1: any): void { inv('0xD63B4BA3A02A99E0', p0, p1); } /** * @param p0 * @param p1 */ static N_0x74C2365FDD1BB48F(p0: any, p1: any): void { inv('0x74C2365FDD1BB48F', p0, p1); } /** * @param weaponObject * @param component */ static removeWeaponComponentFromWeaponObject(weaponObject: Prop, component: string | number): void { inv('0xF7D82B0D66777611', weaponObject.handle, _h(component)); } /** * @param p0 * @param p1 * @returns */ static N_0xF2F585411E748B9C(p0: any, p1: any): any { return inv('0xF2F585411E748B9C', p0, p1); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeaponUnlock(weaponHash: eWeaponHash): number { return (inv('0x865F36299079FB75', weaponHash, rai())) & 0xFFFFFFFF; } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns Returns the ammo type, see: {@link eAmmoType} */ static getAmmoTypeForWeapon(weaponHash: eWeaponHash): number { return (inv('0x5C2EA6C44F515F34', weaponHash, rai())) & 0xFFFFFFFF; } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponKnife(weaponHash: eWeaponHash): boolean { return !!inv('0x792E3EF76C911959', weaponHash, rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponBow(weaponHash: eWeaponHash): boolean { return !!inv('0xC4DEC3CA8C365A5D', weaponHash, rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getCanTwirlWeapon(weaponHash: eWeaponHash): any { return inv('0x6554ECCE226F2A2A', weaponHash); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static shouldWeaponBeDiscardedWhenSwapped(weaponHash: eWeaponHash): any { return inv('0x2C83212A7AA51D3D', weaponHash); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponSilent(weaponHash: eWeaponHash): boolean { return !!inv('0x5809DBCA0A37C82B', weaponHash, rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponOneHanded(weaponHash: eWeaponHash): boolean { return !!inv('0xD955FEE4B87AFA07', weaponHash, rai()); } /** * @param p0 * @param p1 * @param p2 */ static N_0xD53846B9C931C181(p0: any, p1: any, p2: any): void { inv('0xD53846B9C931C181', p0, p1, p2); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeaponClipSize(weaponHash: eWeaponHash): int { return inv('0xD3750CCC00635FC2', weaponHash, rai()); } /** * @param p0 */ static N_0x000FA7A4A8443AF7(p0: any): void { inv('0x000FA7A4A8443AF7', p0); } /** * Only used in R* Script fme_escaped_convicts, p0 = 0 * * @param p0 */ static N_0x63B83A526329AFBC(p0: any): void { inv('0x63B83A526329AFBC', p0); } /** * Related to rust of weapons * * @param weaponObject * @returns */ static getWeaponPermanentDegradation(weaponObject: Prop): float { return inv('0xD56E5F336C675EFA', weaponObject.handle, raf()); } /** * @param weaponHash Refer to {@link eWeaponHash} */ static removeWeaponAsset(weaponHash: eWeaponHash): void { inv('0xC3896D03E2852236', weaponHash); } /** * @param p0 * @returns */ static N_0x23BF601A42F329A0(p0: any): any { return inv('0x23BF601A42F329A0', p0); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponRifle(weaponHash: eWeaponHash): boolean { return !!inv('0x0A82317B7EBFC420', weaponHash, rai()); } /** * @param p0 * @returns */ static N_0x3799EFCC3C8CD5E1(p0: any): any { return inv('0x3799EFCC3C8CD5E1', p0); } /** * @param p0 * @param p1 * @param p2 * @returns */ static N_0x9CCA3131E6B53C68(p0: any, p1: any, p2: any): any { return inv('0x9CCA3131E6B53C68', p0, p1, p2); } /** * @param componentHash * @returns */ static getWeaponComponentTypeModel(componentHash: string | number): number { return (inv('0x59DE03442B6C9598', _h(componentHash), rai())) & 0xFFFFFFFF; } /** * @param weaponObject * @param level */ static setWeaponDegradation(weaponObject: Prop, level: float): void { inv('0xA7A57E89E965D839', weaponObject.handle, f(level)); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponShotgun(weaponHash: eWeaponHash): boolean { return !!inv('0xC75386174ECE95D5', weaponHash, rai()); } /** * @param ammoHash Refer to {@link eAmmoType} * @returns */ static isAmmoValid(ammoHash: eAmmoType): boolean { return !!inv('0x1F7977C9101F807F', ammoHash, rai()); } /** * @param ammoHash Refer to {@link eAmmoType} * @returns */ static isAmmoSilent2(ammoHash: eAmmoType): boolean { return !!inv('0x7EFACC589B98C488', ammoHash, rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @param permanentDegradationLevel * @returns */ static getWeaponNameWithPermanentDegradation(weaponHash: eWeaponHash, permanentDegradationLevel: float): string { return inv('0x7A56D66C78D8EF8E', weaponHash, f(permanentDegradationLevel), ras()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @param ammoHash Refer to {@link eAmmoType} * @returns */ static isAmmoTypeValidForWeapon(weaponHash: eWeaponHash, ammoHash: eAmmoType): boolean { return !!inv('0xC570B881754DF609', weaponHash, ammoHash, rai()); } /** * @param p0 * @param p1 */ static N_0x183CE355115B6E75(p0: any, p1: any): void { inv('0x183CE355115B6E75', p0, p1); } /** * @param p0 * @param p1 */ static N_0x74C9080FDD1BB48F(p0: any, p1: any): void { inv('0x74C9080FDD1BB48F', p0, p1); } /** * @param vehicle * @param p1 * @param minHeading * @param maxHeading * @returns */ static setVehicleWeaponHeadingLimits2(vehicle: Vehicle, p1: int, minHeading: float, maxHeading: float): any { return inv('0xBF5987E1CDE63501', vehicle.handle, p1, f(minHeading), f(maxHeading)); } /** * @param p0 * @param p1 * @returns */ static N_0x486C96A0DCD2BC92(p0: any, p1: any): any { return inv('0x486C96A0DCD2BC92', p0, p1); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns Returns the {@link eWeaponAttachPoint} */ static getDefaultWeaponAttachPoint(weaponHash: eWeaponHash): int { return inv('0x65DC4AC5B96614CB', weaponHash, rai()); } /** * Related to weapon visual damage, not actual damage. * * @param weaponObject * @returns */ static getWeaponDamage(weaponObject: Prop): float { return inv('0x904103D5D2333977', weaponObject.handle, raf()); } /** * @param p0 * @param p1 */ static N_0x404514D231DB27A0(p0: any, p1: any): void { inv('0x404514D231DB27A0', p0, p1); } /** * @param listen */ static listenProjectileHitEvents(listen: boolean): void { inv('0xDA5D3F2C6DD5B5D4', listen); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeapontypeGroup(weaponHash: eWeaponHash): number { return (inv('0xEDCA14CA5199FF25', weaponHash, rai())) & 0xFFFFFFFF; } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponLasso(weaponHash: eWeaponHash): boolean { return !!inv('0x6E4E1A82081EABED', weaponHash, rai()); } /** * @param p0 * @returns */ static N_0xAFFD0CCF31F469B8(p0: any): any { return inv('0xAFFD0CCF31F469B8', p0); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponThrowable(weaponHash: eWeaponHash): boolean { return !!inv('0x30E7C16B12DA8211', weaponHash, rai()); } /** * Returns "WNS_INVALID" if the weapon is invalid/doesn't exist. * * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeaponName(weaponHash: eWeaponHash): string { return inv('0x89CF5FF3D363311E', weaponHash, ras()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeaponStatId(weaponHash: eWeaponHash): number { return (inv('0x8EC44AE8DECFF841', weaponHash, rai())) & 0xFFFFFFFF; } /** * Returns hash where WEAPON_ is replaced with SLOT_ * * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static getWeapontypeSlot(weaponHash: eWeaponHash): number { return (inv('0x46F032B8DDF46CDE', weaponHash, rai())) & 0xFFFFFFFF; } /** * @param p0 * @param p1 * @param p2 */ static N_0xA3716A77DCF17424(p0: any, p1: any, p2: any): void { inv('0xA3716A77DCF17424', p0, p1, p2); } /** * @param weaponCollection * @param dualwieldVariant * @returns */ static N_0xF252A85B8F3F8C58(weaponCollection: string | number, dualwieldVariant: string | number): boolean { return !!inv('0xF252A85B8F3F8C58', _h(weaponCollection), _h(dualwieldVariant), rai()); } /** * @param weaponHash Refer to {@link eWeaponHash} * @returns */ static isWeaponBinoculars(weaponHash: eWeaponHash): boolean { return !!inv('0xC853230E76A152DF', weaponHash, rai()); } /** * @param p0 * @param p1 * @returns */ static N_0xD2209866B0CB72EA(p0: any, p1: any): any { return inv('0xD2209866B0CB72EA', p0, p1); } /** * @param p0 * @param p1 * @param p2 */ static N_0xA769D753922B031B(p0: any, p1: any, p2: any): void { inv('0xA769D753922B031B', p0, p1, p2); } /** * @param p0 */ static N_0xECBB26529A737EF6(p0: any): void { inv('0xECBB26529A737EF6', p0); } /** * turretHash: WEAPON_TURRET_MAXIUM, WEAPON_TURRET_GATLING, WEAPON_TURRET_CANNON, WEAPON_TURRET_REVOLVING_CANNON * * @param vehicle * @param turretHash * @param ammo */ static setAmmoInTurret(vehicle: Vehicle, turretHash: string | number, ammo: int): void { inv('0xBDDA0C290C228159', vehicle.handle, _h(turretHash), ammo); } }