Jump to content

getPlayerAccount problem


TheHead

Recommended Posts

It's save system but I got a problem in the code that keeps sending me this line in debugscript . " Bad arguement @ 'getPlayerAccount' [Expected element at arguement 1 , got nil]

function onPlayerQuit()
    local playeraccount = getPlayerAccount(source)
    if (playeraccount) then
        local x,y,z = getElementPosition (source)
        local HijackExp = getElementData (source, "hiExp" )
        local health = getElementHealth (source)
        local armor = getPedArmor (source)
        local storeRobExp = getElementData (source, "srExp" )
        local CriminalExp = getElementData (source, "CriminalExp" )
        local married = getElementData (source, "married" )
        local CopKillingExp = getElementData (source, "cExp" )
        local walkstyle = getAccountData( source, "walks")
        local job = exports.CISbusiness:getPlayerJob(source)
        local w = getElementData(source, "w")
        local policearrests = getElementData(source, "policeArrests")
        local arrestpoints = getElementData(source, "arrestPoints")
        local arrestkills = getElementData(source, "arrestsKills")
        local sweepam = getElementData(source, "sweeps")
        local farmam = getElementData(source, "farmer_bails")
        local taxiam = getElementData(source, "taxi_dropoff")
        local limoam = getElementData(source, "limo_dropoff")
        local busam = getElementData(source, "busdriver_progress")
        local fisham = getElementData(source, "fish_sales")
        local wasteam = getElementData(source, "rubbish_collections")
        local pizzaam = getElementData(source, "delivered_pizzas")
        local ironam = getElementData(source, "iron")
        local ironlifeam = getElementData(source, "lifetimeiron")
        local turftakenam = getElementData(source, "turfTaken")
        local bagtakenam = getElementData(source, "bagtaken")
        local oil = getElementData(source, "oil")
        local EX = getElementData(source, "explosive")
        local EP = getElementData(source, "engineparts")
        local Ch = getElementData(source, "chemicals")
        local gold = getElementData(source, "gold")
        local pin = getElementData(source, "ATMPW")
        local r,g,b = getPlayerNametagColor(source)
        setAccountData (playeraccount, "pin", pin)
        setAccountData (playeraccount, "TagR", r)
        setAccountData (playeraccount, "TagG", g)
        setAccountData (playeraccount, "TagB", b)
        setAccountData (playeraccount, "chemicals", Ch)
        setAccountData (playeraccount, "gold", gold)
        setAccountData (playeraccount, "EX", EX)
        setAccountData (playeraccount, "engineparts", EP)
        setAccountData (playeraccount, "cis.job", job)
        setAccountData (playeraccount, "health", health)
        setAccountData (playeraccount, "armor", armor)
        setAccountData (playeraccount, "hiExp", HijackExp)
        setAccountData (playeraccount, "CriminalExp", CriminalExp)
        setAccountData (playeraccount, "policeArrests", policearrests)
        setAccountData (playeraccount, "arrestPoints", arrestpoints)
        setAccountData (playeraccount, "arrestsKills", arrestkills)
        setAccountData (playeraccount, "married", married)
        setAccountData (playeraccount, "cExp", CopKillingExp)
        setAccountData (playeraccount, "srExp", storeRobExp)
        setAccountData (playeraccount, "w", w)
        setAccountData (playeraccount, "sweeps", sweepam)
        setAccountData (playeraccount, "farmer_bails", farmam)
        setAccountData (playeraccount, "taxi_dropoff", taxiam)
        setAccountData (playeraccount, "limo_dropoff", limoam)
        setAccountData (playeraccount, "busdriver_progress", busam)
        setAccountData (playeraccount, "fish_sales", fisham)
        setAccountData (playeraccount, "rubbish_collections", wasteam)
        setAccountData (playeraccount, "delivered_pizzas", pizzaam)
        setAccountData (playeraccount, "iron", ironam)
        setAccountData (playeraccount, "lifetimeiron", ironlifeam)
        setAccountData (playeraccount, "bagtaken", bagtakenam)
        setAccountData (playeraccount, "turfTaken", turftakenam)
	setAccountData (playeraccount, "oil", oil)
        setAccountData (playeraccount, "s.HandMoney", getPlayerMoney ( source ) )
        setAccountData (playeraccount, "s.skin", tostring (getPedSkin (source)))
        setAccountData (playeraccount, "s.x", x)
        setAccountData (playeraccount, "s.y", y)
        setAccountData (playeraccount, "s.z", z)
        setAccountData (playeraccount, "s.int", getElementInterior (source))
        setAccountData (playeraccount, "s.dim", getElementDimension (source))
        setAccountData (playeraccount, "s.rot", getPedRotation (source))
        setAccountData (playeraccount, "s.weap0", getPedWeapon ( source, 0 ))
        setAccountData (playeraccount, "s.weap1", getPedWeapon ( source, 1 ))
        setAccountData (playeraccount, "s.weap2", getPedWeapon ( source, 2 ))
        setAccountData (playeraccount, "s.ammo2", getPedTotalAmmo ( source, 2 ))
        setAccountData (playeraccount, "s.weap3", getPedWeapon ( source, 3 ))
        setAccountData (playeraccount, "s.ammo3", getPedTotalAmmo ( source, 3 ))
        setAccountData (playeraccount, "s.weap4", getPedWeapon ( source, 4 ))
        setAccountData (playeraccount, "s.ammo4", getPedTotalAmmo ( source, 4 ))
        setAccountData (playeraccount, "s.weap5", getPedWeapon ( source, 5 ))
        setAccountData (playeraccount, "s.ammo5", getPedTotalAmmo ( source, 5 ))
        setAccountData (playeraccount, "s.weap6", getPedWeapon ( source, 6 ))
        setAccountData (playeraccount, "s.ammo6", getPedTotalAmmo ( source, 6 ))
        setAccountData (playeraccount, "s.weap7", getPedWeapon ( source, 7 ))
        setAccountData (playeraccount, "s.ammo7", getPedTotalAmmo ( source, 7 ))
        setAccountData (playeraccount, "s.weap8", getPedWeapon ( source, 8 ))
        setAccountData (playeraccount, "s.ammo8", getPedTotalAmmo ( source, 8 ))
        setAccountData (playeraccount, "s.weap9", getPedWeapon ( source, 9 ))
        setAccountData (playeraccount, "s.ammo9", getPedTotalAmmo ( source, 9 ))
        setAccountData (playeraccount, "s.weap10", getPedWeapon ( source, 10 ))
        setAccountData (playeraccount, "s.weap11", getPedWeapon ( source, 11 ))
        setAccountData (playeraccount, "s.weap12", getPedWeapon ( source, 12 ))
    end
end
addEventHandler("onPlayerLogout", getRootElement(), onPlayerQuit)
addEventHandler("onPlayerQuit", getRootElement(), onPlayerQuit)
setTimer(onPlayerQuit, 3000, 0)

 

Link to comment
  • Moderators

The source of the events is the player that left the server or logout.

So, if onPlayerQuit FUNCTION triggered by onPlayerLogout or onPlayerQuit EVENT, the source exists and it is the player's element.

BUT if you call the onPlayerQuit FUNCTION with the timer, the source doesn't exists.

 

Solutions:

1) Remove the setTimer.

2) Or modify the script, like this:

function savePlayerAccount() -- rename the function, because it's less misleading
    local playeraccount = getPlayerAccount(source)
    if (playeraccount) then
        local x,y,z = getElementPosition (source)
        local HijackExp = getElementData (source, "hiExp" )
        local health = getElementHealth (source)
        local armor = getPedArmor (source)
        local storeRobExp = getElementData (source, "srExp" )
        local CriminalExp = getElementData (source, "CriminalExp" )
        local married = getElementData (source, "married" )
        local CopKillingExp = getElementData (source, "cExp" )
        local walkstyle = getAccountData( source, "walks")
        local job = exports.CISbusiness:getPlayerJob(source)
        local w = getElementData(source, "w")
        local policearrests = getElementData(source, "policeArrests")
        local arrestpoints = getElementData(source, "arrestPoints")
        local arrestkills = getElementData(source, "arrestsKills")
        local sweepam = getElementData(source, "sweeps")
        local farmam = getElementData(source, "farmer_bails")
        local taxiam = getElementData(source, "taxi_dropoff")
        local limoam = getElementData(source, "limo_dropoff")
        local busam = getElementData(source, "busdriver_progress")
        local fisham = getElementData(source, "fish_sales")
        local wasteam = getElementData(source, "rubbish_collections")
        local pizzaam = getElementData(source, "delivered_pizzas")
        local ironam = getElementData(source, "iron")
        local ironlifeam = getElementData(source, "lifetimeiron")
        local turftakenam = getElementData(source, "turfTaken")
        local bagtakenam = getElementData(source, "bagtaken")
        local oil = getElementData(source, "oil")
        local EX = getElementData(source, "explosive")
        local EP = getElementData(source, "engineparts")
        local Ch = getElementData(source, "chemicals")
        local gold = getElementData(source, "gold")
        local pin = getElementData(source, "ATMPW")
        local r,g,b = getPlayerNametagColor(source)
        setAccountData (playeraccount, "pin", pin)
        setAccountData (playeraccount, "TagR", r)
        setAccountData (playeraccount, "TagG", g)
        setAccountData (playeraccount, "TagB", b)
        setAccountData (playeraccount, "chemicals", Ch)
        setAccountData (playeraccount, "gold", gold)
        setAccountData (playeraccount, "EX", EX)
        setAccountData (playeraccount, "engineparts", EP)
        setAccountData (playeraccount, "cis.job", job)
        setAccountData (playeraccount, "health", health)
        setAccountData (playeraccount, "armor", armor)
        setAccountData (playeraccount, "hiExp", HijackExp)
        setAccountData (playeraccount, "CriminalExp", CriminalExp)
        setAccountData (playeraccount, "policeArrests", policearrests)
        setAccountData (playeraccount, "arrestPoints", arrestpoints)
        setAccountData (playeraccount, "arrestsKills", arrestkills)
        setAccountData (playeraccount, "married", married)
        setAccountData (playeraccount, "cExp", CopKillingExp)
        setAccountData (playeraccount, "srExp", storeRobExp)
        setAccountData (playeraccount, "w", w)
        setAccountData (playeraccount, "sweeps", sweepam)
        setAccountData (playeraccount, "farmer_bails", farmam)
        setAccountData (playeraccount, "taxi_dropoff", taxiam)
        setAccountData (playeraccount, "limo_dropoff", limoam)
        setAccountData (playeraccount, "busdriver_progress", busam)
        setAccountData (playeraccount, "fish_sales", fisham)
        setAccountData (playeraccount, "rubbish_collections", wasteam)
        setAccountData (playeraccount, "delivered_pizzas", pizzaam)
        setAccountData (playeraccount, "iron", ironam)
        setAccountData (playeraccount, "lifetimeiron", ironlifeam)
        setAccountData (playeraccount, "bagtaken", bagtakenam)
        setAccountData (playeraccount, "turfTaken", turftakenam)
        setAccountData (playeraccount, "oil", oil)
        setAccountData (playeraccount, "s.HandMoney", getPlayerMoney ( source ) )
        setAccountData (playeraccount, "s.skin", tostring (getPedSkin (source)))
        setAccountData (playeraccount, "s.x", x)
        setAccountData (playeraccount, "s.y", y)
        setAccountData (playeraccount, "s.z", z)
        setAccountData (playeraccount, "s.int", getElementInterior (source))
        setAccountData (playeraccount, "s.dim", getElementDimension (source))
        setAccountData (playeraccount, "s.rot", getPedRotation (source))
        setAccountData (playeraccount, "s.weap0", getPedWeapon ( source, 0 ))
        setAccountData (playeraccount, "s.weap1", getPedWeapon ( source, 1 ))
        setAccountData (playeraccount, "s.weap2", getPedWeapon ( source, 2 ))
        setAccountData (playeraccount, "s.ammo2", getPedTotalAmmo ( source, 2 ))
        setAccountData (playeraccount, "s.weap3", getPedWeapon ( source, 3 ))
        setAccountData (playeraccount, "s.ammo3", getPedTotalAmmo ( source, 3 ))
        setAccountData (playeraccount, "s.weap4", getPedWeapon ( source, 4 ))
        setAccountData (playeraccount, "s.ammo4", getPedTotalAmmo ( source, 4 ))
        setAccountData (playeraccount, "s.weap5", getPedWeapon ( source, 5 ))
        setAccountData (playeraccount, "s.ammo5", getPedTotalAmmo ( source, 5 ))
        setAccountData (playeraccount, "s.weap6", getPedWeapon ( source, 6 ))
        setAccountData (playeraccount, "s.ammo6", getPedTotalAmmo ( source, 6 ))
        setAccountData (playeraccount, "s.weap7", getPedWeapon ( source, 7 ))
        setAccountData (playeraccount, "s.ammo7", getPedTotalAmmo ( source, 7 ))
        setAccountData (playeraccount, "s.weap8", getPedWeapon ( source, 8 ))
        setAccountData (playeraccount, "s.ammo8", getPedTotalAmmo ( source, 8 ))
        setAccountData (playeraccount, "s.weap9", getPedWeapon ( source, 9 ))
        setAccountData (playeraccount, "s.ammo9", getPedTotalAmmo ( source, 9 ))
        setAccountData (playeraccount, "s.weap10", getPedWeapon ( source, 10 ))
        setAccountData (playeraccount, "s.weap11", getPedWeapon ( source, 11 ))
        setAccountData (playeraccount, "s.weap12", getPedWeapon ( source, 12 ))
    end
end
addEventHandler("onPlayerLogout", getRootElement(), savePlayerAccount)
addEventHandler("onPlayerQuit", getRootElement(), savePlayerAccount)
addEvent("savePlayerAccount", true) -- register a custom event what we can call with triggerEvent and pass the source
addEventHandler("savePlayerAccount", getRootElement(), savePlayerAccount)
setTimer(function()
    for _, player in ipairs(getElementsByType("player")) do -- loop all online players and call savePlayerAccount function
        triggerEvent("savePlayerAccount", player)
    end
end, 3000, 0)

 

Edited by stPatrick
Link to comment

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...