evennia/docs/latest/api/evennia.contrib.game_systems.multidescer.multidescer.html
Evennia docbuilder action 243d596662 Updated HTML docs.
2025-08-15 18:14:21 +00:00

274 lines
No EOL
23 KiB
HTML

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>evennia.contrib.game_systems.multidescer.multidescer &#8212; Evennia latest documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css?v=279e0f84" />
<link rel="stylesheet" type="text/css" href="../_static/custom.css?v=e4a91a55" />
<script src="../_static/documentation_options.js?v=c6e86fd7"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="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="evennia.contrib.game_systems.multidescer.tests" href="evennia.contrib.game_systems.multidescer.tests.html" />
<link rel="prev" title="evennia.contrib.game_systems.multidescer" href="evennia.contrib.game_systems.multidescer.html" />
</head><body>
<div class="related" role="navigation" aria-label="Related">
<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="evennia.contrib.game_systems.multidescer.tests.html" title="evennia.contrib.game_systems.multidescer.tests"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="evennia.contrib.game_systems.multidescer.html" title="evennia.contrib.game_systems.multidescer"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.game_systems.html" >evennia.contrib.game_systems</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.game_systems.multidescer.html" accesskey="U">evennia.contrib.game_systems.multidescer</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.game_systems.multidescer.multidescer</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="module-evennia.contrib.game_systems.multidescer.multidescer">
<span id="evennia-contrib-game-systems-multidescer-multidescer"></span><h1>evennia.contrib.game_systems.multidescer.multidescer<a class="headerlink" href="#module-evennia.contrib.game_systems.multidescer.multidescer" title="Link to this heading"></a></h1>
<p>Evennia Multidescer</p>
<p>Contrib - Griatch 2016</p>
<p>A “multidescer” is a concept from the MUSH world. It allows for
creating, managing and switching between multiple character
descriptions. This multidescer will not require any changes to the
Character class, rather it will use the <strong>multidescs</strong> Attribute (a
list) and create it if it does not exist.</p>
<p>This contrib also works well together with the rpsystem contrib (which
also adds the short descriptions and the <strong>sdesc</strong> command).</p>
<p>Installation:</p>
<p>Edit <strong>mygame/commands/default_cmdsets.py</strong> and add
<strong>from evennia.contrib.game_systems.multidescer import CmdMultiDesc</strong> to the top.</p>
<p>Next, look up the <strong>at_cmdset_create</strong> method of the <strong>CharacterCmdSet</strong>
class and add a line <strong>self.add(CmdMultiDesc())</strong> to the end
of it.</p>
<p>Reload the server and you should have the +desc command available (it
will replace the default <strong>desc</strong> command).</p>
<dl class="py exception">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.DescValidateError">
<em class="property"><span class="k"><span class="pre">exception</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.game_systems.multidescer.multidescer.</span></span><span class="sig-name descname"><span class="pre">DescValidateError</span></span><a class="reference internal" href="../_modules/evennia/contrib/game_systems/multidescer/multidescer.html#DescValidateError"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.DescValidateError" title="Link to this definition"></a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">ValueError</span></code></p>
<p>Used for tracebacks from desc systems</p>
</dd></dl>
<dl class="py class">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc">
<em class="property"><span class="k"><span class="pre">class</span></span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">evennia.contrib.game_systems.multidescer.multidescer.</span></span><span class="sig-name descname"><span class="pre">CmdMultiDesc</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="o"><span class="pre">**</span></span><span class="n"><span class="pre">kwargs</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/game_systems/multidescer/multidescer.html#CmdMultiDesc"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc" title="Link to this definition"></a></dt>
<dd><p>Bases: <a class="reference internal" href="evennia.commands.default.muxcommand.html#evennia.commands.default.muxcommand.MuxCommand" title="evennia.commands.default.muxcommand.MuxCommand"><code class="xref py py-class docutils literal notranslate"><span class="pre">MuxCommand</span></code></a></p>
<p>Manage multiple descriptions</p>
<dl class="simple">
<dt>Usage:</dt><dd><p>+desc [key] - show current desc desc with &lt;key&gt;
+desc &lt;key&gt; = &lt;text&gt; - add/replace desc with &lt;key&gt;
+desc/list - list descriptions (abbreviated)
+desc/list/full - list descriptions (full texts)
+desc/edit &lt;key&gt; - add/edit desc &lt;key&gt; in line editor
+desc/del &lt;key&gt; - delete desc &lt;key&gt;
+desc/swap &lt;key1&gt;-&lt;key2&gt; - swap positions of &lt;key1&gt; and &lt;key2&gt; in list
+desc/set &lt;key&gt; [+key+…] - set desc as default or combine multiple descs</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>When combining multiple descs with +desc/set &lt;key&gt; + &lt;key2&gt; + …,
any keys not matching an actual description will be inserted
as plain text. Use e.g. ansi line break ||/ to add a new
paragraph and + + or ansi space ||_ to add extra whitespace.</p>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.key">
<span class="sig-name descname"><span class="pre">key</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'+desc'</span></em><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.key" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.aliases">
<span class="sig-name descname"><span class="pre">aliases</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">['desc']</span></em><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.aliases" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.locks">
<span class="sig-name descname"><span class="pre">locks</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all()'</span></em><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.locks" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.help_category">
<span class="sig-name descname"><span class="pre">help_category</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'general'</span></em><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.help_category" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.func">
<span class="sig-name descname"><span class="pre">func</span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="../_modules/evennia/contrib/game_systems/multidescer/multidescer.html#CmdMultiDesc.func"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.func" title="Link to this definition"></a></dt>
<dd><p>Implements the multidescer. We will use <strong>db.desc</strong> for the
description in use and <strong>db.multidesc</strong> to store all descriptions.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.lock_storage">
<span class="sig-name descname"><span class="pre">lock_storage</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">'cmd:all()'</span></em><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.lock_storage" title="Link to this definition"></a></dt>
<dd></dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.search_index_entry">
<span class="sig-name descname"><span class="pre">search_index_entry</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">{'aliases':</span> <span class="pre">'desc',</span> <span class="pre">'category':</span> <span class="pre">'general',</span> <span class="pre">'key':</span> <span class="pre">'+desc',</span> <span class="pre">'no_prefix':</span> <span class="pre">'desc</span> <span class="pre">desc',</span> <span class="pre">'tags':</span> <span class="pre">'',</span> <span class="pre">'text':</span> <span class="pre">'\nManage</span> <span class="pre">multiple</span> <span class="pre">descriptions\n\nUsage:\n</span>&#160;&#160;&#160; <span class="pre">+desc</span> <span class="pre">[key]</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">-</span> <span class="pre">show</span> <span class="pre">current</span> <span class="pre">desc</span> <span class="pre">desc</span> <span class="pre">with</span> <span class="pre">&lt;key&gt;\n</span>&#160;&#160;&#160; <span class="pre">+desc</span> <span class="pre">&lt;key&gt;</span> <span class="pre">=</span> <span class="pre">&lt;text&gt;</span>&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">-</span> <span class="pre">add/replace</span> <span class="pre">desc</span> <span class="pre">with</span> <span class="pre">&lt;key&gt;\n</span>&#160;&#160;&#160; <span class="pre">+desc/list</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">-</span> <span class="pre">list</span> <span class="pre">descriptions</span> <span class="pre">(abbreviated)\n</span>&#160;&#160;&#160; <span class="pre">+desc/list/full</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">-</span> <span class="pre">list</span> <span class="pre">descriptions</span> <span class="pre">(full</span> <span class="pre">texts)\n</span>&#160;&#160;&#160; <span class="pre">+desc/edit</span> <span class="pre">&lt;key&gt;</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">-</span> <span class="pre">add/edit</span> <span class="pre">desc</span> <span class="pre">&lt;key&gt;</span> <span class="pre">in</span> <span class="pre">line</span> <span class="pre">editor\n</span>&#160;&#160;&#160; <span class="pre">+desc/del</span> <span class="pre">&lt;key&gt;</span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <span class="pre">-</span> <span class="pre">delete</span> <span class="pre">desc</span> <span class="pre">&lt;key&gt;\n</span>&#160;&#160;&#160; <span class="pre">+desc/swap</span> <span class="pre">&lt;key1&gt;-&lt;key2&gt;</span>&#160;&#160; <span class="pre">-</span> <span class="pre">swap</span> <span class="pre">positions</span> <span class="pre">of</span> <span class="pre">&lt;key1&gt;</span> <span class="pre">and</span> <span class="pre">&lt;key2&gt;</span> <span class="pre">in</span> <span class="pre">list\n</span>&#160;&#160;&#160; <span class="pre">+desc/set</span> <span class="pre">&lt;key&gt;</span> <span class="pre">[+key+...]</span> <span class="pre">-</span> <span class="pre">set</span> <span class="pre">desc</span> <span class="pre">as</span> <span class="pre">default</span> <span class="pre">or</span> <span class="pre">combine</span> <span class="pre">multiple</span> <span class="pre">descs\n\nNotes:\n</span>&#160;&#160;&#160; <span class="pre">When</span> <span class="pre">combining</span> <span class="pre">multiple</span> <span class="pre">descs</span> <span class="pre">with</span> <span class="pre">+desc/set</span> <span class="pre">&lt;key&gt;</span> <span class="pre">+</span> <span class="pre">&lt;key2&gt;</span> <span class="pre">+</span> <span class="pre">...,\n</span>&#160;&#160;&#160; <span class="pre">any</span> <span class="pre">keys</span> <span class="pre">not</span> <span class="pre">matching</span> <span class="pre">an</span> <span class="pre">actual</span> <span class="pre">description</span> <span class="pre">will</span> <span class="pre">be</span> <span class="pre">inserted\n</span>&#160;&#160;&#160; <span class="pre">as</span> <span class="pre">plain</span> <span class="pre">text.</span> <span class="pre">Use</span> <span class="pre">e.g.</span> <span class="pre">ansi</span> <span class="pre">line</span> <span class="pre">break</span> <span class="pre">||/</span> <span class="pre">to</span> <span class="pre">add</span> <span class="pre">a</span> <span class="pre">new\n</span>&#160;&#160;&#160; <span class="pre">paragraph</span> <span class="pre">and</span> <span class="pre">+</span> <span class="pre">+</span> <span class="pre">or</span> <span class="pre">ansi</span> <span class="pre">space</span> <span class="pre">||_</span> <span class="pre">to</span> <span class="pre">add</span> <span class="pre">extra</span> <span class="pre">whitespace.\n\n'}</span></em><a class="headerlink" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.search_index_entry" title="Link to this definition"></a></dt>
<dd></dd></dl>
</dd></dl>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/evennia_logo.png" alt="Logo of Evennia"/>
</a></p>
<search 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" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">evennia.contrib.game_systems.multidescer.multidescer</a><ul>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.DescValidateError"><code class="docutils literal notranslate"><span class="pre">DescValidateError</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc"><code class="docutils literal notranslate"><span class="pre">CmdMultiDesc</span></code></a><ul>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.key"><code class="docutils literal notranslate"><span class="pre">CmdMultiDesc.key</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.aliases"><code class="docutils literal notranslate"><span class="pre">CmdMultiDesc.aliases</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.locks"><code class="docutils literal notranslate"><span class="pre">CmdMultiDesc.locks</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.help_category"><code class="docutils literal notranslate"><span class="pre">CmdMultiDesc.help_category</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.func"><code class="docutils literal notranslate"><span class="pre">CmdMultiDesc.func()</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.lock_storage"><code class="docutils literal notranslate"><span class="pre">CmdMultiDesc.lock_storage</span></code></a></li>
<li><a class="reference internal" href="#evennia.contrib.game_systems.multidescer.multidescer.CmdMultiDesc.search_index_entry"><code class="docutils literal notranslate"><span class="pre">CmdMultiDesc.search_index_entry</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="evennia.contrib.game_systems.multidescer.html"
title="previous chapter">evennia.contrib.game_systems.multidescer</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="evennia.contrib.game_systems.multidescer.tests.html"
title="next chapter">evennia.contrib.game_systems.multidescer.tests</a></p>
</div>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="../_sources/api/evennia.contrib.game_systems.multidescer.multidescer.md.txt"
rel="nofollow">Show Page Source</a></li>
</ul>
</div><h3>Links</h3>
<ul>
<li><a href="https://www.evennia.com/docs/latest/index.html">Documentation Top</a> </li>
<li><a href="https://www.evennia.com">Evennia Home</a> </li>
<li><a href="https://github.com/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>Doc Versions</h3>
<ul>
<li>
<a href="https://www.evennia.com/docs/latest/index.html">latest (main branch)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/5.x/index.html">v5.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/4.x/index.html">v4.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/3.x/index.html">v3.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/2.x/index.html">v2.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/1.x/index.html">v1.0.0 branch (outdated)</a>
</li>
<li>
<a href="https://www.evennia.com/docs/0.x/index.html">v0.9.5 branch (outdated)</a>
</li>
</ul>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<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="evennia.contrib.game_systems.multidescer.tests.html" title="evennia.contrib.game_systems.multidescer.tests"
>next</a> |</li>
<li class="right" >
<a href="evennia.contrib.game_systems.multidescer.html" title="evennia.contrib.game_systems.multidescer"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Evennia</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="../Evennia-API.html" >API Summary</a> &#187;</li>
<li class="nav-item nav-item-2"><a href="evennia-api.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-3"><a href="evennia.html" >evennia</a> &#187;</li>
<li class="nav-item nav-item-4"><a href="evennia.contrib.html" >evennia.contrib</a> &#187;</li>
<li class="nav-item nav-item-5"><a href="evennia.contrib.game_systems.html" >evennia.contrib.game_systems</a> &#187;</li>
<li class="nav-item nav-item-6"><a href="evennia.contrib.game_systems.multidescer.html" >evennia.contrib.game_systems.multidescer</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">evennia.contrib.game_systems.multidescer.multidescer</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>