import type { Entity } from '../classes/Entity'; import type { Ped } from '../classes/Ped'; import type { Player } from '../classes/Player'; import type { Volume } from '../classes/Volume'; import type { Prompt } 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 Hud { /** * @param p0 * @returns */ static N_0xD6BD313CFA41E57A(p0: any): any { return inv('0xD6BD313CFA41E57A', p0); } /** * @returns */ static isMultiplayerChatActive(): boolean { return !!inv('0xBC19069D5FBB5C46', rai()); } static disableFrontendThisFrame(): void { inv('0x56CE42A528156A67'); } /** * @param prompt * @returns */ static uiPromptGetMashModeProgress(prompt: number): float { return inv('0x8A9585293863B8A5', prompt, raf()); } /** * @param groupId * @param volume * @param p2 * @param p3 * @param p4 * @param p5 * @returns */ static N_0x8B55B324A9123F6B(groupId: int, volume: Volume, p2: string, p3: any, p4: any, p5: any): any { return inv('0x8B55B324A9123F6B', groupId, volume.handle, p2, p3, p4, p5); } /** * @param entity * @returns */ static uiPromptGetGroupIdForTargetEntity(entity: Entity): int { return inv('0xB796970BD125FCE8', entity.handle, rai()); } /** * Old name: _ALLOW_PAUSE_MENU_WHEN_DEAD_THIS_FRAME */ static allowPauseWhenNotInStateOfPlayThisFrame(): void { inv('0x30996422DF1EE561'); } /** * @param p0 * @param p1 * @returns */ static uiPromptGetGroupIdForScenarioPoint(p0: any, p1: int): int { return inv('0xCB73D7521E7103F0', p0, p1, rai()); } /** * nullsub, doesn't do anything * * @param gamerTagId * @param allow */ static setMpGamerTagUnkAllowLocalized(gamerTagId: int, allow: boolean): void { inv('0xEF7AB1A0E8C86170', gamerTagId, allow); } /** * @param ped */ static uiPromptSetPromptPriorityPreference(ped: Ped): void { inv('0x530A428705BE5DEF', ped.handle); } /** * @param textBlock */ static textBlockDelete(textBlock: string): void { inv('0xAA03F130A637D923', textBlock); } /** * Returns true when either Pause Menu, a Frontend Menu, Online Policies menu or Social Club menu is active. * * @returns */ static isPauseMenuActive(): boolean { return !!inv('0x535384D6067BA42E', rai()); } /** * @param controlAction * @returns */ static uiPromptIsControlActionActive(controlAction: string | number): any { return inv('0x1BE19185B8AFE299', _h(controlAction)); } /** * @param textBlock * @returns */ static textBlockIsStreamed(textBlock: string): any { return inv('0x3CF96E16265B7DC8', textBlock); } /** * @param worldX * @param worldY * @param worldZ * @returns screenX; screenY */ static getHudScreenPositionFromWorldPosition(worldX: float, worldY: float, worldZ: float): [boolean, number, number] { const result = inv<[boolean, number, number]>('0xB39C81628EF10B42', f(worldX), f(worldY), f(worldZ), pvf(), pvf(), rai()); return [!!result[0], result[1], result[2]]; } /** * @param prompt * @returns */ static uiPromptHasHoldMode(prompt: number): any { return inv('0xB60C9F9ED47ABB76', prompt); } /** * @param p0 * @returns */ static journalGetGrimeAtIndex(p0: any): any { return inv('0xCB5945E1B855852F', p0); } /** * @param prompt * @param p1 */ static uiPromptRemoveGroup(prompt: number, p1: any): void { inv('0x4E52C800A28F7BE8', prompt, p1); } /** * This native does nothing since build 1436, use _BG_SET_TEXT_COLOR (0x16FA5CE47F184F1E) instead. * * @param r * @param g * @param b * @param a */ static setTextColor(r: int, g: int, b: int, a: int): void { inv('0x50A41AD966910F03', r, g, b, a); } /** * @returns */ static isRadarHiddenByScript(): boolean { return !!inv('0x66F35DD9D2B58579', rai()); } static hideHudAndRadarThisFrame(): void { inv('0x36CDD81627A6FCD2'); } /** * @param ped * @param username * @param pointedClanTag * @param isRockstarClan * @param clanTag * @param clanFlag * @returns */ static createFakeMpGamerTag(ped: Ped, username: string, pointedClanTag: boolean, isRockstarClan: boolean, clanTag: string, clanFlag: int): int { return inv('0x53CB4B502E1C57EA', ped.handle, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, rai()); } /** * @param prompt * @returns */ static uiPromptHasHoldAutoFillMode(prompt: number): boolean { return !!inv('0x8010BEBD0D5ED5BC', prompt, rai()); } /** * string1 is the only string used in the scripts, the others are null (0) * * @param active * @param string1 * @param string2 * @param string3 * @param string4 */ static setCurrentUgcMissionDescription(active: boolean, string1: string, string2: string, string3: string, string4: string): void { inv('0xCE0D2F5586627CCE', active, string1, string2, string3, string4); } /** * @param name * @returns */ static getNamedRendertargetRenderId(name: string): int { return inv('0xB6762A85EE29AA60', name, rai()); } /** * @param p0 */ static uiPromptDisablePromptTypeThisFrame(p0: int): void { inv('0xFC094EF26DD153FA', p0); } /** * @param entity * @param p1 * @param p2 * @param p3 * @param p4 * @param name * @param p6 * @returns */ static uiPromptSetAmbientGroupThisFrame(entity: Entity, p1: float, p2: int, p3: int, p4: string | number, name: string, p6: int): any { return inv('0x315C81D760609108', entity.handle, f(p1), p2, p3, _h(p4), name, p6); } /** * @param prompt * @returns */ static uiPromptIsHoldModeRunning(prompt: number): boolean { return !!inv('0xC7D70EAEF92EFF48', prompt, rai()); } /** * @param prompt * @returns Returns `true` if the mash mode has just been pressed. */ static uiPromptHasMashModeJustPressed(prompt: number): boolean { return !!inv('0xB0E8599243B3F568', prompt, rai()); } /** * @param prompt * @param autoFillTimeMs * @param holdTimeMs */ static uiPromptSetHoldAutoFillMode(prompt: number, autoFillTimeMs: int, holdTimeMs: int): void { inv('0x3CE932E737C145D6', prompt, autoFillTimeMs, holdTimeMs); } /** * @param prompt * @returns */ static uiPromptHasHoldModeCompleted(prompt: number): boolean { return !!inv('0xE0F65F0640EF0617', prompt, rai()); } /** * id is the return value from 0xD9459157EB22C895. * * @param id */ static uiPromptClearHorizontalOrientation(id: int): void { inv('0x6095358C4142932A', id); } /** * @param modelHash */ static linkNamedRendertarget(modelHash: string | number): void { inv('0x2F506B8556242DDB', _h(modelHash)); } /** * Returns the label text given the hash. Old name: _GET_LABEL_TEXT_BY_HASH * * @param labelHash * @returns */ static getStringFromHashKey(labelHash: string | number): string { return inv('0xBD5DD5EAE2B6CE14', _h(labelHash), ras()); } /** * @param textBlock * @returns */ static textBlockIsLoaded(textBlock: string): any { return inv('0xD0976CC34002DB57', textBlock); } /** * @param prompt * @returns */ static uiPromptHasMashMode(prompt: number): any { return inv('0xCD072523791DDC1B', prompt); } /** * @param p0 * @param name */ static setMissionNameForUgcMission(p0: boolean, name: string): void { inv('0xD98630CE73C61E98', p0, name); } /** * @returns */ static busyspinnerIsOn(): boolean { return !!inv('0x823BF7B1DF613A21', rai()); } /** * @param prompt * @param p1 */ static uiPromptSetTag(prompt: number, p1: any): void { inv('0xDEC85C174751292B', prompt, p1); } /** * @param gamerTagId * @param string */ static setMpGamerTagName(gamerTagId: int, string: string): void { inv('0xEA6F4B8D4B4B5B3E', gamerTagId, string); } /** * @param prompt * @param progress */ static uiPromptSetTargetModeProgress(prompt: number, progress: float): void { inv('0x00123054BEC8A30F', prompt, f(progress)); } /** * @param prompt */ static uiPromptSetMashIndefinitelyMode(prompt: number): void { inv('0x7B66E89312727274', prompt); } static uiPromptDisablePromptsThisFrame(): void { inv('0xF1622CE88A1946FB'); } /** * @param prompt * @param toggle */ static uiPromptSetUrgentPulsingEnabled(prompt: number, toggle: boolean): void { inv('0xC5F428EE08FA7F2C', prompt, toggle); } /** * Note: you must use VAR_STRING for p1 if string is not part of text database * tabAmount: specifies number of tabs in prompt group * tabDefaultIndex: specifies starting index * p3 if is set > 3 you can no longer press Q to change tab if there are more than one tab set in tabAmount * * @param hash * @param name * @param tabAmount * @param tabDefaultIndex * @param p4 * @param prompt * @returns */ static uiPromptSetActiveGroupThisFrame(hash: string | number, name: string, tabAmount: int, tabDefaultIndex: int, p4: int, prompt: number): any { return inv('0xC65A45D4453C2627', _h(hash), name, tabAmount, tabDefaultIndex, p4, prompt); } /** * @param p0 * @param p1 * @param p2 * @returns */ static journalGetTextureWithLayout(p0: any, p1: any, p2: any): any { return inv('0x62CC549B3B8EA2AA', p0, p1, p2); } /** * @param prompt * @returns */ static uiPromptIsEnabled(prompt: number): any { return inv('0x0D00EDDFB58B7F28', prompt); } /** * @param prompt * @returns */ static uiPromptGetUrgentPulsingEnabled(prompt: number): boolean { return !!inv('0x1FBA0DABECDDB52B', prompt, rai()); } /** * @param scale * @param size */ static setTextScale(scale: float, size: float): void { inv('0x4170B650590B3B00', f(scale), f(size)); } /** * Found icons: SPEAKER, THROPY * * @param gamerTagId * @param icon */ static setMpGamerTagSecondaryIcon(gamerTagId: int, icon: string | number): void { inv('0x95384C6CE1526EFF', gamerTagId, _h(icon)); } /** * Disables reduced time scale while menus such as weapon wheel and satchel are open. */ static disableReducedMenuTimeScale(): void { inv('0xC5C7A2F6567FCCBC'); } /** * @param prompt * @param p1 */ static uiPromptSetBeatModeGrayedOut(prompt: number, p1: any): void { inv('0xB487A4936FBF40AC', prompt, p1); } /** * TM_ANY = 0, * TM_ON_FOOT, * TM_IN_VEHICLE * * @param prompt * @param mode */ static uiPromptSetTransportMode(prompt: number, mode: int): void { inv('0x876E4A35C73A6655', prompt, mode); } /** * @returns */ static uiPromptRegisterBegin(): number { return inv('0x04F97DE45A519419', rai()); } /** * This returns an id that can be used with 0x6095358C4142932A. * * @returns */ static uiPromptSetRegisterHorizontalOrientation(): int { return inv('0xD9459157EB22C895', rai()); } /** * @param prompt * @returns */ static uiPromptHasPressedTimedModeCompleted(prompt: number): any { return inv('0x3CE854D250A88DAF', prompt); } /** * @param p0 * @param p1 */ static uiMovieviewSetRenderTarget(p0: any, p1: any): void { inv('0x51DE09A2196BD951', p0, p1); } /** * @param p0 * @returns */ static journalGetEntryAtIndex(p0: any): any { return inv('0x3D16ABD7A1FD8C96', p0); } /** * Attaches a Volume * * @param prompt * @param volume */ static uiPromptContextSetVolume(prompt: number, volume: Volume): void { inv('0x4D107406667423BE', prompt, volume.handle); } /** * Params: p1 is 0 * * @param prompt * @param p1 * @returns */ static uiPromptHasStandardModeCompleted(prompt: number, p1: int): boolean { return !!inv('0xC92AC953F0A982AE', prompt, p1, rai()); } /** * @param prompt * @returns */ static uiPromptIsValid(prompt: number): boolean { return !!inv('0x347469FBDD1589A9', prompt, rai()); } /** * If Hud should be displayed * * @param toggle */ static displayHud(toggle: boolean): void { inv('0xD63FE3AF9FB3D53F', toggle); } /** * @returns */ static isRadarHidden(): boolean { return !!inv('0x1B82FD5FFA4D666E', rai()); } /** * @param gamerTagId */ static removeMpGamerTag(gamerTagId: int): void { inv('0x839BFD7D7E49FE09', gamerTagId); } /** * @param prompt * @param action */ static uiPromptSetAllowedAction(prompt: number, action: string | number): void { inv('0x565C1CE183CB0EAF', prompt, _h(action)); } /** * @param p0 * @param name */ static setMissionName(p0: boolean, name: string): void { inv('0x402669A4BDAA72DA', p0, name); } /** * @param gamerTagId */ static mpGamerTagDisableReviveTopIcon(gamerTagId: int): void { inv('0x1F9A64C2804B3471', gamerTagId); } /** * standard (prompt not held) rate: 0.035f * fast (prompt held) rate: 0.015f * punitive (been hit) rate: 0.14f * * @param prompt * @param speed */ static uiPromptSetMashManualModeDecaySpeed(prompt: number, speed: float): void { inv('0x7D393C247FB9B431', prompt, f(speed)); } /** * @param hash * @returns */ static uiPromptDoesAmbientGroupExist(hash: string | number): boolean { return !!inv('0xEB550B927B34A1BB', _h(hash), rai()); } /** * @param p0 * @returns */ static N_0x7EC0D68233E391AC(p0: int): int { return inv('0x7EC0D68233E391AC', p0, rai()); } /** * nullsub, doesn't do anything */ static N_0xBFFF81E12A745A5F(): void { inv('0xBFFF81E12A745A5F'); } /** * @param uiscene */ static N_0xF1E6979C0B779985(uiscene: int): void { inv('0xF1E6979C0B779985', uiscene); } /** * nullsub, this native does nothing since build 1436, use _BG_DISPLAY_TEXT instead. * * @param text * @param xPos * @param yPos */ static displayText(text: string, xPos: float, yPos: float): void { inv('0xD79334A4BB99BAD1', text, f(xPos), f(yPos)); } /** * @param prompt * @returns */ static uiPromptIsJustPressed(prompt: number): boolean { return !!inv('0x2787CC611D3FACC5', prompt, rai()); } /** * @param gamerTagId * @param text */ static setMpGamerTagNamePosse(gamerTagId: int, text: string): void { inv('0x1EA716E0628A6F44', gamerTagId, text); } /** * @returns */ static isSubtitlePreferenceSwitchedOn(): boolean { return !!inv('0x7C4AC9573587F2DF', rai()); } /** * @param prompt * @returns */ static uiPromptIsActive(prompt: number): boolean { return !!inv('0x546E342E01DE71CF', prompt, rai()); } /** * @param prompt * @param mashes */ static uiPromptSetMashMode(prompt: number, mashes: int): void { inv('0xDF6423BF071C7F71', prompt, mashes); } static hideHudThisFrame(): void { inv('0xBF4F34A85CA2970D'); } /** * @param prompt * @param releaseMode */ static uiPromptSetStandardMode(prompt: number, releaseMode: boolean): void { inv('0xCC6656799977741B', prompt, releaseMode); } /** * @param hash * @returns */ static uiPromptGetGroupActivePage(hash: string | number): int { return inv('0xC1FCC36C3F7286C8', _h(hash), rai()); } /** * Enables reduced time scale while menus such as weapon wheel and satchel are open. */ static enableReducedMenuTimeScale(): void { inv('0x26F6BBEA2CE3E3DC'); } /** * For startProgress, 0.0f - 1.0f is a percentage value, so 0.5f = 50% progress. Range: 0.0f - 1.0f * For decreaseSpeed, 0.0f will result in the prompt not showing the mash progress at all. 0.01f - ?.0f. At speeds around 7.0f to 8.0f the prompt basically fails immediately if you don't start mashing right away. * * @param prompt * @param mashes * @param decreaseSpeed * @param startProgress */ static uiPromptSetMashWithResistanceCanFailMode(prompt: number, mashes: int, decreaseSpeed: float, startProgress: float): void { inv('0xDC0CB602DEADBA53', prompt, mashes, f(decreaseSpeed), f(startProgress)); } /** * @param prompt * @param p1 * @param p2 */ static uiPromptSetTargetModeTarget(prompt: number, p1: float, p2: float): void { inv('0x5E019C45DD3B6A14', prompt, f(p1), f(p2)); } /** * @param prompt * @param p1 * @param p2 * @param p3 * @param p4 */ static uiPromptSetMashManualCanFailMode(prompt: number, p1: float, p2: float, p3: float, p4: any): void { inv('0x179DCF71F705DA20', prompt, f(p1), f(p2), f(p3), p4); } /** * @param prompt * @param p1 * @param p2 * @param p3 */ static uiPromptSetTargetMode(prompt: number, p1: float, p2: float, p3: any): void { inv('0x5F6503D9CD2754EB', prompt, f(p1), f(p2), p3); } /** * @param prompt * @param autoFillTimeMs * @param mashes */ static uiPromptSetMashAutoFillMode(prompt: number, autoFillTimeMs: int, mashes: int): void { inv('0x6C39587D7CC66801', prompt, autoFillTimeMs, mashes); } /** * @param prompt * @param toggle */ static uiPromptSetBeatMode(prompt: number, toggle: boolean): void { inv('0xF957A1654C6322FE', prompt, toggle); } /** * Similar to 0x9D7E12EC6A1EE4E5(GET_TEXT_SUBSTRING) but starts at the beginning of the string * * @param text * @param length * @returns */ static getTextSubstring2(text: string, length: int): string { return inv('0xD8402B858F4DDD88', text, length, ras()); } /** * @param p0 * @param prompt * @param p2 */ static uiPromptAddGroupLink(p0: any, prompt: number, p2: any): void { inv('0x684C96CC7C66E8EF', p0, prompt, p2); } /** * @param gamerTagId */ static mpGamerTagEnableReviveTopIcon(gamerTagId: int): void { inv('0xFFF6579CF0139FCE', gamerTagId); } /** * @param p0 * @param p1 */ static N_0x8A59D44189AF2BC5(p0: any, p1: any): void { inv('0x8A59D44189AF2BC5', p0, p1); } /** * @param prompt * @param p1 */ static uiPromptSetOrderingAsInputType(prompt: number, p1: any): void { inv('0x2F385ECC5200938D', prompt, p1); } /** * @param p0 */ static journalMarkRead(p0: any): void { inv('0xE4509BABE59BD24E', p0); } /** * @param gamerTagId * @param entity * @returns */ static isMpGamerTagActiveOnEntity(gamerTagId: int, entity: Entity): boolean { return !!inv('0x502E1591A504F843', gamerTagId, entity.handle, rai()); } /** * @param gamerTagId * @param string */ static setMpGamerTagBigText(gamerTagId: int, string: string): void { inv('0xA0D7CE5F83259663', gamerTagId, string); } /** * @param prompt * @param radius */ static uiPromptContextSetRadius(prompt: number, radius: float): void { inv('0x0C718001B77CA468', prompt, f(radius)); } /** * @param prompt * @param toggle */ static uiPromptSetVisible(prompt: number, toggle: boolean): void { inv('0x71215ACCFDE075EE', prompt, toggle); } /** * @param prompt * @param p1 */ static N_0x53CE46C01A089DA1(prompt: number, p1: boolean): void { inv('0x53CE46C01A089DA1', prompt, p1); } /** * @param p0 * @returns */ static uiGetSceneUiobject(p0: any): any { return inv('0xBE1067CD1C9570F6', p0); } /** * @param p0 * @param p1 */ static N_0x958278B97C4AFFD8(p0: any, p1: any): void { inv('0x958278B97C4AFFD8', p0, p1); } /** * @param prompt * @returns */ static uiPromptGetProgress(prompt: number): float { return inv('0x81801291806DBC50', prompt, raf()); } /** * @param prompt * @returns */ static uiPromptIsPressed(prompt: number): boolean { return !!inv('0x21E60E230086697F', prompt, rai()); } /** * Note: you must use VAR_STRING. Byte code very similar to TEXT_COMMAND_DISPLAY_TEXT in V * Old name: _GET_TEXT_SUBSTRING * * @param text * @param position * @param length * @returns */ static getCharacterFromAudioConversationFilename(text: string, position: int, length: int): string { return inv('0x9D7E12EC6A1EE4E5', text, position, length, ras()); } /** * @param p0 * @param p1 */ static N_0x9D37EB5003E0F2CF(p0: any, p1: any): void { inv('0x9D37EB5003E0F2CF', p0, p1); } static uiPromptClearPromptPriorityPreference(): void { inv('0x51259AE5C72D4A1B'); } /** * @param prompt * @param depletionTimeMs */ static uiPromptSetPressedTimedMode(prompt: number, depletionTimeMs: int): void { inv('0x1473D3AF51D54276', prompt, depletionTimeMs); } /** * @param prompt * @param toggle */ static uiPromptSetEnabled(prompt: number, toggle: boolean): void { inv('0x8A0FB4D03A630D21', prompt, toggle); } static uiPromptFilterClear(): void { inv('0x6A2F820452017EA2'); } /** * tabIndex: specifies tab of prompt * * @param prompt * @param groupId * @param tabIndex */ static uiPromptSetGroup(prompt: number, groupId: int, tabIndex: int): void { inv('0x2F11D3A254169EA4', prompt, groupId, tabIndex); } /** * @param text */ static busyspinnerSetText(text: string): void { inv('0x7F78CD75CC4539E4', text); } /** * Returns the hash of the currently highlighted item in the weapon wheel. * Only works while the wheel is open will return false Use in conjunction with IS_CONTROL_JUST_RELEASED(0, 'INPUT_OPEN_WHEEL_MENU') to detect item selection/usage. * * @returns */ static weaponWheelGetSelectedItemHash(): any { return inv('0x9C409BBC492CB5B1'); } /** * @returns */ static isRadarPreferenceSwitchedOn(): boolean { return !!inv('0x81E47F0EE1F2B21E', rai()); } static clearAllHelpMessages(): void { inv('0x916ED8321F087059'); } /** * @param p0 * @returns */ static N_0x28AE29D909C8FDCE(p0: any): any { return inv('0x28AE29D909C8FDCE', p0); } /** * @param p0 * @param prompt */ static uiPromptAddGroupReturnLink(p0: any, prompt: number): void { inv('0x837972ED28159536', p0, prompt); } /** * Params: type = mostly 0, 6 (net_mission_intro_story_gvo), 7 (fm_mission_controller), 14 (net_ugc_end_flow_transition_online), 15 (net_main_[tlg_]offline) * * @param prompt * @param type */ static uiPromptSetType(prompt: number, type: int): void { inv('0xF4A5C4509BF923B1', prompt, type); } /** * @param textBlock */ static textBlockRequest(textBlock: string): void { inv('0xF66090013DE648D5', textBlock); } /** * Checks if the passed gxt name exists in the game files. * * @param label * @returns */ static doesTextLabelExist(label: string): boolean { return !!inv('0x73C258C68D6F55B6', label, rai()); } /** * @returns */ static N_0x066725A9D52B3641(): any { return inv('0x066725A9D52B3641'); } /** * standard (prompt not held) rate: (1f / 128f) * fast (prompt held) rate: (1f / 64f) * punitive (been hit) rate: (1f / 128f) * * @param prompt * @param rate */ static uiPromptSetMashManualModeIncreasePerPress(prompt: number, rate: float): void { inv('0xA0D1D79C6036A855', prompt, f(rate)); } /** * @param prompt * @param speed */ static uiPromptSetMashManualModePressedGrowthSpeed(prompt: number, speed: float): void { inv('0x56DBB26F98582C29', prompt, f(speed)); } /** * @param string * @returns */ static getLengthOfLiteralStringInBytes(string: string): int { return inv('0xDC5AD6B7AB8184F5', string, rai()); } /** * @param name * @returns */ static releaseNamedRendertarget(name: string): boolean { return !!inv('0x0E692EE61761361F', name, rai()); } /** * @param textDatabase * @returns */ static doesTextBlockExist(textDatabase: string): boolean { return !!inv('0x2C729F2B94CEA911', textDatabase, rai()); } /** * @param p0 * @param p1 * @returns */ static journalGetEntryInfo(p0: any, p1: any): any { return inv('0x5514C3E60673530F', p0, p1); } /** * @param p0 */ static N_0x3FE4FB41EF7D2196(p0: any): void { inv('0x3FE4FB41EF7D2196', p0); } /** * colorNameHash: https://alloc8or.re/rdr3/doc/enums/eColor.txt * * @param colorNameHash * @returns red; green; blue; alpha */ static getColorFromName(colorNameHash: string | number): [number, number, number, number] { const result = inv<[number, number, number, number]>('0xB981DD2DFAF9B1C9', _h(colorNameHash), pvi(), pvi(), pvi(), pvi()); return [result[0], result[1], result[2], result[3]]; } /** * visibility: * enum eUIGamertagVisibility * { * UIGAMERTAGVISIBILITY_NONE, * UIGAMERTAGVISIBILITY_ICON, * UIGAMERTAGVISIBILITY_SIMPLE, * UIGAMERTAGVISIBILITY_COMPLEX * }; * * @param gamerTagId * @param visibility */ static setMpGamerTagVisibility(gamerTagId: int, visibility: int): void { inv('0x93171DDDAB274EB8', gamerTagId, visibility); } /** * @param component */ static enableHudContextThisFrame(component: string | number): void { inv('0xC9CAEAEEC1256E54', _h(component)); } /** * @param prompt * @param text */ static uiPromptSetText(prompt: number, text: string): void { inv('0x5DD02A8318420DD7', prompt, text); } /** * @param prompt * @returns */ static uiPromptIsJustReleased(prompt: number): boolean { return !!inv('0x635CC82FA297A827', prompt, rai()); } /** * Found icons: https://pastebin.com/xx6rEgiG * * @param gamerTagId * @param icon */ static setMpGamerTagTopIcon(gamerTagId: int, icon: string | number): void { inv('0x5F57522BC1EB9D9D', gamerTagId, _h(icon)); } /** * @param prompt * @returns */ static uiPromptIsReleased(prompt: number): boolean { return !!inv('0xAFC887BA7A7756D6', prompt, rai()); } /** * @param active */ static setFrontendActive(active: boolean): void { inv('0xCE47C21C0687EBC2', active); } /** * @param name * @param p1 * @returns */ static registerNamedRendertarget(name: string, p1: boolean): boolean { return !!inv('0x98AF2BB6F62BD588', name, p1, rai()); } /** * @param prompt * @param autoFillTimeMs * @param holdTimeMs */ static uiPromptSetHoldAutoFillWithDecayMode(prompt: number, autoFillTimeMs: int, holdTimeMs: int): void { inv('0xA3F2149AA24F3D8E', prompt, autoFillTimeMs, holdTimeMs); } /** * @param p0 * @param p1 * @returns */ static N_0xF1AD3DD218E6558A(p0: any, p1: any): any { return inv('0xF1AD3DD218E6558A', p0, p1); } /** * Used for controllers * * @param prompt * @param p1 * @param counterclockwise */ static uiPromptSetRotateMode(prompt: number, p1: float, counterclockwise: boolean): void { inv('0x7ABE7095FB3D2581', prompt, f(p1), counterclockwise); } /** * Found types: GENERIC_PLAYER, DEADDROP, HOTPROPERTY, MINIGAMES * * @param gamerTagId * @param type */ static setMpGamerTagType(gamerTagId: int, type: string | number): void { inv('0x25B9C78A25105C35', gamerTagId, _h(type)); } /** * @param prompt * @param action * @returns */ static uiPromptSetControlAction(prompt: number, action: string | number): any { return inv('0xB5352B7494A08258', prompt, _h(action)); } /** * https://github.com/femga/rdr3_discoveries/tree/master/graphics/HUD/hud_presets * Old name: _HIDE_HUD_COMPONENT * * @param component */ static enableHudContext(component: string | number): void { inv('0x4CC5F2FC1332577F', _h(component)); } /** * @param prompt * @returns */ static uiPromptHasPressedTimedModeFailed(prompt: number): any { return inv('0x1A17B9ECFF617562', prompt); } /** * Removes the loading prompt at the bottom right of the screen. */ static busyspinnerOff(): void { inv('0x58F441B90EA84D06'); } /** * @param prompt * @param pos */ static uiPromptContextSetPoint(prompt: number, pos: Vector3): void { inv('0xAE84C5EE2C384FB3', prompt, f(pos.x), f(pos.y), f(pos.z)); } /** * @param align */ static setTextCentre(align: boolean): void { inv('0xBE5261939FBECB8C', align); } /** * @param prompt * @returns */ static uiPromptHasMashModeFailed(prompt: number): boolean { return !!inv('0x25B18E530CF39D6F', prompt, rai()); } /** * @param prompt * @returns */ static uiPromptHasManualMashMode(prompt: number): any { return inv('0xA6C6A4ADB3BAC409', prompt); } /** * @param prompt * @returns */ static uiPromptHasMashModeCompleted(prompt: number): boolean { return !!inv('0x845CE958416DC473', prompt, rai()); } /** * @param prompt * @param p1 */ static uiPromptSetSpinnerPosition(prompt: number, p1: any): void { inv('0x832CB510DE546282', prompt, p1); } /** * @param p0 */ static journalWriteEntry(p0: any): void { inv('0x6DFDD665E416B093', p0); } /** * @param state */ static showHorseCores(state: boolean): void { inv('0xD4EE21B7CC7FD350', state); } /** * This native accepts 1 as parameter in the decompiles * returns the nearest horse handle if within 2 3 meters of the player, if not close enough returns false NOTE: if type is 0 returns PlayerPedId always? * * @param p0 * @returns */ static getNearHorse(p0: int): any { return inv('0x0501D52D24EA8934', p0); } /** * @param prompt */ static uiPromptRestartModes(prompt: number): void { inv('0xDC6C55DFA2C24EE5', prompt); } /** * @param prompt * @param mashes * @param p2 * @param p3 */ static uiPromptSetMashWithResistanceMode(prompt: number, mashes: int, p2: float, p3: float): void { inv('0xCD1BDFF15EFA79F5', prompt, mashes, f(p2), f(p3)); } /** * @param p0 * @param p1 * @param p2 * @returns */ static N_0x806862E5D266CF38(p0: any, p1: any, p2: any): any { return inv('0x806862E5D266CF38', p0, p1, p2); } /** * @param gamerTagId * @returns */ static isMpGamerTagActive(gamerTagId: int): boolean { return !!inv('0x6E1C31E14C7A5F97', gamerTagId, rai()); } /** * Hashes: SHORT_TIMED_EVENT_MP, SHORT_TIMED_EVENT, MEDIUM_TIMED_EVENT, LONG_TIMED_EVENT, RUSTLING_CALM_TIMING, PLAYER_FOCUS_TIMING, PLAYER_REACTION_TIMING * * @param prompt * @param timedEventHash */ static uiPromptSetStandardizedHoldMode(prompt: number, timedEventHash: string | number): void { inv('0x74C7D7B72ED0D3CF', prompt, _h(timedEventHash)); } /** * @param modelHash * @returns */ static isNamedRendertargetLinked(modelHash: string | number): boolean { return !!inv('0x707032835FF09AE7', _h(modelHash), rai()); } /** * @param prompt * @returns */ static uiPromptWasBeatModePressedInTimeWindow(prompt: number): boolean { return !!inv('0x1FE4788AB1430C55', prompt, rai()); } /** * @returns */ static isHudHidden(): boolean { return !!inv('0x71B72B478F8189DC', rai()); } /** * @param p0 * @param p1 * @returns */ static N_0x100157D6D7FE32CA(p0: any, p1: any): any { return inv('0x100157D6D7FE32CA', p0, p1); } /** * @param player * @param username * @param pointedClanTag * @param isRockstarClan * @param clanTag * @param clanFlag * @returns */ static createMpGamerTag(player: Player, username: string, pointedClanTag: boolean, isRockstarClan: boolean, clanTag: string, clanFlag: int): int { return inv('0xD877AF112AD2B41B', player.handle, username, pointedClanTag, isRockstarClan, clanTag, clanFlag, rai()); } /** * @param state */ static showPlayerCores(state: boolean): void { inv('0x50C803A4CD5932C5', state); } /** * Params: p2 is 304000 in R* SP Script coachrobberies * * @param prompt * @param holdTimeMs */ static uiPromptSetHoldMode(prompt: number, holdTimeMs: int): void { inv('0x94073D5CA3F16B7B', prompt, holdTimeMs); } /** * @param prompt */ static uiPromptSetHoldIndefinitelyMode(prompt: number): void { inv('0xEA5CCF4EEB2F82D1', prompt); } static hideLoadingOnFadeThisFrame(): void { inv('0xEA600AABAF4B9084'); } /** * @param gamerTagId * @param colour */ static setMpGamerTagColour(gamerTagId: int, colour: string | number): void { inv('0x84BD27DDF9575816', gamerTagId, _h(colour)); } static N_0x160825DADF1B04B3(): void { inv('0x160825DADF1B04B3'); } /** * @param prompt * @param p1 * @param p2 * @param p3 * @param p4 */ static uiPromptSetMashManualMode(prompt: number, p1: float, p2: float, p3: float, p4: any): void { inv('0x32DF729D8BD3C1C6', prompt, f(p1), f(p2), f(p3), p4); } /** * attribute: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/eUIPromptAttribute * * @param prompt * @param attribute * @param enabled */ static uiPromptSetAttribute(prompt: number, attribute: int, enabled: boolean): void { inv('0x560E76D5E2E1803F', prompt, attribute, enabled); } /** * priority: https://github.com/Halen84/RDR3-Native-Flags-And-Enums/tree/main/ePromptPriority * * @param prompt * @param priority */ static uiPromptSetPriority(prompt: number, priority: int): void { inv('0xCA24F528D0D16289', prompt, priority); } /** * https://github.com/femga/rdr3_discoveries/tree/master/graphics/HUD/prompts/prompt_types * * @param p0 */ static uiPromptEnablePromptTypeThisFrame(p0: int): void { inv('0x06565032897BA861', p0); } /** * Returns the length of the string passed (much like strlen). * * @param string * @returns */ static getLengthOfLiteralString(string: string): int { return inv('0x481FBF588B0B76DB', string, rai()); } /** * @param prompt */ static uiPromptRegisterEnd(prompt: number): void { inv('0xF7AA2696A22AD8B9', prompt); } /** * nullsub, doesn't do anything */ static N_0x2F7BB105144ACF30(): void { inv('0x2F7BB105144ACF30'); } /** * Old name: _DISPLAY_HUD_COMPONENT * * @param component */ static disableHudContext(component: string | number): void { inv('0x8BC7C1F929D07BF3', _h(component)); } static forceCloseTextInputBox(): void { inv('0xFBBF5943E4C2C992'); } /** * @param p0 * @param p1 * @returns */ static uiRequestScene(p0: any, p1: any): any { return inv('0xB6857100F8FD433C', p0, p1); } /** * @param entity * @param text * @returns */ static createMpGamerTagOnEntity(entity: Entity, text: string): int { return inv('0xE961BF23EAB76B12', entity.handle, text, rai()); } /** * @param p0 * @returns */ static journalCanWriteEntry(p0: any): any { return inv('0xCF782691D91F270E', p0); } /** * @param prompt * @param p1 */ static uiPromptSetManualResolved(prompt: number, p1: any): void { inv('0xA520C7B05FA4EB2A', prompt, p1); } /** * @param inputHash * @param labelName * @param p2 * @param p3 * @param p4 * @param p5 * @returns */ static uiPromptCreate(inputHash: string | number, labelName: string, p2: any, p3: any, p4: any, p5: int): number { return inv('0x29FA7910726C3889', _h(inputHash), labelName, p2, p3, p4, p5, rai()); } /** * @param prompt * @param p1 */ static uiPromptSetSpinnerSpeed(prompt: number, p1: any): void { inv('0xAC6586A7FDCD4B68', prompt, p1); } /** * @param name * @returns */ static isNamedRendertargetRegistered(name: string): boolean { return !!inv('0x3EE32F7964C40FE6', name, rai()); } /** * @param p0 * @param p1 */ static N_0x052D4AC0922AF91A(p0: any, p1: any): void { inv('0x052D4AC0922AF91A', p0, p1); } /** * @param prompt */ static uiPromptDelete(prompt: number): void { inv('0x00EDE88D4D13CF59', prompt); } /** * Gets a string literal from a label name. Old name: _GET_LABEL_TEXT * * @param labelName * @returns */ static getFilenameForAudioConversation(labelName: string): string { return inv('0xCFEDCCAD3C5BA90D', labelName, ras()); } static N_0x5651516D947ABC53(): void { inv('0x5651516D947ABC53'); } /** * @param renderId */ static setTextRenderId(renderId: int): void { inv('0xE550CDE128D56757', renderId); } /** * @param distance * @param r * @param g * @param b * @param a */ static setTextDropshadow(distance: int, r: int, g: int, b: int, a: int): void { inv('0x1BE39DBAA7263CA5', distance, r, g, b, a); } /** * @param label * @returns */ static getLabelText2(label: string): string { return inv('0x3429670F9B9EF2D3', label, ras()); } /** * @returns */ static journalGetEntryCount(): any { return inv('0xE65B5DE53351BE22'); } static journalClearAllProgress(): void { inv('0xF402978DE6F88D6E'); } }