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 { 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 Stats { /** * statId: see STAT_ID_IS_VALID * * @returns statId; date */ static statIdGetDate(): [boolean, number, number] { const result = inv<[boolean, number, number]>('0x8B0FACEFC36C824C', pvi(), pvi(), rai()); return [!!result[0], result[1], result[2]]; } /** * @param chalHash * @param index * @returns */ static weeklyCollectibleGetItemSetBuyAward(chalHash: string | number, index: int): number { return (inv('0x610783F646894D25', _h(chalHash), index, rai())) & 0xFFFFFFFF; } /** * @returns */ static N_0x332630B862277879(): any { return inv('0x332630B862277879'); } /** * statId: see STAT_ID_IS_VALID * * @returns statId */ static statIdSetToPosseId(): number { const result = inv('0x34B22DE38477EDB4', pvi()); return result; } /** * statId: see STAT_ID_IS_VALID * * @returns statId; p1 */ static statIdGetInt(): [boolean, number, number] { const result = inv<[boolean, number, number]>('0x767FBC2AC802EF3E', pvi(), pvi(), rai()); return [!!result[0], result[1], result[2]]; } /** * @param fish * @param weight * @param category * @param subcategory */ static statItemFishCaught(fish: Ped, weight: float, category: string | number, subcategory: string | number): void { inv('0xDA26263C87CCE9C1', fish.handle, f(weight), _h(category), _h(subcategory)); } /** * @param p0 */ static N_0x378D3B1B11D9385B(p0: int): void { inv('0x378D3B1B11D9385B', p0); } /** * @param chalHash * @param goalHash * @param value */ static chalAddGoalProgressInt(chalHash: string | number, goalHash: string | number, value: int): void { inv('0xDDBD560745B1EE9A', _h(chalHash), _h(goalHash), value); } /** * @param chalHash */ static chalNetStartChal(chalHash: string | number): void { inv('0x4ABF7E4DB6279E8F', _h(chalHash)); } /** * @param unlockHash * @param ped1 * @param ped2 */ static N_0xF2B5ABDE09958689(unlockHash: string | number, ped1: Ped, ped2: Ped): void { inv('0xF2B5ABDE09958689', _h(unlockHash), ped1.handle, ped2.handle); } /** * @param p0 * @param value */ static chalAddGoalProgressIntByScoreId(p0: string | number, value: int): void { inv('0xDDBD560745B1EE9C', _h(p0), value); } /** * Related to animal tagging * * @param animalType */ static statAddAnimalSampleTarget(animalType: string | number): void { inv('0x90E9A5DADBABC918', _h(animalType)); } /** * Only used in R* Script net_char_creator */ static N_0x4F2D5FA23DB992DE(): void { inv('0x4F2D5FA23DB992DE'); } /** * Calculation: (value / 1000) / 60 % 60 * * @param value * @returns */ static statCalculateCooldown(value: int): int { return inv('0x1E7384AB5D4F4581', value, rai()); } /** * @param p0 * @param p1 * @returns */ static N_0xB112B9262EC29C20(p0: string | number, p1: int): string { return inv('0xB112B9262EC29C20', _h(p0), p1, ras()); } /** * @param chalHash * @param goalHash * @param value */ static chalSetGoalProgressInt(chalHash: string | number, goalHash: string | number, value: int): void { inv('0xDDBD560745B1EE9B', _h(chalHash), _h(goalHash), value); } /** * statId: see STAT_ID_IS_VALID * * @param value * @param p2 * @returns statId */ static statIdSetInt(value: int, p2: boolean): [boolean, number] { const result = inv<[boolean, number]>('0xA4DDF5DF95E65EEE', pvi(), value, p2, rai()); return [!!result[0], result[1]]; } /** * @param p0 * @returns */ static N_0x8BA3D7B1E83EF803(p0: string | number): number { return (inv('0x8BA3D7B1E83EF803', _h(p0), rai())) & 0xFFFFFFFF; } /** * @param p0 * @returns */ static N_0xCA1F0B5103936891(p0: string | number): boolean { return !!inv('0xCA1F0B5103936891', _h(p0), rai()); } /** * @returns */ static N_0x3AEABAE3F3C7600C(): boolean { return !!inv('0x3AEABAE3F3C7600C', rai()); } /** * @param p0 */ static N_0x025E98E317652CDD(p0: int): void { inv('0x025E98E317652CDD', p0); } /** * @param p0 */ static N_0x4FCBCC0584CD08E9(p0: string | number): void { inv('0x4FCBCC0584CD08E9', _h(p0)); } /** * statId: see STAT_ID_IS_VALID * * @param p2 * @returns statId; date */ static statIdSetDate(p2: boolean): [boolean, number, number] { const result = inv<[boolean, number, number]>('0x1FAE9B2FAA2DFE06', pvi(), pvi(), p2, rai()); return [!!result[0], result[1], result[2]]; } /** * @param entity */ static statBountyCaptured(entity: Entity): void { inv('0x262EF7CF49CF1EB9', entity.handle); } /** * @param p0 * @param p1 * @returns */ static chalAchievementGetProgressInt(p0: string | number, p1: string | number): int { return inv('0x808712E428F697B8', _h(p0), _h(p1), rai()); } /** * @returns */ static N_0x997060BC223ADFF9(): any { return inv('0x997060BC223ADFF9'); } /** * @param chalHash * @param goalHash */ static chalNetStopGoal(chalHash: string | number, goalHash: string | number): void { inv('0x00CE6A93324A590B', _h(chalHash), _h(goalHash)); } /** * @param p0 * @param p1 */ static trackerDeedStarted(p0: string | number, p1: any): void { inv('0xB2A38826E5886E83', _h(p0), p1); } /** * statId: see STAT_ID_IS_VALID * * @param value * @returns statId */ static statIdDecrementInt(value: int): number { const result = inv('0xBD861AE8A5181ED7', pvi(), value); return result; } /** * statId: see STAT_ID_IS_VALID * * @param p1 * @returns statId; p2 */ static N_0x302E71C1D9EE75B9(p1: string | number): [boolean, number, number] { const result = inv<[boolean, number, number]>('0x302E71C1D9EE75B9', pvi(), _h(p1), pvi(), rai()); return [!!result[0], result[1], result[2]]; } /** * statId: see STAT_ID_IS_VALID * Only used in R* SP Scripts * *STAT_ID_SET** * * @param value * @returns statId */ static N_0xE141F6B40B1E3683(value: float): number { const result = inv('0xE141F6B40B1E3683', pvi(), f(value)); return result; } /** * @param missionHash * @param goalHash * @param value */ static chalMissionAddGoalProgressInt(missionHash: string | number, goalHash: string | number, value: int): void { inv('0x97E18E7C098626DE', _h(missionHash), _h(goalHash), value); } /** * @param p0 * @param p1 * @returns */ static N_0xCAAE29CB5591B2A5(p0: any, p1: any): any { return inv('0xCAAE29CB5591B2A5', p0, p1); } /** * @param missionHash * @param goalHash * @returns */ static chalMissionIsGoalComplete(missionHash: string | number, goalHash: string | number): any { return inv('0xC0BB774787BBF301', _h(missionHash), _h(goalHash)); } /** * @param p0 * @param p1 * @param p2 */ static N_0xF21A5D66874FCEDD(p0: any, p1: string | number, p2: string | number): void { inv('0xF21A5D66874FCEDD', p0, _h(p1), _h(p2)); } /** * statId: see STAT_ID_IS_VALID * * @param label * @param p2 * @returns statId */ static statIdSetGxtLabel(label: string, p2: boolean): [boolean, number] { const result = inv<[boolean, number]>('0x05060A54834F2382', pvi(), label, p2, rai()); return [!!result[0], result[1]]; } /** * @param chalHash * @param setIndex * @param itemIndex * @returns p3; p4 */ static weeklyCollectibleGetItemInSet(chalHash: string | number, setIndex: int, itemIndex: int): [any, number, number] { const result = inv<[number, number, number]>('0xBA61BA6205A3F5A8', _h(chalHash), setIndex, itemIndex, pvi(), pvi()); return [result[0], result[1], result[2]]; } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 */ static N_0x6123E2832C34243D(p0: any, p1: any, p2: any, p3: any, p4: any): void { inv('0x6123E2832C34243D', p0, p1, p2, p3, p4); } /** * struct StatId * { * alignas(8) Hash BaseId; * alignas(8) Hash PermutationId; * } * * @returns statId */ static statIdIsValid(): [boolean, number] { const result = inv<[boolean, number]>('0xC48FE1971C9743FF', pvi(), rai()); return [!!result[0], result[1]]; } /** * statId: see STAT_ID_IS_VALID * * @param entity * @returns statId */ static statPheromoneCooldownLegendaryAnimal(entity: Entity): [boolean, number] { const result = inv<[boolean, number]>('0x5420D398A42917FC', entity.handle, pvi(), rai()); return [!!result[0], result[1]]; } /** * @param ped * @param p1 */ static N_0xA596890CF55B5095(ped: Ped, p1: boolean): void { inv('0xA596890CF55B5095', ped.handle, p1); } /** * @param ped */ static statCarriedSatchelItemFromPed(ped: Ped): void { inv('0x831BF01C56149A8A', ped.handle); } /** * statId: see STAT_ID_IS_VALID * * @param value * @returns statId */ static statIdIncrementFloat(value: float): number { const result = inv('0x4A47E38EA3D60939', pvi(), f(value)); return result; } /** * Only used in R* Script net_char_creator */ static N_0x4E463A3CDEFFFE96(): void { inv('0x4E463A3CDEFFFE96'); } /** * @returns */ static N_0x3F6FD87D2030ADC6(): string { return inv('0x3F6FD87D2030ADC6', ras()); } /** * @param p0 */ static N_0xE5A680A5D8B1F687(p0: int): void { inv('0xE5A680A5D8B1F687', p0); } /** * @param chalHash */ static chalNetStopChal(chalHash: string | number): void { inv('0x43B0163154A50C86', _h(chalHash)); } /** * @param ped */ static N_0xF8181B5EF156862C(ped: Ped): void { inv('0xF8181B5EF156862C', ped.handle); } /** * @param unlockHash * @param ped * @param animalType */ static N_0xBE66B26B6529E943(unlockHash: string | number, ped: Ped, animalType: string | number): void { inv('0xBE66B26B6529E943', _h(unlockHash), ped.handle, _h(animalType)); } /** * https://github.com/femga/rdr3_discoveries/blob/master/AI/EVENTS/challenge_goals.lua * * @param chalHash * @param goalHash * @returns */ static chalIsGoalActive(chalHash: string | number, goalHash: string | number): any { return inv('0x04DAC3929796EB87', _h(chalHash), _h(goalHash)); } /** * @param unlockHash * @param ped */ static statAddBountyTarget(unlockHash: string | number, ped: Ped): void { inv('0x6B1044FDC2B09101', _h(unlockHash), ped.handle); } /** * statId: see STAT_ID_IS_VALID * * @returns statId; value */ static statIdGetBool(): [boolean, number, boolean] { const result = inv<[boolean, number, number]>('0x11B5E6D2AE73F48F', pvi(), pvi(), rai()); return [!!result[0], result[1], !!result[2]]; } /** * @param chalHash * @param goalHash */ static chalNetStartGoal(chalHash: string | number, goalHash: string | number): void { inv('0xC3FCB47344DCB638', _h(chalHash), _h(goalHash)); } /** * @param deedType * @param deedHash * @param missionStatus * @returns data */ static trackerDeedStatus(deedType: int, deedHash: string | number, missionStatus: int): number { const result = inv('0xD5910ECF81A2278C', deedType, _h(deedHash), missionStatus, pvi()); return result; } /** * @param deedHash */ static statRegisterLegendaryAnimalDeed(deedHash: string | number): void { inv('0xCD0D69C65BB0E8B9', _h(deedHash)); } /** * @param statItem * @param p1 */ static N_0x3EB2791A1FBC8A42(statItem: string | number, p1: int): void { inv('0x3EB2791A1FBC8A42', _h(statItem), p1); } /** * @param ped * @param animalType */ static N_0xD64DBC8B0424135F(ped: Ped, animalType: string | number): void { inv('0xD64DBC8B0424135F', ped.handle, _h(animalType)); } /** * @param chalHash * @param goalHash * @param value */ static chalAddGoalProgressFloat(chalHash: string | number, goalHash: string | number, value: float): void { inv('0x86922D8C02FB7703', _h(chalHash), _h(goalHash), f(value)); } /** * statId: see STAT_ID_IS_VALID * * @param value * @param p2 * @returns statId */ static statIdSetBool(value: boolean, p2: boolean): [boolean, number] { const result = inv<[boolean, number]>('0x3B5107353267D7A1', pvi(), value, p2, rai()); return [!!result[0], result[1]]; } /** * @param p0 * @param value */ static chalAddGoalProgressFloatByScoreId(p0: string | number, value: float): void { inv('0x86922D8C02FB7705', _h(p0), f(value)); } /** * @param p0 * @param p1 * @param pos */ static N_0x99230691875FC218(p0: any, p1: string | number, pos: Vector3): void { inv('0x99230691875FC218', p0, _h(p1), f(pos.x), f(pos.y), f(pos.z)); } /** * statId: see STAT_ID_IS_VALID * * @returns statId */ static N_0x0FEE2561120F3333(): number { const result = inv('0x0FEE2561120F3333', pvi()); return result; } /** * @param item * @param slot * @param p2 * @param p3 */ static statDonateIncrementItem(item: int, slot: int, p2: any, p3: any): void { inv('0x7C2ABF6E556B21FC', item, slot, p2, p3); } /** * statId: see STAT_ID_IS_VALID * * @returns statId; value */ static statIdGetFloat(): [boolean, number, number] { const result = inv<[boolean, number, number]>('0xD7AE6C9C9C6AC54D', pvi(), pvf(), rai()); return [!!result[0], result[1], result[2]]; } /** * @param chalHash * @returns */ static chalGetMaxRanks(chalHash: string | number): int { return inv('0x58CB53DB63F84DEA', _h(chalHash), rai()); } /** * statId: see STAT_ID_IS_VALID * * @param value * @returns statId */ static N_0x91A4F58E01ED5E4C(value: int): number { const result = inv('0x91A4F58E01ED5E4C', pvi(), value); return result; } /** * @param p0 * @param p1 * @returns scheduleLocation */ static N_0xB5E2EDA2135E0FA1(p0: string | number, p1: int): [boolean, number] { const result = inv<[boolean, number]>('0xB5E2EDA2135E0FA1', _h(p0), p1, pvi(), rai()); return [!!result[0], result[1]]; } /** * @param chalHash * @param index * @returns */ static weeklyCollectibleGetNumItemsInSet(chalHash: string | number, index: int): int { return inv('0x7D675C9DDDB365BE', _h(chalHash), index, rai()); } /** * @param chalHash * @returns */ static weeklyCollectibleGetNumSets(chalHash: string | number): int { return inv('0x8F5317729F791D10', _h(chalHash), rai()); } /** * @param p0 */ static N_0xDA26263C07CCE9C2(p0: int): void { inv('0xDA26263C07CCE9C2', p0); } /** * Only used in R* SP Scripts * * @param p0 * @param p1 * @param p2 * @param p3 */ static N_0xA59590050F80FF2E(p0: any, p1: boolean, p2: boolean, p3: boolean): void { inv('0xA59590050F80FF2E', p0, p1, p2, p3); } /** * @param p0 * @param ped */ static N_0x8C889E4CBB4B2356(p0: any, ped: Ped): void { inv('0x8C889E4CBB4B2356', p0, ped.handle); } /** * @param p0 * @returns */ static trackerIsInitialized(p0: string | number): any { return inv('0x01F4D242765C6B24', _h(p0)); } /** * @returns */ static N_0x70379B5C3FF1D209(): any { return inv('0x70379B5C3FF1D209'); } /** * @param itemset */ static statPhotographTaken(itemset: ItemSet): void { inv('0x4D31051A4CA83787', itemset.handle); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @param p4 * @param p5 * @param p6 */ static N_0xCA41E86545413B5B(p0: any, p1: any, p2: any, p3: any, p4: any, p5: any, p6: any): void { inv('0xCA41E86545413B5B', p0, p1, p2, p3, p4, p5, p6); } /** * statId: see STAT_ID_IS_VALID * * @param value * @returns statId */ static statIdIncrementInt(value: int): number { const result = inv('0x6A0184E904CDF25E', pvi(), value); return result; } /** * @param p0 * @returns */ static N_0xA2E2BEA4E83F6270(p0: string | number): any { return inv('0xA2E2BEA4E83F6270', _h(p0)); } /** * @param p0 * @param p1 * @param p2 * @param p3 * @returns */ static N_0xDCEC875A02991AD0(p0: any, p1: any, p2: any, p3: any): any { return inv('0xDCEC875A02991AD0', p0, p1, p2, p3); } /** * @returns */ static N_0x9D0F5D2E1951CD84(): float { return inv('0x9D0F5D2E1951CD84', raf()); } /** * @param ped */ static statBountyEscaped(ped: Ped): void { inv('0xB22F05732F72F70C', ped.handle); } /** * @param chalHash * @param goalHash * @param disabled */ static chalSetGoalDisabled(chalHash: string | number, goalHash: string | number, disabled: boolean): void { inv('0xF63DF9EE16393343', _h(chalHash), _h(goalHash), disabled); } /** * Only used in R* SP Scripts * * @param p0 * @returns */ static N_0x4DAC398297981B87(p0: int): boolean { return !!inv('0x4DAC398297981B87', p0, rai()); } /** * @param chalHash * @param index * @returns */ static weeklyCollectibleGetItemSetLabel(chalHash: string | number, index: int): number { return (inv('0xBFFA88522FF0F730', _h(chalHash), index, rai())) & 0xFFFFFFFF; } /** * @param chalHash * @returns */ static chalGetNumRanksCompleted(chalHash: string | number): int { return inv('0x58CB53DB63F84DE9', _h(chalHash), rai()); } /** * @param missionHash * @returns */ static chalMissionGetNumGoals(missionHash: string | number): int { return inv('0x0B0576DD3A75E58D', _h(missionHash), rai()); } /** * statId: see STAT_ID_IS_VALID * * @param value * @param p2 * @returns statId */ static statIdSetFloat(value: float, p2: boolean): [boolean, number] { const result = inv<[boolean, number]>('0x481BDF6A10C5EF68', pvi(), f(value), p2, rai()); return [!!result[0], result[1]]; } /** * @param p0 * @param p1 * @returns */ static chalAchievementIsComplete(p0: string | number, p1: string | number): boolean { return !!inv('0x77B97A827739D434', _h(p0), _h(p1), rai()); } static N_0x218F7710A139D012(): void { inv('0x218F7710A139D012'); } /** * Only used in R* SP Scripts * * @param animalType */ static N_0x8312F09C56149A8A(animalType: string | number): void { inv('0x8312F09C56149A8A', _h(animalType)); } /** * @param missionHash * @returns */ static chalMissionGetNumGoalsComplete(missionHash: string | number): int { return inv('0xA785A52B59B7E7B2', _h(missionHash), rai()); } static N_0xDF95DF488A645CE7(): void { inv('0xDF95DF488A645CE7'); } /** * @param chalHash * @param goalHash * @param player * @returns */ static N_0xDDBD560745B1EE98(chalHash: string | number, goalHash: string | number, player: Player): int { return inv('0xDDBD560745B1EE98', _h(chalHash), _h(goalHash), player.handle, rai()); } }