General > Developers Corner
How to make a toggle in ULX
imSEnsE:
--- Quote from: imSEnsE on July 03, 2018, 08:06:27 AM ---I see how this might work. In the moment of typing this, I am opening Garry's Mod.
--- End quote ---
Nope... Didn't work... Was some random error, idk what it said completely but I saw some "Ulib.cmds.Translate--something" idk.
JamminR:
Without seeing your code and the exact error, we're throwing pillows at elephants to try to fix a leaky pipe.
imSEnsE:
Here's the code, and the Error was something about TranslateCmds I think.
--- Code: -----[[Made By SEnsE/Nismo/A. Nismo]]--
if CLIENT then return end; if not SERVER then return end
--[[-----------------Script Here--------Don't Touch!-----------------]]--
hook.Remove( "PhysgunDrop", "ulxPlayerDrop")
local function isPlayer(ent) return (IsValid(ent) && ent.GetClass && ent:GetClass() == "player") end
hook.Add("PhysgunPickup", "_ply_physgungrab", function(ply, targ)
if IsValid(ply) and isPlayer(targ) then
if ply:query("ulx physgunplayer") 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}
end
end
end
end, HOOK_HIGH)
hook.Add("PlayerSpawn", "_ply_physgungrab", function(ply)
if ply._ulx_physgun then
if ply._ulx_physgun.b and ply._ulx_physgun.p then
timer.Simple(0.001, function()
ply:SetPos(ply._ulx_physgun.p);
ply:SetMoveType(MOVETYPE_NONE);
end);
end
end
end)
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
end
end
hook.Add("PhysgunDrop", "_ulx_physgunfreeze", function(pl, ent)
if isPlayer(ent) then
ent:SetMoveType( MOVETYPE_WALK )
ent._ulx_physgun = {p=ent:GetPos(), b=false}
end
if IsValid(pl) and isPlayer(ent) then
if pl:query("ulx physgunplayer") then
local isFrozen = ( ent:IsFrozen() or ent.frozen or ent.phrozen );
ent:SetVelocity(ent:GetVelocity()*-1);
ent:SetMoveType(pl:KeyDown(IN_ATTACK2) and MOVETYPE_NOCLIP or MOVETYPE_WALK);
timer.Simple(0.001, function()
if pl:KeyDown(IN_ATTACK2) and not isFrozen then
if pl:query( "ulx freeze" ) then
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)
local physgunfreeze = ulx.command( Utility, "ulx physgunfreeze", ulx_physgunfreeze, "!physgunfreeze" )
physgunfreeze:addParam{ type=ULib.cmds.PlayersArg, ULib.cmds.optional }
physgunfreeze:defaultAccess( Ulib.ACCES.ADMIN )
physgunfreeze:help( "Toggles Physgun Freeze Player Script" )
print ( "Physgun Player Loaded!" )
--[[Made By SEnsE/Nismo/A. Nismo]]--
--- End code ---
JamminR:
Seriously, I can't stress this enough - you need to copy paste the exact error from console that you are getting.
It tells what line, it tells what code, and several lines that led to the bad part.
Quick look of your code shows that you should be placing the category Utility in quotes "Utility" - Translate expects a string there, passing it the word Utility likely returns nil, as there is no variable named Utility
--- Code: ---local physgunfreeze = ulx.command( "Utility", ...)
--- End code ---
Navigation
[0] Message Index
[*] Previous page
Go to full version