Noch mal Spielermorden - Notwehr (Boing, 26. Apr 1993, 23:19:20):
Hallo!

Nachdem ein paar Spieler aus Paderborn meinten, sie muessten hier ein 
bisschen wueten (vor allem Sven und Wurmesser taten sich durch Umbringen
von anderen Spielern hervor), moechte ich noch mal wiederholen, dass
das Ermorden von Spielern verboten ist und mit gewissen Unannehmlichkeiten
bestraft wird:

     1) Man kann seine Stufe nicht mehr erhoehen

     2) Man kann keine Zaubertraenke mehr finden

Bei Notwehr sollte sich der Spieler an Olpp oder an einen der Mud-Goetter
(Jof, Rumata, Boing) wenden, dann wird das geprueft und wieder bereinigt.

Tschuess,

    Boing

-----------------------------------------------------------------------------



Asrahel bis 1.10 entmagiert. (Rumata, 23. Sep 1993, 13:49:38):
Leider ...

da Asrahel zum wiederholten Male Hilfsobjekte fuer (Lieblings)Spieler
geschrieben hat, und er von mir auch schon diesbezueglich verwarnt
worden war, habe ich ihn (und seinem Zweitplayer Paule) auf Spielerlevel
1 zurueckgesetzt.

Diese Massnahme ist bis zum 1.10.1993 gueltig.

Vorschlaege, wie in zukuenftigen Faellen mit solchen Vorfaellen
umzugehen ist, nehme ich gerne entgegen. (bitte in der Rubrik
etikette)

Rumata, der sich leider mal wieder zum Oberbullen aufspielt.

-----------------------------------------------------------------------------



Wilson (Boing,  6. Dez 1993, 23:29:35):
Hi!
Nachdem Wilson laufend andere Spieler angegriffen hat, habe ich ihm jetzt
einen Mord gesetzt (auch wenn kein Spieler dabei gestorben ist). Somit kann
Wilson jetzt keine Zaubertraenke mehr finden und seine Stufe nicht weiter
erhoehen.
   Boing

-----------------------------------------------------------------------------



Danke Boing.. (Olpp,  8. Dez 1993, 16:58:28):

-----------------------------------------------------------------------------



Venom verbannt. (Freund, 24. Jan 1994, 16:06:12):
Gruess Gott,

diesmal ist es leider keine angenehme Aufgabe, die mich zum Posten eines Artikels
bringt. Einige von Euch werden schon Einzelheiten und / oder die ganze Geschichte
gehoert haben - es geht um Andy - Venom - Siddlewitch - und wie er sonst noch so
hiess. Hier kommt nur die Kurzform; ich habe keinen Nerv alles in Ausfuerlichkeit
aufzuschreiben. Wer Fragen hat, kann sich an mich oder andere Muensteraner Magier
wenden (fast alle wissen Bescheid, ueber dies und das...).

Andreas (so heisst der Benutzer wirklich) ist anfangs durch haeufige Nervereien
aufgefallen. (teile mit, rufe und : (emote) waren fast sein ausschliesslicher
Befehlssatz. Boing baute dann endlich das 'ignoriere'-Kommando ein.)
Spaeter, als er etwas erfahrener mit der Infra-Struktur MorgenGrauens war, hat er
einigen Spielern geholfen (was er natuerlich durfte und auch begruesst wurde),an-
dere aber weiter genervt und einige Anfaenger auch oft hinters Licht gefuehrt.
Die Nervereien dehnten sich schliesslich auch auf das 'Echte Leben' aus, als er
herausbekam, wo oftmals Magier anzutreffen sind, bzw. wer ueberhaupt im Mud mit-
spielt.
Den Vogel schoss er zweifelsfrei ab, als er das Passwort eines Magiers nutzte, um
1. seinen Charakter durch bessere Werte aufzupeppeln und
2. die GESAMMTE Mudlib zur Eigenverwertung (raub-) kopierte.
Mit Hilfe dieses Wissens hat er sich dann natuerlich relativ gefahrenlos im Mud
bewegen koennen und auch groessere Quests (Nibelungen z.B.) stellten nicht mehr
eine Herausforderung dar, sondern waren aufgrund der Zugriffmoeglichkeit auf die
programmierten Raeume leicht zu loesen.

Heute morgen stellten wir ihn dann in der Gilde zur Rede.
Er gab zunaechst vor, die Files wieder zu leoschen, was jedoch erst geschah,nach-
dem er einsehen musste, mit dem VORGEBEN des Loeschens nicht durchzukommen. Des-
weiteren gab er an und zu, er habe noch eine Kopie der Mudlib zuhause.
Unter diesen Umstaenden beantragten einige Magier, Venom endgueltig zu banishen.

Da es bei ca. 10 (Normal-) Magiern, 2 Regionsmagiern und 3 Erzmagiern (ich war
per Modem drin, also konnte ich schlecht mitloggen, die Erzmagier weiss ich noch:
Highlander, Kirk und Freund) keinen einizigen Widerspruch gab, verbannten wir
Venom aus dem Spiel. Diese eigentlich als vorlaeufige Aktion geplante Massnahme
erlangte ohne unser Zutun heute eine ziemliche Endgueltigkeit, da Andreas die Be-
nutzernummer, die er als 'Fremd'nutzer bislang mit nutzte heute vom Rechenzentrum
Muenster entzogen wurde,da sich (zum wiederholten Male) andere Benutzer ueber ihn
beschwerten.

So weit diese Informationen. Fuer Rueckfragen stehe ich gerne zur Verfuegung.
Weitere Informationen koennten noch bei Kirk, Rochus und Mika eingeholt werden.
(Wobei sie nicht wissen, dass ich sie hier erwaehne, aber ich denke mal, dass es
so in etwas hinkommt... ;-)

Mit leider etwas getruebter Freude, dieses Posten zu muessen verbleibt
Euer Freund fuer alle Faelle (Markus).


-----------------------------------------------------------------------------



P.S. Freund (Olpp,  3. Feb 1994, 13:44:48):
Spaet, aber nicht zu spaet, moechte ich natuerlich verkuenden, dass Freund
bereits seit einiger Zeit 2. Sheriff im MorgenGrauen ist.
Danke, Freund, dass Du mir die Arbeit abnimmst.

Olpp.

-----------------------------------------------------------------------------



BITTE LESEN! (Freund, 23. Feb 1994, 21:45:03):
Gruess Gott,
ich schreibe diesen Artikel, weil es viele (gerade neue) Spieler gibt, die
wenig Ahnung von unserem Rechtssytem haben und sich dann bei irgendwelchen
Problemen an irgendwelche Leute wenden, die nicht helfen koennen / wollen.

Im MorgenGrauen gibt es eine strikte 2-Klassengesellschaft, die der Spieler
und Magier. Letztere koennen prinzipiell alles erdenkbare in dieser Welt an-
stellen. Das kann unter Umstaenden leider auch dazu fuehren, dass gemeine
Magier ihre Macht missbrauchen (unsichtbare Flueche an Spieler haengen, 
ihre Punkte grundlos abziehen, sie einfach toeten, gegen ihren Willen tran-
sen (hin und her teleportieren) oder aehnliches). 
Aber auch Spieler sind nicht immer nett zueinander. Obgleich es strengstens
untersagt ist, andere Spieler anzugreifen, versuchen es einige unbelehrbare
immer wieder. Aber auch kleinere Verstoesse gegen die Moral sind an der Tag-
esordnung: Leichen werden gefleddert, Sachen beim Ordnen des eigenen Ruck-
sacks geklaut, weibliche Charaktere mit entsprechenden Verben belaestigt,
und so weiter.

Wenn Euch so etwas zustoesst und ihr nicht bereit seid, das auf sich beruhen
zu lassen, koennt ihr Euch an den Scheriff im MorgenGrauen wenden, dessen
Aufgabe genau darin liegt, sich solcher Sachen anzunehmen.
Scheut Euch nicht, auch, wenn ihr wenig Erfahrung habt, Kontakt aufzunehmen.
(Egal, ob Spieler oder Magier. :-)

Im Moment gibt es zwei Scheriffs im MorgenGrauen:
Ein Freund fuer alle Faelle (hilfsbereit) - Knuddeleisbaer
Olpp ist wieder auf dem Boden.

Leider ist Olpp in letzter Zeit etwas beschaeftigt (ausserhalb des Muds) und
selten da.
Ich (Freund) bin aber nahezu taeglich im Mud zu erreichen. Ihr koennt auf ver-
schiedene Arten Kontakt aufnehmen:
Wenn ich eingeloggt bin:
teile freund mit Hilfe, kommst Du mal bitte?

Wenn ich nicht da bin:
Ins Postamt gehen und einen Brief schicken.

Wenn ihr kein Postamt kennt, oder alles oeffentlich diskutieren wollt:
Eine Zeitung besorgen (liegt in der Gilde) und in die Rubrik 
polizei.beschwerden einen Artikel schreiben. 
(Mit: lies rubrik 15    und dann: schreibe Beschwerde)

Es gruesst Euch mit friedlichem Gruss ein
Freund fuer alle Faelle (Scheriff).




-----------------------------------------------------------------------------



Neuer Hilfssheriff (Freund, 13. Jan 1995, 11:22:07):
Gruess Gott,
in Ermangelung von freier(!) Zeit, brauche ich Unterstuetzung in Form
eines Kollegen, der wesentlich mehr Zeit hier verbringen kann.
Das ist CATWEAZLE.
Ich denke, dass mein Arbeitsstress nicht permanent ist, und hoffe, in ein
paar Wochen auch wieder aktiver sein zu koennen... :-)
Bis dann hat Catw* meine vollstes Vertrauen in seinen Gerechtigkeitssinn.

Ein FREUNDlicher Sheriff, der sich jetzt gegen die MudMafia verstaerkt hat.

-----------------------------------------------------------------------------



Hochzeiten! (Catweazle,  1. Mar 1995, 19:48:37):
Hi!
Ich muss zugeben ich bin im Augenblick ein bisschen stinkig. Da haben wir
in letzter Zeit genug Stress mit Magiern, die Werte bei Spielern aendern
oder sie transen und dann muss ich von diesem Theater in der Kapelle er-
fahren.
Da werden wahllos Spieler hin- und hergetranst, Spieler gefroggt, Halsweh
verpasst, sogar saemtliche Befehle disabled. Also, lagnsam gehts zu weit!
Die Hochzeit ist kein Spielplatz fuer Magier um tolle Tools auszutesten
und auszuprobieren, was alles machbar ist.
Die Hochzeit ist eine Spielsequenz, wie jede andere Quest oder Aufgabe
auch, und ein Magier hat da erst mal gar nix dran rumzupfuschen. Die
einzige Moeglichkeit fuer Spieler in das Geschehen in der Kirche ein-
zugreifen ist der 'Einspruch' und dieser ist dazu da, falls tatsaechlich
ebensolcher besteht. Der trauende Magier sollte nicht einfach darueberhin-
weggehen und die Zeremonie von neuem starten, sondern wenigstens mal
nachfragen, _warum_ den nun jemand Einspruch sagt. Falls dann nix
vernuenftiges kommt, kann man ihn immernoch rausschmeissen oder halsweg
verpassen, aber nicht einfach so, wahllos, weil jemand die Zeremonie beein-
flusst.
Vor allem das Transen ist ja wohl unter aller Sau. Ihr wisst genau, das
es verboten ist, aber nein, es ist ja _nur_ aus der Kirche raus. Es ist
halt generell verboten! Basta!
Fazit, falls sowas nochmal vorkommen sollte, das Magier die Zeremonie
stoeren, oder Spieler unbegruendet Einspruch rufen, mir Beschied sagen, oder
mailen, dann setzt es erst mal was ....
Trotzdem Yours truly,
          Catweazle (Sheriff)

-----------------------------------------------------------------------------



Passwoerter! (Catweazle, 24. Mar 1995, 20:49:16):
Hi!
Ich moechte Euch einmal darauf hinweisen, das es sehr wichtig ist, das ihr
Euch ein vernuenftiges Passwort zulegt! Ich hab heute wieder einmal einem
Spieler sein Passwort zuruecksetzen muessen, weil jemand sich in seins
reingehackt hat (naja, gehackt ist uebertrieben, der Name war gleich dem
Pass-
wort :) ) und dann mit dessen Charakter rumgespielt hat. Diesmal wars nur
ein Spieler, aber ich moechte vermeiden, das bei nem Magier 'eingebrochen'
wird.
Also wenn Euer Passwort zu einfach ist, macht ein neues. Ein vernueftiges
Passwort enthaelt uebrigens eine Kombination aus text, grossgeschriebenem
Text und Zahlen, besser keine Sonderzeichen. Auch sollte das Password kein
sinnvolles Wort ergeben.
Yours truly,
        Catweazle

-----------------------------------------------------------------------------



Vergehen verboten! (Catweazle, 13. Jun 1995, 13:55:37):
Hi!
Da ich im Moment mal wieder (oh, welch Abwechslung) verd... wenig Zeit
habe, und unter anderem mal wieder Partyplanungsgedoens machen muss,
untersage ich hiermit ab sofort jegliche Vergehen, damit ich weniger
polizeigeschaeftlichen Tatigkeiten nachgehen muss...
Yours truly,
        Catweazle,  Sheriff

-----------------------------------------------------------------------------



Scriptspieler (Catweazle, 20. Jun 1995, 10:14:44):
Hi!
So, mir reichts jetzt mittlerweile, das mit den Scriptspielern ist
uns voellig ueber den Kopf gewachsen. Scriptspieler sind nicht unbedingt
das tollste im Mud und ich denke, sie machen ein Mud genauso kaputt,
wie ZT-Listen oder Komplettloesungen.
Daher gilt ab sofort folgende Regelung:

    SCRIPTSPIELER SIND VERBOTEN!!!!!

Unter Scriptspieler versteh ich im allgemeinen solche Spieler, die ohne
selbst am Bildschirm mitarbeiten zu muessen, Dinge automatisch tun.
Z.B. Kaempfen, Trainieren, Rumlaufen, Hinterherlaufen, Sich automatisch
toeten, etc. Im besonderen solche Spieler, die auf Trigger reagieren.
Wegescripts sind ausdruecklich 'geduldet'!

Diese Massnahme begruende ich wie folgt:
Scriptspieler ruinieren die Stimmung im Mud. Es sind keine echten Spieler
und nur verschaffen sich einen Vorteil gegenueber 'echten' Spieler,
indem sie die neotigen Aufgaben automatisiert erledigen. Dies ist nicht
im Sinne eines Muds. Einige Scriptspieler verbraten durch ihre hohe
auf Dauer, meist sinnlose Aktivitaet ne Menge Rechenzeit und verlangsamen
das Mud. Wieder andere haben komplette Aktionen getriggert und reagieren
wie NPCs, wodurch es schon zu Playerkills gekommen ist.
Manche behindern durch ihre rucksichtslosen, weil unbeobachteten
Aktivitaeten andere Spieler in Ihrem Spiel, meist in Questen.

Um dieses Verbot durchzusetzen gestatte ich jedem Magier, der einen
Scriptspieler als solchen identifiziert, diesen auszuloggen, am ge-
schicktesten mit einem remove_interactive(). Hierbei ist wichtig, das es
sich auch wirklich um einen Scriptspieler _handelt_, was man leicht ver-
ifizieren kann, wenn man versucht ihn anzusprechen!

Sollte ein ausloggen nicht genuegen, weil der SPieler getriggert wieder
eingeloggt wird, werde ich keine Hemmungen zeigen, das savefile zu loeschen
und den Namen zu banishen!!

Ich moechte jeden Spieler bitten, wenn er einen Scriptspieler findet, dies
an einen Magier seiner Wahl mitzuteilen.

Yours truly,
    Catweazle (Sheriff)

-----------------------------------------------------------------------------



Re: Scriptspieler (Jof, 20. Jun 1995, 10:32:40):
#! rn=Catweazle rt=803636084

 Noch ein Wort dazu: Es waere fatal, wenn jetzt die Magier anfingen, Leute
auszuloggen, weil sie sie fuer scriptspieler HALTEN. Ich faende es gar nicht
gut, wenn die Magier die Scriptspieler AUSLOGGEN; sie sollten ihren Verdacht
vielmehr einem der EMs mitteilen. Alles andere fuehrt lediglich ins Chaos.
Wenn einer einen SPieler ausloggt, den er faelschlicherweise fuer einen
Scriptspieler gehalten hat, ist das ein SCHWERER Regelverstoss und wird auch
als solcher behandelt.

 Jof

-----------------------------------------------------------------------------



Re: Re: Scriptspieler (Catweazle, 20. Jun 1995, 10:35:48):
#! rn=Jof rt=803637160
Jof hat natuerlich recht!
Wenn ihr Euch nicht HUNDERTPROZENTIG sicher seit, das ihr einen
Scriptspieler vor Euch habt, dann lieber nem Erzi bescheid sagen, der
hat noch ein paar moeglichkeiten extra, sowas rauszufinden...
YTC

-----------------------------------------------------------------------------



Entmagierung (Rochus, 14. Nov 1995, 13:47:24):
Baboon ist jetzt wieder fuer eine Woche Spieler.
Der Grund ist recht schnell erklaert:
  zwinge spieler iss giftpille
Der Spieler war anscheinend abwesend (idle) und ist daran gestorben.
Es sollte klar sein, dass ein Magier so etwas nicht tun darf,
auch wenn als mildernde Umstaende hinzukommen dass der Spieler nervt.
Der Hauptgrund dafuer, dass Baboon nur eine Woche bekommen hat,
war jedoch, dass er seinen Fehler sofort eingesehen hat.

-----------------------------------------------------------------------------



Skriptverbot (Wargon,  1. Feb 1996, 11:27:17):
  Hi!
Wie ihr ja schon in der Einlogmeldung gesehen habt, sind Skripte und Trigger
verboten. Das sind sie uebrigens schon seit laengerem, es fehlte allerdings
noch eine klare Definition. Diese soll hier jetzt folgen:
--- <SNIP> --- <SNIP> --- <SNIP> ---
DEFINITION: Script
	Ein Script ist eine Reihe von mindestens zwei Kommandos, welche
	durch eine einzelne Aktion zum Ablauf gebracht werden.

DEFINITION: Trigger
	Ein Trigger ist eine automatisierte Reaktion auf Ausgaben durch 
	die eine weitere Aktion oder ein Script ausgeloest wird.

DEFINITION: Komplettloesung
	Eine Komplettloesung ist das, was der Name sagt, oder eine
	schriftliche Zusammenstellung von vielen Hilfen zu einer
	Quest.

--
VERBOTE:
	Die Benutzung und die Weitergabe von Scripten und Triggern
	ist grundsaetzlich nicht erlaubt.
	Die Verbreitung von Komplettloesungen ist strengstens untersagt,
	da diese die Arbeit der Magier ignorieren und das Spiel kaputt machen.

AUSNAHMEN:
	Bestimmte Scripte, welche der Erleichterung der Fortbewegung dienen
	und NUR die unten angegebenen Befehle enthalten sind beschraenkt
	geduldet. 
	Faellt ein solches Script besonders auf, kann es ohne Begruendung
	durch den Sherriff verboten werden.

	BEFEHLE: Bewegungsbefehle, lang, kurz, ultrakurz
--
STRAFE BEI ZUWIEDERHANDLUNG:
	1. Auffallen
	   -> Empfindliche Einbussen bei den Skills
        2. Auffallen
	   -> Loeschung des Charakters

        Die Bestrafung bei der Verbreitung von Komplettloesungen wird
	sofort und ohne Verwarnung ausgefuehrt.
--- <SNIP> --- <SNIP> --- <SNIP> ---
Die Kommandos und Aktionen sind solche, die sich auf das Mud auswirken. Es
verbietet euch niemand, auf eurem Bildschirm Texte farbig hervorzuheben o.ae.
Ich hoffe, damit ist erstmal fuer etwas mehr Klarheit gesorgt,
  Wargon

-----------------------------------------------------------------------------



Absolutes Scriptverbot! (Catweazle,  1. Feb 1996, 15:13:29):

Hi all!

So, dies ist ein ernsthafter Artikel und ich versuche ihn daher auch mal
so zu formulieren. Es geht um eine Verschaerfung des Scriptverbotes.

Mittlerweile sieht es so aus, das ich keine bzw. nur noch sehr wenige
Moeglichkeiten habe, eindeutig festzulegen, ob ein Spieler scriptet,
oder nicht. Tatsaechlich sind nur derartige Scripter auffindbar, die
zB ueber WE nen eins anwerfen.

Die meisten Scripter sind aber solche, die automatisierte Standard-
sachen, wobei der Spieler aber dabei ist und notfalls (zum Beispiel,
wenn ich ihn anzusprechen versuche) einschalten kann. Der Unterschied
zu einem Scripter, der ausgedehnte Raucherpausen waehrend des Scriptens
macht ist nur gering. Ein Anwesendscripter kann sich, was ich zB auch
schon mal beobachtet habe, bequem unterhalten.

Um dieser Tatsache Herr zu werden, haben wir Erzmagier in einer kleinen
Sitzung beschlossen, dass Scripts und Trigger komplett verboten werden.
WAS genau als Script und Trigger bezeichnet wird konntet Ihr in einem
frueheren Artikel von Wargon lesen, oder aber Euch mit 'hilfe scripte'
anschauen.

Generell ist JEDES Script verboten! ABER es gibt eine Ausnahme, naemlich
das, was ich jetzt einmal als Wegescript bezeichnen moechte. Darunter
verstehe ich eine Aneinanderreihung von 'Bewegungsbefehlen', also
solchen Eingaben, die nur zur Fortbewegung zaehlen. Genau genommen ge-
hoert ein 'oeffne tuer' nicht dazu, und ein 'toete waechter' schon gar
nicht! Diese Wegescripts sind die EINZIGE Ausnahme fuer das
Scriptverbot!

Um dieses Scriptverbot durchsetzen zu koennen haben wir uns dazu ent-
schlossen, harte Strafen gegen Scripter zu verhaengen, zB Entfernen
aller ZTs, Entfernen aller Gildenfaehigkeiten, EPs auf 0, etc.
Dies gilt nur fuer das erste mal! Beim ZWEITEN mal wird der Charakter
rigoros geloescht.

Ich gebe zu diese Regelung ist SEHR hart, aber bisher hab ich mit
meinen halbherzigen Verwarnungen wenig Erfolg gehabt, was zu diesem
extremen Scriptverbot gefuehrt hat.

Das beste Argument, das ich bisher gegen dieses Verbot gehoert habe
ist, das es schlecht zu ueberpruefen sei. Ein Beispiel dafuer ist
ein 'schau' am Ende eines Wegescripts. Es IST moeglich dieses schau
waehrend das Wegescript laeuft per Hand einzugeben, trotzdem sieht
es so aus, als ob es automatisch am Ende des Scripts ausgefuehrt
wird. Dazu bliebe mir zB die Moeglichkeit laenger zuzusehen, und
wenn ich mehrere Male ein 'toete waechter' am Ende eines Weges sehe,
dann schoepfe ich erst mal schweren Verdacht, vom dem ihr mich dann
abbringen duerft.

Ich habe noch zwei Ergaenzungen:
Zum einen gehoert zu diesem Scriptverbot ein Komplettloesungsverbot.
Das heisst, das Erstellen fuer nicht eigene Zwecke und vor allem
Weitergeben vom KL ist strengestens verboten. Sollte jemand dabei
erwischt werden, KL zu verteilen ist ein sofortiges Loeschen des
Charakters nicht auszuschliessen.
Zum Anderen sind in letzter Zeit haeufig Scripts aufgetaucht, die
ZTs suchen und finden. Sollte ich einen Spieler finden, der ein
solches Script benutzt, werde ich diesen - und falls bekannt auch
dessen Erstspieler - ohne zu Zoegern loeschen, und das ist mein
_voller_ Ernst.

Ich denke das waers fuers Erste. Ich stehe gerne zu Fragen,
Anregungen und Kritiken zur Verfuegung, aber bitte versucht, wenn
ihr etwas derartiges wollt, eine mail zu schreiben, ich werde dann
wahrscheinlich oeffentlich in der Zeitung antworten. Bei zuvielen
persoenlichen Anfragen komme ich wohl nicht mehr nach.

Yours truly,
        Catweazle (Sheriff)

PS: Tut mir Leid, dass ich diesen Artikel erst jetzt veroeffent-
    licht habe. Ich wollte ihn eigentlich schon gestern Abend
    posten, als ich das Verbot ins Login geschrieben habe, hab es
    aber aufgrund des oben stehenden Umfangs leider nicht mehr
    geschafft. Dies hat wohl zu enormer Verwirrung gefuehrt,
    wofuer ich mich entschuldigen moechte.

-----------------------------------------------------------------------------



Oetti for Spieler! (Catweazle, 14. Mai 1996, 20:03:04):
Hi!
 
Zu meinem grossen Bedauern muss ich folgendes bekanntgeben:

Am letzten Freitag hat Sundance, ein Zweitspieler von Bombowski,
in unflaetiger Weise die angetraute von Oetti mit Kosenamen
(Schlampe, etc.) beglueckt. 
Daraufhin hat Oetti in heroischer Weise den widerlichen und 
frauenfeindlichen Bombowski-zweitie ruhiggestellt, indem er ihn
kurzerhand per ZAP dem Tode uebergeben hat.
Bombowski hat sich samt Zweitie daraufhin beleidigt und schmollend 
selbstgeloescht.
Wie jeder weiss, ist ein derartiger Eingriff ins Spielergeschehen,
auch mit derart heren Absichten, nicht erlaubt. 
Ich sehe mich daher leider gezwungen, Oetti fuer seine heldenhafte
Tat bestrafen zu muessen. 
Die Bestrafung aeussert sich in zwei Wochen Spielerdasein und 
beginnt augenblicklich.
Ich hoffe Oetti wird sich nach den zwei Wochen wieder reuig und 
gelaeutert in die Magierschaft einreihen koennen *huestel*.

Yours truly,
     Catweazle

PS: Never trust a Sheriff :)

-----------------------------------------------------------------------------



Re: Oetti for Spieler! (Dancer, 14. Mai 1996, 20:07:41):
~#! rn=Catweazle rt=832096984
~#! tid=832096984
Wie alle, die neben Oetti im Raum standen leicht feststellen konnten, war
Oettis Handlung vollkommen berechtigt und eine logische Folge. Es war ja nicht
ohne Warnung. 
Man muss feststellen, dass hier dass Rechtssystem eindeutig versagt hat, eine
Saeule, die unsere Gesellschaft stuetzen sollte, ist eine Fehlkonstruktion!
Das Recht ist hier nicht GERECHT! Das Leben ist hart und grausam und unfair
und ueberhaupt!
Was ich nur sagen wollte: viel Spass als Spieler, Oetti ;-))

Dancer - liebt Dich trotzdem...:)


-----------------------------------------------------------------------------



Re: Re: Oetti for Spieler! (Morgoth, 15. Mai 1996, 07:16:49):
~#! rn=Dancer rt=832097261
~#! tid=832096984
aehm
wenn du deinen magiervetrag liest steht da drin dass du spieler nicht positiv
oder negativ beeinflussen darfst. nun, zap ist m.E. eine sehr negative
beeinflussung und NIE gerechtfertigt.
morgoth

-----------------------------------------------------------------------------



Re: Oetti for Spieler! (Schrumpfi, 15. Mai 1996, 08:53:56):
~#! rn=Catweazle rt=832096984
~#! tid=832096984
Ich frag mich nur, wer sich da ins Spielergeschehen eingemischt hat.
Kommst Du Dir nicht laecherlich vor, Cat?
S.

-----------------------------------------------------------------------------



Re^3: Oetti for Spieler! (Dancer, 15. Mai 1996, 11:50:55):
~#! rn=Morgoth rt=832137409
~#! tid=832096984
Bist Du RL auch so verkrampft? ;-)

Dancer - knuddelt Morgoth nochmal ganz doll, weil ich es alles mit Sicherheit
nicht ernst nehme :-)


-----------------------------------------------------------------------------



Re^4: Oetti for Spieler! (Paracelsus, 15. Mai 1996, 12:03:07):
~#! rn=Dancer rt=832153855
~#! tid=832096984
Irgendwie naehert sich das so langsam aber sicher (mal wieder) dem
Punkt, wo dann irgendwer fordert, man sollet doch am besten alle
Regeln abschaffen, es ist ja eh nur eine virtuelle Realitaet
und wer damit nicht zurecht kommt sieht das einfach alles
zu eng.

Paracelsus [Aufregemodus: deaktiviert]

-----------------------------------------------------------------------------



Re^3: Oetti for Spieler! (Mupfel, 15. Mai 1996, 16:37:13):
~#! rn=Morgoth rt=832137409
~#! tid=832096984
Ein Magiertestie ist kein Spieler, in dessen 'Spielgeschehen' ein anderer
Magier nicht eingreifen koennte... Zappen gehoert dazu... bei normalen
Spielern ist das was anderes... aber wenn einer mit nem Testie muell macht und
dazu die Anwesenden noch beleidigt, ist zapp (alternativ auch das jail) ein
angemessenes Mittel IMHO. Ein Testie ist NIE als Spieler anzusehen... man muss
immer den Magier 'dahinter' sehen... 

-mupfel-

-----------------------------------------------------------------------------



Re^4: Oetti for Spieler! (Durian, 16. Mai 1996, 12:37:48):
~#! rn=Mupfel rt=832171033
~#! tid=832096984
Ganz kurze Frage, ohne den aktuellen Fall bewerten zu wollen ...

Was ist eigentlich mit all den zaps die regelmaessig stattfinden 
(stattfanden) um ungeliebte Playerkiller aus dem Weg zu raeumen?? Mir sind
sind so um die 5 bis 10 Faelle bekannt. Es ist fuer die RM's ja auch einfach,
welche herauszufinden, sie werden ihnen schliesslich mitgeteilt.

Also, ich zappen von Playerkillern erlaubt? Nein, wieso sind dann nicht ein
paar der RM's mal Spieler gewesen?

Also wenn hart durchgreifen, dann doch bitte konsequent! Oder?

- Durian

-----------------------------------------------------------------------------



Re^5: Oetti for Spieler! (Mupfel, 17. Mai 1996, 18:45:27):
~#! rn=Durian rt=832243068
~#! tid=832096984
Playerkiller zappen? 'at bla frieden'. fuer die 'bestrafung' ist ganz klar der
sherrif da und nicht 'rambo' durian. 

-mupfel-

-----------------------------------------------------------------------------



Laecherliche Zweikaempfe (Catweazle, 17. Mai 1996, 19:43:15):
Tagchen!
 
Sooo, jetzt hat sich das Geschreie vielleicht etwas gelegt. Naja,
ist zumindest mein kleiner persoenlicher Eindruck.

Nach einer Woche seit Tat, stundenlangen naechtlichen Belaberungen
auf Kanaelen und einem Zeitungsthread, der sich mittlerweile ueber
mindestens 3 Rubriken erstreckt, kann ich ja mal Resuemee ziehen.

Tja, was ist der Ausgangspunkt. Magier A mag Magier B nicht und 
Magier B laesst Magier A das mehr als deutlich spueren, woraufhin 
Magier A versucht ihm moeglichst eine reinzuwuergen und Magier B
volles Rohr zurueckgibt. 
Was ergibt: Kleinkriege zwischen ganz genau 2 (ZWEI) Magiern, die
meinen, sie muessten sich oeffentlich alle machen.

Achso, um dem ganzen unverstaendlichen Krams mal zu beseitigen,
Magier A ist Saikan und Magier B ist Oetti. Ich moechte jetzt aber 
trotzdem darauf verzichten, die mir bekannte Vorgeschichte zu 
erzaehlen.

Ich finde es erschreckend, was fuer Kreise ein Antipatie zweier
Spieler im MorgenGrauen mit sich bringen kann. Prinzipiell wuerde
ich das Wort benutzen wollen, das mir am ehesten in diesem Thread 
aufgefallen ist: laecherlich.

Ich finde es eher laecherlich, wenn zwei meinen, sie muessten Ihren
Streit auch noch in der Zeitung breit treten/treten lassen. Ich finde
es gleichermassen laecherlich, wenn Leute meinen, sie muessten sich 
fuer die eine oder andere Seite ins Zeug werfen, ohne den Streit auch
nur Ansatzweise verstanden zu haben.

Okok, Oetti hat nen Spieler gezappt, gut. Oder besser nicht gut, denn 
das ist ein schwer verbotener Eingriff ins Spielergeschehen. Sieht man 
dann allerdings, das der Spieler ein 'Zweitie' eines Magiers ist, 
kommen mir da schon wieder Zweifel auf. Spieler oder nicht Spieler,
das ist .. (viel zu literarisch :-).
Laecherlich ist es dann Forderungen hoeren zu muessen, Oetti dafuer 
_mindestens_ fuer 4 Wochen zu banishen.
Laecherlich ist es ebenso Beitraege hoeren zu muessen wie 'Lass doch,
das war doch nur Oetti'. Auch ein Oetti hat eben keine Narrenfrei-
heiten im MG.
Laecherlich ist es weiterhin, sich wegen eines Zapps mitsamt ange-
paarten Magier zu loeschen.


Was tun, also als Sheriff. 
Die Forderung nach Bestrafung fuer Oetti war enorm, die Tat verboten, 
aber wenn man die Begleitumstaende betrachtet eher verstaendlich und,
und, zumindest aus meiner Sicht, 'verzeihlich'.
Ich habe also zu einer (ausreichenden) Loesung gesucht.
Tja, ich habe also Oetti zum Spieler gemacht, um den Strafforderern
genuege zu tun, habe aber gleichzeitig nicht gerade unabsichtlich
'vergessen' Oetti zu mbanishen, sodass er sich gleich wieder zum
Magier machen konnte. Das Urteil war also eher milde und zugegebener-
massen _laecherlich_, das allerdings auch mit einer gewissen
Absicht.

Tja, leider habe ich uebersehen, das sich halt doch jeder angepisst 
fuehlen wuerde, die einen naemlich WEIL ich Oetti verknackt habe, die
anderen, weil ich es so schlampig getan habe. (Ich benutze dieses Wort
uebrigens recht haeufig bei Maennern, eine Frau als Schlampe zu bezei-
chnen ist IMHO eine der fiesesten Beleidigungen, die es gibt). Ich
finde die Heftigkeit, mit der manche dabei reagiert haben nicht nur
schade, sondern deutlich fehl am Platz. Es ist oft nicht leicht, die
richtige Entscheidung in einem Streitfall zu treffen, aber bei einem
Urteil, das einem persoenlich nicht passt gleich (uebrigens oeffent-
lich, dankeschoen) loszubollern, ist deutlich daneben...

Hm, nun isses nicht mehr zu aendern. Oetti hat seine 'Strafe'
bekommen und dabei belasse ich es. Ich finde die Tatsache allein, das 
Bombowski sich geloescht hat, macht die Geschichte ausreichend, oehoem,
laecherlich, um von einer _echten_ Bestrafung abzusehen.

Was ich aus dieser Geschichte gelernt habe ist, das wohl ein viel zu
luschiger Sheriff bin. Ich bin immer sehr langsam mit Bestrafungen,
und tue es tatsaechlich wirklich richtig ungern. Leute zu bestrafen
macht meist sehr, sehr wenig Spass, und daher versuche ich meist,
die Spieler mit der Androhung von Bestrafung die Schranken zu setzen.
Ihr werdet es vielleicht nicht verstehen, aber in fast allen Faellen
reicht das auch voellig aus :-)

Dumm war, das ich bei dieser Bestrafung wohl versucht habe, deutlich zu
machen, das ich manchmal halt DOCH jemanden bestrafe. Oetti als Exempel
zu benutzen war eher ein Fehler, zumindest bei dieser 'Art' der 
'Bestrafung'.

So, damit auch Ihr was lernt. Rumpfuschen an Spielern ist VERBOTEN!
Stats, EPs, HP setzen, healen, snoopen, ZAPPEN sind verbotene Dinge,
und Ihr habt als Magier da gefaelligst die Finger davon zu lassen!!!
Da mittlerweile gerade bei Magiern ein kleines Gespraech offenbar nicht
mehr weiterhilft, werde ich wohl in Zukunft tatsaechlich auf Bestrafungen
bei Magiern zurueckgreifen muessen :(

Ach uebrigens, mir in dem Thread vorzuwerfen, schlimmere 'Vergehen' 
anstandslos durchgehen zu lassen, wenn ich diese erst seit 10 Minuten kenne,
finde ich hochgradig unfair. Ich gestatte mir jetzt, darueber zu schmollen.

Womit habe ich angefangen? Achja, Fehden zwischen zwei Spielern. Also 
nochmals, wenn ihr Euch nicht moegt, oder hasst, oder wie auch immer, 
schreibt Euren Mist nicht in die MPA, schreit es nicht ins MG hinaus und,
was noch viel wichtiger ist, schleppt Eure MG-Altlasten nicht mit ins RL!
DANN wirds naemlich richtig boesartig.

So, hab ich jetzt den Faden verloren? Hab ich zuviel geschrieben?
Muss ich Oetti loeschen? Oder Saikan?

So, und jetzt werde ich die Zeitung aufraeumen, ich darf naemlich alles 
loeschen, wenn ich will. Ich bin naemlich Sheriff, jawoll ...

Yours truly,
     Catweazle 

-----------------------------------------------------------------------------



Torfdueng (Rochus, 23. Mai 1996, 17:57:52):
Habe Torfdueng wegen Playerkills vorlaeufig auf Spielerlevel gesetzt.
Cat wird festlegen, wie lange er das bleibt.

-----------------------------------------------------------------------------



Re: Laecherliche Zweikaempfe (Schrumpfi, 24. Mai 1996, 18:25:36):
~#! rn=Catweazle rt=832354995
~#! tid=832354995
Jaja, Catty Du bist halt nur der Sheriff. Wie war das? Ich bin nichts, ich
kann nichts, gebt mir einen Sheriffstern. Hoehoe aber dafuer kannst Du klasse
Decken streichen ;-)
Naja, loescht Catweazle! ;-)
S.

-----------------------------------------------------------------------------



UNT-Scripter (Catweazle, 12. Jun 1996, 21:49:29):
Tach!

So, ich habe wieder mal eine unledige Aufgabe zu erfuellen.
WIe ich gestern auf dem Stammtisch gehoert habe, ist im Augenblick ein
Untersuche-Script im Umlauf. Wargon hat bereits einige Nutzer dieses 
Scripts verwarnt und zwar: Arty, Bottom, Crolla, Orktoeter, Phygos und
Skywalker.
Ich habe zwei weitere gefunden und zwar Sloane und Symbiont, die sich bitte
hiermit verwarnt fuehlen sollen, bzw noch mal angesprochen werden.

Wargon hat 'nur' verwarnt, aber das reicht mir nicht. 
Ich bin zwar immer lieb und nett, aber ich moechte trotzdem eine Strafe 
verhaengen. Die Wahl der Strafe ist in diesem Fall einfach, ich werde 
sie dem Vergehen anpassen: Alle bisher von diesen Spielern gefundenen 
Forscherpunkte werden geloescht.
Yours truly,
     Catweazle

PS: Nochwas..wenn ich denjenigen finde, der dieses unt-script geschrieben
    und dann auch noch verteilt hat, werde ich ohne zoegern sofort loeschen!!

-----------------------------------------------------------------------------



Re: UNT-Scripter (Wargon, 13. Jun 1996, 13:48:57):
~#! rn=Catweazle rt=834608969
~#! tid=834608969
  Hi!
Als kleiner Anreiz fuer Scripter: Ab sofort werden erwischte Scripter von der
Topliste ausgenommen. Das gilt auch schon bei Verwarnungen und auf Lebenszeit.
  Wargon

-----------------------------------------------------------------------------



Wenn Ihr es denn so wollt.... (Catweazle, 14. Jun 1996, 13:47:44):
Hi!

Ok, ich habe vor zwei Tagen diesen artikel geschrieben, da ich gehofft
habe, dass die unt-Scripterei aufhoert. Dem ist leider nicht so :(

Erst moch nen kleines Vorwort, es hat sich gezeigt, das symbiont und 
phygos nicht wie von mir und wargon verdaechtigt, gescriptet haben, 
aehnliches gilt u.U. fuer bottom und sloane. Diese sind somit ent-
lastet.

Ich hab aber trotzdem verstanden, das ein bisschen FP-Zuruecksetzen 
nicht reicht. Ich habe weitere 4 Leute im Verdacht, die NACH meinem
Artikel gescriptet haben. Sollte es sich bewahrheiten, das ich recht habe,
so werde ich das strafmass verschaerfen. Zu dem bisherigen FP auf 0,
folgt ein EP auf 0 und gildenstats auf 5%.
Klingt hart, gell?
Isses auch, geht aber wohl nicht anders!!! :(

Ich denke ich bin nicht der einzige der sich mit der Hand an den Kopp 
gepackt hat, als ich lesen musste, das einige superkluge Seher meinten,
sie muessten das wunderschoene script dahingehend austesten, wann denn 
das script gefaehrlich wird. Kinners Script ist Script, ob Ihr das nur 
nur ausprobiert oder ernsthaft benutzt. Ihr seid auch in dem log aufgetaucht,
und ich seid damit genauso scripter wie alle anderen auch. 'Ich wollte das 
nur mal testen' ist keine entschuldigung!!! Vor allem nicht, da ihr das 
mit 'austesten' wieder soweit bringt, das ihr Eure scripts optimieren 
koennt :((

Also> HOERT AUF MIT DIESEM SCRIPTMIST!!!
Jeder der ab jetzt wieder in dem log auftaucht und bestaetigt gescriptet
hat, kriegt von mir diese nicht kleine strafe aufgebrummt!

Yours truly,
      Catweazle (Sheriffclown)

-----------------------------------------------------------------------------



Re: Wenn Ihr es denn so wollt.... (Schrumpfi, 15. Jun 1996, 04:14:00):
~#! rn=Catweazle rt=834752864
~#! tid=834752864
Cat, Dich wird nie einer ernstnehmen, wenn Du die Charaktere nicht loescht, so
wie beim einloggen angedroht. Ich finde die Strafe die Du da androhst
eigentlich nicht wirklich hart. Erst wenn Du wirklich einen geloescht hast,
dann werden sich die Leute das auch ueberlegen ob die es nochmal riskieren
wollen. Aber bitte  erst ueberpruefen ob sie auch wirklich gescriptet haben.
Ich will Dir da nicht drein reden in Deinem Job aber ich wuerd auch keinen
ernst nehmen, der mir wasweissichwas androht und es dann nicht tut.
S.

-----------------------------------------------------------------------------



Re: Re: Wenn Ihr es denn so wollt.... (Ketos, 24. Jun 1996, 00:31:17):
~#! rn=Schrumpfi rt=834804840
~#! tid=834752864
Bevor man den Charakter loescht koennte man ihn auch einen Monat
zwangsbeurlauben.
- Ketos -

-----------------------------------------------------------------------------



Oetti geloescht (Rumata,  3. Sep 1996, 13:51:36):
Da Oetti sich gestern (mehr oder weniger gewaltsam) sich des Terminals von
Guybrush bemaechtigt hat, um einen Spieler zu zappen, haben Kirk, Hate,
Wargon, Catweazle und ich uns entschlossen, seinen Charakter ganz zu loeschen.
Das mag vielleicht hart klingen, aber da er genau deshalb Magierpause hatte,
sehen wir seiner Unverbesserlichkeit als erweisen an.
Guybrush ist wegen wegen fahrlaessiger Unterstuetzung bis ente der Woche
gespielert. (Spilern helfen darf er natuerlich trotzdem nicht :-)

Schade, dass es dazu kommen musste.
Rumata

-----------------------------------------------------------------------------



Guybrush vermagiert (Catweazle,  3. Sep 1996, 19:07:33):
Hi!

Im juengsten Verfahren gegen Ex-Magier Oetti und seinen Nebenangeklagten
Guybrush ist es bedauerlicherweise zu einem schweren Verfahrensfehler
gekommen, aus dem ich mich gezwungen sehe, die Verspielerung des Magiers
Guybrush fuer ungueltig zu erklaeren.

Yours truly,
     Catweazle

-----------------------------------------------------------------------------



Re: Oetti geloescht (Li,  4. Sep 1996, 09:41:51):
~#! rn=Rumata rt=841751496
~#! tid=841751496
> Schade, dass es dazu kommen musste.

Das glaube ich Euch nicht! Ihr seid doch froh, dass ihr Oetti endlich
loswerdet. Und was heisst schon Unverbesserlichkeit? Wir wissen doch alle um
Oetti und wie er ist. Und Oetti ist (sorry war!) eine Bereicherung fuers MG.
Natuerlich hat er Magierregeln gebrochen, aber mein Gott habt ihr nichts
anderes drauf, als autoritaer und langweilig einfach sein save-file zu
loeschen? Seid ihr so unflexibel, langweilig oder einfallslos?
Sag mal, rumata, bist Du zufaellig bei der Polizei angestellt? Wenn ich mir
Deinen Artikel so ansehe...
>wegen fahrlaessiger Unterstuetzung
Meine Guete, das klingt ja wie ein Polizeibericht.
Naja, jetzt ist das Mg wieder brav und bieder. Friede, Freude, Eierkuchen.
Alle Goetter und EMs sind zufrieden es herrscht ruhe, wieder ein aufmuepfuger
Charakter eliminiert! Prima!
Ich gratuliere Euch!
Li (Und jetzt kommt mir nicht wieder mit dem Argument, wer wiederholt
Magierregeln bricht, muss  geloescht werden, sonst endet das MUD im Chaos. Das
glaube ich Innenminister Kanther nicht, und das glaube ich Euch auch nicht)

-----------------------------------------------------------------------------



Re: Re: Oetti geloescht (Hate,  4. Sep 1996, 10:52:55):
~#! rn=Li rt=841822911
~#! tid=841751496
Wenn ich mir den letzten Artikel so ansehe frage ich mich, ob Li ueberhaupt
mitbekommen hat, was hier in letzter Zeit so gelaufen ist.
Vielleicht waere es angebracht, sich mal damit zu beschaeftigen, WARUM
Oetti mehrfach zum Spielerdasein verdammt wurde. 
Es kann nicht angehen, dass Personen, die sich einen Scheissdreck um andere
kuemmern auch noch hoch gelobt werden. Oettis Verhalten kann ich in keinem
Fall akzeptabel. Abgesehen davon, dass er mehrfach gegen die Magierregeln
verstossen hat, hat er dabei auch noch anderen geschadet. Und hier ist es
absolut egal, ob diese anderen Personen im Nachhinein ihre Punkte, Sachen
etc wiederbekommen haben.
Wenn soetwas einmal passiert, ist das noch einzusehen, man kann mal ein
Problem haben und ausflippen, aber wenn jemand solche Aktionen mehrfach und
eindeutig mit ABSICHT macht, dann ist das durchaus ein Grund denjenigen
loszuwerden, und das ohne Abstriche. Wenn Oetti sich nicht genug im Griff
hat, soll er gefaelligst das mudden sein lassen oder eine Runde DOOM spielen,
wo es keinen stoert.
Also bitte nicht nochmehr solche daemlichen Nachrufe und Artikel wie der
von Li. Beschaeftigt Euch mit dem PROBLEM *und* mit dem System, dass wir hier
haben und es ist eben NICHT EGAL, ob jemand gezappt wird oder schikaniert.

Hate.

-----------------------------------------------------------------------------



Re^3: Oetti geloescht (Li,  4. Sep 1996, 11:14:37):
~#! rn=Hate rt=841827175
~#! tid=841751496
Tja Hate, vielen Dank fuer Deine nette Antwort
Li (vergleicht die Mg-Regierung immer mehr mit der Bundesregierung)
P.S. auch wenn Du tausendmal Erzmagier bist, solltest du anderen Leuten
gegenueber ein gewisses Mass an Selbsteinschaetzung zutrauen und sie nicht
einfahc als daemlich abqualifizieren, nur weil sie nicht Deiner Meinung sind.
Einen gewissen Ton sollten auch Erzmagier einhalten, und Du solltest dich
nicht wundern Hate, warum Du als selbstherrlich bei sehr vielen
Spielern/Magiern gilst.
P.P.S. Ich hab nie gesagt, Oetti muesse nicht bestraft werden, ach was solls,
Du kapierst ja sowieso nicht, um was es mir geht (aber vielleicht andere EMs?)

-----------------------------------------------------------------------------



Re^4: Oetti geloescht (Hate,  4. Sep 1996, 11:19:48):
~#! rn=Li rt=841828477
~#! tid=841751496
Lies Dir bitte Deinen eigenen Artikel mal durch.
Du bist Der Meinung, wir waeren gluecklich mal jemanden Loeschen zu koennen.
Es wuerde nie soweit kommen, haetten sich einige hier etwas besser im Griff.
Und jemanden, der wissentlich mit einer Magiershell umgeht um anderen zu 
schaden gilt bei mir schon lange nicht mehr als "aufmuepfig". Dieser Ausdrueck
verharmlost die ganze Sachlage ja wohl. Vielleicht solltest Du Dir darueber
mal Gedanken machen? Aehnliche Tendenzen sehe ich auch in Artikeln anderer
Leute, die versuchen Oetti als den Lieben Menschen darzustellen, der er
nie gewesen ist. Es gibt Spaesse und es gibt unverantwortliches Verhalten.
Der Grund zur Loeschung gehoert zu letzterem.

Hate.

-----------------------------------------------------------------------------



Re^5: Oetti geloescht (Wurzel,  4. Sep 1996, 11:55:34):
~#! rn=Hate rt=841828788
~#! tid=841751496
ich hab mich bis jetzt ja rausgehalten, aber allmaehlich geht mir die
diskussion doch auf den geist.
fakt ist, dass ein spieler gezappt worden ist, und das ist klar gegen die 
magierregeln. wie man damit umgeht, ist ein ganz anderes ding.
nach meinem geschmack waere es am sinnvollsten, den quatsch auszubauen.
ich kann mir keine situation vorstellen, wo ein magier einen spieler zappen
MUSS, also sollte die moeglichkeit dazu entfernt werden.
es kann wohl nicht verhindert werden, dass leute magier werden, die mit dem
eigentlichen aufgabengebiet eines magiers nichts am hut haben. aber man kann
es ihnen schwerer machen, unsinn zu veranstalten. einen magier zu bremsen,
der sich gut auskennt, ist wohl nicht so einfach, aber die problemfaelle
zeigen doch im regelfall nicht unbedingt die fundierte lpc-kenntnis... wenn
also ein nasenbaer-magier meint, die shell nur zum goto und unbegrenzten
shout haben zu wollen, lasst ihn doch. aber macht es schwerer, damit unfug
zu machen.
eine einfache loeschung von oetti loest doch das problem ueberhaupt nicht,
der naechste kommt bestimmt. wer vorsorge treffen kann und es trotzdem nicht
tut, den trifft eindeutig eine mitschuld.

wurzel (kopfschuettelnd)

-----------------------------------------------------------------------------



Re^6: Oetti geloescht (Li,  4. Sep 1996, 13:28:25):
~#! rn=Wurzel rt=841830934
~#! tid=841751496
vielen Dank wurzel, dass Du das auf den Punkt bringst, was ich versucht habe
auszudruecken!
Li (hier fehlt kein Ironie Off, das ist ernst gemeint!)

-----------------------------------------------------------------------------



Re^4: Oetti geloescht (Schrumpfi,  5. Sep 1996, 21:19:45):
~#! rn=Li rt=841828477
~#! tid=841751496
Und wie bitte soll er bestraft werden? Er IST ja schon bestraft worden und hat
Spielpause -1 (aeh hatte). Ne ne Li, ich haette zwar nie gedacht das ich das
jemals schreibe aber ich muss den Erzies in diesem Punkt voll und ganz
zustimmen.
Catweazle tut mir echt schon leid, loescht er die Spieler/Magier nicht, die
sich nicht an die Regeln halten, is er ein Weichei, loescht er sie doch, is er
ein machtgeiler Erzmagier. Was zum Donner soll er denn machen?? Naja und von
wegen Ton einhalten ect, werden die Erzies ja auch nicht grade mit
Glaseehandschuhen angefasst. 
Schrumpfi diesmal eindeutig auf der Seite von 'denen da oben'

-----------------------------------------------------------------------------



Re^5: Oetti geloescht (Li,  6. Sep 1996, 09:08:24):
~#! rn=Schrumpfi rt=841951185
~#! tid=841751496
Sorry, Schrumpfi, dass du jetzt den EMs Recht geben musst. .-)
Aber mal im Ernst: Ich glaube immer noch, dass es andere Moeglichkeiten geben
muss, ausser Spieler loeschen. Natuerlich blieb den EMs nichts anderes Uebrig,
darueber hab ich mich auch nie beschwert!
Was mich betrifft, so muss ich zugeben, dass ich an diesem morgen ziemlich
schlechte Laune hatte und meinen Aerger hauptsaechlich an Hate ausgelassen
habe.
Moechte mich hiermit dafuer bei Hate entschuldigen. (Jetzt sagt nicht, warum
keine mail, wer oeffentlich rumbloekt, sollte sich auch oeffentlich
entschuldigen).
Ich moechte hiermit die Angelegenheit mal zum Abschluss bringen. vielleicht
sollte man sich ernsthaft mal ueberlegen, zap abzuschaffen. Natuerlich gibt es
ne Menge moeglichkeiten, spieler vom Leben in den tod zu befoerden, aber wie
waere es, wenn zap, trans, HP Veraenderungen bei Spieler nur ab einem gewissen
Grad erlaubt sind? Ok, dann wird es schwieriger, dass jeder Magier einem
Spieler helfen kann, aber so haefig sind die (erlaubten) Situationen auch
nicht, in denen ein Spieler getranst werden muss.
Natuerlich gibt es noch ne Menge Moeglichkeiten, aber wenn Magier erstma nen
bischen LPC anwenden muessen, um einen Spieler zu toeten, verzichten
zumindestens einige drauf, weil es ihnen zu umstaendlich wird.
bis denne,
li

-----------------------------------------------------------------------------



Re^6: Oetti geloescht (Schrumpfi,  6. Sep 1996, 15:30:56):
~#! rn=Li rt=841993704
~#! tid=841751496
Jau! Ich bin sowieso schon lange dafuer, dass manche Befehle erst ab einem
bestimmten Level moeglich sind. Ob das jetzt Level 26 oder 45 ist, ist mir
dann egal. Oder ab Level 26 kriegt man diesen und jenen Befehl dazu und ab
Level 45 (oder 30 oder was weiss ich) kriegt man alle Befehle. Ist ganz
einfach zu machen denk ich mal, so wird das in fast jedem englisch-sprachigem
Mud gemacht. 
Schrumpfi

-----------------------------------------------------------------------------



WWW-Seiten... (Catweazle,  9. Sep 1996, 18:35:00):
Guggug!

Bei meiner juengsten Durchsicht aktueller WWW-Seiten habe ich die Seite 
http://ernie.orch.ruhr-uni-bochum.de/cgi-bin/mg/save_oetti 
gefunden.

Da auf dieser Seite propagandistisches Material ueber Unpersonen des MGs
gelagert werden, gebe ich hiermit bekannt, das das Aufrufen dieser Seite
von Seiten der MG-Polizei schwer geahndet werden wird. 
Sollte mir trotzdem bekannt werden, das MorgenGraeuler diese Seite benutzen
muss mit Hoechststrafen gerechnet werden.

Yours truly,
     Catweazle ;)

-----------------------------------------------------------------------------



Abstufung (Catweazle, 14. Okt 1996, 20:11:24):
Hi!

In gegenseitigem Einvernehmen sind wir soeben uebereingekommen Vrai
von Level 55 abzustufen. Die Abstufung erfolgte aufgrund von nicht fuer
die Oeffentlichkeit wichtigen Belangen und mit Vrais Einverstaendnis.

Yours truly,
     Catweazle

-----------------------------------------------------------------------------



Re: Abstufung (Catweazle, 14. Okt 1996, 20:13:05):
~#! rn=Catweazle rt=845316684
~#! tid=845316684

Suelzgewaesch ....
Ich bin ein diplomatisches Arschloch ;-)

YTC

-----------------------------------------------------------------------------



PK in Abwesenheit (Catweazle, 11. Nov 1996, 21:20:52):
Hi!

Ok, hier eine kleine Info zur PK-Politik.
Mir ist es in den letzten Monaten haeufig untergekommen, das begangene PKs 
und Scripten vom Spieler mit dem 'Diebstahl' des Accounts begruendet 
wurden, genauer: 'angeblich' wurde der Charakter von jemand anderem, meist
unbekanntem benutzt. 
Ich gebe zu, das ich bei diesen Faellen nicht sehr konsequent in der
Beurteilung war, manchmal hab ich den Spieler verknackt, manchmal nicht.
Das moechte ich jetzt aendern und darum schreibe ich diesen Artikel.
Zukuenftig werden ich mit jedem, der mit der 'Entschuldigung' kommt, 'das war
ich nicht, jemand hat mein passwort geklaut', genauso verfahren, wie mit jedem
anderen Taeter auch. Geklaute Passwoerter sind keine Entschuldigung fuer das
Verhalten des Charakters, mit anderen Worten, jeder Besitzer eines Charakters
ist fuer diesen VOLL selbst verantwortlich, insbesondere fuer die Sicherheit
des Passwortes. 

Ich hoffe dies spornt mal ein bisschen dazu an, sich ein sicheres Passwort zu
ueberlegen, ich moechte daran erinnern, das erst kuerzlich ueber 3700 
Passwoerter von einem _Standard_-Crackprogramm herausgefunden wurden.

Yours truly,
     Catweazle

-----------------------------------------------------------------------------



Auf Wunsch von Grimmborn (Silvana,  4. Feb 1997, 20:07:52):

Wer sich dafuer interessiert, was so alles nach dem neuen Telekommunika-
tionsgesetz moeglich ist, sollte sich unbedingt folgendes ansehen:

http://www.iks-jena.de/mitarb/lutz/security/90tkg.interface-draft.html

Ist richtig erschreckend und unheimlich, was da so moeglich ist. :-(

Grimmborn der Atheist

-----------------------------------------------------------------------------



PK Andres (Highlander,  5. Feb 1997, 17:08:16):
So, nachdem ich mit Andres und Johnsilver geredet habe, entscheide ich mich
fuer folgende Regelung: Andres behaelt seinen PK bis zum 06.02., das
sind zwei Wochen statt der ueblichen vier.
Das ist nicht Standard, darauf moechte ich potentielle PKler hinweisen.
Warum? Wum, das Opfer, ist ein Mehrspielercharakter. Nachgewiesenerweise.
Daher kann ich sowieso nicht davon ausgehen, dass eine Antwort des Spielers
von dem ist, der am Druecker war. Der Spieler, der bei dem PK hinter Wum
stand, kommt laut Johnsilver auch erst in ein paar Wochen wieder.
Die zwei Wochen Frist habe ich aus folgenden Gruenden gewaehlt:
- Andres plaediert auf einen versehentlichen PK
- Johnsilver bestaetigt, dass Wum an dem Tag wohl ziemlich auf Aerger aus
  war und auch den PK in Kauf genommen hat, nachdem er angegriffen war
- ich kann sowieso eine Aussage Wums nicht ernst nehmen, weil ich nicht
  weiss, von wem sie kommt.
- Andererseits will ich den PK nicht einfach so durchgehen lassen -
  immerhin starb ein Seher dabei
  Nein. Das heisst nicht, dass ein Seher mehr wert ist als nur einfach
  ein Spieler. Auch ein PK an einem normalen Spieler gibt Aerger.
  Ich will's aber in Anbetracht der Situation nicht uebertreiben. Nachdem
  die zwei Wochen Frist morgen bereits um sind, habe ich mich fuer diesen
  Zeitraum entschieden. Dieser PK wird nicht weiter angerechnet werden.

  Highlander, Hilfssheriff

-----------------------------------------------------------------------------



PKs Oetti/Sidolin (Highlander,  7. Feb 1997, 13:24:10):
Gestern haben sich Oetti und Sidolin gegenseitig umgebracht. Und das,
obwohl ich sie wiederholt unterbrochen habe (Frieden gestiftet) und ihnen
gesagt habe, dass sie das lassen sollen.
Wegen dieser offensichtlichen Missachtung des Verbots, Spieler zu toeten,
erhalten beide 10 Wochen lang zwei PKs. Das heisst, keine EP, keine StuPs
usw. Nicht dass ich glaube, dass das die beiden juckt, aber darum geht's
nicht. Was sie aber eventuell juckt, ist, dass das gleichzeitig die letzte
Warnung ist. Beim naechsten PK, fuer den sie nicht eine _gute_ Erklaerung
haben, wird der jeweilige Charakter geloescht und gebanisht. Dauerhaft.
Dass euch *schiel oetti und sidolin* das vielleicht nicht weiter juckt,
ist kein Grund, die Konsequenzen nicht folgen zu lassen.

Highlander ryn Tahar, Hilfssheriff

-----------------------------------------------------------------------------



Re: PKs Oetti/Sidolin (Catweazle,  7. Feb 1997, 19:54:26):
~#! rn=Highlander rt=855318250 rg=polizei.bekanntmachungen
~#! tid=855318250

Also er macht das ja ganz souveraen, dieser Hilfssheriff :)

YTC *an Federn zupf*

-----------------------------------------------------------------------------



Scripten / idlen (Highlander, 17. Mar 1997, 18:54:49):
Aus gegebenem Anlass moechte ich mal folgendes vorlaeufig so
klarstellen: Mit einem Monster kaempfen, das man nicht
toeten kann und laengere Zeit idle sein ist vielleicht
kein scripten - aber unerwuenscht. So unerwuensct, dass man sich nicht
wundern sollte, wenn das Monster nach Warnung auf einmal eine wesentlich
hoehere Schlagkraft hat...
Das Monster sollte danach wieder normalisiert werden, sonst gibt's Aerger,
wenn ein Unbeteiligter dabei draufgeht. Also daneben stehenbleiben waehrend
der Aktion, meine Damen und Herren Magier. Und am besten eh jemand mit
hoeherem Magierlevel drauf hinweisen. So ab RM aufwaerts.
   Gruss,

     HrT

-----------------------------------------------------------------------------



PK Holden (Highlander, 19. Mar 1997, 13:49:30):
Holden: PK bis 19.3. + 8 Wochen.
  HrT
PS: Falls es, was ich hoffe, der erste war.

-----------------------------------------------------------------------------



Mariacron geloescht (Wargon, 21. Mar 1997, 11:36:03):
Wegen Unbelehrbarkeit wurde Mariacron nach ihrem 3. PK geloescht.
  Wargon, heute mal als Vollstrecker aktiv.

-----------------------------------------------------------------------------



Mir reichts! (Wargon, 14. Apr 1997, 13:52:58):
  Hi!

Wie es scheint, ist es mittlerweile gang und gaebe, dass Spieler von
Magiern ohne groessere Probleme genaue Zahlenwerte von Stats oder anderen
Properties von NPCs bekommen, oder auch Einblicke in den Quellcode von
wichtigen Programmabschnitten odre ganzen Regionen bekommen.

Ausserdem scheint das "Verleihen" von Magiern an Spielern in die Mode zu
kommen.

Dass dies hochgradig verboten ist, weiss jeder Magier (es steht naemlich
so im Magiervertrag), und auch jeder Nichtmagier sollte sich das wohl
denken koennen. Schliesslich sind Quests/Monster/aehnliches normalerweise
so programmiert, dass die Spieler durch Knobelei oder erarbeiten einer
geeigneten Taktik an das Problem herangehen sollen. Durch Einblicke
hinter die Kulissen wird dies unterlaufen, und der Programmierer haette
sich die Arbeit im Endeffekt sparen koennen.

Problematisch wird es nun bei der Frage "Was tun?"
Um die Taeter bestrafen zu koennen, muss man sie natuerlich erst mal
erwischen. Jetzt jeden Magier unter Beobachtung zu stellen ist natuerlich
utopisch und auch nicht Sinn der Sache.
Was man allerdings machen kann: man kann seinen Protest gegen diese
Entwicklung erklaeren. Da andererseits aber gutes Zureden meistens nicht
hilft, habe ich mich zu folgenden Protestaktionen entschlossen:

* Das Abenteuer 'Frieden fuer Tarko Reub' entfaellt. Man kann der Stadt
  natuerlich weiterhin helfen, es gibt nur keine AP mehr (und keine
  Questbelohnung).
  Ob es irgendwann noch eine anderweitige Belohnung fuer die Erfuellung
  der Aufgabe geben wird, weiss ich noch nicht; momentan jedenfalls nicht.

* Der 'entgifte'-Spruch entfaellt, soweit man ihn als Belohnung des
  Abenteuers 'Frieden fuer Tarko Reub' gelernt hat. Die entsprechende
  Klerikeranrufung bleibt natuerlich bestehen.
  Vielleicht wird das Spiel dadurch fuer einige ja wieder interessanter...

* Die Seherhaeuser werden fuer drei Wochen deaktiviert. Dazu stehen noch
  ein paar Takte in seher.entwicklung.
  Die Deaktivierung erfolgt uebermorgen (16.04.97).

* Ich will keine Magierzweities mehr in den Erleuchteten- und Hohepriester-
  raengen des Heiligen Ordens haben.

Bis auf die Seherhaeuserdeaktivierung sind alle Aktionen unbefristet.

  Wargon

-----------------------------------------------------------------------------



Mir reichts! Nachschlag... (Wargon, 15. Apr 1997, 13:42:53):
  Hi!

Hier noch mal ein paar (klaerende?) Worte zu der gestern gestarteten Aktion:

- Was sind die Ursachen?
Dass in einem Spiel auch geschummelt wird, ist klar. Dass die Schummelei  von
den Leuten, die sich um einen angenehmen Spielablauf  bemuehen	(sprich:  von
Magiern, die aktiv programmieren, und von den  Erzmagiern  als	"Verwaltung")
nicht gern gesehen wird, ist auch klar.
Ganz und gar nicht klar ist das Ausmass, welches die  Schummelaktionen	mitt-
lerweile angenommen haben.
In der Erzmagierpost haeuften sich in  letzter	Zeit  die  Beschwerden	ueber
Verstoesse gegen "geltendes Recht" (den Magiervertrag).  Neben  dem  Verraten
exakter NPC-Werte wie z.B. deren LPs oder  der	Angriffsstaerke  wurden  auch
fleissig Magier  an  Spieler  ausgeliehen,  die  Stats	oder  Skillwerte  von
Spielern hochgesetzt, und Files der MudLib (wie z.B. Spellbooks)  an  Spieler
weitergegeben.
Der ominoese "Dortmunder Stammtisch" trug insofern dazu bei, als dass  einige
Spieler dort den Eindruck erweckten, dass helfende Magier fuer sie  schon  zu
einer selbstverstaendlichen Groesse im Spielgeschehen geworden sind.
Durch diese Art von Schummelei wird natuerlich die Arbeit  der	Programmierer
zunichte gemacht, die sich Muehe geben, Knobelei  und  Taktik  in  spielbarer
Form zu implementieren. Belohnungen jedweder Art (seien  es  nun  Questbeloh-
nungen oder die Vorzuege des Sehertums) verlieren ihren Sinn, wenn sie	jeder
durch passende Schummelaktionen erhalten kann.
Alles in allem jedenfalls kamen wir Erzies zu dem Schluss, dass es  so	jetzt
nicht mehr weitergehen kann...

- Wieso gerade *solche* Aktionen?
Es gab prinzipiell mehrere Moeglichkeiten, auf die oben geschilderte Entwick-
lung zu reagieren.
Ein rein verbaler Protest durch einen Artikel in der MPA  o.ae.  haette  kaum
eine Wirkung gehabt. Die einzigen Reaktionen waeren von  den  professionellen
"Alles Scheisse"-Schreiern gekommen (die ja auch jetzt mit ihren wenig  kons-
truktiven Beitraegen als erste reagierten), der Rest haette entweder mit  den
Schultern gezuckt oder nur milde gelaechelt.
Ein anderer Vorschlag war, das MUD aus Protest fuer zwei Wochen abzuschalten.
Damit waere zwar jeder auf das Problem aufmerksam geworden, allerdings	gaebe
es dann keine Moeglichkeit, die Sache MG-intern zu diskutieren.
Also mussten andere Alternativen gesucht werden.
Wie oben erwaehnt, wird durch die Schummelei die Arbeit der Magier ignoriert.
Somit lag es nah, dass die Magier selbst einmal  zeigen,  wie  es  ohne  ihre
Arbeit aussieht. Das Ergebnis habt ihr zur Zeit vor Augen.
Ausserdem sieht man, dass die Aktion ein ziemlicher Erfolg war,  schliesslich
wird jetzt aller Orten diskutiert. :)

- Aber trifft das nicht die Falschen?
Die Verstoesse selbst kommen natuerlich aus den Magierkreisen. Allerdings ist
das Ganze immer eine Sache von Angebot und Nachfrage; ich glaube nicht,  dass
ein Magier einem Spieler einfach so hoehere Stats aufdraengt, ohne  dass  der
Spieler ihn danach gefragt hat.
Die Aktionen haben vor allem den Sinn, euch zu zeigen, wie es  hier  aussehen
wird, wenn es einfach so wie bisher weitergeht. Das sollten  natuerlich  auch
alle am eigenen Leibe erfahren koennen.
Das soll nicht heissen, dass in Magierkreisen nichts geschieht. Die bisherige
lasche Handhabung solcher Faelle wird jedenfalls der  Vergangenheit  angehoe-
ren; ausserdem laufen Diskussionen, ob wirklich jeder Depp zum Magier  werden
kann, wenn er nur einen verantwortungslosen Sponsor findet, oder  ob  frische
Magier wirklich sofort ueberall Leserechte erhalten sollen.

Ich hoffe, dass jetzt etwas mehr Klarheit in die Sache gekommen ist,
  Wargon


-----------------------------------------------------------------------------



Beobachter / Oetti (Highlander, 15. Apr 1997, 14:19:43):
Beobachter wurde heute geloescht. Abgesehen davon, dass er
einer der Gruende fuer die Wargonsche Aktion war, hat er heute mit
Ankuendigung einen Spieler getoetet und damit auf groebste gegen den
Vertrag verstossen.
Da Oetti ein Testspieler Beobachters war, wurde er ebenfalls geloescht.
Kein Magier - kein Testspieler.

   HrT

-----------------------------------------------------------------------------



Bombadil geloescht (Boing, 21. Apr 1997, 15:51:00):
Aufgrund massiver Spielerhilfe (Gildenskills setzen, Objekte clonen,
Questhilfe, transen zu ZT-Fundorten ...) wurde Bombadil und die betroffenen
Charaktere Luna, Star und Angst geloescht. 
Bombadil hatte die Moeglichkeit zur Stellungnahme, welche er auch genutzt
hat.
  Boing

-----------------------------------------------------------------------------



Gando (Silvana, 20. Mai 1997, 21:56:48):
Noch ein Abschied.
Gando hat sich bei fortgesetztem, schwerem Verstoss gegen die 
Magierregeln erwischen lassen als da waeren: Spieler transen, Geld
clonen, Heilstellen reseten und Spieler dahin transen ... Auf die
moeglichen Konsequenzen angesprochen hat er sich fuer den ehrenvollen
Weg der Selbstloeschung entschieden.

  Silvana - heute mal mit fernwestlicher Mentalitaet.

-----------------------------------------------------------------------------



Lofoten, Elfendorf u.ae. (Highlander,  2. Jun 1997, 13:42:53):
Zur Klarstellung: Ich habe vorhin ueber 10 Charaktere
mit Namen wie Elfendorf, Lofoten etc. sowie ein paar NPC-Namen geloescht
und gebanished. Sowas werde ich auch in Zukunft machen, wenn ich Namen
sehe, die Gegenden oder NPCs des MorgenGrauens gehoeren.
Dabei ist Anakyns Postreiter auch draufgegangen. Tja, wenn Du den auch
in so einem Moment einloggst und rumrufst...
Wenn mir einer sagt, wie man files vom Backup holt, kriegst Du ihn von mir
aus sogar wieder. Aber nur dieses eine Mal, an sich sollte er geloescht
bleiben bei dem Namen. Nur aus Traditionsgruenden...
HrT

-----------------------------------------------------------------------------



Wer Passwoerter klaut... (Highlander,  4. Jul 1997, 15:28:47):
... muss damit rechnen, geloescht zu werden.
Im aktuellen Fall hat es Janice sowie die Zweities
Rosa Susi Vera Yasmin Majestix Amazonia Ravon Adular
erwischt. Janice hat ein ausgespaehtes Magierpasswort dazu benutzt,
files via ftp zu holen. Verhalten dieser Art koennen und werden wir
nicht dulden.

  Highlander ryn Tahar

-----------------------------------------------------------------------------



Passwortweitergabe (Highlander, 31. Jul 1997, 13:07:32):
Ich moechte fuer den Fall, dass so ein Fall nochmal auftritt, auf eines
hinweisen: Wer sein Passwort weitergibt, hat Pech, wenn derjenige, der das
Passwort bekannterweise hat, Mist baut und eine Strafe bekommt.
Diese Strafe trifft alle Zweitcharaktere des Uebeltaeters,
_und dazu gehoert dann auch der Char mit dem weitergegebenen Passwort._
Merke: Das Passwort ist geheimzuhalten.

    Highlander ryn Tahar

-----------------------------------------------------------------------------



Another one bites the dust... (Highlander, 20. Aug 1997, 14:46:11):
Tja, und wieder einmal musste jemand ausnutzen, was er nicht durfte.
Ohne weitere Details: Diesmal hat es Kemp erwischt, der sich auch
ehrenhaft selber in das Schwert stuerzte, bevor er sich als wer
weiss ich nicht reinkarnierte.
    HrT

-----------------------------------------------------------------------------



Zyr -> /dev/null (Highlander, 29. Okt 1997, 12:53:38):
Ein Test/Zweitspieler, der Spieler toetet, ist unerwuenschst. Ex und hopp.
   HrT

-----------------------------------------------------------------------------



Oho, Ohoo. (Highlander,  4. Nov 1997, 10:49:58):
Das war ein Trigger zuviel, Ohoo. Nach der bereits erfolgten Verwarnung
hast Du Dich hiermit in weniger als Luft aufgeloest.
   HrT

-----------------------------------------------------------------------------



Spielpause Death (Highlander, 11. Nov 1997, 12:34:44):
Death hat wegen Spielerhilfe 4 Wochen Spielpause verpasst bekommen.
  HrT

-----------------------------------------------------------------------------



Spielpause GulDukat (Highlander, 11. Nov 1997, 12:36:00):
GulDukat hat vier Wochen Spielpause verordnet bekommen, da er ueber einen
Trigger einen als Papagei verkleideten Spieler gezapt hat. Ausserdem
wurde sein Magierlevel 35, den er ausgerechnet als Hilfssheriff bekam,
auf 25 runtergesetzt.
HrT

-----------------------------------------------------------------------------



Guldukat's Strafe (Freund, 18. Nov 1997, 00:39:11):
Hallo liebe Zielgruppe!

Ich moechte Euch hiermit ueber die Geschehnisse im Fall "Guldukat und
der verheerende Trigger" informieren. Das dies erst jetzt geschieht,
hat nicht das geringste mit dem Maeulerzerreissen einiger weniger zu
tun, die hier schon wieder (?) glaubten, einen mysterioesen Fall von
Vetternwirtschaft aufgedeckt zu haben, sondern ist vielmehr einem
defekten Motherboard und einem alarmschlagenden CPU-Luefter meines
Privatrechners anzurechnen.

Die Fakten: Guldukat hatte einen Trigger auf "xxx flattert herein.".
Dieser Trigger wurde auch durch Mango ausgeloest, der in der Wer-Liste
mit "Ein Papagei namens Mango" gefuehrt wurde und als MSG_IN "flattert
herein" gesetzt hatte. Der Trigger bewirkte das Absetzen des Kommandos
"zap papagei". Da Mango zudem den Tarnhelm benutzte, reagierte er auf
das ID "papagei".
Nachdem Mango als erstes seine todesbedingten Verluste zurueck bekam,
beschlossen Highlander, Boing und ich _gemeinsam_, was nun zu tun sei.
Diese Auswahl der "Entscheidungstraeger" war zufaellig und resultierte
aus der Tatsache, dass Highlander als Sheriff zustaendig war, und Boing
und meiner einer als einzige HLMs anwesend waren. Aus meiner Zeit als
Sheriff kann ich auch anmerken, dass es immer angenehmer ist, "Strafen"
mit anderen abzustimmen, um nicht die Uebersicht zu verlieren.
Wir einigten uns - ohne Guldukat angehoert zu haben (er hatte sich drei
Minuten nach seinem PK ausgeloggt, offensichtlich ohne sich ueber diesem
Gewahr zu sein) - auf 4 Wochen Spielpause allerdings davon ausgehend,
dass sein Trigger "zap mango" produziert hatte.
Als nun Morn, Guldukats X.-tie auftauchte, um sich zur Sache zu aeussern,
war Highlander leider (RL-pruefungsbedingt) fuer mehrere Tage nicht im
Mud. Boing beauftragte daher mich mit der "Anhoerung" des Falles und gab
mir "freie Entscheidungsgewalt". :-) (Wir wollen an dieser Stelle des
Artikels nicht vergessen, dass wir von einem Spiel reden. ;-)
Nachdem ich also Morn die Chance gab, sich zu "rechtfertigen", aenderte
sich bei mir der Sachverhalt etwas; denn erst jetzt wurde klar, dass durch
die Auswirkungen des Tarnhelms der Kill durch "zap papagei" ausgeloest
wurde; das ist fuer mich etwas wirklich anderes, da der moegliche Vorsatz,
oder das Spielertoeten billigend in Kauf zu nehmen, dadurch wegfiel.
Daher einigten wir uns wie folgt:
- 1 Woche Spielpause fuer Guldukat
- permanenter Magier-Levelverlust Guldukats von 35 auf 26.
- Loeschen aller Trigger in Guldukats Frontend

Highlander wurde selbstverstaendlich informiert und gab nachtraeglich
sein Einverstaendnis.

Noch einige Worte zu den polemischen Artikeln hier:
Es reissen immer wieder einige Leute ihr Maul auf, sobald sie glauben,
irgendetwas liefe anders, als wenn sie es unter Kontrolle haetten.
Das mag auch so sein!
Aber gerade diese Leute reden dann immer von solchen hohen Werten wie
Fairness und Gleichbehandlung.
Ich finde, damit jedem Charakter _wirkliche_ "Gerechtigkeit" erfahren
kann, ist man als Strafvollzieher genoetigt, jeden Fall einzeln mit den
entsprechenden Hintergruenden zu betrachten. Ein allgemeines Gesetz,
"wer einen Spieler toetet, muss 4 Wochen raus", kann keine Gerechtigkeit
erzeugen. Aber eine Menge Frust. Mango hat im Prinzip nichts verloren.
Klar, etwas Stolz, etwas Zeit, aber sonst?

Ein Freund - als Ex-Sheriff mit der Materie wohl vertraut.


-----------------------------------------------------------------------------



PKs Hefe (Highlander, 20. Nov 1997, 13:57:54):
Hefe hat von mir 2 PKs eingetragen bekommen, die er in zwei Monaten
wieder loswerden kann. Er hat wiederholt getarnt Spielern ein Runen-
schwert gegeben und sie dazu aufgefordert, es zu zuecken. Und sage jetzt
keiner, die haetten sich ja das Schwert ansehen koennen. Darauf reinfallen
tun sowieso nur eher neuere Spieler, und ausserdem hat er das wie einen
"netten NPC" aufgezogen. Die Absicht war da, das reicht.
   HrT

-----------------------------------------------------------------------------



Heiland (Rumata, 24. Nov 1997, 10:26:15):
Der Name schien auf Ablehnug zu stosschen, dashalb habe ich ihn geloescht
gruss, rumata

-----------------------------------------------------------------------------



ZT entschaerft (Freund, 24. Dez 1997, 00:45:51):
Frohe Weihnacht und besinnliche Feiertage!

Ich habe gerade den strittigen Zaubertrank inhaltlich entschaerft. Fuer den
Fall, dass sich die dikutierende Mehrheit _fuer_ den Erhalt der
urspruenglichen Fassung aussprechen sollte, gibt es natuerlich eine
unveraenderte Kopie derselben.

In Absprache mit Boing und Highlander bin ich unterdessen auch wieder
Co-Sheriff geworden. Die Zeiten aendern sich, die Sheriffs bleiben. :-)

Eines noch: Ich bin gerade dabei, die Regeln fuer das Scripten eindeutig
festzulegen. Daher habe ich ernsthaftes _wissenschaftliches_ Interesse an den
verschiedenen Scripten, die ihr entwickelt habt. Bitte mailed mir dieselben
doch mal zu. Wer mir nicht traut, kann das gerne auch als Gast oder Achtie
tun, mir geht es um eine moeglichst genaue Definition, die spaeter gueltig
sein soll, und da halte ich es fuer sinnvoll, alles moegliche zu
beruecksichtigen.

Die, die mich laenger kennen, (oder von frueher:-) duerften wissen, dass mir
das _Spielen_ des MGs am Wichtigsten ist.

EIn Freund fuer alle Faelle.

-----------------------------------------------------------------------------



Spielpause (Freund,  3. Feb 1998, 15:36:49):
Tag,

hiermit tue ich kund und zu wissen, dass Terrorist eine Spielpause von 14
Tagen absitzt.

Grund: Spielerhilfe.

Freund, warnend.

-----------------------------------------------------------------------------



Gildenskills abgewertet (Freund,  5. Feb 1998, 11:14:07):
Gruess Gott,

Keys Gildenfaehigkeiten haben deutliche Einbussen hinnehmen muessen, nachdem
er mit einem Magiertestie direkt nach einem Reboot Objekte "gesichert" hat.

Freund, "doing his job".

-----------------------------------------------------------------------------



Scripter (Freund, 10. Feb 1998, 19:54:50):
Tag,

Gando wurden seine Gildenfaehigkeiten halbiert.

Grund: Scripten.

Kurz und knapp: Freund.

-----------------------------------------------------------------------------



Bankier-->/dev/null (Freund, 27. Feb 1998, 12:19:05):
Bankier wurde geloescht, da er seit geraumer Zeit immer wieder Spieler
angriff. 
Freund.

-----------------------------------------------------------------------------



SCRIPTE (Freund, 27. Feb 1998, 15:41:24):
So,
es gibt ab dem 1.3.98 Aenderungen bezueglich der Einstufung von Scripten:
Diese sind jetzt (wie vorher auch) VERBOTEN! Ich moechte dazu die Lektuere von
"hilfe scripte" empfehlen.
Aber, neu ist, dass die Sheriffs da jetzt ruecksichtsloser durchgreifen
werden. Scripten schadet naemlich dem Spielspass der "echten" Spieler. Daher
ergaenzend zu "hilfe scripte":
1. Wegescripte duerfen nur die Wegbefehle (Richtungen) und Modus-Befehle
enthalten. Alles andere wird ab Maerz auch so bestraft!!!
2. Untersuche Scripte werden ziemlich streng bestraft.
Ein Cut & Paste GILT als Scripten! (Siehe Definition "hilfe scripte"). Wer
untersuche-Scripte nach dem 1.3.98 benutzt, wird geloescht. Keine Warnung.
3. Wer sich dem Verdacht aussetzt, gescriptet zu haben, wird dies im
Allgemeinen bewusst tun. Ueberraschend zu tun nach dem Motto: Wie - 30 Befehle
in der Sekunde soll ein Script sein? - wird nicht helfen. Wer dieses Risiko
nicht eingehen moechte, der sollte die Finger von allen Grenzfaellen lassen!

Freund.

-----------------------------------------------------------------------------



Nachtrag (Freund, 27. Feb 1998, 15:57:31):
Hilfe Scripte wurde eben von mir an die Bewegungsbefehle angepasst.

Ich bitte um werte Beachtung.

Freund.

-----------------------------------------------------------------------------



Re: SCRIPTE (Boing, 27. Feb 1998, 17:15:41):
~#! rn=Freund rt=888590484 rg=polizei.bekanntmachungen
~#! tid=888590484
Ich moechte hier noch eben ergaenzen, dass zu Bewegungsbefehlen auch 
Sachen wie 'kletter ueber mauer' oder 'teleportiere 5' gehoeren, das
ist in Freunds Artikel nicht ersichtlich, in 'hilfe scripte' aber
genau beschrieben. Das hat wohl fuer einige Missverstaendnise gesorgt.
  Boing

-----------------------------------------------------------------------------



Tueren (Freund, 27. Feb 1998, 18:23:11):
~#! on=Freund ot=888600096 og=polizei.beschwerden
Hi,

die Magier des MorgenGrauens sind gebeten worden, Ihre Raeume auf
ueberfluessige Tueren hin zu untersuchen. Zukuenftig kann ergo eine Tuer als
Wegescript-Stop-Shild (TM) dienen, wenn man sich nicht der Loesch-Gefahr
aussetzen moechten. 

Daher werden einige der Tueren auf Hauptverkehrsstrassen sicherlich in den
naechsten Tagen oder Wochen angepasst werden. Falls ihr welche findet, meldet
das doch bitte auch an einen zustaendigen Magier. Achtung: Melden != Nerven.

Freund, raet dazu, diese kleine Reform als Positiv anzuerkennen.

P.S.: Einige Tueren sind absichtlich als Stopper gedacht und werden sicherlich
nicht entfernt... ;-)

-----------------------------------------------------------------------------



Loeschungen (Freund,  3. Mar 1998, 11:34:52):
Tag.

Wegen Spielerhilfe geloescht wurde der Magier-Charakter Jennifer und der
Nutzniesser Nemesys.

Freund.

-----------------------------------------------------------------------------



Das Grauen hat einen Namen: rm -f brummel.o (Freund, 11. Mar 1998, 12:27:34):
Tag,

Wegen Spielerhilfe wurde Azrael verwarnt und sein Zweitie Brummel geloescht.

Freund.

-----------------------------------------------------------------------------



Neue Scriptregeln (Freund, 25. Mar 1998, 15:19:28):
Scriptregeln ab dem 2.4.98, daher KEIN Aprilscherz!

1. Komplettloesungen:
   ~~~~~~~~~~~~~~~~~~

Das Benutzen und die Weitergabe von Komplettloesungen, die beispielsweise
eine Aufgabe loesen oder andere nicht offensichtliche Informationen des
Spiels preisgeben, ist untersagt. Das Benutzen selbst entwickelter KLs
(z.B. Mitschreiben beim ersten Loesen einer Quest) ist erlaubt.
Die Weitergabe ist untersagt, denn die Magier investieren nicht ihre Phantasie
und ihre Zeit in das Programmieren von stimmungsvollen Dingen, um danach zuzu-
schauen, wie hunderte von Spielern durch ihr Gebiet eilen, ohne nachher zu
wissen, WAS sie eigentlich gemacht haben. 
KL-Anwendern und -versendern droht die Loeschung. Trotzdem wird nach der
Schwere des Vergehens bestraft.


2. Forscherpunkt-Listen:
   ~~~~~~~~~~~~~~~~~~~~~

Besitz, Benutzung und Weitergabe von FP-Listen entspricht dem Punkt 1.


3. Untersuche-Scripts:
   ~~~~~~~~~~~~~~~~~~~

Diese sind verboten. Untersuche-Scripts fragen selbstaendig eine, mehrere oder
alle Detailtiefen eines Raumes ab. Sie ignorieren damit ebenso wie Komplett-
Loesungen die Arbeit der Magier. 
Bestrafung erfolgt nach Schwere des Vergehens.

A

4. Andere Scripte, Trigger, Key-Bindings:
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Solange nicht andere Spieler durch Aktionen eines der o.g. Dinge gestoert wer-
den, sind diese erlaubt, falls sie NICHT ohne Beaufsichtigung ablaufen. Das
Kriterium hierbei ist die Ansprechbarkeit. Wer fuer einen Zeitraum von 1 Min.
nicht auf teile-mits und/oder Raummitteilungen reagiert, wird als Script be-  
handelt. Die Bestrafung erfolgt nach Schwere des Vergehens.


Bestrafungen koennen sein: 
* Spielpause  * Abwerten von Gildenfaehigkeiten und FPs  * Loeschung  * 
----------------------------------

So sieht das dann mal aus. Falls Euch etwas nicht passt, droht nicht gleich
mit Selbstloeschung oder Ignoranz, schreibt es lieber. Falls Ihr endlich mal 
zufrieden seid, schreibt es ganz unbedingt! :-)

Ein Freund. 


-----------------------------------------------------------------------------



Seherstatus (Freund,  1. Apr 1998, 08:36:27):
Hallo.

Wie Silvana bereits schrieb, haben wir in einer Erz-Magier-Eil-Konferenz(TM)
gestern die auf der Party gewuenschte Erschwerung der Seheranforderungen in
die Mudlib eingebaut.
Da eh schon ein neues Feature in die Lib integriert wurde, naemlich die
"Vogelfreiheit" (auch moeglich fuer Magier!), war es nur ein kleiner Schritt,
das folgende umzusetzen:
Ab sofort duerfen die Hoechst-Level-Seher (Lev > 50 und in den Top-10 der
Top-Spieler-Liste) angegriffen werden.

Viel Spass mit diesem Feature wuenscht:
Freund, das Script-Jaeger-Script.

-----------------------------------------------------------------------------



Schummeln, nein Danke (Highlander,  1. Apr 1998, 16:41:17):
Und aus diesem Grunde gibt es weder Warrior noch Ratazong mehr. Vom letzteren
stammte das Mittel, der andere hat's verwendet.
     HrT

-----------------------------------------------------------------------------



Semmel (Paracelsus, 22. Jul 1998, 22:06:48):
Da Semmel offenbar meint, er koennte sich ueber seinen Regionsmagier
hinwegsetzen, indem er Sachen in Verzeichnisse verschiebt, wo selbiger
keine Schreibrechte mehr hat und die dann auch noch anschliesst, hat er
Spielpause, bis der Sheriff etwas anderes entscheidet.

Paracelsus - hat was gegen Mega-Lag

-----------------------------------------------------------------------------



Harte Zeiten... (Hobo,  1. Apr 1999, 18:08:28):
Liebe Spieler, 

nachdem mit mir endlich mal ein durchsetzungsbereiter Sheriff (ok: Assi) da
ist, wernden harte Zeiten auf Euch zukommen.
Also, die wichtigsten Dinge:
 - Gleichzeitiges Einloggen von mehreren Charakteren, die von einer Person
gefuehrt werden, ist verboten.

 Verleihen von Charakteren fuehrt zu sofortiger Loeschung

 Bei Loeschung eines Spielers (aus welchem Grund auch immer, ausgenommen:
Selbstloeschung) werden alle verbundenen Zweitspieler ebenfalls geloescht.

 Das verwenden von (auch selbst angefertigten KLs ist untersagt. In naechster
Zeit werde ich eine Liste erarbeiten, in welcher Zeit man eine Quest ohne KL
spielen kann. Wird die Zeit unterboten, koennen keine Questpunkte angerechnet
werden.

 Bei PK, stoerendem Skripten und anderen Taetigkeiten, die z.B. zur
ASbstufung in der Gilde fuehren, werden prozentual FP abgeozgen.

 Hmm, das waer's erst mal. Demnnaechst mehr..

    Hobo - machtgeil und ordnungsbesessen

-----------------------------------------------------------------------------



bierchen (Highlander, 26. Mai 1999, 00:05:53):
~#! on=Highlander ot=927669931 og=bekanntmachungen
Bierchen kann jetzt erst mal eine Woche in Ruhe darueber nachdenken,
ob es sich lohnt, seine Nerven mit einem durchgehen zu lassen und einen
Spieler in einen gefaelschten Tod zu stuerzen. Will heissen,
dass er von mir 7 Tage Spielpause verpasst bekommen hat,
weil er sich nicht beherrschen konnte.

   Highlander ryn Tahar

-----------------------------------------------------------------------------



Patryn (Rumata,  8. Jun 1999, 12:16:24):
Hallo Leute,
 
Patryn ist wegen Ausnuetzen von Sicherheitsloechern fuer zwei Monate
in die Spielpause gegangen und wird mit einer Abstufung rechnen muessen.
Da Patryn auch fuer das Mud aktiv war mir glaubhaft das Mass seiner
Ausnutzung versichern konnte, habe ich von der ueblichen Betrafung
(Komplettloeschung ohne Verwarnung) absehen koennen.
 
Aus diesem Anlass moechte ich darauf hinweisen, dass bei Sicherheitsloechern
der Spass definitiv aufhoert, insbesondere bei Bugs mit denen man ROOT
Rechte bekommt.
 
Uebrigens koennten auch Zweites betroffener Charakter in Zukunft nicht
unverschont bleiben.
 
Rumata

-----------------------------------------------------------------------------



Patryn (Boing, 26. Jul 1999, 14:54:35):
Aufgrund seiner Verdienste fuer das Mud wurde die Herunterstufung von
Patryn (35 -> 25) rueckgaengig gemacht. Er hat ab sofort wieder Level 35.
  Boing

-----------------------------------------------------------------------------



Buffy &c (Wim,  5. Aug 1999, 13:23:18):

Wegen mehrfachen und wiederholten Angriffen von Spielern wurde Buffy nebst
bekannten Zweities geloescht.
Der Spieler hat bis zu letzt keine Einsicht zu seinen Taten gezeigt.

Wim


-----------------------------------------------------------------------------



Grimmborn und die Hydra (Highlander, 21. Sep 1999, 14:23:52):
Hiermit setze ich Grimmborn auf Bewaehrung, da er gestern mehrmals die Hydra
geheilt hat und damit verhindert hat, dass sie getoetet wurde.
Magier duerfen das Spiel nicht beeinflussen, wogegen diese Aktion
verstossen hat. Das Heilen eines Spielers, das auch gestern war, nehme ich
dabei als "Folgefehler", da es einer der Hydragegner zu diesem Zeitpunkt
war. Die Bewaehrung geht auf unbestimmte Dauer, ich hoffe aber, dass
wenigstens ein Vierteljahr nichts passiert.

   HrT

-----------------------------------------------------------------------------



Muadib for Deputy (Highlander, 25. Sep 1999, 01:19:35):
Hi,

ich habe Muadib mit sofortiger Wirkung zum Co-Sheriff, Deputy oder was
auch immer ernannt. Sein Level 35 ist auf eigenen Wunsch, sonst haette
er jetzt ein E am Hals. :>
Wenn ich also nicht da bin, koennt ihr euch jetzt auch an ihn wenden.

  HrT

-----------------------------------------------------------------------------



Deputy (Muadib, 28. Sep 1999, 15:48:08):
Hi,

wie sich einige denken koennen, benoetigt die Einarbeitung in mein neues Amt
etwas Zeit. Das Gleiche gilt fuer meine Levelextrabratwurst.
Ich versuche zusammen mit Highlander, diese Zeit so kurz wie moeglich zu
halten.
Es waere nett, wenn Ihr anfangs etwas Geduld mit mir haben koenntet.
Ansonsten hoffe ich, dass wir gut miteinander auskommen :)

bya


muadib

-----------------------------------------------------------------------------



Untersuchescripte (Muadib, 28. Sep 1999, 16:27:37):
hi,

aus gegebenem Anlass, moechte ich einmal darauf hinweisen, dass
untersuchescripte nicht erlaubt sind. auch dann nicht wenn sie auf
tf-webseiten zu finden sind.
darum stellt sie doch bitte einfach ab.

gruss

muadib

-----------------------------------------------------------------------------



Sebastian geloescht (Boing, 16. Nov 1999, 18:56:53):
Da wir hier niemand gebrauchen koennen, der in der Rubrik www oder 
aehnlichem seine Raubkopien vertreibt, wurde der Spieler Sebastian
geloescht.
  Boing

-----------------------------------------------------------------------------



Scarry & co. (Wim, 16. Nov 1999, 22:47:04):
Die selbe Person, welche vor einiger Zeit mit Buffy wahllos Spieler angriff
und beleidigte ist nun mit dem Charakter "scarry" aufgefallen.
Da eine Aenderung des Verhaltens nicht feststellbar war und ausserdem im PKs
nach eigener Aussage "am A.... vorbei" gehen, habe ich auch diesen Charakter
ohne weitere Warnung geloescht.

Wim

-----------------------------------------------------------------------------



Team mit Zweities (Muadib,  7. Mar 2000, 19:04:19):
Hi,

eine kleine Anmerkung aus aktuellem Anlass.
Wie die meisten von Euch wissen, koennen Zweitspieler von einem
Spieler nicht zusammen mit diesem Spieler oder anderen Zweitspielern
dieses Spielers in ein Team.
Dies wird direkt bei Teameintritt ueberprueft.
Statt Zweitspielern nun einfach Spieler auszuleihen und diese in ein Team zu 
stecken, ist eine einfache Umgehung dieser Regelung.
Diese Umgehung ist jedoch nicht nur einfach sondern auch definitiv
ungewuenscht.
Wer immer diese Umgehung nutzt, sollte sich darueber im Klaren sein,
dass nicht nur ihm, sondern auch den beteiligten, ausgeliehenen Spielern
eine Spielpause droht, falls er erwischt wird.

Gruss

Muadib

-----------------------------------------------------------------------------



Dieder/PK (Highlander, 15. Jun 2000, 23:27:53):
Dieder hat heute Mudgott angegriffen und getoetet. Auch wenn Mudgott
nu vielleicht oder auch recht sicher identisch war mit [ZT]erstoerer,
so ist doch das Playerkilling verboten. Es waren ja schliesslich auch
genug EMs da, die das Problem haetten loesen koennen, wenn einer nur noch
nervt. Als deutlichen Hinweis auf das PK-Verbot laeuft er jetzt halt bis
Samstag abend mit einem PK rum, was ihn ja nicht am Spielen an sich hindert.
Ab sagen wir Samstag 2300 kann jeder EM den PK wieder loeschen.

HrT

-----------------------------------------------------------------------------



erkenntnis zu untersuche-skripten (Muadib, 14. Aug 2000, 11:48:21):
hi,

wie bekannt sein sollte, sind untersuche-scripte nicht erlaubt.
um bei einigen ueberraschungen zu vermeiden, hier kurz die erlaeuterung,
dass das auch fuer parallel laufende untersuchescripts gilt.
dieser erkenntnis mussten sich leider auch Shodo, Maula, Marena und Darth
stellen. Wer sie vermisst weiss nun wieso.

Gruss 

Muadib

-----------------------------------------------------------------------------



Re: erkenntnis zu untersuche-skripten (Muadib, 14. Aug 2000, 11:53:34):
~#! rn=Muadib rt=966246501 rg=polizei.bekanntmachungen
~#! tid=966246501
noch ein nachtrag, wegen der vielen nachfragen:
mit parallelen untersuche-scripten, sind mehrere zweities eines spielers, die
das selbe untersuche-script zur gleichen zeit durchlaufen, gemeint.

gruss

muadib

-----------------------------------------------------------------------------



UEBERARBEITETE REGELN (Muadib, 30. Aug 2000, 12:21:26):
Hi,
da die Regeln im Morgengrauen doch etwas verwirrend und teilweise sogar
widerspruechlich waren, wurden sie ueberarbeitet.
Die einzelnen Hilfeseiten fuer scripte, zweitspieler und strafen wurden
geloescht und in der Hilfeseite regeln neu zusammengefasst.
Desweiteren wurde die Hilfeseite zu sheriff ueberarbeitet und fuer Magier
erweitert. Der Magiervertrag wurde etwas entruempelt.

Die ueberarbeiteten Regeln lassen sich mit dem Befehl "hilfe regeln" aufrufen.

Diese Regeln treten sofort in Kraft. 

Kritik, Fragen und andere Hinweise sind herzlich willkommen.

Gruss

Muadib

-----------------------------------------------------------------------------



Padreic 55 -> 45 (Boing, 12. Okt 2000, 13:09:41):
In letzter Zeit gab es immer wieder Vorfaelle mit Padreic,
die uns zu dem Schluss gefuehrt haben, dass er das [W] fuer
'Weiser' nicht mehr verdient hat. 
Konkret ging es um idlende Spieler, die er ausgeloggt hat
und wofuer er von Muadib verwarnt wurde, dass das zu unter-
lassen sei. Daraufhin kuendigte er an, dann halt auch selbst
massenhaft Spieler idlen zu lassen, was er auch einige Tage
spaeter in die Tat umsetzte (einige erinnern sich evtl.
an die Spieler Dumma bis Dummi usw.). Nachdem es Beschwerden
von Spielerseite gab wurden die Charaktere von mir ausgeloggt
und Padreic sowohl von Zook als auch von mir darauf hingewiesen, 
dass dieses Verhalten als stoerend empfunden wird. Wenige Tage
spaeter gab es wieder so eine Aktion, diesmal mit weniger
auffaelligen Namen, was aber irgendwie auch nichts genuetzt
hat. Der darauf folgenden weiteren Beschwerde wurde hiermit
nachgegangen.
Dazu kommt noch die etwas aeltere Aktion, wo er Sachbeitraege
in der MPA nach schmarrn verlegte, um eine Diskussion zu 
beenden.
Darauf folgt: Abstufung von Padreic von Level 55 auf 45.

  Boing (vertritt heute mal Muadib)

-----------------------------------------------------------------------------



kls auf wwwseiten (Muadib,  2. Jan 2001, 15:41:35):
Hi,

KLs auf WWW-Seiten zu veroeffentlichen, ist nicht tolerierbar und wird mit
Nachdruck bestraft. 
Infolgedessen wurde Kan und der Zweitspieler Cheng auf unbestimmte Zeit
gesperrt.

Gruss

Muadib

-----------------------------------------------------------------------------



Bierchen (Muadib, 10. Jan 2001, 15:35:44):
Hallo,

wie Ihr wohl schon wisst, hatte Bierchen vor kurzem Teile seiner
Gebiete auf der Magieinsel abgehaengt und dies mit Differenzen mit Wim
und der, wie er es formuliert hat, kluengelbehafteten Unterstuetzung
Wims durch andere Erzmagier begruendet. Die einzelnen Vorwuerfe Wim
und Anderen gegenueber wurden jedoch nicht klar formuliert, sondern
lediglich andeutungsweise vorgebracht und auf verschiedenen Ebenen
diskutiert.

Bierchen wurde daraufhin von mir gebeten seine Vorwuerfe zu
konkretisieren und mir zur weiteren Untersuchung zukommen zu lassen.

Darauf formulierte Bierchen folgende Vorwuerfe: 
-Ein Zweitspieler von Wim, Lews, wechselte von der Chaosgilde in die 
Tanjiangilde, obwohl dies nicht vorgesehen ist. Der Spieler wurde also 
manipuliert. Aus diesem Grund wurde Lews von mir als Testspieler markiert. 
-Rochus wurde nachtraeglich anstatt Bierchen als Wims Sponsor eingetragen.
Dieses Vorgehen ist nicht explizit verboten, inwiefern man hier eine 
Aenderung vorgenommen werden sollte, stelle ich zur Diskussion.

Diese Vorwuerfe scheinen mir als Rechtfergigung fuer das Verhalten
Bierchens nicht im geringsten angemessen. Leider hat  Bierchen auf
weitere Nachfrage keine weiteren Punkte mehr geaeussert. Stattdessen
hat er weiter Code abgehaengt. Davon betroffen sind nun die
Magieinsel, Teile der Feuerinsel, Teile des Polargebietes und die
Chaosgilde.

Mit dem Abhaengen des entsprechenden Codes hat Bierchen vorsaetzlich
den Spielern, welche nun Verluste an Spass, Forscherpunkten,
Zaubertrankstandorten, kurzfristige Einschraenkungen in einigen Quests
und Gildenquests hinnehmen muessen, sowie den Magiern, welche mit
Ihrer Arbeit entweder auf den entsprechenden Code verweisen, auf ihm
aufbauen oder diesen erst ermoeglicht haben, Schaden zugefuegt.

Mit diesem Verhalten hat Bierchen zusaetzlich versucht, die Abstufung
Wims zu erzwingen.

Aus diesen Gruenden wird Bierchen mit sofortiger Wirkung geloescht.
Die Schaeden durch den abgehaengten Code werden so schnell und gut wie
moeglich korrigiert. Hier ausdruecklichen Dank an Alle, die nun
Extraarbeit leisten.

Ich bedauere, dass es zu einer solchen Eskalation kommen musste und
moechte hier ausdruecklich darauf hinweisen, dass grundsaetzlich jeder
seine Beschwerden, egal ueber wen oder was, entweder bei Highlander
und mir oder natuerlich auch bei den Erzmagiern oder den Goettern
vorbringen kann. Ich werde versuchen diesen Beschwerden soweit wie
moeglich und unabhaengig von Person oder Position nachzugehen und die
entsprechenden Konsequenzen durchzusetzen. Konstruktive Kritik ist
ebenfalls willkommen, schliesslich existiert so etwas wie
Unfehlbarkeit nicht.

Dies gilt auch fuer eventuell offene Punkte diesen Fall betreffend.

Ich hoffe, dass wir in Zukunft gemeinsam wieder zu einem erfreulichen
Spielen und Arbeiten im MorgenGrauen zurueckfinden koennen.

Muadib



-----------------------------------------------------------------------------



Wim (Boing, 19. Jan 2001, 12:02:07):
Hallo,

soeben wurde Wim von mir auf Stufe 26 runtergesetzt und mit 6 Montaten
Spielpause belegt. Begruendet wird dies mit mehreren Regelverstoessen:

- Snoopen von Privatgespraechen
- Bewusste Benachteiligung von einzelnen Magiern (oder Spielern)
- Manipulation eines Zweitspielers

Ich habe mit Wim lange ueber die verschiedenen Punkte gesprochen, er
hat sie eingestanden und sieht sein Fehlverhalten ein. Die ausgesprochene
Strafe wurde von ihm akzeptiert.

  Boing

-----------------------------------------------------------------------------



codelookups (Muadib, 31. Jan 2001, 16:25:40):
Hi,

ich moechte nochmal darauf hinweisen, dass Magier fuer 
ihre Zweitspieler keinen fremden Code scannen sollen, um
diesen Spieler voranzutreiben. Sollte so ein Fall auftreten,
muss der entsprechende Magier zumindest mit einer Markierung
des Spielers als Testspieler, oder einer langen Spielpause, die
die normale Forscherzeit fuer diese Informationen auf jeden Fall 
ueberschreitet, rechnen. So geschehen vor einiger Zeit mit Seven.

Gruss

Muadib

-----------------------------------------------------------------------------



Gandulf (Muadib,  9. Mar 2001, 14:57:34):

Hallo,

wie viele von euch vielleicht schon wissen, wurde Gandulf, ein Zweitspieler
von Mesirii, als eine Art Lagerverwalter mittels TinyFugue betrieben.

Gandulf konnte von Spielern Objekte entgegennehmen, diese naeher
klassifizieren und in seinem Seherhaus ablegen. Desweiteren war es moeglich
Objekte von Gandulf auszuleihen oder detaillierte Informationen ueber ein
Objekt zu erfragen und bestimmte Objekte, welche noch  nicht im Lager waren,
zu erwarten.
Desweiteren war es zum Beispiel noch moeglich Daten ueber die Hydra zu
erfragen.

Die Steuerung Gandulfs erfolgte ueber einen teile-mit-Mechanismus.
Wurde Gandulf von keinem Spieler benutzt, so war er dennoch anwesend und nicht
ansprechbar.

Es ist zwar ueblich, dass Spieler Objekte und Informationen dazu untereinander
austauschen, und dies soll auch nicht eingeschraenkt werden, jedoch verstoesst
Gandulf hier doch gegen verschiedene Regeln.

Gandulf ist ein Vollscript.
Gandulf ist ein Untersuchescript.
Gandulf stellt anderen Spielern Gildenfaehigkeiten zur Verfuegung, um ein
Objekt naeher zu klassifizieren und verstoesst somit zumindest potentiell
gegen die Regel zweier gleichzeitig aktiver Spieler.

Diese Regelverstoesse werden wie gefolgt geahndet:
Da Gandulf offensichtlich nur zu dem Zweck als Lagerverwalter zu dienen,
erschaffen wurde(betrachtet man aktive Skriptzeit und Spielzeit), wird er
geloescht.
Mesirii als Erstspieler Gandulfs erhaelt eine Sperre von 6 Wochen.
Spieler welche Gandulf nutzten oder Zugang zu ihm hatten, haben bewusst ueber
laengere Zeit einen Regelverstoss ausgenutzt und erhalten daher eine Strafe in
Form einer Spielpause. Da die Nutzung Gandulfs, oder deren Intensitaet nicht
exakt nachweisbar ist, wird diese Strafe an die im Seherhaus erlaubten Spieler
vergeben und nur mit einer symbolischen Woche angesetzt. Die betroffenen
Spieler werden einzeln angeschrieben. 

Die Strafen treten ab kommenden Sonntag in Kraft.

Diese Reaktion ist keine Regelaenderung. Es ist weiterhin erlaubt Skripte
unter Beachtung der Regeln zu benutzen. 

Durch die extrem hohe Anzahl von Objekten die Gandulf bekannt waren erhaelt
das Bereitstellen von Informationen zu diesen Objekten KL-Charakter, zumindest
wird die Arbeit der Magier, diese Informationen moeglichst interessant zu
verpacken, abgewertet. 
Bitte zieht diesen Aspekt in Erwaegung, bevor ihr massiv Informationen ueber
einen wie auch immer gearteten Dienst bereitstellt.


Gruss

Muadib

-----------------------------------------------------------------------------



Re: Gandulf (Muadib,  9. Mar 2001, 19:57:12):
~#! rn=Muadib rt=984146254 rg=polizei.bekanntmachungen
~#! tid=984146254
Hi,
eine Ergaenzung:
Diese Liste und die Anzahl der Erlaubten unterscheidet sich in wenigen
Elementen, hauptsaechlich durch das automatische Miterlauben der Zweities
durch Gandulf. Dies wurde von mir nicht sorgfaeltig genug geprueft und dafuer
moechte ich mich hiermit bei den Betroffenen entschuldigen. 
Die Spielpause gilt nur fuer die tatsaechlichen Nutzer.

Gruss 

Muadib

-----------------------------------------------------------------------------



Kuschel (Muadib,  3. Apr 2001, 16:25:04):
Hallo,

leider hat Kuschel im WWW KLs fuer eine grosse Menge an ZTs angeboten. Dies
wurde bisher nicht toleriert und wird auch in Zukunft nicht toleriert werden.
Aus diesem Grund wurde eine unbestimmte Spielpause fuer Kuschel und seine
Zweities ausgesprochen.

Gruss


Muadib

-----------------------------------------------------------------------------



Re: Kuschel (Boing,  4. Apr 2001, 11:58:42):
~#! rn=Muadib rt=986307904 rg=polizei.bekanntmachungen
~#! tid=986307904
Da hier der Informationsfluss wohl doch sehr auf Geruechten basiert,
moechte ich mal ein paar Dinge klarstellen:

- Die veroeffentlichte ZT Liste ist nicht nur eine leicht erweiterte
  Fassung der beruehmten ZT Liste 17, sondern eine Auflistung, die zu
  jedem Orakel-Spruch ein komplettes Script (exakte Wege, Kommandos,
  alles) zur Verfuegung gestellt hat.
  Es wurde erwaehnt dass die alten ZT-Listen tolertiert wurden. Das
  ist richtig und liegt darin begruendet, dass wir erkannt hatten, 
  dass das alte ZT-System fuer Spieler nicht mehr spielbar war.
  Das hat sich jedoch mit Einfuehrung des Orakels komplett geaendert.
  Genau aus diesem Grund wurde sogar das Orakel eingefuehrt: Um die
  Notwendigkeit einer ZT-Liste aus dem Spiel zu nehmen.

- Allein im letzten Jahr wurde Slyfox MEHRFACH wegen verschiedenster
  Dinge verwarnt, angefangen beim heimlichen (unmarkierten) Hochspielen
  eines 2ties der Magier werden sollte, bis hin zu uebelsten 
  Beschimpfungen von Einzelpersonen (das nennt sich in anderen Muds 
  harrassment und ist dort allein gesehen schon ein Loeschungsgrund).
  Er wurde gewarnt und hat nichts daraus gelernt.

    Boing

-----------------------------------------------------------------------------



KLs auf Webseiten (Muadib, 31. Mai 2001, 18:59:43):
Hi,

leider muss ich nochmals ausdruecklich darauf hinweisen, dass das oeffentliche
zur Verfuegungstellen von KLs auf Webseiten auf keinen Fall toleriert werden
kann. Das juengste Opfer in dieser Hinsicht ist Eolahus gewesen. Er hat sich
selbst geloescht.

Gruss

Muadib

-----------------------------------------------------------------------------



Willow... (Zook, 22. Aug 2001, 16:36:30):
... hat sich eine Spielpause von drei Wochen eingehandelt. 

Zook.

-----------------------------------------------------------------------------



Killende Magier (Muadib,  9. Dez 2001, 17:53:07):
Hi,

ich moechte hiermit eventuell vorhandene Missverstaendnisse ausraeumen.
Kills durch Magier sind genau so wie auch andere Playerkills NICHT erlaubt.
Wer sich trotz dieser Klaerung in Zukunft in dieser Hinsicht befleissigen
will, muss dann halt mit den auftretenden Konsequenzen leben.
Wer Opfer eines killwuetigen Magiers wird und dies nicht direkt bemerkt wird,
sowas kommt vor, der melde sich bitte bei mir oder einem Erzmagier seines oder
ihres Vertrauen.
Viel Spass noch weiterhin
Muadib

-----------------------------------------------------------------------------



PK-Spieler und T-Online (Muadib, 20. Sep 2002, 10:46:53):
Hi,

nachdem ich die letzten Tage das zweifelhafte Vergnuegen hatte um die 20 Chars
eines einzigen PK-Spielers von T-Online zu loeschen, habe ich nun die Netze
217.80.0.0 und 217.84.0.0 bis Dienstag gesperrt. 
Ich hoffe dass in dieser Zeit keine neuen Spieler aus diesem Bereich abgewehrt
werden.

Die Telekom ist benachrichtigt ueber den Stoerenfried und unternimmt
hoffentlich etwas. Die bisherigen Erfahrungen zeigen, dass die Telekom
durchaus taetig wird.
Gruss

Muadib

-----------------------------------------------------------------------------



SPAM (Muadib, 25. Sep 2002, 15:48:45):
Hi,

wie es scheint werden auch ins MG Spammails verschickt. Mich wuerde
interessieren wie gravierend das Problem zur Zeit ist. 
Daher waere es nett wenn ihr mir ne kleine Rueckmeldung geben koenntet, falls
ihr schon mal Spammail ins MG bekommen habt.
Die Rueckmeldung koennt ihr gerne per teile-mit machen, auch wenn ich idle
bekomm ich das dann schon mit :)

Danke

Muadib

-----------------------------------------------------------------------------



Aenderung an ewigen Spielpausen (Muadib, 27. Okt 2002, 10:40:08):
Hallo,

ich habe die Liste der Spieler mit nicht
selbst gesetzten ewigen Spielpausen ueberarbeitet.

Dabei gab es, neben automatisch geloeschten
Spielern, folgende Ergebnisse:

Einige Spieler mit ewigen Spielpausen wurden
endgueltig geloescht.

Bei anderen Spielern wurde die ewige Spielpause
auf einen ablaufenden Zeitraum geaendert.

Diese Begnadigung, ich mag das Wort nicht aber es trifft,
gilt nur fuer diese Spieler, auf keinen Fall 
rueckwirkend fuer geloeschte Spieler.
Auch fuer die Zukunft laesst sich daraus kein 
Begnadigungsrecht ableiten. 

Selbst wenn es in Zukunft zu Begnadigungen kommen
sollte, so wird der Gesamtsperrzeitraum mindestens
zweieinhalb Jahre betragen. 
Dies ist uebrigens auch, neben dem Vergehen natuerlich,
massgebend fuer die neuen Sperrzeiten.

Fuer Magier gibt es keine Begnadigung.

Normalerweise nenne ich in solchen Artikeln soweit
moeglich keine Namen, in diesem Fall jedoch scheint 
es mir angebracht um tausende von Nachfragen und 
Geruechte zu vermeiden.

Somit also die Namen.

Geloescht wurden:
telnet
kuschel
kampfblech
golomon

Begnadigt wurden:
slyrella
slyfox
slycat
shodo
selissa
schlawiner
sammler
nummerzwei
nummereins
maula
marena
kan
darth
cheng

Gruss

Muadib


-----------------------------------------------------------------------------



Erinnerung und Hinweis (Muadib,  7. Nov 2002, 14:29:45):
Hi,

ich moechte hiermit daran erinnern, dass Komplettloesungsscripte fuer Quests
nicht erlaubt sind. Hier sind nicht irgendwelche Q-Zaehler oder Namenwuerfler
gemeint, sondern Scripts welche eine Quest komplett loesen.

Dann habe ich noch einen kleinen Hinweis: wird mit copy&paste gearbeitet und
ueberdecken die einkopierten Eingaben viele Kommandos, so ist dies schlicht
und einfach nicht von einem Script zu unterscheiden und wird auch so behandelt
werden.

Gruss

Muadib

-----------------------------------------------------------------------------



Waffenfertigkeiten (Muadib,  5. Feb 2003, 15:11:49):
Hi,

im Zusammenhang mit den Waffenfertigkeiten moechte ich ganz kurz 
darauf hinweisen, dass "totideln" ohne Ansprechbarkeit als Skript
betrachtet wird. 
Wer will kann das genau mit "hilfe regeln" nachlesen.

Nur mal so.

Muadib

-----------------------------------------------------------------------------



KL, FPListen etc (Muadib, 25. Feb 2003, 14:56:46):
Hi,

aus aktuellem Anlass moechte ich darauf hinweisen, dass Veroeffentlichungen
von KLs, FPListen, etc. gegen die Regeln verstoesst und entsprechend geahndet
wird.

Gruss

Muadib

-----------------------------------------------------------------------------



Re: Offizielle Beschwerde (Muadib,  2. Apr 2003, 20:21:49):
~#! rn=Towarisch rt=1049238277 rg=polizei.beschwerden
~#! tid=1049238277
das posten in die mpa als gast ist erlaubt. darueber besteht sicher keine
uneinigkeit.
ebenso erlaubt ist das loeschen von artikeln von gaesten in der mpa durch
grimmborn. soweit ich das sehe macht er eben dieses auch mit der angemessenen
konsequenz.


-----------------------------------------------------------------------------



spielpause (Muadib, 17. Apr 2003, 15:55:24):
gibt es fuer nen tag fuer muadib wegen gescrolles an einem unschuldigen
mudder.
das ist durchaus als exempel zu sehen.







fuer erboste: ->  :)

-----------------------------------------------------------------------------



Spassobjekte (Muadib, 17. Jun 2003, 15:25:59):
Hi,

es gibt im MG doch so einige Objekte in Spielerhaenden, die da eigentlich gar
nicht hinkommen duerften den Weg dorthin aber doch mit Hilfe magischer
Taetigkeit gefunden haben.
Dies Objekte sind meistens mehr oder minder spassige Gimmicks und greifen ins
Spielgeschehen kaum ein.
Mit einer Ausnahme:
Sie bevorzugen die Spieler, die einen Magier kennen, der einem so etwas
programmiert und in die Haende gibt und wecken absolut verstaendliche
Begehrlichkeiten bei denjenigen die eben keine solchen Objekte haben.
Das ist recht unfair.
Zudem ist das Clonen und Weitergeben von Objekten an Spieler fuer Magier nicht
erlaubt.


Deswegen werde ich wann immer mir solche Objekte auffallen, sie aus dem Spiel
nehmen und mit dem entsprechenden Magier eine Loesung angehen.
Es geht mir nicht darum meine Verknackstatistik zu erhoehen, sondern nicht
gerechtfertigte Benachteiligung von Spielern zu vermeiden.
Ich werde mit ziemlicher Sicherheit nicht aktiv nach solchen Objekten suchen,
aber ich denke schon dass mir ein oder zwei Auffallen werden.

Es gibt uebrigens einen ganz einfachen Weg als Magier solche Spassobjekte
dennoch ins Spiel zu bringen: genehmigen lassen und anschliessen!
Dann haben auch alle was von.

Gruss

Muadib

-----------------------------------------------------------------------------



Vanion... (Zook, 23. Sep 2003, 22:46:41):
... wird fuer die Woche vom 29. September bis zum 5. Oktober der Ansprech-
Erzmagier vom Dienst bzw. falls Euch das lieber ist, Euer "Vertrauens-EM";
wendet Euch also in allen Dingen hoeflichst an ihn.

Zook.

PS: Warum steht das in polizei.bekanntmachungen?
PPS: Mal sehen, wann das jemand verlegt.... ;)))))

-----------------------------------------------------------------------------



Faken von Spielern (Zook,  8. Nov 2005, 14:12:08):
Hallo liebe Mitspieler und besonders liebe Mitmagier,

ich will noch einmal darauf hinweisen, dass das Faken von Spielern via 
Echoall oder irgendwie via Tools auf den Ebenen unerwuenscht ist und bitte
Euch dies dringend zu unterlassen. 

Sollte ich dennoch einmal eines solchen Fakers habhaft werden, duerfte es
um sein Savefile sehr schlecht bestellt sein. Nur, dass sich hinterher
keine beschwert, er haette nich gewusst... 

i.A. Zook.

-----------------------------------------------------------------------------



Aushilfen rauswerfen! (Zook, 10. Feb 2006, 14:59:04):
Ich notifiziere, dass der Sheriff, also Muadib, nun wieder vollends seine
Aufgaben uebernimmt und mich als Aushilfe rausgeworfen hat. Also alle
Beschwerden, Anzeigen, Bestechungsgelder nun direkt an Muadib. Zook.

-----------------------------------------------------------------------------



Urlaubsvertretung (Zook,  1. Okt 2006, 19:17:03):
Hallo zusammen, unser Sheriff befindet sich derzeit im Urlaub (wie war das
mit 24/7? ;). Ich uebernehme seine Urlaubsvertretung. Ich stehe also fuer
alle Fragen rund um Regeln, Regelverstoesse und aehnliches zur Verfuegung. 
Zook.

-----------------------------------------------------------------------------



Re: Urlaubsvertretung (Muadib,  4. Okt 2006, 13:24:09):
~#! rn=Zook rt=1159723023 rg=polizei.bekanntmachungen
~#! tid=1159723023
was hat mein urlaub mit 24/7 zu tun?

-----------------------------------------------------------------------------



Re: Re: Urlaubsvertretung (Zook,  4. Okt 2006, 14:50:11):
~#! rn=Muadib rt=1159961049 rg=polizei.bekanntmachungen
~#! tid=1159723023
Pssssst! Zook.

-----------------------------------------------------------------------------



Aus gegebenem Anlass (Humni,  1. Okt 2007, 18:16:36):
... weise ich darauf hin:

* Nicht jeder Name, der nicht gebanisht ist, ist auch geduldet. Insbesondere
Namen, die ausgesprochen gebanishten Namen aehneln, koennen mit Loeschung
rechnen.
* JEDER Zweitie muss markiert werden. Nicht erst mit Level 5. So bald wie
moeglich. Dazu darf man auch gerne einen Magier ansprechen (der sich
natuerlich irgendwie vergewissern sollte, dass das wirklich ein Zweitie des
entsprechenden Spielers ist).

Ich weiss nicht, ob und wer solche Geruechte wie "erst mit Level 5 muss man
sich markieren" verbreitet. Sie sind jedenfalls falsch.

Humni

-----------------------------------------------------------------------------



Aktive Spieler (Amaryllis, 16. Feb 2008, 20:28:30):
Hallo zusammen,

ich moechte aus aktuellem Anlass nochmal auf die Regelung hinweisen, dass nur
maximal 2 aktive Charaktere pro Spieler erlaubt sind. Das gilt auch fuer
"verliehene" Charaktere. Alles, was darueber hinausgeht, darf nur noch
kommunizieren, aber z.B. nicht mitmetzeln o.ae. - das gilt auch fuer
"einfache" Taetigkeiten wie "dumm rumstehen und bei Gelegenheit Knoepfe
druecken" etc.

Zum genauen Wortlaut einfach nochmal die Regeln studieren.

Danke fuer die Aufmerksamkeit.

Ama*

-----------------------------------------------------------------------------



Ueben an "ewigen" Monstern (Amaryllis, 29. Feb 2008, 23:15:31):
Hi,

ich moechte aus aktuellem Anlass darauf hinweis, dass Ueben an Monstern, die
ewig stehen, als Bugausnutzung betrachtet wird - auch, wenn der Char
ansprechbar ist.


Sonderfaelle, bei denen das ausdruecklich so gewuenscht ist, koennen mir gerne
mitgeteilt werden - dann bitte mit entsprechender Begruendung.

Ama*

-----------------------------------------------------------------------------



Re: Ueben an "ewigen" Monstern (Amaryllis, 29. Feb 2008, 23:17:21):
~#! rn=Amaryllis rt=1204323331 rg=polizei.bekanntmachungen
~#! tid=1204323331
Ingrid:

Beispiele wie die Puppe im Struv gelten bereits als Ausnahme ;)

Ama*

-----------------------------------------------------------------------------



Libori (Amaryllis,  2. Mar 2008, 14:12:55):
14 Tage Spielpause wegen Uebeskriptens im Imbiss. Vorbehaltlich
Skillreduktion.

Ama*

-----------------------------------------------------------------------------



Re: Libori (Amaryllis,  2. Mar 2008, 14:29:26):
~#! rn=Amaryllis rt=1204463575 rg=polizei.bekanntmachungen
~#! tid=1204463575
Aufgrund von Rueckfragen:

Ist als erster Warnschuss zu verstehen. Weitere Vergehen dieser Art (dies sich
wohl eingebuergert haben, wie ich leider feststellen muss) koennen auch anders
geahndet werden.

Ama*

-----------------------------------------------------------------------------



Banker (Amaryllis, 28. Mai 2008, 21:47:39):
Hi,

$subject hat wegen Uebeskriptens eine kleine Denkpause und Anpassung des
geskripteten Skills erfahren.

Ama*

-----------------------------------------------------------------------------



Re: Banker (Amaryllis, 28. Mai 2008, 22:17:01):
~#! rn=Amaryllis rt=1212004059 rg=polizei.bekanntmachungen
~#! tid=1212004059
Ingrid:

Desweiteren wuerde ich dringend darum bitten, dass Banker richtig markiert
wird, so dass der Erstie erkennbar ist.
Sonst werd ich sauer ;)

Ama*

-----------------------------------------------------------------------------



Hougan... (Amaryllis, 12. Aug 2008, 20:17:52):
...ist der Rennleitung ins Netz gegangen.

Ergebnis fuer Uebeskripten: Spielpause und Skillabzug beim geuebten Skill.

Ama*

-----------------------------------------------------------------------------



Ennox + Mesirii (Amaryllis, 29. Aug 2008, 18:42:12):
Hi,

wegen KL-Veroeffentlichung wurden o.g. Charaktere zu 3 Monaten Spielpause
verdonnert.

Ich moechte an dieser Stelle nochmals darauf hinweisen, dass sowas kein Scherz
ist und z.B. in der Vergangenheit bei Slyfox inkl. aller X-ties zu einer
"lebenslangen" Spielpause gefuehrt hat.

Bitte macht sowas nicht, und verderbt dadurch auch nicht den Nutzniessern den
Spass.

Ama*

-----------------------------------------------------------------------------



Abstufung Grimmborn (Rumata, 17. Mar 2009, 09:57:36):
~#! on=Rumata ot=1237280157 og=bekanntmachungen
Hallo,

Grimmborn hat sich wiederholt an Spielern zu schaffen gemacht,
und sich dabei auch noch dilettantisch angestellt.


So darf man in Zukunft hier nicht mehr mit Magiertools herumlaufen.

Deshalb verhaengen wir (die EMs)
- einen Monat Spielpause,
- *permanente* Rueckstufung auf Level 15
- Verlust aller Magiertools

Fuer die EMs,
  Rumata

-----------------------------------------------------------------------------



Kanyahon (Amaryllis, 25. Mar 2009, 21:02:47):
2 Monate Spielpause wegen Versenden einer Quest-Loesung.

Ama*

-----------------------------------------------------------------------------



Tot-Idlen von NPCs (Amaryllis,  5. Mai 2014, 20:32:55):
Hi,

aus gegebenem Anlass nochmal der Hinweis, dass $subject verboten ist, wenn der
Char nicht ansprechbar ist...

Ama*

-----------------------------------------------------------------------------



Bugaunutzung (Amaryllis, 22. Sep 2015, 09:01:13):
Hi,

durch den Reboot wurde u.a. ein Bug entfernt, der anscheinend schon recht
lange existiert und die Chaosgilde betraf.
Ich kann mir nur schwer vorstellen, dass ich der erste gewesen sein soll, der
dies "rausgefunden" hat.

Ich moechte an dieser Stelle gar nicht weiter darauf herumreiten oder jemanden
verdaechtigen, sondern nur dies zum Anlass nehmen, nochmal auf das Thema
"Regeln" bzgl. "Bugausnutzung" hinzuweisen.

Gruss,
Ama*

-----------------------------------------------------------------------------



Tsiphoras... (Amaryllis, 19. Aug 2019, 23:19:14):
...nach Ignorieren einer Verwarnung 14 Tage Spielpause.

Ich moechte in diesem Zusammenhang nochmals auf die Regeln hinweisen, falls
die eine der "Neuen" noch nicht kennt ("hilfe regeln")...

Ama*

-----------------------------------------------------------------------------



