Commit graph

19 commits

Author SHA1 Message Date
Griatch
1d4f075ca7 * Updated and expanded the State system; the API changed a bit. You now have to first *create* the state using
GLOBAL_STATE_TABLE.add_state() before adding commands to it. The state can now be much more configured by including as much or as
little of the normal default commands into it as wanted (so you can now have states which are almost as normal, except some
commands are missing or change their behaviour ... illness or darkness comes to mind). The possibilities here are limitless.
* States now also optionally allow traversing exits as well as using command tables defined on objects.
* States now better handle error messages (so if you try 'look' in a state which does not contain a look command you will no
longer get the 'Huh?' but will be told that the command is not available at the moment).
* All examples in commands/examples/ have been updated to use the new State system. Also added a @test_state function for trying out
the functionality.
* Added hooks at_before_move() and at_after_move(), useful for character based move-restrictions and checks (e.g. movement speed)
* Minor tweaks to the event system; avoiding the counters to go negative should they hit an uncaught traceback.
* Small fixes of typos and minor extra safety checks.
/Griatch
2009-08-16 01:18:58 +00:00
Griatch
0efe2c3095 Created a state system. See
http://groups.google.com/group/evennia/browse_thread/thread/66a7ff6cce5303b7
for more detailed description.

Created a new folder gamesrc/commands/examples and moved all examples in there.
/Griatch
2009-05-01 15:34:43 +00:00
Griatch
3eb4cddf42 - implemented @destroy as per the MUX help specifications. As part of this, fixed the object recycling routines to actually properly replace GARBAGE-flagged objects (it crashed before).
- Set up a global cleaner event to clean all @destroyed objects every 30 minutes (makes their dbrefs available).
- Added the @recover command for recovering @destroyed objects up until the point that the cleaner runs and actually destroys them. This can recover @destroyed objects, rooms and exits to the same state as before @destroy. It could easily be made to recover player objects too, but I'm thinking this would be a security issue.
- Added to @dig in order to allow for creating rooms with a particular parent. Also auto-creates exits in each room if desired. The only things that is not implemented is the aliases of the exits, I don't really know how to do that.
- Changed the @create command format to match the @dig (it uses : to mark the parent instead of = now, since MUX' @dig reserve = to the exit list.)
- Added extra security in the example event to guard against the bug that causes the whole scheduler to freak out if the event_function() gives a traceback.
- Changed many instances of type to point to the defines_global.OTYPE instead of giving the integer explicitly.
/Starkiel
2009-04-30 15:01:59 +00:00
Greg Taylor
36e23bfd4a Modularizing ANSI parsing. This may break stuff. It's not quite where I want it just yet. 2009-04-13 22:44:44 +00:00
Griatch
4cc8e57774 Adds better help functionality
- expanded help command, allowing adding, deleting and appending to help the help database
 - auto-doc functionality using the __doc__ property of commands
 - markup in help text for creation of multiple help subtopics at once
 - dynamic help index (use 'help topic' to get the normal mux topic list)
 /Starkiel
2009-04-11 23:17:44 +00:00
Greg Taylor
4ca5a4a7bf Revamp how commands are loaded. This will now allow for easy addition of custom commands and over-riding existing Evennia-supplied commands. 2009-01-27 15:21:15 +00:00
Greg Taylor
7280eaf803 Add an extra_vars element to the command table that allows extra variables to be passed through the command table. Also added DOING ala MUX. 2009-01-24 03:17:43 +00:00
jamesvclemence
3d4ad07f9a @cpattr now coded, please post reports if bugs found, appears to work as expected. 2009-01-23 17:25:22 +00:00
Greg Taylor
377844f1c6 @search is working now, aside from the flag search. 2009-01-22 14:49:58 +00:00
Greg Taylor
4c562cd6ce Work on the comsys. @cwho is working now. 2009-01-22 03:19:40 +00:00
Greg Taylor
8ebea8c22e Add MUX-style @chzone. 2009-01-18 02:40:57 +00:00
Greg Taylor
1a3942edac MUX-style @chown implemented. 2009-01-18 02:34:50 +00:00
Greg Taylor
914628d385 Fixed an issue with Object manager's is_dbref. Paging should be a lot more sound now too. 2009-01-15 05:11:55 +00:00
Greg Taylor
e6d3d9395d Previously, the global command table was being filled with entries from other tables due to some funky globalization of the ctable instance variable. Fixed that and yanked the conditionals on a few of the logged out commands that check for logged in status. 2009-01-12 18:01:35 +00:00
Greg Taylor
bd3d195d5b Beginnings of @parent, the in-game tie-in for the scripting system. Can now list the currently cached scripts via @parent/showcache, and clear the cache via @parent/clearcache. 2008-12-16 03:36:49 +00:00
Greg Taylor
d58f4eb517 Looking through our command code after a long hiatus, I realized that it was pretty much awful. So here's part 1 of the command interpreter overhaul.
- The command handler has been drastically simplified. We were doing way too much processing in the handler that should have been done in the individual command functions themselves.
- The 'cdat' dict we were previously passing around has been replaced with a Command object that has useful methods for performing some of the parsing command functions will probably want to do from time to time.
- All commands were updated to use the new Command object, tested, and cleaned up in general.
- A lot of formatting was cleaned up.
- A lot of previously un-found bugs and limitations were fixed.
- The 'page' command has been broken out into its own file, since it's going to have a number of functions that would otherwise clutter commands/general.py.

Expect a commit (probably later today) that will clean up the second half of cmdhandler.py.
2008-12-14 20:21:02 +00:00
Greg Taylor
37d66093cc Addition of a re-usable CommandTable class. We still have two global command tables that are now instances of this class. Game developers will use methods on CommandTable to add their own commands without modifying the base server code.
This is also in preparation of allowing commands to be present on objects via their script parents.
2008-12-14 01:49:37 +00:00
loki77
186dcc17c5 Fixed bad indentation. 2008-06-17 00:38:59 +00:00
Greg Taylor
4bb00013ae Even more death and destruction. A lot more stuff moved to src/. A lot more bugs probably introduced. 2008-06-15 19:38:39 +00:00
Renamed from cmdtable.py (Browse further)