Lua 赠送物品时的金额错误

Lua 赠送物品时的金额错误,lua,fivem,Lua,Fivem,我需要你的帮助 我们的问题是,玩家可以在库存中分配比平时更多的东西(例如:我没有“25”三明治,但如果我输入“025”作为值,我可以给另一个玩家25) 有人知道我怎么解决这个问题吗 代码片段如下所示: (服务器端): (客户端): 非常感谢 您有几个问题: 比较if item==“绷带”或“面包”。。。然后将不会执行您期望它执行的操作,因为面包将被评估为真(因为它不会与项值进行比较),所以无论实际值或项是什么,整个表达式都将被评估为真。您需要将其重写为it item=='bandage'或ite

我需要你的帮助

我们的问题是,玩家可以在库存中分配比平时更多的东西(例如:我没有“25”三明治,但如果我输入“025”作为值,我可以给另一个玩家25)

有人知道我怎么解决这个问题吗

代码片段如下所示:

(服务器端):

(客户端):


非常感谢

您有几个问题:

  • 比较
    if item==“绷带”或“面包”。。。然后
    将不会执行您期望它执行的操作,因为
    面包
    将被评估为
    (因为它不会与
    值进行比较),所以无论实际值或
    是什么,整个表达式都将被评估为
    。您需要将其重写为
    it item=='bandage'或item='bread'。。。等等
  • 我看不到与可用项目的任何比较,因此它可能发生在其他地方(由于第一个问题而未应用),或者没有完成
  • RegisterNetEvent('grv_inventory:giveItem')
    AddEventHandler('grv_inventory:giveItem', function(name, count, target)
        local _source = source
        local xPlayer = ESX.GetPlayerFromId(_source)
        local xTarget = ESX.GetPlayerFromId(target)
    
        if item == 'bandage' or 'bread' or 'bulletproof' or 'clip' or 'contract' or 'cuffs' or 'cuff_keys' or 'drill' or 'fixkit' or 'jewels' or 'medikit' or 'meth' or 'phone' or 'water' or 'kroeten' or 'kroeten_pooch' or 'ephi' or 'aramidfasern' or 'aramid' or 'kevlar' or 'holz' or 'schraube' or 'huelse' or 'radio' or 'bauxit' or 'aluminiumoxid' or 'aluminium' or 'eisenerz' or 'magazin' or 'trauben' or 'traubenverarbeitet' or 'lspdstandard' or 'orangen' or 'orangenverarbeitet' or 'lsfstandard' or 'weedsamen' or 'weed' or 'joint' or 'kocher' or 'tfcoupon' or 'ffcoupon' or 'teddy' or 'rose' or 'srose' or 'kaffee' or 'cola' or 'steine' or 'fib1' or 'fib2' or 'fib3' or 'lspdweste1' or 'lspdweste2' or 'lspdweste3' then
        xPlayer.removeInventoryItem(name, count)
        xTarget.addInventoryItem(name, count)
        TriggerClientEvent('esx:showNotification', target, "Du hast " ..count.. "x " ..name.. "  bekommen ")
    
        TriggerClientEvent('grv_inventory:setMax', source, count)
        end
    end)
    
    RegisterNUICallback('give', function(data, cb)
        toggleField(false)
        SetNuiFocus(false, false)
        local playerPed = GetPlayerPed(-1)
        loadAnimDict('anim@mp_snowball')
        local player, dist = ESX.Game.GetClosestPlayer()
    
        if player == -1 or dist > 3.0 then
            ESX.ShowNotification('Es ist keine Person in der Nähe')
        else
            TaskPlayAnim(PlayerPedId(), 'anim@mp_snowball', 'pickup_snowball', 8.0, -1, -1, 0, 1, 0, 0, 0)
            Citizen.Wait(1300)
            ClearPedTasksImmediately(playerPed)
            TriggerServerEvent('grv_inventory:giveItem', data.item, data.amount, GetPlayerServerId(player))
            ESX.ShowNotification(("Du hast jemanden %sx %s zugesteckt"):format(data.amount, data.label))
        end
        
        cb('ok')
    end)