MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | inherit "std/room"; |
| 2 | #include <properties.h> |
| 3 | #include <wizlevels.h> |
| 4 | |
| 5 | void create() |
| 6 | { |
| 7 | ::create(); |
| 8 | SetProp(P_LIGHT, 1 ); |
| 9 | SetProp(P_INT_SHORT, "Der Muellraum" ); |
| 10 | SetProp(P_INDOORS, 1); |
| 11 | SetProp(P_NEVER_CLEAN, 1); |
| 12 | SetProp(P_INT_LONG,break_string( |
| 13 | "Dieser Raum ist vollkommen leer und anscheinend riiiiiiesig gross. " |
| 14 | "Du kannst seine Aussmasse nichtmals abschaetzen. Naja. Muss wohl auch " |
| 15 | "so sein, denn hier kommen alle Clones rein, die einige Sekunden " |
| 16 | "nach ihrer Erstellung noch kein Zuhause (Environment) gefunden haben. " |
| 17 | "Wenn Du das magische Kommando 'welt' gibst, wirst Du wieder in Deine Welt\n" |
| 18 | "zurueckversetzt werden.")); |
| 19 | AddExit("welt", "/gilden/abenteurer"); |
| 20 | } |
| 21 | |
| 22 | // rekursiv zerstoeren |
| 23 | private void rec_remove(object ob) { |
| 24 | object *inv=all_inventory(ob); |
| 25 | if (sizeof(inv)) { |
| 26 | filter(inv, #'rec_remove); |
| 27 | } |
| 28 | ob->remove(1); |
| 29 | if (objectp(ob)) destruct(ob); |
| 30 | } |
| 31 | |
| 32 | int clean_me() { |
| 33 | object *inv=all_inventory(this_object()); |
| 34 | int isize=sizeof(inv); |
| 35 | if (isize>100) { |
| 36 | //aeltestes Objekt, was kein Spieler ist, zerstoeren. Pruefung auf Spieler |
| 37 | //ist Paranoia, eigentlich sollte hier nie einer hinkommen koennen, ausser |
| 38 | //magier, und um die waers dann nicht schade. *g* |
| 39 | for (isize--; isize--; ) { |
| 40 | if (!query_once_interactive(inv[isize])) { |
| 41 | rec_remove(inv[isize]); |
| 42 | return(1); |
| 43 | } |
| 44 | } |
| 45 | } |
| 46 | return 0; |
| 47 | } |
| 48 | |
| 49 | varargs int PreventInsert(object pl) { |
| 50 | |
| 51 | if (!objectp(pl)) |
| 52 | return 1; |
| 53 | clean_me(); |
| 54 | return 0; |
| 55 | } |
| 56 | |
| 57 | varargs int PreventInsertLiving(object pl) { |
| 58 | |
| 59 | // keine Spieler. ;-) |
| 60 | if (!objectp(pl) || |
| 61 | (query_once_interactive(pl) && !IS_LEARNER(pl))) |
| 62 | return 1; |
| 63 | |
| 64 | clean_me(); |
| 65 | return 0; |
| 66 | } |
| 67 | |