Advertisement
FL1K3R

client side script for CitizenMP SAVE/LOAD system

Jan 7th, 2015
625
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.25 KB | None | 0 0
  1. -- CLIENT SIDE SCRIPT
  2. spawnx, spawny, spawnz = 2363.24341, 403.88696, 6.08523 -- THIS IS DEFAULT SPAWN COORDS (USE YOURS)
  3.  
  4. function savePlayer(playerped)
  5.     local possave = table.pack(GetCharCoordinates(GetPlayerPed(), _f, _f, _f))
  6.     local angle = GetCharHeading(GetPlayerPed(), _f)
  7.     TriggerServerEvent('savePlayer',
  8.     round(possave[1],2),
  9.     round(possave[2],2),
  10.     round(possave[3],2),
  11.     round(angle,2))
  12. end
  13.  
  14. function round(num, idp)
  15.     local mult = 10^(idp or 0)
  16.     return math.floor(num * mult + 0.5) / mult
  17. end
  18.  
  19. AddEventHandler('updPlayer', function(part1, part2, part3,part4)
  20.     spawnx = part1
  21.     spawny = part2
  22.     spawnz = part3
  23.     spawna = part4
  24.     RespPlayer(spawnx, spawny, spawnz, spawna)
  25. end)
  26.  
  27. function RespPlayer(x, y, z, a) --[[ alternative spawner (you HAVE TO disable 'spawnmanager' in your server.yml before use this one ]]
  28.     CreateThread(function()
  29.         ----- spawn -----
  30.         RequestCollisionAtPosn(x, y, z)
  31.         ResurrectNetworkPlayer(GetPlayerId(), x, y, z, a)
  32.         -----
  33.         ClearCharTasksImmediately(GetPlayerPed())
  34.         SetCharHealth(GetPlayerPed(), 200)
  35.         RemoveAllCharWeapons(GetPlayerPed())
  36.         ClearWantedLevel(GetPlayerId())
  37.         -----
  38.         SetCharWillFlyThroughWindscreen(GetPlayerPed(), false)
  39.         CamRestoreJumpcut(GetGameCam())
  40.         -----
  41.         ForceLoadingScreen(true)
  42.         ForceLoadingScreen(false)
  43.         -- model --
  44.         local lmod = GetHashKey('ig_brucie', _r) -- spawns a brucie model
  45.         LoadModel(lmod)
  46.         ChangePlayerModel(GetPlayerId(), lmod)
  47.         SetCharDefaultComponentVariation(GetPlayerPed())
  48.         MarkModelAsNoLongerNeeded(lmod)
  49.         SetCharHeading(GetPlayerPed(), spawna)
  50.         DoScreenFadeIn(500)
  51.         freezePlayer(GetPlayerId(), false)
  52.     end)
  53. end
  54.  
  55. function LoadModel(modelid)
  56.     if not HasModelLoaded(modelid) then
  57.         RequestModel(modelid)
  58.         while not HasModelLoaded(modelid) do
  59.             Wait(0)
  60.         end
  61.     end
  62. end
  63.  
  64. function respawnDeath(spawner, timercount)
  65.     CreateThread(function()
  66.         Wait(timercount)
  67.         TriggerServerEvent('loadPlayer')
  68.     end)
  69. end
  70.  
  71. AddEventHandler('playerActivated', function()
  72.     TriggerServerEvent('loadPlayer')
  73. end)
  74.  
  75. AddEventHandler('onPlayerDied', function(playerId, reason, position)
  76.     savePlayer(GetPlayerPed())
  77.     respawnDeath(GetPlayerPed(), 10000) -- set re-spawn (id, timer)
  78. end)
  79.  
  80. AddEventHandler('onPlayerKilled', function(playerId, reason, position)
  81.     savePlayer(GetPlayerPed())
  82.     respawnDeath(GetPlayerPed(), 10000) -- set re-spawn (id, timer)
  83. end)
  84.  
  85. function freezePlayer(id, freeze)
  86.     local player = ConvertIntToPlayerindex(id)
  87.     SetPlayerControlForNetwork(player, not freeze, false)
  88.     local ped = GetPlayerChar(player, _i)
  89.     if not freeze then
  90.         if not IsCharVisible(ped) then
  91.             SetCharVisible(ped, true)
  92.         end
  93.         if not IsCharInAnyCar(ped) then
  94.             SetCharCollision(ped, true)
  95.         end
  96.         FreezeCharPosition(ped, false)
  97.         SetCharNeverTargetted(ped, false)
  98.         SetPlayerInvincible(player, false)
  99.     else
  100.         if IsCharVisible(ped) then
  101.             SetCharVisible(ped, false)
  102.         end
  103.         SetCharCollision(ped, false)
  104.         FreezeCharPosition(ped, true)
  105.         SetCharNeverTargetted(ped, true)
  106.         SetPlayerInvincible(player, true)
  107.         RemovePtfxFromPed(ped)
  108.         if not IsCharFatallyInjured(ped) then
  109.             ClearCharTasksImmediately(ped)
  110.         end
  111.     end
  112. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement