Jump to content

[Help Save system after the spawn] Does not work!


iPanda

Recommended Posts

-

Guys, I have a big problem with my mod. I have a spawn system and the system to save all the data, but does not save the work. I need your help, help me find the problem and solve it.

Here is the spawn (spawn only the first time)

spawnTeam = createTeam ("Spawn", 255, 0, 0) 
function spawnLastPlayer ( posX, posY, posZ, rotZ, theSkin, theInterior, theDimension, theTeam ) 
  spawnPlayer ( source, 2005.25, 1544.80, 13.5907, 0, 286, 0, 0, spawnTeam ) 
  givePlayerMoney ( source, 100 ) 
  setElementHealth ( source, 100 ) 
  setPedArmor ( source, 10 ) 
  giveWeapon ( source, 31, 200 ) 
  fadeCamera (source, true) 
  setCameraTarget (source, source) 
end 
addEventHandler ( "onPlayerSpawn", getRootElement(), spawnLastPlayer ) 

Here is save system (does not work):

function playerLogin (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 R = getAccountData (theCurrentAccount, "funmodev2-R") 
      local G = getAccountData (theCurrentAccount, "funmodev2-G") 
      local B = getAccountData (theCurrentAccount, "funmodev2-B") 
      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 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, 500, 1, source, playerHealth) 
      setTimer (setPedArmor, 500, 1, source, playerArmor) 
      setTimer (setPlayerWantedLevel, 500, 1, source, playerWanted) 
      giveWeapon(source, playerWeaponID0, playerWeaponAmmo0, true) 
      giveWeapon(source, playerWeaponID1, playerWeaponAmmo1, false) 
      giveWeapon(source, playerWeaponID2, playerWeaponAmmo2, false) 
      giveWeapon(source, playerWeaponID3, playerWeaponAmmo3, false) 
      giveWeapon(source, playerWeaponID4, playerWeaponAmmo4, false) 
      giveWeapon(source, playerWeaponID5, playerWeaponAmmo5, false) 
      giveWeapon(source, playerWeaponID6, playerWeaponAmmo6, false) 
      giveWeapon(source, playerWeaponID7, playerWeaponAmmo7, false) 
      giveWeapon(source, playerWeaponID8, playerWeaponAmmo8, false) 
      giveWeapon(source, playerWeaponID9, playerWeaponAmmo9, false) 
      giveWeapon(source, playerWeaponID10, playerWeaponAmmo10, false) 
      giveWeapon(source, playerWeaponID11, playerWeaponAmmo11, false) 
      giveWeapon(source, playerWeaponID12, playerWeaponAmmo12, false) 
      setCameraTarget (source, source) 
      fadeCamera(source, true, 2.0) 
      setPlayerNametagColor (source, R, G, B)  
    else 
      spawnPlayer ( source, 2005.25, 1544.80, 13.5907, 0, 286, 0, 0, nil ) 
      setPlayerMoney ( source, 100 ) 
      setElementHealth ( source, 100 ) 
      setPedArmor ( source, 10 ) 
      giveWeapon ( source, 31, 200 ) 
    end    
  end 
end 
addEventHandler ("onPlayerLogin", getRootElement(), playerLogin) 
  
function onLogout () 
  kickPlayer (source, nil, "Logging out is disallowed.") 
end 
addEventHandler ("onPlayerLogout", getRootElement(), onLogout) 
  
function onQuit (quitType, reason, responsibleElement) 
  if not (isGuestAccount (getPlayerAccount (source))) then 
    account = getPlayerAccount (source) 
    if (account) then 
      local x,y,z = getElementPosition (source) 
      local r,g,b = getPlayerNametagColor (source) 
      setAccountData (account, "funmodev2-money", tostring (getPlayerMoney (source))) 
      setAccountData (account, "funmodev2-skin", tostring (getElementModel (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, -- s8) -->) 
      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, -- s8) -->) 
      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", getRootElement(), onQuit) 
  
function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if not( isGuestAccount (getPlayerAccount(source)) ) then 
    local theWeapon = getPedWeapon (source) 
    local weaponAmmo = getPedTotalAmmo (source) 
    fadeCamera (source, false) 
    setTimer (spawnPlayer, 1000, 1, source, 2036.1735839844, -1413.0563964844, 16.9921875, 0, getElementModel (source), 0, 0, getPlayerTeam(source)) 
    setTimer (setCameraTarget, 1250, 1, source, source) 
    setTimer (fadeCamera, 2000, 1, source, true) 
    setTimer (giveWeapon, 2000, 1, source, theWeapon, weaponAmmo, true) 
  end 
end 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted) 

How many times would not go to the server - I'm staying at the same place spawning. Save the system is not working ... :cry:

-

Link to comment

I hope this will help you.

the problem is that when you retrieve the data with getAccountData, you need to convert it to numbers, cause them are strings. (with tonumber).

I fix the problem "I'm staying at the same place spawning."

also, I change your code a bit to make it look more clear.

if you need help -> [email protected]

  
-- Here you can use tables, so that the script remains more clear ... 
local gamemode = "funmodev2"; 
  
function playerLogin (thePreviousAccount, theCurrentAccount, autoLogin) 
    if isGuestAccount (getPlayerAccount (source)) then return; end; 
    -- here I thinks is better hold a data "funmodev2-datasaved" to check if 
    -- data is saved or not. 
  
    -- check if our data is saved. 
    if getAccountData (gamemode .. "-datasaved") then 
        -- extract the data. 
        -- you need to convert strings to numbers with tonumber. 
        -- be careful with that,cause getAccountData always return a string. 
        local playerMoney  = tonumber (getAccountData (theCurrentAccount, gamemode .. "-money")); 
        local playerSkin   = tonumber (getAccountData (theCurrentAccount, gamemode .. "-skin")); 
        local playerHealth = tonumber (getAccountData (theCurrentAccount, gamemode .. "-health")); 
        local playerArmor  = tonumber (getAccountData (theCurrentAccount, gamemode .. "-armor")); 
        local R = tonumber (getAccountData (theCurrentAccount, gamemode .. "-R")); 
        local G  = tonumber (getAccountData (theCurrentAccount, gamemode .. "-G")); 
        local B  = tonumber (getAccountData (theCurrentAccount, gamemode .. "-B")); 
        local playerX = tonumber (getAccountData (theCurrentAccount, gamemode .. "-x")); 
        local playerY = tonumber (getAccountData (theCurrentAccount, gamemode .. "-y")); 
        local playerZ = tonumber (getAccountData (theCurrentAccount, gamemode .. "-z")); 
        local playerInt = tonumber (getAccountData (theCurrentAccount, gamemode .. "-int")); 
        local playerDim = tonumber (getAccountData (theCurrentAccount, gamemode .. "-dim")); 
        local playerWanted = tonumber (getAccountData (theCurrentAccount, gamemode .. "-wantedlevel")); 
        local playerWeapon = {}; -- store all player weapons in a table. 
        local playerWeaponAmmo = {}; -- store weapon amnos in a table. 
        -- load all weapons & amno just with few lines. 
        for i=0,12,1 do 
            playerWeapon [i] = tonumber (getAccountData (theCurrentAccount, gamemode .. "-weaponID" .. tostring (i))); 
            playerWeaponAmmo [i] = tonumber (getAccountData (theCurrentAccount, gamemode .. "weaponAmno" .. tostring (i))); 
        end; 
  
        spawnPlayer (source, playerX, playerY, playerZ+1, 0, playerSkin, playerInt, playerDim); 
        setPlayerMoney  (source, playerMoney); 
        -- here just use 1 one timer. why use 3? 
        setTimer ( 
            function (thePlayer, health, armor, wantedLevel) 
                setElementHealth (thePlayer, health); 
                setPedArmor (thePlayer, armor); 
                setPlayerWantedLevel (thePlayer, wantedLevel); 
            end, 
            500, 1, source, playerHealth, playerArmor, playerWanted); 
  
        -- give weapons to player with just few lines with a loop. 
        for i=1,12,1 do 
            giveWeapon (source, playerWeapon [i], playerWeaponAmmo [i], false); 
        end; 
        giveWeapon (source, playerWeapon [0], playerWeaponAmmo [0], true); 
  
        setCameraTarget (source, source); 
        fadeCamera (source, true, 2.0); 
        setPlayerNametagColor (source, R, G, B); 
    else 
        spawnPlayer ( source, 2005.25, 1544.80, 13.5907, 0, 286, 0, 0, nil); 
        setPlayerMoney ( source, 100); 
        setElementHealth ( source, 100); 
        setPedArmor ( source, 10); 
        giveWeapon ( source, 31, 200); 
    end; 
end; 
  
addEventHandler ("onPlayerLogin", getRootElement(), playerLogin) 
  
  
  
function onLogout () 
    -- instead of kick the player when trying to logout, just cancel the 
    -- event so that you can avoid him to logout without kick him. (I guess) 
  
    -- tell him that he cannot logout ... 
    outputChatBox ("You cannot logout!", source, 255, 50, 0); 
end; 
  
addEventHandler ("onPlayerLogout", getRootElement(), onLogout); 
  
  
function onQuit (quitType, reason, responsibleElement) 
    if isGuestAccount (getPlayerAccount (source)) then return; end; 
    local account = getPlayerAccount (source); 
    if not account then return; end; 
  
    -- save the data. 
    local x,y,z = getElementPosition (source); 
    local r,g,b = getPlayerNametagColor (source); 
    setAccountData(account, gamemode .. "-money", tostring (getPlayerMoney (source))); 
    setAccountData(account, gamemode .. "-skin", tostring (getElementModel (source))); 
    setAccountData(account, gamemode .. "-health", tostring (getElementHealth (source))); 
    setAccountData(account, gamemode .. "-armor", tostring (getPedArmor (source))); 
    setAccountData(account, gamemode .. "-R", tostring (r)); 
    setAccountData(account, gamemode .. "-G", tostring (g)); 
    setAccountData(account, gamemode .. "-B", tostring (b)); 
    setAccountData(account, gamemode .. "-x", tostring (x)); 
    setAccountData(account, gamemode .. "-y", tostring (y)); 
    setAccountData(account, gamemode .. "-z", tostring (z)); 
    setAccountData(account, gamemode .. "-int", tostring (getElementInterior (source))); 
    setAccountData(account, gamemode .. "-dim", tostring (getElementDimension (source))); 
    setAccountData(account, gamemode .. "-wantedlevel", tostring (getPlayerWantedLevel (source))); 
    -- to store weapons & weapon amno, you can do it better with a loop. 
    for i=0,12,1 do 
        setAccountData(account, gamemode .. "-weaponID" .. tostring (i), tostring (getPedWeapon (source, i))); 
        setAccountData(account, gamemode .. "-weaponAmmo" .. tostring (i), tostring (getPedTotalAmmo (source, i))); 
    end; 
end; 
  
addEventHandler ("onPlayerQuit", getRootElement(), onQuit) 
  
  
  
function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if isGuestAccount (getPlayerAccount(source)) then return; end; 
    local theWeapon = getPedWeapon (source) 
    local weaponAmmo = getPedTotalAmmo (source) 
    fadeCamera (source, false) 
    -- here just use 3 timers instead of 4. 
    setTimer (spawnPlayer, 1000, 1, source, 2036.1735839844, -1413.0563964844, 16.9921875, 0, getElementModel (source), 0, 0, getPlayerTeam(source)); 
    setTimer (setCameraTarget, 1250, 1, source, source); 
    setTimer ( 
        function (thePlayer, weapon, ammo) 
            fadeCamera (thePlayer, true); 
            giveWeapon (source, weapon, ammo, true); 
        end, 2000, 1, source, theWeapon, weaponAmmo); 
end; 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted); 
  
  
  
-- with the code below, player will spawn in that position just 1 time... 
-- look. 
  
  
function spawnLastPlayer ( posX, posY, posZ, rotZ, theSkin, theInterior, theDimension, theTeam ) 
  spawnPlayer ( source, 2005.25, 1544.80, 13.5907, 0, 286, 0, 0, spawnTeam ) 
  givePlayerMoney ( source, 100 ) 
  setElementHealth ( source, 100 ) 
  setPedArmor ( source, 10 ) 
  giveWeapon ( source, 31, 200 ) 
  fadeCamera (source, true) 
  setCameraTarget (source, source) 
  
  -- prevent that player will spawn in the sample place ... 
  removeEventHandler ("onPlayerSpawn", source, spawnLastPlayer); 
end 
  
addEventHandler ("onPlayerJoin", getRootElement (), 
    function () 
        addEventHandler ( "onPlayerSpawn", source, spawnLastPlayer); 
    end); 
  

Link to comment
I hope this will help you.

the problem is that when you retrieve the data with getAccountData, you need to convert it to numbers, cause them are strings. (with tonumber).

I fix the problem "I'm staying at the same place spawning."

also, I change your code a bit to make it look more clear.

if you need help -> [email protected]

  
-- Here you can use tables, so that the script remains more clear ... 
local gamemode = "funmodev2"; 
  
function playerLogin (thePreviousAccount, theCurrentAccount, autoLogin) 
    if isGuestAccount (getPlayerAccount (source)) then return; end; 
    -- here I thinks is better hold a data "funmodev2-datasaved" to check if 
    -- data is saved or not. 
  
    -- check if our data is saved. 
    if getAccountData (gamemode .. "-datasaved") then 
        -- extract the data. 
        -- you need to convert strings to numbers with tonumber. 
        -- be careful with that,cause getAccountData always return a string. 
        local playerMoney  = tonumber (getAccountData (theCurrentAccount, gamemode .. "-money")); 
        local playerSkin   = tonumber (getAccountData (theCurrentAccount, gamemode .. "-skin")); 
        local playerHealth = tonumber (getAccountData (theCurrentAccount, gamemode .. "-health")); 
        local playerArmor  = tonumber (getAccountData (theCurrentAccount, gamemode .. "-armor")); 
        local R = tonumber (getAccountData (theCurrentAccount, gamemode .. "-R")); 
        local G  = tonumber (getAccountData (theCurrentAccount, gamemode .. "-G")); 
        local B  = tonumber (getAccountData (theCurrentAccount, gamemode .. "-B")); 
        local playerX = tonumber (getAccountData (theCurrentAccount, gamemode .. "-x")); 
        local playerY = tonumber (getAccountData (theCurrentAccount, gamemode .. "-y")); 
        local playerZ = tonumber (getAccountData (theCurrentAccount, gamemode .. "-z")); 
        local playerInt = tonumber (getAccountData (theCurrentAccount, gamemode .. "-int")); 
        local playerDim = tonumber (getAccountData (theCurrentAccount, gamemode .. "-dim")); 
        local playerWanted = tonumber (getAccountData (theCurrentAccount, gamemode .. "-wantedlevel")); 
        local playerWeapon = {}; -- store all player weapons in a table. 
        local playerWeaponAmmo = {}; -- store weapon amnos in a table. 
        -- load all weapons & amno just with few lines. 
        for i=0,12,1 do 
            playerWeapon [i] = tonumber (getAccountData (theCurrentAccount, gamemode .. "-weaponID" .. tostring (i))); 
            playerWeaponAmmo [i] = tonumber (getAccountData (theCurrentAccount, gamemode .. "weaponAmno" .. tostring (i))); 
        end; 
  
        spawnPlayer (source, playerX, playerY, playerZ+1, 0, playerSkin, playerInt, playerDim); 
        setPlayerMoney  (source, playerMoney); 
        -- here just use 1 one timer. why use 3? 
        setTimer ( 
            function (thePlayer, health, armor, wantedLevel) 
                setElementHealth (thePlayer, health); 
                setPedArmor (thePlayer, armor); 
                setPlayerWantedLevel (thePlayer, wantedLevel); 
            end, 
            500, 1, source, playerHealth, playerArmor, playerWanted); 
  
        -- give weapons to player with just few lines with a loop. 
        for i=1,12,1 do 
            giveWeapon (source, playerWeapon [i], playerWeaponAmmo [i], false); 
        end; 
        giveWeapon (source, playerWeapon [0], playerWeaponAmmo [0], true); 
  
        setCameraTarget (source, source); 
        fadeCamera (source, true, 2.0); 
        setPlayerNametagColor (source, R, G, B); 
    else 
        spawnPlayer ( source, 2005.25, 1544.80, 13.5907, 0, 286, 0, 0, nil); 
        setPlayerMoney ( source, 100); 
        setElementHealth ( source, 100); 
        setPedArmor ( source, 10); 
        giveWeapon ( source, 31, 200); 
    end; 
end; 
  
addEventHandler ("onPlayerLogin", getRootElement(), playerLogin) 
  
  
  
function onLogout () 
    -- instead of kick the player when trying to logout, just cancel the 
    -- event so that you can avoid him to logout without kick him. (I guess) 
  
    -- tell him that he cannot logout ... 
    outputChatBox ("You cannot logout!", source, 255, 50, 0); 
end; 
  
addEventHandler ("onPlayerLogout", getRootElement(), onLogout); 
  
  
function onQuit (quitType, reason, responsibleElement) 
    if isGuestAccount (getPlayerAccount (source)) then return; end; 
    local account = getPlayerAccount (source); 
    if not account then return; end; 
  
    -- save the data. 
    local x,y,z = getElementPosition (source); 
    local r,g,b = getPlayerNametagColor (source); 
    setAccountData(account, gamemode .. "-money", tostring (getPlayerMoney (source))); 
    setAccountData(account, gamemode .. "-skin", tostring (getElementModel (source))); 
    setAccountData(account, gamemode .. "-health", tostring (getElementHealth (source))); 
    setAccountData(account, gamemode .. "-armor", tostring (getPedArmor (source))); 
    setAccountData(account, gamemode .. "-R", tostring (r)); 
    setAccountData(account, gamemode .. "-G", tostring (g)); 
    setAccountData(account, gamemode .. "-B", tostring (b)); 
    setAccountData(account, gamemode .. "-x", tostring (x)); 
    setAccountData(account, gamemode .. "-y", tostring (y)); 
    setAccountData(account, gamemode .. "-z", tostring (z)); 
    setAccountData(account, gamemode .. "-int", tostring (getElementInterior (source))); 
    setAccountData(account, gamemode .. "-dim", tostring (getElementDimension (source))); 
    setAccountData(account, gamemode .. "-wantedlevel", tostring (getPlayerWantedLevel (source))); 
    -- to store weapons & weapon amno, you can do it better with a loop. 
    for i=0,12,1 do 
        setAccountData(account, gamemode .. "-weaponID" .. tostring (i), tostring (getPedWeapon (source, i))); 
        setAccountData(account, gamemode .. "-weaponAmmo" .. tostring (i), tostring (getPedTotalAmmo (source, i))); 
    end; 
end; 
  
addEventHandler ("onPlayerQuit", getRootElement(), onQuit) 
  
  
  
function onWasted(totalAmmo, killer, killerWeapon, bodypart, stealth) 
  if isGuestAccount (getPlayerAccount(source)) then return; end; 
    local theWeapon = getPedWeapon (source) 
    local weaponAmmo = getPedTotalAmmo (source) 
    fadeCamera (source, false) 
    -- here just use 3 timers instead of 4. 
    setTimer (spawnPlayer, 1000, 1, source, 2036.1735839844, -1413.0563964844, 16.9921875, 0, getElementModel (source), 0, 0, getPlayerTeam(source)); 
    setTimer (setCameraTarget, 1250, 1, source, source); 
    setTimer ( 
        function (thePlayer, weapon, ammo) 
            fadeCamera (thePlayer, true); 
            giveWeapon (source, weapon, ammo, true); 
        end, 2000, 1, source, theWeapon, weaponAmmo); 
end; 
addEventHandler ("onPlayerWasted", getRootElement(), onWasted); 
  
  
  
-- with the code below, player will spawn in that position just 1 time... 
-- look. 
  
  
function spawnLastPlayer ( posX, posY, posZ, rotZ, theSkin, theInterior, theDimension, theTeam ) 
  spawnPlayer ( source, 2005.25, 1544.80, 13.5907, 0, 286, 0, 0, spawnTeam ) 
  givePlayerMoney ( source, 100 ) 
  setElementHealth ( source, 100 ) 
  setPedArmor ( source, 10 ) 
  giveWeapon ( source, 31, 200 ) 
  fadeCamera (source, true) 
  setCameraTarget (source, source) 
  
  -- prevent that player will spawn in the sample place ... 
  removeEventHandler ("onPlayerSpawn", source, spawnLastPlayer); 
end 
  
addEventHandler ("onPlayerJoin", getRootElement (), 
    function () 
        addEventHandler ( "onPlayerSpawn", source, spawnLastPlayer); 
    end); 
  

Sorry, your version does not work ...

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