evennia/docs/0.x/Tutorial-World-Introduction.html
2023-12-20 19:10:09 +01:00

222 lines
No EOL
13 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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>Tutorial World Introduction &#8212; Evennia 0.9.5 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>
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">MathJax.Hub.Config({"tex2jax": {"processClass": "tex2jax_process|mathjax_process|math|output_area"}})</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" />
</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="nav-item nav-item-0"><a href="index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Tutorial World Introduction</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section class="tex2jax_ignore mathjax_ignore" id="tutorial-world-introduction">
<h1>Tutorial World Introduction<a class="headerlink" href="#tutorial-world-introduction" title="Permalink to this headline"></a></h1>
<p>The <em>Tutorial World</em> is a small and functioning MUD-style game world. It is intended to be
deconstructed and used as a way to learn Evennia. The game consists of a single-player quest and
has some 20 rooms that you can explore as you seek to discover the whereabouts of a mythical weapon.</p>
<p>The source code is fully documented. You can find the whole thing in
<code class="docutils literal notranslate"><span class="pre">evennia/contrib/tutorial_world/</span></code>.</p>
<p>Some features exemplified by the tutorial world:</p>
<ul class="simple">
<li><p>Tutorial command, giving “behind-the-scenes” help for every room and some of the special objects</p></li>
<li><p>Rooms with custom <code class="docutils literal notranslate"><span class="pre">return_appearance</span></code> to show details.</p></li>
<li><p>Hidden exits</p></li>
<li><p>Objects with multiple custom interactions</p></li>
<li><p>Large-area rooms</p></li>
<li><p>Outdoor weather rooms</p></li>
<li><p>Dark room, needing light source</p></li>
<li><p>Puzzle object</p></li>
<li><p>Multi-room puzzle</p></li>
<li><p>Aggressive mobile with roam, pursue and battle state-engine AI</p></li>
<li><p>Weapons, also used by mobs</p></li>
<li><p>Simple combat system with attack/defend commands</p></li>
<li><p>Object spawning</p></li>
<li><p>Teleporter trap rooms</p></li>
</ul>
<section id="install">
<h2>Install<a class="headerlink" href="#install" title="Permalink to this headline"></a></h2>
<p>The tutorial world consists of a few modules in <code class="docutils literal notranslate"><span class="pre">evennia/contrib/tutorial_world/</span></code> containing custom
<a class="reference internal" href="Typeclasses.html"><span class="doc std std-doc">Typeclasses</span></a> for <a class="reference internal" href="Objects.html"><span class="doc std std-doc">rooms and objects</span></a> and associated <a class="reference internal" href="Commands.html"><span class="doc std std-doc">Commands</span></a>.</p>
<p>These reusable bits and pieces are then put together into a functioning game area (“world” is maybe
too big a word for such a small zone) using a <a class="reference internal" href="Batch-Processors.html"><span class="doc std std-doc">batch script</span></a> called <code class="docutils literal notranslate"><span class="pre">build.ev</span></code>. To
install, log into the server as the superuser (user #1) and run:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>@batchcommand tutorial_world.build
</pre></div>
</div>
<p>The world will be built (this might take a while, so dont rerun the command even if it seems the
system has frozen). After finishing you will end up back in Limbo with a new exit called <code class="docutils literal notranslate"><span class="pre">tutorial</span></code>.</p>
<p>An alternative is</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>@batchcommand/interactive tutorial_world.build
</pre></div>
</div>
<p>with the /interactive switch you are able to step through the building process at your own pace to
see what happens in detail.</p>
</section>
<section id="quelling-and-permissions-in-the-tutorial-world">
<h2>Quelling and permissions in the tutorial-world<a class="headerlink" href="#quelling-and-permissions-in-the-tutorial-world" title="Permalink to this headline"></a></h2>
<p>Non-superusers entering the tutorial will be auto-<code class="docutils literal notranslate"><span class="pre">quelled</span></code> so they play with their Characters
permission. As superuser you will not be auto-quelled, but its recommended that you still <code class="docutils literal notranslate"><span class="pre">quell</span></code>
manually to play the tutorial “correctly”. The reason for this is that many game systems ignore the
presence of a superuser and will thus not work as normal.</p>
<p>Use <code class="docutils literal notranslate"><span class="pre">unquell</span></code> if you want to get back your main account-level permissions to examine things under
the hood. When you exit the tutorial (either by winning or using the <code class="docutils literal notranslate"><span class="pre">abort/give</span> <span class="pre">up</span></code> command) you
will automatically be unquelled.</p>
</section>
<section id="gameplay">
<h2>Gameplay<a class="headerlink" href="#gameplay" title="Permalink to this headline"></a></h2>
<p><img alt="the castle off the moor" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/22916c25-6299-453d-a221-446ec839f567/da2pmzu-46d63c6d-9cdc-41dd-87d6-1106db5a5e1a.jpg/v1/fill/w_600,h_849,q_75,strp/the_castle_off_the_moor_by_griatch_art_da2pmzu-fullview.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3siaGVpZ2h0IjoiPD04NDkiLCJwYXRoIjoiXC9mXC8yMjkxNmMyNS02Mjk5LTQ1M2QtYTIyMS00NDZlYzgzOWY1NjdcL2RhMnBtenUtNDZkNjNjNmQtOWNkYy00MWRkLTg3ZDYtMTEwNmRiNWE1ZTFhLmpwZyIsIndpZHRoIjoiPD02MDAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.omuS3D1RmFiZCy9OSXiIita-HxVGrBok3_7asq0rflw" /></p>
<p><em>To get into the mood of this miniature quest, imagine you are an adventurer out to find fame and
fortune. You have heard rumours of an old castle ruin by the coast. In its depth a warrior princess
was buried together with her powerful magical weapon - a valuable prize, if its true. Of course
this is a chance to adventure that you cannot turn down!</em></p>
<p><em>You reach the ocean in the midst of a raging thunderstorm. With wind and rain screaming in your
face you stand where the moor meets the sea along a high, rocky coast …</em></p>
<ul class="simple">
<li><p>Look at everything.</p></li>
<li><p>Some objects are interactive in more than one way. Use the normal <code class="docutils literal notranslate"><span class="pre">help</span></code> command to get a feel for
which commands are available at any given time. (use the command <code class="docutils literal notranslate"><span class="pre">tutorial</span></code> to get insight behind
the scenes of the tutorial).</p></li>
<li><p>In order to fight, you need to first find some type of weapon.</p></li>
<li><p><em>slash</em> is a normal attack</p></li>
<li><p><em>stab</em> launches an attack that makes more damage but has a lower chance to hit.</p></li>
<li><p><em>defend</em> will lower the chance to taking damage on your enemys next attack.</p></li>
<li><p>You <em>can</em> run from a fight that feels too deadly. Expect to be chased though.</p></li>
<li><p>Being defeated is a part of the experience …</p></li>
</ul>
</section>
<section id="uninstall">
<h2>Uninstall<a class="headerlink" href="#uninstall" title="Permalink to this headline"></a></h2>
<p>Uninstalling the tutorial world basically means deleting all the rooms and objects it consists of.
First, move out of the tutorial area.</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @find tut#01
@find tut#16
</pre></div>
</div>
<p>This should locate the first and last rooms created by <code class="docutils literal notranslate"><span class="pre">build.ev</span></code> - <em>Intro</em> and <em>Outro</em>. If you
installed normally, everything created between these two numbers should be part of the tutorial.
Note their dbref numbers, for example 5 and 80. Next we just delete all objects in that range:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span> @del 5-80
</pre></div>
</div>
<p>You will see some errors since some objects are auto-deleted and so cannot be found when the delete
mechanism gets to them. Thats fine. You should have removed the tutorial completely once the
command finishes.</p>
</section>
<section id="notes">
<h2>Notes<a class="headerlink" href="#notes" title="Permalink to this headline"></a></h2>
<p>When reading and learning from the code, keep in mind that <em>Tutorial World</em> was created with a very
specific goal: to install easily and to not permanently modify the rest of the server. It therefore
goes to some length to use only temporary solutions and to clean up after
itself.</p>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<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>
<p><h3><a href="index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Tutorial World Introduction</a><ul>
<li><a class="reference internal" href="#install">Install</a></li>
<li><a class="reference internal" href="#quelling-and-permissions-in-the-tutorial-world">Quelling and permissions in the tutorial-world</a></li>
<li><a class="reference internal" href="#gameplay">Gameplay</a></li>
<li><a class="reference internal" href="#uninstall">Uninstall</a></li>
<li><a class="reference internal" href="#notes">Notes</a></li>
</ul>
</li>
</ul>
<div role="note" aria-label="source link">
<!--h3>This Page</h3-->
<ul class="this-page-menu">
<li><a href="_sources/Tutorial-World-Introduction.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="http://webchat.freenode.net/?channels=evennia&uio=MT1mYWxzZSY5PXRydWUmMTE9MTk1JjEyPXRydWUbb">IRC</a> -
<a href="https://discord.gg/NecFePw">Discord</a> -
<a href="https://groups.google.com/forum/#%21forum/evennia">Forums</a>
</li>
<li><a href="http://evennia.blogspot.com/">Evennia Dev blog</a> </li>
</ul>
<h3>Versions</h3>
<ul>
<li><a href="../1.0-dev/index.html">1.0-dev (develop branch)</a></li>
<li><a href="Tutorial-World-Introduction.html">0.9.5 (v0.9.5 branch)</a></li>
</ul>
</div>
</div>
<div class="clearer"></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="nav-item nav-item-0"><a href="index.html">Evennia 0.9.5</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Tutorial World Introduction</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2020, The Evennia developer community.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.2.1.
</div>
</body>
</html>