Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame^] | 1 | |
| 2 | GetPhiolenInfos() |
| 3 | ***************** |
| 4 | |
| 5 | |
| 6 | GetPhiolenInfos(L) |
| 7 | ================== |
| 8 | |
| 9 | |
| 10 | FUNKTION |
| 11 | ======== |
| 12 | |
| 13 | mixed *GetPhiolenInfos(); |
| 14 | |
| 15 | |
| 16 | BESCHREIBUNG |
| 17 | ============ |
| 18 | |
| 19 | Wird von der Phiole aufgerufen: |
| 20 | /d/inseln/miril/sternquest/obj/phiole.c |
| 21 | Der Raum muss /p/service/miril/phiole.h includen. |
| 22 | Mit der Phiole kann ein Spieler durch Tueren schauen. Bei Tueren, die |
| 23 | vom Doormaster (/obj/doormaster.c) verwaltet werden, klappt dies auto- |
| 24 | matisch. Moechte man das verbieten, so muss die Funktion |
| 25 | GetPhiolenInfos() im entsprechenden Raum definiert sein. |
| 26 | Befinden sich Tueren im Raum, die nicht vom Doormaster verwaltet werden, |
| 27 | aber bei denen die Phiole funktionieren soll, so kann dies ebenfalls |
| 28 | mittels GetPhiolenInfos() geschehen. |
| 29 | |
| 30 | |
| 31 | |
| 32 | Funktion der Phiole: |
| 33 | Sie projiziert ein Bild dessen, was hinter der Tuer liegt auf die Tuer. |
| 34 | Steht die Tuer offen, so sieht der Spieler nur eine Wand, denn es wird |
| 35 | gezeigt, was hinter dieser Tuer ist. |
| 36 | |
| 37 | |
| 38 | |
| 39 | Ist die Tuer jedoch ge- oder verschlossen, so sieht er auf der Tuer |
| 40 | die Langbeschreibung des Raumes, der hinter der Tuer liegt, sowie das |
| 41 | Inventar dieses Raumes. |
| 42 | |
| 43 | Aufbau der Funktion: |
| 44 | mixed *GetPhiolenInfos() { |
| 45 | return ({ |
| 46 | ([ |
| 47 | PHIOLE_DEST: string, |
| 48 | PHIOLE_IDS: *string, |
| 49 | PHIOLE_GENDER: int, |
| 50 | PHIOLE_STATUS: int, (optional) |
| 51 | PHIOLE_LONG: string, (optional) |
| 52 | PHIOLE_VERBOTEN: int (optional) |
| 53 | ]), |
| 54 | ([ |
| 55 | ... Naechste Tuer |
| 56 | ]) |
| 57 | }); |
| 58 | } |
| 59 | |
| 60 | |
| 61 | |
| 62 | PHIOLE_DEST Dateiname des Zielraums |
| 63 | PHIOLE_IDS Array der Strings, mit denen sich die Tuer |
| 64 | ansprechen laesst |
| 65 | PHIOLE_GENDER Geschlecht der Tuer |
| 66 | PHIOLE_STATUS aktueller Status der Tuer: |
| 67 | 0 geschlossen/verschlossen, 1 offen |
| 68 | Bei Tueren, die mit NewDoor erzeugt wurden |
| 69 | nicht setzen |
| 70 | PHIOLE_LONG Beschreibung des Zielraums (z.B. bei einer |
| 71 | Faketuer) |
| 72 | PHIOLE_VERBOTEN 0 erlaubt, 1 verboten |
| 73 | |
| 74 | |
| 75 | BEISPIEL |
| 76 | ======== |
| 77 | |
| 78 | Ein Raum enthaelt eine Holztuer und ein Portal. Erstere ist mittels |
| 79 | NewDoor(...) gebaut, soll aber nicht zu durchschauen sein, letztere ist |
| 80 | selbstgestrickt. Die erste fuehrt in den Workroom von Jof, die zweite |
| 81 | ist nur ein Fake und immer geschlossen. Bei vom Doormaster erzeugten |
| 82 | Tueren sollte PHIOLE_STATUS nicht gesetzt werden, da dies automatisch |
| 83 | abgefragt wird. |
| 84 | |
| 85 | |
| 86 | |
| 87 | #include "/p/service/miril/phiole.h" |
| 88 | ... |
| 89 | mixed *GetPhiolenInfos(){ |
| 90 | return ({ |
| 91 | ([ |
| 92 | PHIOLE_DEST:"/players/jof/workroom", |
| 93 | PHIOLE_IDS:({"holztuer"}), |
| 94 | PHIOLE_GENDER:FEMALE, |
| 95 | PHIOLE_VERBOTEN:1 |
| 96 | ]), |
| 97 | ([ |
| 98 | PHIOLE_DEST:0, |
| 99 | PHIOLE_IDS:({"portal"}), |
| 100 | PHIOLE_GENDER:NEUTER, |
| 101 | PHIOLE_STATUS:0, |
| 102 | PHIOLE_LONG:"Du stehst in einer riesigen Schatzkammer und " |
| 103 | "kannst Dein Glueck kaum fassen. Nun brauchst " |
| 104 | "Du nur noch zuzugreifen und bist der reichste " |
| 105 | "Bewohner des MorgenGrauen.", |
| 106 | PHIOLE_VERBOTEN:0 |
| 107 | ]) |
| 108 | }); |
| 109 | } |
| 110 | Mittels PHIOLE_LONG laesst sich auch bei erlaubten und verbotenen Tueren |
| 111 | einstellen, was der Spieler statt der normalen Raumbeschreibung und den |
| 112 | im Raum befindlichen Objekten sehen soll. Das koennte z.B. sinnvoll |
| 113 | sein, falls der Spieler zwar die Raumbeschreibung, aber nicht den fiesen |
| 114 | Drachen sehen soll, der sich ebenfalls im Raum befindet. |
| 115 | |
| 116 | |
| 117 | SIEHE AUCH |
| 118 | ========== |
| 119 | |
| 120 | NewDoor(), QueryDoorStatus(), SetDoorStatus(), QueryAllDoors() |
| 121 | |
| 122 | Letzte Aenderung: Sam, 14. Jan 2006, 12:21, Miril |