KONZEPT
Zertifikate
AUTOR
Holger@Wunderland 10/99
BESCHREIBUNG
Zertifikate dienen dazu den 'Wildwuchs' von starken Waffen und Rues-
tungen einzudaemmen. Es hat sich gezeigt, dass ein einzelner Gleich-
gewichtsmagier ueberfordert ist, staendig alle vorhandenen Waffen
und Ruestungen anzusehen. Zumal haeufig Aenderungen nicht gemeldet
oder abgesprochen werden. Eine Waffe/Ruestung, die kein Zertifikat
hat, kann daher nicht von Spielern gezueckt bzw. angezogen werden.
Waffen/Ruestungen, die keine besonderen Eigenschaften haben und
keine besonders hohen Werte haben, bekommen ihr Zertifikat auto-
matisch vom -> Combatmaster. Alle anderen Objekte, deren Werte sich
den Grenzwerten naehern oder sie gar ueberschreiten, sowie Extra-
funktionen enthalten (alles ausser create()) bekommen das Zertifikat
nicht automatisch, und muessen 'per Hand' zertifiziert werden. Dazu
steht der Raum /room/labor.c zur Verfuegung, der ein Frontend zum
Combatmaster bildet. Autorisiert zum Zertifizieren sind Magier ab
Regionsmagier-Level und mit Schreibrecht fuer die entsprechende
Waffe/Ruestung.
Ein Objekt welches ein gueltiges Zertifikat hat, kann geaendert
werden und erhaelt das automatische Zertifikat sofort wieder, wenn
es die oben genannten Bedingungen erfuellt. Andere Objekte muessen
nach einer Aenderung am Sourcefile wieder neu zertifiziert werden!
Wenn dies nicht sofort gemacht wird, sind die Clones dieser Objekte
nur eine gewisse 'Galgenfrist benutzbar. Die Laenge der Galgenfrist
steht derzeit noch nicht fest. Wird das Objekt innerhalb dieser
Frist nicht neu zertifiziert, sind die Objekte nach Ablauf der Frist
nicht mehr zu zuecken/anzuziehen!!!
ZERTIFIKATE
Ein Zertifikat kann eine negative oder positive Integerzahl sein.
Es kann ausschliesslich vom -> Combatmaster mittels der Funktion
SetCertificate(L) im Objekt gesetzt werden. Mit QueryCertificate(L)
kann es aus einem Objekt ausgelesen werden. Der erhaltene Wert hat
folgende Bedeutung:
Negative Zahl - Ein Fehlercode, der beschreibt, warum das Objekt
kein positives Zertifikat bekommen hat. Die Tabelle
der Fehlercodes ist in der Hilfe zum -> Combatmaster
ersichtlich.
Positive Zahl - Ein Zeitwert in Form von time(), der besagt, bis
wann das Zertifikat gilt. Ist es kleiner als der
aktuelle time()-Wert ist es abgelaufen.
Null - Das Objekt hat noch kein Zertifikat bekommen. Das
sollte praktisch nur vorkommen, wenn ein Objekt
geclont wurde und init() noch nicht aufgerufen
wurde!
Alle gueltigen Zertifikate sind im -> Combatmaster gespeichert.
Ueber ihn kann man auch feststellen, wer einem Objekt wann ein
Zertifikat gegeben hat. Alle Aktionen des Combatmasters werden
gelogt!
VERGABE
Die Vergabe eines Zertifikats kann nur durch den -> Combatmaster
erfolgen. Vergibt er es nicht automatisch, muss es 'von Hand' im
Combatmaster (ueber /room/labor.c) angemeldet werden. Jegliche
Umgehung dieses Mechanismus wird als Betrugsversuch und schwere
Vertragsverletzung des Magiervertrags betrachtet!
KONTROLLE
Wenn es einen Magier fuer Gleichgewicht gibt (ansonsten die Erz-
magier), kann und wird dieser in unregelmaessigen durch Stichproben
kontrollieren, welche Objekte zertifiziert wurden. Findet sich dabei
ein unzulaessiges Objekt, das den Rahmen jeder Verhaeltnismaessig-
keit sprengt, wird der Magier zur Verantwortung gezogen, der das
Objekt zertifiziert hat! Also bitte schaut euch an, was ihr da in
die Welt setzt! Entschuldigungen, wie mangelnde Zeit oder Lust bei
der Kontrolle durch den zertifizierenden Magier koennen wir leider
nicht gelten lassen...
SIEHE AUCH
combatmaster(SEC), time(E), init(A), CertifyObject(L),
RegisterArmour(L), SetCertificate(L), QueryCertificate(L),
RegisterWeapon(L)
|