> Instead of having to add those 3 lines of code to every admin command, and > being limited to only 32 commands, unless you use some other extend bit > system, you might want to simply use a string list of of commands, and > then use the is_name (or whatever it is called in Circle) function to > check if the admin has been assigned this command, e.g.: > > ch -> allowed_commands = "slay ban reboot"; > > > > if (command needs authorization ) > if ( "command name" IS one of the keywords in > ch->allowed_commands) > go right ahead > else > Nope > > > You can then expand on it further by making, in the command that grants > commands, "packages" with commands - e.g. 'olc' might give Aedit, Bedit > and Cedit, and 'all' might just give all available commands. > > Even better, you can expand this to not just 'commands' but > 'capabilities'. > > For example, when sending out immtalk chats, I don't check if the player > is level immortal and above - I simply check if they have the 'immtalk' > command. > Wrote up a system like this. Since I had ascii pfiles, the whole problem with saving wasn't an issue, and I believe I did it pretty inefficiently by making an array of size = NUM_COMMANDS (maybe I had to define this?). I had a grant.h file which had one #define for every function (not command - for example, do_action, or do_track, instead of smile, laugh, and track). This allowed me to add a single define, and I could add/remove commands without worrying if it would affect previously existing commands, or commands to be added in the future. I threw in the batches of commands - as a matter of fact, everyone was assigned to the batch named 'everybody' when they logged on (mobs too, although they had a mob batch as well). Worked okay, although with every command being possible of being restricted, I could easily disable myself, but since they were ascii pfiles, there wasn't a problem with that - I just added it back in and re-entered. PjD +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST