Ulysses
General => Developers Corner => Topic started by: BobTheDuck on February 18, 2016, 04:20:12 PM
-
Ok so Unjail functions as jail and reasons wont work... Im attempting to make modification of this code but dont know where to start...
------------------------------ Jail ------------------------------
local doJail
local jailableArea
function ulx.jail( calling_ply, target_plys, seconds, reason, should_unjail )
local affected_plys = {}
for i=1, #target_plys do
local v = target_plys[ i ]
if not should_unjail then
if ulx.getExclusive( v, calling_ply ) then
ULib.tsayError( calling_ply, ulx.getExclusive( v, calling_ply ), true )
elseif not jailableArea( v:GetPos() ) then
ULib.tsayError( calling_ply, v:Nick() .. " is not in an area where a jail can be placed!", true )
else
doJail( v, seconds )
table.insert( affected_plys, v )
end
elseif v.jail then
v.jail.unjail()
v.jail = nil
table.insert( affected_plys, v )
end
end
if not should_unjail then
local str = "#A jailed #T (#s)"
if seconds > 0 then
str = str .. " for #i seconds. (#s)"
end
ulx.fancyLogAdmin( calling_ply, str, affected_plys, seconds, reason )
else
ulx.fancyLogAdmin( calling_ply, "#A unjailed #T", affected_plys )
end
end
local jail = ulx.command( CATEGORY_NAME, "ulx jail", ulx.jail, "!jail" )
jail:addParam{ type=ULib.cmds.PlayersArg }
jail:addParam{ type=ULib.cmds.NumArg, min=0, default=0, hint="seconds, 0 is forever", ULib.cmds.round, ULib.cmds.optional }
jail:addParam{ type=ULib.cmds.StringArg, hint="reason", ULib.cmds.optional, ULib.cmds.takeRestOfLine }
jail:addParam{ type=ULib.cmds.BoolArg, invisible=true }
jail:defaultAccess( ULib.ACCESS_ADMIN )
jail:help( "Jails target(s)." )
jail:setOpposite( "ulx unjail", {_, _, _, true}, "!unjail" )
-
Define "don't work".
Does it do anything?
Do you get any Lua errors when attempting to run it?
Where did you drop this code? What folder, what file name?
-
Well for starters unjail now functions as jail... and the reason wont show up period...
-
Bob, you can't just insert a text field variable without heavily modifying the text parser below or the ulx command object being passed to it/
'should_unjail' expects true or false. If it's anything but boolean 'true', well, that makes it 'false' and jails target.
My bet is you're not encapsulating "reason" in a single variable, so the say command is passing multiple word vars.
In the example below, #4 is expected to be true or false 'should_unjail'
1 2 3 4 5 6 7
jail target reason words go here true
would still jail a person because word 4 is 'go' and not a boolean.
I don't have the say command in front of me, and you didn't post what you're now using, but that's my recollection.
-
Found this while searching for something else.
Amazing what our search box will find, right?
https://forums.ulyssesmod.net/index.php/topic,6598.0.html