Jump to content

Weapons Save and Ammo


Benevolence

Recommended Posts

It's server side. Is there something wrong with it? I THINK that sometimes it loads my guns and sometimes not.

Like, I got a weapon with some ammo, relogged and I had the gun and ammo. I restarted the whole server and I didn't have the gun and ammo. I restarted the save resource (which has this script) and then I logged in and alll my guns appeared after I bought another gun. It's weird. Perhaps something wrong with the script?

function onPlayerQuit ( ) 
      local playeraccount = getPlayerAccount ( source ) 
      if ( playeraccount ) then 
            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 ( "onPlayerQuit", getRootElement ( ), onPlayerQuit ) 
  
local root = getRootElement() 
addEventHandler("onPlayerLogin", root, 
  function() 
     local playeraccount = getPlayerAccount ( source ) 
      if ( playeraccount ) then 
            local weap0 = getAccountData(playeraccount, "s.weap0") 
            local weap1 = getAccountData(playeraccount, "s.weap1") 
            local weap2 = getAccountData(playeraccount, "s.weap2") 
            local ammo2 = getAccountData(playeraccount, "s.ammo2") 
            local weap3 = getAccountData(playeraccount, "s.weap3") 
            local ammo3 = getAccountData(playeraccount, "s.ammo3") 
            local weap4 = getAccountData(playeraccount, "s.weap4") 
            local ammo4 = getAccountData(playeraccount, "s.ammo4") 
            local weap5 = getAccountData(playeraccount, "s.weap5") 
            local ammo5 = getAccountData(playeraccount, "s.ammo5") 
            local weap6 = getAccountData(playeraccount, "s.weap6") 
            local ammo6 = getAccountData(playeraccount, "s.ammo6") 
            local weap7 = getAccountData(playeraccount, "s.weap7") 
            local ammo7 = getAccountData(playeraccount, "s.ammo7") 
            local weap8 = getAccountData(playeraccount, "s.weap8") 
            local ammo8 = getAccountData(playeraccount, "s.ammo8") 
            local weap9 = getAccountData(playeraccount, "s.weap9") 
            local ammo9 = getAccountData(playeraccount, "s.ammo9") 
            local weap10 = getAccountData(playeraccount, "s.weap10") 
            local weap11 = getAccountData(playeraccount, "s.weap11") 
            local weap12 = getAccountData(playeraccount, "s.weap12") 
            giveWeapon ( source, weap0, 1 ) 
            giveWeapon ( source, weap1, 1 ) 
            giveWeapon ( source, weap2, ammo2 ) 
            giveWeapon ( source, weap3, ammo3 ) 
            giveWeapon ( source, weap4, ammo4 ) 
            giveWeapon ( source, weap5, ammo5 ) 
            giveWeapon ( source, weap6, ammo6 ) 
            giveWeapon ( source, weap7, ammo7 ) 
            giveWeapon ( source, weap8, ammo8 ) 
            giveWeapon ( source, weap9, ammo9 ) 
            giveWeapon ( source, weap10, 1 ) 
            giveWeapon ( source, weap11, 1 ) 
            giveWeapon ( source, weap12, 1 )         
      end 
  end 
) 

Link to comment

I've written this basic account data weapon saver, should get you started.

function saveWeapons(player, account) 
if player and account then 
    for i=0,12 do 
        local weapon = getPedWeapon(player, i) 
        local ammo = getPedTotalAmmo(player, i) 
        setAccountData(account,"w"..tonumber(i), weapon) 
        setAccountData(account,"a"..tonumber(i), ammo) 
    end 
    takeAllWeapons(player) 
    end 
end 
  
  
addEventHandler("onPlayerQuit",root,function () saveWeapons(source, getPlayerAccount(source)) end) 
addEventHandler("onPlayerLogout",root,function(prev) saveWeapons(source, prev) end) 
  
addEventHandler("onPlayerLogin",root, 
function () 
    local account = getPlayerAccount(source) 
    if not account or isGuestAccount(account) then return end 
    for i=0,12 do 
        local weapon = getAccountData(account,"w"..tonumber(i)) 
        local ammo = getAccountData(account,"a"..tonumber(i)) 
        if weapon and ammo then 
            setTimer(giveWeapon, 1000, 1, source, tonumber(weapon), tonumber(ammo), true) 
        end 
    end 
end) 

  • Thanks 1
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...