Jump to content

Error Save Weapon


#Dv^

Recommended Posts

Hola
Tengo un pequeño problema con este script de la comunidad, y es que cuando alguien ingresa al servidor y muere me sale esto

 

ERROR: saveWeapon/server.lua:17: bad argument #1 to "pairs" (table expected, got nil)

No tengo idea de cual sea ese problema, ¿Podrían indicarme que debo hacer? Gracias

 

local tempData = { }
     
    addEventHandler ( "onPlayerWasted", getRootElement(),
        function ( )
            tempData [ source ] =
                {
                    weapons = getWeaponsTable ( source ),
                    skin = getElementModel ( source )
                }
        end
    )
     
    addEventHandler ( "onPlayerSpawn", getRootElement(),
        function ( )
            if ( tempData [ source ] ) then
                setElementModel ( source, tempData [ source ].skin )
                for weapon, ammo in pairs ( tempData [ source ].weapons ) do
                    giveWeapon ( source, weapon, ammo, true )
                end
            end
        end
    )
     
    function getWeaponsTable ( thePlayer )
        local weapons = { }
        local hasAnyWeapon = false
        for slot = 0, 12 do
            local weapon = getPedWeapon ( thePlayer, slot )
            if ( weapon > 0 ) then
                local ammo = getPedTotalAmmo ( thePlayer, slot )
                if ( ammo > 0 ) then
                    weapons [ weapon ] = ammo
                    hasAnyWeapon = true
                end
            end
        end
        if ( hasAnyWeapon ) then
            return weapons
        end
    end

 

Link to comment
    addEventHandler ( "onPlayerSpawn", getRootElement(),
        function ( )
            if ( tempData [ source ] ) then
                setElementModel ( source, tempData [ source ].skin )
                if ( not tempData[ source ].weapons ) then return end
                for weapon, ammo in pairs ( tempData [ source ].weapons ) do
                    giveWeapon ( source, weapon, ammo, true )
                end
            end
        end
    )

 

Link to comment

Muchas gracias @Tomas
Y una pregunta más para cerrar el tema, ¿Qué significa esto?

 

ERROR: ZombieScore/zombiekill_server.lua:17: attempt to perform arithmetic on a nil value
exports.scoreboard:addScoreboardColumn('Zombie kills')
 
addEvent("onZombieWasted",true)
addEventHandler("onZombieWasted",root,
function (killer)
    givePlayerMoney(killer,0)
    addPlayerZombieKills(killer)
 
end)


function addPlayerZombieKills(killer)
    local account = getPlayerAccount(killer)
    if isGuestAccount(account) then return end
    local zombieKills = getAccountData(account,"Zombie kills")
    if not zombieKills then setAccountData(account,"Zombie kills",0) end
    setAccountData(account,"Zombie kills",tonumber(zombieKills)+1)
end


addEventHandler("onPlayerLogin",root,
function ()
    local account = getPlayerAccount(source)
    if isGuestAccount(account) then return end
    local zombieKills = getAccountData(account,"Zombie kills")
    if zombieKills then
        setElementData(source,"Zombie kills",tostring(zombieKills))
    else
        setElementData(source,"Zombie kills",0)    
 
end
end)

Creo que ese problema sale cuando uno no está logueado, e incluso forcé para que sea obligatorio loguearse, pero aún así ese problema sale cuando uno se crea una cuenta, entonces mata su primer zombie y sale el error, después de eso ya no vuelve a salir más, solo cuando la cuenta es nueva

Link to comment
  • MTA Team

Tambien vale aclarar que estas mezclando en un mismo elementData numeros y strings. Eso te puede generar problemas a futuro asi como tambien consumir mas tiempo de procesamiento de la VM de Lua. Un numero se compara mas rapido que un string, ademas de que un numero tiene menos peso logico que un string. Como recomendación para lo que estas haciendo, no uses strings. Saludos

Link to comment
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...