#Dv^ Posted October 24, 2016 Share Posted October 24, 2016 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
Tomas Posted October 24, 2016 Share Posted October 24, 2016 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
#Dv^ Posted October 25, 2016 Author Share Posted October 25, 2016 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
Tomas Posted October 25, 2016 Share Posted October 25, 2016 if not zombieKills then setAccountData(account,"Zombie kills",0); zombieKills = 0 end Link to comment
MTA Team 0xCiBeR Posted October 26, 2016 MTA Team Share Posted October 26, 2016 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
Recommended Posts