#include <wizlevels.h>#include <moving.h>#include <properties.h>#include <new_skills.h>#include <config.h>
gehe zum Quellcode dieser Datei
Funktionen | |
| protected void | create () |
| protected void | create_super () |
| protected void | heart_beat () |
| public varargs int | remove (int silent) |
| public string | NotifyDestruct (object caller) |
| void | reset () |
| varargs int | id (string str) |
| static string * | _query_racestring () |
| static string | _query_default_guild () |
| static string | _query_racedescr () |
| static string | _query_race () |
| static mixed * | _query_localcmds () |
| static void | upd_my_age () |
| static int | _query_age () |
| static int | _set_earmuffs (int level) |
| int | MayAddWeight (int w) |
| int | MayAddObject (object ob) |
| static void | initialize () |
| static void | FinalSetup () |
| void | save_me (int i) |
| varargs void | Reconnect (int silent, string my_ip) |
| void | notify_player_change (string who, int rein, int invis) |
| mixed | modify_command (string str) |
Variablen | |
| inherit std player | base |
| inherit std shells magier | magier_ext |
| static int _query_age | ( | ) | [static] |
Definiert in Zeile 191 der Datei magier.c.
Benutzt age und upd_my_age().
00192 { 00193 upd_my_age(); 00194 return age; 00195 }

| static string _query_default_guild | ( | ) | [static] |
Definiert in Zeile 153 der Datei magier.c.
Benutzt P_DEFAULT_GUILD und Query().
00154 { 00155 return (Query(P_DEFAULT_GUILD)||"abenteurer"); 00156 }

| static mixed* _query_localcmds | ( | ) | [static] |
Definiert in Zeile 174 der Datei magier.c.
Benutzt _query_localcmds().
00175 { 00176 return 00177 base::_query_localcmds() 00178 +magier_ext::_query_localcmds(); 00179 }

| static string _query_race | ( | ) | [static] |
Definiert in Zeile 165 der Datei magier.c.
Benutzt P_RACE, Query() und Set().
00166 { 00167 if (previous_object() && previous_object()->query_login_object()) 00168 return 0; 00169 00170 return Query(P_RACE) ? Query(P_RACE) : Set(P_RACE, "Magier"); 00171 }

| static string _query_racedescr | ( | ) | [static] |
| static string* _query_racestring | ( | ) | [static] |
Definiert in Zeile 142 der Datei magier.c.
Benutzt P_RACE, P_RACESTRING, Query() und QueryProp().
00143 { 00144 if (pointerp(Query(P_RACESTRING))) 00145 return Query(P_RACESTRING); 00146 else 00147 return 00148 ({QueryProp(P_RACE),QueryProp(P_RACE), 00149 QueryProp(P_RACE),QueryProp(P_RACE)}); 00150 }

| static int _set_earmuffs | ( | int | level | ) | [static] |
Definiert in Zeile 197 der Datei magier.c.
Benutzt min, P_EARMUFFS, query_wiz_level() und Set().
00198 { 00199 int max; 00200 00201 max=1+query_wiz_level(this_object()); 00202 if (max>99) max=99; 00203 #if __VERSION__ < "3.2.9" 00204 return Set(P_EARMUFFS, level > max ? max : level); 00205 #else 00206 return Set(P_EARMUFFS,min(max,level)); 00207 #endif 00208 }

| protected void create | ( | ) |
Definiert in Zeile 44 der Datei magier.c.
Benutzt create(), F_MODE, P_ATTRIBUTES_OFFSETS, P_AVERAGE_SIZE, P_DEFAULT_GUILD, P_ENEMY_DEATH_SEQUENCE, P_HANDS, P_RACE, P_RACESTRING, P_TRANK_FINDEN, P_ZAP_MSG, QueryProp(), SAVE, Set(), set_next_reset(), SetDefaultHome() und SetProp().
00045 { 00046 if (!clonep() || object_name(this_object()) == __FILE__[0..<3]) { 00047 set_next_reset(-1); 00048 return; 00049 } 00050 00051 base::create(); 00052 00053 Set(P_RACE, SAVE, F_MODE); 00054 Set(P_ZAP_MSG, SAVE, F_MODE); 00055 Set(P_TRANK_FINDEN, SAVE, F_MODE); 00056 Set(P_HANDS, SAVE, F_MODE); 00057 Set(P_RACESTRING, SAVE, F_MODE); 00058 SetDefaultHome("gilden/abenteurer"); 00059 SetProp(P_ENEMY_DEATH_SEQUENCE, 00060 ([17:"Der Tod schuettelt verstaendnislos den Kopf.\n\n", 00061 18:"Der Tod sagt: WIESO MUSSTEST DU DICH AUCH UNBEDINGT " 00062 "MIT EINEM MAGIER ANLEGEN?\n\n"])); 00063 SetProp(P_ATTRIBUTES_OFFSETS,([])); 00064 SetProp(P_AVERAGE_SIZE,185); 00065 if(!QueryProp(P_DEFAULT_GUILD)) SetProp(P_DEFAULT_GUILD,"abenteurer"); 00066 }

| protected void create_super | ( | ) |
Definiert in Zeile 68 der Datei magier.c.
Benutzt set_next_reset().
00068 { 00069 set_next_reset(-1); 00070 }

| static void FinalSetup | ( | ) | [static] |
Definiert in Zeile 226 der Datei magier.c.
Benutzt _age, _hbstop, absolute_hb_count(), age, initialize(), IS_LEARNER, P_CURRENTDIR und SetProp().
00227 { 00228 SetProp(P_CURRENTDIR,"/players/"+getuid()); 00229 initialize(); 00230 if (IS_LEARNER(this_player())) cat("/etc/WIZNEWS"); 00231 _age=age; 00232 _hbstop=absolute_hb_count(); 00233 return; 00234 }

| protected void heart_beat | ( | ) |
Definiert in Zeile 73 der Datei magier.c.
Benutzt CheckTelnetKeepAlive(), heart_beat(), P_WANTS_TO_LEARN, QueryEnemies() und QueryProp().
00074 { 00075 mixed *en; 00076 00077 if (!QueryProp(P_WANTS_TO_LEARN)||((en=QueryEnemies())&&sizeof(en[0]))) 00078 base::heart_beat(); 00079 else if (!CheckTelnetKeepAlive()) { 00080 // Wenn der Magier kein Telnet Keep-Alive wuenscht, kann der HB ganz 00081 // abgeschaltet werden. Sonst muss er aber weiterlaufen, damit 00082 // CheckTelnetKeepAlive() regelmaessig gerufen wird. 00083 set_heart_beat(0); 00084 } 00085 }

| varargs int id | ( | string | str | ) |
Definiert in Zeile 134 der Datei magier.c.
Benutzt id(), IS_LEARNER und QueryProp().
00134 { 00135 if (QueryProp(P_INVIS) && 00136 (!this_interactive() ||!IS_LEARNER(this_interactive()))) 00137 return 0; 00138 return ::id(str); 00139 }

| static void initialize | ( | ) | [static] |
Definiert in Zeile 219 der Datei magier.c.
Benutzt initialize().
00220 { 00221 magier_ext::initialize(); 00222 return; 00223 }

| mixed modify_command | ( | string | str | ) |
Definiert in Zeile 296 der Datei magier.c.
Benutzt __auswerten(), __set_environment(), _return_args(), input, IS_ARCH, IS_LORD, modify_command(), process_call() und SoulComm().
00296 { 00297 if (previous_object() && 00298 (previous_object()!=this_object() || process_call()) ) 00299 { 00300 if (IS_ARCH(this_object())) 00301 tell_object(this_object(), 00302 sprintf("Illegal modify_command(%s) from %O\n", 00303 str, previous_object())); 00304 return 0; 00305 } 00307 // Magier-Escape-Kommandos werden behandelt 00308 if (str=="\\ESCAPE" && IS_LORD(this_object())) 00309 { 00310 __set_environment(this_object(),"/room/void"); 00311 environment()->init(); 00312 printf("You escaped.\n"); 00313 return ""; 00314 } 00315 if (str[0..2]=="\\\\\\" && IS_LORD(this_object())) 00316 { 00317 str = _return_args(str); 00318 string* input = explode(str[3..]," "); 00319 string verb = input[0]; 00320 if (verb && verb!="") 00321 { 00322 string cmd = implode(input[1..]," "); 00323 if (!__auswerten(cmd,verb)) 00324 SoulComm(cmd,verb); 00325 } 00326 return 1; 00327 } 00329 00330 return ::modify_command(str); 00331 }

| void notify_player_change | ( | string | who, | |
| int | rein, | |||
| int | invis | |||
| ) |
Definiert in Zeile 253 der Datei magier.c.
Benutzt delayed_write(), list, MUDNAME, name, P_INFORMME, P_VISUALBELL, P_WAITFOR, P_WAITFOR_FLAGS, P_WAITFOR_REASON, Query(), QueryProp() und Show_WaitFor_Reason().
00254 { 00255 string *list,name; 00256 mixed mlist; 00257 int vis_change; 00258 00259 if (invis) name="("+who+")"; 00260 else name=who; 00261 00262 if(query_verb() && (query_verb()=="vis" || query_verb()=="invis")) 00263 vis_change=1; 00264 00265 if (Query(P_INFORMME) && !vis_change) 00266 { 00267 if (rein) 00268 tell_object(this_object(), 00269 sprintf("%s ist gerade ins "MUDNAME" gekommen.\n",name)); 00270 else 00271 tell_object(this_object(), 00272 sprintf("%s hat gerade das "MUDNAME" verlassen.\n",name)); 00273 } 00274 00275 if(Query(P_WAITFOR_FLAGS) & (0x01))return ; 00276 00277 if (pointerp(list=Query(P_WAITFOR))&&sizeof(list)) 00278 if (member(list,who)!=-1) 00279 delayed_write( 00280 ({ 00281 ({sprintf("%s%s I S T J E T Z T %s !!!\n", 00282 (QueryProp(P_VISUALBELL) ? "" : sprintf("%c",7)), 00283 name, 00284 (vis_change? 00285 (rein?"S I C H T B A R":"U N S I C H T B A R"): 00286 (rein?"D A":"N I C H T M E H R D A"))), 00287 0}) 00288 })); 00289 00290 if (rein && (sizeof(mlist=QueryProp(P_WAITFOR_REASON))) && 00291 (mappingp(mlist)) && (mlist[who])) 00292 Show_WaitFor_Reason(who,invis); 00293 return; 00294 }

| public string NotifyDestruct | ( | object | caller | ) |
Definiert in Zeile 101 der Datei magier.c.
Benutzt ARCH_SECURITY, IS_ARCH, master, NotifyDestruct(), process_call() und ROOTID.
00101 { 00102 00103 if (previous_object() != master() 00104 || object_name(this_object()) == __FILE__[..<3]) 00105 return 0; 00106 00107 // Nicht-EMs sollen keine EMs zerstoeren koennen, woraufhin auch evtl. 00108 // EM-Tools rumliegen koennten. 00109 if ( IS_ARCH(this_object()) && caller != this_object() 00110 && getuid(caller) != ROOTID 00111 && (process_call() || !ARCH_SECURITY) ) 00112 return "Das Zerstoeren von EMs ist ein Fehler. ;-)\n"; 00113 00114 return ::NotifyDestruct(caller); 00115 }

| varargs void Reconnect | ( | int | silent, | |
| string | my_ip | |||
| ) |
Definiert in Zeile 245 der Datei magier.c.
Benutzt reconnect() und Reconnect().
00246 { 00247 base::Reconnect(silent,my_ip); 00248 magier_ext::reconnect(); 00249 return; 00250 }

| public varargs int remove | ( | int | silent | ) |
Definiert in Zeile 88 der Datei magier.c.
Benutzt IS_WIZARD, M_GO, move() und remove().
00089 { 00090 string workroom; 00091 00092 if (IS_WIZARD(this_object())) 00093 workroom = "/players/"+getuid()+"/workroom"; 00094 else 00095 workroom = "/secure/merlin"; 00096 if( !environment() || object_name(environment()) != workroom ) 00097 catch(move(workroom, M_GO, "nach Hause")); 00098 return base::remove(silent); 00099 }

| void reset | ( | void | ) |
Definiert in Zeile 117 der Datei magier.c.
Benutzt destruct() und quit().
00118 { 00119 if (!interactive(this_object())) 00120 { 00121 quit(); 00122 if (this_object()) 00123 remove(); 00124 if (this_object()) 00125 destruct(this_object()); 00126 return; 00127 } 00128 }

| void save_me | ( | int | i | ) |
Definiert in Zeile 237 der Datei magier.c.
Benutzt save_me() und upd_my_age().
00238 { 00239 upd_my_age(); 00240 base::save_me(i); 00241 return; 00242 }

| static void upd_my_age | ( | ) | [static] |
Definiert in Zeile 182 der Datei magier.c.
Benutzt _age, _hbstop, absolute_hb_count() und age.
Wird benutzt von _query_age() und save_me().
00183 { 00184 age=_age+absolute_hb_count()-_hbstop; 00185 _age=age; 00186 _hbstop=absolute_hb_count(); 00187 return; 00188 }


| inherit std shells magier magier_ext |
1.6.3