Reshuffling the Evennia package into the new template paradigm.
This commit is contained in:
parent
2846e64833
commit
2b3a32e447
371 changed files with 17250 additions and 304 deletions
1
game_template/server/conf/__init__.py
Normal file
1
game_template/server/conf/__init__.py
Normal file
|
|
@ -0,0 +1 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
25
game_template/server/conf/at_initial_setup.py
Normal file
25
game_template/server/conf/at_initial_setup.py
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
"""
|
||||
At_initial_setup module template
|
||||
|
||||
Copy this module up one level to /gamesrc/conf, name it what you like
|
||||
and then use it as a template to modify.
|
||||
|
||||
Then edit settings.AT_INITIAL_SETUP_HOOK_MODULE to point to your new
|
||||
module.
|
||||
|
||||
Custom at_initial_setup method. This allows you to hook special
|
||||
modifications to the initial server startup process. Note that this
|
||||
will only be run once - when the server starts up for the very first
|
||||
time! It is called last in the startup process and can thus be used to
|
||||
overload things that happened before it.
|
||||
|
||||
The module must contain a global function at_initial_setup(). This
|
||||
will be called without arguments. Note that tracebacks in this module
|
||||
will be QUIETLY ignored, so make sure to check it well to make sure it
|
||||
does what you expect it to.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def at_initial_setup():
|
||||
pass
|
||||
72
game_template/server/conf/at_server_startstop.py
Normal file
72
game_template/server/conf/at_server_startstop.py
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
"""
|
||||
|
||||
At_server_startstop module template
|
||||
|
||||
Copy this module one level up, to gamesrc/conf/, name it what you
|
||||
will and use it as a template for your modifications.
|
||||
|
||||
Then edit settings.AT_SERVER_STARTSTOP_MODULE to point to your new
|
||||
module.
|
||||
|
||||
This module contains functions that are imported and called by the
|
||||
server whenever it changes its running status. At the point these
|
||||
functions are run, all applicable hooks on individual objects have
|
||||
already been executed. The main purpose of this is module is to have a
|
||||
safe place to initialize eventual custom modules that your game needs
|
||||
to start up or load.
|
||||
|
||||
The module should define at least these global functions:
|
||||
|
||||
at_server_start()
|
||||
at_server_stop()
|
||||
at_server_reload_start()
|
||||
at_server_reload_stop()
|
||||
at_server_cold_start()
|
||||
at_server_cold_stop()
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def at_server_start():
|
||||
"""
|
||||
This is called every time the server starts up, regardless of
|
||||
how it was shut down.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_stop():
|
||||
"""
|
||||
This is called just before a server is shut down, regardless
|
||||
of it is fore a reload, reset or shutdown.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_reload_start():
|
||||
"""
|
||||
This is called only when server starts back up after a reload.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_reload_stop():
|
||||
"""
|
||||
This is called only time the server stops before a reload.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_cold_start():
|
||||
"""
|
||||
This is called only when the server starts "cold", i.e. after a
|
||||
shutdown or a reset.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
def at_server_cold_stop():
|
||||
"""
|
||||
This is called only when the server goes down due to a shutdown or reset.
|
||||
"""
|
||||
pass
|
||||
58
game_template/server/conf/connection_screens.py
Normal file
58
game_template/server/conf/connection_screens.py
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Connect screen module template
|
||||
|
||||
Copy this module one level up, to gamesrc/conf/, name it what
|
||||
you want and modify it to your liking.
|
||||
|
||||
Then you set settings.CONNECTION_SCREEN_MODULE to point to your
|
||||
new module.
|
||||
|
||||
|
||||
This module holds textual connection screen definitions. All global
|
||||
string variables (only) in this module are read by Evennia and
|
||||
assumed to define a Connection screen.
|
||||
|
||||
The names of the string variables doesn't matter (but names starting
|
||||
with an underscore will be ignored), but each should hold a string
|
||||
defining a connection screen - as seen when first connecting to the
|
||||
game (before having logged in).
|
||||
|
||||
OBS - If there are more than one global string variable in this
|
||||
module, a random one is picked!
|
||||
|
||||
After adding new connection screens to this module you must either
|
||||
reboot or reload the server to make them available.
|
||||
|
||||
"""
|
||||
|
||||
# comment this out if wanting to completely remove the default screen
|
||||
from src.commands.connection_screen import DEFAULT_SCREEN
|
||||
|
||||
## uncomment these for showing the name and version
|
||||
# from django.conf import settings
|
||||
# from src.utils import utils
|
||||
|
||||
## A copy of the default screen to modify
|
||||
|
||||
# CUSTOM_SCREEN = \
|
||||
#"""{b=============================================================={n
|
||||
# Welcome to {g%s{n, version %s!
|
||||
#
|
||||
# If you have an existing account, connect to it by typing:
|
||||
# {wconnect <username> <password>{n
|
||||
# If you need to create an account, type (without the <>'s):
|
||||
# {wcreate <username> <password>{n
|
||||
#
|
||||
# If you have spaces in your username, enclose it in quotes.
|
||||
# Enter {whelp{n for more info. {wlook{n will re-show this screen.
|
||||
#{b=============================================================={n""" \
|
||||
# % (settings.SERVERNAME, utils.get_evennia_version())
|
||||
|
||||
## Minimal header for use with contrib/menu_login.py
|
||||
|
||||
# MENU_SCREEN = \
|
||||
# """{b=============================================================={n
|
||||
# Welcome to {g%s{n, version %s!
|
||||
# {b=============================================================={n""" \
|
||||
# % (settings.SERVERNAME, utils.get_evennia_version())
|
||||
33
game_template/server/conf/lockfuncs.py
Normal file
33
game_template/server/conf/lockfuncs.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
"""
|
||||
|
||||
Lockfuncs module template
|
||||
|
||||
Copy this module one level up, to gamesrc/conf/, name it what
|
||||
you will and edit it to your liking.
|
||||
|
||||
Then add the new module's path to the end of the tuple
|
||||
defined in settings.LOCK_FUNC_MODULES.
|
||||
|
||||
All functions defined globally in this module are assumed to be
|
||||
available for use in lockstrings to determine access. See
|
||||
http://code.google.com/p/evennia/wiki/Locks
|
||||
|
||||
A lock function is always called with two arguments, accessing_obj and
|
||||
accessed_obj, followed by any number of arguments. All possible
|
||||
arguments should be handled (excess ones calling magic (*args,
|
||||
**kwargs) to avoid errors). The lock function should handle all
|
||||
eventual tracebacks by logging the error and returning False.
|
||||
|
||||
See many more examples of lock functions in src.locks.lockfuncs.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def myfalse(accessing_obj, accessed_obj, *args, **kwargs):
|
||||
"""
|
||||
called in lockstring with myfalse().
|
||||
A simple logger that always returns false. Prints to stdout
|
||||
for simplicity, should use utils.logger for real operation.
|
||||
"""
|
||||
print "%s tried to access %s. Access denied." % (accessing_obj, accessed_obj)
|
||||
return False
|
||||
129
game_template/server/conf/mssp.py
Normal file
129
game_template/server/conf/mssp.py
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
"""
|
||||
|
||||
MSSP module template
|
||||
|
||||
Copy this module one level up, to gamesrc/conf/, name it
|
||||
what you want and edit it to your satisfaction.
|
||||
|
||||
Then change settings.MSSP_META_MODULE to point to your new module.
|
||||
|
||||
MSSP (Mud Server Status Protocol) meta information
|
||||
|
||||
MUD website listings (that you have registered with) can use this
|
||||
information to keep up-to-date with your game stats as you change
|
||||
them. Also number of currently active players and uptime will
|
||||
automatically be reported. You don't have to fill in everything
|
||||
(and most are not used by all crawlers); leave the default
|
||||
if so needed. You need to @reload the game before updated
|
||||
information is made available to crawlers (reloading does not
|
||||
affect uptime).
|
||||
"""
|
||||
|
||||
MSSPTable = {
|
||||
|
||||
# Required fieldss
|
||||
|
||||
"NAME": "Evennia",
|
||||
|
||||
# Generic
|
||||
|
||||
"CRAWL DELAY": "-1", # limit how often crawler updates the listing. -1 for no limit
|
||||
|
||||
"HOSTNAME": "", # current or new hostname
|
||||
"PORT": ["4000"], # most important port should be last in list
|
||||
"CODEBASE": "Evennia",
|
||||
"CONTACT": "", # email for contacting the mud
|
||||
"CREATED": "", # year MUD was created
|
||||
"ICON": "", # url to icon 32x32 or larger; <32kb.
|
||||
"IP": "", # current or new IP address
|
||||
"LANGUAGE": "", # name of language used, e.g. English
|
||||
"LOCATION": "", # full English name of server country
|
||||
"MINIMUM AGE": "0", # set to 0 if not applicable
|
||||
"WEBSITE": "www.evennia.com",
|
||||
|
||||
# Categorisation
|
||||
|
||||
"FAMILY": "Custom", # evennia goes under 'Custom'
|
||||
"GENRE": "None", # Adult, Fantasy, Historical, Horror, Modern, None, or Science Fiction
|
||||
"GAMEPLAY": "", # Adventure, Educational, Hack and Slash, None,
|
||||
# Player versus Player, Player versus Environment,
|
||||
# Roleplaying, Simulation, Social or Strategy
|
||||
"STATUS": "Open Beta", # Alpha, Closed Beta, Open Beta, Live
|
||||
"GAMESYSTEM": "Custom", # D&D, d20 System, World of Darkness, etc. Use Custom if homebrew
|
||||
"INTERMUD": "IMC2", # evennia supports IMC2.
|
||||
"SUBGENRE": "None", # LASG, Medieval Fantasy, World War II, Frankenstein,
|
||||
# Cyberpunk, Dragonlance, etc. Or None if not available.
|
||||
|
||||
# World
|
||||
|
||||
"AREAS": "0",
|
||||
"HELPFILES": "0",
|
||||
"MOBILES": "0",
|
||||
"OBJECTS": "0",
|
||||
"ROOMS": "0", # use 0 if room-less
|
||||
"CLASSES": "0", # use 0 if class-less
|
||||
"LEVELS": "0", # use 0 if level-less
|
||||
"RACES": "0", # use 0 if race-less
|
||||
"SKILLS": "0", # use 0 if skill-less
|
||||
|
||||
# Protocols set to 1 or 0)
|
||||
|
||||
"ANSI": "1",
|
||||
"GMCP": "0",
|
||||
"MCCP": "0",
|
||||
"MCP": "0",
|
||||
"MSDP": "0",
|
||||
"MSP": "0",
|
||||
"MXP": "0",
|
||||
"PUEBLO": "0",
|
||||
"UTF-8": "1",
|
||||
"VT100": "0",
|
||||
"XTERM 256 COLORS": "0",
|
||||
|
||||
# Commercial set to 1 or 0)
|
||||
|
||||
"PAY TO PLAY": "0",
|
||||
"PAY FOR PERKS": "0",
|
||||
|
||||
# Hiring set to 1 or 0)
|
||||
|
||||
"HIRING BUILDERS": "0",
|
||||
"HIRING CODERS": "0",
|
||||
|
||||
# Extended variables
|
||||
|
||||
# World
|
||||
|
||||
"DBSIZE": "0",
|
||||
"EXITS": "0",
|
||||
"EXTRA DESCRIPTIONS": "0",
|
||||
"MUDPROGS": "0",
|
||||
"MUDTRIGS": "0",
|
||||
"RESETS": "0",
|
||||
|
||||
# Game (set to 1 or 0, or one of the given alternatives)
|
||||
|
||||
"ADULT MATERIAL": "0",
|
||||
"MULTICLASSING": "0",
|
||||
"NEWBIE FRIENDLY": "0",
|
||||
"PLAYER CITIES": "0",
|
||||
"PLAYER CLANS": "0",
|
||||
"PLAYER CRAFTING": "0",
|
||||
"PLAYER GUILDS": "0",
|
||||
"EQUIPMENT SYSTEM": "None", # "None", "Level", "Skill", "Both"
|
||||
"MULTIPLAYING": "None", # "None", "Restricted", "Full"
|
||||
"PLAYERKILLING": "None", # "None", "Restricted", "Full"
|
||||
"QUEST SYSTEM": "None", # "None", "Immortal Run", "Automated", "Integrated"
|
||||
"ROLEPLAYING": "None", # "None", "Accepted", "Encouraged", "Enforced"
|
||||
"TRAINING SYSTEM": "None", # "None", "Level", "Skill", "Both"
|
||||
"WORLD ORIGINALITY": "None", # "All Stock", "Mostly Stock", "Mostly Original", "All Original"
|
||||
|
||||
# Protocols (only change if you added/removed something manually)
|
||||
|
||||
"ATCP": "0",
|
||||
"MSDP": "0",
|
||||
"MCCP": "1",
|
||||
"SSL": "1",
|
||||
"UTF-8": "1",
|
||||
"ZMP": "0",
|
||||
"XTERM 256 COLORS": "0"}
|
||||
36
game_template/server/conf/oobfuncs.py
Normal file
36
game_template/server/conf/oobfuncs.py
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
"""
|
||||
OOB configuration.
|
||||
|
||||
This module should be included in (or replace) the
|
||||
default module set in settings.OOB_PLUGIN_MODULES
|
||||
|
||||
All functions defined in this module are made available
|
||||
to be called by the OOB handler.
|
||||
|
||||
See src/server/oob_msdp.py for more information.
|
||||
|
||||
function execution - the oob protocol can execute a function directly on
|
||||
the server. The available functions must be defined
|
||||
as global functions via settings.OOB_PLUGIN_MODULES.
|
||||
repeat func execution - the oob protocol can request a given function be
|
||||
executed repeatedly at a regular interval. This
|
||||
uses an internal script pool.
|
||||
tracking - the oob protocol can request Evennia to track changes to
|
||||
fields on objects, as well as changes in Attributes. This is
|
||||
done by dynamically adding tracker-objects on entities. The
|
||||
behaviour of those objects can be customized via
|
||||
settings.OOB_PLUGIN_MODULES.
|
||||
|
||||
oob functions have the following call signature:
|
||||
function(caller, session, *args, **kwargs)
|
||||
|
||||
oob trackers should inherit from the OOBTracker class in src/server.oob_msdp.py
|
||||
and implement a minimum of the same functionality.
|
||||
|
||||
a global function oob_error will be used as optional error management.
|
||||
|
||||
"""
|
||||
|
||||
# import the contents of the default msdp module
|
||||
from src.server.oob_cmds import *
|
||||
|
||||
24
game_template/server/conf/portal_services_plugin.py
Normal file
24
game_template/server/conf/portal_services_plugin.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
"""
|
||||
|
||||
This plugin module can define user-created services for the Server to start.
|
||||
|
||||
To use, copy this module up one level to game/gamesrc/conf/ and set
|
||||
settings.SERVER_SERVICES_PLUGIN_MODULE to point to this module.
|
||||
|
||||
This module must handle all imports and setups required to start a twisted
|
||||
services (see examples in src/server/server.py). It must also contain a
|
||||
function start_plugin_services(application). Evennia will call this function
|
||||
with the main Server application (so your services can be added to it). The
|
||||
function should not return anything. Plugin services are started last in
|
||||
the Server startup process.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def start_plugin_services(server):
|
||||
"""
|
||||
This hook is called by Evennia, last in the Server startup process.
|
||||
|
||||
server - a reference to the main server application.
|
||||
"""
|
||||
pass
|
||||
24
game_template/server/conf/server_services_plugin.py
Normal file
24
game_template/server/conf/server_services_plugin.py
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
"""
|
||||
|
||||
This plugin module can define user-created services for the Portal to start.
|
||||
|
||||
To use, copy this module up one level to game/gamesrc/conf/ and set
|
||||
settings.PORTAL_SERVICES_PLUGIN_MODULE to point to this module.
|
||||
|
||||
This module must handle all imports and setups required to start a twisted
|
||||
service (see examples in src/server/server.py). It must also contain a
|
||||
function start_plugin_services(application). Evennia will call this function
|
||||
with the main Portal application (so your services can be added to it). The
|
||||
function should not return anything. Plugin services are started last in
|
||||
the Portal startup process.
|
||||
|
||||
"""
|
||||
|
||||
|
||||
def start_plugin_services(portal):
|
||||
"""
|
||||
This hook is called by Evennia, last in the Portal startup process.
|
||||
|
||||
portal - a reference to the main portal application.
|
||||
"""
|
||||
pass
|
||||
Loading…
Add table
Add a link
Reference in a new issue