| // MorgenGrauen MUDlib |
| // |
| // $Id: netztot.c 8747 2014-04-26 13:08:47Z Zesstra $ |
| |
| #include <wizlevels.h> |
| #include <moving.h> |
| |
| protected void create() |
| { |
| "/obj/sperrer"->NixGibts(); |
| } |
| |
| private void weg(object ob) |
| { |
| if (!objectp(ob)) |
| return; |
| ob->remove(); |
| if (ob) |
| destruct(ob); |
| } |
| |
| private void wegraeumen(object ob) |
| { |
| object *x; |
| |
| if (!objectp(ob)) |
| return; |
| for (x=deep_inventory(ob);sizeof(x);x=x[1..]) |
| weg(x[0]); |
| ob->move("/room/void",M_NOCHECK|M_SILENT); |
| weg(ob); |
| } |
| |
| void reset() |
| { |
| set_next_reset(120); |
| foreach(object ob: all_inventory(this_object())) |
| { |
| if (interactive(ob)) |
| { |
| catch(this_player()->move("/room/void",M_GO)); |
| set_object_heart_beat(ob,1); |
| } |
| else if (!query_once_interactive(ob) && object_name(ob)!="/obj/sperrer") |
| call_out(#'wegraeumen,1,ob); |
| } |
| "/obj/sperrer"->upd(); |
| } |
| |
| void init() |
| { |
| if (!this_player()) |
| return; |
| catch(this_player()->StopHuntingMode()); |
| if (interactive(this_player())) |
| catch(this_player()->move("/room/void",M_GO)); |
| if (!query_once_interactive(this_player())) |
| { |
| this_player()->remove(); |
| if(this_player()) |
| destruct(this_player()); |
| } |
| set_object_heart_beat(this_player(),0); |
| } |
| |
| public string int_long() |
| { |
| return "Dies ist der Netztotenraum. Es ist dunkel. Du siehst nichts.\n"; |
| } |
| |
| public string int_short() |
| { |
| return "Nichts zu sehen.\n"; |
| } |
| |
| public mixed QueryProp(string str) |
| { |
| switch (str) { |
| case "int_long": return int_long(); |
| case "int_short": return int_short(); |
| } |
| return 0; |
| } |
| |
| // Nicht jeder Magier darf den Netztotenraum entsorgen. |
| public string NotifyDestruct(object caller) { |
| if( (caller!=this_object() && !ARCH_SECURITY) || process_call() ) { |
| return "Du darfst den Netztotenraum nicht zerstoeren!\n"; |
| } |
| } |
| |