-- DEBUG MENU

local Rv_adminMenu = {}

-- 在世界物体右键菜单中添加 RV Interior 选项 Rv_adminMenu.onFillWorldObjectContextMenu = function(playerId, context, worldObjects) local player = getSpecificPlayer(playerId) -- 仅管理员和调试模式下可用 if isAdmin() or isDebugEnabled() then local KeyMenu = context:addOption('[DEBUG] RV Interior', worldObjects); -- 创建子菜单 local subMenu = ISContextMenu:getNew(context); Rv_adminMenu.context = context Rv_adminMenu.subMenu = subMenu -- 将子菜单添加到主菜单 context:addSubMenu(KeyMenu, subMenu); -- 添加重置车辆选项 subMenu:addOption(getText('UI_rvreset'), worldObjects, Rv_adminMenu.resetVehicle, player) -- 添加获取分配编号选项 subMenu:addOption(getText('UI_rvnum'), worldObjects, Rv_adminMenu.getAssignedNumber, player) end end

-- 将 onFillWorldObjectContextMenu 函数添加到事件 OnFillWorldObjectContextMenu 中 Events.OnFillWorldObjectContextMenu.Add(Rv_adminMenu.onFillWorldObjectContextMenu)


-- 重置车辆函数 Rv_adminMenu.resetVehicle = function(_worldObjects, player) -- 获取玩家所在的车辆 local vehicleInside = player:getVehicle() -- 如果玩家在车辆内 if vehicleInside then -- 发送重置车辆命令给服务器 sendClientCommand("RVInteriorAdmin", "clientResetVehicle", { vehicleId = vehicleInside:getId(), playerId = player:getOnlineID() }) end end

-- 获取分配编号函数 Rv_adminMenu.getAssignedNumber = function(_worldObjects, player) -- 获取玩家所在的车辆 local vehicleInside = player:getVehicle() -- 如果玩家在车辆内 if vehicleInside then -- 发送获取分配编号命令给服务器 sendClientCommand("RVInteriorAdmin", "clientGetAssignedNumber", { vehicleId = vehicleInside:getId(), playerId = player:getOnlineID() }) end end


-- SERVER COMMANDS

-- 定义服务器命令处理函数表 local adminServerCommandHandlers = {}

-- 服务器命令处理函数 local function adminMenuOnServerCommand(module, command, arguments) -- 仅处理 RVInteriorAdmin 模块的命令 if module ~= "RVInteriorAdmin" then return end -- 如果命令处理函数存在 if adminServerCommandHandlers[command] then -- 获取玩家 local player = getSpecificPlayer(arguments.playerId % 4) -- 调用对应命令的处理函数 adminServerCommandHandlers[command](player, arguments) end end

-- 将 adminMenuOnServerCommand 函数添加到事件 OnServerCommand 中 Events.OnServerCommand.Add(adminMenuOnServerCommand)


-- 处理获取分配编号命令的函数 adminServerCommandHandlers.serverGetAssignedNumber = function(player, arguments) -- 根据返回的编号值发送对应消息 if arguments[1] == -1 then player:Say(getText("UI_rvnone")) elseif arguments[1] <= 25 then player:Say(tostring(arguments[1])) else player:Say("+ de 25") end end


-- 处理重置车辆命令的函数 adminServerCommandHandlers.serverResetVehicle = function(player) -- 向玩家发送重置成功消息 player:Say(getText("UI_rvisreset")) end


原文地址: https://www.cveoy.top/t/topic/nnZ7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录