explorationmaster.c-Dateireferenz

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

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define DOMAIN_INFO   1
#define MSG_FROM   0
#define MSG_SENDER   1
#define MSG_RECIPIENT   2
#define MSG_CC   3
#define MSG_BCC   4
#define MSG_SUBJECT   5
#define MSG_DATE   6
#define MSG_ID   7
#define MSG_BODY   8

Funktionen

nomask int addTip (mixed key, string tip)
nomask int changeTip (mixed key, string tip)
nomask int removeTip (mixed key)
static nomask string getTipFromList (mixed key)
void create ()
public nomask int query_prevent_shadow ()
nomask int remove ()
nomask void make_stat ()
void reset ()
static private string strArr (string *s)
static void dumpEPObjects (string *doit)
static private string validOb (mixed ob)
static private int allowed ()
nomask varargs int AddEPObject (object ob, mixed keys, int type, int bonusflag)
nomask int RemoveEPObject (object ob)
nomask int ChangeEPObject (object ob, int what, mixed new)
nomask mixed QueryEPObject (object ob)
static private string getMatch (string m)
static private string getMatchArch (string m)
nomask varargs void ShowEPObjects (string what, string magname)
nomask void PrepareVCQuery (string file)
nomask mixed * QueryExplore ()
nomask int QueryMaxEP ()
nomask int QueryAverage ()
nomask int SetAverage (int x)
static int check_arch (object u)
static private int check_to_fast (string name, string fn, int gesetzt)
nomask int GiveExplorationPoint (string key)
nomask int GiveExplorationPointObject (string key, object ob)
static private int QueryRealExplorationPoints (string pl)
nomask int QueryExplorationPoints (mixed pl)
static private int remove_fp (int num, string pl)
nomask int RemoveFP (int num, string pl, string grund)
static private int add_fp (int num, string pl)
nomask int AddFP (int num, string pl)
nomask int SetFP (int num, string pl)
nomask int ClearFP (int num, string pl)
static private void printep (int nr, string key, int kind, string *det)
nomask varargs int ShowPlayerEPs (string pl, string pattern)
nomask int QueryLEP (int lep)
string QueryForschung ()
nomask status hasFP (object player, string key)
nomask mapping getFreeFPsForPlayer (object player)
nomask string getTip (mixed key)
static nomask string * makeTiplistFromBitString (string bitstr)
nomask string allTipsForPlayer (object player)
nomask status playerMayGetTip (object player)
nomask string giveTipForPlayer (object player)
string NotifyDestruct (object caller)

Variablen

private mapping obs
private mapping tipList
private int cnt
private int avg
private string alloc
private string bonus
static private string vc_ob
static private string output
static private int changed
static private int dumping
static private mapping dumpMap
static private mapping lastfound
static private mapping querytime
static private int stat_done

Makro-Dokumentation

#define DOMAIN_INFO   1

Definiert in Zeile 23 der Datei explorationmaster.c.

#define MSG_BCC   4
#define MSG_BODY   8
#define MSG_CC   3
#define MSG_DATE   6
#define MSG_FROM   0
#define MSG_ID   7

Definiert in Zeile 677 der Datei explorationmaster.c.

Wird benutzt von bestaetigen(), end_query(), RemoveFP(), send_mail(), SendMail() und versende_mail().

#define MSG_RECIPIENT   2
#define MSG_SENDER   1
#define MSG_SUBJECT   5

Dokumentation der Funktionen

static private int add_fp ( int  num,
string  pl 
) [static]

Definiert in Zeile 718 der Datei explorationmaster.c.

Benutzt ep, i, MASTER und QueryMaxEP().

Wird benutzt von AddFP().

00719 {
00720   int i,j,k,t,maxEP;
00721   string ep;
00722   ep = (MASTER->query_ep(pl) || "");
00723 
00724   maxEP = QueryMaxEP();
00725   for( i=0; i<num; i++)
00726   {
00727     t = random(maxEP);
00728     for( j=0; j<maxEP; j++ ) {
00729       if( !test_bit(ep, k=(t+j)%maxEP ) ) break;
00730     }
00731     if( j==maxEP ) break;
00732     ep = set_bit(ep, k);
00733   }
00734   MASTER->update_ep(pl,ep);
00735   return i;
00736 }

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

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

nomask varargs int AddEPObject ( object  ob,
mixed  keys,
int  type,
int  bonusflag 
)

Definiert in Zeile 209 der Datei explorationmaster.c.

Benutzt alloc, allowed, bonus, changed, cnt, EPERR_INVALID_OB, EPERR_NOT_ARCH, EPSAVEFILE, i, MPOS_NUM, MPOS_TYPE, obs, save_object() und validOb().

00210 {
00211   string fn;
00212 
00213   if (!allowed())
00214     return EPERR_NOT_ARCH;
00215 
00216   if (!(fn = validOb(ob)))
00217     return EPERR_INVALID_OB;
00218 
00219   if (stringp(keys))
00220     keys = ({ keys });
00221 
00222   if (member(obs, fn)) {
00223     if (type == obs[fn, MPOS_TYPE])
00224       obs[fn] = keys;
00225     else
00226       obs += ([ fn : keys; obs[fn, MPOS_NUM]; type ]);
00227     if (bonusflag) bonus = set_bit(bonus, obs[fn, MPOS_NUM]);
00228        else bonus = clear_bit(bonus, obs[fn, MPOS_NUM]);
00229   }
00230   else {
00231     int nr, i;
00232 
00233     nr = 0;
00234     while (test_bit(alloc,nr))
00235       nr++;
00236 
00237     obs += ([ fn : keys; nr; type ]);
00238     cnt++;
00239     alloc = set_bit(alloc,nr);
00240     if (bonusflag) bonus = set_bit(bonus,nr);
00241        else bonus = clear_bit(bonus,nr);
00242   }
00243 
00244   changed = 1;
00245   save_object(EPSAVEFILE);
00246   return cnt;
00247 }

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

nomask int AddFP ( int  num,
string  pl 
)

Definiert in Zeile 738 der Datei explorationmaster.c.

Benutzt add_fp(), allowed, ctime(), i, log_file, Name() und WER.

00739 {
00740   int i;
00741   if (!allowed()) return -1;
00742   if ( num<0 ) return -3;
00743   if (!pl) return -2;
00744   i=add_fp(num, pl);
00745   log_file("ARCH/fp_strafen", ctime(time())+": "
00746     +this_interactive()->Name(WER)+" gibt "+pl+" "+i
00747     +" FPs\n");
00748 
00749   return i;
00750 }

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

public int addTip ( mixed  key,
string  tip 
)

Definiert in Zeile 943 der Datei explorationmaster.c.

Wird benutzt von ChangeEPObject() und changeTip().

00944 {
00945   string fn;
00946   
00947   if (!allowed())
00948     return EPERR_NOT_ARCH;
00949 
00950   if (!tip || (!objectp(key) && !stringp(key)))
00951     return EPERR_INVALID_ARG;
00952 
00953   if (objectp(key))
00954     fn=old_explode(object_name(key),"#")[0];
00955   else
00956     fn=old_explode(key,"#")[0];
00957 
00958   if (!member(obs, fn)) return EPERR_INVALID_ARG;
00959   tipList+=([fn:tip]);
00960   save_object(EPSAVEFILE);
00961     
00962   return 1;
00963 }

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

static private int allowed (  )  [static]

Definiert in Zeile 198 der Datei explorationmaster.c.

Benutzt ARCH_SECURITY, process_call() und ROOTID.

00199 {
00200   if (previous_object() && geteuid(previous_object())==ROOTID)
00201     return 1;
00202   if ( !process_call() && previous_object() && this_interactive()
00203         && ARCH_SECURITY )
00204     return 1;
00205 
00206   return 0;
00207 }

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

nomask string allTipsForPlayer ( object  player  ) 

Definiert in Zeile 1109 der Datei explorationmaster.c.

01110 {
01111        string ret,tipstr,tmp;
01112        string* tips;
01113        int i;
01114        
01115        ret="";
01116        
01117        if(!player || !this_interactive() 
01118            || (this_interactive()!=player && !IS_ARCH(this_interactive())) )
01119               return "";              
01120        
01121        tipstr=(string)MASTER->query_fptips(getuid(player) || "");
01122        tips=makeTiplistFromBitString(tipstr);
01123               
01124        for(i=0;i<sizeof(tips);i++){
01125               tmp=getTip(tips[i]);
01126               if(tmp && tmp!="") ret+=tmp+"\n";
01127        }
01128        
01129        return ret;
01130 }

nomask int ChangeEPObject ( object  ob,
int  what,
mixed  new 
)

Definiert in Zeile 274 der Datei explorationmaster.c.

Benutzt addTip(), allowed, bonus, CHANGE_BONUS, CHANGE_KEY, CHANGE_OB, CHANGE_TYPE, changed, EP_MAX, EPERR_INVALID_ARG, EPERR_INVALID_OB, EPERR_NO_ENTRY, EPERR_NOT_ARCH, EPSAVEFILE, getTipFromList(), m_delete(), MPOS_NUM, MPOS_TYPE, obs, removeTip(), save_object() und validOb().

00275 {
00276   string fn, fn2,tmp;
00277   mapping entry;
00278 
00279   if (!allowed())
00280     return EPERR_NOT_ARCH;
00281 
00282   if (!(fn = validOb(ob)))
00283     return EPERR_INVALID_OB;
00284 
00285   if (!member(obs,fn))
00286     return EPERR_NO_ENTRY;
00287 
00288   switch(what) {
00289   case CHANGE_OB:
00290     if (!(fn2 = validOb(new)))
00291       return EPERR_INVALID_ARG;
00292     entry = ([ fn2: obs[fn]; obs[fn,MPOS_NUM]; obs[fn,MPOS_TYPE] ]);
00293     obs = m_delete(obs, fn);
00294     obs += entry;
00295     break;
00296   case CHANGE_BONUS:
00297     if (!(intp(new)))
00298       return EPERR_INVALID_ARG;
00299     if (new) bonus=set_bit(bonus,obs[fn,MPOS_NUM]);
00300        else bonus=clear_bit(bonus,obs[fn,MPOS_NUM]);
00301     break;
00302   case CHANGE_KEY:
00303     if (!stringp(new) && !pointerp(new))
00304       return EPERR_INVALID_ARG;
00305        
00306        tmp=getTipFromList(fn);
00307        removeTip(fn);
00308     if (stringp(new))
00309       new = ({ new });
00310 
00311     obs[fn] = new;
00312     if(tmp && tmp!="")
00313            addTip(fn,tmp);
00314     break;
00315   case CHANGE_TYPE:
00316     if (!intp(new) || new < 0 || new > EP_MAX)
00317       return EPERR_INVALID_ARG;
00318 
00319     obs[fn, MPOS_TYPE] = new;
00320     break;
00321   default:
00322     return EPERR_INVALID_ARG;
00323   }
00324   changed = 1;
00325   save_object(EPSAVEFILE);
00326   return 1;
00327 }

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

public int changeTip ( mixed  key,
string  tip 
)

Definiert in Zeile 965 der Datei explorationmaster.c.

00966 {
00967        return addTip(key,tip);
00968 }

static int check_arch ( object  u  )  [static]

Definiert in Zeile 514 der Datei explorationmaster.c.

Benutzt ARCH_LVL und query_wiz_level().

00515 {
00516    return query_wiz_level(u)>=ARCH_LVL;
00517 }

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

static private int check_to_fast ( string  name,
string  fn,
int  gesetzt 
) [static]

Definiert in Zeile 519 der Datei explorationmaster.c.

Benutzt dtime(), FP_LOG, i, lastfound, LF_LOG, LF_TIME, LF_WARN und log_file.

Wird benutzt von GiveExplorationPoint() und GiveExplorationPointObject().

00520 {
00521     if (gesetzt) return 1; // Rikus, sonst arger scroll :)
00522 
00523     log_file(FP_LOG,sprintf("%s : %s : %s\n",name,fn,dtime(time())),500000);
00524 
00525     if ( !member( lastfound, name ) )
00526         lastfound += ([ name: time(); 1; ({ fn + "#*#" + dtime(time()) + "#*#" +gesetzt }) ]);
00527     else if ( time() <= lastfound[name, 0] + LF_TIME ){
00528         lastfound[name, 1]++;
00529         lastfound[name, 2] = ({ fn + "#*#" + dtime(time()) + "#*#" +gesetzt })
00530             + lastfound[name,2];
00531     }
00532     else {
00533         lastfound[name, 1] = 1;
00534         lastfound[name, 2] = ({ fn + "#*#" + dtime(time()) + "#*#" +gesetzt });
00535     }
00536 
00537     lastfound[name, 0] = time();
00538 
00539     if ( lastfound[name, 1] >= LF_WARN ){
00540         object *u;
00541         int i;
00542         string *tmp;
00543 
00544 //        u = filter( users(), "check_arch" );
00545 //        map( u, #'tell_object/*'*/, "**** FP-Liste/Script " +
00546 //                   capitalize(name) + " (" + dtime(time()) + ") ****\n" );
00547 
00548         for ( i = sizeof(lastfound[name, 2]); i--; ){
00549             tmp = explode( lastfound[name, 2][i], "#*#" );
00550             log_file( LF_LOG, sprintf( "%s : %s : %s : %s\n",
00551                                          tmp[1], name, tmp[2], tmp[0] ), 500000 );
00552         }
00553 
00554         lastfound[name, 2] = ({});
00555     }
00556     return 1;
00557 }

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

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

nomask int ClearFP ( int  num,
string  pl 
)

Definiert in Zeile 768 der Datei explorationmaster.c.

Benutzt allowed, ep, MASTER und QueryMaxEP().

00769 {
00770   int maxEP;
00771   string ep;
00772   if (!allowed()) return -1;
00773   if ( num<0 ) return -3;
00774   if (!pl) return -2;
00775   ep = (MASTER->query_ep(pl) || "");
00776 
00777   maxEP = QueryMaxEP();
00778   if (num<0 || num>=maxEP) return -4;
00779   ep = clear_bit(ep, num);
00780   MASTER->update_ep(pl,ep);
00781   return num;
00782 }

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

void create (  ) 

Definiert in Zeile 44 der Datei explorationmaster.c.

Benutzt alloc, avg, bonus, cnt, EPSAVEFILE, lastfound, obs, querytime, restore_object(), save_object() und tipList.

00045 {
00046   seteuid(getuid(this_object()));
00047   tipList=([]);
00048   if (!restore_object(EPSAVEFILE)) {
00049     obs = ([]);
00050     cnt = avg = 0;
00051     alloc = " ";
00052     bonus = " ";
00053     tipList=([]);
00054     save_object(EPSAVEFILE);
00055   }
00056   if (!bonus) bonus=" ";
00057   lastfound=([]);
00058   querytime=([]);
00059 }

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

static void dumpEPObjects ( string *  doit  )  [static]

Definiert in Zeile 119 der Datei explorationmaster.c.

Benutzt bonus, call_out(), changed, DUMPFILE, dumping, dumpMap, EP_TYPES, i, id(), master, MPOS_NUM, MPOS_TYPE, obs, step() und strArr().

00120 {
00121   string *toGo, id;
00122   int i,j;
00123 
00124   if (!mappingp(dumpMap))
00125     dumpMap = ([]);
00126 
00127   toGo = 0;
00128   if (sizeof(doit) > 200) {
00129     toGo = doit[200..];
00130     doit = doit[0..199];
00131   }
00132 
00133   j = sizeof(doit);
00134 
00135   for (i=0; i<j; i++) {
00136     id = (string)master()->creator_file(doit[i]);
00137     if (member(dumpMap, id))
00138       dumpMap[id] += ({ doit[i] });
00139     else
00140       dumpMap += ([ id : ({ doit[i] }) ]);
00141   }
00142   if (toGo)
00143     call_out("dumpEPObjects", 1, toGo);
00144   else {
00145     int step;
00146 
00147     step = 0;
00148     id = "";
00149     toGo = sort_array(m_indices(dumpMap),#'> /*'*/ );
00150     for (i=0, j=sizeof(toGo); i<j; i++) {
00151       int k,l;
00152       doit = dumpMap[toGo[i]];
00153       id += sprintf("### %s %s\n", toGo[i], "#########################"[strlen(toGo[i])..]);
00154       for (k=0, l=sizeof(doit); k<l; k++) {
00155         id += sprintf("%s %4d %s %s.c ({ %s })\n",
00156                       EP_TYPES[obs[doit[k], MPOS_TYPE]],
00157                       obs[doit[k], MPOS_NUM],
00158                       test_bit(bonus,obs[doit[k], MPOS_NUM])?"b":"n",
00159                       doit[k],
00160                       strArr(obs[doit[k]]));
00161         if (!(++step % 50)) {
00162           write_file(DUMPFILE, id);
00163           id = "";
00164         }
00165       }
00166       id += "\n";
00167     }
00168     write_file(DUMPFILE,id);
00169     if (dumping == 2)
00170       write("Fertig! Anfrage bitte wiederholen.\n");
00171     dumping = 0;
00172     changed = 0;
00173     dumpMap = 0;
00174   }
00175 }

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

nomask mapping getFreeFPsForPlayer ( object  player  ) 

Definiert in Zeile 921 der Datei explorationmaster.c.

00922 {
00923        mapping freeFPs;
00924        string* indices;
00925        int i;
00926        
00927        freeFPs=([]);
00928        if(!allowed() || !player || !query_once_interactive(player)){
00929               return freeFPs;
00930        }
00931        
00932        freeFPs=copy(obs);
00933        indices=m_indices(freeFPs);
00934        i=sizeof(indices)-1;
00935        for(i;i>=0;i--){
00936               if(hasFP(player,indices[i])){
00937                      efun::m_delete(freeFPs,indices[i]);
00938               }
00939        }
00940        return freeFPs;
00941 }

static private string getMatch ( string  m  )  [static]

Definiert in Zeile 345 der Datei explorationmaster.c.

Benutzt bonus, EP_TYPES, i, MPOS_NUM, MPOS_TYPE, obs und strArr().

Wird benutzt von ShowEPObjects().

00346 {
00347   string *res;
00348   int i;
00349 
00350   res = regexp(sort_array(m_indices(obs), #'> /*'*/), m);
00351   for (i=sizeof(res)-1; i>=0; i--)
00352     res[i] = sprintf("%s %s %s.c ({ %s })",
00353                      EP_TYPES[obs[res[i], MPOS_TYPE]],
00354                      test_bit(bonus,obs[res[i], MPOS_NUM])?"b":"n",
00355                      res[i],
00356                      strArr(obs[res[i]]));
00357   return implode(res, "\n");
00358 }

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

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

static private string getMatchArch ( string  m  )  [static]

Definiert in Zeile 360 der Datei explorationmaster.c.

Benutzt bonus, EP_TYPES, i, MPOS_NUM, MPOS_TYPE, obs und strArr().

Wird benutzt von ShowEPObjects().

00361 {
00362   string *res;
00363   int i;
00364 
00365   res = regexp(sort_array(m_indices(obs), #'> /*'*/), m);
00366   for (i=sizeof(res)-1; i>=0; i--)
00367     res[i] = sprintf("%s %4d %s %s.c ({ %s })",
00368                      EP_TYPES[obs[res[i], MPOS_TYPE]],
00369                      obs[res[i], MPOS_NUM],
00370                      test_bit(bonus,obs[res[i], MPOS_NUM])?"b":"n",
00371                      res[i],
00372                      strArr(obs[res[i]]));
00373   return implode(res, "\n");
00374 }

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

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

public string getTip ( mixed  key  ) 

Definiert in Zeile 1014 der Datei explorationmaster.c.

01015 {
01016   string fn;
01017   string tip;
01018   string* path;
01019   
01020   if (!allowed())
01021     return "";
01022   
01023   if ((!objectp(key) && !stringp(key)))
01024     return "";
01025 
01026   if (objectp(key))
01027     fn=old_explode(object_name(key),"#")[0];
01028   else
01029     fn=old_explode(key,"#")[0];
01030   
01031   if(!member(obs,fn)) return "";
01032   
01033   tip=getTipFromList(fn);
01034   if(!tip || tip==""){
01035          path=old_explode(fn,"/");
01036          if(sizeof(path)<3) return "";
01037          if(path[0]=="players") return "Schau Dich doch mal bei "+capitalize(path[1])+" um.";
01038        
01039        if(path[0]=="d"){
01040               tip+="Schau Dich doch mal ";
01041               
01042               if(file_size("/players/"+path[2])==-2){
01043                      tip+="bei "+capitalize(path[2]+" ");
01044               }
01045               
01046               if(path[1]=="anfaenger")
01047                      tip+="in den Anfaengergebieten ";
01048               if(path[1]=="fernwest")
01049                      tip+="in Fernwest ";
01050               if(path[1]=="dschungel")
01051                      tip+="im Dschungel ";
01052               if(path[1]=="schattenwelt")
01053                      tip+="in der Welt der Schatten ";
01054               if(path[1]=="unterwelt")
01055                      tip+="in der Unterwelt ";
01056               if(path[1]=="gebirge")
01057                      tip+="im Gebirge ";
01058               if(path[1]=="seher")
01059                      tip+="bei den Sehergebieten ";
01060               if(path[1]=="vland")
01061                      tip+="auf dem Verlorenen Land ";
01062               if(path[1]=="ebene")
01063                      tip+="in der Ebene ";
01064               if(path[1]=="inseln")
01065                      tip+="auf den Inseln ";
01066               if(path[1]=="wald")
01067                      tip+="im Wald ";
01068               if(path[1]=="erzmagier")
01069                      tip+="bei den Erzmagiern ";
01070               if(path[1]=="polar")
01071                      tip+="im eisigen Polar ";
01072               if(path[1]=="wueste")
01073                      tip+="in der Wueste ";
01074               tip+="um.";
01075        }
01076   }
01077   return tip;
01078 }

static nomask string getTipFromList ( mixed  key  )  [static]

Definiert in Zeile 993 der Datei explorationmaster.c.

Wird benutzt von ChangeEPObject().

00994 {
00995   string fn;
00996   
00997   if (!allowed())
00998     return "";
00999   
01000   if ((!objectp(key) && !stringp(key)))
01001     return "";
01002 
01003   if (objectp(key))
01004     fn=old_explode(object_name(key),"#")[0];
01005   else
01006     fn=old_explode(key,"#")[0];
01007   
01008   if (!member(tipList, fn)) return "";
01009         
01010   return tipList[fn];  
01011 }

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

nomask int GiveExplorationPoint ( string  key  ) 

Definiert in Zeile 559 der Datei explorationmaster.c.

Benutzt check_to_fast(), ep, MASTER, obs, old_explode(), P_KILLS, QueryGuest() und QueryProp().

00560 {
00561   string fn;
00562   string ep;
00563   int gesetzt;
00564 
00565   if (!previous_object() || !this_interactive() || !this_player() ||
00566        this_player() != this_interactive() ||
00567        this_player()->QueryProp(P_KILLS) ||
00568        this_player()->QueryGuest()       )
00569     return 0;
00570 
00571   fn = old_explode(object_name(previous_object()), "#")[0];
00572 
00573   if (!member(obs, fn))
00574     return 0;
00575 
00576   if (member(obs[fn],key) < 0)
00577     return 0;
00578 
00579   ep = (MASTER->query_ep(getuid(this_interactive())) || "");
00580 
00581   gesetzt=test_bit(ep,obs[fn,1]);
00582   check_to_fast(getuid(this_player()),fn,gesetzt);
00583   if (gesetzt) return 0;
00584   
00585   catch(ep = set_bit(ep, obs[fn,1]));
00586 
00587   return (int)MASTER->update_ep(getuid(this_interactive()),ep);
00588 }

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

nomask int GiveExplorationPointObject ( string  key,
object  ob 
)

Definiert in Zeile 590 der Datei explorationmaster.c.

Benutzt check_to_fast(), ep, MASTER, obs, old_explode() und P_KILLS.

00591 {
00592   string fn;
00593   string ep;
00594   int gesetzt;
00595   
00596   if (!objectp(ob) || ob->QueryProp(P_KILLS ))
00597     return 0;
00598 
00599   fn = old_explode(object_name(previous_object()), "#")[0];
00600 
00601   if (!member(obs, fn))
00602     return 0;
00603 
00604   if (member(obs[fn],key) < 0)
00605     return 0;
00606 
00607   ep = (MASTER->query_ep(getuid(ob)) || "");
00608 
00609   gesetzt=test_bit(ep,obs[fn,1]);
00610   check_to_fast(getuid(this_player()),fn,gesetzt);
00611   if (gesetzt) return 0;
00612 
00613   catch(ep = set_bit(ep, obs[fn,1]));
00614 
00615   return (int)MASTER->update_ep(getuid(ob),ep);
00616 }

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

nomask string giveTipForPlayer ( object  player  ) 

Definiert in Zeile 1162 der Datei explorationmaster.c.

01163 {
01164   string* tmp;
01165   mapping free;
01166   string* tips;
01167   string tip,pl,fptip;
01168   int i,index;
01169   
01170   if(!allowed() || !player || !query_once_interactive(player) || !playerMayGetTip(player))
01171          return "";
01172   
01173   pl=getuid(player);
01174   free=getFreeFPsForPlayer(player);
01175   if(!free || sizeof(free)==0)
01176          return "";
01177 
01178   tmp=m_indices(free);
01179   fptip=MASTER->query_fptips(pl) || "";
01180   tips=makeTiplistFromBitString(fptip);
01181   if(tips==0)
01182          tips=({});
01183   tmp-=tips;
01184   if(sizeof(tmp)==0)
01185          return "";
01186 
01187   i=FPTIPS_MAX_RETRY;
01188   while(i>0){
01189          i--;
01190        index=random(sizeof(tmp));
01191        tip=getTip(tmp[index]);
01192        if(tip!=""){
01193               i=0;
01194               fptip=set_bit(fptip,obs[tmp[index],MPOS_NUM]);
01195               MASTER->update_fptips(pl,fptip);
01196        }
01197        tmp-=({tmp[index]});
01198   }
01199   tips=makeTiplistFromBitString(fptip);
01200   return tip;
01201   
01202 }

nomask status hasFP ( object  player,
string  key 
)

Definiert in Zeile 907 der Datei explorationmaster.c.

00908 {
00909   string ep;
00910   
00911   if(!allowed() || !player || !query_once_interactive(player) || !key || !member(obs,key)){
00912        return -1;
00913   }
00914   
00915   ep = (MASTER->query_ep(getuid(player)) || "");
00916 
00917   return test_bit(ep,obs[key,1]);
00918        
00919 }

nomask void make_stat (  ) 

Definiert in Zeile 74 der Datei explorationmaster.c.

Benutzt call_out(), EPSTAT_INFO, file_time(), MAKE_EPSTAT und stat_done.

Wird benutzt von reset().

00075 {
00076   if (stat_done)
00077     return;
00078 
00079   stat_done = 1;
00080 
00081   if (file_size(EPSTAT_INFO) <= 0 || file_size(MAKE_EPSTAT ".c") <= 0)
00082     return;
00083 
00084   // Falls das Skript noch roedelt...
00085   if (file_time(EPSTAT_INFO)+1800 > time())
00086     call_out("make_stat", 1800);
00087   else
00088     catch(load_object(MAKE_EPSTAT);publish);
00089   return;
00090 }

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

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

static nomask string* makeTiplistFromBitString ( string  bitstr  )  [static]

Definiert in Zeile 1080 der Datei explorationmaster.c.

01081 {
01082        string* ret;
01083        string* keys;
01084        int* nums;
01085        int i,tmp;
01086        string key;
01087        
01088        keys=m_indices(obs);
01089        nums=({});
01090        for(i=0;i<sizeof(keys);i++){
01091               nums+=({obs[keys[i],MPOS_NUM]});
01092        }
01093        
01094        ret=({});
01095     for (i=6*strlen(bitstr)-1;i>0;i--){
01096       if (test_bit(bitstr,i)){
01097              key=0;
01098              tmp=member(nums,i);
01099              if(tmp!=-1){
01100                     key=keys[tmp];
01101              }
01102               if(key) ret+=({key});
01103       }
01104     }
01105        
01106        return ret;
01107 }

string NotifyDestruct ( object  caller  ) 

Definiert in Zeile 1205 der Datei explorationmaster.c.

01205                                      {
01206     if( (caller!=this_object() && !ARCH_SECURITY) || process_call() ) {
01207       return "Du darfst den Exploration Master nicht zerstoeren!\n";
01208     }
01209 }

nomask status playerMayGetTip ( object  player  ) 

Definiert in Zeile 1132 der Datei explorationmaster.c.

01133 {
01134        int numElegible;
01135        int numReceived;
01136        int lvl;
01137        int i;
01138        string tips;
01139        
01140     if(!allowed() || !player || !query_once_interactive(player))
01141              return 0;
01142 
01143        if(!player || !query_once_interactive(player))
01144               return 0;
01145        lvl=(int)player->QueryProp(P_LEVEL);
01146        numElegible=0;
01147        i=sizeof(FPTIPS_LEVEL_LIMITS)-1;
01148 
01149        if(lvl>FPTIPS_LEVEL_LIMITS[i])
01150               numElegible+=(lvl-FPTIPS_LEVEL_LIMITS[i]);
01151 
01152        for(i;i>=0;i--){
01153               if(lvl>=FPTIPS_LEVEL_LIMITS[i]) numElegible++;
01154        }
01155        
01156        tips=MASTER->query_fptips(getuid(player)) || ""; 
01157        numReceived=count_bits(tips);
01158 
01159        return numElegible>numReceived;
01160 }

nomask void PrepareVCQuery ( string  file  ) 

Definiert in Zeile 460 der Datei explorationmaster.c.

Benutzt path und vc_ob.

00461 {
00462   string path, *parts;
00463 
00464   vc_ob = 0;
00465 
00466   if (!previous_object() || !stringp(file))
00467     return;
00468 
00469   parts = explode(object_name(previous_object()),"/");
00470 
00471   if (parts[<1] == "virtual_compiler") {
00472     path = implode(parts[0..<2]+({ file }), "/");
00473     if (file_size(path+".c") < 0)
00474       vc_ob = path;
00475   }
00476 }

static private void printep ( int  nr,
string  key,
int  kind,
string *  det 
) [static]

Definiert in Zeile 784 der Datei explorationmaster.c.

Benutzt bonus, EP_TYPES, output und strArr().

00785 {
00786   output+=sprintf("%4d %s %s.c %s ({ %s })\n",nr,test_bit(bonus,nr)?"b":"n",key,EP_TYPES[kind],
00787                 strArr(det));
00788 }

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

public nomask int query_prevent_shadow (  ) 

Definiert in Zeile 61 der Datei explorationmaster.c.

00062 {
00063     return 1;
00064 }

nomask int QueryAverage (  ) 

Definiert in Zeile 500 der Datei explorationmaster.c.

Benutzt avg.

00501 {
00502   return (avg||1);
00503 }

nomask mixed QueryEPObject ( object  ob  ) 

Definiert in Zeile 329 der Datei explorationmaster.c.

Benutzt allowed, bonus, EPERR_INVALID_OB, EPERR_NOT_ARCH, MPOS_NUM, MPOS_TYPE, obs und validOb().

00330 {
00331   string fn;
00332 
00333   if (!allowed())
00334     return EPERR_NOT_ARCH;
00335 
00336   if (!(fn = validOb(ob)))
00337     return EPERR_INVALID_OB;
00338 
00339   if (!member(obs, fn))
00340     return 0;
00341 
00342   return ({ obs[fn], obs[fn,MPOS_NUM], obs[fn, MPOS_TYPE], test_bit(bonus,obs[fn, MPOS_NUM]) });
00343 }

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

nomask int QueryExplorationPoints ( mixed  pl  ) 

Definiert in Zeile 624 der Datei explorationmaster.c.

Benutzt allowed, ep, QueryRealExplorationPoints() und querytime.

00625 {
00626   mixed val;
00627   int ep;
00628 
00629   if (!stringp(pl)) pl=getuid(pl);
00630   ep=QueryRealExplorationPoints(pl);
00631 
00632   if (allowed() || !ep) return ep;
00633 
00634   val=querytime[pl];
00635 
00636   if (!pointerp(val) || sizeof(val)<2)
00637     val=({0,time()});
00638 
00639   if (time()>=val[1]) {
00640     val = ({ ep + random(6)-3, time()+300+random(300) });
00641     if (val[0]<0) val[0]=0;
00642     querytime+=([pl:val]);
00643   }
00644   return val[0];
00645 }

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

nomask mixed* QueryExplore (  ) 

Definiert in Zeile 478 der Datei explorationmaster.c.

Benutzt MPOS_TYPE, obs, old_explode() und vc_ob.

00479 {
00480   string fn;
00481 
00482   if (!previous_object())
00483     return 0;
00484 
00485   if (!member(obs, fn = old_explode(object_name(previous_object()),"#")[0]))
00486     if (!vc_ob || !member(obs, fn = vc_ob)) {
00487       vc_ob = 0;
00488       return 0;
00489     }
00490 
00491   vc_ob = 0;
00492   return ({ obs[fn, MPOS_TYPE], obs[fn] });
00493 }

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

string QueryForschung (  ) 

Definiert in Zeile 820 der Datei explorationmaster.c.

00821 {
00822   int max, my, avg;
00823   string ret;
00824 
00825   if ((my=QueryRealExplorationPoints(getuid(previous_object()))) < MIN_EP)
00826     return "Du kennst Dich im "MUDNAME" so gut wie gar nicht aus.\n";
00827 
00828   my *= 100;
00829   max = my/QueryMaxEP();
00830   avg = my/QueryAverage();
00831 
00832   ret = "Verglichen mit Deinen Mitspielern, kennst Du Dich im "MUDNAME" ";
00833   switch(avg) {
00834   case 0..10:
00835     ret += "kaum";
00836     break;
00837   case 11..40:
00838     ret += "aeusserst schlecht";
00839     break;
00840   case 41..56:
00841     ret += "sehr schlecht";
00842     break;
00843   case 57..72:
00844     ret += "schlecht";
00845     break;
00846   case 73..93:
00847     ret += "unterdurchschnittlich";
00848     break;
00849   case 94..109:
00850     ret += "durchschnittlich gut";
00851     break;
00852   case 110..125:
00853     ret += "besser als der Durchschnitt";
00854     break;
00855   case 126..145:
00856     ret += "recht gut";
00857     break;
00858   case 146..170:
00859     ret += "ziemlich gut";
00860     break;
00861   case 171..210:
00862     ret += "gut";
00863     break;
00864   case 211..300:
00865     ret += "sehr gut";
00866     break;
00867   case 301..400:
00868     ret += "ausserordentlich gut";
00869     break;
00870   case 401..500:
00871     ret += "unheimlich gut";
00872     break;
00873   default:
00874     ret += "einfach hervorragend";
00875     break;
00876   }
00877   ret += " aus.\nAbsolut gesehen ";
00878 
00879   switch(max) {
00880   case 0..5:
00881     ret += "kennst Du nur wenig vom "MUDNAME".";
00882     break;
00883   case 6..10:
00884     ret += "solltest Du Dich vielleicht noch genauer umsehen.";
00885     break;
00886   case 11..17:
00887     ret += "bist Du durchaus schon herumgekommen.";
00888     break;
00889   case 18..25:
00890     ret += "hast Du schon einiges gesehen.";
00891     break;
00892   case 26..35:
00893     ret += "bist Du schon weit herumgekommen.";
00894     break;
00895   case 36..50:
00896     ret += "koenntest Du eigentlich einen Reisefuehrer herausbringen.";
00897     break;
00898   case 51..75:
00899     ret += "hast Du schon sehr viel gesehen.";
00900     break;
00901   default:
00902     ret += "besitzt Du eine hervorragende Ortskenntnis.";
00903   }
00904   return break_string(ret, 78, 0, 1);
00905 }

nomask int QueryLEP ( int  lep  ) 

Definiert in Zeile 814 der Datei explorationmaster.c.

00814                              {
00815     raise_error("Bitte QueryLEP() im LEPMASTER abfragen, nicht im "
00816        "EPMASTER!");
00817     return(-1); //never reached
00818 }

nomask int QueryMaxEP (  ) 

Definiert in Zeile 495 der Datei explorationmaster.c.

Benutzt cnt.

Wird benutzt von add_fp(), ClearFP(), remove_fp() und SetFP().

00496 {
00497   return (cnt||1);
00498 }

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

static private int QueryRealExplorationPoints ( string  pl  )  [static]

Definiert in Zeile 619 der Datei explorationmaster.c.

Benutzt count_bits() und MASTER.

Wird benutzt von QueryExplorationPoints().

00620 {
00621   return count_bits(MASTER->query_ep(pl) || " ");
00622 }

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

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

nomask int remove (  ) 

Definiert in Zeile 66 der Datei explorationmaster.c.

Benutzt destruct(), EPSAVEFILE und save_object().

00067 {
00068   save_object(EPSAVEFILE);
00069   destruct(this_object());
00070   return 1;
00071 }

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

static private int remove_fp ( int  num,
string  pl 
) [static]

Definiert in Zeile 647 der Datei explorationmaster.c.

Benutzt ep, i, MASTER und QueryMaxEP().

Wird benutzt von RemoveFP().

00648 {
00649   int i,j,k,t,maxEP;
00650   string ep;
00651   ep = (MASTER->query_ep(pl) || "");
00652 
00653   maxEP = QueryMaxEP();
00654   for( i=0; i<num; i++)
00655   {
00656     t = random(maxEP);
00657     for( j=0; j<maxEP; j++ ) {
00658       if( test_bit(ep, k=(t+j)%maxEP ) ) break;
00659     }
00660     if( j==maxEP ) break;
00661     ep = clear_bit(ep, k);
00662   }
00663   MASTER->update_ep(pl,ep);
00664   return i;
00665 }

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

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

nomask int RemoveEPObject ( object  ob  ) 

Definiert in Zeile 249 der Datei explorationmaster.c.

Benutzt alloc, allowed, bonus, changed, cnt, EPERR_INVALID_OB, EPERR_NO_ENTRY, EPERR_NOT_ARCH, EPSAVEFILE, m_delete(), MPOS_NUM, obs, old_explode(), removeTip() und save_object().

00250 {
00251   string fn;
00252 
00253   if (!allowed())
00254     return EPERR_NOT_ARCH;
00255 
00256   if (!objectp(ob))
00257     return EPERR_INVALID_OB;
00258 
00259   fn = old_explode(object_name(ob),"#")[0];
00260   if (!member(obs,fn))
00261     return EPERR_NO_ENTRY;
00262 
00263   alloc = clear_bit(alloc, obs[fn, MPOS_NUM]);
00264   bonus = clear_bit(bonus, obs[fn, MPOS_NUM]);
00265 
00266   obs = m_delete(obs, fn);
00267   removeTip(fn);
00268   changed = 1;
00269   cnt--;
00270   save_object(EPSAVEFILE);
00271   return cnt;
00272 }

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

nomask int RemoveFP ( int  num,
string  pl,
string  grund 
)

Definiert in Zeile 680 der Datei explorationmaster.c.

Benutzt allowed, break_string(), ctime(), dtime(), i, log_file, MSG_BCC, MSG_BODY, MSG_CC, MSG_DATE, MSG_FROM, MSG_ID, MSG_RECIPIENT, MSG_SENDER, MSG_SUBJECT, MUDNAME, Name(), remove_fp(), text() und WER.

00681 {
00682   int i;
00683   string text;
00684   mixed* mail;
00685 
00686   if (!allowed()) return -1;
00687   if( num<0 ) return -3;
00688   if (!grund || grund=="") grund="<unbekannt>";
00689   if (!pl) return -2;
00690   i=remove_fp(num, pl);
00691   log_file("ARCH/fp_strafen", ctime(time())+": "
00692     +this_interactive()->Name(WER)+" loescht "+pl+" "+i
00693     +" FPs\nGrund:"+grund+"\n");
00694   if( i>0 ) {
00695      text =
00696      "Hallo "+capitalize(pl)+",\n\n"+
00697      break_string(
00698       this_interactive()->Name(WER)+" hat soeben veranlasst, dass Dir "+i
00699       +" FPs abgezogen wurden.\nGrund:"+grund+"\n", 78 );
00700 
00701      mail = allocate(9);
00702      mail[MSG_FROM] = getuid(this_interactive());
00703      mail[MSG_SENDER] = MUDNAME;
00704      mail[MSG_RECIPIENT] = pl;
00705      mail[MSG_CC]=0;
00706      mail[MSG_BCC]=0;
00707      mail[MSG_SUBJECT]="FP-Reduktion";
00708      mail[MSG_DATE]=dtime(time());
00709      mail[MSG_ID]=MUDNAME":"+time();
00710      mail[MSG_BODY]=text;
00711 
00712      "/secure/mailer"->DeliverMail(mail,1);
00713   }
00714   return i;
00715 }

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

public int removeTip ( mixed  key  ) 

Definiert in Zeile 970 der Datei explorationmaster.c.

Wird benutzt von ChangeEPObject(), LiquidateEK() und RemoveEPObject().

00971 {
00972   string fn;
00973   
00974   if (!allowed())
00975     return EPERR_NOT_ARCH;
00976   
00977   if ((!objectp(key) && !stringp(key)))
00978     return EPERR_INVALID_ARG;
00979 
00980   if (objectp(key))
00981     fn=old_explode(object_name(key),"#")[0];
00982   else
00983     fn=old_explode(key,"#")[0];
00984   
00985   if (!member(tipList, fn)) return EPERR_INVALID_ARG;
00986     
00987   efun::m_delete(tipList,fn);
00988   save_object(EPSAVEFILE);
00989     
00990   return 1;  
00991 }

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

void reset ( void   ) 

Definiert in Zeile 92 der Datei explorationmaster.c.

Benutzt call_out(), changed, DUMPFILE, dumping, make_stat(), obs und stat_done.

00093 {
00094   if (changed && !dumping) {
00095     catch(rm(DUMPFILE);publish);
00096     dumping = 1;
00097     call_out("dumpEPObjects", 0, sort_array(m_indices(obs),#'> /*'*/));
00098   }
00099   if (time()%86400 < 4000)
00100     stat_done = 0;
00101 
00102   make_stat();
00103 
00104   changed = 0;
00105 }

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

nomask int SetAverage ( int  x  ) 

Definiert in Zeile 505 der Datei explorationmaster.c.

Benutzt avg, EPSAVEFILE, ROOTID und save_object().

00506 {
00507   if (getuid(previous_object()) == ROOTID) {
00508     avg = x;
00509     save_object(EPSAVEFILE);
00510   }
00511   return avg;
00512 }

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

nomask int SetFP ( int  num,
string  pl 
)

Definiert in Zeile 752 der Datei explorationmaster.c.

Benutzt allowed, ep, MASTER und QueryMaxEP().

00753 {
00754   int maxEP;
00755   string ep;
00756   if (!allowed()) return -1;
00757   if ( num<0 ) return -3;
00758   if (!pl) return -2;
00759   ep = (MASTER->query_ep(pl) || "");
00760 
00761   maxEP = QueryMaxEP();
00762   if (num<0 || num>=maxEP) return -4;
00763   ep = set_bit(ep, num);
00764   MASTER->update_ep(pl,ep);
00765   return num;
00766 }

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

nomask varargs void ShowEPObjects ( string  what,
string  magname 
)

Definiert in Zeile 400 der Datei explorationmaster.c.

Benutzt allowed, call_out(), ctime(), domain_master(), DUMPFILE, dumping, getMatch(), getMatchArch(), IS_LORD, log_file, master und obs.

00401 {
00402   if (allowed()) {
00403     if (what == "dump") {
00404       if (!dumping) {
00405         dumping = 2;
00406         catch(rm(DUMPFILE);publish);
00407         call_out("dumpEPObjects", 0, sort_array(m_indices(obs),#'>/*'*/));
00408       }
00409       printf("Liste wird erstellt und in '%s' abgelegt!\n", DUMPFILE);
00410       return;
00411     }
00412     if (!what || what == "") {
00413       this_interactive()->More(DUMPFILE, 1);
00414       log_file("ARCH/EPZugriffe", ctime(time())+": "+
00415         capitalize(getuid(this_interactive()))+" schaute sich das DUMPFILE an.\n");
00416       return;
00417     }
00418     what="/"+what+"/";
00419     if (magname) what+=magname+"/";
00420   }
00421   else
00422 #ifdef DOMAIN_INFO
00423     if (IS_LORD(this_interactive())) {
00424       if (!what || what == "")
00425        what = "/"+getuid(this_interactive())+"/";
00426       else {
00427        if (!master()->domain_master(getuid(this_interactive()), what)) {
00428          write("Sorry, Du kannst nur Objekte in Deiner eigenen Region abfragen!\n");
00429          return;
00430        }
00431        if (!magname || magname=="")
00432          magname = getuid(this_interactive());
00433 //        if (!master()->domain_member(magname, what)) {
00434 //         write(capitalize(magname)+" ist gar kein Mitarbeiter in Deiner Region!\n");
00435 //          return;
00436 //       }
00437        what = "/d/"+what+"/"+magname+"/";
00438       }
00439     }
00440     else
00441 #endif
00442       {
00443        if (!what || what == "")
00444          what = getuid(this_interactive());
00445        else if (what != getuid(this_interactive())) {
00446          write("Sorry, Du kannst nur Deine eigenen Objekte abfragen!\n");
00447          return;
00448        }
00449        what="/"+what+"/";
00450       }
00451   if (allowed())
00452     this_interactive()->More(getMatchArch(what));
00453   else
00454     this_interactive()->More(getMatch(what));
00455   log_file("ARCH/EPZugriffe", ctime(time())+": "+
00456     capitalize(getuid(this_interactive()))+" schaute sich "+what+" an.\n");
00457   return;
00458 }

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

nomask varargs int ShowPlayerEPs ( string  pl,
string  pattern 
)

Definiert in Zeile 790 der Datei explorationmaster.c.

Benutzt allowed, ep, MASTER, obs und output.

00791 {
00792   string ep,teststring;
00793   if (!allowed()) return -1;
00794   ep = (MASTER->query_ep(pl) || "");
00795 
00796   output="";
00797   if (!pattern || pattern=="")
00798     teststring="%s";
00799   else teststring="%s"+pattern+"%s";
00800   walk_mapping( obs, lambda( ({ 'key, 'v1, 'v2, 'v3 }),
00801                           // v1 -- details, v2 -- Nummer, v3 -- art
00802                           // key -- Filename
00803                           ({ #'if, ({ #'test_bit, ep, 'v2 }),
00804                           ({#'if,({#'sscanf,'key,teststring,'v4,'v5}),
00805                           ({ #'printep, 'v2, 'key, 'v3, 'v1 })
00806                           }) }) ));
00807   this_interactive()->More(output);
00808   return 1;
00809 }

static private string strArr ( string *  s  )  [static]

Definiert in Zeile 107 der Datei explorationmaster.c.

Benutzt i.

Wird benutzt von dumpEPObjects(), getMatch(), getMatchArch() und printep().

00108 {
00109   string ret;
00110   int i;
00111 
00112   ret = ("\""+s[<1]+"\"");
00113   for (i=sizeof(s)-2; i>=0; i--)
00114     ret += (", \""+s[i]+"\"");
00115 
00116   return ret;
00117 }

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

static private string validOb ( mixed  ob  )  [static]

Definiert in Zeile 177 der Datei explorationmaster.c.

Benutzt old_explode().

Wird benutzt von AddEPObject(), ChangeEPObject() und QueryEPObject().

00178 {
00179   string fn, fpart;
00180 
00181   if (!objectp(ob))
00182     return 0;
00183 
00184   fn = old_explode(object_name(ob),"#")[0];
00185   fpart = old_explode(fn,"/")[<1];
00186  /*
00187   if (query_once_interactive(ob))
00188     return 0;
00189 
00190   if ((file_size(fn+".c") <= 0) &&
00191       this_player() &&
00192       (strstr(fpart, getuid(this_player())) >= 0))
00193     return 0;
00194  */
00195   return fn;
00196 }

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

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


Variablen-Dokumentation

private string alloc

Definiert in Zeile 28 der Datei explorationmaster.c.

Wird benutzt von AddEPObject(), create() und RemoveEPObject().

private int avg

Definiert in Zeile 27 der Datei explorationmaster.c.

Wird benutzt von create(), QueryAverage(), QueryForschung() und SetAverage().

private string bonus
private int changed [static]
private int cnt
private int dumping [static]

Definiert in Zeile 34 der Datei explorationmaster.c.

Wird benutzt von dumpEPObjects(), reset() und ShowEPObjects().

private mapping dumpMap [static]

Definiert in Zeile 35 der Datei explorationmaster.c.

Wird benutzt von dumpEPObjects().

private mapping lastfound [static]

Definiert in Zeile 35 der Datei explorationmaster.c.

Wird benutzt von check_to_fast() und create().

private mapping obs
private string output [static]

Definiert in Zeile 31 der Datei explorationmaster.c.

private mapping querytime [static]

Definiert in Zeile 35 der Datei explorationmaster.c.

Wird benutzt von create() und QueryExplorationPoints().

private int stat_done [static]

Definiert in Zeile 37 der Datei explorationmaster.c.

Wird benutzt von make_stat() und reset().

private mapping tipList

Definiert in Zeile 26 der Datei explorationmaster.c.

Wird benutzt von addTip(), create(), getTipFromList() und removeTip().

private string vc_ob [static]

Definiert in Zeile 30 der Datei explorationmaster.c.

Wird benutzt von PrepareVCQuery() und QueryExplore().

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