typo
----

KOMMANDO:
    typo <text>
    typo <objekt>:<text>

ARGUMENTE:

    <text>
        Eine Mitteilung
    <objekt>
        Ein Objekt, das neben Dir liegt oder in Deinem Inventar ist.
        Dein aktueller Raum kann mit "hier" oder "raum" angegeben werden.

BESCHREIBUNG:
    In den Beschreibungen von Raeumen und Objekten kommt es immer wieder mal
    zu Tippfehlern, die auch die Testphase des Objektes/Gebietes unerkannt
    ueberstanden haben.

    Wenn Du einen Tippfehler gefunden hast, so kannst Du den Verantwortlichen
    mit diesem Befehl davon unterrichten.

    Fuer den Magier ist es sehr hilfreich, wenn Du bei in Meldung angibst,
    wo genau der Tippfehler zu finden ist (also z.B, welches Detail den
    Fehler enthaelt).

    Zoegere nicht, wenn Du einen Tippfehler findest; Fehlermitteilungen sind
    *sehr* willkommen!

    Wenn Du einen Typo an einem bestimmten Objekt oder NPC entdeckst, kannst
    Du dieses/diesen hinter einem Doppelpunkt angeben, damit der fuer das
    Objekt verantwortliche Magier die Meldung bekommt.
    Wenn das Objekt nicht zu finden ist, wird die ganze Eingabe als
    Meldung aufgefasst.

BEMERKUNG:
    Der Befehl 'typo' bezieht sich bei Nichtangabe eines Bezugsobjekts
    auf das letzte betrachtete Objekt. Hast Du also ein Objekt untersucht,
    dann wird die Meldung fuer diese Objekt abgegeben. Hast Du aber den
    Raum untersucht oder 'schau' eingegeben, wird die Meldung fuer Deinen
    momentanen Raum abgesetzt.

SIEHE AUCH:
    bug, idee, syntaxhinweis, detail, bezugsobjekt

Letzte Aenderung: 12.06.2019, Zesstra
