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
This commit is contained in:
parent
cae925c29b
commit
0efe2c3095
9 changed files with 415 additions and 30 deletions
96
game/gamesrc/commands/examples/example.py
Normal file
96
game/gamesrc/commands/examples/example.py
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
"""
|
||||
This is an example command module for showing the pluggable command system
|
||||
in action.
|
||||
|
||||
You'll need to make sure that this or any new modules you create are added to
|
||||
game/settings.py under CUSTOM_COMMAND_MODULES or CUSTOM_UNLOGGED_COMMAND_MODULES,
|
||||
which are tuples of module import path strings. See src/config_defaults.py for more details.
|
||||
|
||||
E.g. to add this example command for testing, your entry in game/settings.py would
|
||||
look like this:
|
||||
|
||||
CUSTOM_COMMAND_MODULES = ('game.gamesrc.commands.examples.example',)
|
||||
|
||||
(note the extra comma at the end to make this into a Python tuple. It's only
|
||||
needed if you have only one entry.) You need to restart the Evennia server before new
|
||||
files are recognized.
|
||||
|
||||
"""
|
||||
|
||||
# This is the common global CommandTable object which we'll be adding the
|
||||
# example command to. We can add any number of commands this way in the
|
||||
# same file.
|
||||
from src.cmdtable import GLOBAL_CMD_TABLE
|
||||
|
||||
def cmd_example(command):
|
||||
"""
|
||||
This is the help text for the 'example' command, a command to
|
||||
show how the pluggable command system works.
|
||||
|
||||
For testing, you can try calling this with different switches and
|
||||
arguments, like
|
||||
> example/test/test2 Hello
|
||||
and see what is returned.
|
||||
|
||||
<<TOPIC:example_auto_help>>
|
||||
|
||||
This is a subtopic to the main example command help entry.
|
||||
|
||||
Note that this text is auto-added since auto_help=True
|
||||
was set in the call to add_function. Any number of subtopics like
|
||||
this one can be added on the fly using the auto-help system. See
|
||||
help topics on 'help' and 'help_staff' for more information and
|
||||
options.
|
||||
"""
|
||||
|
||||
# By building one big string and passing it at once, we cut down on a lot
|
||||
# of emit_to() calls, which is generally a good idea.
|
||||
retval = "----- Example Command -----\n\r"
|
||||
# source_object is the object executing the command
|
||||
retval += " Source object: %s\n\r" % command.source_object
|
||||
# session points to a user Session (session.py) object (if applicable)
|
||||
retval += " Session: %s\n\r" % command.session
|
||||
# The raw, un-parsed input
|
||||
retval += " Raw input: %s\n\r" % command.raw_input
|
||||
# The command name being executed
|
||||
retval += " Command: %s\n\r" % command.command_string
|
||||
# A list of switches provided (if any)
|
||||
retval += " Switches: %s\n\r" % command.command_switches
|
||||
# A string with any arguments provided with the command
|
||||
retval += " Arguments: %s\n\r" % command.command_argument
|
||||
# The function that was looked up via cmdtable.py
|
||||
retval += " Function: %s\n\r" % command.command_function
|
||||
# Extra variables passed with cmdtable.py's add_command().
|
||||
retval += " Extra vars: %s\n\r" % command.extra_vars
|
||||
command.source_object.emit_to(retval)
|
||||
|
||||
# Add the command to the common global command table. Note that
|
||||
# since auto_help=True, help entries named "example" and
|
||||
# "example_auto_help" (as defined in the __doc__ string) will
|
||||
# automatically be created for us.
|
||||
GLOBAL_CMD_TABLE.add_command("example", cmd_example, auto_help=True),
|
||||
|
||||
#another simple example
|
||||
|
||||
def cmd_emote_smile(command):
|
||||
"""
|
||||
Simplistic 'smile' emote.
|
||||
"""
|
||||
#get the source object (that is, the player using the command)
|
||||
caller = command.source_object
|
||||
#find name of caller
|
||||
name = caller.get_name(show_dbref=False)
|
||||
#get the location caller is at
|
||||
location = caller.get_location()
|
||||
#build the emote
|
||||
text = "%s smiles." % name
|
||||
#emit the emote to everyone at the current location
|
||||
location.emit_to_contents(text)
|
||||
|
||||
#add to global command table (no auto_help activated)
|
||||
GLOBAL_CMD_TABLE.add_command('smile', cmd_emote_smile)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue