#include <config.h>#include <wizlevels.h>#include <exploration.h>#include <properties.h>#include <new_skills.h>
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 |
| #define DOMAIN_INFO 1 |
Definiert in Zeile 23 der Datei explorationmaster.c.
| #define MSG_BCC 4 |
Definiert in Zeile 674 der Datei explorationmaster.c.
Wird benutzt von bestaetigen(), DeliverMail(), doReadMail(), end_query(), RemoveFP(), send_mail(), SendMail(), update() und versende_mail().
| #define MSG_BODY 8 |
Definiert in Zeile 678 der Datei explorationmaster.c.
Wird benutzt von bestaetigen(), DeliverMail(), doReadMail(), end_query(), Forward(), mailread(), Message2string(), RemoveFP(), Reply(), send_mail(), SendMail(), update() und versende_mail().
| #define MSG_CC 3 |
Definiert in Zeile 673 der Datei explorationmaster.c.
Wird benutzt von bestaetigen(), DeliverMail(), doReadMail(), end_query(), Message2string(), RemoveFP(), Reply(), send_mail(), SendMail(), update() und versende_mail().
| #define MSG_DATE 6 |
Definiert in Zeile 676 der Datei explorationmaster.c.
Wird benutzt von bestaetigen(), end_query(), ListContent(), Message2string(), RemoveFP(), send_mail(), SendMail() und versende_mail().
| #define MSG_FROM 0 |
Definiert in Zeile 670 der Datei explorationmaster.c.
Wird benutzt von bestaetigen(), DeliverMail(), doReadMail(), end_query(), Forward(), ListContent(), mailread(), Message2string(), RemoveFP(), Reply(), send_mail(), SendMail(), update() und versende_mail().
| #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 |
Definiert in Zeile 672 der Datei explorationmaster.c.
Wird benutzt von bestaetigen(), DeliverMail(), doReadMail(), end_query(), mailread(), Message2string(), RemoveFP(), Reply(), send_mail(), SendMail(), update() und versende_mail().
| #define MSG_SENDER 1 |
Definiert in Zeile 671 der Datei explorationmaster.c.
Wird benutzt von bestaetigen(), DeliverMail(), doReadMail(), end_query(), mailread(), Message2string(), RemoveFP(), send_mail(), SendMail() und versende_mail().
| #define MSG_SUBJECT 5 |
Definiert in Zeile 675 der Datei explorationmaster.c.
Wird benutzt von bestaetigen(), DeliverMail(), doReadMail(), end_query(), Forward(), ListContent(), mailread(), Message2string(), RemoveFP(), Reply(), send_mail(), SendMail(), update() und versende_mail().
| 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 }


| 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 }

| 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 }

| 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 }

| 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 }

| 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 }

| 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 }

| 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 }


| 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 }

| 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 }

| 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 }

| 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 }


| 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 }


| 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 }

| 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 }

| 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 }

| 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.
| 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 }


| 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.
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] |
| public nomask int query_prevent_shadow | ( | ) |
Definiert in Zeile 61 der Datei explorationmaster.c.
| 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 }

| 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 }

| 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 }

| 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.
| 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 }

| 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 }


| 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 }

| 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 }


| 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 }

| 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 }

| 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 }

| 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 }

| 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 }

| 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 }

| 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 }

| 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 }

| 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 }


| 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 |
Definiert in Zeile 28 der Datei explorationmaster.c.
Wird benutzt von add(), AddEPObject(), ChangeEPObject(), create(), dumpEPObjects(), getMatch(), getMatchArch(), printep(), QueryEPObject() und RemoveEPObject().
private int changed [static] |
Definiert in Zeile 33 der Datei explorationmaster.c.
Wird benutzt von AddEPObject(), ChangeEPObject(), check_player(), DoChangeRow(), dumpEPObjects(), RemoveEPObject() und reset().
| private int cnt |
Definiert in Zeile 27 der Datei explorationmaster.c.
Wird benutzt von AddEPObject(), create(), deep_present(), DoDrink(), GuildRating(), ParseAdverb(), parseText(), QueryMaxEP(), RemoveEPObject() und XFindObj().
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 |
Definiert in Zeile 25 der Datei explorationmaster.c.
Wird benutzt von __find_objects(), AddEPObject(), AssocMember(), ChangeEPObject(), create(), DeAssocMember(), DeepQueryMoney(), DeepTransferMoney(), destruct_object(), DoChangeRow(), doit(), doone(), drop_objects(), dumpEPObjects(), find_best_combat_command(), getMatch(), getMatchArch(), give_objects(), GiveExplorationPoint(), GiveExplorationPointObject(), GoblinCmdWaaagh(), HasShip(), InsertEnemyTeam(), kkwho(), maximize_prop_filt(), maybe_own_stuff(), minimize_prop_filt(), pick_objects(), player_filt(), present_objects(), PresentTeamPositions(), put_objects(), QueryEPObject(), QueryExplore(), RemoveEPObject(), renew_player_object(), reset(), scan_objects(), select_enemy_max_prop(), select_enemy_min_prop(), sell(), show_objects(), ShowEPObjects(), ShowPlayerEPs(), ShowTeamRows(), soft_destruct_object(), SuggestArticle(), team_list() und TryGlobalAttackSpell().
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().
1.6.3