Lua APi


 -- 这是关于 FamilyMenu 的官方 API,我会在发现新的 API 内容时对其进行更新。
-----------------------------------------------------------------------------
lua_patch:apply()
lua_patch:restore()

-----------------------------------------------------------------------------
input_string:get_value() ( local string = input_string:get_value() )
input_string:set_value(val)

input_float:get_value() ( local string = input_string:get_value() )
input_float:set_value(val)

-----------------------------------------------------------------------------

joaat("vehicle index") -- 这不是 FamilyMenu 的官方API,我会在发现新的API内容时进行更新。
script_util -- 如何调用你自己的脚本。

command.call("spawn", {joaat("adder")}) -- 调用 FamilyMenu 中现有命令的方法。/下面列出的所有命令列表。
command.call_player(PlayerIndex, "spawn", {joaat("adder")})
register_handler(menu_event, func) -- 注册一个函数,该函数将在每次触发相应的menu_event时调用。

base_text_element:set_text(new_text) -- 该gui文本元素的新文本。
base_text_element:get_text() -- 返回该gui文本元素的当前文本。 ( string = base_text_element:get_text() ) 
text:set_font(font) -- 该imgui文本元素的新字体名称。

log.info("index") -- 用于记录您想在控制台上显示的任何内容。
log.warning(data) -- 记录一条警告消息。
log.debug(data) -- 记录调试消息。

-----------------------------------------------------------------------------
script_util:yield() -- 让出执行
script_util:sleep(ms) -- 按给定的时间间隔休眠,时间以毫秒为单位。

-----------------------------------------------------------------------------
Title(tab_name) -- 可以用来在 FamilyMenu 之间创建选项卡。 ( Gui_tab_menu = Menu.Title("GUI_TAB_MENU") )
show_message(title, message) -- 以给定的标题和消息向用户显示一条信息。
show_warning(title, message) -- 以给定的标题和消息向用户显示一个警告。
show_error(title, message) -- 以给定的标题和消息向用户显示一个错误。
is_open() -- 如果 GUI 处于打开状态,返回 true。 ( bool = gui.is_open() )

-- 您可以在 FamilyMenu 中调用的所有选项卡如下所示。
-----------------------------------------------------------------------------
tab:add_tab() -- 在该选项卡下添加一个子选项卡。
tab:Option(function(), function(), end) -- 一旦创建了选项卡,可以用来在 FamilyMenu 中添加按钮。
tab:BoolOption(string, function(), end) -- 可以用来在 FamilyMenu 中添加复选框,也被称为开关按钮。
-- 复选框(Check Boxes)可以使用不同的字符串来远程执行它们,同时还具有 is_enabled() 和 set_enabled(enabled) 方法。 \

tab:CenterOption(name) -- 向 GUI 选项卡添加文本。
tab:clear() -- 清除选项卡的所有自定义 Lua 内容。

tab:IntOption(name) -- 添加一个 IntOption。
tab:FloatOption(name) -- 添加一个 FloatOption。

-----------------------------------------------------------------------------
vec3() -- 创建一个新的 Vector3 实例。(myInstance = vec3:new(x, y, z))
-----------------------------------------------------------------------------
-- 以下是一些网络相关的函数及其说明:

1. network.trigger_script_event(bitset, _args) -- 调用 trigger_script_event (TSE) 函数。
2. network.give_pickup_rewards(player, reward) -- 将给定的 pickup 奖励分配给给定的玩家。
3. network.set_player_coords(player_idx, x, y, z) -- 将给定玩家传送到给定位置。
4. network.set_all_player_coords(x, y, z) -- 将所有玩家传送到给定位置。
5. network.flag_player_as_modder(player_idx) -- 在本地数据库中标记给定玩家为 modder。
6. network.force_script_host(script_name) -- 尝试强制自己成为给定 GTA 脚本的主机。
7. network.send_chat_message(msg, team_only) -- 向游戏内聊天发送消息。

-- 以下是一些返回值相关的函数及其说明:

1. network.get_selected_player() -- 返回 GUI 中当前选定玩家的索引。
2. network.get_selected_database_player_rockstar_id() -- 返回 GUI 中当前选定玩家的 Rockstar ID。
3. network.is_player_flagged_as_modder(player_idx) -- 如果给定玩家被标记为 modder,则返回 true。

-----------------------------------------------------------------------------

-- 以下是一些与内存操作相关的函数及其说明:

1. memory.scan_pattern(pattern) -- 在"GTA5.exe"模块中扫描指定的内存模式,并返回找到的地址指针。
2. memory.handle_to_ptr(entity) -- 将脚本游戏实体句柄转换为一个 rage::CDynamicEntity 指针。
3. memory.ptr_to_handle(mem_addr) -- 将给定的 rage::CDynamicEntity 指针转换为脚本游戏实体句柄。
4. memory.allocate(size) -- 分配指定大小的内存,并返回指向新分配内存的指针。
5. memory.free(ptr) -- 释放给定指针指向的内存空间。

-----------------------------------------------------------------------------
-- 以下是一些用于调用GTA V脚本以及读写GTA V Tunables和全局变量的函数及其说明:

-- 调用GTA V脚本相关函数:
1. script("script index") -- 用于调用GTA V脚本。
2. is_active() -- 用于确认调用的脚本是否正在执行。

-- 写入GTA V Tunables和全局变量相关函数:
3. tunables.set_int(tunable_name, val) -- 用于写入GTA V Tunables中的整数值。
4. tunables.set_float(tunable_name, val) -- :用于写入GTA V Tunables中的浮点数值。
5. tunables.set_bool(tunable_name, val) -- 用于写入GTA V Tunables中的布尔值。

6. globals.set_uint(global, val) -- 用于写入GTA V全局变量中的无符号整数值。
7. globals.set_float(global, val) -- 用于写入GTA V全局变量中的浮点数值。
8. globals.set_string(global, str) -- 用于写入GTA V全局变量中的字符串值。

-- 读取GTA V Tunables和全局变量相关函数:
9. tunables.get_float(tunable_name) -- 用于读取GTA V Tunables或全局变量的浮点数值。(浮点数 = tunables.get_float(tunable_name))
10. tunables.get_int(tunable_name) -- :用于读取GTA V Tunables或全局变量的整数值。(整数 = tunables.get_int(tunable_name))
11. tunables.get_bool(tunable_name) -- 用于读取GTA V Tunables或全局变量的布尔值。(布尔值 = tunables.get_bool(tunable_name))

12. globals.get_uint(global) -- 用于读取GTA V全局变量中的无符号整数值。(整数 = globals.get_uint(global))
13. globals.get_float(global) -- 用于读取GTA V全局变量中的浮点数值。(浮点数 = globals.get_float(global))
14. globals.get_string(global) -- 用于读取GTA V全局变量中的字符串值。(字符串 = globals.get_string(global))
15. globals.get_pointer(global) -- 用于读取GTA V全局变量中的指针值。(指针 = globals.get_pointer(global))

-----------------------------------------------------------------------------
-- 以下是与指针(pointer)相关的函数及其说明:

1. pointer:new(address) -- 返回一个内存实例,该实例具有给定的内存地址。
2. pointer:add(offset) -- 在当前内存地址上添加一个偏移量,并返回一个新的指针对象。
3. pointer:sub(offset) -- 在当前内存地址上减去一个偏移量,并返回一个新的指针对象。
4. pointer:rip(offset) -- 撤销当前内存地址并返回一个新的指针对象。

-- 下面是示例用法及每个事件对应的示例:

5. local qword = pointer:get_qword() -- 示例:获取存储在内存地址上的值。

-- 以下是读取和写入指定类型的函数:

6. pointer:get_byte() -- 以指定类型从内存地址读取存储的值。
7. pointer:get_word() -- 以指定类型从内存地址读取存储的值。
8. pointer:get_dword() -- 以指定类型从内存地址读取存储的值。
9. pointer:get_float() -- 以指定类型从内存地址读取存储的值。
10. pointer:get_qword() -- 以指定类型从内存地址读取存储的值。
11. pointer:get_string() -- 以指定类型从内存地址读取存储的值。

12. pointer:set_byte(value) -- 将指定类型的值写入内存地址。
13. pointer:set_word(value) -- 将指定类型的值写入内存地址。
14. pointer:set_dword(value) -- 将指定类型的值写入内存地址。
15. pointer:set_float(value) -- 将指定类型的值写入内存地址。
16. pointer:set_qword(value) -- 将指定类型的值写入内存地址。
17. pointer:set_string(value) -- 将指定类型的值写入内存地址。

-- 以下是修改内存地址值的函数:

18. pointer:patch_byte(value) -- 为在内存地址上修改的值创建一个内存补丁,并在调用 lua_patch 对象上的 apply 函数时应用修改的值。在调用 lua_patch 对象上的 restore 函数时,恢复原始值。
19. pointer:patch_word(value) -- 为在内存地址上修改的值创建一个内存补丁,并在调用 lua_patch 对象上的 apply 函数时应用修改的值。在调用 lua_patch 对象上的 restore 函数时,恢复原始值。
20. pointer:patch_dword(value) -- 为在内存地址上修改的值创建一个内存补丁,并在调用 lua_patch 对象上的 apply 函数时应用修改的值。在调用 lua_patch 对象上的 restore 函数时,恢复原始值。
21. pointer:patch_qword(value) -- 为在内存地址上修改的值创建一个内存补丁,并在调用 lua_patch 对象上的 apply 函数时应用修改的值。在调用 lua_patch 对象上的 restore 函数时,恢复原始值。

-- 其他相关函数:

22. pointer:is_null() -- 如果地址为空,返回 true。
23. pointer:is_valid() -- 如果地址不为空,返回 true。

24. pointer:deref() -- 解引用内存地址,并返回指向该地址值的新指针对象。
25. pointer:get_address() -- 检索指针对象中存储的内存地址。
-----------------------------------------------------------------------------
event.register_handler(menu_event.event)

-- 事件:

1. PlayerLeave -- 玩家离开事件
2. PlayerJoin -- 玩家加入事件
3. PlayerMgrInit -- 玩家管理器初始化事件
4. PlayerMgrShutdown -- 玩家管理器关闭事件
5. ChatMessageReceived -- 收到聊天消息事件
6. ScriptedGameEventReceived -- 收到脚本游戏事件

-----------------------------------------------------------------------------
-- 菜单列表分类调用:

GUI_TAB_MENU -- 主菜单
GUI_TAB_ALL_PLAYERS -- 所有玩家
GUI_TAB_PLAYERS -- 线上玩家
GUI_TAB_SELF -- 自我选项
GUI_TAB_TELEPORT -- 传送选项
GUI_TAB_WEAPONS -- 武器选项
GUI_TAB_VEHICLE -- 载具选项
GUI_TAB_WORLD -- 世界选项
GUI_TAB_MODEL_SWAPPER -- 模型插件
GUI_TAB_MODEL_SCRIPT -- 网络事件
GUI_TAB_ATTRIBUTE -- 属性调整
GUI_TAB_INTERFACE -- 菜单设置
-----------------------------------------------------------------------------
                                        

下载 LUA API


Gui_tab_menu = Menu.Title("GUI_TAB_MENU")
Gui_tab_menu:CenterOption("Main Menu - Lua")

local Casino_carousel_drawin = Gui_tab_menu:BoolOption("Casino carousel drawing")

local Coordinate_axis = Gui_tab_menu:FloatOption("Coordinate axis")

Gui_tab_menu:Option("Generate aerial acceleration bars", function()
    script.run_in_fiber(function (crtspeedm)
    objHash = joaat("ar_prop_ar_speed_ring")
    while not STREAMING.HAS_MODEL_LOADED(objHash) do	
        STREAMING.REQUEST_MODEL(objHash)
        crtspeedm:yield()
    end
    local selfpedPos = ENTITY.GET_ENTITY_COORDS(PLAYER.PLAYER_PED_ID(), false)
    local heading = ENTITY.GET_ENTITY_HEADING(PLAYER.PLAYER_PED_ID())
    local obj = OBJECT.CREATE_OBJECT(objHash, selfpedPos.x, selfpedPos.y, selfpedPos.z - Coordinate_axis:get_value(), true, true, false)
    ENTITY.SET_ENTITY_HEADING(obj, heading)
    end)
end)

loopa0 = 0 
local Character_Opacity_Settings = Gui_tab_menu:IntOption("Character Opacity Settings")
local Character_Opacity = Gui_tab_menu:BoolOption("Character Opacity")

Gui_tab_all_players = Menu.Title("GUI_TAB_ALL_PLAYERS")
Gui_tab_all_players:CenterOption("Online Players - Lua")

Gui_tab_players = Menu.Title("GUI_TAB_PLAYERS")
Gui_tab_players:CenterOption("Player Name - Lua")

Gui_tab_self = Menu.Title("GUI_TAB_SELF")
Gui_tab_self:CenterOption("Self Options - Lua")

Gui_tab_teleport = Menu.Title("GUI_TAB_TELEPORT")
Gui_tab_teleport:CenterOption("Teleport Options - Lua")

Gui_tab_weapons = Menu.Title("GUI_TAB_WEAPONS")
Gui_tab_weapons:CenterOption("Weapon Options - Lua")

Gui_tab_vehicle = Menu.Title("GUI_TAB_VEHICLE")
Gui_tab_vehicle:CenterOption("Vehicle Options - Lua")

Gui_tab_world = Menu.Title("GUI_TAB_WORLD")
Gui_tab_world:CenterOption("Game World - Lua")

Gui_tab_model_swapper = Menu.Title("GUI_TAB_MODEL_SWAPPER")
Gui_tab_model_swapper:CenterOption("Model Plugin - Lua")

Gui_tab_model_script = Menu.Title("GUI_TAB_MODEL_SCRIPT")
Gui_tab_model_script:CenterOption("Network Events - Lua")

Gui_tab_attribute = Menu.Title("GUI_TAB_ATTRIBUTE")
Gui_tab_attribute:CenterOption("Attribute Adjustments - Lua")

Gui_tab_interface = Menu.Title("GUI_TAB_INTERFACE")
Gui_tab_interface:CenterOption("Settings Options - Lua")

Gui_tab_interface:Option("Display a prompt in the window", function ()
    log.info("I will display a log message in the black window")
end)

script.register_looped("Game Loops", function()

    if  Character_Opacity:is_enabled() then
        ENTITY.SET_ENTITY_ALPHA(PLAYER.PLAYER_PED_ID(), Character_Opacity_Settings:get_value(), false)
    else
        ENTITY.SET_ENTITY_ALPHA(PLAYER.PLAYER_PED_ID(), 255, false)
    end

    if  Casino_carousel_drawin:is_enabled() then
        locals.set_int("casino_lucky_wheel","290","18")
    end

end)
                                        

下载 示例一