- Made many small bugfixes to the @parent and @create functions as well as their underlying methods.
- Made it so user #1 is also affected by the on_player_creation() function. - Added an event folder for custom events, including a working example - Expanded the example commands and parents to include the changes to how they should be initialized. - Added an optional ansi scheme (not active by default)
This commit is contained in:
parent
a32840002c
commit
a9dbac8aae
16 changed files with 397 additions and 35 deletions
|
|
@ -1,18 +1,48 @@
|
|||
"""
|
||||
This is an example command module that may be copied and used to serve as the
|
||||
basis to newly created modules. You'll need to make sure that this or any new
|
||||
modules are added to settings.py under CUSTOM_COMMAND_MODULES or
|
||||
CUSTOM_UNLOGGED_COMMAND_MODULES, which are tuples of module import path strings.
|
||||
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.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.)
|
||||
|
||||
"""
|
||||
|
||||
# This is the common global CommandTable object which we'll be adding the
|
||||
# example command to.
|
||||
# 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.
|
||||
"""
|
||||
An example command to show how the pluggable command system works.
|
||||
"""
|
||||
|
||||
# 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"
|
||||
|
|
@ -33,5 +63,32 @@ def cmd_example(command):
|
|||
# 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.
|
||||
GLOBAL_CMD_TABLE.add_command("example", cmd_example),
|
||||
|
||||
# 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