blob: b2d8a71098416c0067da94ebaadc081108655b80 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001// Beispielraum fuer P_NETDEAD_INFO-Funktionalitaet
2#include <properties.h>
3#include <break_string.h>
4inherit "/std/room";
5
6string create_destiny(mixed val);
7int create_room(string dir);
8
9void create() {
10 ::create();
11
12 if (clonep(this_object())) {
13 // setze Informationen, die in einem Netztoten gespeichert werden sollen
14 Set(P_NETDEAD_INFO, random(5));
15 SetProp(P_INT_LONG, break_string(
16 "Wenn du hier einschlaefst, wird der Raum nach 30s zerstoert. Beim "
17 "Aufwachen wirst du an die Blueprint dieses Raums die Info "+
18 QueryProp(P_NETDEAD_INFO)+" uebergeben. Diese wird aus dieser Info "
19 "einen Raumpfad ermitteln, in den du bewegt wirst.", 78));
20 } else {
21 // Blueprint: hier kann man zu einem Cloneraum gehen
22 AddExit("cloneraum", #'create_room);
23 SetProp(P_INT_LONG, break_string(
24 "Zum Testen einfach den Ausgang 'cloneraum' benutzen. Es wird dann "
25 "ein Raum geclont, in den man bewegt wird. Wenn man dort einschlaeft, "
26 "wird der geclonte Raum nach circa 30s zerstoert.\n"
27 "Beim Aufwachen werden die im Spieler gespeicherten Informationen des "
28 "geclonten (und nunmehr zerstoerten) Raumes benutzt, um einen "
29 "alternativen Aufwachraum (Klerusgilde, Karategilde, Wald oder Port "
30 "Vain) zu bestimmen.\n"
31 "Andernfalls wuerde der Spieler in der Abenteurergilde erwachen.", 78,
32 0, BS_LEAVE_MY_LFS));
33 }
34
35 // Set-Method, um die Informationen aus P_NETDEAD_INFO beim Aufwachen
36 // in der Blueprint auswerten zu koennen
37 Set(P_NETDEAD_INFO, #'create_destiny, F_SET_METHOD);
38 SetProp(P_LIGHT, 1);
39}
40
41// Raum entfernen, normalerweise so KEINE GUTE IDEE!
42void BecomesNetDead(object pl) {
43 call_out(#'remove, 30);
44}
45
46// erzeuge einen Cloneraum und bewege den Spieler dahin
47int create_room(string dir) {
48 object dest = clone_object(object_name(this_object()));
49 this_player()->move(dest, M_NOCHECK);
50 return 1;
51}
52
53// Set-Method fuer P_NETDEAD_INFO: gibt Pfad zurueck
54// benutze die Informationen aus dem jetzt aufwachenden Netztoten, um einen
55// alternativen Aufwachraum zu ermitteln, da der Einschlafraum zerstoert ist
56string create_destiny(mixed val) {
57 if (intp(val)) {
58 switch (val) {
59 case 0:
60 return "/d/ebene/room/PortVain/po_haf1";
61 case 1:
62 return "/gilden/klerus";
63 case 2:
64 return "/gilden/karate";
65 default:
66 }
67 return "/d/ebene/room/waldweg4";
68 }
69}