Jump to content

Bad args


Baseplate

Recommended Posts

Posted
function saveThings(thePreviousAccount) 
x, y, z = getElementPosition(source) 
setTimer(function(source) 
    dbExec(connection, "UPDATE players SET skin=?, x=?, y=?, z=?, int=?, dim=?, wanted=?, money=?, occupation=?, team=?, nick=?, wp=? WHERE account=?", tostring(getElementModel(source)), tostring(x), tostring(y), tostring(z), tostring(getElementInterior(source)), tostring(getElementDimension(source)), tostring(getPlayerWantedLevel(source)), tostring(getPlayerMoney(source)), tostring(getElementData(source, "Occupation")), tostring(getTeamName(getPlayerTeam(source))), tostring(getPlayerName(source)), tostring(getElementData(source, "wantedPoints")), thePreviousAccount) 
    dbExec(connection, "UPDATE weapons SET playerWeaponAmmo0=?, playerWeaponAmmo1=?, playerWeaponAmmo2=?, playerWeaponAmmo3=?, playerWeaponAmmo4=?, playerWeaponAmmo5=?, playerWeaponAmmo6=?, playerWeaponAmmo7=?, playerWeaponAmmo8=?, playerWeaponAmmo9=?, playerWeaponAmmo10=?, playerWeaponAmmo11=?, playerWeaponAmmo10=?, pistolstat=?, silencedstat=?, desertstat=?, shotgunstat=?, sawnoffstat=?, spazstat=?, microstat=?, mp5stat=?, akstat=?, m4stat=?, sniperstat=? WHERE account=?", getPedTotalAmmo(source, 0), getPedTotalAmmo(source, 1), getPedTotalAmmo(source, 2), getPedTotalAmmo(source, 3), getPedTotalAmmo(source, 4), getPedTotalAmmo(source, 5), getPedTotalAmmo(source, 6), getPedTotalAmmo(source, 7), getPedTotalAmmo(source, 8) , getPedTotalAmmo(source, 9), getPedTotalAmmo(source, 10), getPedTotalAmmo(source, 11), getPedTotalAmmo(source, 12), getPedStat(source,69), getPedStat(source,70), getPedStat(source,71), getPedStat(source,72), getPedStat(source,73), getPedStat(source,74), getPedStat(source,75), getPedStat(source,76), getPedStat(source,77), getPedStat(source,78), getPedStat(source,79), thePreviousAccount) 
    end, 2000, 1) 
end 
addEventHandler("onPlayerLogout", root, saveThings) 

Returns bad arguements when I use dbExec.

Posted

connection is already defined at the start of the script, and I didn't copy the whole script.

Debug errors.

[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getElementModel' [Expected element at argument 1, got nil] 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getElementInterior' [Expected element at argument 1, got nil] 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getElementDimension' [Expected element at argument 1, got nil] 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getPlayerWantedLevel' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getPlayerMoney' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getElementData' [Expected element at argument 1, got nil] 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getPlayerTeam' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getTeamName' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getPlayerName' [Expected element at argument 1, got nil] 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:93: Bad argument @ 'getElementData' [Expected element at argument 1, got nil] 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedTotalAmmo' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 
[2013-11-05 10:31:43] WARNING: SANGsave\s.lua:94: Bad argument @ 'getPedStat' 

Posted

On the end of the timer add ", source" so it goes like:

" end, 2000, 1, source)" to pass the source to the timer function.

But, there might be another problem.

The logout event is mostly triggerd when player quits, right?

If you delay that for a few seconds, I think that the player element will already be destroyed and it would probably say something like "bad pointer".

Posted

You should do this without the timer, or if you cant do it like that, then you should collect all the data about the player before the timer and pass them to the timer function.

BTW, you are doing the UPDATE statement, is there some data already in the table with the account or not?

Posted

thePreviousAccount is an account not string (account name), so you can't use it this way you need to get the account name also you might need to pass it to the timer just like the source.

Posted

But, wont it make errors if player quits. ( Logout is triggered, but if you delay it for 2 seconds, it would be too late, as the player element will be destroyed, right? )

Posted
Cause on logout, it doesn't update, tried to use a timer so probably it gets some time to save.

Why he even need a timer, it does not save because it was wrong.

function saveThings(thePreviousAccount) 
    local x, y, z = getElementPosition(source) 
    local accountName = getAccountName(thePreviousAccount) 
    dbExec(connection, "UPDATE players SET skin=?, x=?, y=?, z=?, int=?, dim=?, wanted=?, money=?, occupation=?, team=?, nick=?, wp=? WHERE account=?", tostring(getElementModel(source)), tostring(x), tostring(y), tostring(z), tostring(getElementInterior(source)), tostring(getElementDimension(source)), tostring(getPlayerWantedLevel(source)), tostring(getPlayerMoney(source)), tostring(getElementData(source, "Occupation")), tostring(getTeamName(getPlayerTeam(source))), tostring(getPlayerName(source)), tostring(getElementData(source, "wantedPoints")), accountName) 
    dbExec(connection, "UPDATE weapons SET playerWeaponAmmo0=?, playerWeaponAmmo1=?, playerWeaponAmmo2=?, playerWeaponAmmo3=?, playerWeaponAmmo4=?, playerWeaponAmmo5=?, playerWeaponAmmo6=?, playerWeaponAmmo7=?, playerWeaponAmmo8=?, playerWeaponAmmo9=?, playerWeaponAmmo10=?, playerWeaponAmmo11=?, playerWeaponAmmo10=?, pistolstat=?, silencedstat=?, desertstat=?, shotgunstat=?, sawnoffstat=?, spazstat=?, microstat=?, mp5stat=?, akstat=?, m4stat=?, sniperstat=? WHERE account=?", getPedTotalAmmo(source, 0), getPedTotalAmmo(source, 1), getPedTotalAmmo(source, 2), getPedTotalAmmo(source, 3), getPedTotalAmmo(source, 4), getPedTotalAmmo(source, 5), getPedTotalAmmo(source, 6), getPedTotalAmmo(source, 7), getPedTotalAmmo(source, 8 ) , getPedTotalAmmo(source, 9), getPedTotalAmmo(source, 10), getPedTotalAmmo(source, 11), getPedTotalAmmo(source, 12), getPedStat(source,69), getPedStat(source,70), getPedStat(source,71), getPedStat(source,72), getPedStat(source,73), getPedStat(source,74), getPedStat(source,75), getPedStat(source,76), getPedStat(source,77), getPedStat(source,78), getPedStat(source,79), accountName) 
end 
addEventHandler("onPlayerLogout", root, saveThings) 

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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