#include <defines.h>#include <properties.h>#include <moving.h>#include <language.h>#include <wizlevels.h>#include <daemon.h>#include <new_skills.h>
gehe zum Quellcode dieser Datei
Funktionen | |
| public int | no_attack () |
| public int | no_poison (int val) |
| public void | create () |
| void | test_remove () |
| public void | reset () |
| public void | exit (object liv) |
| static void | deep_destruct (object ob) |
| public void | init () |
| public int | filter_ldfied (string str) |
Variablen | |
| inherit std | room |
| public void create | ( | ) |
Definiert in Zeile 23 der Datei death_room_vc.c.
Benutzt break_string(), create(), IS_BLUE, MALE, P_ARTICLE, P_GENDER, P_INT_LONG, P_INT_SHORT, P_LIGHT, P_LOG_FILE und SetProp().
00024 { 00025 if (IS_BLUE(this_object())) return; 00026 ::create(); 00027 00028 SetProp( P_GENDER, MALE ); 00029 SetProp( P_ARTICLE, 0 ); 00030 SetProp( P_LIGHT,1 ); 00031 SetProp( P_LOG_FILE, "TOD/Todesraum" ); 00032 SetProp( P_INT_SHORT, "Arbeitszimmer des Todes" ); 00033 SetProp( P_INT_LONG, break_string( 00034 "Ein dunkler Raum, erleuchtet von dunklem Licht, das sich der " 00035 "Dunkelheit nicht so sehr zu widersetzen scheint, indem es " 00036 "leuchtet, als dass es der dunkelste Punkt in einer weniger " 00037 "dunklen Umgebung ist. Im seltsamen Licht erkennst Du einen "+ 00038 "zentral aufgestellten Schreibtisch, der mit Diagrammen und " 00039 "Buechern bedeckt ist. Die Waende verschwinden hinter Regalen, " 00040 "die gefuellt sind mit in Leder gebundenen, dunklen Waelzern, " 00041 "von denen geheimnisvolle Runen leuchten.\nTod.", 78, 0, 1 ) ); 00042 previous_object()->CustomizeObject(); 00043 call_other("/room/death/death_room","???"); 00044 }

| static void deep_destruct | ( | object | ob | ) | [static] |
| public void exit | ( | object | liv | ) |
Definiert in Zeile 59 der Datei death_room_vc.c.
Benutzt call_out().
00060 { 00061 call_out("test_remove",2); 00062 return; 00063 }

| public int filter_ldfied | ( | string | str | ) |
Definiert in Zeile 126 der Datei death_room_vc.c.
Wird benutzt von long().
00127 { 00128 // Description: Filter out relevant commands. 00129 string verb; 00130 00131 verb=query_verb(); 00132 00133 if ( (verb == "schlafe" || verb == "schlaf") && str == "ein" ){ 00134 write("DU KANNST DEM TOD NICHT ENTRINNEN!\n"); 00135 return 0; 00136 } 00137 00138 if ( verb == "typo" || verb == "fehler" || verb == "bug" || verb == "idee" ) 00139 return 0; 00140 00141 write( "Dein Koerper gehorcht Dir nicht !\n" ); 00142 return 1; 00143 }

| public void init | ( | ) |
Definiert in Zeile 73 der Datei death_room_vc.c.
Benutzt call_out(), F_SET_METHOD, init(), IS_DEPUTY, IS_WIZARD, M_GO, M_NOCHECK, M_SILENT, move(), name, no_poison(), P_GHOST, P_NO_ATTACK, P_TMP_MOVE_HOOK, P_WANTS_TO_LEARN, QueryPrayRoom(), QueryProp() und upperstring().
00074 { 00075 string prayroom; 00076 int res; 00077 00078 ::init(); 00079 if ( !query_once_interactive(this_player()) ){ 00080 call_out( "deep_destruct", 0, this_player() ); 00081 return; 00082 } 00083 00084 if ( !(prayroom = (string) this_player()->QueryPrayRoom()) ) 00085 prayroom = "/room/pray_room"; 00086 00087 if ( !this_player()->QueryProp(P_GHOST) ) 00088 { 00089 if ( IS_WIZARD(this_player()) && 00090 this_player()->QueryProp(P_WANTS_TO_LEARN) ) 00091 { 00092 if ( !this_player()->QueryProp(P_INVIS) ) 00093 tell_room( this_object(), 00094 "Der Tod sagt: WAS WILLST DU HIER, "+ 00095 upperstring((string) this_player()->name())+"?\n"+ 00096 "Der Tod sagt: DU BIST UNSTERBLICH, DU HAST HIER " 00097 "NICHTS ZU SUCHEN!\n\n" ); 00098 } 00099 else 00100 { 00101 write("Der Tod sagt: WAS TUST DU HIER? DEINE ZEIT IST NOCH " 00102 "NICHT REIF!\n\n"); 00103 00104 if ( catch(res = (int) this_player()->move( prayroom,M_GO|M_SILENT|M_NOCHECK )) 00105 || res < 1 && environment(this_player()) == this_object() ) 00106 this_player()->move( "/room/pray_room", M_GO|M_SILENT|M_NOCHECK ); 00107 } 00108 return; 00109 } 00110 00111 if ( !IS_DEPUTY(this_player()) ){ 00112 add_action( "filter_ldfied", "", 1 ); 00113 this_player()->Set( P_TMP_MOVE_HOOK, 00114 ({ time()+31536000, 00115 find_object("/room/death/death_room"), 00116 "hier_geblieben" }) ); 00117 } 00118 00119 this_player()->Set( P_NO_ATTACK, #'no_attack, F_QUERY_METHOD ); 00120 this_player()->Set( P_POISON, #'no_poison, F_SET_METHOD ); 00121 00122 "/room/death/death_room"->add_player(this_player()); 00123 }

| public int no_attack | ( | ) |
Definiert in Zeile 145 der Datei death_room_vc.c.
Benutzt F_QUERY_METHOD, i und P_NO_ATTACK.
Wird benutzt von DoFindEnemyVictim(), heart_beat(), Kill(), PresentEnemies() und TryAttackSpell().
00146 { 00147 int i; 00148 00149 // Spieler haengt noch in der Todessequenz 00150 if( present(previous_object()) ) 00151 return 1; 00152 else 00153 previous_object()->Set( P_NO_ATTACK, 0, F_QUERY_METHOD ); 00154 00155 return 0; 00156 }

| public int no_poison | ( | int | val | ) |
Definiert in Zeile 158 der Datei death_room_vc.c.
Wird benutzt von init().
00159 { 00160 if ( val != 0 ) 00161 { 00162 catch( raise_error("Poisoning dead players is illegal. Calling object " 00163 "was "+object_name(previous_object(1)))+"\n";publish ); 00164 } 00165 return 0; 00166 }

| public void reset | ( | void | ) |
Definiert in Zeile 52 der Datei death_room_vc.c.
Benutzt reset() und test_remove().
00053 { 00054 ::reset(); 00055 test_remove(); 00056 return; 00057 }

| void test_remove | ( | ) |
Definiert in Zeile 46 der Datei death_room_vc.c.
Benutzt destruct().
Wird benutzt von extinguish(), light(), out_of_fuel(), reset() und unlight().
00047 { 00048 if (!sizeof(all_inventory(this_object())&users())) 00049 if (!this_object()->remove()) destruct(this_object()); 00050 }


| inherit std room |
Definiert in Zeile 18 der Datei death_room_vc.c.
1.6.3