搜索
开启左侧

翻译成中文,保留源代码

[复制链接]
1214570993 发表于 2024-8-28 15:54:08 | 显示全部楼层 |阅读模式

ESX = nil

Citizen.CreateThread(function()
    while ESX == nil do
        TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
        Citizen.Wait(0)
    end
end)

local DumpsterCooldown = 7 -- In Minutes

local dumspterModel = {
    218085040,
    666561306,
    -58485588,
    -206690185,
    1511880420,
    682791951,
}

exports['qtarget']:AddTargetModel(dumspterModel, {
    options = {
        {
            event = 'dumpsterTrigger',
            icon = 'fas fa-dumpster',
            label = 'Search Dumpster',
        },
    },
    distance = 1.5
})


local Searched = {}

function CheckSearch(dumpster)
    local dumpstermodel = dumpster.entity
    for k, v in ipairs(Searched) do
        if v == dumpstermodel then
            return true
        end
    end
    return false
end


RegisterNetEvent('dumpsterTrigger')
AddEventHandler('dumpsterTrigger', function(data)
    local dumpstermodel = data.entity
    print(dumpstermodel)
    if CheckSearch(data) then
        exports['mythic_notify']:SendAlert('error', "You've already searched this dumpster")
    else
        exports['mythic_notify']:SendAlert('inform', "Searching Dumpster")
        table.insert(Searched, dumpstermodel)
        TriggerEvent('dumpster:starttimer', dumpstermodel)
        SearchDumpster()
    end
end)

function SearchDumpster()
    local time = math.random(30000, 40000)
    exports['mythic_progbar']:Progress({
        name = "unique_action_name",
        duration = time,
        label = 'Searching Dumpster',
        useWhileDead = false,
        canCancel = false,
        controlDisables = {
            disableMovement = true,
            disableCarMovement = true,
            disableMouse = false,
            disableCombat = true,
        },
        animation = {
          animDict = "mini@repair",
          anim = "fixing_a_ped",
        },
    })
    Citizen.Wait(time)
    ClearPedTasks(PlayerPedId(-1))
    TriggerServerEvent('dumpster:givereward')
end

RegisterNetEvent('dumpster:starttimer')
AddEventHandler('dumpster:starttimer', function(dumpster)
    local timer = DumpsterCooldown * 60000
    while timer > 0 do
        Wait(1000)
        timer = timer - 1000
        if timer == 0 then
            for i = 1, #Searched do
                if Searched[i] == dumpster then
                    table.remove(Searched, i)
                end
            end
        end
    end
end)



回复 论坛版权

使用道具 举报

ChatGPT 发表于 2024-8-28 15:54:33 | 显示全部楼层
ESX = nil

Citizen.CreateThread(function()
    while ESX == nil do
        TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
        Citizen.Wait(0)
    end
end)

local DumpsterCooldown = 7 -- 冷却时间(分钟)

local dumspterModel = {
    218085040,
    666561306,
    -58485588,
    -206690185,
    1511880420,
    682791951,
}

exports['qtarget']:AddTargetModel(dumspterModel, {
    options = {
        {
            event = 'dumpsterTrigger',
            icon = 'fas fa-dumpster',
            label = '搜索垃圾箱',
        },
    },
    distance = 1.5
})

local Searched = {}

function CheckSearch(dumpster)
    local dumpstermodel = dumpster.entity
    for k, v in ipairs(Searched) do
        if v == dumpstermodel then
            return true
        end
    end
    return false
end

RegisterNetEvent('dumpsterTrigger')
AddEventHandler('dumpsterTrigger', function(data)
    local dumpstermodel = data.entity
    print(dumpstermodel)
    if CheckSearch(data) then
        exports['mythic_notify']:SendAlert('error', "你已经搜索过这个垃圾箱了")
    else
        exports['mythic_notify']:SendAlert('inform', "正在搜索垃圾箱")
        table.insert(Searched, dumpstermodel)
        TriggerEvent('dumpster:starttimer', dumpstermodel)
        SearchDumpster()
    end
end)

function SearchDumpster()
    local time = math.random(30000, 40000)
    exports['mythic_progbar']:Progress({
        name = "unique_action_name",
        duration = time,
        label = '正在搜索垃圾箱',
        useWhileDead = false,
        canCancel = false,
        controlDisables = {
            disableMovement = true,
            disableCarMovement = true,
            disableMouse = false,
            disableCombat = true,
        },
        animation = {
          animDict = "mini@repair",
          anim = "fixing_a_ped",
        },
    })
    Citizen.Wait(time)
    ClearPedTasks(PlayerPedId(-1))
    TriggerServerEvent('dumpster:givereward')
end

RegisterNetEvent('dumpster:starttimer')
AddEventHandler('dumpster:starttimer', function(dumpster)
    local timer = DumpsterCooldown * 60000
    while timer > 0 do
        Wait(1000)
        timer = timer - 1000
        if timer == 0 then
            for i = 1, #Searched do
                if Searched[i] == dumpster then
                    table.remove(Searched, i)
                end
            end
        end
    end
end)

这段代码是一个FiveM插件的示例,主要用于处理玩家搜索垃圾箱的功能。代码中包含了冷却时间、搜索逻辑和通知功能。代码应该放在`Client.lua`中,因为它涉及到客户端的事件处理和用户界面交互。
回复

使用道具 举报

文明发言,和谐互动
文明发言,和谐互动
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|首页 ( 冀ICP备2021005225号-1 ) |网站地图

GMT+8, 2025-2-9 02:16 , Processed in 0.125927 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2013 ELITE论坛【技术无价-分享快乐】

快速回复 返回顶部 返回列表