#include <properties.h>#include <wizlevels.h>#include <language.h>
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | ME this_object() |
Funktionen | |
| static int | is_in (object ob, mixed x) |
| static int | is_at (object ob, mixed x) |
| static int | is_wiz_level_lt (object ob, mixed x) |
| static int | is_wiz_level_ge (object ob, mixed x) |
| static int | is_prop_set (object ob, mixed x) |
| static int | is_second (object ob, mixed x) |
| static int | is_mage_second (object ob) |
| static int | is_in_gilde (object ob, mixed x) |
| static int | is_in_team (object ob, mixed x) |
| static int | is_name_in (object ob, mixed x) |
| static int | is_in_region (object ob, mixed x) |
| static int | is_region_member (object ob, mixed x) |
| static int | is_region_master (object ob, mixed x) |
| static int | is_guild_master (object ob, mixed x) |
| static int | is_gender (object ob, mixed x) |
| static int | is_race (object ob, mixed x) |
| static int | is_unmarried (object ob) |
| static int | is_idle (object ob, mixed x) |
| static int | is_hc (object ob) |
| static int | is_ghost (object ob) |
| static int | uses_ssl (object ob) |
| protected int | is_active_guide (object ob) |
| object * | filter_users (string str) |
Variablen | |
| private nosave mapping | guild_aliases |
| #define ME this_object() |
Definiert in Zeile 17 der Datei user_filter.c.
| object* filter_users | ( | string | str | ) |
Definiert in Zeile 174 der Datei user_filter.c.
Benutzt ARCH_LVL, FEMALE, find_living(), find_player(), GOD_LVL, guild_aliases, i, LEARNER_LVL, MALE, ME, old_explode(), P_AWAY, P_FROG, SEER_LVL und x.
Wird benutzt von kkwho() und QueryWhoListe().
00175 { 00176 object *res, *orig, *zwi; 00177 string *words; 00178 int i, sz, f, l,t; 00179 mixed x; 00180 00181 orig = users(); 00182 00183 if (!str) 00184 return orig; 00185 00186 res = ({}); 00187 words = old_explode( lower_case(str), " " ); 00188 sz = sizeof(words); 00189 00190 for ( i = 0; i < sz; i++ ){ 00191 zwi = ({}); 00192 00193 switch (words[i]) { 00194 case "ausser": 00195 case "ohne": 00196 case "nicht": 00197 f=-1; 00198 if (!i) res=orig; 00199 continue; 00200 00201 case "oder": 00202 f=0; 00203 continue; 00204 00205 case "und": 00206 f=1; 00207 continue; 00208 00209 case "alle": 00210 zwi = orig; 00211 break; 00212 00213 case "in": 00214 case "aus": 00215 if ( ++i >= sz ) 00216 break; 00217 zwi = filter( orig, "is_in", ME, words[i] ); 00218 break; 00219 00220 case "region": 00221 if ( ++i >= sz ) 00222 break; 00223 zwi = filter( orig, "is_in_region", ME, "/d/" + words[i] ); 00224 break; 00225 00226 case "mitarbeiter": 00227 case "regionsmitarbeiter": 00228 if ( ++i >= sz ) 00229 break; 00230 zwi = filter( orig, "is_region_member", ME, words[i] ); 00231 break; 00232 00233 case "regionsmagier": 00234 if ( ++i >= sz ) 00235 break; 00236 zwi = filter( orig, "is_region_master", ME, words[i] ); 00237 break; 00238 00239 case "gildenmagier": 00240 if ( ++i >= sz ) 00241 break; 00242 zwi = filter (orig, "is_guild_master", ME, words[i] ); 00243 break; 00244 00245 case "gilde": 00246 if ( ++i >= sz ) 00247 break; 00248 zwi = filter( orig, "is_in_gilde", ME, 00249 guild_aliases[words[i]] || words[i] ); 00250 break; 00251 00252 case "team": 00253 if ( ++i >= sz ) 00254 break; 00255 zwi = filter( orig, "is_in_team", ME, 00256 lower_case("team " + words[i]) ); 00257 break; 00258 00259 case "bei": 00260 if ( ++i >= sz ) 00261 break; 00262 if ( !objectp(x = find_player(words[i]) ) && 00263 !objectp(x = find_living(words[i])) ) 00264 break; 00265 if ( x->QueryProp(P_INVIS) ) 00266 break; 00267 zwi = filter( orig, "is_at", ME, environment(x) ); 00268 break; 00269 00270 case "goetter": 00271 zwi = filter( orig, "is_wiz_level_ge", ME, GOD_LVL ); 00272 break; 00273 00274 case "erzmagier": 00275 case "erzi": 00276 case "erzis": 00277 zwi = filter( orig, "is_wiz_level_ge", ME, ARCH_LVL ); 00278 break; 00279 00280 case "magier": 00281 zwi = filter( orig, "is_wiz_level_ge", ME, LEARNER_LVL ); 00282 break; 00283 00284 case "spieler": 00285 zwi = filter( orig, "is_wiz_level_lt", ME, SEER_LVL ); 00286 break; 00287 00288 case "seher": 00289 zwi = filter( filter( orig, "is_wiz_level_lt", ME, 00290 LEARNER_LVL), 00291 "is_wiz_level_ge", ME, SEER_LVL ); 00292 break; 00293 00294 case "maennlich": 00295 zwi = filter( orig, "is_gender", ME, MALE ); 00296 break; 00297 00298 case "weiblich": 00299 zwi = filter( orig, "is_gender", ME, FEMALE ); 00300 break; 00301 00302 case "ledig": 00303 zwi = filter( orig, "is_unmarried" ); 00304 break; 00305 00306 case "ssl": 00307 case "stunnel": 00308 zwi = filter(orig,"uses_ssl"); 00309 break; 00310 00311 case "hardcore": 00312 zwi = filter( orig, "is_hc" ); 00313 break; 00314 00315 case "geist": 00316 case "tot": 00317 zwi = filter( orig, "is_ghost" ); 00318 break; 00319 00320 case "mensch": 00321 zwi = filter( orig, "is_race", ME, "Mensch" ); 00322 break; 00323 00324 case "zwerg": 00325 zwi = filter( orig, "is_race", ME, "Zwerg" ); 00326 break; 00327 00328 case "elf": 00329 zwi = filter( orig, "is_race", ME, "Elf" ); 00330 break; 00331 00332 case "feline" : 00333 zwi = filter( orig, "is_race", ME, "Feline" ); 00334 break; 00335 00336 case "hobbit": 00337 zwi = filter( orig, "is_race", ME, "Hobbit" ); 00338 break; 00339 00340 case "dunkelelf": 00341 zwi = filter( orig, "is_race", ME, "Dunkelelf" ); 00342 break; 00343 00344 case "goblin": 00345 zwi = filter( orig, "is_race", ME, "Goblin" ); 00346 break; 00347 00348 case "frosch": 00349 zwi = filter( orig, "is_prop_set", ME, P_FROG ); 00350 break; 00351 00352 case "weg": 00353 zwi = filter( orig, "is_prop_set", ME, P_AWAY ); 00354 break; 00355 00356 case "idle": 00357 zwi = filter( orig, "is_idle", ME, 120 ); 00358 break; 00359 00360 case "idlezeit": 00361 if ( ++i >= sz ) 00362 break; 00363 sscanf(words[i],"%d",t); 00364 zwi = filter( orig, "is_idle", ME, 60*t ); 00365 break; 00366 00367 case "cicerone": 00368 case "cicerones": 00369 // is_active_guide() ist in /std/player/guide.c 00370 zwi = filter( orig, #'is_active_guide); 00371 break; 00372 00373 case "testie": 00374 case "testies": 00375 case "testspieler": 00376 zwi = filter( orig, "is_prop_set", ME, P_TESTPLAYER ); 00377 break; 00378 00379 case "zweitie": 00380 case "zweities": 00381 case "zweitspieler": 00382 if (IS_LEARNER(this_player())) 00383 zwi = filter( orig, "is_second", ME, -2 ); 00384 else 00385 zwi = filter( orig, "is_second", ME, -1 ); 00386 break; 00387 00388 case "magierzweitie": 00389 case "magierzweities": 00390 case "magierzweitspieler": 00391 if (IS_ARCH(this_player())) 00392 zwi = filter( orig, "is_mage_second"); 00393 break; 00394 00395 case "erwartete": 00396 if ( i < (sz-1) && words[i+1] == "wegen" ) { 00397 i++; 00398 00399 if ( !mappingp(x = (mixed)this_player()->QueryProp(P_WAITFOR_REASON)) || 00400 !pointerp(x = m_indices(x)) ) 00401 break; 00402 00403 zwi = filter( orig, "is_name_in", ME, x ); 00404 break; 00405 } 00406 00407 if ( !pointerp(x = (mixed)this_player()->QueryProp(P_WAITFOR)) ) 00408 break; 00409 zwi = filter( orig, "is_name_in", ME, x ); 00410 break; 00411 00412 case "icq": 00413 zwi = filter( orig, "is_prop_set", ME, P_ICQ ); 00414 break; 00415 00416 case "url": 00417 case "www": 00418 zwi = filter( orig, "is_prop_set", ME, P_HOMEPAGE ); 00419 break; 00420 00421 default: 00422 continue; 00423 } 00424 00425 switch (f) { 00426 case -1: 00427 res -= zwi; 00428 break; 00429 00430 case 1: 00431 res &= zwi; 00432 break; 00433 00434 default: 00435 res += zwi; 00436 } 00437 } 00438 00439 return res; 00440 }


| protected int is_active_guide | ( | object | ob | ) |
Definiert in Zeile 158 der Datei user_filter.c.
Benutzt P_NEWBIE_GUIDE.
00158 { 00159 int cic=(int)ob->QueryProp(P_NEWBIE_GUIDE); 00160 if (!intp(cic) || cic <= 0) 00161 return 0; 00162 else if (cic < 60) 00163 return 1; // kleiner 60s in der Prop -> immer aktiv. 00164 else if (cic <= 86400) { 00165 // wenn laenger idle als cic -> inaktiv 00166 if (query_idle(ob) > cic) 00167 return 0; 00168 return 1; 00169 } 00170 // ungueltiger Wertebereich -> inaktiv. 00171 return 0; 00172 }
| static int is_at | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 41 der Datei user_filter.c.
| static int is_gender | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
| static int is_ghost | ( | object | ob | ) | [static] |
Definiert in Zeile 142 der Datei user_filter.c.
Benutzt P_GHOST.
| static int is_guild_master | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
| static int is_hc | ( | object | ob | ) | [static] |
Definiert in Zeile 137 der Datei user_filter.c.
00138 { 00139 return ob->query_hc_play()>0; 00140 }
| static int is_idle | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 132 der Datei user_filter.c.
| static int is_in | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 35 der Datei user_filter.c.
Benutzt country() und P_LOCATION.
00036 { 00037 return (strstr( lower_case(country(ob)), x ) != -1 || 00038 strstr( lower_case(ob->Query(P_LOCATION) || ""), x ) != -1); 00039 }

| static int is_in_gilde | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 71 der Datei user_filter.c.
Benutzt P_VISIBLE_GUILD.
00072 { 00073 string str; 00074 00075 if ( !stringp(str = (string)ob->QueryProp(P_VISIBLE_GUILD)) ) 00076 return 0; 00077 00078 return lower_case(str)[0..strlen(x)-1] == x; 00079 }
| static int is_in_region | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
| static int is_in_team | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
| static int is_mage_second | ( | object | ob | ) | [static] |
Definiert in Zeile 66 der Datei user_filter.c.
Benutzt IS_LEARNER und P_SECOND.
00067 { 00068 return ob->QueryProp(P_SECOND) && IS_LEARNER(ob->QueryProp(P_SECOND)); 00069 }
| static int is_name_in | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 91 der Datei user_filter.c.
| static int is_prop_set | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 56 der Datei user_filter.c.
| static int is_race | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
| static int is_region_master | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
| static int is_region_member | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
| static int is_second | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 61 der Datei user_filter.c.
Benutzt P_SECOND und P_SECOND_MARK.
00062 { 00063 return ob->QueryProp(P_SECOND) && ob->QueryProp(P_SECOND_MARK) > x; 00064 }
| static int is_unmarried | ( | object | ob | ) | [static] |
Definiert in Zeile 127 der Datei user_filter.c.
Benutzt P_MARRIED.
| static int is_wiz_level_ge | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 51 der Datei user_filter.c.
Benutzt query_wiz_level().
00052 { 00053 return query_wiz_level(ob) >= x; 00054 }

| static int is_wiz_level_lt | ( | object | ob, | |
| mixed | x | |||
| ) | [static] |
Definiert in Zeile 46 der Datei user_filter.c.
Benutzt query_wiz_level().
00047 { 00048 return query_wiz_level(ob) < x; 00049 }

| static int uses_ssl | ( | object | ob | ) | [static] |
Definiert in Zeile 147 der Datei user_filter.c.
Benutzt IS_LEARNER.
00148 { 00149 if(!this_interactive() || !IS_LEARNER(this_interactive())) 00150 return 0; 00151 #if __EFUN_DEFINED__(tls_query_connection_info) 00152 return tls_query_connection_info(ob) != 0; 00153 #else 00154 return 0; 00155 #endif 00156 }
| private nosave mapping guild_aliases |
([
"zaubara" : "zauberer",
"abentoira" : "abenteurer",
"kaos" : "chaos",
"biaschuettla" : "bierschuettler",
"kaznkriega" : "katzenkrieger",
"klerikae" : "kleriker",
"dunklelfn" : "dunkelelfen",
"kaempfa" : "kaempfer",
"karatae" : "karate",
"weawoelf" : "werwoelfe",
"magia" : "magus",
"trves" : "kaempfer",
])
Definiert in Zeile 20 der Datei user_filter.c.
Wird benutzt von filter_users().
1.6.3