Respawn à son endroit de déconnexion

  • Initiateur de la discussion
Malcolm

Malcolm

Psychopathe
Messages
1 096
Score réaction
262
Points
280
Salut, comme indiqué dans le titre je cherche un code pour respawn à l'endroit où on était avant de déco (et non mourrir ^^).
Merci :)
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
Essaye ceci (j'ai pas tester @Yoh Sambre ♪ m'a obligé à jouer avec lui à fortnite Kappa)

Code:
hook.Add("PlayerInitialSpawn", "SpawnToPos", function(ply) if not ply:IsValid() then return end if file.Exists("spawntopos/"..ply:SteamID64()".txt", "DATA") then ply:SetPos(file.Read("spawntopos/"..ply:SteamID64()".txt", "DATA") end
end)
hook.Add("PlayerDisconnected", "SpawnToPos", function(ply) if not ply:IsValid() then return end file.Write("spawntopos/"..ply:SteamID64()".txt", ply:GetPos())
end)
A placer dans lua/autorun/server/spawntopos.lua (tu peux changer le nom du fichier bien évidement ;) )
 
  • Initiateur de la discussion
Malcolm

Malcolm

Psychopathe
Messages
1 096
Score réaction
262
Points
280
Merci, je test dès que possible.
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
malcolm2003 à dit:
Merci, je test dès que possible.
ok, prévient moi si sa ne marche pas ;)

(et prévient moi aussi si ca marche car madame @Yoh Sambre ♪ voudrais l'ajouter sur g-box.fr 4Head)
 
slownls

slownls

Helpeur Divin
Messages
1 853
Score réaction
1 079
Points
465
Zaros_Live à dit:
Essaye ceci (j'ai pas tester @Yoh Sambre ♪ m'a obligé à jouer avec lui à fortnite Kappa)

Code:
hook.Add("PlayerInitialSpawn", "SpawnToPos", function(ply) if not ply:IsValid() then return end if file.Exists("spawntopos/"..ply:SteamID64()".txt", "DATA") then ply:SetPos(file.Read("spawntopos/"..ply:SteamID64()".txt", "DATA") end
end)
hook.Add("PlayerDisconnected", "SpawnToPos", function(ply) if not ply:IsValid() then return end file.Write("spawntopos/"..ply:SteamID64()".txt", ply:GetPos())
end)
A placer dans lua/autorun/server/spawntopos.lua (tu peux changer le nom du fichier bien évidement ;) )
Nope
 
Wabel

Wabel

Je ne sais pas quoi mettre
Messages
2 262
Score réaction
707
Points
330
slownls

slownls

Helpeur Divin
Messages
1 853
Score réaction
1 079
Points
465
WabelGame à dit:
C'est quoi l'erreur?
Code:
hook.Add("PlayerInitialSpawn", "SpawnToPos", function(ply) if not ply:IsValid() then return end if file.Exists("spawntopos/"..ply:SteamID64()".txt", "DATA") then -- le fichier spawntopos tu le sort d'ou ? ply:SetPos(file.Read("spawntopos/"..ply:SteamID64()".txt", "DATA") -- ta oublie une ")" end
end)
hook.Add("PlayerDisconnected", "SpawnToPos", function(ply) if not ply:IsValid() then return end file.Write("spawntopos/"..ply:SteamID64()".txt", ply:GetPos())-- le fichier spawntopos tu le sort d'ou ?
end)
Puis je ne pense pas que tu peux write un vector en data :/

EDIT : tu as également oublié les ".."
 
Dernière édition:
slownls

slownls

Helpeur Divin
Messages
1 853
Score réaction
1 079
Points
465
Code:
hook.Add( "Initialize", "PS:Initialize", function() if not file.IsDir( "ps", "DATA" ) then file.CreateDir( "ps" ) end
end)
hook.Add("PlayerInitialSpawn", "PS:Player:InitialSpawn", function( ply ) timer.Simple( 0, function() if file.Exists( "ps/" .. ply:SteamID64() .. ".txt", "DATA" ) then local PS = util.JSONToTable( file.Read( 'ps/' .. ply:SteamID64() .. ".txt", 'DATA' ) ) local PlayerPos = string.Explode( ' ', PS.Pos ) local PlayerAngles = string.Explode( ' ', PS.Ang ) ply:SetPos( Vector( PlayerPos[ 1 ], PlayerPos[ 2 ], PlayerPos[ 3 ] ) ) ply:SetAngles( Angle( PlayerAngles[ 1 ], PlayerAngles[ 2 ], PlayerAngles[ 3 ] ) ) end end)
end)
hook.Add( "PlayerDisconnected", "PS:Player:Disconnect", function( ply ) local PS = {} local PlayerPos = string.Explode( ' ', tostring( ply:GetPos() ) ) local PlayerAngles = string.Explode( ' ', tostring( ply:GetAngles() + Angle( 0, - 90, 0 ) ) ) PS = { Pos = PlayerPos[1] .. ' ' .. PlayerPos[2] .. ' ' .. PlayerPos[3], Ang = PlayerAngles[1] ..' ' .. PlayerAngles[2] .. ' ' .. PlayerAngles[3] } file.Write( "ps/" .. ply:SteamID64() .. ".txt", util.TableToJSON( PS ) )
end)
 
  • J'aime
Réactions: ZarosOVH
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
slownls à dit:
Code:
hook.Add( "Initialize", "PS:Initialize", function() if not file.IsDir( "ps", "DATA" ) then file.CreateDir( "ps" ) end
end)
hook.Add("PlayerInitialSpawn", "PS:Player:InitialSpawn", function( ply ) timer.Simple( 0, function() if file.Exists( "ps/" .. ply:SteamID64() .. ".txt", "DATA" ) then local PS = util.JSONToTable( file.Read( 'ps/' .. ply:SteamID64() .. ".txt", 'DATA' ) ) local PlayerPos = string.Explode( ' ', PS.Pos ) local PlayerAngles = string.Explode( ' ', PS.Ang ) ply:SetPos( Vector( PlayerPos[ 1 ], PlayerPos[ 2 ], PlayerPos[ 3 ] ) ) ply:SetAngles( Angle( PlayerAngles[ 1 ], PlayerAngles[ 2 ], PlayerAngles[ 3 ] ) ) end end)
end)
hook.Add( "PlayerDisconnected", "PS:Player:Disconnect", function( ply ) local PS = {} local PlayerPos = string.Explode( ' ', tostring( ply:GetPos() ) ) local PlayerAngles = string.Explode( ' ', tostring( ply:GetAngles() + Angle( 0, - 90, 0 ) ) ) PS = { Pos = PlayerPos[1] .. ' ' .. PlayerPos[2] .. ' ' .. PlayerPos[3], Ang = PlayerAngles[1] ..' ' .. PlayerAngles[2] .. ' ' .. PlayerAngles[3] } file.Write( "ps/" .. ply:SteamID64() .. ".txt", util.TableToJSON( PS ) )
end)
Merci <3
Et quand tu dis "..." tu parles de quoi ?o_O
slownls à dit:
EDIT : tu as également oublié les "..."
 
slownls

slownls

Helpeur Divin
Messages
1 853
Score réaction
1 079
Points
465
Zaros_Live à dit:
Merci <3
Et quand tu dis "..." tu parles de quoi ?o_O
if file.Exists ("spawntopos/" .. ply:SteamID64() .. ".txt", "DATA" ) then
 
ZarosOVH

ZarosOVH

Modérateur
Membre du Staff
Messages
6 527
Score réaction
5 488
Points
1 295
slownls à dit:
if file.Exists("spawntopos/"..ply:SteamID64()..".txt", "DATA") then
haaa oui 4Head
 
slownls

slownls

Helpeur Divin
Messages
1 853
Score réaction
1 079
Points
465
Voilà une version qui sauvegarde les armes avec :)
Code:
hook.Add( "Initialize", "PS:Initialize", function() if not file.IsDir( "ps", "DATA" ) then file.CreateDir( "ps" ) end
end)
hook.Add("PlayerInitialSpawn", "PS:Player:InitialSpawn", function( ply ) timer.Simple( 0, function() if file.Exists( "ps/" .. ply:SteamID64() .. ".txt", "DATA" ) then local PS = util.JSONToTable( file.Read( 'ps/' .. ply:SteamID64() .. ".txt", 'DATA' ) ) local PlayerPos = string.Explode( ' ', PS.Pos ) local PlayerAngles = string.Explode( ' ', PS.Ang ) ply:SetPos( Vector( PlayerPos[ 1 ], PlayerPos[ 2 ], PlayerPos[ 3 ] ) ) ply:SetAngles( Angle( PlayerAngles[ 1 ], PlayerAngles[ 2 ], PlayerAngles[ 3 ] ) ) for k,v in pairs( PS.Weapons ) do ply:Give( v ) end end end)
end)
local BlackListSaveWeapons = { ['weapon_fists'] = true, ['weapon_physgun'] = true, ['weapon_physcannon'] = true, ['gmod_tool'] = true, ['gmod_camera'] = true, ['weapon_medkit'] = true, ['pocket'] = true, ['med_kit'] = true, ['keys'] = true, ['arrest_stick'] = true, ['unarrest_stick'] = true, ['stunstick'] = true, ['weaponchecker'] = true, ['door_ram'] = true, ['weapon_keypadchecker'] = true,
}
hook.Add( "PlayerDisconnected", "PS:Player:Disconnect", function( ply ) local PS = {} local Weapons = {} for k,v in pairs( ply:GetWeapons() ) do if BlackListSaveWeapons[ v:GetClass() ] then continue end table.insert( Weapons, v:GetClass() ) end local PlayerPos = string.Explode( ' ', tostring( ply:GetPos() ) ) local PlayerAngles = string.Explode( ' ', tostring( ply:GetAngles() + Angle( 0, - 90, 0 ) ) ) PS = { Pos = PlayerPos[ 1 ] .. ' ' .. PlayerPos[ 2 ] .. ' ' .. PlayerPos[ 3 ], Ang = PlayerAngles[ 1 ] .. ' ' .. PlayerAngles[ 2 ] .. ' ' .. PlayerAngles[ 3 ], Weapons = Weapons } file.Write( "ps/" .. ply:SteamID64() .. ".txt", util.TableToJSON( PS ) )
end)
 
  • J'aime
Réactions: SGCAtlantis et Yoh Sambre ♪
henoireil

henoireil

Geek suprême
Messages
348
Score réaction
103
Points
150
Plus simple (J'ai pas test) :
Code:
hook.Add( "PlayerDisconnected", "PS:Player:Disconnect", function( ply ) ply:SetPData("lastpos", "{" .. ply:GetPos().x .. "," .. ply:GetPos().y .. "," .. ply:GetPos().z .. "}") ply:SetPData("lastang", "{" .. ply:GetAngles().x .. "," .. ply:GetAngles().y .. "," .. ply:GetAngles().z .. "}")
end)
hook.Add("PlayerInitialSpawn", "PS:Player:InitialSpawn", function( ply ) if ply:GetPData("lastpos", "unknown") ~= "unknown" then local pos = util.JSONToTable(ply:GetPData("lastpos")) local ang = util.JSONToTable(ply:GetPData("lastang")) ply:SetPos( Vector( pos[1], pos[2], pos[3] ) ) ply:SetAngles( Angles ( ang[1], ang[2], ang[3] ) ) end
end)
 
  • J'aime
Réactions: Yoh Sambre ♪
  • Initiateur de la discussion
Malcolm

Malcolm

Psychopathe
Messages
1 096
Score réaction
262
Points
280
Merci, le code de @slownls marche nickel (le premier, j'ai pas test le deuxième).
 
Discord d'entraide
Rejoignz-nous sur Discord