awmaster.c-Dateireferenz

#include <combat.h>
#include <language.h>
#include <properties.h>
#include <wizlevels.h>
Include-Abhängigkeitsdiagramm für awmaster.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define SAVEFILE   "/secure/ARCH/awmaster"
#define ADUMPFILE   "/log/ARCH/RUESTUNGEN"
#define DDUMPFILE   "/log/ARCH/DAMAGERS"
#define WDUMPFILE   "/log/ARCH/WAFFEN"
#define ACCNGFILE   "/log/ARCH/ACCHANGE"
#define AWF_PUTON   1
#define AWF_PUTOFF   2
#define AWF_BOOST   4
#define AWF_ZAUBER   8
#define AWF_RESIST   16
#define AWM_TYPE   0
#define AWM_CLASS   1
#define AWM_EFF_CLASS   2
#define AWM_FLAGS   3
#define AWM_WEIGHT   4
#define AWM_VALUE   5
#define AWM_HANDS   6
#define AWM_D_TYPE   7
#define AWM_X_CLASS   8
#define AWM_TIME   9

Funktionen

static private int allowed ()
void create ()
void save_me ()
void reset ()
public varargs int remove (int silent)
static void NotifyACChange (object ob, string fn)
int xflags (object ob)
void RegisterArmour ()
void RegisterWeapon ()
void RegisterDamager (object dam_ob, int old_dam, int new_dam)
string dtdump (mixed arg)
int Dump (mixed what)
int Unregister (string what)
int ResetDamagers ()

Variablen

mapping armours
mapping weapons
mapping damagers

Makro-Dokumentation

#define ACCNGFILE   "/log/ARCH/ACCHANGE"

Definiert in Zeile 24 der Datei awmaster.c.

Wird benutzt von NotifyACChange().

#define ADUMPFILE   "/log/ARCH/RUESTUNGEN"

Definiert in Zeile 21 der Datei awmaster.c.

#define AWF_BOOST   4

Definiert in Zeile 30 der Datei awmaster.c.

Wird benutzt von Dump() und xflags().

#define AWF_PUTOFF   2

Definiert in Zeile 29 der Datei awmaster.c.

Wird benutzt von Dump() und xflags().

#define AWF_PUTON   1

Definiert in Zeile 28 der Datei awmaster.c.

Wird benutzt von Dump() und xflags().

#define AWF_RESIST   16

Definiert in Zeile 32 der Datei awmaster.c.

Wird benutzt von Dump() und xflags().

#define AWF_ZAUBER   8

Definiert in Zeile 31 der Datei awmaster.c.

#define AWM_CLASS   1

Definiert in Zeile 35 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_D_TYPE   7

Definiert in Zeile 41 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_EFF_CLASS   2

Definiert in Zeile 36 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_FLAGS   3

Definiert in Zeile 37 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_HANDS   6

Definiert in Zeile 40 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_TIME   9

Definiert in Zeile 43 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_TYPE   0

Definiert in Zeile 34 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_VALUE   5

Definiert in Zeile 39 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_WEIGHT   4

Definiert in Zeile 38 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define AWM_X_CLASS   8

Definiert in Zeile 42 der Datei awmaster.c.

Wird benutzt von Dump(), RegisterArmour() und RegisterWeapon().

#define DDUMPFILE   "/log/ARCH/DAMAGERS"

Definiert in Zeile 22 der Datei awmaster.c.

Wird benutzt von Dump().

#define SAVEFILE   "/secure/ARCH/awmaster"

Definiert in Zeile 20 der Datei awmaster.c.

#define WDUMPFILE   "/log/ARCH/WAFFEN"

Definiert in Zeile 23 der Datei awmaster.c.


Dokumentation der Funktionen

static private int allowed (  )  [static]

Definiert in Zeile 47 der Datei awmaster.c.

Benutzt ARCH_SECURITY, process_call() und ROOTID.

00048 {
00049   if (previous_object() && geteuid(previous_object())==ROOTID)
00050     return 1;
00051   if (!process_call() && previous_object() && this_interactive() && ARCH_SECURITY)
00052     return 1;
00053   return 0;
00054 }

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

void create (  ) 

Definiert in Zeile 56 der Datei awmaster.c.

Benutzt armours, damagers, flag, restore_object(), SAVEFILE und weapons.

00057 {
00058     seteuid(getuid(this_object()));
00059 
00060     if (!restore_object(SAVEFILE))
00061     {
00062         armours = ([]);
00063         weapons = ([]);
00064         damagers = ([]);
00065     }
00066     if (widthof(damagers) == 1) {
00067       mapping tmp = damagers;
00068       damagers = m_allocate(sizeof(tmp),2);
00069       foreach(string r, int flag: tmp) {
00070                 damagers[r,0]=flag;
00071       }
00072     }
00073 }

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

string dtdump ( mixed  arg  ) 

Definiert in Zeile 288 der Datei awmaster.c.

Benutzt i.

Wird benutzt von Dump().

00289 {   string re;
00290     int i,w;
00291 
00292     if (stringp(arg))
00293         return capitalize(arg);
00294     if (!pointerp(arg) || !stringp(arg[0]))
00295         return "<NONE>";
00296     if ((i=sizeof(arg))==1)
00297         return capitalize(arg[0]);
00298     w = (31-i)/i;
00299     if (w--<1)
00300         return "<MANY>";
00301     for (re="",--i;i>=0;i--)
00302     {
00303         if (!stringp(arg[i]))
00304             re += "-";
00305         else
00306             re += capitalize(arg[i][0..w]);
00307         if (i)
00308             re += "|";
00309     }
00310     return re;
00311 }

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

int Dump ( mixed  what  ) 

Definiert in Zeile 313 der Datei awmaster.c.

Benutzt allowed, AWF_BOOST, AWF_PUTOFF, AWF_PUTON, AWF_RESIST, AWM_CLASS, AWM_D_TYPE, AWM_EFF_CLASS, AWM_FLAGS, AWM_HANDS, AWM_TIME, AWM_TYPE, AWM_VALUE, AWM_WEIGHT, AWM_X_CLASS, damagers, DDUMPFILE, dtdump(), dtime(), dump(), file() und strftime().

00314 {   string  file,*ind;
00315     mapping dump;
00316 
00317     if (!allowed())
00318         return -1;
00319     if (!what)
00320     {
00321         write("Nimm doch mal einen richtigen Parameter!\n");
00322         return 0;
00323     }
00324     if (stringp(what) && strlen(what)>0)
00325     {
00326         what==what[0..0];
00327         if (what=="a")
00328             what=1;
00329         else if (what=="w")
00330             what=2;
00331         else if (what=="d")
00332             what=3;
00333         else
00334         {
00335             write("Nimm doch mal einen richtigen Parameter!\n");
00336             return 0;
00337         }
00338     }
00339     if (!intp(what) || what<1 || what>3)
00340     {
00341         write("Nimm doch mal einen richtigen Parameter!\n");
00342         return 0;
00343     }
00344     if (what==3) // Die 'damagers' haben ein anderes Ausgabeformat
00345     {
00346         printf("AWM: Dumping 'damagers' to '%s'\n",DDUMPFILE);
00347         ind=sort_array(m_indices(damagers),#'<);
00348         if (sizeof(ind) < 1) {
00349             write("AWM: Dump aborted, mapping empty.\n");
00350             return 1;
00351         }
00352         if (file_size(DDUMPFILE)>1)
00353             rm(DDUMPFILE);
00354         
00355                 // nach letzter Aktualisierung sortieren.
00356                 mixed sorted = sort_array(m_indices(damagers),
00357                     function int (int a, int b) {
00358                                 return damagers[a,1] < damagers[b,1];
00359                     } );
00360 
00361                 string ausgabe = sprintf(
00362             "--- Damagers-Dump --- %s --- %s ---\n\n"+
00363             "%:15s D R [Filename]\n",
00364             dtime(time()),capitalize(getuid(this_interactive())),
00365                     "Datum/Zeit");
00366                 foreach(string rue : sorted) {
00367             ausgabe += sprintf("%:15s %1s %1s %s\n",
00368                                 strftime("%y%m%d-%H:%M:%S",damagers[rue,1]),
00369                 (damagers[rue,0]&1?"+":"-"),
00370                 (damagers[rue,0]&2?"+":"-"),
00371                 rue);
00372                 }
00373                 
00374                 write_file(DDUMPFILE, ausgabe);
00375         return 1;
00376     }
00377     if (what==2)
00378         what=0;
00379     file=(what?ADUMPFILE:WDUMPFILE);
00380 
00381     printf("AWM: Dumping '%s' to '%s'\n",
00382         (what?"armours":"weapons"),file);
00383     
00384     dump=(what?armours:weapons);
00385     ind=sort_array(m_indices(dump),#'>);
00386     if (sizeof(ind) < 1)
00387     {
00388         write("AWM: Dump aborted, mapping empty.\n");
00389         return 1;
00390     }
00391 
00392     if (file_size(file)>1)
00393         rm(file);
00394     
00395     string ausgabe = sprintf(
00396         "--- %s-Dump --- %s --- %s ---\n\n"+
00397         "[Filename], Datum/Zeit\n"+
00398         "    ____Typ___ CLS ECL XCL NFBR WGHT. VALUE H %30.30'_'|s\n",
00399         (what?"Ruestungs":"Waffen"),dtime(time()),
00400         capitalize(getuid(this_interactive())),"DamType(s)");
00401 
00402     foreach(string index : ind)
00403     {
00404         ausgabe += sprintf(
00405             "[%s] %s\n    %10s %3d %3d %3d %1s%1s%1s%1s %5d %5d %1d %-30.30s\n",
00406             index, strftime("%y%m%d-%H:%M:%S",dump[index][AWM_TIME]),
00407             dump[index][AWM_TYPE],
00408             dump[index][AWM_CLASS],
00409             dump[index][AWM_EFF_CLASS],
00410             dump[index][AWM_X_CLASS],
00411            (dump[index][AWM_FLAGS]&AWF_PUTON?"+":"-"),
00412            (dump[index][AWM_FLAGS]&AWF_PUTOFF?"+":"-"),
00413            (dump[index][AWM_FLAGS]&AWF_BOOST?"+":"-"),
00414            (dump[index][AWM_FLAGS]&AWF_RESIST?"+":"-"),
00415             dump[index][AWM_WEIGHT],
00416             dump[index][AWM_VALUE],
00417             dump[index][AWM_HANDS],
00418             dtdump(dump[index][AWM_D_TYPE]) );
00419     }
00420     write_file(file,ausgabe);
00421     write("AWM: Done.\n");
00422     return 1;
00423 }

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

static void NotifyACChange ( object  ob,
string  fn 
) [static]

Definiert in Zeile 87 der Datei awmaster.c.

Benutzt ACCNGFILE, AT_AMULET, AT_CLOAK, AT_MISC, AT_RING, dtime(), log_file, MASTER, msg(), P_AC, P_ARMOUR_TYPE, ROOTID und VALID_ARMOUR_CLASS.

Wird benutzt von RegisterArmour().

00088 {
00089 #ifdef ACCHANGE
00090     string at,msg;
00091     int ac,max;
00092 
00093     if (!objectp(ob) || !stringp(fn))
00094         return;
00095     if (!stringp(at=ob->QueryProp(P_ARMOUR_TYPE)))
00096         return;
00097     if ((ac=ob->QueryProp(P_AC)) < (max=VALID_ARMOUR_CLASS[at]))
00098         return;
00099 /* Bereits genehmigte Max-AC-Umhaenge und Ringe/Amulette, die nach den neuen
00100 ** Werten Max-Schutz haben, werden nicht gemeldet.
00101 */
00102     if ( (at==AT_CLOAK || at==AT_RING || at==AT_AMULET || at==AT_MISC) && 
00103           ac==VALID_ARMOUR_CLASS[at])
00104         return;
00105     msg=sprintf("ROOT [%s]\nDie Ruestung %s (P_AC=%d)\n",
00106         dtime(time()),fn,ac);
00107     if (ac==max) 
00108         msg+=("\
00109 besitzt nach Umstellung der Ruestungsklassen einen MAXIMALEN Ruestungsschutz.\n\
00110 Lass doch bitte dieses Objekt vom Balance-Gremium genehmigen.\n\
00111 Hierzu genuegt ein kurzer Antrag in /players/paracelsus/office.\n");
00112     else
00113         msg+=("\
00114 besitzt nach Umstellung der Ruestungsklassen einen UNZULAESSIGEN\n\
00115 Ruestungsschutz, d.h. sie wird fuer Spieler in Kuerze nicht mehr nutzbar\n\
00116 sein. Bitte aendere den Ruestungsschutz entspr. der neuen Obergrenzen\n\
00117 (-> man ruestungen). Sollte der gewuenschte Ruestungsschutz oberhalb der\n\
00118 Genehmigungsgrenze liegen, muss die Ruestung selbstverstaendlich vom\n\
00119 Balance-Gremium genehmigt werden.\n");
00120     msg+=("### Dies ist eine automatisch generierte Meldung ###\n");
00121 
00122     write_file(ACCNGFILE,
00123         sprintf("[%s] P_AC: %d MAX: %d\nOb: %s\n\n",
00124             dtime(time()),ac,max,fn));
00125 
00126     at = MASTER->creator_file(ob);
00127     if (at == ROOTID)
00128         at = "ROOT";
00129     else if( !at || at[0]==' ' )
00130         at="STD";
00131     at = "report/" + at + ".rep";
00132 
00133     log_file(at,msg);
00134 #endif
00135 }

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

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

void RegisterArmour (  ) 

Definiert in Zeile 159 der Datei awmaster.c.

Benutzt armours, AWM_CLASS, AWM_D_TYPE, AWM_EFF_CLASS, AWM_FLAGS, AWM_HANDS, AWM_TIME, AWM_TYPE, AWM_VALUE, AWM_WEIGHT, AWM_X_CLASS, flag, h, id(), NotifyACChange(), ob(), P_AC, P_ARMOUR_TYPE, P_DAM_TYPE, P_EFFECTIVE_AC, P_EFFECTIVE_WC, P_VALUE, P_WC, P_WEIGHT und xflags().

00160 {   object  ob;
00161     string  id;
00162     int     flag,h;
00163 
00164     if (!objectp(ob=previous_object()) || 
00165       member(inherit_list(ob),"/std/armour.c")==-1)
00166       return;
00167     id = explode(object_name(ob),"#")[0];
00168     if (member(armours,id))
00169     {
00170                 armours[id][AWM_TIME]=time();
00171         flag=0;
00172         if ((h=(int)ob->QueryProp(P_AC)) > armours[id][AWM_CLASS])
00173         {
00174             armours[id][AWM_CLASS]=h;
00175             NotifyACChange(ob,id);
00176             flag=1;
00177         }
00178         if ((h=(int)ob->QueryProp(P_EFFECTIVE_AC)) > armours[id][AWM_EFF_CLASS])
00179         {
00180             armours[id][AWM_EFF_CLASS]=h;
00181             flag=1;
00182         }
00183         if ((h=(int)ob->QueryProp(P_NR_HANDS)) < armours[id][AWM_HANDS])
00184         {
00185             armours[id][AWM_HANDS]=h;
00186             flag=1;
00187         }
00188         if ((h=xflags(ob)) != armours[id][AWM_FLAGS])
00189         {
00190             armours[id][AWM_FLAGS]=h;
00191             flag=1;
00192         }
00193     }
00194     else {
00195       armours += ([ id : 
00196         ([
00197             AWM_TYPE      : ob->QueryProp(P_ARMOUR_TYPE) ,
00198             AWM_CLASS     : ob->QueryProp(P_AC) ,
00199             AWM_EFF_CLASS : ob->QueryProp(P_EFFECTIVE_AC) ,
00200             AWM_FLAGS     : xflags(ob),
00201             AWM_WEIGHT    : ob->QueryProp(P_WEIGHT) ,
00202             AWM_VALUE     : ob->QueryProp(P_VALUE) ,
00203             AWM_HANDS     : ob->QueryProp(P_NR_HANDS) , // Fuer Schilde
00204             AWM_D_TYPE    : ob->QueryProp(P_DAM_TYPE) ,
00205             AWM_X_CLASS   : ob->QueryProp(P_EFFECTIVE_WC) ||
00206                             ob->QueryProp(P_WC),
00207                     AWM_TIME      : time()
00208         ]) ]);
00209       NotifyACChange(ob,id);
00210     }
00211 }

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

void RegisterDamager ( object  dam_ob,
int  old_dam,
int  new_dam 
)

Definiert in Zeile 265 der Datei awmaster.c.

Benutzt damagers, flag, ob() und old_explode().

00266 {   object ob;
00267     int flag;
00268     string fn;
00269 
00270     if (!objectp(ob=previous_object()) ||
00271       (member(inherit_list(ob),"/std/weapon.c")==-1 &&
00272        member(inherit_list(ob),"/std/armour.c")==-1 ))
00273       return;
00274     if (old_dam>new_dam) // Repair
00275         flag=2;
00276     else if (new_dam>old_dam) // Damage
00277         flag=1;
00278     else
00279         return;
00280     if (!objectp(dam_ob))
00281         return;
00282     if (!(fn=old_explode(object_name(dam_ob),"#")[0]) || !stringp(fn))
00283         return;
00284     damagers[fn,0]=damagers[fn,0]|flag;
00285     damagers[fn,1]=time(); 
00286 }

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

void RegisterWeapon (  ) 

Definiert in Zeile 213 der Datei awmaster.c.

Benutzt AWM_CLASS, AWM_D_TYPE, AWM_EFF_CLASS, AWM_FLAGS, AWM_HANDS, AWM_TIME, AWM_TYPE, AWM_VALUE, AWM_WEIGHT, AWM_X_CLASS, flag, h, id(), ob(), P_AC, P_DAM_TYPE, P_EFFECTIVE_AC, P_EFFECTIVE_WC, P_VALUE, P_WC, P_WEAPON_TYPE, P_WEIGHT, weapons und xflags().

00214 {   object  ob;
00215     string  id;
00216     int     flag,h;
00217 
00218     if (!objectp(ob=previous_object()) ||
00219       member(inherit_list(ob),"/std/weapon.c")==-1)
00220       return;
00221     id = explode(object_name(ob),"#")[0];
00222     if (member(weapons,id))
00223     {
00224         weapons[id][AWM_TIME] = time();
00225         flag=0;
00226         if ((h=(int)ob->QueryProp(P_WC)) > weapons[id][AWM_CLASS])
00227         {
00228             weapons[id][AWM_CLASS]=h;
00229             flag=1;
00230         }
00231         if ((h=(int)ob->QueryProp(P_EFFECTIVE_WC)) > weapons[id][AWM_EFF_CLASS])
00232         {
00233             weapons[id][AWM_EFF_CLASS]=h;
00234             flag=1;
00235         }
00236         if ((h=(int)ob->QueryProp(P_NR_HANDS)) < weapons[id][AWM_HANDS])
00237         {
00238             weapons[id][AWM_HANDS]=h;
00239             flag=1;
00240         }
00241         if ((h=xflags(ob)) != weapons[id][AWM_FLAGS])
00242         {
00243             weapons[id][AWM_FLAGS]=h;
00244             flag=1;
00245         }
00246     }
00247     else {
00248       weapons += ([ id :
00249         ([
00250             AWM_TYPE      : ob->QueryProp(P_WEAPON_TYPE) ,
00251             AWM_CLASS     : ob->QueryProp(P_WC) ,
00252             AWM_EFF_CLASS : ob->QueryProp(P_EFFECTIVE_WC) ,
00253             AWM_FLAGS     : xflags(ob),
00254             AWM_WEIGHT    : ob->QueryProp(P_WEIGHT) ,
00255             AWM_VALUE     : ob->QueryProp(P_VALUE) ,
00256             AWM_HANDS     : ob->QueryProp(P_NR_HANDS) ,
00257             AWM_D_TYPE    : ob->QueryProp(P_DAM_TYPE) ,
00258             AWM_X_CLASS   : ob->QueryProp(P_EFFECTIVE_AC) || 
00259                             ob->QueryProp(P_AC),
00260                     AWM_TIME      : time()
00261         ]) ]);
00262     }
00263 }

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

public varargs int remove ( int  silent  ) 

Definiert in Zeile 83 der Datei awmaster.c.

Benutzt save_me().

00083                                       {
00084   save_me();
00085 }

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

void reset ( void   ) 

Definiert in Zeile 80 der Datei awmaster.c.

Benutzt save_me().

00080              {
00081   save_me();
00082 }

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

int ResetDamagers (  ) 

Definiert in Zeile 455 der Datei awmaster.c.

Benutzt allowed, damagers und save_me().

00456 {
00457     if (!allowed())
00458         return -1;
00459     damagers = m_allocate(0,2);
00460     save_me();
00461     return 1;
00462 }

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

void save_me (  ) 

Definiert in Zeile 75 der Datei awmaster.c.

Benutzt save_object() und SAVEFILE.

00076 {
00077     save_object(SAVEFILE);
00078 }

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

int Unregister ( string  what  ) 

Definiert in Zeile 425 der Datei awmaster.c.

Benutzt allowed, armours, damagers, m_delete() und weapons.

00426 {
00427     if (!allowed())
00428         return -1;
00429     if (!what)
00430     {
00431         write("Du solltest schon einen Filenamen angeben!\n");
00432         return 0;
00433     } 
00434     if (member(armours,what))
00435     {
00436         efun::m_delete(armours,what);
00437         write("Unregistered "+what+" from 'armours'.\n");
00438         return 1;
00439     }
00440     if (member(weapons,what))
00441     {
00442         efun::m_delete(weapons,what);
00443         write("Unregistered "+what+" from 'weapons'.\n");
00444         return 1;
00445     }
00446     if (member(damagers,what))
00447     {
00448         efun::m_delete(damagers,what);
00449         write("Unregistered "+what+" from 'damagers'.\n");
00450         return 1;
00451     }
00452     return 0;
00453 }

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

int xflags ( object  ob  ) 

Definiert in Zeile 137 der Datei awmaster.c.

Benutzt AWF_BOOST, AWF_PUTOFF, AWF_PUTON, AWF_RESIST, P_DEFEND_FUNC, P_HIT_FUNC, P_REMOVE_FUNC, P_RESISTANCE_STRENGTHS, P_UNWIELD_FUNC, P_WEAR_FUNC und P_WIELD_FUNC.

Wird benutzt von RegisterArmour() und RegisterWeapon().

00137                      {
00138     int re;
00139     mapping m;
00140     if (!ob || !objectp(ob))
00141         return 0;
00142     re=0;
00143     if (((object)ob->QueryProp(P_WEAR_FUNC))==ob  ||
00144         ((object)ob->QueryProp(P_WIELD_FUNC))==ob )
00145         re += AWF_PUTON;
00146     if (((object)ob->QueryProp(P_REMOVE_FUNC))==ob  ||
00147         ((object)ob->QueryProp(P_UNWIELD_FUNC))==ob )
00148         re += AWF_PUTOFF;
00149     if (((object)ob->QueryProp(P_DEFEND_FUNC))==ob ||
00150         ((object)ob->QueryProp(P_HIT_FUNC))==ob    )
00151         re += AWF_BOOST;
00152     // ists nen Mapping und nicht leer?
00153     if (mappingp(m=(mapping)ob->QueryProp(P_RESISTANCE_STRENGTHS))
00154                 && sizeof(m))
00155         re += AWF_RESIST;
00156     return re;
00157 }

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


Variablen-Dokumentation

mapping armours

Definiert in Zeile 45 der Datei awmaster.c.

mapping damagers

Definiert in Zeile 45 der Datei awmaster.c.

Wird benutzt von create(), Dump(), RegisterDamager(), ResetDamagers() und Unregister().

mapping weapons

Definiert in Zeile 45 der Datei awmaster.c.

Wird benutzt von _inventory(), create(), RegisterWeapon() und Unregister().

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