iPanda Posted August 4, 2013 Author Share Posted August 4, 2013 WARNING!!! If you use these TWO preserve the system, then it will work! The first (my): -- 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 ( theCurrentAccount, 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))) setAccountData(account, gamemode .. "-datasaved", true) -- 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) fadeCamera (thePlayer, true) giveWeapon (source, 31, 200, true) end, 2000, 1, source, theWeapon, weaponAmmo) end addEventHandler ("onPlayerWasted", getRootElement(), onWasted) function spawnLastPlayer ( posX, posY, posZ, rotZ, theSkin, theInterior, theDimension, theTeam ) spawnPlayer ( source, 2005.25, 1544.80, 13.5907, 0, 286, 0, 0, nil ) givePlayerMoney ( source, 100 ) setElementHealth ( source, 100 ) setPedArmor ( source, 10 ) giveWeapon ( source, 31, 200 ) fadeCamera (source, true) setCameraTarget (source, source) removeEventHandler ("onPlayerSpawn", source, spawnLastPlayer); end addEventHandler ("onPlayerJoin", getRootElement (), function () addEventHandler ( "onPlayerSpawn", source, spawnLastPlayer); end ) The second(silent): 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 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) Oops, first + second = work! Link to comment
Castillo Posted August 4, 2013 Share Posted August 4, 2013 Why are you using two save systems? Link to comment
iPanda Posted August 4, 2013 Author Share Posted August 4, 2013 Why are you using two save systems? You got me wrong! I mean that if you use two save the system, then it will work! Perhaps the second save of the system can find the code for my save the system worked! Link to comment
EstrategiaGTA Posted August 4, 2013 Share Posted August 4, 2013 You mean that if you use only 1 of those save-system, it doesn't work, and when you use 2, it works? Weird... Link to comment
iPanda Posted August 4, 2013 Author Share Posted August 4, 2013 You mean that if you use only 1 of those save-system, it doesn't work, and when you use 2, it works? Weird... Yes, it's strange. But nevertheless, it's true ... I need to work my first save system, my only. Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now