Jump to content

Problem with save system.


Freddy123

Recommended Posts

I'm trying to save weapons, ammo, skin and money when the player dies and everything (also position, health and armor) when he quits.

I'm not getting anything on debug, it's not saving anything, I tried setting data with runcode and it also doesn't load it...

no idea of how to fix it...

Could anyone help me please?

  
function createTeamOnStart () 
    Owner = createTeam ( "Owner", 150, 150, 150 ) 
    Admins = createTeam ( "Admins", 200, 0, 0 ) 
    Moderators = createTeam ( "Moderators", 190, 190, 0 ) 
    Players = createTeam ( "Players", 30, 180, 0 ) 
end 
addEventHandler("onResourceStart", resourceRoot, createTeamOnStart) 
  
function playerSpawnSettings (thePreviousAccount, theCurrentAccount, autoLogin) 
  if  not (isGuestAccount (getPlayerAccount (source)) ) then 
    local accountData = getAccountData (theCurrentAccount, "funmodev2-money") 
    if (accountData) then 
      local playerMoney = getAccountData (theCurrentAccount, "funmodev2-money") 
      local playerSkin = getAccountData (theCurrentAccount, "funmodev2-skin") 
      local playerHealth = getAccountData (theCurrentAccount, "funmodev2-health") 
      local playerArmor = getAccountData (theCurrentAccount, "funmodev2-armor") 
      local playerX = getAccountData (theCurrentAccount, "funmodev2-x") 
      local playerY = getAccountData (theCurrentAccount, "funmodev2-y") 
      local playerZ = getAccountData (theCurrentAccount, "funmodev2-z") 
      local playerInt = getAccountData (theCurrentAccount, "funmodev2-int") 
      local playerDim = getAccountData (theCurrentAccount, "funmodev2-dim") 
      local playerWanted = getAccountData (theCurrentAccount, "funmodev2-wantedlevel") 
     local playerTeam = getAccountData (theCurrentAccount, "funmodev2-Team") 
      local playerWeaponID0 = getAccountData (theCurrentAccount, "funmodev2-weaponID0") 
      local playerWeaponID1 = getAccountData (theCurrentAccount, "funmodev2-weaponID1") 
      local playerWeaponID2 = getAccountData (theCurrentAccount, "funmodev2-weaponID2") 
      local playerWeaponID3 = getAccountData (theCurrentAccount, "funmodev2-weaponID3") 
      local playerWeaponID4 = getAccountData (theCurrentAccount, "funmodev2-weaponID4") 
      local playerWeaponID5 = getAccountData (theCurrentAccount, "funmodev2-weaponID5") 
      local playerWeaponID6 = getAccountData (theCurrentAccount, "funmodev2-weaponID6") 
      local playerWeaponID7 = getAccountData (theCurrentAccount, "funmodev2-weaponID7") 
      local playerWeaponID8 = getAccountData (theCurrentAccount, "funmodev2-weaponID8") 
      local playerWeaponID9 = getAccountData (theCurrentAccount, "funmodev2-weaponID9") 
      local playerWeaponID10 = getAccountData (theCurrentAccount, "funmodev2-weaponID10") 
      local playerWeaponID11 = getAccountData (theCurrentAccount, "funmodev2-weaponID11") 
      local playerWeaponID12 = getAccountData (theCurrentAccount, "funmodev2-weaponID12") 
      local playerWeaponAmmo0 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo0") 
      local playerWeaponAmmo1 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo1") 
      local playerWeaponAmmo2 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo2") 
      local playerWeaponAmmo3 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo3") 
      local playerWeaponAmmo4 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo4") 
      local playerWeaponAmmo5 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo5") 
      local playerWeaponAmmo6 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo6") 
      local playerWeaponAmmo7 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo7") 
      local playerWeaponAmmo8 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo8") 
      local playerWeaponAmmo9 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo9") 
      local playerWeaponAmmo10 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo10") 
      local playerWeaponAmmo11 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo11") 
      local playerWeaponAmmo12 = getAccountData (theCurrentAccount, "funmodev2-weaponAmmo12") 
      spawnPlayer (source, playerX, playerY, playerZ +1, 0, playerSkin, playerInt, playerDim) 
      setPlayerMoney (source, playerMoney) 
      setTimer (setElementHealth, 50, 1, source, playerHealth) 
      setTimer (setPedArmor, 50, 1, source, playerArmor) 
      setTimer (setPlayerWantedLevel, 50, 1, source, playerWanted) 
      giveWeapon(source, playerWeaponID0, playerWeaponAmmo0) 
      giveWeapon(source, playerWeaponID1, playerWeaponAmmo1) 
      giveWeapon(source, playerWeaponID2, playerWeaponAmmo2) 
      giveWeapon(source, playerWeaponID3, playerWeaponAmmo3) 
      giveWeapon(source, playerWeaponID4, playerWeaponAmmo4) 
      giveWeapon(source, playerWeaponID5, playerWeaponAmmo5) 
      giveWeapon(source, playerWeaponID6, playerWeaponAmmo6) 
      giveWeapon(source, playerWeaponID7, playerWeaponAmmo7) 
      giveWeapon(source, playerWeaponID8, playerWeaponAmmo8) 
      giveWeapon(source, playerWeaponID9, playerWeaponAmmo9) 
      giveWeapon(source, playerWeaponID10, playerWeaponAmmo10) 
      giveWeapon(source, playerWeaponID11, playerWeaponAmmo11) 
      giveWeapon(source, playerWeaponID12, playerWeaponAmmo12) 
      setCameraTarget (source, source) 
      fadeCamera(source, true, 2.0) 
   else 
   spawnPlayer (source, -551, 2594, 54, 270,285, 0, 0) 
   setElementPosition ( source, -551, 2594, 54) 
   setCameraTarget(source, source) 
   showChat(source, true) 
   createBlipAttachedTo ( source, 0 ) 
end 
function teamset () 
   if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Console")) then 
   setPlayerTeam(source, Owner or getTeamFromName("Owner")) 
   playerSpawnSettings () 
   elseif isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Moderator")) then 
   setPlayerTeam(source, Moderators or getTeamFromName("Moderators")) 
   playerSpawnSettings () 
   elseif isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Admin")) then 
   setPlayerTeam(source, Admins or getTeamFromName("Admins")) 
   playerSpawnSettings () 
   elseif isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Everyone")) then 
   setPlayerTeam(source, Players or getTeamFromName("Players")) 
   playerSpawnSettings () 
   elseif not isObjectInACLGroup("user."..getAccountName(getPlayerAccount(source)), aclGetGroup("Everyone")) then 
   setPlayerTeam(source, Players or getTeamFromName("Players")) 
   playerSpawnSettings () 
   end 
end 
addEventHandler("onPlayerLogin",root, teamset ) 
addEventHandler("onPlayerLogout",root, teamset ) 
  
function onQuit (quitType, reason, responsibleElement) 
  if not (isGuestAccount (getPlayerAccount (source))) then 
    account = getPlayerAccount (source) 
    if (account) then 
      local x,y,z = getElementPosition (source) 
      setAccountData (account, "funmodev2-money", tostring (getPlayerMoney (source))) 
      setAccountData (account, "funmodev2-skin", tostring (getPedSkin (source))) 
      setAccountData (account, "funmodev2-health", tostring (getElementHealth (source))) 
      setAccountData (account, "funmodev2-armor", tostring (getPedArmor (source))) 
      setAccountData (account, "funmodev2-R", r) 
      setAccountData (account, "funmodev2-G", g) 
      setAccountData (account, "funmodev2-B", b) 
      setAccountData (account, "funmodev2-x", x) 
      setAccountData (account, "funmodev2-y", y) 
      setAccountData (account, "funmodev2-z", z) 
      setAccountData (account, "funmodev2-int", getElementInterior (source)) 
      setAccountData (account, "funmodev2-dim", getElementDimension (source)) 
      setAccountData (account, "funmodev2-wantedlevel", getPlayerWantedLevel (source)) 
      setAccountData (account, "funmodev2-weaponID0", getPedWeapon (source, 0)) 
      setAccountData (account, "funmodev2-weaponID1", getPedWeapon (source, 1)) 
      setAccountData (account, "funmodev2-weaponID2", getPedWeapon (source, 2)) 
      setAccountData (account, "funmodev2-weaponID3", getPedWeapon (source, 3)) 
      setAccountData (account, "funmodev2-weaponID4", getPedWeapon (source, 4)) 
      setAccountData (account, "funmodev2-weaponID5", getPedWeapon (source, 5)) 
      setAccountData (account, "funmodev2-weaponID6", getPedWeapon (source, 6)) 
      setAccountData (account, "funmodev2-weaponID7", getPedWeapon (source, 7)) 
      setAccountData (account, "funmodev2-weaponID8", getPedWeapon (source, 8 )) 
      setAccountData (account, "funmodev2-weaponID9", getPedWeapon (source, 9)) 
      setAccountData (account, "funmodev2-weaponID10", getPedWeapon (source, 10)) 
      setAccountData (account, "funmodev2-weaponID11", getPedWeapon (source, 11)) 
      setAccountData (account, "funmodev2-weaponID12", getPedWeapon (source, 12)) 
      setAccountData (account, "funmodev2-weaponAmmo0", getPedTotalAmmo (source, 0)) 
      setAccountData (account, "funmodev2-weaponAmmo1", getPedTotalAmmo (source, 1)) 
      setAccountData (account, "funmodev2-weaponAmmo2", getPedTotalAmmo (source, 2)) 
      setAccountData (account, "funmodev2-weaponAmmo3", getPedTotalAmmo (source, 3)) 
      setAccountData (account, "funmodev2-weaponAmmo4", getPedTotalAmmo (source, 4)) 
      setAccountData (account, "funmodev2-weaponAmmo5", getPedTotalAmmo (source, 5)) 
      setAccountData (account, "funmodev2-weaponAmmo6", getPedTotalAmmo (source, 6)) 
      setAccountData (account, "funmodev2-weaponAmmo7", getPedTotalAmmo (source, 7)) 
      setAccountData (account, "funmodev2-weaponAmmo8", getPedTotalAmmo (source, 8 )) 
      setAccountData (account, "funmodev2-weaponAmmo9", getPedTotalAmmo (source, 9)) 
      setAccountData (account, "funmodev2-weaponAmmo10", getPedTotalAmmo (source, 10)) 
      setAccountData (account, "funmodev2-weaponAmmo11", getPedTotalAmmo (source, 11)) 
      setAccountData (account, "funmodev2-weaponAmmo12", getPedTotalAmmo (source, 12)) 
    end 
  end 
end 
addEventHandler ("onPlayerQuit", root, onQuit) 
  
function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if not( isGuestAccount (getPlayerAccount(source)) ) then 
    fadeCamera (source, false) 
    setTimer (spawnPlayer, 1000, 1, source, -551, 2594, 54, 0, getPedSkin (source), 0, 0, getPlayerTeam(source)) 
    setTimer (setCameraTarget, 1250, 1, source, source) 
    setTimer (fadeCamera, 2000, 1, source, true) 
    setTimer( function() 
    for i=0, 12 do 
        local weapon = getPedWeapon(source, i) 
        local ammo = getPedTotalAmmo(source, i) 
        setTimer(giveWeapon, 2100, 1, source, weapon, ammo) 
    end 
  end 
end 
addEventHandler ("onPlayerWasted", root, onWasted) 

Thanks!

Link to comment

Ok.. fixed something.. now it saves when quit and also saves weapons and skin when die..

Now the problem is when people gets in the server again... everything gets lost..

got this from debug

[22:23:18] WARNING: [gamemodes]/[play]/play/teams.lua:12: Bad argument @ 'getAccountData' [Expected account at argument 1, got nil] 

function playerSpawnSettings (thePreviousAccount, theCurrentAccount, autoLogin) 
  if  not (isGuestAccount ( getPlayerAccount (source)) ) then 
    local accountData = getAccountData (getPlayerAccount (source), "funmodev2-money") -- LINE 12 -- 
    if (accountData) then 
      local playerMoney = getAccountData (theCurrentAccount, "funmodev2-money") 
... 

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