mirror of
https://github.com/evennia/evennia.git
synced 2026-04-05 07:27:17 +02:00
Refactor 1.0 docs with new toctree structure and inheritance
This commit is contained in:
parent
62477eac50
commit
628afe9367
142 changed files with 3967 additions and 3024 deletions
|
|
@ -1,262 +0,0 @@
|
|||
# Arxcode installing help
|
||||
|
||||
[Arx - After the Reckoning](https://play.arxmush.org/) is a big and very popular
|
||||
[Evennia](https://www.evennia.com)-based game. Arx is heavily roleplaying-centric, relying on game
|
||||
masters to drive the story. Technically it's maybe best described as "a MUSH, but with more coded
|
||||
systems". In August of 2018, the game's developer, Tehom, generously released the [source code of
|
||||
Arx on github](https://github.com/Arx-Game/arxcode). This is a treasure-trove for developers wanting
|
||||
to pick ideas or even get a starting game to build on.
|
||||
|
||||
> These instructions are based on the Arx-code released as of *Aug 12, 2018*. They will probably
|
||||
> not work 100% out of the box anymore. Report any differences and changes needed.
|
||||
|
||||
It's not too hard to run Arx from the sources (of course you'll start with an empty database) but
|
||||
since part of Arx has grown organically, it doesn't follow standard Evennia paradigms everywhere.
|
||||
This page covers one take on installing and setting things up while making your new Arx-based game
|
||||
better match with the vanilla Evennia install.
|
||||
|
||||
## Installing Evennia
|
||||
|
||||
Firstly, set aside a folder/directory on your drive for everything to follow.
|
||||
|
||||
You need to start by installing [Evennia](https://www.evennia.com) by following most of the
|
||||
[Git-installation instructions](../Setup/Installation-Git.md) for your OS. The difference is that you
|
||||
need to `git clone https://github.com/TehomCD/evennia.git` instead of Evennia's repo because Arx
|
||||
uses TehomCD's older Evennia 0.8 [fork](https://github.com/TehomCD/evennia), notably still using
|
||||
Python2. This detail is important if referring to newer Evennia documentation.
|
||||
|
||||
If you are new to Evennia it's *highly* recommended that you run through the normal install
|
||||
instructions in full - including initializing and starting a new empty game and connecting to it.
|
||||
That way you can be sure Evennia works correctly as a baseline.
|
||||
|
||||
After installing you should have a `virtualenv` running and you should have the following file
|
||||
structure in your set-aside folder:
|
||||
|
||||
```
|
||||
muddev/
|
||||
vienv/
|
||||
evennia/
|
||||
mygame/
|
||||
```
|
||||
|
||||
Here `mygame` is the empty game you created during the Evennia install, with `evennia --init`. Go to
|
||||
that and run `evennia stop` to make sure your empty game is not running. We'll instead let Evenna
|
||||
run Arx, so in principle you could erase `mygame` - but it could also be good to have a clean game
|
||||
to compare to.
|
||||
|
||||
## Installing Arxcode
|
||||
|
||||
`cd` to the root of your directory and clone the released source code from github:
|
||||
|
||||
git clone https://github.com/Arx-Game/arxcode.git myarx
|
||||
|
||||
A new folder `myarx` should appear next to the ones you already had. You could rename this to
|
||||
something else if you want.
|
||||
|
||||
`cd` into `myarx`. If you wonder about the structure of the game dir, you can
|
||||
[read more about it here](../Howto/Starting/Part1/Gamedir-Overview.md).
|
||||
|
||||
### Clean up settings
|
||||
|
||||
Arx has split evennia's normal settings into `base_settings.py` and `production_settings.py`. It
|
||||
also has its own solution for managing 'secret' parts of the settings file. We'll keep most of Arx
|
||||
way but we'll remove the secret-handling and replace it with the normal Evennia method.
|
||||
|
||||
`cd` into `myarx/server/conf/` and open the file `settings.py` in a text editor. The top part (within
|
||||
`"""..."""`) is just help text. Wipe everything underneath that and make it look like this instead
|
||||
(don't forget to save):
|
||||
|
||||
```
|
||||
from base_settings import *
|
||||
|
||||
TELNET_PORTS = [4000]
|
||||
SERVERNAME = "MyArx"
|
||||
GAME_SLOGAN = "The cool game"
|
||||
|
||||
try:
|
||||
from server.conf.secret_settings import *
|
||||
except ImportError:
|
||||
print("secret_settings.py file not found or failed to import.")
|
||||
```
|
||||
|
||||
> Note: Indents and capitalization matter in Python. Make indents 4 spaces (not tabs) for your own
|
||||
> sanity. If you want a starter on Python in Evennia, [you can look here](Python-basic-
|
||||
introduction).
|
||||
|
||||
This will import Arx' base settings and override them with the Evennia-default telnet port and give
|
||||
the game a name. The slogan changes the sub-text shown under the name of your game in the website
|
||||
header. You can tweak these to your own liking later.
|
||||
|
||||
Next, create a new, empty file `secret_settings.py` in the same location as the `settings.py` file.
|
||||
This can just contain the following:
|
||||
|
||||
```python
|
||||
SECRET_KEY = "sefsefiwwj3 jnwidufhjw4545_oifej whewiu hwejfpoiwjrpw09&4er43233fwefwfw"
|
||||
|
||||
```
|
||||
|
||||
Replace the long random string with random ASCII characters of your own. The secret key should not
|
||||
be shared.
|
||||
|
||||
Next, open `myarx/server/conf/base_settings.py` in your text editor. We want to remove/comment out
|
||||
all mentions of the `decouple` package, which Evennia doesn't use (we use `private_settings.py` to
|
||||
hide away settings that should not be shared).
|
||||
|
||||
Comment out `from decouple import config` by adding a `#` to the start of the line: `# from decouple
|
||||
import config`. Then search for `config(` in the file and comment out all lines where this is used.
|
||||
Many of these are specific to the server environment where the original Arx runs, so is not that
|
||||
relevant to us.
|
||||
|
||||
### Install Arx dependencies
|
||||
|
||||
Arx has some further dependencies beyond vanilla Evennia. Start by `cd`:ing to the root of your
|
||||
`myarx` folder.
|
||||
|
||||
> If you run *Linux* or *Mac*: Edit `myarx/requirements.txt` and comment out the line
|
||||
> `pypiwin32==219` - it's only needed on Windows and will give an error on other platforms.
|
||||
|
||||
Make sure your `virtualenv` is active, then run
|
||||
|
||||
pip install -r requirements.txt
|
||||
|
||||
The needed Python packages will be installed for you.
|
||||
|
||||
### Adding logs/ folder
|
||||
|
||||
The Arx repo does not contain the `myarx/server/logs/` folder Evennia expects for storing server
|
||||
logs. This is simple to add:
|
||||
|
||||
# linux/mac
|
||||
mkdir server/logs
|
||||
# windows
|
||||
mkdir server\logs
|
||||
|
||||
### Setting up the database and starting
|
||||
|
||||
From the `myarx` folder, run
|
||||
|
||||
evennia migrate
|
||||
|
||||
This creates the database and will step through all database migrations needed.
|
||||
|
||||
evennia start
|
||||
|
||||
If all goes well Evennia will now start up, running Arx! You can connect to it on `localhost` (or
|
||||
`127.0.0.1` if your platform doesn't alias `localhost`), port `4000` using a Telnet client.
|
||||
Alternatively, you can use your web browser to browse to `http://localhost:4001` to see the game's
|
||||
website and get to the web client.
|
||||
|
||||
When you log in you'll get the standard Evennia greeting (since the database is empty), but you can
|
||||
try `help` to see that it's indeed Arx that is running.
|
||||
|
||||
### Additional Setup Steps
|
||||
|
||||
The first time you start Evennia after creating the database with the `evennia migrate` step above,
|
||||
it should create a few starting objects for you - your superuser account, which it will prompt you
|
||||
to enter, a starting room (Limbo), and a character object for you. If for some reason this does not
|
||||
occur, you may have to follow the steps below. For the first time Superuser login you may have to
|
||||
run steps 7-8 and 10 to create and connect to your in-came Character.
|
||||
|
||||
1. Login to the game website with your Superuser account.
|
||||
2. Press the `Admin` button to get into the (Django-) Admin Interface.
|
||||
3. Navigate to the `Accounts` section.
|
||||
4. Add a new Account named for the new staffer. Use a place holder password and dummy e-mail
|
||||
address.
|
||||
5. Flag account as `Staff` and apply the `Admin` permission group (This assumes you have already set
|
||||
up an Admin Group in Django).
|
||||
6. Add Tags named `player` and `developer`.
|
||||
7. Log into the game using the web client (or a third-party telnet client) using your superuser
|
||||
account. Move to where you want the new staffer character to appear.
|
||||
8. In the game client, run `@create/drop <staffername>:typeclasses.characters.Character`, where
|
||||
`<staffername>` is usually the same name you used for the Staffer account you created in the
|
||||
Admin earlier (if you are creating a Character for your superuser, use your superuser account
|
||||
name).
|
||||
This creates a new in-game Character and places it in your current location.
|
||||
9. Have the new Admin player log into the game.
|
||||
10. Have the new Admin puppet the character with `@ic StafferName`.
|
||||
11. Have the new Admin change their password - `@password <old password> = <new password>`.
|
||||
|
||||
Now that you have a Character and an Account object, there's a few additional things you may need to
|
||||
do in order for some commands to function properly. You can either execute these as in-game commands
|
||||
while `ic` (controlling your character object).
|
||||
|
||||
1. `py from web.character.models import RosterEntry;RosterEntry.objects.create(player=self.player,
|
||||
character=self)`
|
||||
2. `py from world.dominion.models import PlayerOrNpc, AssetOwner;dompc =
|
||||
PlayerOrNpc.objects.create(player = self.player);AssetOwner.objects.create(player=dompc)`
|
||||
|
||||
Those steps will give you a 'RosterEntry', 'PlayerOrNpc', and 'AssetOwner' objects. RosterEntry
|
||||
explicitly connects a character and account object together, even while offline, and contains
|
||||
additional information about a character's current presence in game (such as which 'roster' they're
|
||||
in, if you choose to use an active roster of characters). PlayerOrNpc are more character extensions,
|
||||
as well as support for npcs with no in-game presence and just represented by a name which can be
|
||||
offscreen members of a character's family. It also allows for membership in Organizations.
|
||||
AssetOwner holds information about a character or organization's money and resources.
|
||||
|
||||
## Alternate Windows install guide
|
||||
|
||||
_Contributed by Pax_
|
||||
|
||||
If for some reason you cannot use the Windows Subsystem for Linux (which would use instructions
|
||||
identical to the ones above), it's possible to get Evennia/Arx running under Anaconda for Windows. The
|
||||
process is a little bit trickier.
|
||||
|
||||
Make sure you have:
|
||||
* Git for Windows https://git-scm.com/download/win
|
||||
* Anaconda for Windows https://www.anaconda.com/distribution/
|
||||
* VC++ Compiler for Python 2.7 https://aka.ms/vcpython27
|
||||
|
||||
conda update conda
|
||||
conda create -n arx python=2.7
|
||||
source activate arx
|
||||
|
||||
Set up a convenient repository place for things.
|
||||
|
||||
cd ~
|
||||
mkdir Source
|
||||
cd Source
|
||||
mkdir Arx
|
||||
cd Arx
|
||||
|
||||
Replace the SSH git clone links below with your own github forks.
|
||||
If you don't plan to change Evennia at all, you can use the
|
||||
evennia/evennia.git repo instead of a forked one.
|
||||
|
||||
git clone git@github.com:<youruser>/evennia.git
|
||||
git clone git@github.com:<youruser>/arxcode.git
|
||||
|
||||
Evennia is a package itself, so we want to install it and all of its
|
||||
prerequisites, after switching to the appropriately-tagged branch for
|
||||
Arxcode.
|
||||
|
||||
cd evennia
|
||||
git checkout tags/v0.7 -b arx-master
|
||||
pip install -e .
|
||||
|
||||
Arx has some dependencies of its own, so now we'll go install them
|
||||
As it is not a package, we'll use the normal requirements file.
|
||||
|
||||
cd ../arxcode
|
||||
pip install -r requirements.txt
|
||||
|
||||
The git repo doesn't include the empty log directory and Evennia is unhappy if you
|
||||
don't have it, so while still in the arxcode directory...
|
||||
|
||||
mkdir server/logs
|
||||
|
||||
Now hit https://github.com/evennia/evennia/wiki/Arxcode-installing-help and
|
||||
change the setup stuff as in the 'Clean up settings' section.
|
||||
|
||||
Then we will create our default database...
|
||||
|
||||
../evennia/bin/windows/evennia.bat migrate
|
||||
|
||||
...and do the first run. You need winpty because Windows does not have a TTY/PTY
|
||||
by default, and so the Python console input commands (used for prompts on first
|
||||
run) will fail and you will end up in an unhappy place. Future runs, you should
|
||||
not need winpty.
|
||||
|
||||
winpty ../evennia/bin/windows/evennia.bat start
|
||||
|
||||
Once this is done, you should have your Evennia server running Arxcode up
|
||||
on localhost at port 4000, and the webserver at http://localhost:4001/
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -29,7 +29,7 @@ of storage space on S3, making the current total cost of running this plugin
|
|||
them to many users, caveat emptor on a total cost of ownership - check AWS's
|
||||
pricing structure.
|
||||
|
||||
# Technical details
|
||||
## Technical details
|
||||
|
||||
This is a drop-in replacement that operates deeper than all of Evennia's code,
|
||||
so your existing code does not need to change at all to support it.
|
||||
|
|
@ -52,9 +52,9 @@ other contributions or custom code. Simply work how you would normally, Django
|
|||
will handle the rest.
|
||||
|
||||
|
||||
# Installation
|
||||
## Installation
|
||||
|
||||
## Set up AWS account
|
||||
### Set up AWS account
|
||||
|
||||
If you don't have an AWS S3 account, you should create one at
|
||||
https://aws.amazon.com/ - documentation for AWS S3 is available at:
|
||||
|
|
@ -161,7 +161,7 @@ checking the source of any image (for instance, the logo). It should read
|
|||
`https://your-bucket-name.s3.amazonaws.com/path/to/file`. If so, the system
|
||||
works and you shouldn't need to do anything else.
|
||||
|
||||
# Uninstallation
|
||||
## Uninstallation
|
||||
|
||||
If you haven't made changes to your static files (uploaded images, etc),
|
||||
you can simply remove the lines you added to `secret_settings.py`. If you
|
||||
|
|
@ -170,7 +170,7 @@ your files from your S3 bucket and put them in /static/ in the evennia
|
|||
directory.
|
||||
|
||||
|
||||
# License
|
||||
## License
|
||||
|
||||
Draws heavily from code provided by django-storages, for which these contributors
|
||||
are authors:
|
||||
|
|
@ -221,7 +221,7 @@ Andrew Perry (Bug fixes in SFTPStorage)
|
|||
The repurposed code from django-storages is released under BSD 3-Clause,
|
||||
same as Evennia, so for detailed licensing, refer to the Evennia license.
|
||||
|
||||
# Versioning
|
||||
## Versioning
|
||||
|
||||
This is confirmed to work for Django 2 and Django 3.
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,9 +1,9 @@
|
|||
# Color markups
|
||||
# Additional Color markups
|
||||
|
||||
Contrib by Griatch, 2017
|
||||
|
||||
Additional color markup styles for Evennia (extending or replacing the default
|
||||
`|r`, `|234`). Adds support for MUSH-style (`%cr`, `%c123`) and/or legacy-Evennia
|
||||
`|r`, `|234`). Adds support for MUSH-style (`%cr`, `%c123`) and/or legacy-Evennia
|
||||
(`{r`, `{123`).
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
Contribution by owllex, 2021
|
||||
|
||||
Cooldowns are used to model rate-limited actions, like how often a
|
||||
character can perform a given action; until a certain time has passed their
|
||||
command can not be used again. This contrib provides a simple cooldown
|
||||
character can perform a given action; until a certain time has passed their
|
||||
command can not be used again. This contrib provides a simple cooldown
|
||||
handler that can be attached to any typeclass. A cooldown is a lightweight persistent
|
||||
asynchronous timer that you can query to see if a certain time has yet passed.
|
||||
|
||||
|
|
@ -38,7 +38,7 @@ def cooldowns(self):
|
|||
return CooldownHandler(self, db_attribute="cooldowns")
|
||||
```
|
||||
|
||||
# Example
|
||||
## Example
|
||||
|
||||
Assuming you've installed cooldowns on your Character typeclasses, you can use a
|
||||
cooldown to limit how often you can perform a command. The following code
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Contrib by vlgeoff, 2017 - based on Griatch's core original
|
||||
|
||||
This reimplements the `evennia.utils.gametime` module but with a _custom_
|
||||
calendar (unusual number of days per week/month/year etc) for your game world.
|
||||
calendar (unusual number of days per week/month/year etc) for your game world.
|
||||
Like the original, it allows for scheduling events to happen at given
|
||||
in-game times, but now taking this custom calendar into account.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
# Dice
|
||||
# Dice roller
|
||||
|
||||
Contribution by Griatch, 2012
|
||||
|
||||
A dice roller for any number and side of dice. Adds in-game dice rolling
|
||||
(`roll 2d10 + 1`) as well as conditionals (roll under/over/equal to a target)
|
||||
and functions for rolling dice in code. Command also supports hidden or secret
|
||||
A dice roller for any number and side of dice. Adds in-game dice rolling
|
||||
(`roll 2d10 + 1`) as well as conditionals (roll under/over/equal to a target)
|
||||
and functions for rolling dice in code. Command also supports hidden or secret
|
||||
rolls for use by a human game master.
|
||||
|
||||
|
||||
# Installation:
|
||||
## Installation:
|
||||
|
||||
|
||||
Add the `CmdDice` command from this module to your character's cmdset
|
||||
|
|
@ -28,7 +28,7 @@ class CharacterCmdSet(default_cmds.CharacterCmdSet):
|
|||
|
||||
```
|
||||
|
||||
# Usage:
|
||||
## Usage:
|
||||
|
||||
> roll 1d100 + 2
|
||||
> roll 1d20
|
||||
|
|
@ -53,7 +53,7 @@ was.
|
|||
|
||||
Is a hidden roll that does not inform the room it happened.
|
||||
|
||||
## Rolling dice from code
|
||||
### Rolling dice from code
|
||||
|
||||
To roll dice in code, use the `roll` function from this module:
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
Contrib by Griatch, 2012
|
||||
|
||||
This is a variant of the login system that asks for an email-address
|
||||
instead of a username to login. Note that it does not verify the email,
|
||||
instead of a username to login. Note that it does not verify the email,
|
||||
it just uses it as the identifier rather than a username.
|
||||
|
||||
This used to be the default Evennia login before replacing it with a
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
Contribution by Griatch, 2019
|
||||
|
||||
A full engine for creating multiplayer escape-rooms in Evennia. Allows players to
|
||||
spawn and join puzzle rooms that track their state independently. Any number of players
|
||||
can join to solve a room together. This is the engine created for 'EvscapeRoom', which won
|
||||
the MUD Coders Guild "One Room" Game Jam in April-May, 2019. The contrib has no game
|
||||
A full engine for creating multiplayer escape-rooms in Evennia. Allows players to
|
||||
spawn and join puzzle rooms that track their state independently. Any number of players
|
||||
can join to solve a room together. This is the engine created for 'EvscapeRoom', which won
|
||||
the MUD Coders Guild "One Room" Game Jam in April-May, 2019. The contrib has no game
|
||||
content but contains the utilities and base classes and an empty example room.
|
||||
|
||||
The original code for the contest is found at
|
||||
|
|
@ -16,13 +16,13 @@ instead. A copy of the full game can also be played on the Evennia demo server
|
|||
at https://demo.evennia.com - just connect to the server and write `evscaperoom`
|
||||
in the first room to start!
|
||||
|
||||
# Introduction
|
||||
## Introduction
|
||||
|
||||
Evscaperoom is, as it sounds, an escaperoom in text form. You start locked into
|
||||
a room and have to figure out how to get out. This engine contains everything
|
||||
needed to make a fully-featured puzzle game of this type!
|
||||
|
||||
# Installation
|
||||
## Installation
|
||||
|
||||
The Evscaperoom is installed by adding the `evscaperoom` command to your
|
||||
character cmdset. When you run that command in-game you're ready to play!
|
||||
|
|
@ -44,7 +44,7 @@ class CharacterCmdSet(...):
|
|||
Reload the server and the `evscaperoom` command will be available. The contrib
|
||||
comes with a small (very small) escape room as an example.
|
||||
|
||||
# Making your own evscaperoom
|
||||
## Making your own evscaperoom
|
||||
|
||||
To do this, you need to make your own states. First make sure you can play the
|
||||
simple example room installed above.
|
||||
|
|
@ -63,7 +63,7 @@ the following to your `mygame/server/conf/settings.py` file:
|
|||
Reload and the example evscaperoom should still work, but you can now modify and
|
||||
expand it from your game dir!
|
||||
|
||||
## Other useful settings
|
||||
### Other useful settings
|
||||
|
||||
There are a few other settings that may be useful:
|
||||
|
||||
|
|
@ -74,7 +74,7 @@ There are a few other settings that may be useful:
|
|||
the room without an argument. The original is found at the top of
|
||||
`evennia/contrib/full_systems/evscaperoom/commands.py`.
|
||||
|
||||
# Playing the game
|
||||
## Playing the game
|
||||
|
||||
You should start by `look`ing around and at objects.
|
||||
|
||||
|
|
@ -87,7 +87,7 @@ focus.
|
|||
|
||||
There is also a full hint system.
|
||||
|
||||
# Technical
|
||||
## Technical
|
||||
|
||||
When connecting to the game, the user has the option to join an existing room
|
||||
(which may already be in some state of ongoing progress), or may create a fresh
|
||||
|
|
@ -102,7 +102,7 @@ the logic and (in principle) inject new puzzles later.
|
|||
|
||||
Once no players remain in the room, the room and its state will be wiped.
|
||||
|
||||
# Design Philosophy
|
||||
## Design Philosophy
|
||||
|
||||
Some basic premises inspired the design of this.
|
||||
|
||||
|
|
|
|||
|
|
@ -17,10 +17,39 @@ An object can have the following genders:
|
|||
## Installation
|
||||
|
||||
Import and add the `SetGender` command to your default cmdset in
|
||||
`mygame/commands/default_cmdset.py`
|
||||
`mygame/commands/default_cmdset.py`:
|
||||
|
||||
```python
|
||||
# mygame/commands/default_cmdsets.py
|
||||
|
||||
# ...
|
||||
|
||||
from evennia.contrib.game_systems.gendersub import SetGender # <---
|
||||
|
||||
# ...
|
||||
|
||||
class CharacterCmdSet(default_cmds.CharacterCmdSet):
|
||||
# ...
|
||||
def at_cmdset_creation(self):
|
||||
# ...
|
||||
self.add(SetGender()) # <---
|
||||
```
|
||||
|
||||
Make your `Character` inherit from `GenderCharacter`.
|
||||
|
||||
```python
|
||||
# mygame/typeclasses/characters.py
|
||||
|
||||
# ...
|
||||
|
||||
from evennia.contrib.game_systems.gendersub import GenderCharacter # <---
|
||||
|
||||
class Character(GenderCharacter): # <---
|
||||
# ...
|
||||
```
|
||||
|
||||
Reload the server (`evennia reload` or `reload` from inside the game).
|
||||
|
||||
|
||||
## Usage
|
||||
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
Contribution by Tim Ashley Jenkins, 2017
|
||||
|
||||
The function provided in this module lets you easily display visual
|
||||
bars or meters as a colorful bar instead of just a number. A "health bar"
|
||||
is merely the most obvious use for this, but the bar is highly customizable
|
||||
bars or meters as a colorful bar instead of just a number. A "health bar"
|
||||
is merely the most obvious use for this, but the bar is highly customizable
|
||||
and can be used for any sort of appropriate data besides player health.
|
||||
|
||||
Today's players may be more used to seeing statistics like health,
|
||||
|
|
|
|||
|
|
@ -895,6 +895,15 @@ The in-game Python system will still be accessible (you will have access to the
|
|||
but no event will be called automatically.
|
||||
|
||||
|
||||
```{toctree}
|
||||
:hidden:
|
||||
|
||||
Contrib-Ingame-Python-Tutorial-Dialogue
|
||||
Contrib-Ingame-Python-Tutorial-Elevator
|
||||
|
||||
```
|
||||
|
||||
|
||||
----
|
||||
|
||||
<small>This document page is generated from `evennia/contrib/base_systems/ingame_python/README.md`. Changes to this
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ Contribution by grungies1138 2016
|
|||
|
||||
A simple Brandymail style mail system that uses the `Msg` class from Evennia
|
||||
Core. It has two Commands for either sending mails between Accounts (out of game)
|
||||
or between Characters (in-game). The two types of mails can be used together or
|
||||
or between Characters (in-game). The two types of mails can be used together or
|
||||
on their own.
|
||||
|
||||
- `CmdMail` - this should sit on the Account cmdset and makes the `mail` command
|
||||
|
|
@ -21,27 +21,28 @@ Install one or both of the following (see above):
|
|||
|
||||
- CmdMail (IC + OOC mail, sent between players)
|
||||
|
||||
```python
|
||||
# mygame/commands/default_cmds.py
|
||||
|
||||
from evennia.contrib.game_systems import mail
|
||||
|
||||
# in AccountCmdSet.at_cmdset_creation:
|
||||
self.add(mail.CmdMail())
|
||||
|
||||
```
|
||||
- CmdMailCharacter (optional, IC only mail, sent between characters)
|
||||
|
||||
```python
|
||||
# mygame/commands/default_cmds.py
|
||||
|
||||
from evennia.contrib.game_systems import mail
|
||||
|
||||
# in CharacterCmdSet.at_cmdset_creation:
|
||||
self.add(mail.CmdMailCharacter())
|
||||
|
||||
```
|
||||
Once installed, use `help mail` in game for help with the mail command. Use
|
||||
ic/ooc to switch in and out of IC/OOC modes.
|
||||
|
||||
|
||||
|
||||
----
|
||||
|
||||
<small>This document page is generated from `evennia/contrib/game_systems/mail/README.md`. Changes to this
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ references to rooms previously created is passed to the build commands.
|
|||
You then call the command in-game using the path to the MAP and MAP_LEGEND vars
|
||||
The path you provide is relative to the evennia or mygame folder.
|
||||
|
||||
# Installation
|
||||
## Installation
|
||||
|
||||
Use by importing and including the command in your default_cmdsets module.
|
||||
For example:
|
||||
|
|
@ -68,14 +68,14 @@ For example:
|
|||
```
|
||||
|
||||
|
||||
# Usage:
|
||||
## Usage:
|
||||
|
||||
mapbuilder[/switch] <path.to.file.MAPNAME> <path.to.file.MAP_LEGEND>
|
||||
|
||||
one - execute build instructions once without automatic exit creation.
|
||||
two - execute build instructions twice without automatic exit creation.
|
||||
|
||||
# Examples
|
||||
## Examples
|
||||
|
||||
mapbuilder world.gamemap.MAP world.maplegend.MAP_LEGEND
|
||||
mapbuilder evennia.contrib.grid.mapbuilder.EXAMPLE1_MAP EXAMPLE1_LEGEND
|
||||
|
|
@ -86,7 +86,7 @@ Below are two examples showcasing the use of automatic exit generation and
|
|||
custom exit generation. Whilst located, and can be used, from this module for
|
||||
convenience The below example code should be in mymap.py in mygame/world.
|
||||
|
||||
## Example One
|
||||
### Example One
|
||||
|
||||
```python
|
||||
|
||||
|
|
@ -190,7 +190,7 @@ EXAMPLE1_LEGEND = {
|
|||
}
|
||||
```
|
||||
|
||||
## Example Two
|
||||
### Example Two
|
||||
|
||||
```python
|
||||
# @mapbuilder/two evennia.contrib.grid.mapbuilder.EXAMPLE2_MAP EXAMPLE2_LEGEND
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
# Unix-like Command style parent
|
||||
# Unix-like Command style
|
||||
|
||||
Contribution by Vincent Le Geoff (vlgeoff), 2017
|
||||
|
||||
This module contains a command class with an alternate syntax parser implementing
|
||||
Unix-style command syntax in-game. This means `--options`, positional arguments
|
||||
This module contains a command class with an alternate syntax parser implementing
|
||||
Unix-style command syntax in-game. This means `--options`, positional arguments
|
||||
and stuff like `-n 10`. It might not the best syntax for the average player
|
||||
but can be really useful for builders when they need to have a single command do
|
||||
many things with many options. It uses the `ArgumentParser` from Python's standard
|
||||
|
|
|
|||
|
|
@ -25,6 +25,20 @@ _This category contains systems that are not necessarily tied to a specific
|
|||
in-game mechanic but is useful for the game as a whole. Examples include
|
||||
login systems, new command syntaxes, and build helpers._
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 1
|
||||
|
||||
Contrib-AWSStorage.md
|
||||
Contrib-Building-Menu.md
|
||||
Contrib-Color-Markups.md
|
||||
Contrib-Custom-Gametime.md
|
||||
Contrib-Email-Login.md
|
||||
Contrib-Ingame-Python.md
|
||||
Contrib-Menu-Login.md
|
||||
Contrib-Mux-Comms-Cmds.md
|
||||
Contrib-Unixcommand.md
|
||||
```
|
||||
|
||||
|
||||
### Contrib: `awsstorage`
|
||||
|
||||
|
|
@ -58,7 +72,7 @@ that will edit any default object, offering to change its key and description.
|
|||
_Contrib by Griatch, 2017_
|
||||
|
||||
Additional color markup styles for Evennia (extending or replacing the default
|
||||
`|r`, `|234`). Adds support for MUSH-style (`%cr`, `%c123`) and/or legacy-Evennia
|
||||
`|r`, `|234`). Adds support for MUSH-style (`%cr`, `%c123`) and/or legacy-Evennia
|
||||
(`{r`, `{123`).
|
||||
|
||||
[Read the documentation](./Contrib-Color-Markups.md) - [Browse the Code](evennia.contrib.base_systems.color_markups)
|
||||
|
|
@ -70,7 +84,7 @@ Additional color markup styles for Evennia (extending or replacing the default
|
|||
_Contrib by vlgeoff, 2017 - based on Griatch's core original_
|
||||
|
||||
This reimplements the `evennia.utils.gametime` module but with a _custom_
|
||||
calendar (unusual number of days per week/month/year etc) for your game world.
|
||||
calendar (unusual number of days per week/month/year etc) for your game world.
|
||||
Like the original, it allows for scheduling events to happen at given
|
||||
in-game times, but now taking this custom calendar into account.
|
||||
|
||||
|
|
@ -83,7 +97,7 @@ in-game times, but now taking this custom calendar into account.
|
|||
_Contrib by Griatch, 2012_
|
||||
|
||||
This is a variant of the login system that asks for an email-address
|
||||
instead of a username to login. Note that it does not verify the email,
|
||||
instead of a username to login. Note that it does not verify the email,
|
||||
it just uses it as the identifier rather than a username.
|
||||
|
||||
[Read the documentation](./Contrib-Email-Login.md) - [Browse the Code](evennia.contrib.base_systems.email_login)
|
||||
|
|
@ -137,8 +151,8 @@ main `channel` command is still called under the hood.
|
|||
|
||||
_Contribution by Vincent Le Geoff (vlgeoff), 2017_
|
||||
|
||||
This module contains a command class with an alternate syntax parser implementing
|
||||
Unix-style command syntax in-game. This means `--options`, positional arguments
|
||||
This module contains a command class with an alternate syntax parser implementing
|
||||
Unix-style command syntax in-game. This means `--options`, positional arguments
|
||||
and stuff like `-n 10`. It might not the best syntax for the average player
|
||||
but can be really useful for builders when they need to have a single command do
|
||||
many things with many options. It uses the `ArgumentParser` from Python's standard
|
||||
|
|
@ -156,15 +170,21 @@ library under the hood.
|
|||
_This category contains 'complete' game engines that can be used directly
|
||||
to start creating content without no further additions (unless you want to)._
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 1
|
||||
|
||||
Contrib-Evscaperoom.md
|
||||
```
|
||||
|
||||
|
||||
### Contrib: `evscaperoom`
|
||||
|
||||
_Contribution by Griatch, 2019_
|
||||
|
||||
A full engine for creating multiplayer escape-rooms in Evennia. Allows players to
|
||||
spawn and join puzzle rooms that track their state independently. Any number of players
|
||||
can join to solve a room together. This is the engine created for 'EvscapeRoom', which won
|
||||
the MUD Coders Guild "One Room" Game Jam in April-May, 2019. The contrib has no game
|
||||
A full engine for creating multiplayer escape-rooms in Evennia. Allows players to
|
||||
spawn and join puzzle rooms that track their state independently. Any number of players
|
||||
can join to solve a room together. This is the engine created for 'EvscapeRoom', which won
|
||||
the MUD Coders Guild "One Room" Game Jam in April-May, 2019. The contrib has no game
|
||||
content but contains the utilities and base classes and an empty example room.
|
||||
|
||||
[Read the documentation](./Contrib-Evscaperoom.md) - [Browse the Code](evennia.contrib.full_systems.evscaperoom)
|
||||
|
|
@ -181,6 +201,20 @@ crafting, mail, combat and more. Each system is meant to be adopted
|
|||
piecemeal and adopted for your game. This does not include
|
||||
roleplaying-specific systems, those are found in the `rpg` folder._
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 1
|
||||
|
||||
Contrib-Barter.md
|
||||
Contrib-Clothing.md
|
||||
Contrib-Cooldowns.md
|
||||
Contrib-Crafting.md
|
||||
Contrib-Gendersub.md
|
||||
Contrib-Mail.md
|
||||
Contrib-Multidescer.md
|
||||
Contrib-Puzzles.md
|
||||
Contrib-Turnbattle.md
|
||||
```
|
||||
|
||||
|
||||
### Contrib: `barter`
|
||||
|
||||
|
|
@ -214,8 +248,8 @@ look of these clothes are appended to the character's description when worn.
|
|||
_Contribution by owllex, 2021_
|
||||
|
||||
Cooldowns are used to model rate-limited actions, like how often a
|
||||
character can perform a given action; until a certain time has passed their
|
||||
command can not be used again. This contrib provides a simple cooldown
|
||||
character can perform a given action; until a certain time has passed their
|
||||
command can not be used again. This contrib provides a simple cooldown
|
||||
handler that can be attached to any typeclass. A cooldown is a lightweight persistent
|
||||
asynchronous timer that you can query to see if a certain time has yet passed.
|
||||
|
||||
|
|
@ -255,7 +289,7 @@ _Contribution by grungies1138 2016_
|
|||
|
||||
A simple Brandymail style mail system that uses the `Msg` class from Evennia
|
||||
Core. It has two Commands for either sending mails between Accounts (out of game)
|
||||
or between Characters (in-game). The two types of mails can be used together or
|
||||
or between Characters (in-game). The two types of mails can be used together or
|
||||
on their own.
|
||||
|
||||
[Read the documentation](./Contrib-Mail.md) - [Browse the Code](evennia.contrib.game_systems.mail)
|
||||
|
|
@ -314,6 +348,17 @@ the participants until the fight ends.
|
|||
_Systems related to the game world's topology and structure. This has
|
||||
contribs related to rooms, exits and map building._
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 1
|
||||
|
||||
Contrib-Extended-Room.md
|
||||
Contrib-Mapbuilder.md
|
||||
Contrib-Simpledoor.md
|
||||
Contrib-Slow-Exit.md
|
||||
Contrib-Wilderness.md
|
||||
Contrib-XYZGrid.md
|
||||
```
|
||||
|
||||
|
||||
### Contrib: `extended_room`
|
||||
|
||||
|
|
@ -399,14 +444,23 @@ current location (useful for displaying the grid as an in-game, updating map).
|
|||
_These are systems specifically related to roleplaying
|
||||
and rule implementation like character traits, dice rolling and emoting._
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 1
|
||||
|
||||
Contrib-Dice.md
|
||||
Contrib-Health-Bar.md
|
||||
Contrib-RPSystem.md
|
||||
Contrib-Traits.md
|
||||
```
|
||||
|
||||
|
||||
### Contrib: `dice`
|
||||
|
||||
_Contribution by Griatch, 2012_
|
||||
|
||||
A dice roller for any number and side of dice. Adds in-game dice rolling
|
||||
(`roll 2d10 + 1`) as well as conditionals (roll under/over/equal to a target)
|
||||
and functions for rolling dice in code. Command also supports hidden or secret
|
||||
A dice roller for any number and side of dice. Adds in-game dice rolling
|
||||
(`roll 2d10 + 1`) as well as conditionals (roll under/over/equal to a target)
|
||||
and functions for rolling dice in code. Command also supports hidden or secret
|
||||
rolls for use by a human game master.
|
||||
|
||||
[Read the documentation](./Contrib-Dice.md) - [Browse the Code](evennia.contrib.rpg.dice)
|
||||
|
|
@ -418,8 +472,8 @@ rolls for use by a human game master.
|
|||
_Contribution by Tim Ashley Jenkins, 2017_
|
||||
|
||||
The function provided in this module lets you easily display visual
|
||||
bars or meters as a colorful bar instead of just a number. A "health bar"
|
||||
is merely the most obvious use for this, but the bar is highly customizable
|
||||
bars or meters as a colorful bar instead of just a number. A "health bar"
|
||||
is merely the most obvious use for this, but the bar is highly customizable
|
||||
and can be used for any sort of appropriate data besides player health.
|
||||
|
||||
[Read the documentation](./Contrib-Health-Bar.md) - [Browse the Code](evennia.contrib.rpg.health_bar)
|
||||
|
|
@ -467,6 +521,17 @@ _Helper resources specifically meant to teach a development concept or
|
|||
to exemplify an Evennia system. Any extra resources tied to documentation
|
||||
tutorials are found here. Also the home of the Tutorial World demo adventure._
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 1
|
||||
|
||||
Contrib-Batchprocessor.md
|
||||
Contrib-Bodyfunctions.md
|
||||
Contrib-Mirror.md
|
||||
Contrib-Red-Button.md
|
||||
Contrib-Talking-Npc.md
|
||||
Contrib-Tutorial-World.md
|
||||
```
|
||||
|
||||
|
||||
### Contrib: `batchprocessor`
|
||||
|
||||
|
|
@ -547,6 +612,15 @@ is a great way to start learning the system.
|
|||
_Miscellaneous, optional tools for manipulating text, auditing connections
|
||||
and more._
|
||||
|
||||
```{toctree}
|
||||
:maxdepth: 1
|
||||
|
||||
Contrib-Auditing.md
|
||||
Contrib-Fieldfill.md
|
||||
Contrib-Random-String-Generator.md
|
||||
Contrib-Tree-Select.md
|
||||
```
|
||||
|
||||
|
||||
### Contrib: `auditing`
|
||||
|
||||
|
|
@ -603,51 +677,6 @@ instance from a multi-line string passed to one function.
|
|||
|
||||
|
||||
|
||||
```{toctree}
|
||||
|
||||
Contribs/Contrib-AWSStorage.md
|
||||
Contribs/Contrib-Building-Menu.md
|
||||
Contribs/Contrib-Color-Markups.md
|
||||
Contribs/Contrib-Custom-Gametime.md
|
||||
Contribs/Contrib-Email-Login.md
|
||||
Contribs/Contrib-Ingame-Python.md
|
||||
Contribs/Contrib-Menu-Login.md
|
||||
Contribs/Contrib-Mux-Comms-Cmds.md
|
||||
Contribs/Contrib-Unixcommand.md
|
||||
Contribs/Contrib-Evscaperoom.md
|
||||
Contribs/Contrib-Barter.md
|
||||
Contribs/Contrib-Clothing.md
|
||||
Contribs/Contrib-Cooldowns.md
|
||||
Contribs/Contrib-Crafting.md
|
||||
Contribs/Contrib-Gendersub.md
|
||||
Contribs/Contrib-Mail.md
|
||||
Contribs/Contrib-Multidescer.md
|
||||
Contribs/Contrib-Puzzles.md
|
||||
Contribs/Contrib-Turnbattle.md
|
||||
Contribs/Contrib-Extended-Room.md
|
||||
Contribs/Contrib-Mapbuilder.md
|
||||
Contribs/Contrib-Simpledoor.md
|
||||
Contribs/Contrib-Slow-Exit.md
|
||||
Contribs/Contrib-Wilderness.md
|
||||
Contribs/Contrib-XYZGrid.md
|
||||
Contribs/Contrib-Dice.md
|
||||
Contribs/Contrib-Health-Bar.md
|
||||
Contribs/Contrib-RPSystem.md
|
||||
Contribs/Contrib-Traits.md
|
||||
Contribs/Contrib-Batchprocessor.md
|
||||
Contribs/Contrib-Bodyfunctions.md
|
||||
Contribs/Contrib-Mirror.md
|
||||
Contribs/Contrib-Red-Button.md
|
||||
Contribs/Contrib-Talking-Npc.md
|
||||
Contribs/Contrib-Tutorial-World.md
|
||||
Contribs/Contrib-Auditing.md
|
||||
Contribs/Contrib-Fieldfill.md
|
||||
Contribs/Contrib-Random-String-Generator.md
|
||||
Contribs/Contrib-Tree-Select.md
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
----
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue