MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 1 | // MorgenGrauen MUDlib |
| 2 | // |
| 3 | // $Id: netztot.c 8747 2014-04-26 13:08:47Z Zesstra $ |
| 4 | |
| 5 | #include <wizlevels.h> |
| 6 | #include <moving.h> |
| 7 | |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 8 | protected void create() |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 9 | { |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 10 | "/obj/sperrer"->NixGibts(); |
| 11 | } |
| 12 | |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 13 | private void weg(object ob) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 14 | { |
| 15 | if (!objectp(ob)) |
| 16 | return; |
| 17 | ob->remove(); |
| 18 | if (ob) |
| 19 | destruct(ob); |
| 20 | } |
| 21 | |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 22 | private void wegraeumen(object ob) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 23 | { |
| 24 | object *x; |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 25 | |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 26 | if (!objectp(ob)) |
| 27 | return; |
| 28 | for (x=deep_inventory(ob);sizeof(x);x=x[1..]) |
| 29 | weg(x[0]); |
| 30 | ob->move("/room/void",M_NOCHECK|M_SILENT); |
| 31 | weg(ob); |
| 32 | } |
| 33 | |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 34 | void reset() |
| 35 | { |
| 36 | set_next_reset(120); |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 37 | foreach(object ob: all_inventory(this_object())) |
| 38 | { |
| 39 | if (interactive(ob)) |
| 40 | { |
| 41 | catch(this_player()->move("/room/void",M_GO)); |
| 42 | set_object_heart_beat(ob,1); |
| 43 | } |
| 44 | else if (!query_once_interactive(ob) && object_name(ob)!="/obj/sperrer") |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 45 | call_out(#'wegraeumen,1,ob); |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 46 | } |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 47 | "/obj/sperrer"->upd(); |
| 48 | } |
| 49 | |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 50 | void init() |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 51 | { |
| 52 | if (!this_player()) |
| 53 | return; |
| 54 | catch(this_player()->StopHuntingMode()); |
| 55 | if (interactive(this_player())) |
| 56 | catch(this_player()->move("/room/void",M_GO)); |
| 57 | if (!query_once_interactive(this_player())) |
| 58 | { |
| 59 | this_player()->remove(); |
| 60 | if(this_player()) |
| 61 | destruct(this_player()); |
| 62 | } |
| 63 | set_object_heart_beat(this_player(),0); |
| 64 | } |
| 65 | |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 66 | public string int_long() |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 67 | { |
| 68 | return "Dies ist der Netztotenraum. Es ist dunkel. Du siehst nichts.\n"; |
| 69 | } |
| 70 | |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 71 | public string int_short() |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 72 | { |
| 73 | return "Nichts zu sehen.\n"; |
| 74 | } |
| 75 | |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 76 | public mixed QueryProp(string str) |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 77 | { |
| 78 | switch (str) { |
| 79 | case "int_long": return int_long(); |
| 80 | case "int_short": return int_short(); |
| 81 | } |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 82 | return 0; |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 83 | } |
| 84 | |
| 85 | // Nicht jeder Magier darf den Netztotenraum entsorgen. |
Zesstra@Morgengrauen | 1bc8c8a | 2016-09-07 20:50:11 +0200 | [diff] [blame] | 86 | public string NotifyDestruct(object caller) { |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 87 | if( (caller!=this_object() && !ARCH_SECURITY) || process_call() ) { |
| 88 | return "Du darfst den Netztotenraum nicht zerstoeren!\n"; |
| 89 | } |
Arathorn | 2e28868 | 2021-09-14 14:29:38 +0200 | [diff] [blame^] | 90 | return 0; |
MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame] | 91 | } |
| 92 | |