Freeze un joueur en l'air

  • Initiateur de la discussion
RedTroz

RedTroz

Geek suprême
Messages
825
Score réaction
233
Points
195
Bonsoir,
Je cherche à créer quelque chose.
Un "script" qui permet de freeze les joueurs en l'air quand les admins prennent un joueur avec un physgun. (Un peu comme un props)
Si quelqu'un est assez fort et compétant en Lua, contacter moi.
Merci.
Cordialement, Sam
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
Yo , alors c'est pas un addons mais juste un fichier lua il me semble ! , essaye celui la ;)

Code:
if CLIENT then return end; if not SERVER then return end
hook.Remove( "PhysgunDrop", "ulxPlayerDrop") -- We don't need this hook since we have a better hook here.
local function isPlayer(ent) return (IsValid(ent) && ent.GetClass && ent:GetClass() == "player") end
local function playerPickup( ply, ent ) local access, tag = ULib.ucl.query( ply, "ulx physgunplayer" ) if isPlayer(ent) and access then local restrictions = {} ULib.cmds.PlayerArg.processRestrictions( restrictions, ply, {}, tag and ULib.splitArgs( tag )[ 1 ] ) if restrictions.restrictedTargets == false or (restrictions.restrictedTargets and not table.HasValue( restrictions.restrictedTargets, ent )) then return false end return true end
end
timer.Simple(0.01, function() hook.Add("PhysgunPickup", "_ply_physgungrab", function(ply, targ) if IsValid(ply) and isPlayer(targ) then if ply:query("ulx physgunplayer") and playerPickup( ply, targ ) then local allowed = ULib.getUser( "@", true, ply ) if isPlayer(allowed) then if allowed.frozen && ply:query( "ulx unfreeze" ) then allowed.phrozen = true; allowed.frozen = false; end allowed._ulx_physgun = {p=targ:GetPos(), b=true, a=ply} end end end end, tonumber(HOOK_HIGH)-2); MsgAll('LOADED! 1')
end)
hook.Add("PlayerSpawn", "_ply_physgungrab", function(ply) timer.Simple(0.001, function() if IsValid(ply) and ply._ulx_physgun then local admin = ply._ulx_physgun.a if ply._ulx_physgun.b and ply._ulx_physgun.p and IsValid(admin) then ply:SetPos(ply._ulx_physgun.p); ply:SetMoveType(MOVETYPE_NONE); timer.Simple(0.001, function() if not (IsValid(admin) and admin:KeyDown(IN_ATTACK)) then ply:SetMoveType( MOVETYPE_WALK ) ply._ulx_physgun = nil ply:Spawn() end end) end end end)
end)
local function physgun_freeze( calling_ply, target_ply, should_unfreeze ) local v = target_ply if v:InVehicle() then v:ExitVehicle() end if not should_unfreeze then v:Lock() v.frozen = true v.phrozen = true ulx.setExclusive( v, "frozen" ) else v:UnLock() v.frozen = nil v.phrozen = nil ulx.clearExclusive( v ) end v:DisallowSpawning( not should_unfreeze ) ulx.setNoDie( v, not should_unfreeze ) if v.whipped then v.whipcount = v.whipamt -- Will make it remove end
end
timer.Simple(0.01, function() hook.Add("OnPhysgunFreeze", "_ulx_physgunfreeze", function(pl, ent) if isPlayer(ent) then ent:SetMoveType( MOVETYPE_WALK ) ent._ulx_physgun = nil end end) hook.Add("PhysgunDrop", "_ulx_physgunfreeze", function(pl, ent) if isPlayer(ent) then ent:SetMoveType( MOVETYPE_WALK ) ent._ulx_physgun = nil end if IsValid(pl) and isPlayer(ent) then if pl:query("ulx freeze") then local isFrozen = ( ent:IsFrozen() or ent.frozen or ent.phrozen ); ent:SetMoveType(pl:KeyDown(IN_ATTACK2) and MOVETYPE_NONE or MOVETYPE_WALK); timer.Simple(0.001, function() if pl:KeyDown(IN_ATTACK2) and not isFrozen then if pl:query( "ulx freeze" ) then ent:SetVelocity(ent:GetVelocity()*-1); ulx.freeze( pl, {ent}, false ); if ent.frozen then ent.phrozen = true end; end elseif pl:query( "ulx unfreeze" ) and isFrozen then if pl:KeyDown(IN_ATTACK2) and pl:query( "ulx freeze" ) then physgun_freeze(pl, ent, true) timer.Simple(0.001, function() physgun_freeze(pl, ent, false) end); else ulx.freeze( pl, {ent}, true ); if not ent.frozen then ent.phrozen = nil end; end end end); else ent:SetMoveType( MOVETYPE_WALK ) end end end); MsgAll('LOADED! 2')
end)
 
  • Initiateur de la discussion
RedTroz

RedTroz

Geek suprême
Messages
825
Score réaction
233
Points
195
Yoh Sambre ♪ à dit:
Yo , alors c'est pas un addons mais juste un fichier lua il me semble ! , essaye celui la ;)

Code:
if CLIENT then return end; if not SERVER then return end
hook.Remove( "PhysgunDrop", "ulxPlayerDrop") -- We don't need this hook since we have a better hook here.
local function isPlayer(ent) return (IsValid(ent) && ent.GetClass && ent:GetClass() == "player") end
local function playerPickup( ply, ent ) local access, tag = ULib.ucl.query( ply, "ulx physgunplayer" ) if isPlayer(ent) and access then local restrictions = {} ULib.cmds.PlayerArg.processRestrictions( restrictions, ply, {}, tag and ULib.splitArgs( tag )[ 1 ] ) if restrictions.restrictedTargets == false or (restrictions.restrictedTargets and not table.HasValue( restrictions.restrictedTargets, ent )) then return false end return true end
end
timer.Simple(0.01, function() hook.Add("PhysgunPickup", "_ply_physgungrab", function(ply, targ) if IsValid(ply) and isPlayer(targ) then if ply:query("ulx physgunplayer") and playerPickup( ply, targ ) then local allowed = ULib.getUser( "@", true, ply ) if isPlayer(allowed) then if allowed.frozen && ply:query( "ulx unfreeze" ) then allowed.phrozen = true; allowed.frozen = false; end allowed._ulx_physgun = {p=targ:GetPos(), b=true, a=ply} end end end end, tonumber(HOOK_HIGH)-2); MsgAll('LOADED! 1')
end)
hook.Add("PlayerSpawn", "_ply_physgungrab", function(ply) timer.Simple(0.001, function() if IsValid(ply) and ply._ulx_physgun then local admin = ply._ulx_physgun.a if ply._ulx_physgun.b and ply._ulx_physgun.p and IsValid(admin) then ply:SetPos(ply._ulx_physgun.p); ply:SetMoveType(MOVETYPE_NONE); timer.Simple(0.001, function() if not (IsValid(admin) and admin:KeyDown(IN_ATTACK)) then ply:SetMoveType( MOVETYPE_WALK ) ply._ulx_physgun = nil ply:Spawn() end end) end end end)
end)
local function physgun_freeze( calling_ply, target_ply, should_unfreeze ) local v = target_ply if v:InVehicle() then v:ExitVehicle() end if not should_unfreeze then v:Lock() v.frozen = true v.phrozen = true ulx.setExclusive( v, "frozen" ) else v:UnLock() v.frozen = nil v.phrozen = nil ulx.clearExclusive( v ) end v:DisallowSpawning( not should_unfreeze ) ulx.setNoDie( v, not should_unfreeze ) if v.whipped then v.whipcount = v.whipamt -- Will make it remove end
end
timer.Simple(0.01, function() hook.Add("OnPhysgunFreeze", "_ulx_physgunfreeze", function(pl, ent) if isPlayer(ent) then ent:SetMoveType( MOVETYPE_WALK ) ent._ulx_physgun = nil end end) hook.Add("PhysgunDrop", "_ulx_physgunfreeze", function(pl, ent) if isPlayer(ent) then ent:SetMoveType( MOVETYPE_WALK ) ent._ulx_physgun = nil end if IsValid(pl) and isPlayer(ent) then if pl:query("ulx freeze") then local isFrozen = ( ent:IsFrozen() or ent.frozen or ent.phrozen ); ent:SetMoveType(pl:KeyDown(IN_ATTACK2) and MOVETYPE_NONE or MOVETYPE_WALK); timer.Simple(0.001, function() if pl:KeyDown(IN_ATTACK2) and not isFrozen then if pl:query( "ulx freeze" ) then ent:SetVelocity(ent:GetVelocity()*-1); ulx.freeze( pl, {ent}, false ); if ent.frozen then ent.phrozen = true end; end elseif pl:query( "ulx unfreeze" ) and isFrozen then if pl:KeyDown(IN_ATTACK2) and pl:query( "ulx freeze" ) then physgun_freeze(pl, ent, true) timer.Simple(0.001, function() physgun_freeze(pl, ent, false) end); else ulx.freeze( pl, {ent}, true ); if not ent.frozen then ent.phrozen = nil end; end end end); else ent:SetMoveType( MOVETYPE_WALK ) end end end); MsgAll('LOADED! 2')
end)
Merci beaucoup de ta réponse !
Juste, faut créer un fichier et le mettre dans addons ou?..
Je suis apprenti en lua :S
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
RedTroz à dit:
Merci beaucoup de ta réponse !
Juste, faut créer un fichier et le mettre dans addons ou?..
Je suis apprenti en lua :S
Pas de problème , si je me rappelle bien va mettre ce fichier lua nom.lua dans le dossier autorun ;)
 
  • J'aime
Réactions: RedTroz
  • Initiateur de la discussion
RedTroz

RedTroz

Geek suprême
Messages
825
Score réaction
233
Points
195
Yoh Sambre ♪ à dit:
Pas de problème , si je me rappelle bien va mettre ce fichier lua nom.lua dans le dossier autorun ;)
J'essaye cela, merci !
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
N'hésite pas à test en tapant dans le chat !rcon bot pour essayé de freeze le bot si tu n'a personne a cette heures :)
 
  • J'aime
Réactions: RedTroz
  • Initiateur de la discussion
RedTroz

RedTroz

Geek suprême
Messages
825
Score réaction
233
Points
195
Yoh Sambre ♪ à dit:
N'hésite pas à test en tapant dans le chat !rcon bot pour essayé de freeze le bot si tu n'a personne a cette heures :)
Waaahhh, je t'adore :3
Juste, sais tu comment ne plus avoir les messages "NomDeLaPersonne a été freeze" dans le chat ?
Merciii !
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
RedTroz à dit:
Waaahhh, je t'adore :3
Juste, sais tu comment ne plus avoir les messages "NomDeLaPersonne a été freeze" dans le chat ?
Merciii !
Haha de rien un plaisir ^^ , Mhum alors y'a deux soluce :

Tu désactivé l'écho des commands dans Ulx ou tu va modifié dans le fichier du module de freeze la phrase x)
 
  • Initiateur de la discussion
RedTroz

RedTroz

Geek suprême
Messages
825
Score réaction
233
Points
195
Yoh Sambre ♪ à dit:
Haha de rien un plaisir ^^ , Mhum alors y'a deux soluce :

Tu désactivé l'écho des commands dans Ulx ou tu va modifié dans le fichier du module de freeze la phrase x)
Je vais essayer cela directement !
Comment désactiver l'écho des commades dans ulx ? :S
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
RedTroz à dit:
Je vais essayer cela directement !
Comment désactiver l'écho des commades dans ulx ? :S
Mhum il me semble que ces au niveaux de choix des couleurs des messages du chat =)
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
Voilà un screen après j'imagine que tu comprend assez bien L'anglais pour lire

https://i.imgur.com/er2Npia.png
 
  • Initiateur de la discussion
RedTroz

RedTroz

Geek suprême
Messages
825
Score réaction
233
Points
195
Yoh Sambre ♪ à dit:
Voilà un screen après j'imagine que tu comprend assez bien L'anglais pour lire

https://i.imgur.com/er2Npia.png
Niceee ! Merci :)
Ce qui est bête, c'est que quand on ban quelqu'un alors ce n'est plus écrit.. :/
Mais ce n'est pas un réel problème ça.
Merci beaucoup !
 
  • J'aime
Réactions: Yoh Sambre ♪
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
RedTroz à dit:
Niceee ! Merci :)
Ce qui est bête, c'est que quand on ban quelqu'un alors ce n'est plus écrit.. :/
Mais ce n'est pas un réel problème ça.
Merci beaucoup !
Aucun problème en cas de curiosité les logs Ulx ou serveur peuvent être visualisé dans ton FTP =)
 
  • Initiateur de la discussion
RedTroz

RedTroz

Geek suprême
Messages
825
Score réaction
233
Points
195
Pas faux !
Merci pour ton aide !
Passe une bonne soirée !
 
Yoh Sambre ♪

Yoh Sambre ♪

Shaman Fou
Messages
16 288
Score réaction
9 687
Points
1 845
RedTroz à dit:
Pas faux !
Merci pour ton aide !
Passe une bonne soirée !
De rien ;) , n'hésite pas a refaire un topic en cas de demande ou si tu bloque sur un truc les membres du fofo seront très content de te venir en aide .

Bonne soirée a toi aussi :cool:
 
  • Initiateur de la discussion
RedTroz

RedTroz

Geek suprême
Messages
825
Score réaction
233
Points
195
RedTroz à dit:
Pas faux !
Merci pour ton aide !
Passe une bonne soirée !
Pas de soucis !
Thx ;)
 
Discord d'entraide
Rejoignz-nous sur Discord