How can you disable the Traitor equipment menu for just one round?
4 replies, posted
Hey, I'm trying to disable the T menu as said in the title, however it doesn't seem to be working.
Here is the code I have at the moment:
(we are using a custom t menu - which is what eqframe is)
[CODE]--if SERVER then
AddCSLuaFile()
local fun_round_num
local funrounds = {}
local Preparing = function()
--if SERVER then
hook.Remove("TTTBeginRound","BEGINFUNROUND")
hook.Remove("TTTEndRound","ENDFUNROUND")
rounds_left = GetGlobalInt("ttt_rounds_left",6)-2
if true then-- rounds_left == 0 then
fun_round_num = 2--math.random(#funrounds)
funrounds[fun_round_num]()
end
-- end
end
funrounds[1] = function()
local function BeginRound()
if SERVER then
game.ConsoleCommand("sv_gravity 150\n")
game.ConsoleCommand("phys_timescale 0.25\n")
end
end
local function EndRound()
if SERVER then
game.ConsoleCommand("sv_gravity 600\n")
game.ConsoleCommand("phys_timescale 1\n")
end
end
hook.Add("TTTBeginRound","BEGINFUNROUND",BeginRound)
hook.Add("TTTEndRound","ENDFUNROUND",EndRound)
end
funrounds[2] = function()
local function BeginRound()
if CLIENT then
if IsValid(eqframe) then
eqframe.Think = function( s ) s:Close() end
end
else
tnum = tostring(math.floor(#player.GetAll() / 8)+1)
game.ConsoleCommand("ttt_traitor_max "..tnum.."\n")
game.ConsoleCommand("ttt_detective_max 0\n")
for _,entity in ipairs(ents.GetAll()) do
if entity:IsWeapon() then
entity:Remove()
end
end
hook.Add("Think","GiveHSKnives",function()
for _,ply in ipairs(player.GetAll()) do
if not(ply:IsGhost() or not ply:Alive()) then
if (ply:GetRole() == ROLE_TRAITOR) then
ply:Give("weapon_ttt_knife")
for _,knife in pairs(ply:GetWeapons()) do
knife.SecondaryAttack = function(self)
return
end
knife.AllowDrop = false
end
end
end
end
end)
end
end
local function EndRound()
if SERVER then
game.ConsoleCommand("ttt_traitor_max 32\n")
game.ConsoleCommand("ttt_detective_max 32\n")
hook.Remove("Think","GiveHSKnives")
end
end
hook.Add("TTTBeginRound","BEGINFUNROUND",BeginRound)
hook.Add("TTTEndRound","ENDFUNROUND",EndRound)
end
hook.Add("TTTPrepareRound","PREPAREFUNROUND",Preparing)
--end[/CODE]
It's probably defined locally therefore you're unable to access it in the scope you're attempting.
You could try assigning the frame to a local variable defined outside of the functions if it's in the same script, or attach it to the local player and access it that way.
[QUOTE=Jeezy;47322622]It's probably defined locally therefore you're unable to access it in the scope you're attempting.
You could try assigning the frame to a local variable defined outside of the functions if it's in the same script, or attach it to the local player and access it that way.[/QUOTE]
First of all, it's not in the same script. Also, it is global.
So is that error you originally posted no longer occurring then?
The one that said that eqframe was nil.
If so, I am unable to help you any further because I've never really touched TTT and am not really sure about the inner-workings of it.
[QUOTE=Jeezy;47322713]So is that error you originally posted no longer occurring then?
The one that said that eqframe was nil.
If so, I am unable to help you any further because I've never really touched TTT and am not really sure about the inner-workings of it.[/QUOTE]
That error I posted was from something else so I removed it.
Sorry, you need to Log In to post a reply to this thread.