blob: fe96ac621eadecbf020eeb20a71f8f171747d901 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001
Zesstra953f9972017-02-18 15:37:36 +01002P_NETDEAD_INFO
3**************
MG Mud User88f12472016-06-24 23:31:02 +02004
MG Mud User88f12472016-06-24 23:31:02 +02005
Zesstra953f9972017-02-18 15:37:36 +01006NAME
7====
MG Mud User88f12472016-06-24 23:31:02 +02008
Zesstra953f9972017-02-18 15:37:36 +01009 P_NETDEAD_INFO "netdead_info"
MG Mud User88f12472016-06-24 23:31:02 +020010
MG Mud User88f12472016-06-24 23:31:02 +020011
Zesstra953f9972017-02-18 15:37:36 +010012DEFINIERT IN
13============
MG Mud User88f12472016-06-24 23:31:02 +020014
Zesstra953f9972017-02-18 15:37:36 +010015 /sys/player.h
MG Mud User88f12472016-06-24 23:31:02 +020016
MG Mud User88f12472016-06-24 23:31:02 +020017
Zesstra953f9972017-02-18 15:37:36 +010018BESCHREIBUNG
19============
MG Mud User88f12472016-06-24 23:31:02 +020020
Zesstra953f9972017-02-18 15:37:36 +010021 Wird im Raum X gesetzt und wirkt nur, falls dieser Raum ein '#' im
22 object_name() hat (normale Clones, zB "/room/void#10153018").
23
24
25
26 Bei Einschlafen eines Spielers in diesem Raum werden die Werte aus
27 der Property im Spieler gespeichert (Netztoteninformationen).
28
29 Ist beim Aufwachen des Spielers das Raumobjekt X zerstoert worden, dann
30 wird bei der Blueprint von X per SetProp() die gespeicherte Information
31 gesetzt. Der Rueckgabewert des SetProp wird als Pfad zu einem Ausweich-
32 Aufwach-Raum interpretiert und der Spieler wird in dem Fall dorthin
33 bewegt.
34
35
36BEMERKUNGEN
37===========
38
39 Zum Clonen von Raeumen sollten Virtual Compiler benutzt werden:
40 Wird in den erzeugten Objektnamen KEIN '#' verwendet, dann ist diese
41 Property nicht sinnvoll und wird nicht verwendet. Ein ordentlicher
42 VC kann Bewegen eines Spielers in dessen alten, nicht mehr existierenden
43 Raum oder einen Ersatzraum beim Aufwachen selbst loesen.
44
45
46BEISPIELE
47=========
48
49 // #1: geclonter Raum mit Ausweich-Aufwachraum: Klerus-Gilde
50 #include <properties.h>
51 inherit "/std/room";
52
53
54
55 void create() {
56 ::create();
57
58 SetProp(P_NETDEAD_INFO, "/gilden/klerus");
59 SetProp(P_LIGHT, 1);
60 }
61
62
63
64 // #2: komplexerer Beispielraum fuer P_NETDEAD_INFO-Funktionalitaet
65 // Siehe auch: /doc/beispiele/testobjekte/netdead_info_testraum.c
66 #include <properties.h>
67 inherit "/std/room";
68
69 void create() {
70 ::create();
71
72 if (clonep(this_object()))
73 // setze Informationen, die im Netztoten gespeichert werden sollen
74 Set(P_NETDEAD_INFO, random(5));
75 else
76 // Blueprint: hier kann man zu einem Cloneraum gehen
77 AddExit("cloneraum", #'create_room);
78
79 // Set-Method, um die Informationen aus P_NETDEAD_INFO beim Aufwachen
80 // in der Blueprint auswerten zu koennen
81 Set(P_NETDEAD_INFO, #'create_destiny, F_SET_METHOD);
82 SetProp(P_LIGHT, 1);
83 }
84
85
86
87 // Raum entfernen, normalerweise so KEINE GUTE IDEE!
88 void BecomesNetDead(object pl) {
89 call_out(#'remove, 30);
90 }
91
92 // erzeuge einen Cloneraum und bewege den Spieler dahin
93 int create_room(string dir) {
94 object dest = clone_object(object_name(this_object()));
95 this_player()->move(dest, M_NOCHECK);
96 return 1;
97 }
98
99
100
101 // Set-Method fuer P_NETDEAD_INFO: gibt Pfad zurueck
102 // benutze die Informationen aus dem jetzt aufwachenden Netztoten, um
103 // einen alternativen Aufwachraum zu ermitteln, da der Einschlafraum
104 // zerstoert ist
105 string create_destiny(mixed val) {
106 if (intp(val)) {
107 switch (val) {
108 case 0:
109 return "/d/ebene/room/PortVain/po_haf1";
110 case 1:
111 return "/gilden/klerus";
112 case 2:
113 return "/gilden/karate";
114 default:
MG Mud User88f12472016-06-24 23:31:02 +0200115 }
Zesstra953f9972017-02-18 15:37:36 +0100116 return "/d/ebene/room/waldweg4";
MG Mud User88f12472016-06-24 23:31:02 +0200117 }
Zesstra953f9972017-02-18 15:37:36 +0100118 }
MG Mud User88f12472016-06-24 23:31:02 +0200119
1202. Jan 2012 Gloinson