| AddExtraLook() |
| varargs int AddExtraLook(string look, [int duration, string key, |
| string lookende, object ob]); |
| DEFINIERT IN: |
| /std/living/description.c |
| |
| BESCHREIBUNG: |
| Der Extralook erscheint in der Langbeschreibung des Lebewesens. |
| Eintraege koennen mit dieser Funktion hinzugefuegt werden. Dies ist der |
| bevorzugte Weg, wenn ansonsten extra ein Objekt im Spielerinventar abgelegt |
| werden muesste. |
| |
| Alle Parameter bis auf <look> sind optional. |
| |
| ARGUMENTE: |
| - string look: |
| String, der in der Langbeschreibung des Lebewesens zusaetzlich ausgegeben |
| wird. |
| Kann auch ein Funktionsname sein, wenn <ob> angegeben wird (s.u.). |
| - int duration: |
| > 0: Wie lang bleibt der Extralook gueltig (in Sekunden)? Anschliessend |
| wird er automatisch geloescht. |
| 0: Dieser Eintrag bleibt unbegrenzt gueltig. |
| < 0: Dieser Eintrag bleibt bis zum Ende/Reboot bestehen. |
| - string key: |
| Schluesselwort, unter dem der Eintrag registriert wird und mit dem man ihn |
| auch mittels RemoveExtraLook() entfernen kann. Sollte natuerlich |
| moeglichst eindeutig sein. ;-) Wenn <key> nicht angeben wird, wird der |
| Objektname (object_name()) benutzt. |
| - string lookende: |
| String, der an das Lebewesen (nur bei Spielern) ausgegeben wird, wenn der |
| eingetragene Extralook abgelaufen ist. |
| Kann auch ein Funktionsname sein, wenn <ob> angegeben wird. |
| - object ob: |
| Wenn hier ein Objekt angegeben wird, werden <look> und <lookende> als |
| Funktonsnamen aufgefasst. Diese Funktionen werden in <ob> aufgerufen, wenn |
| der Extralook des Lebewesen angezeigt wird bzw. der eingetragene Extralook |
| abgelaufen ist. Diese Funktionen bekommen das jeweilige Lebenwesen als |
| Objekt uebergeben. Sie muessen einen String zurueckliefern, der ausgegeben |
| wird. Dieser String wird direkt so ausgeben, also selber fuer Zeilenumbruch |
| etc. sorgen! |
| WICHTIG: Das Objekt sollte nach Moeglichkeit eine Blueprint sein, da das |
| ganze nix mehr ausgibt, sobald der Clone zerstoert wird, falls hier |
| einer angeben wird. Wenn ihr keine BP uebergebt: Wisst, was ihr tut. ;-) |
| |
| RUECKGABEWERTE: |
| > 0, falls der Eintrag erfolgreich registriert wurde. |
| < 0 sonst. |
| -1: <key> war nicht gueltig und es konnte keiner ermittelt werden. |
| -2: <look> war kein gueltiger String. |
| -3: <duration> war kein Integer. |
| -4: unter <key> gibt es schon einen Eintrag. |
| |
| BEMERKUNGEN: |
| Die Strings <look> und <lookende> werden vor Ausgabe durch |
| replace_personal() geschickt, daher ist die Verwendung von @WER1, @WESSEN1 |
| usw. moeglich (s. replace_personal). Dies gilt aber _nicht_ fuer den Fall, |
| dass die entsprechenden Funktionen in <ob> gerufen werden, dann muessen die |
| Funktionen selber umbrechen, etc. |
| Nach replace_personal() werden die Strings noch von break_string() auf 78 |
| Zeilen umgebrochen, allerdings bleiben dabei vorhandene Umbrueche erhalten. |
| Die Meldung von <lookende> bzw. der Funktionsaufruf erfolgt, wenn der |
| Extralook der Lebewesen das erste Mal nach Ablauf der Gueltigkeit aufgerufen |
| wird. |
| |
| BEISPIELE: |
| # einfacher Eintrag, "fuer die Ewigkeit" |
| living->AddExtraLook("@WER1 hat den Drachengott der SSP besiegt."); |
| |
| # Eintrag der nach 1h automatisch weg ist. |
| living->AddExtraLook("@WER1 ist ganz mit Marmelade bedeckt.", 3600); |
| |
| # Eintrag mit bestimmten Schluessel, damit man ihn wieder entfernen kann. |
| living->AddExtraLook("@WER1 ist ganz mit Marmelade bedeckt.", 3600, |
| "humni_marmeladen_look"); |
| |
| # Mit "Ende"-Meldung, aber kein eigener Schluessel. |
| living->AddExtraLook("@WER1 ist patschnass.", 1200, 0, |
| "Du bist endlich wieder trocken. Puuh."); |
| |
| # Mit Objekt, was den Extralook dynamisch erzeugt |
| living->AddExtraLook("get_my_special_extralook", 3600, 0, 0, this_object()); |
| In diesem Fall muss this_object() natuerlich die Funktion |
| "get_my_special_extralook()" definieren, die einen String zurueckgibt. |
| |
| # Mit Objekt, was den Extralook und die Endemeldung dynamisch erzeugt |
| living->AddExtraLook("get_my_special_extralook", 3600, 0, |
| "extralookende", this_object()); |
| |
| SIEHE AUCH: |
| RemoveExtraLook(), |
| replace_personal(), break_string() |
| P_INTERNAL_EXTRA_LOOK |
| |
| 14.05.2007, Zesstra |
| |