blob: 400e4c8f680b7b8f7b6508b87607bd72aa21d0a7 [file] [log] [blame]
Arathornb6667492020-01-08 21:48:54 +01001Dokumentation fuer das Std-Seil: /items/seil.c
MG Mud User88f12472016-06-24 23:31:02 +02002
3Abhaengigkeiten: /sys/thing/seil.h
4
5Das Standard-Seil ermoeglichst das Festbinden und Loesen eines Seiles an
Arathornb6667492020-01-08 21:48:54 +01006Objekten und Raeumen. Es kann im ganzen Morgengrauen verwendet werden.
MG Mud User88f12472016-06-24 23:31:02 +02007
Arathornb6667492020-01-08 21:48:54 +01008In den Objekten, die festgebunden werden, wird die Property P_TIED gesetzt.
MG Mud User88f12472016-06-24 23:31:02 +02009Sie enthaelt ein Mappng der Form:
10
11([
12
Arathornb6667492020-01-08 21:48:54 +010013 objektid: ([ "player" : playerid, "time" : timestamp ])
MG Mud User88f12472016-06-24 23:31:02 +020014
15])
16
Arathornb6667492020-01-08 21:48:54 +010017Wenn ein Objekt festgebunden wird, so wird die Funktion tie() in dem Objekt
18aufgerufen. Die Funktion muss in dem Objekt vorhanden sein. Liefert die
MG Mud User88f12472016-06-24 23:31:02 +020019Funktion 1 zurueck, darf man ein Seil daran binden.
20
Arathornb6667492020-01-08 21:48:54 +010021Aus der Funktion heraus kann im Seil in der Property P_TIE_USER ausgelesen
22werden, welcher User die Aktion ausgeloest hat.
MG Mud User88f12472016-06-24 23:31:02 +020023(Diese Daten werden aus Kompatibilitaetsgruenden nicht an die Fkt. direkt
24uebergeben.)
25
Arathornb6667492020-01-08 21:48:54 +010026Wird ein Seil wieder losgebunden, so wird die Funktion
MG Mud User88f12472016-06-24 23:31:02 +020027untie()
Arathornb6667492020-01-08 21:48:54 +010028in dem Objekt aufgerufen.
MG Mud User88f12472016-06-24 23:31:02 +020029
30Damit ein Seil in einem Raum festgebunden werden kann, muss der Raum eine
Arathornb6667492020-01-08 21:48:54 +010031id() bekommen - wie ein normales Objekt.
MG Mud User88f12472016-06-24 23:31:02 +020032
33In den Funktionen tie() und untie() kann jeweils ueberprueft werden, ob ein
34Spieler ein Seil benutzen darf oder nicht. Liefern die Funktionen 0 zurueck,
Arathornb6667492020-01-08 21:48:54 +010035so wird die Benutzung des Seiles verweigert. Die Funktion tie() muss string
36oder int zurueckgeben.
MG Mud User88f12472016-06-24 23:31:02 +020037
Arathornb6667492020-01-08 21:48:54 +010038Die Funktion seil->query_tied_to_ob() liefert das Objekt zurueck, an welches
MG Mud User88f12472016-06-24 23:31:02 +020039ein Seil gebunden ist oder 0;
40
41Bei der Benutzung eines Seiles im Raum wird zur Beschreibung die Funktion
42name() aufgerufen. Es kann also P_NAME gesetzt werden oder direkt name() im
43Raum ueberschrieben werden.
44
Arathornb6667492020-01-08 21:48:54 +010045Seile koennen ueber NPCs, Raeume und Zauber gesteuert werden:
MG Mud User88f12472016-06-24 23:31:02 +020046
47varargs int binde_seil(string ziel, string msg)
48
Arathornb6667492020-01-08 21:48:54 +010049 Ziel beschreibt das Objekt oder Raum, wo es festgebunden werden soll
50 msg ist die Ausgabe. Wird msg nicht gesetzt, so wird eine
Arathorn2e97b6a2019-12-03 00:37:34 +010051 Standard-Ausgabe ausgegeben.
MG Mud User88f12472016-06-24 23:31:02 +020052
53varargs int loese_seil(string msg)
Arathorn2e97b6a2019-12-03 00:37:34 +010054 Das Seil wird geloest - es wird dabei die msg in den Raum
MG Mud User88f12472016-06-24 23:31:02 +020055 ausgegeben. Ist msg nicht definiert, wird eine Standardausgabe
Arathorn2e97b6a2019-12-03 00:37:34 +010056 erzeugt.
MG Mud User88f12472016-06-24 23:31:02 +020057
58
Arathornb6667492020-01-08 21:48:54 +010059Beide Funktionen werden wir von einem Spieler behandelt - es werden tie() und
60untie() in den festgebundenen Objekten ausgewertet.
MG Mud User88f12472016-06-24 23:31:02 +020061
Arathornb6667492020-01-08 21:48:54 +010062Eine weitere Property ist P_TIE_AUTO.
MG Mud User88f12472016-06-24 23:31:02 +020063Dieser Wert steht per Default auf 1 und erlaubt damit eine automatische
64Benutzung des Seiles ueber die Funktionen binde_seil() und loese_seil().
Arathornb6667492020-01-08 21:48:54 +010065Ist diese Property auf 0, so koennen nur Spieler das Seil benutzen.
MG Mud User88f12472016-06-24 23:31:02 +020066
67
Arathornb6667492020-01-08 21:48:54 +010068Letzte Aenderung: 2019-12-26, Arathorn