This update adds an optional permission system that commands can use to determine what the minimum permission level is to be able to access that specific command
This update forces changes on the other commands scripts. If you download this version make sure to download the updated version of your individual chat command(s) script as well
Added cc_debug dvar
Added cc_permission_enabled
Added cc_commands_mode dvar
Added cc_permission_mode dvar
Added cc_permission_default dvar
Added cc_permission_max dvar
Added cc_permission_0, cc_permission_1, cc_permission_2, cc_permission_3 & cc_permission_4 dvars
Added InsufficientPermissionError error
Added InvalidPermissionLevelError error
Added GetPlayerPermissionLevelFromDvar util function
Added GetPlayerPermissionLevel util function
Added SetPlayerPermissionLevel util function
Added PlayerHasSufficientPermissions util function
Added SetDvarIfNotInitialized util function
Added IsBot util function
Added DebugIsOn util function
Added PermissionIsEnabled util function
[Refactor]
Replaced player.chat_commands with player.pers["chat_commands"]
This is to make sure the variables are kept between rounds
Replaced level scoped variables with a single level scoped array variable <level.chat_commands> holding all properties (prefix, ports etc.)
This is a refactor/dev that changes how the commands work but the usage stays the same for the end user. The only difference is that you now have to install each command as a separate file
[Refactor]
Moved all the commands to their respective file, just like a plugin system to easily allow the user to add/remove commands
If the server has no commands it will display a message when trying to run any command with the prefix
[Dev]
Added args comment for the CreateCommand function (commandValue and commandHelp)
Added wallhack command to grant or remove access to a wallhack (red boxes) to a player (toggle)
[DEV]
This showcases how to implement a status/toggle command with a non permanent logic (implementing OnPlayerSpawned())
Added invisible command to grant or remove the invisible state to a player (toggle)
Note that this does not make you invisible to bots in the sense that even if they can't see you they will still know your position and shoot you on sight
All commands that require a player name to be passed now work both with a player name or with "me" to target yourself
[Dev]
All commands that use FindPlayerByName will now work with "me" passed as the player out of the box since FindPlayerByName now returns self if the name param is "me"
[Refactor]
Fix undefined errors when calling a status command for the first time on a player
Added norecoil command to grant or remove access to no recoil to a player (toggle)
[DEV]
Introduced the status system to make implementing toggle commands easier.
It allows the dev to get and set a status on a player per command and display messages both for the person running the command and for the player affected when the player status changes (for example no recoil ON/OFF).
Note that the status is always OFF by default since we always grant something to a player
Added teleport command to teleport a player or yourself to another player or yourself
!teleport me Eldor
!teleport Eldor me
!teleport Eldor Rektinator
[Refactor]
Replaced array[array.size] = value with AddElementToArray(array, value)