mirror of
https://github.com/evennia/evennia.git
synced 2026-04-05 07:27:17 +02:00
Updated HTML docs.
This commit is contained in:
parent
a7083df1d5
commit
232a9cd66b
39 changed files with 694 additions and 257 deletions
|
|
@ -1,4 +1,4 @@
|
|||
# Sphinx build info version 1
|
||||
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
|
||||
config: 8e33a11beade792dd1e48b9af816b38d
|
||||
config: 872379c1f573c9909bb5aa85115f1014
|
||||
tags: 645f666f9bcd5a90fca523b33c5a78b7
|
||||
|
|
|
|||
237
docs/1.0-dev/Evennia-In-Pictures.html
Normal file
237
docs/1.0-dev/Evennia-In-Pictures.html
Normal file
|
|
@ -0,0 +1,237 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Evennia in pictures — Evennia 1.0-dev documentation</title>
|
||||
<link rel="stylesheet" href="_static/nature.css" type="text/css" />
|
||||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||||
<script id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
|
||||
<script src="_static/jquery.js"></script>
|
||||
<script src="_static/underscore.js"></script>
|
||||
<script src="_static/doctools.js"></script>
|
||||
<script src="_static/language_data.js"></script>
|
||||
<link rel="shortcut icon" href="_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
<link rel="next" title="Start Stop Reload" href="Setup/Running-Evennia.html" />
|
||||
<link rel="prev" title="Evennia Introduction" href="Evennia-Introduction.html" />
|
||||
</head><body>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
accesskey="I">index</a></li>
|
||||
<li class="right" >
|
||||
<a href="py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="Setup/Running-Evennia.html" title="Start Stop Reload"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="Evennia-Introduction.html" title="Evennia Introduction"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">Evennia in pictures</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
|
||||
<div class="document">
|
||||
|
||||
<div class="documentwrapper">
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<p class="logo"><a href="index.html">
|
||||
<img class="logo" src="_static/evennia_logo.png" alt="Logo"/>
|
||||
</a></p>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
<h3><a href="index.html">Table of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Evennia in pictures</a><ul>
|
||||
<li><a class="reference internal" href="#the-two-main-evennia-pieces">The two main Evennia pieces</a><ul>
|
||||
<li><a class="reference internal" href="#initializing-the-game-folder">Initializing the game folder</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#the-database">The database</a><ul>
|
||||
<li><a class="reference internal" href="#from-database-to-python">From database to Python</a></li>
|
||||
<li><a class="reference internal" href="#attributes">Attributes</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#controlling-the-action">Controlling the action</a><ul>
|
||||
<li><a class="reference internal" href="#commands">Commands</a></li>
|
||||
<li><a class="reference internal" href="#command-sets">Command Sets</a></li>
|
||||
<li><a class="reference internal" href="#merging-command-sets">Merging Command Sets</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#now-go-and-explore">Now go and explore!</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="Evennia-Introduction.html"
|
||||
title="previous chapter">Evennia Introduction</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="Setup/Running-Evennia.html"
|
||||
title="next chapter">Start Stop Reload</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<!--h3>This Page</h3-->
|
||||
<ul class="this-page-menu">
|
||||
<li><a href="_sources/Evennia-In-Pictures.md.txt"
|
||||
rel="nofollow">Show Page Source</a></li>
|
||||
</ul>
|
||||
</div><h3>Links</h3>
|
||||
<ul>
|
||||
<li><a href="https://www.evennia.com">Home page</a> </li>
|
||||
<li><a href="https://github.com/evennia/evennia">Evennia Github</a> </li>
|
||||
<li><a href="http://games.evennia.com">Game Index</a> </li>
|
||||
<li>
|
||||
<a href="https://discord.gg/AJJpcRUhtF">Discord</a> -
|
||||
<a href="https://github.com/evennia/evennia/discussions">Discussions</a> -
|
||||
<a href="https://evennia.blogspot.com/">Blog</a>
|
||||
</li>
|
||||
</ul>
|
||||
<h3>Versions</h3>
|
||||
<ul>
|
||||
<li><a href="Evennia-In-Pictures.html">1.0-dev (develop branch)</a></li>
|
||||
<ul>
|
||||
<li><a href="../0.9.5/index.html">0.9.5 (v0.9.5 branch)</a></li>
|
||||
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="bodywrapper">
|
||||
<div class="body" role="main">
|
||||
|
||||
<section class="tex2jax_ignore mathjax_ignore" id="evennia-in-pictures">
|
||||
<h1>Evennia in pictures<a class="headerlink" href="#evennia-in-pictures" title="Permalink to this headline">¶</a></h1>
|
||||
<aside class="sidebar">
|
||||
<p>This is <em>not</em> an exhaustive overview. Think of it as a snapshot of some interesting things to start looking into.</p>
|
||||
</aside>
|
||||
<p>This article tries to give a high-level overview of the Evennia server and some of its moving parts. It should hopefully give a better understanding of how everything hangs together.</p>
|
||||
<div style="clear: right;"></div>
|
||||
<section id="the-two-main-evennia-pieces">
|
||||
<h2>The two main Evennia pieces<a class="headerlink" href="#the-two-main-evennia-pieces" title="Permalink to this headline">¶</a></h2>
|
||||
<p><img alt="evennia portal and server" src="https://2.bp.blogspot.com/-0-oir21e76k/W3kaUuGrg3I/AAAAAAAAJLU/qlQWmXlAiGUz_eKG_oYYVRf0yP6KVDdmQCEwYBhgL/s1600/Evennia_illustrated_fig1.png" /></p>
|
||||
<p>What you see in this figure is the part of Evennia that you download from us. It will <em>not</em> start a game on its own. We’ll soon create the missing ‘jigsaw puzzle piece’. But first, let’s see what we have.</p>
|
||||
<p>First, you’ll notice that Evennia has two main components - the <a class="reference internal" href="Components/Portal-And-Server.html"><span class="doc std std-doc">Portal and Server</span></a>. These are separate processes.</p>
|
||||
<p>The Portal tracks all connections to the outside world and understands Telnet protocols, websockets, SSH and so on. It knows nothing about the database or the game state. Data sent between the Portal and the Server is protocol-agnostic, meaning the Server sends/receives the same data regardless of how the user is connected. Hiding behind the Portal also means that the Server can be completely rebooted without anyone getting disconnected.</p>
|
||||
<p>The Server is the main “mud driver” and handles everything related to the game world and its database. It’s asynchronous and uses <a class="reference external" href="http://twistedmatrix.com/trac/">Twisted</a>.</p>
|
||||
<p>In the same process of the Server is also the Evennia <a class="reference internal" href="Components/Webserver.html"><span class="doc std std-doc">Web Server</span></a> . This serves the game’s website.</p>
|
||||
<div style="clear: right;"></div>
|
||||
<section id="initializing-the-game-folder">
|
||||
<h3>Initializing the game folder<a class="headerlink" href="#initializing-the-game-folder" title="Permalink to this headline">¶</a></h3>
|
||||
<p><img alt="creating the game folder" src="https://4.bp.blogspot.com/-TuLk-PIVyK8/W3kaUi-e-MI/AAAAAAAAJLc/DA9oMA6m5ooObZlf0Ao6ywW1jHqsPQZAQCEwYBhgL/s1600/Evennia_illustrated_fig2.png" /></p>
|
||||
<p>After <a class="reference internal" href="Setup/Installation.html"><span class="doc std std-doc">installing evennia</span></a> you will have the <code class="docutils literal notranslate"><span class="pre">evennia</span></code> command available. Using this you create a game directory (let’s call it <code class="docutils literal notranslate"><span class="pre">mygame</span></code>). This is the darker grey piece in this figure. It was missing previously. This is where you will create your dream game!</p>
|
||||
<p>During initialization, Evennia will create Python module templates in <code class="docutils literal notranslate"><span class="pre">mygame/</span></code> and link up all configurations to make mygame a fully functioning, if empty, game, ready to start extending.</p>
|
||||
<p>As part of the intialization, you’ll create the database and then start the server. From this point on, your new game is up and running and you can connect to your new game with telnet on localhost:4000 or by pointing your browser to <a class="reference external" href="http://localhost:4001">http://localhost:4001</a>.</p>
|
||||
<p>Now, our new mygame world needs Characters, locations, items and more!</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="the-database">
|
||||
<h2>The database<a class="headerlink" href="#the-database" title="Permalink to this headline">¶</a></h2>
|
||||
<p><img alt="image3" src="https://3.bp.blogspot.com/-81zsySVi_EE/W3kaVRn4IWI/AAAAAAAAJLc/yA-j1Nwy4H8F28BF403EDdCquYZ9sN4ZgCEwYBhgL/s1600/Evennia_illustrated_fig3.png" /></p>
|
||||
<p>Evennia is fully persistent and abstracts its database in Python using <a class="reference external" href="https://www.djangoproject.com/">Django</a>. The database tables are few and generic, each represented by a single Python class. As seen in this figure, the example <code class="docutils literal notranslate"><span class="pre">ObjectDB</span></code> Python class represents one database table. The properties on the class are the columns (fields) of the table. Each row is an instance of the class (one entity in the game).</p>
|
||||
<p>Among the example columns shown is the key (name) of the <code class="docutils literal notranslate"><span class="pre">ObjectDB</span></code> entity as well as a <a class="reference external" href="https://en.wikipedia.org/wiki/Foreign_key">Foreign key</a>-relationship for its current “location”.</p>
|
||||
<p>From the figure we can see that <em>Trigger</em> is in the <em>Dungeon</em>, carrying his trusty crossbow <em>Old Betsy</em>!</p>
|
||||
<p>The <code class="docutils literal notranslate"><span class="pre">db_typeclass_path</span></code> is an important field. This is a python-style path and tells Evennia which subclass of <code class="docutils literal notranslate"><span class="pre">ObjectDB</span></code> is actually representing this entity. This is the core of Evennia’s <a class="reference internal" href="Components/Typeclasses.html"><span class="doc std std-doc">Typeclass system</span></a>, which allows you to work with database entities using normal Python.</p>
|
||||
<section id="from-database-to-python">
|
||||
<h3>From database to Python<a class="headerlink" href="#from-database-to-python" title="Permalink to this headline">¶</a></h3>
|
||||
<p><img alt="image4" src="https://2.bp.blogspot.com/--4_MqVdHj8Q/W3kaVpdAZKI/AAAAAAAAJLk/jvTsuBBUlkEbBCaV9vyIU0IWiuF6PLsSwCEwYBhgL/s1600/Evennia_illustrated_fig4.png" /></p>
|
||||
<p>Here we see the (somewhat simplified) Python class inheritance tree that you as an Evennia developer will see, along with the three instanced entities.</p>
|
||||
<p><a class="reference internal" href="Components/Objects.html"><span class="doc std std-doc">Objects</span></a> represent stuff you will actually see in-game and its child classes implement all the handlers, helper code and the hook methods that Evennia makes use of. In your <code class="docutils literal notranslate"><span class="pre">mygame/</span></code> folder you just import these and overload the things you want to modify. In this way, the <code class="docutils literal notranslate"><span class="pre">Crossbow</span></code> is modified to do the stuff only crossbows can do and <code class="docutils literal notranslate"><span class="pre">CastleRoom</span></code> adds whatever it is that is special about rooms in the castle.</p>
|
||||
<p>When creating a new entity in-game, a new row will automatically be created in the database table and then <code class="docutils literal notranslate"><span class="pre">Trigger</span></code> will appear in-game! If we, in code, search the database for Trigger, we will get an instance of the <a class="reference internal" href="Components/Objects.html#characters"><span class="std std-doc">Character</span></a> class back - a Python object we can work with normally.</p>
|
||||
<p>Looking at this you may think that you will be making a lot of classes for every different object in the game. Your exact layout is up to you but Evennia also offers other ways to customize each individual object. Read on.</p>
|
||||
</section>
|
||||
<section id="attributes">
|
||||
<h3>Attributes<a class="headerlink" href="#attributes" title="Permalink to this headline">¶</a></h3>
|
||||
<p><img alt="image5" src="https://3.bp.blogspot.com/-6ulv5T_gUCI/W3kaViWBBfI/AAAAAAAAJLU/0NqeAsz3YVsQKwpODzsmjzR-7tICw1pTQCEwYBhgL/s1600/Evennia_illustrated_fig5.png" /></p>
|
||||
<p>The <a class="reference internal" href="Components/Attributes.html"><span class="doc std std-doc">Attribute</span></a> is another class directly tied to the database behind the scenes. Each <code class="docutils literal notranslate"><span class="pre">Attribute</span></code> basically has a key, a value and a ForeignKey relation to another <code class="docutils literal notranslate"><span class="pre">ObjectDB</span></code>.</p>
|
||||
<p>An <code class="docutils literal notranslate"><span class="pre">Attribute</span></code> serializes Python constructs into the database, meaning you can store basically any valid Python, like the dictionary of skills in this image. The “strength” and “skills” Attributes will henceforth be reachable directly from the <em>Trigger</em> object. This (and a few other resources) allow you to create individualized entities while only needing to create classes for those that really behave fundamentally different.</p>
|
||||
<div style="clear: right;"></div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="controlling-the-action">
|
||||
<h2>Controlling the action<a class="headerlink" href="#controlling-the-action" title="Permalink to this headline">¶</a></h2>
|
||||
<p><img alt="image6" src="https://4.bp.blogspot.com/-u-npXjlq6VI/W3kaVwAoiUI/AAAAAAAAJLY/T9bhrzhJJuQwTR8nKHH9GUxQ74hyldKOgCEwYBhgL/s1600/Evennia_illustrated_fig6.png" /></p>
|
||||
<p><em>Trigger</em> is most likely played by a human. This human connects to the game via one or more <a class="reference internal" href="Components/Sessions.html"><span class="doc std std-doc">Sessions</span></a>, one for each client they connect with.</p>
|
||||
<p>Their account on <code class="docutils literal notranslate"><span class="pre">mygame</span></code> is represented by a <a class="reference internal" href="Components/Accounts.html"><span class="doc std std-doc">Account</span></a> entity. The <code class="docutils literal notranslate"><span class="pre">AccountDB</span></code> holds the password and other account info but has no existence in the game world. Through the <code class="docutils literal notranslate"><span class="pre">Account</span></code> entity, <code class="docutils literal notranslate"><span class="pre">Sessions</span></code> can control (“puppet”) one or more <code class="docutils literal notranslate"><span class="pre">Object</span></code> entities in-game.</p>
|
||||
<p>In this figure, a user is connected to the game with three <code class="docutils literal notranslate"><span class="pre">Session</span></code>s simultaneously. They are logged in to their player <code class="docutils literal notranslate"><span class="pre">Account</span></code> named <em>Richard</em>. Through these <code class="docutils literal notranslate"><span class="pre">Session</span></code>s they are simultaneously puppeting the in-game entities <em>Trigger</em> and <em>Sir Hiss</em>. Evennia can be configured to allow or disallow a range of different <a class="reference internal" href="Concepts/Connection-Styles.html"><span class="doc std std-doc">Connection Styles</span></a> like this.</p>
|
||||
<section id="commands">
|
||||
<h3>Commands<a class="headerlink" href="#commands" title="Permalink to this headline">¶</a></h3>
|
||||
<p><img alt="image7" src="https://3.bp.blogspot.com/-_RM9-Pb2uKg/W3kaWIs4ndI/AAAAAAAAJLc/n45Hcvk1PiYhNdBbAAr_JjkebRVReffTgCEwYBhgL/s1600/Evennia_illustrated_fig7.png" /></p>
|
||||
<p>For users to be able to control their game entities and actually play the game, they need to be able to send <a class="reference internal" href="Components/Commands.html"><span class="doc std std-doc">Commands</span></a>.</p>
|
||||
<p>A <code class="docutils literal notranslate"><span class="pre">Command</span></code> can be made to represent anything a user can input actively to the game, such as the <code class="docutils literal notranslate"><span class="pre">look</span></code> command, <code class="docutils literal notranslate"><span class="pre">get</span></code>, <code class="docutils literal notranslate"><span class="pre">quit</span></code>, <code class="docutils literal notranslate"><span class="pre">emote</span></code> and so on.</p>
|
||||
<p>Each <code class="docutils literal notranslate"><span class="pre">Command</span></code> handles both argument parsing and execution. Since each Command is described with a normal Python class, it means that you can implement parsing once and then just have the rest of your commands inherit the effect. In the above figure, the <code class="docutils literal notranslate"><span class="pre">DIKUCommand</span></code> parent class implements parsing of all the syntax common for all DIKU-style commands so <code class="docutils literal notranslate"><span class="pre">CmdLook</span></code> and others won’t have to.</p>
|
||||
</section>
|
||||
<section id="command-sets">
|
||||
<h3>Command Sets<a class="headerlink" href="#command-sets" title="Permalink to this headline">¶</a></h3>
|
||||
<p><img alt="image8" src="https://2.bp.blogspot.com/-pgpYPsd4CLM/W3kaWG2ffuI/AAAAAAAAJLg/LKl4m4-1xkYxVA7JXXuVP28Q9ZqhNZXTACEwYBhgL/s1600/Evennia_illustrated_fig8.png" /></p>
|
||||
<p>All Evennia Commands are are always joined together in <code class="docutils literal notranslate"><span class="pre">CommandSet</span></code>s. These are containers that can hold many <code class="docutils literal notranslate"><span class="pre">Command</span></code> instances. A given <code class="docutils literal notranslate"><span class="pre">Command</span></code> class can contribute instances to any number of <code class="docutils literal notranslate"><span class="pre">CommandSet</span></code>s. These sets are always associated with game entities.</p>
|
||||
<p>In this figure, <em>Trigger</em> has received a <code class="docutils literal notranslate"><span class="pre">CommandSet</span></code> with a bunch of useful commands that he (and by extension his controlling <code class="docutils literal notranslate"><span class="pre">Account</span></code>/Player) can now use.</p>
|
||||
<p><img alt="image9" src="https://3.bp.blogspot.com/-acmVo7kUZCk/W3kaWZWlT0I/AAAAAAAAJLk/nnFrNaq_TNoO08MDleadwhHfVQLdO74eACEwYBhgL/s1600/Evennia_illustrated_fig9.png" /></p>
|
||||
<p><em>Trigger</em>’s <code class="docutils literal notranslate"><span class="pre">CommandSet</span></code> is only available to himself. In this figure we put a <code class="docutils literal notranslate"><span class="pre">CommandSet</span></code> with three commands on the Dungeon room. The room itself has no use for commands but we configure this set to affect those <em>inside it</em> instead. Note that we let these be <em>different versions</em> of these commands (hence the different color)! We’ll explain why below.</p>
|
||||
<div style="clear: right;"></div>
|
||||
</section>
|
||||
<section id="merging-command-sets">
|
||||
<h3>Merging Command Sets<a class="headerlink" href="#merging-command-sets" title="Permalink to this headline">¶</a></h3>
|
||||
<p><img alt="image10" src="https://4.bp.blogspot.com/--lixKOYjEe4/W3kaUl9SFXI/AAAAAAAAJLQ/tCGd-dFhZ8gfLH1HAsQbZdaIS_OQuvU3wCEwYBhgL/s1600/Evennia_illustrated_fig10.png" /></p>
|
||||
<p>Multiple <code class="docutils literal notranslate"><span class="pre">CommandSet</span></code>s can be dynamically (and temporarily) merged together in a similar fashion as <a class="reference external" href="https://en.wikipedia.org/wiki/Set_theory">Set Theory</a>, except the merge priority can be customized. In this figure we see a <em>Union</em>-type merger where the Commands from Dungeon of the same name temporarily override the commands from Trigger. While in the Dungeon, Trigger will be using this version of those commands. When Trigger leaves, his own <code class="docutils literal notranslate"><span class="pre">CommandSet</span></code> will be restored unharmed.</p>
|
||||
<p>Why would we want to do this? Consider for example that the dungeon is in darkness. We can then let the Dungeon’s version of the <code class="docutils literal notranslate"><span class="pre">look</span></code> command show only the contents of the room if Trigger is carrying a light source. You might also not be able to easily get things in the room without light - you might even be fumbling randomly in your inventory!</p>
|
||||
<p>Any number of Command Sets can be merged on the fly. This allows you to implement multiple overlapping states (like combat in a darkened room while intoxicated) without needing huge if statements for every possible combination. The merger is non-destructive, so you can remove cmdsets to get back previous states as needed.</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="now-go-and-explore">
|
||||
<h2>Now go and explore!<a class="headerlink" href="#now-go-and-explore" title="Permalink to this headline">¶</a></h2>
|
||||
<p>This is by no means a full list of Evennia features. But it should give you a bunch of interesting concepts to read more about.</p>
|
||||
<p>You can find a lot more detail in the <a class="reference internal" href="Components/Components-Overview.html"><span class="doc std std-doc">Core Components</span></a> and <a class="reference internal" href="Concepts/Concepts-Overview.html"><span class="doc std std-doc">Core Concepts</span></a> sections of this manual. If you haven’t read it already, you should also check out the <a class="reference internal" href="Evennia-Introduction.html"><span class="doc std std-doc">Evennia Introduction</span></a>.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
<ul>
|
||||
<li class="right" style="margin-right: 10px">
|
||||
<a href="genindex.html" title="General Index"
|
||||
>index</a></li>
|
||||
<li class="right" >
|
||||
<a href="py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="Setup/Running-Evennia.html" title="Start Stop Reload"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="Evennia-Introduction.html" title="Evennia Introduction"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">Evennia in pictures</a></li>
|
||||
</ul>
|
||||
<div class="develop">develop branch</div>
|
||||
</div>
|
||||
<div class="footer" role="contentinfo">
|
||||
© Copyright 2022, The Evennia developer community.
|
||||
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
<link rel="shortcut icon" href="_static/favicon.ico"/>
|
||||
<link rel="index" title="Index" href="genindex.html" />
|
||||
<link rel="search" title="Search" href="search.html" />
|
||||
<link rel="next" title="Start Stop Reload" href="Setup/Running-Evennia.html" />
|
||||
<link rel="next" title="Evennia in pictures" href="Evennia-In-Pictures.html" />
|
||||
<link rel="prev" title="Evennia Documentation" href="index.html" />
|
||||
</head><body>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
<a href="py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="Setup/Running-Evennia.html" title="Start Stop Reload"
|
||||
<a href="Evennia-In-Pictures.html" title="Evennia in pictures"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="index.html" title="Evennia Documentation"
|
||||
|
|
@ -62,8 +62,15 @@
|
|||
<h3><a href="index.html">Table of Contents</a></h3>
|
||||
<ul>
|
||||
<li><a class="reference internal" href="#">Evennia Introduction</a><ul>
|
||||
<li><a class="reference internal" href="#what-is-evennia">What is Evennia?</a><ul>
|
||||
<li><a class="reference internal" href="#bare-bones">Bare-bones?</a></li>
|
||||
<li><a class="reference internal" href="#framework">Framework?</a></li>
|
||||
<li><a class="reference internal" href="#server">Server?</a></li>
|
||||
<li><a class="reference internal" href="#python">Python?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference internal" href="#can-i-test-it-somewhere">Can I test it somewhere?</a></li>
|
||||
<li><a class="reference internal" href="#what-you-need-to-know-to-work-with-evennia">What you need to know to work with Evennia</a><ul>
|
||||
<li><a class="reference internal" href="#what-do-i-need-to-know-to-work-with-evennia">What do I need to know to work with Evennia?</a><ul>
|
||||
<li><a class="reference internal" href="#i-dont-know-or-dont-want-to-do-any-programming-i-just-want-to-run-a-game">I don’t know (or don’t want to do) any programming - I just want to run a game!</a></li>
|
||||
<li><a class="reference internal" href="#i-know-basic-python-or-i-am-willing-to-learn">I know basic Python, or I am willing to learn</a></li>
|
||||
<li><a class="reference internal" href="#i-know-my-python-stuff-and-i-am-willing-to-use-it">I know my Python stuff and I am willing to use it!</a></li>
|
||||
|
|
@ -78,8 +85,8 @@
|
|||
<p class="topless"><a href="index.html"
|
||||
title="previous chapter">Evennia Documentation</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="Setup/Running-Evennia.html"
|
||||
title="next chapter">Start Stop Reload</a></p>
|
||||
<p class="topless"><a href="Evennia-In-Pictures.html"
|
||||
title="next chapter">Evennia in pictures</a></p>
|
||||
<div role="note" aria-label="source link">
|
||||
<!--h3>This Page</h3-->
|
||||
<ul class="this-page-menu">
|
||||
|
|
@ -120,70 +127,79 @@ Players can read or view descriptions of rooms, objects, other players, non-play
|
|||
actions performed in the virtual world. Players typically interact with each other and the world by
|
||||
typing commands that resemble a natural language.</em> - <a class="reference external" href="https://en.wikipedia.org/wiki/MUD">Wikipedia</a></p>
|
||||
</div></blockquote>
|
||||
<p>If you are reading this, it’s quite likely you are dreaming of creating and running a text-based
|
||||
massively-multiplayer game (<a class="reference external" href="https://tinyurl.com/c5sc4bm">MUD/MUX/MUSH</a> etc) of your very own. You
|
||||
might just be starting to think about it, or you might have lugged around that <em>perfect</em> game in
|
||||
your mind for years … you know <em>just</em> how good it would be, if you could only make it come to
|
||||
reality. We know how you feel. That is, after all, why Evennia came to be.</p>
|
||||
<p>Evennia is a MU*-building system: a bare-bones Python codebase and server intended to
|
||||
be highly extendable for any style of game. “Bare-bones” in this context means that we try to impose as few game-specific things on you as possible. For convenience offer basic building
|
||||
blocks like objects, characters, rooms, default commands for building and administration etc, we
|
||||
don’t prescribe any combat rules, mob AI, races, skills, character classes or other things that will
|
||||
be different from game to game anyway.</p>
|
||||
<p>What we <em>do</em> however, is to provide a solid foundation for all the boring database, networking, and
|
||||
behind-the-scenes administration stuff that all online games need whether they like it or not.
|
||||
Evennia is <em>fully persistent</em>, that means things you drop on the ground somewhere will still be
|
||||
there a dozen server reboots later. Through Django we support a large variety of different database
|
||||
systems (a database is created for you automatically if you use the defaults).</p>
|
||||
<p>We also include a growing list of <em>optional</em> <a class="reference internal" href="Contribs/Contribs-Overview.html"><span class="doc std std-doc">contribs</span></a> you can use for your game would you want something to build from.</p>
|
||||
<p>Using the full power of Python throughout the server offers some distinct advantages. All your coding, from object definitions and custom commands to AI scripts and economic systems is done in normal Python modules rather than some ad-hoc scripting language. The fact that you script the game in the same high-level language that you code it in allows for very powerful and custom game implementations indeed.</p>
|
||||
<p>Out of the box, Evennia gives you a ‘talker’-type of game; you can walk around, chat, build rooms and objects, do basic roleplaying and administration. The server ships with a default set of player commands that are similar to the MUX command set. We <em>do not</em> aim specifically to be a MUX server, but we had to pick some default to go with (see <a class="reference internal" href="Coding/Soft-Code.html"><span class="doc std std-doc">this</span></a> for more about our original motivations). It’s easy to remove or add commands, or to have the command syntax mimic other systems, like Diku, LP, MOO and so on. Or why not create a new and better command system of your own design.</p>
|
||||
<p>If you are reading this, it’s quite likely you are dreaming of creating and running a text-based massively-multiplayer game (<a class="reference external" href="https://tinyurl.com/c5sc4bm">MUD/MUX/MUSH</a> etc) of your very own. You might just be starting to think about it, or you might have lugged around that <em>perfect</em> game in your mind for years … you know <em>just</em> how good it would be, if you could only make it come to reality.</p>
|
||||
<p>We know how you feel. That is, after all, why Evennia came to be.</p>
|
||||
<section id="what-is-evennia">
|
||||
<h2>What is Evennia?<a class="headerlink" href="#what-is-evennia" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Evennia is a MU*-building framework: a bare-bones Python codebase and server intended to be highly extendable for any style of game.</p>
|
||||
<section id="bare-bones">
|
||||
<h3>Bare-bones?<a class="headerlink" href="#bare-bones" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Evennia is “bare-bones” in the sense that we try to impose as few game-specific things on you as possible. We don’t prescribe any combat rules, mob AI, races, skills, character classes or other things.</p>
|
||||
<p>We figure you will want to make that for yourself, just like you want it!</p>
|
||||
</section>
|
||||
<section id="framework">
|
||||
<h3>Framework?<a class="headerlink" href="#framework" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Evennia is bare-bones, but not <em>that</em> barebones. We do offer basic building blocks like objects, characters and rooms, in-built channels and so on. We also provide of useful commands for building and administration etc.</p>
|
||||
<p>Out of the box you’ll have a ‘talker’ type of game - an empty but fully functional social game where you can build rooms, walk around and chat/roleplay. Evennia handles all the boring database, networking, and behind-the-scenes administration stuff that all online games need whether they like it or not. It’s a blank slate for you to expand on.</p>
|
||||
<p>We also include a growing list of optional <a class="reference internal" href="Contribs/Contribs-Overview.html"><span class="doc std std-doc">contribs</span></a> you can use with your game. These are more game-specific and can help to inspire or have something to build from.</p>
|
||||
</section>
|
||||
<section id="server">
|
||||
<h3>Server?<a class="headerlink" href="#server" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Evennia is its own webserver. When you start Evennia, your server hosts a game website and a browser webclient. This allows your players to play both in their browsers as well as connect using traditional MUD clients. None of this is visible to the internet until you feel ready to share your game with the world.</p>
|
||||
</section>
|
||||
<section id="python">
|
||||
<h3>Python?<a class="headerlink" href="#python" title="Permalink to this headline">¶</a></h3>
|
||||
<p><a class="reference external" href="https://en.wikipedia.org/wiki/Python_(programming_language)">Python</a> is not only one of the most popular programming languages languages in use today, it is also considered one of the easiest to learn. In the Evennia community, we have many people who learned Python or programming by making a game. Some even got a job from the skills they learned working with Evennia!</p>
|
||||
<p>All your coding, from object definitions and custom commands to AI scripts and economic systems is done in normal Python modules rather than some ad-hoc scripting language.</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="can-i-test-it-somewhere">
|
||||
<h2>Can I test it somewhere?<a class="headerlink" href="#can-i-test-it-somewhere" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Evennia’s demo server can be found at <a class="reference external" href="https://demo.evennia.com">https://demo.evennia.com</a>. If you prefer to
|
||||
connect to the demo via your telnet client you can do so at <code class="docutils literal notranslate"><span class="pre">demo.evennia.com</span></code>, port <code class="docutils literal notranslate"><span class="pre">4000</span></code>.</p>
|
||||
<p>Once you installed Evennia yourself it comes with its own tutorial - this shows off some of the
|
||||
possibilities <em>and</em> gives you a small single-player quest to play. The tutorial takes only one
|
||||
single in-game command to install as explained <a class="reference internal" href="Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Tutorial-World.html"><span class="doc std std-doc">here</span></a>.</p>
|
||||
<p>Evennia’s demo server can be found at <a class="reference external" href="https://demo.evennia.com">https://demo.evennia.com</a> or on <code class="docutils literal notranslate"><span class="pre">demo.evennia.com</span></code>, port <code class="docutils literal notranslate"><span class="pre">4000</span></code> if you are using a traditional MUD client.</p>
|
||||
<p>Once you installed Evennia, you can also create a tutorial mini-game with a single command. Read more about it <a class="reference internal" href="Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Tutorial-World.html"><span class="doc std std-doc">here</span></a>.</p>
|
||||
</section>
|
||||
<section id="what-you-need-to-know-to-work-with-evennia">
|
||||
<h2>What you need to know to work with Evennia<a class="headerlink" href="#what-you-need-to-know-to-work-with-evennia" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Assuming you have Evennia working (see the <a class="reference internal" href="Setup/Installation.html"><span class="doc std std-doc">quick start instructions</span></a>) and have
|
||||
gotten as far as to start the server and connect to it with the client of your choice, here’s what
|
||||
you need to know depending on your skills and needs.</p>
|
||||
<section id="what-do-i-need-to-know-to-work-with-evennia">
|
||||
<h2>What do I need to know to work with Evennia?<a class="headerlink" href="#what-do-i-need-to-know-to-work-with-evennia" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Once you <a class="reference internal" href="Setup/Installation.html"><span class="doc std std-doc">installed Evennia</span></a> and connected, you should decide on what you want to do.</p>
|
||||
<section id="i-dont-know-or-dont-want-to-do-any-programming-i-just-want-to-run-a-game">
|
||||
<h3>I don’t know (or don’t want to do) any programming - I just want to run a game!<a class="headerlink" href="#i-dont-know-or-dont-want-to-do-any-programming-i-just-want-to-run-a-game" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Evennia comes with a default set of commands for the Python newbies and for those who need to get a game running <em>now</em>. Stock Evennia is enough for running a simple ‘Talker’-type game - you can build and describe rooms and basic objects, have chat channels, do emotes and other things suitable for a social or free-form MU*. Combat, mobs and other game elements are not included, so you’ll have a very basic game indeed if you are not willing to do at least <em>some</em> coding.</p>
|
||||
<p>Evennia comes with a default set of commands for the Python newbies and for those who need to get a game running <em>now</em>.</p>
|
||||
<p>Stock Evennia is enough for running a simple ‘Talker’-type game - you can build and describe rooms and basic objects, have chat channels, do emotes and other things suitable for a social or free-form MU*.</p>
|
||||
<p>Combat, mobs and other game elements are not included, so you’ll have a very basic game indeed if you are not willing to do at least <em>some</em> coding.</p>
|
||||
</section>
|
||||
<section id="i-know-basic-python-or-i-am-willing-to-learn">
|
||||
<h3>I know basic Python, or I am willing to learn<a class="headerlink" href="#i-know-basic-python-or-i-am-willing-to-learn" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Evennia’s source code is <a class="reference external" href="https://www.evennia.com/docs/latest">extensively documented</a>. But while Python is considered a very easy programming language to get into, you do have a learning curve to climb if you are new to programming. Evennia’s <a class="reference internal" href="Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Part1-Overview.html"><span class="doc std std-doc">Starting-tutorial</span></a> has a <a class="reference internal" href="Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-basic-introduction.html"><span class="doc std std-doc">basic introduction to Python</span></a> but you should probably also sit down with a full Python beginner’s tutorial at some point (there are plenty of them on the web if you look around). See also our <a class="reference internal" href="Links.html"><span class="doc std std-doc">link page</span></a> for some reading suggestions.</p>
|
||||
<p>Start small. Evennia’s <a class="reference internal" href="Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.html"><span class="doc std std-doc">Beginner tutorial</span></a> is a good place to start.</p>
|
||||
<aside class="sidebar">
|
||||
<p>See also our <a class="reference internal" href="Links.html"><span class="doc std std-doc">link page</span></a> for some reading suggestions.</p>
|
||||
</aside>
|
||||
<p>While Python is considered a very easy programming language to get into, you do have a learning curve to climb if you are new to programming. The beginner-tutorial has a <a class="reference internal" href="Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-basic-introduction.html"><span class="doc std std-doc">basic introduction to Python</span></a>, but if you are completely new, you should probably also sit down with a full Python beginner’s tutorial at some point. There are plenty of them on the web if you look around.</p>
|
||||
<p>To code your dream game in Evennia you don’t need to be a Python guru, but you do need to be able to read example code containing at least these basic Python features:</p>
|
||||
<ul class="simple">
|
||||
<li><p>Importing and using python <a class="reference external" href="https://docs.python.org/3.7/tutorial/modules.html">modules</a></p></li>
|
||||
<li><p>Using <a class="reference external" href="https://www.tutorialspoint.com/python/python_variable_types.htm">variables</a>, <a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#if-statements">conditional statements</a>,
|
||||
<a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#for-statements">loops</a> and <a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#defining-functions">functions</a></p></li>
|
||||
<li><p>Importing and using python <a class="reference external" href="https://docs.python.org/3.11/tutorial/modules.html">modules</a></p></li>
|
||||
<li><p>Using <a class="reference external" href="https://www.tutorialspoint.com/python/python_variable_types.htm">variables</a>, <a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#if-statements">conditional statements</a>, <a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#for-statements">loops</a> and <a class="reference external" href="https://docs.python.org/tutorial/controlflow.html#defining-functions">functions</a></p></li>
|
||||
<li><p>Using <a class="reference external" href="https://docs.python.org/tutorial/datastructures.html">lists, dictionaries and list comprehensions</a></p></li>
|
||||
<li><p>Doing <a class="reference external" href="https://docs.python.org/tutorial/introduction.html#strings">string handling and formatting</a></p></li>
|
||||
<li><p>Have a basic understanding of <a class="reference external" href="https://www.tutorialspoint.com/python/python_classes_objects.htm">object-oriented programming</a>, using
|
||||
<a class="reference external" href="https://docs.python.org/tutorial/classes.html">Classes</a>, their methods and properties</p></li>
|
||||
<li><p>Have a basic understanding of <a class="reference external" href="https://www.tutorialspoint.com/python/python_classes_objects.htm">object-oriented programming</a>, using <a class="reference external" href="https://docs.python.org/tutorial/classes.html">Classes</a>, their methods and properties</p></li>
|
||||
</ul>
|
||||
<p>Obviously, the more things you feel comfortable with, the easier time you’ll have to find your way.
|
||||
With just basic knowledge you should be able to define your own <a class="reference internal" href="Components/Commands.html"><span class="doc std std-doc">Commands</span></a>, create custom
|
||||
<a class="reference internal" href="Components/Objects.html"><span class="doc std std-doc">Objects</span></a> as well as make your world come alive with basic <a class="reference internal" href="Components/Scripts.html"><span class="doc std std-doc">Scripts</span></a>. You can
|
||||
definitely build a whole advanced and customized game from extending Evennia’s examples only.</p>
|
||||
<p>Obviously, the more things you feel comfortable with, the easier time you’ll have to find your way.</p>
|
||||
<p>With just basic knowledge you can set out to build your game by expanding Evennia’s examples.</p>
|
||||
</section>
|
||||
<section id="i-know-my-python-stuff-and-i-am-willing-to-use-it">
|
||||
<h3>I know my Python stuff and I am willing to use it!<a class="headerlink" href="#i-know-my-python-stuff-and-i-am-willing-to-use-it" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Even if you started out as a Python beginner, you will likely get to this point after working on your game for a while. With more general knowledge in Python the full power of Evennia opens up for you. Apart from modifying commands, objects and scripts, you can develop everything from advanced mob AI and economic systems, through sophisticated combat and social mini games, to redefining how commands, players, rooms or channels themselves work. Since you code your game by importing normal Python modules, there are few limits to what you can accomplish.</p>
|
||||
<p>Even if you started out as a Python beginner, you will likely get to this point after working on your game for a while.</p>
|
||||
<p>With more general knowledge in Python the full power of Evennia opens up for you. Apart from modifying commands, objects and scripts, you can develop everything from advanced mob AI and economic systems, through sophisticated combat and social mini games, to redefining how commands, players, rooms or channels themselves work. Since you code your game by importing normal Python modules, there are few limits to what you can accomplish.</p>
|
||||
<p>If you <em>also</em> happen to know some web programming (HTML, CSS, Javascript) there is also a web
|
||||
presence (a website and a mud web client) to play around with …</p>
|
||||
</section>
|
||||
</section>
|
||||
<section id="where-to-from-here">
|
||||
<h2>Where to from here?<a class="headerlink" href="#where-to-from-here" title="Permalink to this headline">¶</a></h2>
|
||||
<p>It’s recommended you jump into the <a class="reference internal" href="Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.html"><span class="doc std std-doc">Beginner Tutorial</span></a>. You can either follow it or jump around to lessons that seem interesting. You can also read the lead developer’s <a class="reference external" href="https://www.evennia.com/devblog/index.html">dev blog</a> for many tidbits and snippets about Evennia’s development and structure.</p>
|
||||
<p>Sometimes it’s easier to ask for help. Get engaged in the Evennia community by joining our <a class="reference external" href="https://discord.gg/AJJpcRUhtF">Discord</a> for direct support. Make an introductory post to our <a class="reference external" href="https://github.com/evennia/evennia/discussions">Discussion forum</a> and say hi!.</p>
|
||||
<p>To get a top-level overview of Evennia, you can check out <a class="reference internal" href="Evennia-In-Pictures.html"><span class="doc std std-doc">Evennia in pictures</span></a>.</p>
|
||||
<p>After that it’s a good idea to jump into the <a class="reference internal" href="Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.html"><span class="doc std std-doc">Beginner Tutorial</span></a>. You can either follow it lesson for lesson or jump around to what seems interesting. There are also more <a class="reference internal" href="Howtos/Howtos-Overview.html#howtos"><span class="std std-doc">Tutorials and Howto’s</span></a> to look over.</p>
|
||||
<p>You can also read the lead developer’s <a class="reference external" href="https://www.evennia.com/devblog/index.html">dev blog</a> for many tidbits and snippets about Evennia’s development and structure.</p>
|
||||
<p>Sometimes it’s easier to ask for help. Get engaged in the Evennia community by joining our <a class="reference external" href="https://discord.gg/AJJpcRUhtF">Discord</a> for direct support. Make an introductory post to our <a class="reference external" href="https://github.com/evennia/evennia/discussions">Discussion forum</a> and say hi! See <a class="reference internal" href="Contributing.html"><span class="doc std std-doc">here</span></a> for more ways to get and give help to the project.</p>
|
||||
<p>Welcome to Evennia!</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
|
@ -203,7 +219,7 @@ presence (a website and a mud web client) to play around with …</p>
|
|||
<a href="py-modindex.html" title="Python Module Index"
|
||||
>modules</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="Setup/Running-Evennia.html" title="Start Stop Reload"
|
||||
<a href="Evennia-In-Pictures.html" title="Evennia in pictures"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="index.html" title="Evennia Documentation"
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<link rel="index" title="Index" href="../genindex.html" />
|
||||
<link rel="search" title="Search" href="../search.html" />
|
||||
<link rel="next" title="Updating Evennia" href="Updating-Evennia.html" />
|
||||
<link rel="prev" title="Evennia Introduction" href="../Evennia-Introduction.html" />
|
||||
<link rel="prev" title="Evennia in pictures" href="../Evennia-In-Pictures.html" />
|
||||
</head><body>
|
||||
<div class="related" role="navigation" aria-label="related navigation">
|
||||
<h3>Navigation</h3>
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
<a href="Updating-Evennia.html" title="Updating Evennia"
|
||||
accesskey="N">next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="../Evennia-Introduction.html" title="Evennia Introduction"
|
||||
<a href="../Evennia-In-Pictures.html" title="Evennia in pictures"
|
||||
accesskey="P">previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">Start Stop Reload</a></li>
|
||||
|
|
@ -80,8 +80,8 @@
|
|||
</ul>
|
||||
|
||||
<h4>Previous topic</h4>
|
||||
<p class="topless"><a href="../Evennia-Introduction.html"
|
||||
title="previous chapter">Evennia Introduction</a></p>
|
||||
<p class="topless"><a href="../Evennia-In-Pictures.html"
|
||||
title="previous chapter">Evennia in pictures</a></p>
|
||||
<h4>Next topic</h4>
|
||||
<p class="topless"><a href="Updating-Evennia.html"
|
||||
title="next chapter">Updating Evennia</a></p>
|
||||
|
|
@ -297,7 +297,7 @@ In-game you should now get the message that the Server has successfully restarte
|
|||
<a href="Updating-Evennia.html" title="Updating Evennia"
|
||||
>next</a> |</li>
|
||||
<li class="right" >
|
||||
<a href="../Evennia-Introduction.html" title="Evennia Introduction"
|
||||
<a href="../Evennia-In-Pictures.html" title="Evennia in pictures"
|
||||
>previous</a> |</li>
|
||||
<li class="nav-item nav-item-0"><a href="../index.html">Evennia 1.0-dev</a> »</li>
|
||||
<li class="nav-item nav-item-this"><a href="">Start Stop Reload</a></li>
|
||||
|
|
|
|||
|
|
@ -146,13 +146,12 @@
|
|||
<span class="kn">import</span> <span class="nn">inspect</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">django.core.exceptions</span> <span class="kn">import</span> <span class="n">ObjectDoesNotExist</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.internet.defer</span> <span class="kn">import</span> <span class="n">inlineCallbacks</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">evennia.scripts.scripts</span> <span class="kn">import</span> <span class="n">ExtendedLoopingCall</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.server.models</span> <span class="kn">import</span> <span class="n">ServerConfig</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">inherits_from</span><span class="p">,</span> <span class="n">variable_from_module</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.dbserialize</span> <span class="kn">import</span> <span class="n">dbserialize</span><span class="p">,</span> <span class="n">dbunserialize</span><span class="p">,</span> <span class="n">pack_dbobj</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.logger</span> <span class="kn">import</span> <span class="n">log_err</span><span class="p">,</span> <span class="n">log_trace</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.internet.defer</span> <span class="kn">import</span> <span class="n">inlineCallbacks</span>
|
||||
|
||||
<span class="n">_GA</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span>
|
||||
<span class="n">_SA</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span>
|
||||
|
|
@ -252,7 +251,7 @@
|
|||
<span class="sd"> using it.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> start_delay (int): Time to way before starting.</span>
|
||||
<span class="sd"> start_delay (int, optional): Time to way before starting.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">subs</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">subscriptions</span>
|
||||
|
|
@ -364,8 +363,7 @@
|
|||
<span class="sd"> restoring the pool will automatically re-populate the pool.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> interval (int, optional): Only stop tickers with this</span>
|
||||
<span class="sd"> interval.</span>
|
||||
<span class="sd"> interval (int, optional): Only stop tickers with this interval.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="n">interval</span> <span class="ow">and</span> <span class="n">interval</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">tickers</span><span class="p">:</span>
|
||||
|
|
@ -573,22 +571,26 @@
|
|||
<span class="sd"> Add subscription to tickerhandler</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> interval (int, optional): Interval in seconds between calling</span>
|
||||
|
||||
<span class="sd"> *args: Will be passed into the callback every time it's called. This must be</span>
|
||||
<span class="sd"> data possible to pickle.</span>
|
||||
|
||||
<span class="sd"> Keyword Args:</span>
|
||||
<span class="sd"> interval (int): Interval in seconds between calling</span>
|
||||
<span class="sd"> `callable(*args, **kwargs)`</span>
|
||||
<span class="sd"> callable (callable function or method, optional): This</span>
|
||||
<span class="sd"> callable (callable function or method): This</span>
|
||||
<span class="sd"> should either be a stand-alone function or a method on a</span>
|
||||
<span class="sd"> typeclassed entity (that is, one that can be saved to the</span>
|
||||
<span class="sd"> database).</span>
|
||||
<span class="sd"> idstring (str, optional): Identifier for separating</span>
|
||||
<span class="sd"> idstring (str): Identifier for separating</span>
|
||||
<span class="sd"> this ticker-subscription from others with the same</span>
|
||||
<span class="sd"> interval. Allows for managing multiple calls with</span>
|
||||
<span class="sd"> the same time interval and callback.</span>
|
||||
<span class="sd"> persistent (bool, optional): A ticker will always survive</span>
|
||||
<span class="sd"> persistent (bool): A ticker will always survive</span>
|
||||
<span class="sd"> a server reload. If this is unset, the ticker will be</span>
|
||||
<span class="sd"> deleted by a server shutdown.</span>
|
||||
<span class="sd"> args, kwargs (optional): These will be passed into the</span>
|
||||
<span class="sd"> callback every time it is called. This must be data possible</span>
|
||||
<span class="sd"> to pickle!</span>
|
||||
<span class="sd"> **kwargs Will be passed into the callback every time it is called.</span>
|
||||
<span class="sd"> This must be data possible to pickle.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> store_key (tuple): The immutable store-key for this ticker. This can</span>
|
||||
|
|
@ -617,13 +619,13 @@
|
|||
<span class="sd">"""</span>
|
||||
<span class="sd"> Remove ticker subscription from handler.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> interval (int, optional): Interval of ticker to remove.</span>
|
||||
<span class="sd"> Keyword Args:</span>
|
||||
<span class="sd"> interval (int): Interval of ticker to remove.</span>
|
||||
<span class="sd"> callback (callable function or method): Either a function or</span>
|
||||
<span class="sd"> the method of a typeclassed object.</span>
|
||||
<span class="sd"> idstring (str, optional): Identifier id of ticker to remove.</span>
|
||||
<span class="sd"> persistent (bool, optional): Whether this ticker is persistent or not.</span>
|
||||
<span class="sd"> store_key (str, optional): If given, all other kwargs are ignored and only</span>
|
||||
<span class="sd"> idstring (str): Identifier id of ticker to remove.</span>
|
||||
<span class="sd"> persistent (bool): Whether this ticker is persistent or not.</span>
|
||||
<span class="sd"> store_key (str): If given, all other kwargs are ignored and only</span>
|
||||
<span class="sd"> this is used to identify the ticker.</span>
|
||||
|
||||
<span class="sd"> Raises:</span>
|
||||
|
|
@ -654,7 +656,7 @@
|
|||
<span class="sd"> Stop/remove tickers from handler.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> interval (int): Only stop tickers with this interval.</span>
|
||||
<span class="sd"> interval (int, optional): Only stop tickers with this interval.</span>
|
||||
|
||||
<span class="sd"> Notes:</span>
|
||||
<span class="sd"> This is the only supported way to kill tickers related to</span>
|
||||
|
|
@ -674,16 +676,15 @@
|
|||
|
||||
<div class="viewcode-block" id="TickerHandler.all"><a class="viewcode-back" href="../../../api/evennia.scripts.tickerhandler.html#evennia.scripts.tickerhandler.TickerHandler.all">[docs]</a> <span class="k">def</span> <span class="nf">all</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">interval</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> Get all subscriptions.</span>
|
||||
<span class="sd"> Get all ticker subscriptions.</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> interval (int): Limit match to tickers with this interval.</span>
|
||||
<span class="sd"> interval (int, optional): Limit match to tickers with this interval.</span>
|
||||
|
||||
<span class="sd"> Returns:</span>
|
||||
<span class="sd"> tickers (list): If `interval` was given, this is a list of</span>
|
||||
<span class="sd"> tickers using that interval.</span>
|
||||
<span class="sd"> tickerpool_layout (dict): If `interval` was *not* given,</span>
|
||||
<span class="sd"> this is a dict {interval1: [ticker1, ticker2, ...], ...}</span>
|
||||
<span class="sd"> list or dict: If `interval` was given, this is a list of tickers using that interval.</span>
|
||||
<span class="sd"> If `interval` was *not* given, this is a dict</span>
|
||||
<span class="sd"> `{interval1: [ticker1, ticker2, ...], ...}`</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="n">interval</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
|
||||
|
|
|
|||
|
|
@ -196,7 +196,6 @@
|
|||
<span class="kn">from</span> <span class="nn">textwrap</span> <span class="kn">import</span> <span class="n">TextWrapper</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">django.conf</span> <span class="kn">import</span> <span class="n">settings</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.ansi</span> <span class="kn">import</span> <span class="n">ANSIString</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">display_len</span> <span class="k">as</span> <span class="n">d_len</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.utils</span> <span class="kn">import</span> <span class="n">is_iter</span><span class="p">,</span> <span class="n">justify</span>
|
||||
|
|
|
|||
|
|
@ -112,13 +112,12 @@
|
|||
<span class="kn">from</span> <span class="nn">django.utils</span> <span class="kn">import</span> <span class="n">timezone</span>
|
||||
<span class="kn">from</span> <span class="nn">django.utils.html</span> <span class="kn">import</span> <span class="n">strip_tags</span>
|
||||
<span class="kn">from</span> <span class="nn">django.utils.translation</span> <span class="kn">import</span> <span class="n">gettext</span> <span class="k">as</span> <span class="n">_</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">logger</span>
|
||||
<span class="kn">from</span> <span class="nn">simpleeval</span> <span class="kn">import</span> <span class="n">simple_eval</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.internet</span> <span class="kn">import</span> <span class="n">reactor</span><span class="p">,</span> <span class="n">threads</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.internet.defer</span> <span class="kn">import</span> <span class="n">returnValue</span> <span class="c1"># noqa - used as import target</span>
|
||||
<span class="kn">from</span> <span class="nn">twisted.internet.task</span> <span class="kn">import</span> <span class="n">deferLater</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils</span> <span class="kn">import</span> <span class="n">logger</span>
|
||||
|
||||
<span class="n">_MULTIMATCH_TEMPLATE</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">SEARCH_MULTIMATCH_TEMPLATE</span>
|
||||
<span class="n">_EVENNIA_DIR</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">EVENNIA_DIR</span>
|
||||
<span class="n">_GAME_DIR</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">GAME_DIR</span>
|
||||
|
|
@ -129,6 +128,7 @@
|
|||
<span class="n">_TASK_HANDLER</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="n">_TICKER_HANDLER</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="n">_STRIP_UNSAFE_TOKENS</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
<span class="n">_ANSISTRING</span> <span class="o">=</span> <span class="kc">None</span>
|
||||
|
||||
<span class="n">_GA</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__getattribute__</span>
|
||||
<span class="n">_SA</span> <span class="o">=</span> <span class="nb">object</span><span class="o">.</span><span class="fm">__setattr__</span>
|
||||
|
|
@ -314,6 +314,13 @@
|
|||
<span class="sd"> justified (str): The justified and indented block of text.</span>
|
||||
|
||||
<span class="sd"> """</span>
|
||||
<span class="c1"># we need to retain ansitrings</span>
|
||||
<span class="k">global</span> <span class="n">_ANSISTRING</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">_ANSISTRING</span><span class="p">:</span>
|
||||
<span class="kn">from</span> <span class="nn">evennia.utils.ansi</span> <span class="kn">import</span> <span class="n">ANSIString</span> <span class="k">as</span> <span class="n">_ANSISTRING</span>
|
||||
|
||||
<span class="n">is_ansi</span> <span class="o">=</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">_ANSISTRING</span><span class="p">)</span>
|
||||
<span class="n">lb</span> <span class="o">=</span> <span class="n">_ANSISTRING</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">is_ansi</span> <span class="k">else</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span>
|
||||
|
||||
<span class="k">def</span> <span class="nf">_process_line</span><span class="p">(</span><span class="n">line</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
|
|
@ -322,7 +329,9 @@
|
|||
<span class="sd"> distribute odd spaces to one of the gaps.</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">line_rest</span> <span class="o">=</span> <span class="n">width</span> <span class="o">-</span> <span class="p">(</span><span class="n">wlen</span> <span class="o">+</span> <span class="n">ngaps</span><span class="p">)</span>
|
||||
<span class="n">gap</span> <span class="o">=</span> <span class="s2">" "</span> <span class="c1"># minimum gap between words</span>
|
||||
|
||||
<span class="n">gap</span> <span class="o">=</span> <span class="n">_ANSISTRING</span><span class="p">(</span><span class="s2">" "</span><span class="p">)</span> <span class="k">if</span> <span class="n">is_ansi</span> <span class="k">else</span> <span class="s2">" "</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">line_rest</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">align</span> <span class="o">==</span> <span class="s2">"l"</span><span class="p">:</span>
|
||||
<span class="k">if</span> <span class="n">line</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"</span><span class="se">\n\n</span><span class="s2">"</span><span class="p">:</span>
|
||||
|
|
@ -362,23 +371,25 @@
|
|||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">line</span> <span class="o">=</span> <span class="n">crop</span><span class="p">(</span><span class="n">line</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="n">width</span><span class="p">,</span> <span class="n">suffix</span><span class="o">=</span><span class="s2">""</span><span class="p">)</span>
|
||||
<span class="n">abs_lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">abs_lines</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">lb</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">abs_lines</span><span class="p">)</span>
|
||||
|
||||
<span class="c1"># all other aligns requires splitting into paragraphs and words</span>
|
||||
|
||||
<span class="c1"># split into paragraphs and words</span>
|
||||
<span class="n">paragraphs</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"</span><span class="se">\n</span><span class="s2">\s*?</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="n">text</span><span class="p">,</span> <span class="n">re</span><span class="o">.</span><span class="n">MULTILINE</span><span class="p">)</span>
|
||||
<span class="n">paragraphs</span> <span class="o">=</span> <span class="p">[</span><span class="n">text</span><span class="p">]</span> <span class="c1"># re.split("\n\s*?\n", text, re.MULTILINE)</span>
|
||||
<span class="n">words</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">ip</span><span class="p">,</span> <span class="n">paragraph</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">paragraphs</span><span class="p">):</span>
|
||||
<span class="k">if</span> <span class="n">ip</span> <span class="o">></span> <span class="mi">0</span><span class="p">:</span>
|
||||
<span class="n">words</span><span class="o">.</span><span class="n">append</span><span class="p">((</span><span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span>
|
||||
<span class="n">words</span><span class="o">.</span><span class="n">extend</span><span class="p">((</span><span class="n">word</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">word</span><span class="p">))</span> <span class="k">for</span> <span class="n">word</span> <span class="ow">in</span> <span class="n">paragraph</span><span class="o">.</span><span class="n">split</span><span class="p">())</span>
|
||||
<span class="n">ngaps</span><span class="p">,</span> <span class="n">wlen</span><span class="p">,</span> <span class="n">line</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="n">words</span><span class="p">:</span>
|
||||
<span class="c1"># Just whitespace!</span>
|
||||
<span class="k">return</span> <span class="n">sp</span> <span class="o">*</span> <span class="n">width</span>
|
||||
|
||||
<span class="n">ngaps</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="n">wlen</span> <span class="o">=</span> <span class="mi">0</span>
|
||||
<span class="n">line</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="n">lines</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
|
||||
<span class="k">while</span> <span class="n">words</span><span class="p">:</span>
|
||||
|
|
@ -406,8 +417,8 @@
|
|||
<span class="k">if</span> <span class="n">line</span><span class="p">:</span> <span class="c1"># catch any line left behind</span>
|
||||
<span class="n">lines</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">_process_line</span><span class="p">(</span><span class="n">line</span><span class="p">))</span>
|
||||
<span class="n">indentstring</span> <span class="o">=</span> <span class="n">sp</span> <span class="o">*</span> <span class="n">indent</span>
|
||||
<span class="n">out</span> <span class="o">=</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">indentstring</span> <span class="o">+</span> <span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">])</span>
|
||||
<span class="k">return</span> <span class="s2">"</span><span class="se">\n</span><span class="s2">"</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">indentstring</span> <span class="o">+</span> <span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">])</span></div>
|
||||
<span class="n">out</span> <span class="o">=</span> <span class="n">lb</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">indentstring</span> <span class="o">+</span> <span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">])</span>
|
||||
<span class="k">return</span> <span class="n">lb</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">indentstring</span> <span class="o">+</span> <span class="n">line</span> <span class="k">for</span> <span class="n">line</span> <span class="ow">in</span> <span class="n">lines</span><span class="p">])</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="columnize"><a class="viewcode-back" href="../../../api/evennia.utils.utils.html#evennia.commands.default.building.columnize">[docs]</a><span class="k">def</span> <span class="nf">columnize</span><span class="p">(</span><span class="n">string</span><span class="p">,</span> <span class="n">columns</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">spacing</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">align</span><span class="o">=</span><span class="s2">"l"</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
||||
|
|
|
|||
130
docs/1.0-dev/_sources/Evennia-In-Pictures.md.txt
Normal file
130
docs/1.0-dev/_sources/Evennia-In-Pictures.md.txt
Normal file
|
|
@ -0,0 +1,130 @@
|
|||
# Evennia in pictures
|
||||
|
||||
```{sidebar}
|
||||
This is _not_ an exhaustive overview. Think of it as a snapshot of some interesting things to start looking into.
|
||||
```
|
||||
|
||||
This article tries to give a high-level overview of the Evennia server and some of its moving parts. It should hopefully give a better understanding of how everything hangs together.
|
||||
|
||||
<div style="clear: right;"></div>
|
||||
|
||||
## The two main Evennia pieces
|
||||
![evennia portal and server][image1]
|
||||
|
||||
What you see in this figure is the part of Evennia that you download from us. It will _not_ start a game on its own. We'll soon create the missing 'jigsaw puzzle piece'. But first, let's see what we have.
|
||||
|
||||
First, you'll notice that Evennia has two main components - the [Portal and Server](Components/Portal-And-Server.md). These are separate processes.
|
||||
|
||||
The Portal tracks all connections to the outside world and understands Telnet protocols, websockets, SSH and so on. It knows nothing about the database or the game state. Data sent between the Portal and the Server is protocol-agnostic, meaning the Server sends/receives the same data regardless of how the user is connected. Hiding behind the Portal also means that the Server can be completely rebooted without anyone getting disconnected.
|
||||
|
||||
The Server is the main “mud driver” and handles everything related to the game world and its database. It's asynchronous and uses [Twisted](http://twistedmatrix.com/trac/).
|
||||
|
||||
In the same process of the Server is also the Evennia [Web Server](Components/Webserver.md) . This serves the game’s website.
|
||||
<div style="clear: right;"></div>
|
||||
|
||||
### Initializing the game folder
|
||||
|
||||
![creating the game folder][image2]
|
||||
|
||||
After [installing evennia](Setup/Installation.md) you will have the `evennia` command available. Using this you create a game directory (let's call it `mygame`). This is the darker grey piece in this figure. It was missing previously. This is where you will create your dream game!
|
||||
|
||||
During initialization, Evennia will create Python module templates in `mygame/` and link up all configurations to make mygame a fully functioning, if empty, game, ready to start extending.
|
||||
|
||||
As part of the intialization, you'll create the database and then start the server. From this point on, your new game is up and running and you can connect to your new game with telnet on localhost:4000 or by pointing your browser to http://localhost:4001.
|
||||
|
||||
Now, our new mygame world needs Characters, locations, items and more!
|
||||
|
||||
## The database
|
||||
|
||||
![image3][image3]
|
||||
|
||||
Evennia is fully persistent and abstracts its database in Python using [Django](https://www.djangoproject.com/). The database tables are few and generic, each represented by a single Python class. As seen in this figure, the example `ObjectDB` Python class represents one database table. The properties on the class are the columns (fields) of the table. Each row is an instance of the class (one entity in the game).
|
||||
|
||||
Among the example columns shown is the key (name) of the `ObjectDB` entity as well as a [Foreign key](https://en.wikipedia.org/wiki/Foreign_key)-relationship for its current “location”.
|
||||
|
||||
From the figure we can see that _Trigger_ is in the _Dungeon_, carrying his trusty crossbow _Old Betsy_!
|
||||
|
||||
The `db_typeclass_path` is an important field. This is a python-style path and tells Evennia which subclass of `ObjectDB` is actually representing this entity. This is the core of Evennia's [Typeclass system](Components/Typeclasses.md), which allows you to work with database entities using normal Python.
|
||||
|
||||
### From database to Python
|
||||
|
||||
![image4][image4]
|
||||
|
||||
Here we see the (somewhat simplified) Python class inheritance tree that you as an Evennia developer will see, along with the three instanced entities.
|
||||
|
||||
[Objects](Components/Objects.md) represent stuff you will actually see in-game and its child classes implement all the handlers, helper code and the hook methods that Evennia makes use of. In your `mygame/` folder you just import these and overload the things you want to modify. In this way, the `Crossbow` is modified to do the stuff only crossbows can do and `CastleRoom` adds whatever it is that is special about rooms in the castle.
|
||||
|
||||
When creating a new entity in-game, a new row will automatically be created in the database table and then `Trigger` will appear in-game! If we, in code, search the database for Trigger, we will get an instance of the [Character](Components/Objects.md#characters) class back - a Python object we can work with normally.
|
||||
|
||||
Looking at this you may think that you will be making a lot of classes for every different object in the game. Your exact layout is up to you but Evennia also offers other ways to customize each individual object. Read on.
|
||||
|
||||
### Attributes
|
||||
|
||||
![image5][image5]
|
||||
|
||||
The [Attribute](Components/Attributes.md) is another class directly tied to the database behind the scenes. Each `Attribute` basically has a key, a value and a ForeignKey relation to another `ObjectDB`.
|
||||
|
||||
An `Attribute` serializes Python constructs into the database, meaning you can store basically any valid Python, like the dictionary of skills in this image. The “strength” and “skills” Attributes will henceforth be reachable directly from the _Trigger_ object. This (and a few other resources) allow you to create individualized entities while only needing to create classes for those that really behave fundamentally different.
|
||||
|
||||
<div style="clear: right;"></div>
|
||||
|
||||
## Controlling the action
|
||||
|
||||
![image6][image6]
|
||||
|
||||
_Trigger_ is most likely played by a human. This human connects to the game via one or more [Sessions](Components/Sessions.md), one for each client they connect with.
|
||||
|
||||
Their account on `mygame` is represented by a [Account](Components/Accounts.md) entity. The `AccountDB` holds the password and other account info but has no existence in the game world. Through the `Account` entity, `Sessions` can control (“puppet”) one or more `Object` entities in-game.
|
||||
|
||||
In this figure, a user is connected to the game with three `Session`s simultaneously. They are logged in to their player `Account` named _Richard_. Through these `Session`s they are simultaneously puppeting the in-game entities _Trigger_ and _Sir Hiss_. Evennia can be configured to allow or disallow a range of different [Connection Styles](Concepts/Connection-Styles.md) like this.
|
||||
|
||||
### Commands
|
||||
|
||||
![image7][image7]
|
||||
|
||||
For users to be able to control their game entities and actually play the game, they need to be able to send [Commands](Components/Commands.md).
|
||||
|
||||
A `Command` can be made to represent anything a user can input actively to the game, such as the `look` command, `get`, `quit`, `emote` and so on.
|
||||
|
||||
Each `Command` handles both argument parsing and execution. Since each Command is described with a normal Python class, it means that you can implement parsing once and then just have the rest of your commands inherit the effect. In the above figure, the `DIKUCommand` parent class implements parsing of all the syntax common for all DIKU-style commands so `CmdLook` and others won’t have to.
|
||||
|
||||
### Command Sets
|
||||
|
||||
![image8][image8]
|
||||
|
||||
All Evennia Commands are are always joined together in `CommandSet`s. These are containers that can hold many `Command` instances. A given `Command` class can contribute instances to any number of `CommandSet`s. These sets are always associated with game entities.
|
||||
|
||||
In this figure, _Trigger_ has received a `CommandSet` with a bunch of useful commands that he (and by extension his controlling `Account`/Player) can now use.
|
||||
|
||||
![image9][image9]
|
||||
|
||||
_Trigger_’s `CommandSet` is only available to himself. In this figure we put a `CommandSet` with three commands on the Dungeon room. The room itself has no use for commands but we configure this set to affect those _inside it_ instead. Note that we let these be _different versions_ of these commands (hence the different color)! We’ll explain why below.
|
||||
|
||||
<div style="clear: right;"></div>
|
||||
|
||||
### Merging Command Sets
|
||||
|
||||
![image10][image10]
|
||||
|
||||
Multiple `CommandSet`s can be dynamically (and temporarily) merged together in a similar fashion as [Set Theory](https://en.wikipedia.org/wiki/Set_theory), except the merge priority can be customized. In this figure we see a _Union_-type merger where the Commands from Dungeon of the same name temporarily override the commands from Trigger. While in the Dungeon, Trigger will be using this version of those commands. When Trigger leaves, his own `CommandSet` will be restored unharmed.
|
||||
|
||||
Why would we want to do this? Consider for example that the dungeon is in darkness. We can then let the Dungeon’s version of the `look` command show only the contents of the room if Trigger is carrying a light source. You might also not be able to easily get things in the room without light - you might even be fumbling randomly in your inventory!
|
||||
|
||||
Any number of Command Sets can be merged on the fly. This allows you to implement multiple overlapping states (like combat in a darkened room while intoxicated) without needing huge if statements for every possible combination. The merger is non-destructive, so you can remove cmdsets to get back previous states as needed.
|
||||
|
||||
## Now go and explore!
|
||||
|
||||
This is by no means a full list of Evennia features. But it should give you a bunch of interesting concepts to read more about.
|
||||
|
||||
You can find a lot more detail in the [Core Components](Components/Components-Overview.md) and [Core Concepts](Concepts/Concepts-Overview.md) sections of this manual. If you haven't read it already, you should also check out the [Evennia Introduction](./Evennia-Introduction.md).
|
||||
|
||||
[image1]: https://2.bp.blogspot.com/-0-oir21e76k/W3kaUuGrg3I/AAAAAAAAJLU/qlQWmXlAiGUz_eKG_oYYVRf0yP6KVDdmQCEwYBhgL/s1600/Evennia_illustrated_fig1.png
|
||||
[image2]: https://4.bp.blogspot.com/-TuLk-PIVyK8/W3kaUi-e-MI/AAAAAAAAJLc/DA9oMA6m5ooObZlf0Ao6ywW1jHqsPQZAQCEwYBhgL/s1600/Evennia_illustrated_fig2.png
|
||||
[image3]: https://3.bp.blogspot.com/-81zsySVi_EE/W3kaVRn4IWI/AAAAAAAAJLc/yA-j1Nwy4H8F28BF403EDdCquYZ9sN4ZgCEwYBhgL/s1600/Evennia_illustrated_fig3.png
|
||||
[image4]: https://2.bp.blogspot.com/--4_MqVdHj8Q/W3kaVpdAZKI/AAAAAAAAJLk/jvTsuBBUlkEbBCaV9vyIU0IWiuF6PLsSwCEwYBhgL/s1600/Evennia_illustrated_fig4.png
|
||||
[image5]: https://3.bp.blogspot.com/-6ulv5T_gUCI/W3kaViWBBfI/AAAAAAAAJLU/0NqeAsz3YVsQKwpODzsmjzR-7tICw1pTQCEwYBhgL/s1600/Evennia_illustrated_fig5.png
|
||||
[image6]: https://4.bp.blogspot.com/-u-npXjlq6VI/W3kaVwAoiUI/AAAAAAAAJLY/T9bhrzhJJuQwTR8nKHH9GUxQ74hyldKOgCEwYBhgL/s1600/Evennia_illustrated_fig6.png
|
||||
[image7]: https://3.bp.blogspot.com/-_RM9-Pb2uKg/W3kaWIs4ndI/AAAAAAAAJLc/n45Hcvk1PiYhNdBbAAr_JjkebRVReffTgCEwYBhgL/s1600/Evennia_illustrated_fig7.png
|
||||
[image8]: https://2.bp.blogspot.com/-pgpYPsd4CLM/W3kaWG2ffuI/AAAAAAAAJLg/LKl4m4-1xkYxVA7JXXuVP28Q9ZqhNZXTACEwYBhgL/s1600/Evennia_illustrated_fig8.png
|
||||
[image9]: https://3.bp.blogspot.com/-acmVo7kUZCk/W3kaWZWlT0I/AAAAAAAAJLk/nnFrNaq_TNoO08MDleadwhHfVQLdO74eACEwYBhgL/s1600/Evennia_illustrated_fig9.png
|
||||
[image10]: https://4.bp.blogspot.com/--lixKOYjEe4/W3kaUl9SFXI/AAAAAAAAJLQ/tCGd-dFhZ8gfLH1HAsQbZdaIS_OQuvU3wCEwYBhgL/s1600/Evennia_illustrated_fig10.png
|
||||
|
|
@ -7,77 +7,94 @@ Players can read or view descriptions of rooms, objects, other players, non-play
|
|||
actions performed in the virtual world. Players typically interact with each other and the world by
|
||||
typing commands that resemble a natural language.* - [Wikipedia](https://en.wikipedia.org/wiki/MUD)
|
||||
|
||||
If you are reading this, it's quite likely you are dreaming of creating and running a text-based
|
||||
massively-multiplayer game ([MUD/MUX/MUSH](https://tinyurl.com/c5sc4bm) etc) of your very own. You
|
||||
might just be starting to think about it, or you might have lugged around that *perfect* game in
|
||||
your mind for years ... you know *just* how good it would be, if you could only make it come to
|
||||
reality. We know how you feel. That is, after all, why Evennia came to be.
|
||||
If you are reading this, it's quite likely you are dreaming of creating and running a text-based massively-multiplayer game ([MUD/MUX/MUSH](https://tinyurl.com/c5sc4bm) etc) of your very own. You might just be starting to think about it, or you might have lugged around that *perfect* game in your mind for years ... you know *just* how good it would be, if you could only make it come to reality.
|
||||
|
||||
Evennia is a MU\*-building system: a bare-bones Python codebase and server intended to
|
||||
be highly extendable for any style of game. "Bare-bones" in this context means that we try to impose as few game-specific things on you as possible. For convenience offer basic building
|
||||
blocks like objects, characters, rooms, default commands for building and administration etc, we
|
||||
don't prescribe any combat rules, mob AI, races, skills, character classes or other things that will
|
||||
be different from game to game anyway.
|
||||
We know how you feel. That is, after all, why Evennia came to be.
|
||||
|
||||
What we *do* however, is to provide a solid foundation for all the boring database, networking, and
|
||||
behind-the-scenes administration stuff that all online games need whether they like it or not.
|
||||
Evennia is *fully persistent*, that means things you drop on the ground somewhere will still be
|
||||
there a dozen server reboots later. Through Django we support a large variety of different database
|
||||
systems (a database is created for you automatically if you use the defaults).
|
||||
## What is Evennia?
|
||||
|
||||
We also include a growing list of *optional* [contribs](Contribs/Contribs-Overview.md) you can use for your game would you want something to build from.
|
||||
Evennia is a MU\*-building framework: a bare-bones Python codebase and server intended to be highly extendable for any style of game.
|
||||
|
||||
Using the full power of Python throughout the server offers some distinct advantages. All your coding, from object definitions and custom commands to AI scripts and economic systems is done in normal Python modules rather than some ad-hoc scripting language. The fact that you script the game in the same high-level language that you code it in allows for very powerful and custom game implementations indeed.
|
||||
### Bare-bones?
|
||||
|
||||
Out of the box, Evennia gives you a 'talker'-type of game; you can walk around, chat, build rooms and objects, do basic roleplaying and administration. The server ships with a default set of player commands that are similar to the MUX command set. We *do not* aim specifically to be a MUX server, but we had to pick some default to go with (see [this](Coding/Soft-Code.md) for more about our original motivations). It's easy to remove or add commands, or to have the command syntax mimic other systems, like Diku, LP, MOO and so on. Or why not create a new and better command system of your own design.
|
||||
Evennia is "bare-bones" in the sense that we try to impose as few game-specific things on you as possible. We don't prescribe any combat rules, mob AI, races, skills, character classes or other things.
|
||||
|
||||
We figure you will want to make that for yourself, just like you want it!
|
||||
|
||||
### Framework?
|
||||
|
||||
Evennia is bare-bones, but not _that_ barebones. We do offer basic building blocks like objects, characters and rooms, in-built channels and so on. We also provide of useful commands for building and administration etc.
|
||||
|
||||
Out of the box you'll have a 'talker' type of game - an empty but fully functional social game where you can build rooms, walk around and chat/roleplay. Evennia handles all the boring database, networking, and behind-the-scenes administration stuff that all online games need whether they like it or not. It's a blank slate for you to expand on.
|
||||
|
||||
We also include a growing list of optional [contribs](Contribs/Contribs-Overview.md) you can use with your game. These are more game-specific and can help to inspire or have something to build from.
|
||||
|
||||
### Server?
|
||||
|
||||
Evennia is its own webserver. When you start Evennia, your server hosts a game website and a browser webclient. This allows your players to play both in their browsers as well as connect using traditional MUD clients. None of this is visible to the internet until you feel ready to share your game with the world.
|
||||
|
||||
### Python?
|
||||
|
||||
[Python](https://en.wikipedia.org/wiki/Python_(programming_language)) is not only one of the most popular programming languages languages in use today, it is also considered one of the easiest to learn. In the Evennia community, we have many people who learned Python or programming by making a game. Some even got a job from the skills they learned working with Evennia!
|
||||
|
||||
All your coding, from object definitions and custom commands to AI scripts and economic systems is done in normal Python modules rather than some ad-hoc scripting language.
|
||||
|
||||
## Can I test it somewhere?
|
||||
|
||||
Evennia's demo server can be found at [https://demo.evennia.com](https://demo.evennia.com). If you prefer to
|
||||
connect to the demo via your telnet client you can do so at `demo.evennia.com`, port `4000`.
|
||||
Evennia's demo server can be found at [https://demo.evennia.com](https://demo.evennia.com) or on `demo.evennia.com`, port `4000` if you are using a traditional MUD client.
|
||||
|
||||
Once you installed Evennia yourself it comes with its own tutorial - this shows off some of the
|
||||
possibilities _and_ gives you a small single-player quest to play. The tutorial takes only one
|
||||
single in-game command to install as explained [here](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Tutorial-World.md).
|
||||
Once you installed Evennia, you can also create a tutorial mini-game with a single command. Read more about it [here](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Tutorial-World.md).
|
||||
|
||||
## What you need to know to work with Evennia
|
||||
## What do I need to know to work with Evennia?
|
||||
|
||||
Assuming you have Evennia working (see the [quick start instructions](Setup/Installation.md)) and have
|
||||
gotten as far as to start the server and connect to it with the client of your choice, here's what
|
||||
you need to know depending on your skills and needs.
|
||||
Once you [installed Evennia](Setup/Installation.md) and connected, you should decide on what you want to do.
|
||||
|
||||
### I don't know (or don't want to do) any programming - I just want to run a game!
|
||||
|
||||
Evennia comes with a default set of commands for the Python newbies and for those who need to get a game running *now*. Stock Evennia is enough for running a simple 'Talker'-type game - you can build and describe rooms and basic objects, have chat channels, do emotes and other things suitable for a social or free-form MU\*. Combat, mobs and other game elements are not included, so you'll have a very basic game indeed if you are not willing to do at least *some* coding.
|
||||
Evennia comes with a default set of commands for the Python newbies and for those who need to get a game running *now*.
|
||||
|
||||
Stock Evennia is enough for running a simple 'Talker'-type game - you can build and describe rooms and basic objects, have chat channels, do emotes and other things suitable for a social or free-form MU\*.
|
||||
|
||||
Combat, mobs and other game elements are not included, so you'll have a very basic game indeed if you are not willing to do at least *some* coding.
|
||||
|
||||
### I know basic Python, or I am willing to learn
|
||||
|
||||
Evennia's source code is [extensively documented](https://www.evennia.com/docs/latest). But while Python is considered a very easy programming language to get into, you do have a learning curve to climb if you are new to programming. Evennia's [Starting-tutorial](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Part1-Overview.md) has a [basic introduction to Python](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-basic-introduction.md) but you should probably also sit down with a full Python beginner's tutorial at some point (there are plenty of them on the web if you look around). See also our [link page](./Links.md) for some reading suggestions.
|
||||
Start small. Evennia's [Beginner tutorial](Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md) is a good place to start.
|
||||
|
||||
```{sidebar}
|
||||
See also our [link page](./Links.md) for some reading suggestions.
|
||||
```
|
||||
While Python is considered a very easy programming language to get into, you do have a learning curve to climb if you are new to programming. The beginner-tutorial has a [basic introduction to Python](Howtos/Beginner-Tutorial/Part1/Beginner-Tutorial-Python-basic-introduction.md), but if you are completely new, you should probably also sit down with a full Python beginner's tutorial at some point. There are plenty of them on the web if you look around.
|
||||
|
||||
To code your dream game in Evennia you don't need to be a Python guru, but you do need to be able to read example code containing at least these basic Python features:
|
||||
|
||||
- Importing and using python [modules](https://docs.python.org/3.7/tutorial/modules.html)
|
||||
- Using [variables](https://www.tutorialspoint.com/python/python_variable_types.htm), [conditional statements](https://docs.python.org/tutorial/controlflow.html#if-statements),
|
||||
[loops](https://docs.python.org/tutorial/controlflow.html#for-statements) and [functions](https://docs.python.org/tutorial/controlflow.html#defining-functions)
|
||||
- Importing and using python [modules](https://docs.python.org/3.11/tutorial/modules.html)
|
||||
- Using [variables](https://www.tutorialspoint.com/python/python_variable_types.htm), [conditional statements](https://docs.python.org/tutorial/controlflow.html#if-statements), [loops](https://docs.python.org/tutorial/controlflow.html#for-statements) and [functions](https://docs.python.org/tutorial/controlflow.html#defining-functions)
|
||||
- Using [lists, dictionaries and list comprehensions](https://docs.python.org/tutorial/datastructures.html)
|
||||
- Doing [string handling and formatting](https://docs.python.org/tutorial/introduction.html#strings)
|
||||
- Have a basic understanding of [object-oriented programming](https://www.tutorialspoint.com/python/python_classes_objects.htm), using
|
||||
[Classes](https://docs.python.org/tutorial/classes.html), their methods and properties
|
||||
- Have a basic understanding of [object-oriented programming](https://www.tutorialspoint.com/python/python_classes_objects.htm), using [Classes](https://docs.python.org/tutorial/classes.html), their methods and properties
|
||||
|
||||
Obviously, the more things you feel comfortable with, the easier time you'll have to find your way.
|
||||
With just basic knowledge you should be able to define your own [Commands](Components/Commands.md), create custom
|
||||
[Objects](Components/Objects.md) as well as make your world come alive with basic [Scripts](Components/Scripts.md). You can
|
||||
definitely build a whole advanced and customized game from extending Evennia's examples only.
|
||||
|
||||
With just basic knowledge you can set out to build your game by expanding Evennia's examples.
|
||||
|
||||
### I know my Python stuff and I am willing to use it!
|
||||
|
||||
Even if you started out as a Python beginner, you will likely get to this point after working on your game for a while. With more general knowledge in Python the full power of Evennia opens up for you. Apart from modifying commands, objects and scripts, you can develop everything from advanced mob AI and economic systems, through sophisticated combat and social mini games, to redefining how commands, players, rooms or channels themselves work. Since you code your game by importing normal Python modules, there are few limits to what you can accomplish.
|
||||
Even if you started out as a Python beginner, you will likely get to this point after working on your game for a while.
|
||||
|
||||
With more general knowledge in Python the full power of Evennia opens up for you. Apart from modifying commands, objects and scripts, you can develop everything from advanced mob AI and economic systems, through sophisticated combat and social mini games, to redefining how commands, players, rooms or channels themselves work. Since you code your game by importing normal Python modules, there are few limits to what you can accomplish.
|
||||
|
||||
If you *also* happen to know some web programming (HTML, CSS, Javascript) there is also a web
|
||||
presence (a website and a mud web client) to play around with ...
|
||||
|
||||
## Where to from here?
|
||||
|
||||
It's recommended you jump into the [Beginner Tutorial](Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md). You can either follow it or jump around to lessons that seem interesting. You can also read the lead developer's [dev blog](https://www.evennia.com/devblog/index.html) for many tidbits and snippets about Evennia's development and structure.
|
||||
To get a top-level overview of Evennia, you can check out [Evennia in pictures](./Evennia-In-Pictures.md).
|
||||
|
||||
Sometimes it's easier to ask for help. Get engaged in the Evennia community by joining our [Discord](https://discord.gg/AJJpcRUhtF) for direct support. Make an introductory post to our [Discussion forum](https://github.com/evennia/evennia/discussions) and say hi!.
|
||||
After that it's a good idea to jump into the [Beginner Tutorial](Howtos/Beginner-Tutorial/Beginner-Tutorial-Overview.md). You can either follow it lesson for lesson or jump around to what seems interesting. There are also more [Tutorials and Howto's](Howtos/Howtos-Overview.md#howtos) to look over.
|
||||
|
||||
You can also read the lead developer's [dev blog](https://www.evennia.com/devblog/index.html) for many tidbits and snippets about Evennia's development and structure.
|
||||
|
||||
Sometimes it's easier to ask for help. Get engaged in the Evennia community by joining our [Discord](https://discord.gg/AJJpcRUhtF) for direct support. Make an introductory post to our [Discussion forum](https://github.com/evennia/evennia/discussions) and say hi! See [here](./Contributing.md) for more ways to get and give help to the project.
|
||||
|
||||
Welcome to Evennia!
|
||||
|
|
@ -43,5 +43,4 @@ Client-Support-Grid
|
|||
Security-Practices
|
||||
Config-HAProxy
|
||||
Config-Apache-Proxy
|
||||
|
||||
```
|
||||
|
|
@ -13,6 +13,7 @@
|
|||
This is the manual of [Evennia](https://www.evennia.com), the open source Python `MU*` creation system. Use the Search bar on the left to find or discover interesting articles.
|
||||
|
||||
- [Introduction](./Evennia-Introduction.md) - what is this Evennia thing?
|
||||
- [Evennia in Pictures](./Evennia-In-Pictures.md) - a visual overview of Evennia
|
||||
- [Contributing and Getting help](./Contributing.md) - when you get stuck or want to chip in
|
||||
|
||||
## Setup
|
||||
|
|
@ -27,21 +28,20 @@ This is the manual of [Evennia](https://www.evennia.com), the open source Python
|
|||
|
||||
- [The Beginner Tutorial](Howtos/Howtos-Overview.md#beginner-tutorial) - learn the basics and build a small game (in progress)
|
||||
- [Tutorials and Howto's](Howtos/Howtos-Overview.md#howtos) - mixed tutorials and help articles to learn Evennia
|
||||
- [Coding with Evennia](Coding/Coding-Overview.md) - resources and hints for coding and development
|
||||
|
||||
## Developing with Evennia
|
||||
## The Evennia Library
|
||||
|
||||
- [Coding with Evennia](Coding/Coding-Overview.md) - coding and development hints and resources
|
||||
- [Core components](Components/Components-Overview.md) - the core building blocks of Evennia
|
||||
- [Core Concepts](Concepts/Concepts-Overview.md) - larger-scale concepts and features
|
||||
- [API](./Evennia-API.md) - the full API-reference, generated from source
|
||||
- [Default Commands](Components/Default-Commands.md) - list of game commands included out of the box
|
||||
|
||||
## Contributions and Info
|
||||
|
||||
- [Contribs](Contribs/Contribs-Overview.md) - game-specific code and snippets to use for your game
|
||||
- [Documentation - how to contribute](./Contributing-Docs.md) - if you want to help out
|
||||
- [Links](./Links.md) - useful external links for extra reading
|
||||
- [Documentation - how to contribute](./Contributing-Docs.md) - if you want to help out with this manual
|
||||
- [License](./Licensing.md) - Evennia licensing FAQ
|
||||
- [Links](./Links.md) - useful links if you need extra reading
|
||||
|
||||
----
|
||||
|
||||
|
|
@ -56,6 +56,7 @@ This is the manual of [Evennia](https://www.evennia.com), the open source Python
|
|||
:maxdepth: 3
|
||||
|
||||
Evennia-Introduction
|
||||
Evennia-In-Pictures
|
||||
Setup/Running-Evennia
|
||||
Setup/Updating-Evennia
|
||||
Setup/Setup-Overview
|
||||
|
|
|
|||
|
|
@ -104,6 +104,12 @@ img {
|
|||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* images in the body */
|
||||
p > img {
|
||||
float: right;
|
||||
padding:0.5em 1em 0.5em 1em;
|
||||
}
|
||||
|
||||
/* -- search page ----------------------------------------------------------- */
|
||||
|
||||
ul.search {
|
||||
|
|
|
|||
|
|
@ -463,6 +463,7 @@ div.linenodiv>pre {
|
|||
}
|
||||
|
||||
|
||||
|
||||
/* -- screen sizes ------------------------------------------------------------------ */
|
||||
|
||||
@media print, screen and (max-width: 960px) {
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@ to accounts respectively.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.admin.CmdEmit.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['pemit', 'remit']</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['remit', 'pemit']</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -348,7 +348,7 @@ to accounts respectively.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.admin.CmdEmit.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'pemit remit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' pemit remit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'remit pemit', 'category': 'admin', 'key': 'emit', 'no_prefix': ' remit pemit', 'tags': '', 'text': '\n admin command for emitting message to multiple objects\n\n Usage:\n emit[/switches] [<obj>, <obj>, ... =] <message>\n remit [<obj>, <obj>, ... =] <message>\n pemit [<obj>, <obj>, ... =] <message>\n\n Switches:\n room - limit emits to rooms only (default)\n accounts - limit emits to accounts only\n contents - send to the contents of matched objects too\n\n Emits a message to the selected objects or to\n your immediate surroundings. If the object is a room,\n send to its contents. remit and pemit are just\n limited forms of emit, for sending to rooms and\n to accounts respectively.\n '}</em><a class="headerlink" href="#evennia.commands.default.admin.CmdEmit.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ skipping, reloading etc.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.batchprocess.CmdBatchCommands.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['batchcommand', 'batchcmd']</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['batchcmd', 'batchcommand']</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -169,7 +169,7 @@ skipping, reloading etc.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.batchprocess.CmdBatchCommands.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'batchcommand batchcmd', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcommand batchcmd', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'batchcmd batchcommand', 'category': 'building', 'key': 'batchcommands', 'no_prefix': ' batchcmd batchcommand', 'tags': '', 'text': '\n build from batch-command file\n\n Usage:\n batchcommands[/interactive] <python.path.to.file>\n\n Switch:\n interactive - this mode will offer more control when\n executing the batch file, like stepping,\n skipping, reloading etc.\n\n Runs batches of commands from a batch-cmd text file (*.ev).\n\n '}</em><a class="headerlink" href="#evennia.commands.default.batchprocess.CmdBatchCommands.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -592,7 +592,7 @@ You can specify the /force switch to bypass this confirmation.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdDestroy.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@del', '@delete']</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@delete', '@del']</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -633,7 +633,7 @@ You can specify the /force switch to bypass this confirmation.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdDestroy.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@del @delete', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy del delete', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@delete @del', 'category': 'building', 'key': '@destroy', 'no_prefix': 'destroy delete del', 'tags': '', 'text': '\n permanently delete objects\n\n Usage:\n destroy[/switches] [obj, obj2, obj3, [dbref-dbref], ...]\n\n Switches:\n override - The destroy command will usually avoid accidentally\n destroying account objects. This switch overrides this safety.\n force - destroy without confirmation.\n Examples:\n destroy house, roof, door, 44-78\n destroy 5-10, flower, 45\n destroy/force north\n\n Destroys one or many objects. If dbrefs are used, a range to delete can be\n given, e.g. 4-10. Also the end points will be deleted. This command\n displays a confirmation before destroying, to make sure of your choice.\n You can specify the /force switch to bypass this confirmation.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdDestroy.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -1345,7 +1345,7 @@ server settings.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdTypeclass.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@update', '@parent', '@type', '@swap', '@typeclasses']</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@update', '@typeclasses', '@type', '@swap', '@parent']</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -1376,7 +1376,7 @@ server settings.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdTypeclass.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@update @parent @type @swap @typeclasses', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass update parent type swap typeclasses', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@update @typeclasses @type @swap @parent', 'category': 'building', 'key': '@typeclass', 'no_prefix': 'typeclass update typeclasses type swap parent', 'tags': '', 'text': "\n set or change an object's typeclass\n\n Usage:\n typeclass[/switch] <object> [= typeclass.path]\n typeclass/prototype <object> = prototype_key\n\n typeclasses or typeclass/list/show [typeclass.path]\n swap - this is a shorthand for using /force/reset flags.\n update - this is a shorthand for using the /force/reload flag.\n\n Switch:\n show, examine - display the current typeclass of object (default) or, if\n given a typeclass path, show the docstring of that typeclass.\n update - *only* re-run at_object_creation on this object\n meaning locks or other properties set later may remain.\n reset - clean out *all* the attributes and properties on the\n object - basically making this a new clean object. This will also\n reset cmdsets!\n force - change to the typeclass also if the object\n already has a typeclass of the same name.\n list - show available typeclasses. Only typeclasses in modules actually\n imported or used from somewhere in the code will show up here\n (those typeclasses are still available if you know the path)\n prototype - clean and overwrite the object with the specified\n prototype key - effectively making a whole new object.\n\n Example:\n type button = examples.red_button.RedButton\n type/prototype button=a red button\n\n If the typeclass_path is not given, the current object's typeclass is\n assumed.\n\n View or set an object's typeclass. If setting, the creation hooks of the\n new typeclass will be run on the object. If you have clashing properties on\n the old class, use /reset. By default you are protected from changing to a\n typeclass of the same name as the one you already have - use /force to\n override this protection.\n\n The given typeclass must be identified by its location using python\n dot-notation pointing to the correct module and class. If no typeclass is\n given (or a wrong typeclass is given). Errors in the path or new typeclass\n will lead to the old typeclass being kept. The location of the typeclass\n module is searched from the default typeclass directory, as defined in the\n server settings.\n\n "}</em><a class="headerlink" href="#evennia.commands.default.building.CmdTypeclass.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -1531,7 +1531,7 @@ If object is not specified, the current location is examined.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdExamine.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@ex', '@exam']</em><a class="headerlink" href="#evennia.commands.default.building.CmdExamine.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@exam', '@ex']</em><a class="headerlink" href="#evennia.commands.default.building.CmdExamine.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -1799,7 +1799,7 @@ the cases, see the module doc.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdExamine.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@ex @exam', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine ex exam', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdExamine.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@exam @ex', 'category': 'building', 'key': '@examine', 'no_prefix': 'examine exam ex', 'tags': '', 'text': '\n get detailed information about an object\n\n Usage:\n examine [<object>[/attrname]]\n examine [*<account>[/attrname]]\n\n Switch:\n account - examine an Account (same as adding *)\n object - examine an Object (useful when OOC)\n script - examine a Script\n channel - examine a Channel\n\n The examine command shows detailed game info about an\n object and optionally a specific attribute on it.\n If object is not specified, the current location is examined.\n\n Append a * before the search string to examine an account.\n\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdExamine.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -1833,7 +1833,7 @@ one is given.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdFind.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@search', '@locate']</em><a class="headerlink" href="#evennia.commands.default.building.CmdFind.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@locate', '@search']</em><a class="headerlink" href="#evennia.commands.default.building.CmdFind.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -1864,7 +1864,7 @@ one is given.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.building.CmdFind.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@search @locate', 'category': 'building', 'key': '@find', 'no_prefix': 'find search locate', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdFind.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@locate @search', 'category': 'building', 'key': '@find', 'no_prefix': 'find locate search', 'tags': '', 'text': '\n search the database for objects\n\n Usage:\n find[/switches] <name or dbref or *account> [= dbrefmin[-dbrefmax]]\n locate - this is a shorthand for using the /loc switch.\n\n Switches:\n room - only look for rooms (location=None)\n exit - only look for exits (destination!=None)\n char - only look for characters (BASE_CHARACTER_TYPECLASS)\n exact - only exact matches are returned.\n loc - display object location if exists and match has one result\n startswith - search for names starting with the string, rather than containing\n\n Searches the database for an object of a particular name or exact #dbref.\n Use *accountname to search for an account. The switches allows for\n limiting object matches to certain game entities. Dbrefmin and dbrefmax\n limits matches to within the given dbrefs range, or above/below if only\n one is given.\n '}</em><a class="headerlink" href="#evennia.commands.default.building.CmdFind.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -323,7 +323,7 @@ inv</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdInventory.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'i']</em><a class="headerlink" href="#evennia.commands.default.general.CmdInventory.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['i', 'inv']</em><a class="headerlink" href="#evennia.commands.default.general.CmdInventory.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -354,7 +354,7 @@ inv</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdInventory.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdInventory.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdInventory.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -598,7 +598,7 @@ placing it in their inventory.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdSay.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ["'", '"']</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['"', "'"]</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -629,7 +629,7 @@ placing it in their inventory.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdSay.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'no_prefix': ' \' "', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' " \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdSay.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -773,7 +773,7 @@ which permission groups you are a member of.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdAccess.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['groups', 'hierarchy']</em><a class="headerlink" href="#evennia.commands.default.general.CmdAccess.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['hierarchy', 'groups']</em><a class="headerlink" href="#evennia.commands.default.general.CmdAccess.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -804,7 +804,7 @@ which permission groups you are a member of.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.general.CmdAccess.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'groups hierarchy', 'category': 'general', 'key': 'access', 'no_prefix': ' groups hierarchy', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdAccess.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'hierarchy groups', 'category': 'general', 'key': 'access', 'no_prefix': ' hierarchy groups', 'tags': '', 'text': '\n show your current game access\n\n Usage:\n access\n\n This command shows you the permission hierarchy and\n which permission groups you are a member of.\n '}</em><a class="headerlink" href="#evennia.commands.default.general.CmdAccess.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -902,7 +902,7 @@ main test suite started with</p>
|
|||
<p>Test the batch processor.</p>
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.tests.TestBatchProcess.red_button">
|
||||
<code class="sig-name descname">red_button</code><em class="property"> = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmpdwiz7bdy/ff8dde6011a5f65a4e856bfe1b128bff6ff14453/evennia/contrib/tutorials/red_button/red_button.py'></em><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess.red_button" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">red_button</code><em class="property"> = <module 'evennia.contrib.tutorials.red_button.red_button' from '/tmp/tmp2mfxceq5/e090665f50c4976a7579352f933e13b1052f41ef/evennia/contrib/tutorials/red_button/red_button.py'></em><a class="headerlink" href="#evennia.commands.default.tests.TestBatchProcess.red_button" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ connect “account name” “pass word”</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['con', 'conn', 'co']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['conn', 'con', 'co']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -157,7 +157,7 @@ there is no object yet before the account has logged in)</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedConnect.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n connect to the game\n\n Usage (at login screen):\n connect accountname password\n connect "account name" "pass word"\n\n Use the create command to first create an account before logging in.\n\n If you have spaces in your name, enclose it in double quotes.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -181,7 +181,7 @@ create “account name” “pass word”</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedCreate.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['cre', 'cr']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedCreate.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['cr', 'cre']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedCreate.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -212,7 +212,7 @@ create “account name” “pass word”</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedCreate.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedCreate.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n create a new account account\n\n Usage (at login screen):\n create <accountname> <password>\n create "account name" "pass word"\n\n This creates a new account account.\n\n If you have spaces in your name, enclose it in double quotes.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedCreate.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -286,7 +286,7 @@ All it does is display the connect screen.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'look']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['look', 'l']</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -312,7 +312,7 @@ All it does is display the connect screen.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.commands.default.unloggedin.CmdUnconnectedLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n look when in unlogged-in state\n\n Usage:\n look\n\n This is an unconnected version of the look command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}</em><a class="headerlink" href="#evennia.commands.default.unloggedin.CmdUnconnectedLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ the module given by settings.CONNECTION_SCREEN_MODULE.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['con', 'conn', 'co']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['conn', 'con', 'co']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -169,7 +169,7 @@ there is no object yet before the account has logged in)</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'con conn co', 'category': 'general', 'key': 'connect', 'no_prefix': ' con conn co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'conn con co', 'category': 'general', 'key': 'connect', 'no_prefix': ' conn con co', 'tags': '', 'text': '\n Connect to the game.\n\n Usage (at login screen):\n connect <email> <password>\n\n Use the create command to first create an account before logging in.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedConnect.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -191,7 +191,7 @@ there is no object yet before the account has logged in)</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedCreate.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['cre', 'cr']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedCreate.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['cr', 'cre']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedCreate.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -227,7 +227,7 @@ name enclosed in quotes:</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedCreate.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'cre cr', 'category': 'general', 'key': 'create', 'no_prefix': ' cre cr', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedCreate.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'cr cre', 'category': 'general', 'key': 'create', 'no_prefix': ' cr cre', 'tags': '', 'text': '\n Create a new account.\n\n Usage (at login screen):\n create "accountname" <email> <password>\n\n This creates a new account account.\n\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedCreate.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -291,7 +291,7 @@ All it does is display the connect screen.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'look']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['look', 'l']</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -317,7 +317,7 @@ All it does is display the connect screen.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l look', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' l look', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'look l', 'category': 'general', 'key': '__unloggedin_look_command', 'no_prefix': ' look l', 'tags': '', 'text': '\n This is an unconnected version of the `look` command for simplicity.\n\n This is called by the server and kicks everything in gear.\n All it does is display the connect screen.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.email_login.email_login.CmdUnconnectedLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.ingame_python.commands.CmdCallback.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@callback', '@calls', '@callbacks']</em><a class="headerlink" href="#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['@callback', '@callbacks', '@calls']</em><a class="headerlink" href="#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -197,7 +197,7 @@ on user permission.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.ingame_python.commands.CmdCallback.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@callback @calls @callbacks', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback calls callbacks', 'tags': '', 'text': '\n Command to edit callbacks.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '@callback @callbacks @calls', 'category': 'building', 'key': '@call', 'no_prefix': 'call callback callbacks calls', 'tags': '', 'text': '\n Command to edit callbacks.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.ingame_python.commands.CmdCallback.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -160,7 +160,7 @@ aliases to an already joined channel.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['aliaschan', 'chanalias']</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['chanalias', 'aliaschan']</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -191,7 +191,7 @@ aliases to an already joined channel.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'aliaschan chanalias', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' aliaschan chanalias', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'chanalias aliaschan', 'category': 'comms', 'key': 'addcom', 'no_prefix': ' chanalias aliaschan', 'tags': '', 'text': '\n Add a channel alias and/or subscribe to a channel\n\n Usage:\n addcom [alias=] <channel>\n\n Joins a given channel. If alias is given, this will allow you to\n refer to the channel by this alias rather than the full channel\n name. Subsequent calls of this command can be used to add multiple\n aliases to an already joined channel.\n '}</em><a class="headerlink" href="#evennia.contrib.base_systems.mux_comms_cmds.mux_comms_cmds.CmdAddCom.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ the operation will be general or on the room.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['chicken out', 'abort', 'q', 'quit']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['quit', 'chicken out', 'abort', 'q']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -235,7 +235,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'chicken out abort q quit', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' chicken out abort q quit', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'quit chicken out abort q', 'category': 'evscaperoom', 'key': 'give up', 'no_prefix': ' quit chicken out abort q', 'tags': '', 'text': '\n Give up\n\n Usage:\n give up\n\n Abandons your attempts at escaping and of ever winning the pie-eating contest.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGiveUp.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -371,7 +371,7 @@ shout</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['shout', 'whisper', ';']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['whisper', 'shout', ';']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -400,7 +400,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'shout whisper ;', 'category': 'general', 'key': 'say', 'no_prefix': ' shout whisper ;', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'whisper shout ;', 'category': 'general', 'key': 'say', 'no_prefix': ' whisper shout ;', 'tags': '', 'text': '\n Perform an communication action.\n\n Usage:\n say <text>\n whisper\n shout\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdSpeak.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -490,7 +490,7 @@ looks and what actions is available.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['examine', 'ex', 'e', 'unfocus']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['unfocus', 'ex', 'e', 'examine']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -519,7 +519,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'examine ex e unfocus', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' examine ex e unfocus', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'unfocus ex e examine', 'category': 'evscaperoom', 'key': 'focus', 'no_prefix': ' unfocus ex e examine', 'tags': '', 'text': '\n Focus your attention on a target.\n\n Usage:\n focus <obj>\n\n Once focusing on an object, use look to get more information about how it\n looks and what actions is available.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdFocus.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -581,7 +581,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'i', 'inventory', 'give']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['i', 'give', 'inv', 'inventory']</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -605,7 +605,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inv i inventory give', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' inv i inventory give', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'i give inv inventory', 'category': 'evscaperoom', 'key': 'get', 'no_prefix': ' i give inv inventory', 'tags': '', 'text': '\n Use focus / examine instead.\n\n '}</em><a class="headerlink" href="#evennia.contrib.full_systems.evscaperoom.commands.CmdGet.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -745,7 +745,7 @@ try to influence the other part in the deal.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.game_systems.barter.barter.CmdStatus.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['offers', 'deal']</em><a class="headerlink" href="#evennia.contrib.game_systems.barter.barter.CmdStatus.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['deal', 'offers']</em><a class="headerlink" href="#evennia.contrib.game_systems.barter.barter.CmdStatus.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -771,7 +771,7 @@ try to influence the other part in the deal.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.game_systems.barter.barter.CmdStatus.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'offers deal', 'category': 'trading', 'key': 'status', 'no_prefix': ' offers deal', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}</em><a class="headerlink" href="#evennia.contrib.game_systems.barter.barter.CmdStatus.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'deal offers', 'category': 'trading', 'key': 'status', 'no_prefix': ' deal offers', 'tags': '', 'text': "\n show a list of the current deal\n\n Usage:\n status\n deal\n offers\n\n Shows the currently suggested offers on each sides of the deal. To\n accept the current deal, use the 'accept' command. Use 'offer' to\n change your deal. You might also want to use 'say', 'emote' etc to\n try to influence the other part in the deal.\n "}</em><a class="headerlink" href="#evennia.contrib.game_systems.barter.barter.CmdStatus.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -622,7 +622,7 @@ inv</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.game_systems.clothing.clothing.CmdInventory.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'i']</em><a class="headerlink" href="#evennia.contrib.game_systems.clothing.clothing.CmdInventory.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['i', 'inv']</em><a class="headerlink" href="#evennia.contrib.game_systems.clothing.clothing.CmdInventory.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -653,7 +653,7 @@ inv</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.game_systems.clothing.clothing.CmdInventory.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.clothing.clothing.CmdInventory.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n view inventory\n\n Usage:\n inventory\n inv\n\n Shows your inventory.\n '}</em><a class="headerlink" href="#evennia.contrib.game_systems.clothing.clothing.CmdInventory.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -340,7 +340,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a><account&g
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -360,7 +360,7 @@ look <a href="#id1"><span class="problematic" id="id2">*</span></a><account&g
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'general', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ls l', 'category': 'general', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n look\n\n Usage:\n look\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects in your vicinity.\n '}</em><a class="headerlink" href="#evennia.contrib.grid.extended_room.extended_room.CmdExtendedRoomLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -695,7 +695,7 @@ a different language.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ["'", '"']</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['"', "'"]</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -726,7 +726,7 @@ a different language.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '\' "', 'category': 'general', 'key': 'say', 'no_prefix': ' \' "', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '" \'', 'category': 'general', 'key': 'say', 'no_prefix': ' " \'', 'tags': '', 'text': '\n speak as your character\n\n Usage:\n say <message>\n\n Talk to those in your current location.\n '}</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdSay.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -865,7 +865,7 @@ Using the command without arguments will list all current recogs.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.rpg.rpsystem.rpsystem.CmdRecog.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['recognize', 'forget']</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdRecog.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['forget', 'recognize']</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdRecog.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -892,7 +892,7 @@ Using the command without arguments will list all current recogs.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.rpg.rpsystem.rpsystem.CmdRecog.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'recognize forget', 'category': 'general', 'key': 'recog', 'no_prefix': ' recognize forget', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdRecog.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'forget recognize', 'category': 'general', 'key': 'recog', 'no_prefix': ' forget recognize', 'tags': '', 'text': '\n Recognize another person in the same room.\n\n Usage:\n recog\n recog sdesc as alias\n forget alias\n\n Example:\n recog tall man as Griatch\n forget griatch\n\n This will assign a personal alias for a person, or forget said alias.\n Using the command without arguments will list all current recogs.\n\n '}</em><a class="headerlink" href="#evennia.contrib.rpg.rpsystem.rpsystem.CmdRecog.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -256,7 +256,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.commands.CmdInventory.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['inv', 'i']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdInventory.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['i', 'inv']</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdInventory.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py method">
|
||||
|
|
@ -280,7 +280,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.evadventure.commands.CmdInventory.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'inv i', 'category': 'general', 'key': 'inventory', 'no_prefix': ' inv i', 'tags': '', 'text': '\n View your inventory\n\n Usage:\n inventory\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdInventory.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'i inv', 'category': 'general', 'key': 'inventory', 'no_prefix': ' i inv', 'tags': '', 'text': '\n View your inventory\n\n Usage:\n inventory\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.evadventure.commands.CmdInventory.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -153,7 +153,7 @@ such as when closing the lid and un-blinding a character.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['press button', 'push', 'press']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['press', 'press button', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -182,7 +182,7 @@ check if the lid is open or closed.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press button push press', 'category': 'general', 'key': 'push button', 'no_prefix': ' press button push press', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button (lid closed)\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidClosed.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -252,7 +252,7 @@ check if the lid is open or closed.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['break lid', 'smash lid', 'smash']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['smash', 'smash lid', 'break lid']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -279,7 +279,7 @@ break.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'break lid smash lid smash', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' break lid smash lid smash', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'smash smash lid break lid', 'category': 'general', 'key': 'smash glass', 'no_prefix': ' smash smash lid break lid', 'tags': '', 'text': '\n Smash the protective glass.\n\n Usage:\n smash glass\n\n Try to smash the glass of the button.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdSmashGlass.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -379,7 +379,7 @@ be mutually exclusive.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['press button', 'push', 'press']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['press', 'press button', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -408,7 +408,7 @@ set in self.parse())</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press button push press', 'category': 'general', 'key': 'push button', 'no_prefix': ' press button push press', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press press button push', 'category': 'general', 'key': 'push button', 'no_prefix': ' press press button push', 'tags': '', 'text': '\n Push the red button\n\n Usage:\n push button\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdPushLidOpen.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -506,7 +506,7 @@ be mutually exclusive.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'feel', 'get', 'ex', 'examine', 'listen']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['get', 'l', 'ex', 'feel', 'listen', 'examine']</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -532,7 +532,7 @@ be mutually exclusive.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l feel get ex examine listen', 'category': 'general', 'key': 'look', 'no_prefix': ' l feel get ex examine listen', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'get l ex feel listen examine', 'category': 'general', 'key': 'look', 'no_prefix': ' get l ex feel listen examine', 'tags': '', 'text': "\n Looking around in darkness\n\n Usage:\n look <obj>\n\n ... not that there's much to see in the dark.\n\n "}</em><a class="headerlink" href="#evennia.contrib.tutorials.red_button.red_button.CmdBlindLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -425,7 +425,7 @@ of the object. We overload it with our own version.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdLight.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['light', 'burn']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdLight.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['burn', 'light']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdLight.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -452,7 +452,7 @@ to sit on a “lightable” object, we operate only on self.obj.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdLight.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'light burn', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' light burn', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdLight.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'burn light', 'category': 'tutorialworld', 'key': 'on', 'no_prefix': ' burn light', 'tags': '', 'text': '\n Creates light where there was none. Something to burn.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdLight.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -556,7 +556,7 @@ shift green root up/down</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['move', 'push', 'pull', 'shiftroot']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['pull', 'move', 'shiftroot', 'push']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -592,7 +592,7 @@ yellow/green - horizontal roots</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'move push pull shiftroot', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' move push pull shiftroot', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'pull move shiftroot push', 'category': 'tutorialworld', 'key': 'shift', 'no_prefix': ' pull move shiftroot push', 'tags': '', 'text': '\n Shifts roots around.\n\n Usage:\n shift blue root left/right\n shift red root left/right\n shift yellow root up/down\n shift green root up/down\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdShiftRoot.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -609,7 +609,7 @@ yellow/green - horizontal roots</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['press button', 'push button', 'button']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['push button', 'button', 'press button']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -635,7 +635,7 @@ yellow/green - horizontal roots</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'press button push button button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' press button push button button', 'tags': '', 'text': '\n Presses a button.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'push button button press button', 'category': 'tutorialworld', 'key': 'press', 'no_prefix': ' push button button press button', 'tags': '', 'text': '\n Presses a button.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdPressButton.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -779,7 +779,7 @@ parry - forgoes your attack but will make you harder to hit on next</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['stab', 'hit', 'bash', 'parry', 'kill', 'fight', 'thrust', 'defend', 'pierce', 'slash', 'chop']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['slash', 'bash', 'pierce', 'chop', 'parry', 'stab', 'hit', 'kill', 'thrust', 'defend', 'fight']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -805,7 +805,7 @@ parry - forgoes your attack but will make you harder to hit on next</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'stab hit bash parry kill fight thrust defend pierce slash chop', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' stab hit bash parry kill fight thrust defend pierce slash chop', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'slash bash pierce chop parry stab hit kill thrust defend fight', 'category': 'tutorialworld', 'key': 'attack', 'no_prefix': ' slash bash pierce chop parry stab hit kill thrust defend fight', 'tags': '', 'text': '\n Attack the enemy. Commands:\n\n stab <enemy>\n slash <enemy>\n parry\n\n stab - (thrust) makes a lot of damage but is harder to hit with.\n slash - is easier to land, but does not make as much damage.\n parry - forgoes your attack but will make you harder to hit on next\n enemy attack.\n\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.objects.CmdAttack.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -248,7 +248,7 @@ code except for adding in the details.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['l', 'ls']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['ls', 'l']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -263,7 +263,7 @@ code except for adding in the details.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'l ls', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' l ls', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'ls l', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' ls l', 'tags': '', 'text': '\n looks at the room and on details\n\n Usage:\n look <obj>\n look <room detail>\n look *<account>\n\n Observes your location, details at your location or objects\n in your vicinity.\n\n Tutorial: This is a child of the default Look command, that also\n allows us to look at "details" in the room. These details are\n things to examine and offers some extra description without\n actually having to be actual database objects. It uses the\n return_detail() hook on TutorialRooms for this.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdTutorialLook.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
@ -968,7 +968,7 @@ to find something.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['feel around', 'l', 'fiddle', 'search', 'feel']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['fiddle', 'search', 'l', 'feel', 'feel around']</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -996,7 +996,7 @@ random chance of eventually finding a light source.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'feel around l fiddle search feel', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' feel around l fiddle search feel', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'fiddle search l feel feel around', 'category': 'tutorialworld', 'key': 'look', 'no_prefix': ' fiddle search l feel feel around', 'tags': '', 'text': '\n Look around in darkness\n\n Usage:\n look\n\n Look around in the darkness, trying\n to find something.\n '}</em><a class="headerlink" href="#evennia.contrib.tutorials.tutorial_world.rooms.CmdLookDark.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -208,7 +208,7 @@ git evennia pull - Pull the latest evennia code.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory">
|
||||
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmpdwiz7bdy/ff8dde6011a5f65a4e856bfe1b128bff6ff14453/evennia'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmp2mfxceq5/e090665f50c4976a7579352f933e13b1052f41ef/evennia'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGitEvennia.directory" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -269,7 +269,7 @@ git pull - Pull the latest code from your current branch.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.contrib.utils.git_integration.git_integration.CmdGit.directory">
|
||||
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmpdwiz7bdy/ff8dde6011a5f65a4e856bfe1b128bff6ff14453/evennia/game_template'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGit.directory" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">directory</code><em class="property"> = '/tmp/tmp2mfxceq5/e090665f50c4976a7579352f933e13b1052f41ef/evennia/game_template'</em><a class="headerlink" href="#evennia.contrib.utils.git_integration.git_integration.CmdGit.directory" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
|
|||
|
|
@ -178,7 +178,7 @@ way it operates.</p>
|
|||
using it.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>start_delay</strong> (<em>int</em>) – Time to way before starting.</p>
|
||||
<dd class="field-odd"><p><strong>start_delay</strong> (<em>int</em><em>, </em><em>optional</em>) – Time to way before starting.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
|
@ -270,8 +270,7 @@ subscribed objects at given times.</p>
|
|||
restoring the pool will automatically re-populate the pool.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Only stop tickers with this
|
||||
interval.</p>
|
||||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Only stop tickers with this interval.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
|
@ -331,30 +330,29 @@ non-persistent tickers must be killed.</p>
|
|||
<dd><p>Add subscription to tickerhandler</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Interval in seconds between calling
|
||||
<dd class="field-odd"><p><strong>*args</strong> – Will be passed into the callback every time it’s called. This must be
|
||||
data possible to pickle.</p>
|
||||
</dd>
|
||||
<dt class="field-even">Keyword Arguments</dt>
|
||||
<dd class="field-even"><ul class="simple">
|
||||
<li><p><strong>interval</strong> (<em>int</em>) – Interval in seconds between calling
|
||||
<strong>callable(*args, **kwargs)</strong></p></li>
|
||||
<li><p><strong>callable</strong> (<em>callable function</em><em> or </em><em>method</em><em>, </em><em>optional</em>) – This
|
||||
<li><p><strong>callable</strong> (<em>callable function</em><em> or </em><em>method</em>) – This
|
||||
should either be a stand-alone function or a method on a
|
||||
typeclassed entity (that is, one that can be saved to the
|
||||
database).</p></li>
|
||||
<li><p><strong>idstring</strong> (<em>str</em><em>, </em><em>optional</em>) – Identifier for separating
|
||||
<li><p><strong>idstring</strong> (<em>str</em>) – Identifier for separating
|
||||
this ticker-subscription from others with the same
|
||||
interval. Allows for managing multiple calls with
|
||||
the same time interval and callback.</p></li>
|
||||
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) – A ticker will always survive
|
||||
<li><p><strong>persistent</strong> (<em>bool</em>) – A ticker will always survive
|
||||
a server reload. If this is unset, the ticker will be
|
||||
deleted by a server shutdown.</p></li>
|
||||
<li><p><strong>args</strong> (<em>optional</em>) – These will be passed into the
|
||||
callback every time it is called. This must be data possible
|
||||
to pickle!</p></li>
|
||||
<li><p><strong>kwargs</strong> (<em>optional</em>) – These will be passed into the
|
||||
callback every time it is called. This must be data possible
|
||||
to pickle!</p></li>
|
||||
<li><p><strong>Will be passed into the callback every time it is called.</strong> (<em>**kwargs</em>) – This must be data possible to pickle.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
<dt class="field-even">Returns</dt>
|
||||
<dd class="field-even"><p><p><em>store_key (tuple)</em> –</p>
|
||||
<dt class="field-odd">Returns</dt>
|
||||
<dd class="field-odd"><p><p><em>store_key (tuple)</em> –</p>
|
||||
<dl class="simple">
|
||||
<dt>The immutable store-key for this ticker. This can</dt><dd><p>be stored and passed into <strong>.remove(store_key=store_key)</strong> later to
|
||||
easily stop this ticker later.</p>
|
||||
|
|
@ -377,14 +375,14 @@ when wanting to modify/remove the ticker later.</p>
|
|||
<code class="sig-name descname">remove</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">interval</span><span class="o">=</span><span class="default_value">60</span></em>, <em class="sig-param"><span class="n">callback</span><span class="o">=</span><span class="default_value">None</span></em>, <em class="sig-param"><span class="n">idstring</span><span class="o">=</span><span class="default_value">''</span></em>, <em class="sig-param"><span class="n">persistent</span><span class="o">=</span><span class="default_value">True</span></em>, <em class="sig-param"><span class="n">store_key</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.remove"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.remove" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Remove ticker subscription from handler.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dt class="field-odd">Keyword Arguments</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Interval of ticker to remove.</p></li>
|
||||
<li><p><strong>interval</strong> (<em>int</em>) – Interval of ticker to remove.</p></li>
|
||||
<li><p><strong>callback</strong> (<em>callable function</em><em> or </em><em>method</em>) – Either a function or
|
||||
the method of a typeclassed object.</p></li>
|
||||
<li><p><strong>idstring</strong> (<em>str</em><em>, </em><em>optional</em>) – Identifier id of ticker to remove.</p></li>
|
||||
<li><p><strong>persistent</strong> (<em>bool</em><em>, </em><em>optional</em>) – Whether this ticker is persistent or not.</p></li>
|
||||
<li><p><strong>store_key</strong> (<em>str</em><em>, </em><em>optional</em>) – If given, all other kwargs are ignored and only
|
||||
<li><p><strong>idstring</strong> (<em>str</em>) – Identifier id of ticker to remove.</p></li>
|
||||
<li><p><strong>persistent</strong> (<em>bool</em>) – Whether this ticker is persistent or not.</p></li>
|
||||
<li><p><strong>store_key</strong> (<em>str</em>) – If given, all other kwargs are ignored and only
|
||||
this is used to identify the ticker.</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
|
|
@ -403,7 +401,7 @@ but if the <strong>store_key</strong> is explicitly given, this is used instead.
|
|||
<dd><p>Stop/remove tickers from handler.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em>) – Only stop tickers with this interval.</p>
|
||||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Only stop tickers with this interval.</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<p class="rubric">Notes</p>
|
||||
|
|
@ -414,20 +412,15 @@ non-db objects.</p>
|
|||
<dl class="py method">
|
||||
<dt id="evennia.scripts.tickerhandler.TickerHandler.all">
|
||||
<code class="sig-name descname">all</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">interval</span><span class="o">=</span><span class="default_value">None</span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/scripts/tickerhandler.html#TickerHandler.all"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#evennia.scripts.tickerhandler.TickerHandler.all" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>Get all subscriptions.</p>
|
||||
<dd><p>Get all ticker subscriptions.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em>) – Limit match to tickers with this interval.</p>
|
||||
<dd class="field-odd"><p><strong>interval</strong> (<em>int</em><em>, </em><em>optional</em>) – Limit match to tickers with this interval.</p>
|
||||
</dd>
|
||||
<dt class="field-even">Returns</dt>
|
||||
<dd class="field-even"><p><p><em>tickers (list)</em> –</p>
|
||||
<dl class="simple">
|
||||
<dt>If <strong>interval</strong> was given, this is a list of</dt><dd><p>tickers using that interval.</p>
|
||||
</dd>
|
||||
<dt>tickerpool_layout (dict): If <strong>interval</strong> was <em>not</em> given,</dt><dd><p>this is a dict {interval1: [ticker1, ticker2, …], …}</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</p>
|
||||
<dd class="field-even"><p><em>list or dict</em> – If <strong>interval</strong> was given, this is a list of tickers using that interval.
|
||||
If <strong>interval</strong> was <em>not</em> given, this is a dict
|
||||
<strong>{interval1: [ticker1, ticker2, …], …}</strong></p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -336,7 +336,7 @@ indentation.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.eveditor.CmdEditorGroup.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = [':::', ':uu', ':UU', ':h', ':f', ':q!', ':dd', ':fd', ':wq', ':', ':s', ':A', ':fi', ':u', ':i', ':dw', ':DD', ':echo', ':S', ':j', ':p', ':x', ':>', ':q', '::', ':w', ':=', ':I', ':!', ':<', ':r', ':y']</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = [':s', ':dw', ':UU', ':uu', ':q!', ':u', ':!', ':fi', ':A', ':DD', ':f', ':wq', ':S', ':q', ':', ':=', ':h', ':::', ':p', ':I', ':>', ':dd', ':r', ':fd', ':echo', '::', ':y', ':w', ':i', ':j', ':<', ':x']</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -364,7 +364,7 @@ efficient presentation.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.eveditor.CmdEditorGroup.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': '::: :uu :UU :h :f :q! :dd :fd :wq : :s :A :fi :u :i :dw :DD :echo :S :j :p :x :> :q :: :w := :I :! :< :r :y', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' ::: :uu :UU :h :f :q! :dd :fd :wq : :s :A :fi :u :i :dw :DD :echo :S :j :p :x :> :q :: :w := :I :! :< :r :y', 'tags': '', 'text': '\n Commands for the editor\n '}</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': ':s :dw :UU :uu :q! :u :! :fi :A :DD :f :wq :S :q : := :h ::: :p :I :> :dd :r :fd :echo :: :y :w :i :j :< :x', 'category': 'general', 'key': ':editor_command_group', 'no_prefix': ' :s :dw :UU :uu :q! :u :! :fi :A :DD :f :wq :S :q : := :h ::: :p :I :> :dd :r :fd :echo :: :y :w :i :j :< :x', 'tags': '', 'text': '\n Commands for the editor\n '}</em><a class="headerlink" href="#evennia.utils.eveditor.CmdEditorGroup.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -931,7 +931,7 @@ single question.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.evmenu.CmdYesNoQuestion.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['yes', 'abort', '__nomatch_command', 'n', 'no', 'a', 'y']</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['yes', 'a', 'abort', 'no', '__nomatch_command', 'n', 'y']</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -957,7 +957,7 @@ single question.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'yes abort __nomatch_command n no a y', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' yes abort __nomatch_command n no a y', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'yes a abort no __nomatch_command n y', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' yes a abort no __nomatch_command n y', 'tags': '', 'text': '\n Handle a prompt for yes or no. Press [return] for the default choice.\n\n '}</em><a class="headerlink" href="#evennia.utils.evmenu.CmdYesNoQuestion.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ the <strong>caller.msg()</strong> construct every time the page is updated.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.evmore.CmdMore.aliases">
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['q', 'end', 'abort', 'p', 'quit', 'next', 't', 'e', 'n', 'a', 'top', 'previous']</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">aliases</code><em class="property"> = ['a', 'end', 'q', 'next', 'abort', 'p', 'e', 'top', 'n', 'quit', 'previous', 't']</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.aliases" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py attribute">
|
||||
|
|
@ -163,7 +163,7 @@ the <strong>caller.msg()</strong> construct every time the page is updated.</p>
|
|||
|
||||
<dl class="py attribute">
|
||||
<dt id="evennia.utils.evmore.CmdMore.search_index_entry">
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'q end abort p quit next t e n a top previous', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' q end abort p quit next t e n a top previous', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-name descname">search_index_entry</code><em class="property"> = {'aliases': 'a end q next abort p e top n quit previous t', 'category': 'general', 'key': '__noinput_command', 'no_prefix': ' a end q next abort p e top n quit previous t', 'tags': '', 'text': '\n Manipulate the text paging. Catch no-input with aliases.\n '}</em><a class="headerlink" href="#evennia.utils.evmore.CmdMore.search_index_entry" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@
|
|||
<li><a class="reference internal" href="#">Evennia Documentation</a><ul>
|
||||
<li><a class="reference internal" href="#setup">Setup</a></li>
|
||||
<li><a class="reference internal" href="#tutorials-and-howtos">Tutorials and Howtos</a></li>
|
||||
<li><a class="reference internal" href="#developing-with-evennia">Developing with Evennia</a></li>
|
||||
<li><a class="reference internal" href="#the-evennia-library">The Evennia Library</a></li>
|
||||
<li><a class="reference internal" href="#contributions-and-info">Contributions and Info</a></li>
|
||||
<li><a class="reference internal" href="#all-sections">All Sections</a><ul>
|
||||
</ul>
|
||||
|
|
@ -114,6 +114,7 @@ or the original github wiki. You have been warned.</p>
|
|||
<p>This is the manual of <a class="reference external" href="https://www.evennia.com">Evennia</a>, the open source Python <code class="docutils literal notranslate"><span class="pre">MU*</span></code> creation system. Use the Search bar on the left to find or discover interesting articles.</p>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="Evennia-Introduction.html"><span class="doc std std-doc">Introduction</span></a> - what is this Evennia thing?</p></li>
|
||||
<li><p><a class="reference internal" href="Evennia-In-Pictures.html"><span class="doc std std-doc">Evennia in Pictures</span></a> - a visual overview of Evennia</p></li>
|
||||
<li><p><a class="reference internal" href="Contributing.html"><span class="doc std std-doc">Contributing and Getting help</span></a> - when you get stuck or want to chip in</p></li>
|
||||
</ul>
|
||||
<section id="setup">
|
||||
|
|
@ -131,25 +132,24 @@ or the original github wiki. You have been warned.</p>
|
|||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="Howtos/Howtos-Overview.html#beginner-tutorial"><span class="std std-doc">The Beginner Tutorial</span></a> - learn the basics and build a small game (in progress)</p></li>
|
||||
<li><p><a class="reference internal" href="Howtos/Howtos-Overview.html#howtos"><span class="std std-doc">Tutorials and Howto’s</span></a> - mixed tutorials and help articles to learn Evennia</p></li>
|
||||
<li><p><a class="reference internal" href="Coding/Coding-Overview.html"><span class="doc std std-doc">Coding with Evennia</span></a> - resources and hints for coding and development</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="developing-with-evennia">
|
||||
<h2>Developing with Evennia<a class="headerlink" href="#developing-with-evennia" title="Permalink to this headline">¶</a></h2>
|
||||
<section id="the-evennia-library">
|
||||
<h2>The Evennia Library<a class="headerlink" href="#the-evennia-library" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="Coding/Coding-Overview.html"><span class="doc std std-doc">Coding with Evennia</span></a> - coding and development hints and resources</p></li>
|
||||
<li><p><a class="reference internal" href="Components/Components-Overview.html"><span class="doc std std-doc">Core components</span></a> - the core building blocks of Evennia</p></li>
|
||||
<li><p><a class="reference internal" href="Concepts/Concepts-Overview.html"><span class="doc std std-doc">Core Concepts</span></a> - larger-scale concepts and features</p></li>
|
||||
<li><p><a class="reference internal" href="Evennia-API.html"><span class="doc std std-doc">API</span></a> - the full API-reference, generated from source</p></li>
|
||||
<li><p><a class="reference internal" href="Components/Default-Commands.html"><span class="doc std std-doc">Default Commands</span></a> - list of game commands included out of the box</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<section id="contributions-and-info">
|
||||
<h2>Contributions and Info<a class="headerlink" href="#contributions-and-info" title="Permalink to this headline">¶</a></h2>
|
||||
<ul class="simple">
|
||||
<li><p><a class="reference internal" href="Contribs/Contribs-Overview.html"><span class="doc std std-doc">Contribs</span></a> - game-specific code and snippets to use for your game</p></li>
|
||||
<li><p><a class="reference internal" href="Contributing-Docs.html"><span class="doc std std-doc">Documentation - how to contribute</span></a> - if you want to help out</p></li>
|
||||
<li><p><a class="reference internal" href="Links.html"><span class="doc std std-doc">Links</span></a> - useful external links for extra reading</p></li>
|
||||
<li><p><a class="reference internal" href="Contributing-Docs.html"><span class="doc std std-doc">Documentation - how to contribute</span></a> - if you want to help out with this manual</p></li>
|
||||
<li><p><a class="reference internal" href="Licensing.html"><span class="doc std std-doc">License</span></a> - Evennia licensing FAQ</p></li>
|
||||
<li><p><a class="reference internal" href="Links.html"><span class="doc std std-doc">Links</span></a> - useful links if you need extra reading</p></li>
|
||||
</ul>
|
||||
</section>
|
||||
<hr class="docutils" />
|
||||
|
|
@ -162,8 +162,15 @@ or the original github wiki. You have been warned.</p>
|
|||
<div class="toctree-wrapper compound">
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="Evennia-Introduction.html">Evennia Introduction</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Evennia-Introduction.html#what-is-evennia">What is Evennia?</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-Introduction.html#bare-bones">Bare-bones?</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-Introduction.html#framework">Framework?</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-Introduction.html#server">Server?</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-Introduction.html#python">Python?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Evennia-Introduction.html#can-i-test-it-somewhere">Can I test it somewhere?</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Evennia-Introduction.html#what-you-need-to-know-to-work-with-evennia">What you need to know to work with Evennia</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Evennia-Introduction.html#what-do-i-need-to-know-to-work-with-evennia">What do I need to know to work with Evennia?</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-Introduction.html#i-dont-know-or-dont-want-to-do-any-programming-i-just-want-to-run-a-game">I don’t know (or don’t want to do) any programming - I just want to run a game!</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-Introduction.html#i-know-basic-python-or-i-am-willing-to-learn">I know basic Python, or I am willing to learn</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-Introduction.html#i-know-my-python-stuff-and-i-am-willing-to-use-it">I know my Python stuff and I am willing to use it!</a></li>
|
||||
|
|
@ -172,6 +179,25 @@ or the original github wiki. You have been warned.</p>
|
|||
<li class="toctree-l2"><a class="reference internal" href="Evennia-Introduction.html#where-to-from-here">Where to from here?</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="Evennia-In-Pictures.html">Evennia in pictures</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Evennia-In-Pictures.html#the-two-main-evennia-pieces">The two main Evennia pieces</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-In-Pictures.html#initializing-the-game-folder">Initializing the game folder</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Evennia-In-Pictures.html#the-database">The database</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-In-Pictures.html#from-database-to-python">From database to Python</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-In-Pictures.html#attributes">Attributes</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Evennia-In-Pictures.html#controlling-the-action">Controlling the action</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-In-Pictures.html#commands">Commands</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-In-Pictures.html#command-sets">Command Sets</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="Evennia-In-Pictures.html#merging-command-sets">Merging Command Sets</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Evennia-In-Pictures.html#now-go-and-explore">Now go and explore!</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="Setup/Running-Evennia.html">Start Stop Reload</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Setup/Running-Evennia.html#starting-evennia">Starting Evennia</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="Setup/Running-Evennia.html#reloading">Reloading</a></li>
|
||||
|
|
|
|||
Binary file not shown.
File diff suppressed because one or more lines are too long
Loading…
Add table
Add a link
Reference in a new issue