notstrom | d8a66ae | 2019-01-12 12:46:38 +0100 | [diff] [blame^] | 1 | inherit "/std/room"; |
| 2 | |
| 3 | #include __PATH__(1)"defs.h" |
| 4 | |
| 5 | private void greeting(); |
| 6 | private string* greeted = ({}); |
| 7 | |
| 8 | |
| 9 | protected void create() { |
| 10 | ::create(); |
| 11 | |
| 12 | SetProp(P_INT_SHORT, "Eine schummrige Huette"); |
| 13 | SetProp(P_INT_LONG, BSLF( |
| 14 | "In diesem Raum hier ist nichts los. Du kannst also eigentlich einfach " |
| 15 | "weitergehen.")); |
| 16 | |
| 17 | SetProp(P_LIGHT, 1); |
| 18 | SetProp(P_INDOORS, 1); |
| 19 | SetProp(P_LIGHT_TYPE, LT_GLOWING); |
| 20 | } |
| 21 | |
| 22 | void reset() { |
| 23 | ::reset(); |
| 24 | /* Bei Raumreset "vergessen" wir, wer alles schon die verzoegerte Meldung |
| 25 | bekommen hat, damit man die auch mehrmals erhalten kann, ohne dass man |
| 26 | jedesmal von ihr bespammt wird. */ |
| 27 | greeted = ({}); |
| 28 | } |
| 29 | |
| 30 | public varargs void init(object origin) { |
| 31 | ::init(); |
| 32 | |
| 33 | if (TP && |
| 34 | interactive(TP) && |
| 35 | member(greeted, getuuid(TP)) == -1 && |
| 36 | find_call_out(#'greeting) == -1) |
| 37 | call_out(#'greeting, 3); |
| 38 | } |
| 39 | |
| 40 | private void greeting() { |
| 41 | /* Wir pruefen hier, ob der Spieler, der den Callout ausgeloest hat, |
| 42 | ueberhaupt noch anwesend ist. Wenn der Spieler gestorben ist, ausgeloggt |
| 43 | hat oder den Raum verlassen hat, machen wir gar nichts. */ |
| 44 | if (ENV(TP) == TO) |
| 45 | greeted += ({getuuid(TP)}); |
| 46 | tell_object(TP, BSPS( |
| 47 | "Tatsaechlich. In diesem Raum hier ist ueberhaupt nichts los.")); |
| 48 | } |