blob: bd8892d81427ce5762401d0532397829a3549d1c [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001
2Zaubertraenke fuer Magier
3=========================
4
5Wie man die Traenke jetzt genau versteckt bleibt dem betreffenden Magier
6ueberlassen, es sollte halt insgesamt ein breites Spektrum von sehr leicht
7zu finden bis fast unmoeglich abgedeckt sein.
8Fuer das Orakel der Hochebene sollte dann ein entsprechender Spruch
Deaddy277a0652018-01-03 23:48:18 +01009vorbereitet werden, nicht zu kryptisch aber doch orakelig. Wichtig ist auch,
10dass der Spruch nicht in Dateien oder Code festgehalten wird. Gerade im
11modernen Workflow mit Git ist darauf zu achten, da hier auch temporaere
12Kommentare oder Dateien wieder hergestellt werden koennten; am besten haelt
13man den Spruch also fest, in dem man sich selbst im Mud eine Mail schickt oder
14ihn an einem sonstwie sicheren Ort verwahrt.
MG Mud User88f12472016-06-24 23:31:02 +020015
16Die zufaellige Auswahl an zugeordneten Zaubertraenken wird beim ersten
17Einloggen des Spielers festgelegt.
18
19Die Raeume, in denen Traenke versteckt werden (und es duerfen nur Raeume
20sein), werden in 8 Listen eingeteilt, je nach Schwierigkeitsgrad. Der haengt
21natuerlich von der Lage (so ist ein Trank in einem monsterwimmelnden
22Labyrinth schwieriger zu erreichen, als einer auf der Hochebene), und von
23dem Versteck selbst ab.
24Questraeume, die nur im Rahmen der Quest erreichbar sind, sind ungeeignet.
25
Deaddy277a0652018-01-03 23:48:18 +010026BEISPIEL:
MG Mud User88f12472016-06-24 23:31:02 +020027Mein Standardbeispiel fuer ein Versteck ist immer folgendes:
Deaddy277a0652018-01-03 23:48:18 +010028
MG Mud User88f12472016-06-24 23:31:02 +020029> schaue
30blablablabla .... Ein Schreibtisch steht in der Ecke. ... blablabla
31> unt schreibtisch
32Er hat eine Schublade.
Deaddy277a0652018-01-03 23:48:18 +010033> oeffne schublade
MG Mud User88f12472016-06-24 23:31:02 +020034Du oeffnest die Schublade.
35> unt schublade
36In der Schublade enteckst Du ein paar Papiere.
37> unt papiere
38Beim Rumwuehlen in den Papieren entdeckst Du einen kleinen Zaubertrank, den
39Du sofort trinkst.
Deaddy277a0652018-01-03 23:48:18 +010040
MG Mud User88f12472016-06-24 23:31:02 +020041Dann kommt die Auswahlsequenz, welche Eigenschaft man erhoehen will.
Deaddy277a0652018-01-03 23:48:18 +010042
MG Mud User88f12472016-06-24 23:31:02 +020043In diesem Fall reichen Details, Details mit Closure und eine Kommando fuer
44"oeffne" aus. Etwa wie folgt:
45
46 void create() {
47 [...]
48 SetProp(P_INT_LONG, ... Ein Schreibtisch steht in der Ecke ...);
Deaddy277a0652018-01-03 23:48:18 +010049
MG Mud User88f12472016-06-24 23:31:02 +020050 AddDetail(({"tisch", "schreibtisch"}),
51 "Er hat eine Schublade.");
52
53 AddCmd("oeffne&schublade", #'action_oeffne,
54 "Was moechtest du oeffnen.");
55 }
56
57 private int action_oeffne() {
58 tell_object(this_player(), "Du oeffnest die Schublade.\n");
59 tell_room(this_object(), this_player()->Name()+
60 " oeffnet eine Schublade.\n", ({this_player()}));
61
62 AddDetail("schublade",
63 "In der Schublade entdeckst du ein paar Papiere.\n");
64 AddDetail("papiere", #'detail_papiere);
65 }
66
Deaddy277a0652018-01-03 23:48:18 +010067 // Zaubertrankgebendes Detail
MG Mud User88f12472016-06-24 23:31:02 +020068 private string detail_papiere() {
69 if (this_player()->FindPotion(
70 break_string("Beim Rumwuehlen in den Papieren entdeckst Du einen "
71 "kleinen Zaubertrank, den Du sofort trinkst.", 78)))
Deaddy277a0652018-01-03 23:48:18 +010072 return "";
MG Mud User88f12472016-06-24 23:31:02 +020073 // Es muss ein String zurueckgegeben werden, da man sonst
74 // die Fehlermeldung "Sowas siehst du hier nicht." bekommt
75 else
76 return "Die Papiere sind alle unbeschriftet.\n";
77 }
78
79 // Aufraeumen des Raumes
80 void reset() {
81 if(!sizeof(filter(all_inventory(this_object()), #'interactive))) {
82 RemoveDetail("papiere");
83 RemoveDetail("schublade");
84 }
85 ::reset();
86 }
Deaddy277a0652018-01-03 23:48:18 +010087
MG Mud User88f12472016-06-24 23:31:02 +020088FindPotion() gibt 1 zurueck, wenn der Spieler den Zaubertrank finden darf.
89
90Wer also Traenke verstecken will, macht sowas in der Art und meldet dann den
Deaddy277a0652018-01-03 23:48:18 +010091Raum persoenlich oder per Post bei den Erzmagiern bzw. seinem aktiven
92Regionsmagier an. Diese sollten dann auch den zugehoerigen Spruch erhalten,
93welcher, wie oben erwaehnt, ja nicht im Code oder in einer dabeiliegenden
94Datei stehen sollte.
95
MG Mud User88f12472016-06-24 23:31:02 +020096SIEHE AUCH:
97 Weitere Dateinamen mit Beispielen fuer Trankverstecke kann man der
98 Datei /etc/traenke entnehmen.
99
Deaddy277a0652018-01-03 23:48:18 +0100100 FindPotion - die Funktion, mit welcher man den Trank im Code einbaut
101 traenke - Magierbefehl zum Einschalten des Findens von ZTs
MG Mud User88f12472016-06-24 23:31:02 +0200102
Deaddy277a0652018-01-03 23:48:18 +0100103LETZTE AeNDERUNG:
104 4. Januar 2018 durch Deaddy