I’ve been trying to work out how to make a command that allows the user to open cell doors. The problem I am having is that everything I have tried so far, it opens every door in the map!
Can anyone help please?
I’ve been trying to work out how to make a command that allows the user to open cell doors. The problem I am having is that everything I have tried so far, it opens every door in the map!
Can anyone help please?
Post what you’ve tried.
for k,v in ipairs(ents.FindByClass("func_door")) do
v:Fire("Open",1)
end
You’ve got to filter them in some sort of way, because obviously that will open them all.
Also, please wrap the code next time in
tags
How would I filter the cell doors?
You’d check if the player using the command has met certain criteria.
Normally, this kinds of maps have got different names for their doors and such, as for example, normally the doors would be something like: cell_door1, cell_door2, etc etc.
But, thats map specific normally, so you should take a look by either decompiling the map and taking a look to them by hammer or either in-game with custom commands that’d print the doors name on the console.
Either that, or using entity map creation ids.
You can try to open the door entities which in a radius, starting from prisoner’s spawn entity.
If the map has a dedicated button to open cells, you can just Fire(“Use”) on GetMapCreatedEntity(int). Thats what I did when I did JB.
You can always try creating a concommand that tells you the class of the entity (just another option, and a easier way of finding the entity class)
And thats how you run the button on what
said…
concommand.Add( "entityclass", function( ply, cmd, args )
print( tostring(ply:GetEyeTrace().Entity:GetClass()) )
-- for running on all entites of the entity your looking at with the same class
for k,v in pairs(ents.FindByClass(tostring(ply:GetEyeTrace().Entity:GetClass())) ) do
v:Fire("Use",1)
v:Fire("Open",1)
-- etc
end
end )