magier.c-Dateireferenz

#include <wizlevels.h>
#include <moving.h>
#include <properties.h>
#include <new_skills.h>
#include <config.h>
Include-Abhängigkeitsdiagramm für magier.c:

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

Dokumentation der Funktionen

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static string _query_racedescr (  )  [static]

Definiert in Zeile 159 der Datei magier.c.

00160 {
00161   return "Magier koennen einfach alles. Aber manche Magier koennen mehr.\n";
00162 }

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

protected void create_super (  ) 

Definiert in Zeile 68 der Datei magier.c.

Benutzt set_next_reset().

00068                               {
00069   set_next_reset(-1);
00070 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

static void initialize (  )  [static]

Definiert in Zeile 219 der Datei magier.c.

Benutzt initialize().

00220 {
00221   magier_ext::initialize();
00222   return;
00223 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

int MayAddObject ( object  ob  ) 

Definiert in Zeile 216 der Datei magier.c.

00216 { return 1; }

int MayAddWeight ( int  w  ) 

Definiert in Zeile 215 der Datei magier.c.

00215 { return 0;}

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:


Variablen-Dokumentation

inherit std player base

Definiert in Zeile 35 der Datei magier.c.

inherit std shells magier magier_ext

Definiert in Zeile 36 der Datei magier.c.

Erzeugt am Thu Jun 3 14:43:11 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3