#include <thing/description.h>#include <thing/properties.h>#include <player.h>#include <player/comm.h>#include <language.h>#include <defines.h>#include <moving.h>#include <wizlevels.h>#include <class.h>
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | SOULHELP "/std/player/soulhelp" |
| #define | LF "\n" |
| #define | NOT_SELF 1 |
| #define | NOT_DEAD 1 |
| #define | QPP QueryPossPronoun |
| #define | RETURN return _notify_fail |
| #define | Return return 0||_notify_fail |
| #define | GHOSTCHECK(sel, oth, vic) |
| #define | HELPCHECK(x) |
| #define | NEED_PROTOTYPES |
| #define | ghost() QueryProp(P_GHOST) |
| #define | frog() QueryProp(P_FROG) |
| #define | capname() capitalize(name()) |
| #define | gname() |
Funktionen | |
| private void | ParseAdverb (string *words) |
| Parst die Adverbienparameter fuer Verben und speichert die passende Textausgabe in der globalen Variable "adverb". | |
| private string | convert_string (string str) |
| varargs mixed | More (string str, int fflag, string returnto) |
| string | MatchAdverb (string str) |
| mapping | QueryStdAdverbs () |
| mapping | QueryAdverbs () |
| static void | add_soul_commands () |
| static int | verben_liste () |
| varargs private void | ParseRest (string arg, mixed extra) |
| private int | ParseRemote (string arg) |
| varargs string | GetPlayerAdverb (string s, int fuzzy) |
| Gibt den passenden Adverb-Text zu einem key zurueck. | |
| private mixed | MixedOut (int casus) |
| varargs private int | CheckLife (int no_self, int no_dead, string no_self_text, string no_dead_text) |
| private int | FeelIt () |
| private int | zeige_adverbs (int mine) |
| Die Funktion stellt einen Hilfetext zur Verfuegung und listet die definierten Adverbien auf. | |
| static varargs int | SoulComm (string str, string _verb) |
Variablen | |
| static object | who |
| static object | ofoo |
| static int | for_all |
| static int | flag |
| static int | ifoo |
| mapping | plr_adverbs |
| static string | out_sel |
| static string | out_vic |
| static string | out_oth |
| static string | adverb |
| static string | sfoo |
| #define capname | ( | ) | capitalize(name()) |
Definiert in Zeile 275 der Datei soul.c.
Wird benutzt von convert_string().
| #define ghost | ( | ) | QueryProp(P_GHOST) |
| #define GHOSTCHECK | ( | sel, | |||
| oth, | |||||
| vic | ) |
| #define gname | ( | ) |
Definiert in Zeile 276 der Datei soul.c.
Wird benutzt von austreten(), beitreten(), convert_string(), give() und show().
| #define HELPCHECK | ( | x | ) |
| #define LF "\n" |
Definiert in Zeile 125 der Datei soul.c.
Wird benutzt von CheckLife(), FeelIt() und MixedOut().
| #define RETURN return _notify_fail |
Definiert in Zeile 130 der Datei soul.c.
Wird benutzt von MixedOut().
| #define SOULHELP "/std/player/soulhelp" |
Definiert in Zeile 124 der Datei soul.c.
Wird benutzt von verben_liste().
| static void add_soul_commands | ( | ) | [static] |
Definiert in Zeile 261 der Datei soul.c.
Benutzt plr_adverbs.
00261 { 00262 if (!plr_adverbs) 00263 plr_adverbs=([]); 00264 add_action("SoulComm", "", 1); 00265 }
| varargs private int CheckLife | ( | int | no_self, | |
| int | no_dead, | |||
| string | no_self_text, | |||
| string | no_dead_text | |||
| ) |
Definiert in Zeile 494 der Datei soul.c.
00494 { 00495 if (who && living(who) && who!=this_player()) return 0; 00496 if (no_self && who && who==this_player()) { 00497 if (no_self_text) 00498 write(no_self_text+LF); 00499 else 00500 write("Mach das mit anderen, nicht mit Dir selber.\n"); 00501 return 1; 00502 } 00503 if (who && !living(who) && no_dead) { 00504 if (no_dead_text) 00505 write(no_dead_text+LF); 00506 else 00507 write("Das darfst Du nur mit Lebewesen.\n"); 00508 return 2; 00509 } 00510 if (!who) { 00511 write("Schau Dich erst mal um - das angegebene Objekt ist nicht da.\n"); 00512 return 3; 00513 } 00514 return(0); //non-void. Fall-through, alles OK. 00515 }
| private string convert_string | ( | string | str | ) |
Definiert in Zeile 518 der Datei soul.c.
Benutzt adverb, capname, gname, WEM, WEN, WER, WESSEN und who.
Wird benutzt von FeelIt() und MixedOut().
00518 { 00519 /* Ich bin unschuldig, ich hatte das viel einfacher und schoener :) 00520 Rumata wollte das so ;) -HrT */ 00521 str = implode( explode( str, "@@name@@" ), capname() ); 00522 str = implode( explode( str, "@@gname@@" ), gname() ); 00523 str = implode( explode( str, "@@wer@@" ), 00524 (who?capitalize(who->name(WER,2)||""):"" )); 00525 str = implode( explode( str, "@@ wen@@" ), 00526 (who?" "+who->name(WEN,2):"")); 00527 str = implode( explode( str, "@@ wem@@" ), 00528 (who?" "+who->name(WEM,2):"")); 00529 str = implode( explode( str, "@@wen@@" ), 00530 (who?who->name(WEN,2):"")); 00531 str = implode( explode( str, "@@wem@@" ), 00532 (who?who->name(WEM,2):"")); 00533 str = implode( explode( str, "@@wessen@@" ), 00534 (who?who->name(WESSEN,2):"")); 00535 str = implode( explode( str, "@@adverb@@" ), 00536 (adverb?" "+adverb:"") ); 00537 return str; 00538 }

| private int FeelIt | ( | ) |
Definiert in Zeile 541 der Datei soul.c.
Benutzt _recv(), convert_string(), LF, ME, msg(), MSGFLAG_REMOTE, MSGFLAG_SAY, MSGFLAG_SOUL, out_oth, out_sel, out_vic und who.
00541 { 00542 int msg, flg; 00543 00544 flg = MSGFLAG_SOUL; 00545 if (query_verb() && (query_verb()[0..3]=="frag" || query_verb()[0..3]=="antw")) 00546 flg |= MSGFLAG_SAY; 00547 if (query_verb() && (query_verb()[0..5]=="rknudd" || query_verb()=="rwink")) 00548 flg |= MSGFLAG_REMOTE; 00549 00550 // NPC haben keine TM-Hist (comm.c). Leider erben aber div. Magier die Soul 00551 // (trotzdem sie in /std/player/ liegt) in ihren NPC... *fluch* 00552 if (query_once_interactive(ME)) 00553 _recv(who, convert_string(out_sel), flg); 00554 else 00555 tell_object(ME, convert_string(out_sel)+LF); 00556 00557 if (out_vic && who) { 00558 if (query_once_interactive(who)) { 00559 msg=who->Message( convert_string( out_vic )+LF, flg); 00560 if (msg==-1) 00561 write(who->name()+" ignoriert Dich oder diesen Befehl.\n"); 00562 } else 00563 tell_object(who,convert_string( out_vic )+LF); 00564 } 00565 if (out_oth) 00566 say( convert_string( out_oth )+LF, ({who,this_player()}) ); 00567 out_sel=out_vic=out_oth=0; 00568 return 1; 00569 }

| varargs string GetPlayerAdverb | ( | string | s, | |
| int | fuzzy | |||
| ) |
Gibt den passenden Adverb-Text zu einem key zurueck.
| s | Danach wird in der Adverbien-Liste gesucht | |
| fuzzy |
Definiert in Zeile 371 der Datei soul.c.
Benutzt i, plr_adverbs, QueryStdAdverbs(), result() und x.
Wird benutzt von ParseAdverb().
00371 { 00372 int i, j; 00373 string *search_pattern, 00374 *search_result, 00375 result; 00376 00377 // Erstmal gucken, ob der String direkt gefunden werden kann 00378 // das geht am schnellsten 00379 result = QueryStdAdverbs()[s] || plr_adverbs[s]; 00380 00381 // Wenn noch kein Ergebnis gefunden, und man unscharf suchen will 00382 if ( fuzzy && !result) { 00383 00384 // Suchmuster fuer das Intersect erzeugen 00385 search_pattern=({s}); 00386 00387 j = sizeof(s)-1; 00388 for ( i=2; i < j ;i++) { 00389 search_pattern += ({s[0..<i]}); 00390 } 00391 00392 // Intersect zwischen allen bekannten Abkuerzungen und Search-Pattern 00393 // erzeugen. Dieses wird dann gleichzeitig nach Laenge sortiert 00394 // genauester Treffer = String mit groesster Laenge 00395 search_result = sort_array( 00396 (m_indices(QueryStdAdverbs()) | m_indices(plr_adverbs))&search_pattern, 00397 function int (string x, string y){ 00398 return lower_case(x) > lower_case(y) ; 00399 } 00400 ); 00401 00402 // Adverb zum genauesten Treffer zurueckgeben 00403 if (sizeof(search_result)) 00404 result = QueryStdAdverbs()[search_result[0]] || 00405 plr_adverbs[search_result[0]]; 00406 } 00407 00408 return result; 00409 }


| string MatchAdverb | ( | string | str | ) |
Definiert in Zeile 253 der Datei soul.c.
Benutzt adverb und ParseAdverb().
00253 { 00254 ParseAdverb(explode(a," ")); 00255 return adverb; 00256 }

| private mixed MixedOut | ( | int | casus | ) |
Definiert in Zeile 460 der Datei soul.c.
Benutzt break_string(), convert_string(), count, CountUp(), for_all, LF, msg(), MSGFLAG_SOUL, name, out_sel, out_vic, QueryDu() und RETURN.
00460 { 00461 object *envs,*vics; 00462 string *names,out,aufz; 00463 int count,msg; 00464 00465 for_all=0; 00466 vics=({}); 00467 names=({}); 00468 envs=all_inventory(environment())-({this_player()}); 00469 if (!(count=sizeof(envs))) 00470 RETURN("Nichts und niemand da. Schau Dich naechstes Mal besser um.\n"); 00471 for ( ; count--; ) 00472 if (living(envs[count]) && !envs[count]->QueryProp(P_INVIS)) { 00473 vics+=({envs[count]}); 00474 names+=({envs[count]->name(casus)}); 00475 } 00476 if (!sizeof(vics)) 00477 RETURN("Keiner da. Schau Dich naechstes Mal besser um.\n"); 00478 aufz=CountUp(names); 00479 for (count=sizeof(vics); count--;) { 00480 out=implode(explode(out_vic, "@@alle@@"),aufz); 00481 out = regreplace( out, "\\<"+vics[count]->name(casus)+"\\>", 00482 capitalize(vics[count]->QueryDu(casus)), 0 ); 00483 00484 msg=vics[count]->Message(break_string(convert_string(out+LF), 78),MSGFLAG_SOUL); 00485 if (msg==-1) 00486 write(vics[count]->name()+" ignoriert Dich oder diesen Befehl.\n"); 00487 } 00488 write(break_string(convert_string(implode(explode(out_sel,"@@alle@@"),aufz) 00489 +LF), 78)); 00490 return 1; 00491 }

| varargs mixed More | ( | string | str, | |
| int | fflag, | |||
| string | returnto | |||
| ) |
| private void ParseAdverb | ( | string * | words | ) |
Parst die Adverbienparameter fuer Verben und speichert die passende Textausgabe in der globalen Variable "adverb".
| words | Array mit den zu parsenden Adverbien-Strings |
Definiert in Zeile 417 der Datei soul.c.
Benutzt adverb, cnt, CountUp() und GetPlayerAdverb().
Wird benutzt von MatchAdverb(), ParseRemote() und ParseRest().
00417 { 00418 int num,andsign,bis; 00419 string qadv,*adv,cnt; 00420 00421 adv=({}); 00422 qadv=0; 00423 00424 bis=sizeof(words); 00425 // Sonderfall Gequotetes Adverb (alles nach dem Quote) speichern und aus 00426 // Words rausschneiden. 00427 for (num=0; num<bis; num++) 00428 if (words[num][0..0]=="/") { 00429 words[num]=words[num][1..]; 00430 qadv=implode(words[num..], " "); 00431 words=words[0..num-1]; 00432 break; 00433 } 00434 00435 // Es kann sein, dass vor dem Quote noch eine und steht. Das wird jetzt auch 00436 // noch entfernt, muss aber spaeter wieder eingefuegt werden. 00437 if (sizeof(words) && words[<1]=="und") { 00438 words=words[0..<2]; 00439 andsign=1; 00440 } 00441 00442 // Weitersuchen? 00443 if (bis=sizeof(words)) 00444 for (num=0; num<bis; num+=2) 00445 adv+=({GetPlayerAdverb(words[num], 1)}); 00446 cnt=CountUp(adv-({0})); 00447 00448 // Ausgabe zusammenbauen 00449 if (andsign) 00450 adverb=CountUp((sizeof(adv) ? adv : ({}))+(qadv ? ({qadv}) : ({}))); 00451 else if (sizeof(cnt) && sizeof(qadv)) 00452 adverb = cnt + " " + qadv; 00453 else if (sizeof(qadv)) 00454 adverb = qadv; 00455 else if (sizeof(cnt)) 00456 adverb = cnt; 00457 if (adverb=="") adverb=0; 00458 }


| private int ParseRemote | ( | string | arg | ) |
Definiert in Zeile 318 der Datei soul.c.
Benutzt adverb, find_player(), IS_WIZARD, match_living(), ME, name, ParseAdverb(), RAW, WER und who.
00318 { 00319 string wer,*words; 00320 00321 adverb = 0; // Adverb vom letzten Mal keinesfalls wiederverwenden. ;-) 00322 00323 if (!stringp(arg) || !strlen(arg)) return 0; 00324 00325 words=explode(arg," "); 00326 00327 mixed liv = match_living(lower_case(words[0])); 00328 if (stringp(liv)) 00329 who=find_player(liv); 00330 00331 if (who) { 00332 // Ziel ist ein Spieler. 00333 if (!who->QueryProp(P_INVIS) || IS_WIZARD(ME)) { 00334 // Spieler ist nicht Invis oder ich bin Magier. 00335 string nam = (query_once_interactive(ME) ? getuid() : 00336 lower_case(name(RAW))); 00337 if (query_verb()[0..5]=="rknudd" && 00338 who->TestIgnore( ({"rknuddel",nam,nam+".knuddel"}) ) ) { 00339 // ich oder das Kommando werde ignoriert. 00340 write(who->Name(WER)+" ignoriert Deinen Knuddelversuch.\n"); 00341 return 1; 00342 } 00343 } 00344 else 00345 // Spieler ist invis und ich bin kein Magier. 00346 who = 0; 00347 } 00348 // kein eingeloggter und sichtbarer Spieler. Vielleicht ein NPC? (BTW: kein 00349 // else if, weil im if fuer Spieler oben who genullt werden kann und dann 00350 // nochmal nach nem NPC gesucht werden soll.) 00351 if (!who) { 00352 wer = match_living(lower_case(words[0])); 00353 if(stringp(wer)) 00354 who=present(wer,environment(ME)); 00355 if (!who) who=present(words[0], environment(ME)); 00356 if (who && who->QueryProp(P_INVIS)) who=0; 00357 } 00358 00359 if (!who || sizeof(words)==1) return 0; 00360 words=words[1..]; 00361 ParseAdverb(words); 00362 return(0); 00363 }

| varargs private void ParseRest | ( | string | arg, | |
| mixed | extra | |||
| ) |
Definiert in Zeile 281 der Datei soul.c.
Benutzt adverb, for_all, match_living(), ME, ParseAdverb() und who.
00281 { 00282 string wer,wie,*words,quotea; 00283 int num,bis; 00284 who = for_all = adverb = 0; 00285 if (!arg) return; 00286 if (extra) 00287 if (!pointerp(extra)) { 00288 if (sscanf(arg, extra+" %s", wie)==1) 00289 arg=wie; 00290 } 00291 else 00292 for (bis=sizeof(extra),num=0; num<bis; num++) 00293 if (sscanf(arg, extra[num]+" %s", wie)==1) 00294 arg=wie; 00295 00296 if ((bis=strstr(arg, "/"))>=0) 00297 quotea=arg[bis..],arg=arg[0..bis-1]; 00298 quotea=quotea||"",arg=arg||""; 00299 00300 words=explode(implode(explode(arg, ","), " und"), " "); 00301 if (!sizeof(words)) return; 00302 if (sizeof(words) && (words[0]=="alle" || words[0]=="allen")) 00303 for_all=1,wer=words[0],words=words[1..]; 00304 if (!for_all) { /* noch kein Opfer */ 00305 wer=match_living(lower_case(words[0])); 00306 if (stringp(wer)) who=present(wer, environment(ME)); 00307 if (!who) who=present(words[0], environment(ME)); 00308 if (who && who->QueryProp(P_INVIS)) who=0; 00309 } 00310 if (who && sizeof(words)) 00311 words=words[1..]; /* Opfer gefunden - wenn's eines gibt */ 00312 words+=explode(quotea, " "); 00313 words-=({""}); 00314 if (sizeof(words)) ParseAdverb(words); 00315 }

| mapping QueryAdverbs | ( | ) |
Definiert in Zeile 250 der Datei soul.c.
Benutzt plr_adverbs.
00250 { return deep_copy(plr_adverbs); }
| mapping QueryStdAdverbs | ( | ) |
Definiert in Zeile 178 der Datei soul.c.
Wird benutzt von GetPlayerAdverb() und zeige_adverbs().
00178 { 00179 return ([ 00180 "unve" : "unverschaemt", 00181 "gutg" : "gutgelaunt", 00182 "gutm" : "gutmuetig", 00183 "froh" : "froh", 00184 "glue" : "gluecklich", 00185 "wuet" : "wuetend", 00186 "frec" : "frech", 00187 "daem" : "daemonisch", 00188 "boes" : "boese", 00189 "ungl" : "ungluecklich", 00190 "lang" : "langsam", 00191 "schn" : "schnell", 00192 "jamm" : "jammernd", 00193 "freu" : "freundlich", 00194 "shue" : "schuechtern", 00195 "amue" : "amuesiert", 00196 "aerg" : "aergerlich", 00197 "aner" : "anerkennend", 00198 "erst" : "erstaunt", 00199 "bitt" : "bitter", 00200 "brei" : "breit", 00201 "vors" : "vorsichtig", 00202 "char" : "charmant", 00203 "kalt" : "kalt", 00204 "verf" : "verfuehrerisch", 00205 "zufr" : "zufrieden", 00206 "tief" : "tief", 00207 "verz" : "verzweifelt", 00208 "drec" : "dreckig", 00209 "vert" : "vertraeumt", 00210 "uebe" : "ueberzeugt", 00211 "frus" : "frustriert", 00212 "stra" : "strahlend", 00213 "hoff" : "hoffnungsvoll", 00214 "unge" : "ungeduldig", 00215 "unsi" : "unsinnigerweise", 00216 "unsc" : "unschuldig", 00217 "unwi" : "unwissend", 00218 "iron" : "ironisch", 00219 "wiss" : "wissend", 00220 "gema" : "gemaechlich", 00221 "sehn" : "sehnsuechtig", 00222 "laut" : "laut", 00223 "lieb" : "liebevoll", 00224 "froe" : "froehlich", 00225 "dank" : "dankbar", 00226 "natu" : "natuerlich", 00227 "gedu" : "geduldig", 00228 "perf" : "perfekt", 00229 "vers" : "verspielt", 00230 "hoef" : "hoeflich", 00231 "stol" : "stolz", 00232 "frag" : "fragend", 00233 "rupp" : "ruppig", 00234 "trau" : "traurig", 00235 "vera" : "veraechtlich", 00236 "scha" : "schamlos", 00237 "erns" : "ernst", 00238 "schu" : "schuechtern", 00239 "zaer" : "zaertlich", 00240 "sanf" : "sanft", 00241 "entg" : "entgeistert", 00242 "heim" : "heimtueckisch", 00243 "gela" : "gelangweilt", 00244 "wild" : "wild", 00245 "jofi" : "wie Jof, wenn er mal nicht idlet", 00246 ]); 00247 }

| static varargs int SoulComm | ( | string | str, | |
| string | _verb | |||
| ) | [static] |
Definiert in Zeile 624 der Datei soul.c.
00624 { 00625 int t_g,t_n,flag; 00626 string str1,str2,str3,*taenze,vb; 00627 out_sel=out_vic=out_oth=who=0; 00628 // if (this_interactive()!=ME) return 0; 00629 if (interactive(ME)) str=_unparsed_args(); // NPCs haben das nicht :( 00630 if (str=="") str=0; 00631 vb=_verb||query_verb(); 00632 if (strlen(vb)>1 && vb[<1]=='e' && vb!="noe") vb=vb[0..<2]; 00633 sfoo = 0; 00634 switch (vb) { 00635 /**************** Aechzen ***************/ 00636 case "aechz": 00637 HELPCHECK("aechz"); 00638 ParseRest(str); 00639 if (str && !adverb) 00640 Return("Aechze wie?\n"); 00641 out_sel="Du aechzt@@adverb@@."; 00642 out_oth="@@gname@@ aechzt@@adverb@@."; 00643 return FeelIt(); 00644 00645 /**************** Anschmiegen ***************/ 00646 case "schmieg": 00647 HELPCHECK("schmieg"); 00648 ParseRest(str); 00649 if (!who) 00650 Return("An wen willst Du Dich anschmiegen?\n"); 00651 if (CheckLife(NOT_SELF,NOT_DEAD, 00652 "Das geht doch nicht.", 00653 "Nein, das macht keinen Spass. Lebt ja nicht mal.")) 00654 return 1; 00655 out_sel="Du schmiegst Dich@@adverb@@ an@@ wen@@ an."; 00656 out_vic="@@gname@@ schmiegt sich@@adverb@@ an Dich."; 00657 out_oth="@@gname@@ schmiegt sich@@adverb@@ an@@ wen@@ an."; 00658 return FeelIt(); 00659 00660 /**************** Antworten ***************/ 00661 case "antwort": 00662 HELPCHECK("antwort"); 00663 if (!str) 00664 Return("Antworte [WEM] WAS?\n"); 00665 ParseRest(str); 00666 if (!who) 00667 str1=capitalize(str); 00668 else 00669 if (sscanf(str,"%s %s",str1,str1)!=2) 00670 Return("Antworte was?\n"); 00671 else 00672 str1=capitalize(str1); 00673 out_sel="Du antwortest@@ wem@@: "+str1; 00674 /* Sprachflueche beruecksichtigen -Wargon, 8. 9. 95 */ 00675 if (QueryProp(P_PERM_STRING)) 00676 str1 = call_other(QueryProp(P_PERM_STRING),"permutate_string",str1)||""; 00677 if (who) out_vic="@@gname@@ antwortet Dir: "+str1; 00678 out_oth="@@gname@@ antwortet@@ wem@@: "+str1; 00679 return FeelIt(); 00680 00681 /**************** Applaudieren ***************/ 00682 case "applaudier": 00683 HELPCHECK("applaudier"); 00684 GHOSTCHECK("Deine Haende fahren durcheinander durch - war wohl nix.\n", 00685 gname()+" will applaudieren, aber "+QPP(FEMALE,WER,PLURAL) 00686 +" Haende sausen\ndurcheinander durch.\n", 0); 00687 if (!str) { 00688 out_sel="Du applaudierst von ganzem Herzen."; 00689 out_oth="@@name@@ gibt eine Runde Applaus."; 00690 } 00691 else { 00692 ParseRest(str); 00693 if (for_all) { 00694 out_sel="Du applaudierst @@alle@@@@adverb@@."; 00695 out_vic="@@name@@ applaudiert @@alle@@@@adverb@@."; 00696 return MixedOut(WEM); 00697 } 00698 if (!who && !adverb) 00699 Return("Applaudiere wem oder wie oder so aehnlich.\n"); 00700 if (who && CheckLife(NOT_SELF,NOT_DEAD, 00701 "Nein, das gehoert sich nicht.", 00702 "Sachen wird hier nicht applaudiert, OK?")) 00703 return 1; 00704 out_sel="Du applaudierst@@ wem@@@@adverb@@."; 00705 if (who) out_vic="@@name@@ applaudiert Dir@@adverb@@."; 00706 out_oth="@@name@@ applaudiert@@ wem@@@@adverb@@."; 00707 } 00708 return FeelIt(); 00709 00710 /**************** Argln ***************/ 00711 case "argl": 00712 HELPCHECK("argl"); 00713 ParseRest(str); 00714 if (str && !adverb) 00715 Return("Argle wie?\n"); 00716 out_sel="Du arglst"+(adverb ? "@@adverb@@." : " ein wenig vor Dich hin."); 00717 out_oth="@@gname@@ arglt" 00718 +(adverb ? "@@adverb@@." : " ein wenig vor sich hin."); 00719 return FeelIt(); 00720 00721 /**************** Aufatmen ***************/ 00722 case "atm": 00723 HELPCHECK("atm"); 00724 if (!str || sscanf(str,"%sauf",str1)!=1) 00725 Return("Atme wie auf?\n"); 00726 ParseRest(str1); 00727 out_sel="Du atmest"+(adverb ? "@@adverb@@" : " erleichtert")+" auf."; 00728 out_oth="@@gname@@ atmet"+(adverb ? "@@adverb@@" : " erleichtert")+" auf."; 00729 return FeelIt(); 00730 00731 /**************** Begruessen ***************/ 00732 case "hallo": 00733 case "hi": 00734 case "begruess": 00735 HELPCHECK("begruess"); 00736 ParseRemote(str); 00737 if (!who) 00738 Return("Wen willst Du begruessen?\n"); 00739 if (present(who, environment())) { 00740 out_sel="Du heisst @@wen@@@@adverb@@ willkommen."; 00741 out_vic="@@gname@@ heisst Dich@@adverb@@ willkommen."; 00742 out_oth="@@gname@@ heisst @@wen@@@@adverb@@ willkommen."; 00743 } 00744 else { 00745 out_sel="Du heisst @@wen@@@@adverb@@ aus der Ferne willkommen."; 00746 out_vic="@@gname@@ heisst Dich@@adverb@@ aus der Ferne willkommen."; 00747 } 00748 return FeelIt(); 00749 00750 /**************** Betasten ***************/ 00751 case "betast": 00752 HELPCHECK("betast"); 00753 ParseRest(str); 00754 if (!who) 00755 Return("Begrabsche wen?\n"); 00756 out_sel="Du grabbelst@@adverb@@ an "+who->name(WEM)+" herum."; 00757 out_vic="@@gname@@ grabbelt@@adverb@@ an Dir herum."; 00758 out_oth="@@gname@@ grabbelt@@adverb@@ an "+who->name(WEM)+" herum."; 00759 return FeelIt(); 00760 00761 /**************** Bewundern ***************/ 00762 case "bewunder": 00763 HELPCHECK("bewunder"); 00764 ParseRest(str); 00765 if (!who) 00766 Return("Bewundere wen?\n"); 00767 out_sel="Du bewunderst @@wen@@@@adverb@@."; 00768 out_vic="@@gname@@ bewundert Dich@@adverb@@."; 00769 out_oth="@@gname@@ bewundert @@wen@@@@adverb@@."; 00770 return FeelIt(); 00771 00772 /**************** Bibbern ***************/ 00773 case "bibber": 00774 HELPCHECK("bibber"); 00775 if (ghost()) 00776 Return("Als Geist fuehlst Du keine Kaelte.\n"); 00777 ParseRest(str); 00778 if (str && !adverb) 00779 Return("Bibbere wie?\n"); 00780 out_sel="Du bibberst@@adverb@@ vor Kaelte."; 00781 out_oth="@@name@@ bibbert@@adverb@@ vor Kaelte."; 00782 return FeelIt(); 00783 00784 /**************** Bohre Nase ***************/ 00785 case "bohr": 00786 HELPCHECK("bohr"); 00787 ParseRest(str, ({"nase","in der nase","in nase"})); 00788 if (str && str!="nase" && str!="in nase" && str!="in der nase" && !adverb) 00789 Return("Bohre wie Nase?\n"); 00790 out_sel="Du bohrst@@adverb@@ in Deiner Nase."; 00791 out_oth="@@gname@@ bohrt@@adverb@@ in der Nase. Igitt! :)"; 00792 return FeelIt(); 00793 00794 /**************** Brummeln ***************/ 00795 case "brummel": 00796 HELPCHECK("brummel"); 00797 ParseRest(str); 00798 out_sel="Du brummelst" 00799 +(adverb ? "@@adverb@@." : (str ? " kaum verstaendlich: "+str+"." : ".")); 00800 out_oth="@@gname@@ brummelt" 00801 +(adverb ? "@@adverb@@." : (str ? " kaum verstaendlich: "+str+"." : ".")); 00802 return FeelIt(); 00803 00804 /**************** cls ***************/ 00805 case "cls": 00806 HELPCHECK("cls"); 00807 write("[2J[H"); 00808 return 1; 00809 00810 /**************** Daeumchendrehen ***************/ 00811 case "dreh": 00812 HELPCHECK("dreh"); 00813 if (!str) 00814 Return("Drehe was?\n"); 00815 if(strstr(str,"daeumchen")<0 && strstr(str,"daumen")<0) 00816 Return("Drehe was?\n"); 00817 ParseRest(str,({"daeumchen","daumen"})); 00818 out_sel="Du drehst@@adverb@@ Daeumchen."; 00819 out_oth="@@gname@@ dreht@@adverb@@ Daeumchen."; 00820 return FeelIt(); 00821 00822 /**************** Danken ***************/ 00823 case "dank": 00824 HELPCHECK("dank"); 00825 ParseRest(str); 00826 if (!who) 00827 Return("Bei wem willst Du Dich bedanken?\n"); 00828 if (CheckLife(NOT_SELF, NOT_DEAD, 00829 "Leidest Du jetzt schon an Persoenlickeitsspaltung? Ne, ne...", 00830 "Keine Reaktion. Ist wohl befriedigender, sich bei Lebewesen zu " 00831 +"bedanken.")) 00832 return 1; 00833 out_sel="Du bedankst Dich@@adverb@@ bei@@ wem@@."; 00834 out_vic="@@gname@@ bedankt sich@@adverb@@ bei Dir."; 00835 out_oth="@@gname@@ bedankt sich@@adverb@@ bei@@ wem@@."; 00836 return FeelIt(); 00837 00838 /**************** Denken ***************/ 00839 case "denk": 00840 HELPCHECK("denk"); 00841 if (ghost()) 00842 Return("Womit willst Du denn denken? Du hast keine grauen Zellen...\n"); 00843 // ParseRest(str); 00844 str2=old_explode(str||""," ")[0]; 00845 if (str 00846 && (!adverb||((QueryStdAdverbs()[str2]||plr_adverbs[str2]))!=adverb)) { 00847 out_sel="Du denkst . o O ("+str+")"; 00848 out_oth="@@name@@ denkt . o O ("+str+")"; 00849 out_vic="@@name@@ denkt . o O ("+str+")"; 00850 } 00851 else { 00852 out_sel="Du faengst@@adverb@@ an zu denken.\nKleine " 00853 +"Rauchwoelkchen steigen auf..."; 00854 out_oth="@@name@@ faengt@@adverb@@ an zu denken.\nKleine " 00855 +"Rauchwoelkchen steigen auf..."; 00856 } 00857 return FeelIt(); 00858 00859 /**************** Deuten ***************/ 00860 case "deut": 00861 HELPCHECK("deut"); 00862 ParseRest(str,"auf"); 00863 if (for_all) { 00864 out_sel="Du deutest@@adverb@@ auf @@alle@@."; 00865 out_vic="@@gname@@ deutet@@adverb@@ auf @@alle@@."; 00866 return MixedOut(WEN); 00867 } 00868 if (!who) 00869 Return("Auf wen oder was willst Du deuten?\n"); 00870 out_sel="Du deutest@@adverb@@ auf" 00871 +(who==this_object()?" Dich." : "@@ wen@@."); 00872 if (who != this_object()) out_vic="@@gname@@ deutet@@adverb@@ auf Dich."; 00873 out_oth="@@gname@@ deutet@@adverb@@ auf" 00874 +(who==this_object() ? " sich selber.": "@@ wen@@."); 00875 return FeelIt(); 00876 00877 /**************** Druecken ***************/ 00878 case "drueck": 00879 HELPCHECK("drueck"); 00880 ParseRest(str); 00881 if (for_all) { 00882 out_sel="Du drueckst @@alle@@"+(adverb ? "@@adverb@@" : " zaertlich") 00883 +" an Dich."; 00884 out_vic="@@gname@@ drueckt @@alle@@"+ 00885 (adverb ? "@@adverb@@" : " zaertlich")+" an sich."; 00886 return MixedOut(WEN); 00887 } 00888 if (!who) 00889 Return("Wen willst Du denn druecken?\n"); 00890 if (CheckLife(NOT_SELF,NOT_DEAD, 00891 "Das macht doch keinen Spass.", 00892 "Ich druecke nur jemanden, nicht etwas.")) 00893 return 1; 00894 GHOSTCHECK("Du willst "+who->name(WEN)+" an Dich druecken - nur hast Du " 00895 +"schon\nwieder nicht daran gedacht, dass so was als Geist nicht " 00896 +"geht.\n", 00897 gname()+" will "+who->name(WEN)+" an sich druecken - hat aber\n" 00898 +"mal wieder nicht an die Nachteile des Geisterdaseins gedacht.\n", 00899 gname()+" will Dich an sich druecken - hat aber mal wieder\n" 00900 +"nicht an die Nachteile des Geisterdaseins gedacht.\n"); 00901 out_sel="Du drueckst @@wen@@"+(adverb ? "@@adverb@@" : " zaertlich") 00902 +" an Dich."; 00903 out_vic="@@name@@ drueckt Dich"+(adverb ? "@@adverb@@" : " zaertlich") 00904 +" an sich."; 00905 out_oth="@@name@@ drueckt @@wen@@"+(adverb ? "@@adverb@@" : " zaertlich") 00906 +" an sich."; 00907 return FeelIt(); 00908 00909 /**************** Entschuldige ***************/ 00910 case "entschuldig": 00911 HELPCHECK("entschuldig"); 00912 ParseRest(str); 00913 if (str && !who && !adverb) 00914 Return("Entschuldige Dich wie oder bei wem?\n"); 00915 out_sel="Du bittest"+(who ? " @@wen@@" : "") 00916 +"@@adverb@@ um Entschuldigung."; 00917 if (who) out_vic="@@gname@@ bittet Dich@@adverb@@ um Entschuldigung."; 00918 out_oth="@@gname@@ bittet"+(who ? " @@wen@@" : "") 00919 +"@@adverb@@ um Entschuldigung."; 00920 return FeelIt(); 00921 00922 /**************** Erbleichen ***************/ 00923 case "erbleich": 00924 HELPCHECK("erbleich"); 00925 GHOSTCHECK("Ich weiss zwar nicht, wie Du das schaffst, aber Du wirst " 00926 +"noch bleicher.\n", 00927 break_string("Wie unwahrscheinlich das auch ist, aber "+gname() 00928 +" schafft es tatsaechlich, noch bleicher zu werden.",78), 0 ); 00929 ParseRest(str); 00930 if (str && !adverb) 00931 Return("Wie willst Du erbleichen?\n"); 00932 out_sel="Du erbleichst@@adverb@@."; 00933 out_oth="@@name@@ erbleicht@@adverb@@."; 00934 return FeelIt(); 00935 00936 /**************** Erroeten ***************/ 00937 case "erroet": 00938 HELPCHECK("erroet"); 00939 GHOSTCHECK("Du schaffst es nur bis zu einem blassen Rosa, aber immerhin.\n", 00940 "Die Wangen des Geistes von "+capname()+" werden leicht rosa.\n", 0); 00941 ParseRest(str); 00942 if (!adverb && str) 00943 Return("Erroete wie?\n"); 00944 out_sel="Deine Wangen gluehen@@adverb@@."; 00945 out_oth="@@name@@ erroetet@@adverb@@."; 00946 return FeelIt(); 00947 00948 /**************** Erschrecken ***************/ 00949 case "erschreck": 00950 case "erschrick": 00951 if (!ghost()) 00952 Return("Du bist zu harmlos, Geist muesste man sein...\n"); 00953 HELPCHECK("erschreck"); 00954 ParseRest(str); 00955 if (!who) 00956 Return("Wen willst Du denn erschrecken?\n"); 00957 out_sel="Mit einem lauten BUH! erschreckst Du @@wen@@" 00958 +(adverb ? "@@adverb@@." : " fuerchterlich."); 00959 out_vic="BUH! Du zuckst vor Schreck zusammen. Muss dieser Geist von " 00960 +"@@gname@@ Dich auch@@adverb@@ erschrecken."; 00961 out_oth="BUH! @@gname@@ erschreckt @@wen@@" 00962 +(adverb ? "@@adverb@@." : " fuerchterlich."); 00963 return FeelIt(); 00964 00965 /**************** Flippen ***************/ 00966 case "flipp": 00967 HELPCHECK("flipp"); 00968 ParseRest(str); 00969 if (str && !adverb) 00970 Return("Ausflippen wollen wir also, so so. Und wie, wenn ich " 00971 +"fragen darf?\n"); 00972 out_sel="Du flippst"+(adverb ? "@@adverb@@ aus." : " total aus."); 00973 out_oth="@@gname@@ flippt"+(adverb ? "@@adverb@@ aus." : " total aus."); 00974 return FeelIt(); 00975 00976 /**************** Fluchen ***************/ 00977 case "fluch": 00978 HELPCHECK("fluch"); 00979 GHOSTCHECK("Du faengst mangels Resonanzkoerper leise an zu fluchen.\n", 00980 gname()+" faengt leise an zu fluchen. Laut kann er nicht,\n" 00981 +"mangels Luft und Resonanzkoerper.\n", 0); 00982 if (!str) { 00983 out_sel="Du fluchst lautstark."; 00984 out_oth="@@name@@ faengt an, fuerchterlich zu fluchen."; 00985 } 00986 else { 00987 ParseRest(str); 00988 if (!adverb) 00989 Return("Wie willst Du fluchen?\n"); 00990 out_sel="Du fluchst@@adverb@@."; 00991 out_oth="@@name@@ flucht auf einmal@@adverb@@."; 00992 } 00993 return FeelIt(); 00994 00995 /**************** Fragen ***************/ 00996 case "frag": 00997 HELPCHECK("frag"); 00998 if (!str) 00999 Return("Frage wen was?\n"); 01000 ParseRest(str); 01001 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01002 "Du faengst zu gruebeln an...", 01003 "Frage jemand, der lebt.")) 01004 return 1; 01005 if (who) 01006 sscanf(str,"%s %s", str1,str1); 01007 else 01008 str1=str; 01009 if (!str1) 01010 Return("Frage "+who->name(WEN)+" WAS?\n"); 01011 str1=capitalize(str1); 01012 if (str1[<1] != '?') 01013 str1 += "?"; 01014 out_sel="Du fragst@@ wen@@: "+str1; 01015 /* Sprachfluch beruecksichtigen -Wargon, 8. 9. 95 */ 01016 if (objectp(QueryProp(P_PERM_STRING))) 01017 str1 = call_other(QueryProp(P_PERM_STRING), "permutate_string", str1)||""; 01018 if (who) out_vic=(ghost() ? "Der Geist von " : /* IS_LEARNER(ME) ? 01019 QueryProp(P_PRESAY)||"" : */ "")+capname()+" fragt Dich: "+str1; 01020 out_oth=(ghost() ? "Der Geist von " : /* IS_LEARNER(ME) ? 01021 QueryProp(P_PRESAY)||"" : */ "")+capname()+" fragt@@ wen@@: "+str1; 01022 return FeelIt(); 01023 01024 /**************** Freuen ***************/ 01025 case "freu": 01026 HELPCHECK("freu"); 01027 ParseRest(str); 01028 if (str && !who && !adverb) 01029 Return("Freue Dich wie?\n"); 01030 out_sel="Du "+(who ? "grinst @@wen@@ an und " : "") 01031 +"freust Dich@@adverb@@."; 01032 if (who) out_vic="@@gname@@ grinst Dich an und freut sich@@adverb@@."; 01033 out_oth="@@gname@@ "+(who ? "grinst @@wen@@ an und " : "") 01034 +"freut sich@@adverb@@."; 01035 return FeelIt(); 01036 01037 /**************** Furzen ***************/ 01038 case "furz": 01039 HELPCHECK("furz"); 01040 GHOSTCHECK("Du laesst einen fahren - aber er riecht nach gar nix.\n", 01041 gname()+" laesst einen fahren. Man riecht aber nix.\n", 0); 01042 ParseRest(str); 01043 if (str && !adverb) 01044 Return("Furze wie?\n"); 01045 out_sel="Du furzt"+(adverb ? "@@adverb@@." : " hemmungslos."); 01046 out_oth="@@name@@ laesst@@adverb@@ einen Stinkefurz fahren."; 01047 ofoo=clone_object("/obj/furz"); 01048 ofoo->set_furzer(this_player()); 01049 ofoo->move(environment(this_player())); 01050 return FeelIt(); 01051 // DEBUG Furz testen! 01052 01053 /**************** Gaehnen ***************/ 01054 case "gaehn": 01055 HELPCHECK("gaehn"); 01056 if (ghost()) 01057 Return("Als Geist wirst Du nicht muede - also nicht gaehnen.\n"); 01058 ParseRest(str); 01059 if (str && !adverb) 01060 Return("Wie willst Du gaehnen?\n"); 01061 if (!adverb) 01062 out_sel="Kannst Du aber Dein(en) Mund/Maul/Schnabel weit aufreissen!"; 01063 else 01064 out_sel="Du gaehnst@@adverb@@."; 01065 out_oth="@@gname@@ gaehnt@@adverb@@."; 01066 return FeelIt(); 01067 01068 /**************** Glucksen ***************/ 01069 case "glucks": 01070 HELPCHECK("glucks"); 01071 ParseRest(str); 01072 if (str && !adverb) 01073 Return("Gluckse wie?\n"); 01074 out_sel="Du gluckst"+(adverb ? "@@adverb@@." : " wie ein Huhn."); 01075 out_oth="@@gname@@ gluckst"+(adverb ? "@@adverb@@." : " wie ein Huhn."); 01076 return FeelIt(); 01077 01078 /**************** Gratulieren ***************/ 01079 case "gratulier": 01080 case "beglueckwuensch": 01081 HELPCHECK("gratulier"); 01082 ParseRest(str); 01083 if (!who) 01084 Return("Wem willst Du gratulieren?\n"); 01085 if (CheckLife(NOT_SELF, NOT_DEAD, 01086 "Na, meinst Du nicht, dass Eigenlob stinkt?", 01087 "Soll ich dem Ding vielleicht zum Totsein gratulieren? Nee nee.")) 01088 return 1; 01089 out_sel="Du gratulierst @@wem@@@@adverb@@."; 01090 out_vic="@@gname@@ gratuliert Dir@@adverb@@."; 01091 out_oth="@@gname@@ gratuliert @@wem@@@@adverb@@."; 01092 return FeelIt(); 01093 01094 /**************** Grinsen ***************/ 01095 case "grins": 01096 HELPCHECK("grins"); 01097 GHOSTCHECK("Als Du grinst, siehst Du regelrecht, wie die anderen eine " 01098 +"Gaensehaut bekommen.\n", 01099 "Du bekommst eine Gaensehaut, als der Geist von "+capname() 01100 +" zu grinsen anfaengt.\n", 0); 01101 ParseRest(str); 01102 if (for_all) { 01103 out_sel="Du grinst @@alle@@@@adverb@@ an."; 01104 out_vic="@@name@@ grinst @@alle@@@@adverb@@ an."; 01105 return MixedOut(WEN); 01106 } 01107 if (!who && !adverb && str) 01108 Return("Grinsen - schoen und gut. Aber wen oder wie (an)grinsen?\n"); 01109 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01110 "Du grinst Dir was, aber so, dass es kein anderer sieht.", 01111 "Nicht mal einen Spiegel darf man hier angrinsen, nur Lebewesen!")) 01112 return 1; 01113 out_sel="Du grinst@@ wen@@@@adverb@@"+(who ? " an" : "")+"."; 01114 if (who) out_vic="@@name@@ grinst Dich@@adverb@@ an."; 01115 out_oth="@@name@@ grinst@@ wen@@@@adverb@@"+(who ? " an" : "")+"."; 01116 return FeelIt(); 01117 01118 /**************** Gruebeln ***************/ 01119 case "gruebel": 01120 case "gruebl": 01121 HELPCHECK("gruebel"); 01122 ParseRest(str); 01123 if (str && !adverb) 01124 Return("Grueble wie?\n"); 01125 out_sel="Du gruebelst@@adverb@@ eine Weile vor Dich hin."; 01126 out_oth="@@gname@@ gruebelt@@adverb@@ eine Weile vor sich hin."; 01127 return FeelIt(); 01128 01129 /**************** Grummeln ***************/ 01130 case "grummel": 01131 case "grumml": 01132 HELPCHECK("grummel"); 01133 ParseRest(str); 01134 if (str && !adverb) 01135 Return("Grummle wie?\n"); 01136 out_sel="Du grummelst@@adverb@@."; 01137 out_oth="@@gname@@ grummelt@@adverb@@."; 01138 return FeelIt(); 01139 01140 /**************** Grunzen ***************/ 01141 case "grunz": 01142 HELPCHECK("grunz"); 01143 ParseRest(str); 01144 if (str && !adverb) 01145 Return("Grunze wie?\n"); 01146 out_sel="Du grunzt@@adverb@@."; 01147 out_oth="@@gname@@ grunzt@@adverb@@."; 01148 return FeelIt(); 01149 01150 /**************** Gucken ***************/ 01151 case "guck": 01152 HELPCHECK("guck"); 01153 ParseRest(str); 01154 if (!adverb) 01155 Return("Gucke wie aus der Waesche?\n"); 01156 out_sel="Du guckst@@adverb@@ aus der Waesche."; 01157 out_oth="@@gname@@ guckt@@adverb@@ aus der Waesche."; 01158 return FeelIt(); 01159 01160 /**************** Jammern ***************/ 01161 case "jammer": 01162 HELPCHECK("jammer"); 01163 ParseRest(str); 01164 if (str && !adverb) 01165 Return("Wie willst Du jammern?\n"); 01166 out_sel="Du jammerst@@adverb@@."; 01167 out_oth="@@gname@@ jammert@@adverb@@."; 01168 return FeelIt(); 01169 01170 /**************** Haetscheln ***************/ 01171 case "haetschel": 01172 case "haetschl": 01173 HELPCHECK("haetschel"); 01174 GHOSTCHECK("Du ueberlegst es Dir anders - mit Deinen durchlaessigen " 01175 +"Haenden...", 01176 gname()+" will anscheinend jemand haetscheln, ueberlegt\n" 01177 +"es sich nach einem kurzen Blick auf seine Haende anders.\n", 0); 01178 ParseRest(str); 01179 if (for_all) { 01180 out_sel="Du haetschelst @@alle@@@@adverb@@."; 01181 out_vic="@@name@@ haetschelt @@alle@@@@adverb@@."; 01182 return MixedOut(WEN); 01183 } 01184 if (!str || !who) 01185 Return("Wen willst Du haetscheln?\n"); 01186 if (who && CheckLife(NOT_SELF, NOT_DEAD, 01187 "Das sieht viel zu albern aus - Du laesst es bleiben.", 01188 "Ist da ueberhaupt was zu haetscheln? Nein, da lebt doch nix.")) 01189 return 1; 01190 out_sel="Du haetschelst@@ wen@@@@adverb@@."; 01191 out_vic="@@name@@ haetschelt Dich@@adverb@@."; 01192 out_oth="@@name@@ haetschelt@@ wen@@@@adverb@@."; 01193 return FeelIt(); 01194 01195 /**************** Hicksen ***************/ 01196 case "hicks": 01197 HELPCHECK("hicks"); 01198 GHOSTCHECK("Hoppla! Dieser Hickser zieht Dich ganz schoen zusammen!\n", 01199 gname()+" hat anscheinend Schluckauf.\n" 01200 +"Und was fuer einen! Fuer einen Moment zieht es "+QueryPronoun(WEN) 01201 +" ziemlich zusammen.\n", 0); 01202 if (!str) { 01203 out_sel="Hicks!"; 01204 out_oth="@@name@@ muss hicksen. Wahrscheinlich zu viel Alkohol..."; 01205 } 01206 else { 01207 ParseRest(str); 01208 if (!adverb) 01209 Return("Hickse wie?\n"); 01210 out_sel="Du hickst@@adverb@@."; 01211 out_oth="@@name@@ hickst@@adverb@@."; 01212 } 01213 return FeelIt(); 01214 01215 /**************** Huepfen ***************/ 01216 case "huepf": 01217 HELPCHECK("huepf"); 01218 GHOSTCHECK("Du schwebst durch die Gegend.\n", 01219 gname()+" schwebt durch die Gegend.\n", 0); 01220 if (!str) { 01221 out_sel="B O I N G !! Du huepfst in der Gegend herum."; 01222 out_oth="@@name@@ huepft in der Gegend herum."; 01223 } 01224 else { 01225 ParseRest(str); 01226 if (!who && !adverb) 01227 Return("Huepfe wie oder um wen oder wie oder was oder haeh?\n"); 01228 out_sel="Du huepfst@@adverb@@"+(who ? " um@@ wen@@" : "")+" herum."; 01229 if (who) out_vic="@@name@@ huepft@@adverb@@ um Dich herum."; 01230 out_oth="@@name@@ huepft@@adverb@@"+(who ? " um@@ wen@@" : "")+" herum."; 01231 } 01232 return FeelIt(); 01233 01234 /**************** Husten ***************/ 01235 case "hust": 01236 HELPCHECK("hust"); 01237 GHOSTCHECK("Du verstreust ein paar Geisterbazillen im Raum.\n", 01238 gname()+" macht ufff, ufff und verteilt ein paar Geister-\n" 01239 +"bazillen im Raum.\n", 0); 01240 if (!str) { 01241 out_sel="Hust! Keuch! Halt dir doch wenigstens die Hand vor den Mund!"; 01242 out_oth="@@name@@ hustet sich fast die Seele aus dem Leib."; 01243 } 01244 else { 01245 ParseRest(str); 01246 if (!who && !adverb) 01247 Return("Wenn Du schon was hinter huste tippst, dann bitte was " 01248 +"vernuenftiges!\n"); 01249 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01250 "Dir selber koennen nur andere was husten.", 01251 "Bitte huste nur Lebewesen was.")) 01252 return 1; 01253 out_sel="Du hustest@@ wem@@@@adverb@@"+(who? " was" : "")+"."; 01254 if (who) out_vic="@@name@@ hustet Dir@@adverb@@was."; 01255 out_oth="@@name@@ hustet@@ wem@@@@adverb@@"+(who? " was" : "")+"."; 01256 } 01257 return FeelIt(); 01258 01259 /**************** Jubeln ***************/ 01260 case "jubel": 01261 case "jubl": 01262 HELPCHECK("jubel"); 01263 ParseRest(str); 01264 if (str && !who && !adverb) 01265 Return("Juble wie? Oder wem zu?\n"); 01266 out_sel="Du jubelst@@ wem@@@@adverb@@"+(who ? " zu." : "."); 01267 if (who) out_vic="@@gname@@ jubelt Dir@@adverb@@ zu."; 01268 out_oth="@@gname@@ jubelt@@ wem@@@@adverb@@"+(who ? " zu." : "."); 01269 return FeelIt(); 01270 01271 /**************** Keuchen ***************/ 01272 case "keuch": 01273 HELPCHECK("keuch"); 01274 if (ghost()) 01275 Return("Als Geist strengt Dich nix an - also wird auch nicht " 01276 +"gekeucht.\n"); 01277 ParseRest(str); 01278 if (str && !adverb) 01279 Return("Keuche wie?\n"); 01280 out_sel="Du keuchst"+(adverb ? "@@adverb@@." : " vor Anstrengung."); 01281 out_oth="@@name@@ keucht"+(adverb ? "@@adverb@@." : " vor Anstrengung."); 01282 return FeelIt(); 01283 01284 /**************** Kichern ***************/ 01285 case "kicher": 01286 HELPCHECK("kicher"); 01287 if (!str) { 01288 out_sel="Du kicherst. (Wie albern von Dir)"; 01289 out_oth="@@gname@@ gibt ein albernes Kichern von sich."; 01290 } 01291 else { 01292 ParseRest(str); 01293 if (!who && !adverb) 01294 Return("Das haut so nicht hin, gib vernuenftige Parameter.\n"); 01295 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01296 "In diesem Fall nimm bitte nur kicher.", 01297 "Musst schon etwas Lebendes angeben, nichts Totes.")) 01298 return 1; 01299 out_sel="Du kicherst@@adverb@@"+(who ? " hinter "+who->name(WESSEN)+ 01300 " Ruecken." : "."); 01301 if (who) out_vic="Jemand kichert@@adverb@@ hinter deinem Ruecken."; 01302 out_oth="@@gname@@ kichert@@adverb@@"+(who ? " hinter "+who->name(WESSEN) 01303 +" Ruecken." : "."); 01304 } 01305 return FeelIt(); 01306 01307 /**************** Kitzeln ***************/ 01308 case "kitzel": 01309 case "kitzl": 01310 HELPCHECK("kitzel"); 01311 GHOSTCHECK("Mit Deinen immateriellen Fingern schaffst Du das nicht.\n", 01312 gname()+" muss gerade feststellen, dass man mit\n" 01313 +"immateriellen Fingern nicht kitzeln kann.\n", 0); 01314 ParseRest(str); 01315 if (!who) 01316 Return("Wen willst Du kitzeln?\n"); 01317 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01318 "Du bist doch kein Masochist! Du laesst es bleiben.", 01319 "Dinge sind so selten kitzlig. Lass es bleiben.")) 01320 return 1; 01321 if (member(({"highlander","hobo"}), who->query_real_name())>-1) 01322 switch (who->query_real_name()) { 01323 case "highlander": str1="unter"; str2="Federn"; break; 01324 case "hobo" : str1="an"; str2="Kinn"; break; 01325 } 01326 else if (who->QueryProp(P_RACE)) 01327 switch (lower_case(who->QueryProp(P_RACE))) { 01328 case "drache" : str1="unter";str2="Schuppen"; 01329 t_g=FEMALE; t_n=PLURAL; break; 01330 case "greif" : str1="unter";str2="Federn"; 01331 t_g=FEMALE; t_n=PLURAL; break; 01332 default : str1="an"; str2="Kinn"; t_g=NEUTER; t_n=SINGULAR; 01333 } 01334 else { 01335 str1="an"; str2="Kinn"; t_g=NEUTER; t_n=SINGULAR; 01336 } 01337 if (getuid(who)=="trest" || getuid(who)=="woelkchen") { 01338 str1="an"; str2="Fuessen"; t_g=MALE; t_n=PLURAL; 01339 } 01340 out_sel="Du kitzelst@@ wen@@@@adverb@@ "+str1+" "+who->QPP(t_g,WEM,t_n) 01341 +" "+str2+".\n@@wer@@ versucht, sich zu beherrschen, muss aber " 01342 +"doch lachen."; 01343 out_vic="@@name@@ kitzelt Dich@@adverb@@ "+str1+" Deine" 01344 +(t_n ? "n" : (t_g==FEMALE ? "r" : "m"))+" "+str2 01345 +".\nDu versuchst, Dich zu beherrschen, musst aber doch lachen."; 01346 out_oth="@@name@@ kitzelt@@ wen@@@@adverb@@ "+str1+" " 01347 +who->QPP(t_g,WEM,t_n)+" "+str2 01348 +".\n@@wer@@ versucht, sich zu beherrschen, muss aber doch lachen."; 01349 return FeelIt(); 01350 01351 /**************** Klatschen ***************/ 01352 case "klatsch": 01353 HELPCHECK("klatsch"); 01354 GHOSTCHECK("Deine Haende sausen durcheinander durch.\n", 01355 gname()+" will in die Haende klatschen - aber sie\n" 01356 +"sausen durcheinander durch.\n", 0); 01357 ParseRest(str); 01358 if (!adverb && str) 01359 Return("Klatsche wie?\n"); 01360 out_sel="Du klatschst@@adverb@@ in die Haende."; 01361 out_oth="@@name@@ klatscht@@adverb@@ in die Haende."; 01362 return FeelIt(); 01363 01364 /**************** Klopfen ***************/ 01365 case "klopf": 01366 HELPCHECK("klopf"); 01367 if (!str||sscanf(str,"%s auf schulter",sfoo)!=1) 01368 if (!str||sscanf(str,"%s auf die schulter",sfoo)!=1) 01369 Return("Klopfe wie wem wieso was?\n"); 01370 if (ghost()) 01371 Return("Das geht leider nicht mit durchlaessigen Haenden.\n"); 01372 str=sfoo; 01373 if (str=="") str=0; 01374 ParseRest(str); 01375 if (!who) 01376 Return("Klopfe wem auf die Schulter?\n"); 01377 out_sel="Du klopfst @@wem@@@@adverb@@ auf die Schulter."; 01378 out_vic="@@name@@ klopft Dir@@adverb@@ auf die Schulter."; 01379 out_oth="@@name@@ klopft @@wem@@@@adverb@@ auf die Schulter."; 01380 return FeelIt(); 01381 01382 /**************** Knabbern ***************/ 01383 case "knabber": 01384 HELPCHECK("knabber"); 01385 if (ghost()) 01386 Return("Sorry, aber dafuer fehlt Dir im Moment der noetige " 01387 +"\"Biss\"...\n"); 01388 ParseRest(str); 01389 if (!who) 01390 Return("Knabbere wen an?\n"); 01391 if (CheckLife(NOT_SELF,NOT_DEAD, 01392 "Du kommst nicht an dein eigenes Ohr ran...", 01393 "Noe, noe, das schmeckt bestimmt nicht gut.")) 01394 return 1; 01395 out_sel="Du knabberst@@adverb@@ an "+who->name(WESSEN)+" Ohr."; 01396 out_vic="@@name@@ knabbert@@adverb@@ an Deinem Ohr."; 01397 out_oth="@@name@@ knabbert@@adverb@@ an "+who->name(WESSEN)+" Ohr."; 01398 return FeelIt(); 01399 01400 /**************** Knicksen ***************/ 01401 case "knicks": 01402 HELPCHECK("knicks"); 01403 GHOSTCHECK("Du knickst in der Mitte ab, kriegst Dich aber schnell wieder " 01404 +"zusammen.\n", 01405 gname()+" knick(s)t in der Mitte ab, kriegt sich aber\n" 01406 +"zum Glueck schnell wieder zusammen.\n", 0); 01407 if (!str) { 01408 out_sel="Du machst einen anmutigen Knicks."; 01409 out_oth="@@name@@ macht einen anmutigen Knicks."; 01410 } 01411 else { 01412 ParseRest(str,"vor"); 01413 if (for_all) { 01414 out_sel="Du knickst@@adverb@@ vor @@alle@@."; 01415 out_vic="@@name@@ knickst@@adverb@@ vor @@alle@@."; 01416 return MixedOut(WEM); 01417 } 01418 if (!who && !adverb) 01419 Return("Knickse irgendwie oder vor jemandem.\n"); 01420 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01421 "Wie willst Du das denn schaffen?", 01422 "Vor Sachen wird hier nicht geknickst!")) 01423 return 1; 01424 out_sel="Du knickst@@adverb@@"+(who ? " vor" : "")+"@@ wem@@."; 01425 if (who ) out_vic="@@name@@ knickst@@adverb@@ vor Dir."; 01426 out_oth="@@name@@ knickst@@adverb@@"+(who ? " vor" : "")+"@@ wem@@."; 01427 } 01428 return FeelIt(); 01429 01430 /**************** Knirschen ***************/ 01431 case "knirsch": 01432 HELPCHECK("knirsch"); 01433 if (ghost()) 01434 Return("Du kannst mit nichts knirschen, so als Geist. Versuche doch " 01435 +"dafuer\nmal, zu rasseln...\n"); 01436 ParseRest(str); 01437 if (str && !adverb) 01438 Return("Knirsche wie?\n"); 01439 switch (QueryProp(P_RACE)) { 01440 case "greif" : str1="dem Schnabel."; break; 01441 case "sandtiger" : str1="den Fangzaehnen."; break; 01442 case "drache" : str1="den Fangzaehnen."; break; 01443 default : str1="den Zaehnen."; 01444 } 01445 out_sel="Du knirschst@@adverb@@ mit "+str1; 01446 out_oth="@@name@@ knirscht@@adverb@@ mit "+str1; 01447 return FeelIt(); 01448 01449 /**************** Knuddeln ***************/ 01450 case "knuddel": 01451 case "knuddl": 01452 HELPCHECK("knuddel"); 01453 if (ghost()) 01454 Return("Sorry, nicht als Geist.\n"); 01455 ParseRest(str); 01456 if (for_all) { 01457 out_sel="Du knuddelst @@alle@@@@adverb@@."; 01458 out_vic="@@name@@ knuddelt @@alle@@@@adverb@@."; 01459 return MixedOut(WEN); 01460 } 01461 if (!who) 01462 Return("Knuddle wen?\n"); 01463 if (CheckLife(NOT_SELF,NOT_DEAD, 01464 "Das bringt doch nix, lass es halt.", 01465 "Du kannst soviel ich weiss ausser Lebewesen nur Teddys knuddeln.")) 01466 return 1; 01467 out_sel="Du knuddelst@@ wen@@@@adverb@@."; 01468 out_vic="@@name@@ knuddelt Dich@@adverb@@."; 01469 out_oth="@@name@@ knuddelt@@ wen@@@@adverb@@."; 01470 return FeelIt(); 01471 01472 /**************** Knurren ***************/ 01473 case "knurr": 01474 HELPCHECK("knurr"); 01475 ParseRest(str); 01476 if (for_all) { 01477 out_sel="Du knurrst @@alle@@@@adverb@@ an."; 01478 out_vic="@@gname@@ knurrt @@alle@@@@adverb@@ an."; 01479 return MixedOut(WEN); 01480 } 01481 if (str && !who && !adverb) 01482 Return("Wen anknurren oder wie knurren?\n"); 01483 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01484 "Du knurrst in Dich hinein.", 01485 "Reagiert nicht. Solltest wohl besser Lebwesen anknurren.")) 01486 return 1; 01487 out_sel="Du knurrst@@ wen@@@@adverb@@"+(who ? " an." : "."); 01488 if (who) out_vic="@@gname@@ knurrt Dich@@adverb@@ an."; 01489 out_oth="@@gname@@ knurrt@@ wen@@@@adverb@@"+(who ? " an." : "."); 01490 return FeelIt(); 01491 01492 /**************** Knutschen ***************/ 01493 case "knutsch": 01494 HELPCHECK("knutsch"); 01495 if (ghost()) 01496 Return("Das kannst Du als Geist leider nicht. Irgendwie fehlt Dir " 01497 +"dazu das Herz.\n"); 01498 ParseRest(str); 01499 if (!who) 01500 Return("Knutsche wen ab?\n"); 01501 if (CheckLife(NOT_SELF,NOT_DEAD, 01502 "Das geht nicht.", 01503 "Igitt! Lieber nicht!")) 01504 return 1; 01505 out_sel="Du gibst @@wem@@@@adverb@@ einen RICHTIGEN Kuss."; 01506 out_vic="@@name@@ gibt Dir@@adverb@@ einen tiefen und hingebungsvollen " 01507 +"Kuss.\nDu schwebst im 7. Himmel."; 01508 out_oth="@@name@@ gibt @@wem@@@@adverb@@ einen tiefen und " 01509 +"hingebungsvollen Kuss."; 01510 return FeelIt(); 01511 01512 /**************** Kotzen ***************/ 01513 case "kotz": 01514 HELPCHECK("kotz"); 01515 if (ghost()) 01516 Return("Ne, das ist eins von den Sachen, die als Geist nicht gehen.\n"); 01517 ParseRest(str); 01518 if (str && !who && !adverb) 01519 Return("Kotze wie? Kotze auf wen?\n"); 01520 if (who && CheckLife(NOT_SELF,0, 01521 "Igitt, nein danke.")) 01522 return 1; 01523 if(!str) { 01524 out_sel="Du kotzt ueber deine Schuhe."; 01525 out_oth="@@name@@ verdreht die Augen und kotzt."; 01526 } 01527 else { 01528 out_sel="Du kotzt@@adverb@@"+(who ? " auf @@wen@@." : "."); 01529 if (who) out_vic="@@name@@ kotzt@@adverb@@ auf Dich."; 01530 out_oth="@@name@@ kotzt@@adverb@@"+(who ? " auf @@wen@@." : "."); 01531 } 01532 return FeelIt(); 01533 01534 /**************** Kratzen ***************/ 01535 case "kratz": 01536 HELPCHECK("kratz"); 01537 ParseRest(str); 01538 if (who && (who!=this_player())) 01539 Return("Das mach mal schoen nur mit Dir selber.\n"); 01540 if (str && !adverb) 01541 Return("Wie willst Du Dich kratzen?\n"); 01542 out_sel="Du kratzt dich@@adverb@@ am Kopp."; 01543 out_oth="@@gname@@ kratzt sich@@adverb@@ am Kopp."; 01544 return FeelIt(); 01545 01546 /**************** Krieche ***************/ 01547 case "kriech": 01548 HELPCHECK("kriech"); 01549 ParseRest(str); 01550 out_sel="Du kriechst"+(who ? " vor @@wem@@" : "")+"@@adverb@@ im Staub."; 01551 if (who) out_vic="@@gname@@ kriecht@@adverb@@ vor Dir im Staub."; 01552 out_oth="@@gname@@ kriecht"+(who ? " vor @@wem@@" : "") 01553 +"@@adverb@@ im Staub."; 01554 return FeelIt(); 01555 01556 /**************** Kuessen ***************/ 01557 case "kuess": 01558 HELPCHECK("kuess"); 01559 if (ghost()) 01560 Return("Als Geist kannst Du leider niemanden kuessen.\n"); 01561 ParseRest(str); 01562 if (!who) 01563 Return("Wen willst Du kuessen?\n"); 01564 if (CheckLife(NOT_SELF,NOT_DEAD, 01565 "Da hast Du aber Schwierigkeiten... Du gibt es schliesslich auf.", 01566 "Nix. Absolut nix. Kuesse lieber Lebewesen - die reagieren\n" 01567 +"wenigstens (und sei es, dass sie Dich fressen...).")) 01568 return 1; 01569 out_sel="Du kuesst@@ wen@@@@adverb@@."; 01570 out_vic="@@name@@ kuesst Dich@@adverb@@."; 01571 out_oth="@@name@@ kuesst@@ wen@@@@adverb@@."; 01572 FeelIt(); 01573 if (who->QueryProp(P_FROG)&&QueryProp(P_LEVEL)>who->QueryProp(P_LEVEL)) { 01574 tell_room(environment(this_player()),"PLOPP!\n"); 01575 write("Huch! Du wirst auf einmal so gruen und klein und kriegst auf\n" 01576 +"einmal furchtbar Hunger auf Fliegen und so...\n"); 01577 who->Message("Auf einmal wird die Welt um Dich wieder so klein, wie sie\n" 01578 +" frueher mal war - und vor Dir sitzt ein kleiner gruener Frosch.\n"); 01579 say(who->name(WER)+" steht auf einmal da und schaut dumm aus der " 01580 +"Waesche. Dafuer fehlt\njetzt seltsamerweise "+capname() 01581 +". Die Gesamtzahl an kleinen gruenen\nFroeschen im Raum hat sich " 01582 +"jedoch nicht geaendert...\n",({who,this_player()})); 01583 who->SetProp(P_FROG,0); 01584 SetProp(P_FROG,1); 01585 } 01586 return 1; 01587 01588 /**************** Kuscheln ***************/ 01589 case "kuschel": 01590 case "kuschl": 01591 HELPCHECK("kuschel"); 01592 GHOSTCHECK("Dazu bist Du als Geist viel zu kalt und gar " 01593 +"schroecklich anzusehen.\n", 01594 gname()+" scheint Anwandlungen zu haben, sich an jemand " 01595 +"ankuscheln zu wollen.\nEntsetzt springen alle zurueck, weil " 01596 +"dazu ist er doch zu kalt und schroecklich\nanzusehen.\n", 0); 01597 ParseRest(str); 01598 if (!who) 01599 Return("An wen willst Du Dich ankuscheln?\n"); 01600 out_sel="Du kuschelst Dich@@adverb@@ an @@wen@@ an."; 01601 out_vic="@@name@@ kuschelt sich@@adverb@@ an Dich an."; 01602 out_oth="@@name@@ kuschelt sich@@adverb@@ an @@wen@@ an."; 01603 return FeelIt(); 01604 01605 /**************** Lachen ***************/ 01606 case "lach": 01607 HELPCHECK("lach"); 01608 GHOSTCHECK("Du lachst mit hohler Stimme. Den Umstehenden (sind doch welche" 01609 +" da, oder?)\nlaeuft es kalt den Ruecken runter.\n", 01610 gname()+" lacht mit hohler Stimme.\nDir laeuft es eiskalt den Ruecken" 01611 +" runter.\n", 0); 01612 if (!str) { 01613 out_sel="Du brichst vor Lachen zusammen."; 01614 out_oth="@@name@@ bricht vor Lachen zusammen."; 01615 } 01616 else { 01617 ParseRest(str); 01618 if (for_all) { 01619 out_sel="Du lachst@@adverb@@ ueber @@alle@@."; 01620 out_vic="@@name@@ lacht@@adverb@@ ueber @@alle@@."; 01621 return MixedOut(WEN); 01622 } 01623 if (!who && !adverb) 01624 Return("Lache wie, lache ueber wen?\n"); 01625 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01626 "Lach Dich doch nicht selber aus - das machen schon andere...", 01627 "Gelacht wird nur ueber Lebewesen (die koennen sich drueber aergern).")) 01628 return 1; 01629 out_sel="Du lachst@@adverb@@"+(who?" ueber@@ wen@@":"")+"."; 01630 if (who) out_vic="@@name@@ lacht@@adverb@@ ueber Dich."; 01631 out_oth="@@name@@ lacht@@adverb@@"+(who?" ueber@@ wen@@":"")+"."; 01632 } 01633 return FeelIt(); 01634 01635 /**************** Laecheln ***************/ 01636 case "laechel": 01637 case "laechl": 01638 HELPCHECK("laechel"); 01639 if (ghost()) { 01640 write("Du laechelst innerlich.\n"); 01641 return 1; 01642 } 01643 if(!str) { 01644 out_sel="Du laechelst."; 01645 out_oth="@@name@@ laechelt."; 01646 } 01647 else { 01648 ParseRest(str); 01649 if (for_all) { 01650 out_sel="Du laechelst @@alle@@@@adverb@@ an."; 01651 out_vic="@@name@@ laechelt @@alle@@@@adverb@@ an."; 01652 return MixedOut(WEN); 01653 } 01654 if (!who && !adverb && str) 01655 Return("Wie oder wen?\n"); 01656 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01657 "Musst schon jemand anders anlaecheln.", 01658 "Bitte ein Lebewesen anlaecheln.")) 01659 return 1; 01660 out_sel="Du laechelst@@ wen@@@@adverb@@"+(who ? " an." : "."); 01661 if (who) out_vic="@@name@@ laechelt Dich@@adverb@@ an."; 01662 out_oth="@@name@@ laechelt@@ wen@@@@adverb@@"+(who ? " an." : "."); 01663 } 01664 return FeelIt(); 01665 01666 /**************** Liebe ***************/ 01667 /* These lines appear Courtesy of Angus@MorgenGrauen. So long, and thanks */ 01668 /* for all the fish, errr, text, Angus :) */ 01669 case "lieb": 01670 HELPCHECK("lieb"); 01671 if (ghost()) 01672 Return("Auf diese Freuden musst Du als Geist leider verzichten.\n"); 01673 ParseRest(str); 01674 if (!who) 01675 Return("Wen hast Du lieb?\n"); 01676 if (CheckLife(NOT_SELF,NOT_DEAD, 01677 "Ja, ich weiss, Du magst Dich, aber das musst Du nicht zur Schau" 01678 +"stellen.", 01679 "Du entwickelst seltsame Neigungen, finde ich.")) 01680 return 1; 01681 str1=(who->QueryProp(P_GENDER)==FEMALE ? "ihr" : "ihm"); 01682 /* old version: 01683 out_sel="Du fluesterst @@wem@@@@adverb@@ liebevolle Worte ins Ohr."; 01684 out_vic=gname()+" fluestert Dir@@adverb@@ liebevolle Worte ins Ohr."; 01685 out_oth=gname()+" fluestert@@adverb@@ sanfte Worte zu @@wem@@."; 01686 */ 01687 out_sel="Du schliesst die Augen, schmiegst Dich eng an @@wen@@ und gibst" 01688 +LF+str1+" einen zaertlichen und leidenschaftlichen Kuss.\n" 01689 +"Um Dich herum versinkt die Welt und Du glaubst, auf Wolken zu " 01690 +"schweben."; 01691 out_vic="@@name@@ drueckt Dich zaertlich an sich und gibt Dir\n" 01692 +"einen zaertlichen und leidenschaftlichen Kuss. Du schliesst die\n" 01693 +"Augen und traeumst ein wenig......Du schwebst auf Wolken direkt\n" 01694 +"in den siebten Himmel."; 01695 out_oth="Du schaust dezent weg, als sich @@name@@ und "+who->name() 01696 +" verliebt in die Arme\nsinken."; 01697 return FeelIt(); 01698 01699 /**************** Loben ***************/ 01700 case "lob": 01701 HELPCHECK("lob"); 01702 if (!str) 01703 Return("Wen oder was willst Du loben?\n"); 01704 ParseRest(str); 01705 if (who==ME) { 01706 ofoo=clone_object("/obj/furz"); 01707 ofoo->set_furzer(this_player()); 01708 ofoo->set_eigenlob(); 01709 ofoo->move(environment(this_player())); 01710 //DEBUG Furz zum Eigenlob patchen :> 01711 out_sel="Du lobst Dich selber@@adverb@@. Die Folgen kennst Du ja..."; 01712 out_oth="@@gname@@ lobt sich selber@@adverb@@, mit den bekannten Folgen."; 01713 } else if (who) { 01714 out_sel="Du lobst @@wen@@@@adverb@@."; 01715 out_vic="@@gname@@ lobt Dich@@adverb@@."; 01716 out_oth="@@gname@@ lobt @@wen@@@@adverb@@."; 01717 } else { 01718 out_sel="Du lobst "+str+"."; 01719 out_oth="@@gname@@ lobt "+str+"."; 01720 } 01721 return FeelIt(); 01722 01723 /**************** Moppern ***************/ 01724 case "mopper": 01725 HELPCHECK("mopper"); 01726 ParseRest(str); 01727 if (str && !adverb) 01728 Return("Moppere wie?\n"); 01729 out_sel="Du mopperst@@adverb@@."; 01730 out_oth="@@gname@@ moppert@@adverb@@."; 01731 return FeelIt(); 01732 01733 /**************** Mustern ***************/ 01734 case "muster": 01735 HELPCHECK("muster"); 01736 ParseRest(str); 01737 if (!who) 01738 Return("Mustere wen?\n"); 01739 out_sel="Du musterst @@wen@@@@adverb@@."; 01740 out_vic="@@gname@@ mustert Dich@@adverb@@."; 01741 out_oth="@@gname@@ mustert @@wen@@@@adverb@@."; 01742 return FeelIt(); 01743 01744 /**************** Nicken ***************/ 01745 case "ja": 01746 case "nick": 01747 HELPCHECK("nick"); 01748 ParseRest(str); 01749 if (for_all) { 01750 out_sel="Du nickst @@alle@@@@adverb@@ zu."; 01751 out_vic="@@gname@@ nickt @@alle@@@@adverb@@ zu."; 01752 return MixedOut(WEM); 01753 } 01754 if (str && !who && !adverb) 01755 Return("Nicke wie oder wem zu oder wem wie zu?\n"); 01756 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01757 "Du willst Dir selber zunicken? Lieber nicht, das sieht so albern aus.", 01758 "Hm. Nix passiert. Von Lebewesen bekommt man meistens mehr Feedback.")) 01759 return 1; 01760 out_sel="Du nickst@@ wem@@@@adverb@@" 01761 +(who ? " zu." : (adverb ? "." : " zustimmend.")); 01762 if (who) out_vic="@@gname@@ nickt Dir@@adverb@@ zu."; 01763 out_oth="@@gname@@ nickt@@ wem@@@@adverb@@" 01764 +(who ? " zu." : (adverb ? "." : " zustimmend.")); 01765 return FeelIt(); 01766 01767 /**************** Niesen ***************/ 01768 case "nies": 01769 HELPCHECK("nies"); 01770 if (ghost()) 01771 Return("Du hast keine Nase mehr, in der es Dich jucken koennte...\n"); 01772 ParseRest(str); 01773 if (str && !adverb) 01774 Return("Niese wie?\n"); 01775 out_sel="Haaaaaa-tschi! Gesundheit!"+(adverb ? " Du niest@@adverb@@." : ""); 01776 out_oth="Haaaaaa-tschi! @@name@@ niest@@adverb@@."; 01777 return FeelIt(); 01778 01779 /**************** Ohrfeigen ***************/ 01780 case "gib": 01781 HELPCHECK("gib"); 01782 if (!str) 01783 Return("Gib wem was?\n"); 01784 if (sscanf( str,"%s ohrfeige",str1)==0) 01785 return 0; 01786 ParseRest(str, ({"ohrfeige", "eine ohrfeige"})); 01787 if (for_all) { 01788 out_sel="Du verpasst @@alle@@@@adverb@@ eine Ohrfeige."; 01789 out_vic="@@name@@ verpasst @@alle@@@@adverb@@ eine Ohrfeige."; 01790 return MixedOut(WEM); 01791 } 01792 if (!who) 01793 Return("Gib wem eine Ohrfeige?\n"); 01794 if (CheckLife(NOT_SELF,NOT_DEAD, 01795 "Dazu sind Dir Deine Backen doch zu schade.", 01796 "Du wirst doch nichts schlagen, was sich nicht wehren kann?")) 01797 return 1; 01798 GHOSTCHECK("Deine Hand saust mit voller Wucht durch dein Opfer durch!", 01799 gname()+" will "+who->name(WEM)+" eine Ohrfeige geben - aber die Hand\n" 01800 +"saust mit voller Wucht durch das Opfer durch!", 0); 01801 out_sel="Du verpasst @@wem@@@@adverb@@ eine schallende Ohrfeige."; 01802 out_vic="@@name@@ verpasst Dir@@adverb@@ eine Watsche, dass Dir Hoeren " 01803 +"und Sehen vergeht."; 01804 out_oth="@@name@@ verpasst @@wem@@@@adverb@@ eine schallende Ohrfeige."; 01805 return FeelIt(); 01806 01807 /**************** Pfeifen ***************/ 01808 case "pfeif": 01809 HELPCHECK("pfeif"); 01810 GHOSTCHECK("Es kommt leider nur (nicht mal heisse) Luft, aber kein " 01811 +"Pfiff.\n", 01812 gname()+" spitzt den Mund und pustet angestrengt. Nichts passiert.\n", 0); 01813 ParseRest(str, "nach"); 01814 if (str && !who && !adverb) 01815 Return("Pfeife wie? Pfeife wem nach? Haeh?\n"); 01816 if (who && CheckLife(NOT_SELF,NOT_DEAD, 01817 "Was willst Du denn damit ausdruecken? Das gibt fuer mich keinen Sinn.", 01818 "Ich habe keine Lust dazu.")) 01819 return 1; 01820 out_sel="Du pfeifst@@ wen@@@@adverb@@" 01821 +(who ? " nach." : (adverb ? "." : " anerkennend.")); 01822 if (who) out_vic="@@name@@ pfeift Dir@@adverb@@ nach."; 01823 out_oth="@@name@@ pfeift@@ wen@@@@adverb@@" 01824 +(who ? " nach." : (adverb ? "." :" anerkennend.")); 01825 return FeelIt(); 01826 01827 /**************** Philosophieren ***************/ 01828 case "philosophier": 01829 HELPCHECK("philosophier"); 01830 ParseRest(str); 01831 out_sel="Du philosophierst"+(adverb ? "@@adverb@@." : 01832 (str ? " ueber "+str+"." : ".")); 01833 out_oth="@@gname@@ philosophiert"+(adverb ? "@@adverb@@." : 01834 (str ? " ueber "+str+"." : ".")); 01835 return FeelIt(); 01836 01837 /**************** (Nase) Putzen ***************/ 01838 case "putz": 01839 HELPCHECK("putz"); 01840 if (ghost()) 01841 Return("Nix da zum Putzen, so nebuloes, wie Du bist.\n"); 01842 ParseRest(str, ({"nase", "die nase"})); 01843 if (str && str!="nase" && !adverb) 01844 Return("Putze Deine Nase wie?\n"); 01845 out_sel="Du putzt Deine Nase@@adverb@@."; 01846 out_oth="@@name@@ putzt@@adverb@@ "+QPP(FEMALE,WEN)+" Nase."; 01847 return FeelIt(); 01848 01849 /**************** Quaken ***************/ 01850 case "quak": 01851 HELPCHECK("quak"); 01852 ParseRest(str); 01853 if (str && !adverb) 01854 Return("Quake wie?\n"); 01855 sfoo=""; 01856 flag=QueryProp(P_FROG)&&!ghost(); 01857 for (t_g=0; t_g<=random(flag ? 4 : 2); t_g++) { 01858 sfoo+=(flag ? " Qu" : " kw"); 01859 for (t_n=0; t_n<=random(flag ? 10 : 5); t_n++) 01860 sfoo+="aA"[random(1)..random(1)]; 01861 sfoo+="k"; 01862 } 01863 if (!flag) 01864 sfoo=lower_case(sfoo); 01865 else 01866 sfoo+="!"; 01867 out_sel="Du quakst"+(adverb ? "@@adverb@@" : (flag ? " aus voller Kehle" 01868 : " in etwa wie ein Frosch"))+":"+sfoo; 01869 out_oth="@@gname@@ quakt"+(adverb ? "@@adverb@@" : (flag ? " aus voller Kehle" 01870 : " in etwa wie ein Frosch"))+":"+sfoo; 01871 return FeelIt(); 01872 01873 /**************** Quietschen ***************/ 01874 case "quietsch": 01875 case "quiek": 01876 HELPCHECK("quiek"); 01877 ParseRest(str); 01878 if (str && !adverb) 01879 Return("Quietsche wie?\n"); 01880 out_sel="Du quietschst"+(adverb ? "@@adverb@@." : " vergnuegt."); 01881 out_oth="@@gname@@ quietscht"+(adverb ? "@@adverb@@." : " vergnuegt."); 01882 return FeelIt(); 01883 01884 /**************** Raeuspern ***************/ 01885 case "raeusper": 01886 HELPCHECK("raeusper"); 01887 ParseRest(str); 01888 if (str && !adverb) 01889 Return("Hm? Wie meinen?\n"); 01890 out_sel="Du raeusperst Dich@@adverb@@."; 01891 out_oth="@@gname@@ raeuspert sich@@adverb@@."; 01892 return FeelIt(); 01893 01894 /**************** Reiben ***************/ 01895 case "reib": 01896 HELPCHECK("reib"); 01897 if (ghost()) 01898 Return("Du hast nichts zum Reiben, aber auch gar nichts.\n"); 01899 if (str && (sscanf(str,"%s die Augen",sfoo)==1 || sscanf(str,"%s Augen",sfoo)==1)) 01900 str=sfoo; 01901 else if (str && (sscanf(str,"%s die Haende",sfoo)==1 01902 ||sscanf(str,"%s Haende",sfoo)==1)) { 01903 flag=2; 01904 str=sfoo; 01905 } 01906 if (str=="") str=0; 01907 ParseRest(str); 01908 if (str && !adverb) 01909 Return("Reibe wie die "+(flag==2 ? "Haende" : "Augen")+"?\n"); 01910 out_sel="Du reibst Dir"+(adverb ? "@@adverb@@" 01911 : (flag==2 ? " vergnuegt" : " muede"))+" die " 01912 +(flag==2 ? "Haende." : "Augen."); 01913 out_oth="@@name@@ reibt sich"+(adverb ? "@@adverb@@" 01914 : (flag==2 ? " vergnuegt" : " muede"))+" die " 01915 +(flag==2 ? "Haende." : "Augen."); 01916 return FeelIt(); 01917 01918 /**************** Rotfln ***************/ 01919 case "rotfl": 01920 HELPCHECK("rotfl"); 01921 ParseRest(str); 01922 if (str && !adverb) 01923 Return("Rotfl wie?\n"); 01924 out_sel="Du rotflst@@adverb@@."; 01925 out_oth="@@gname@@ rotflt@@adverb@@."; 01926 return FeelIt(); 01927 01928 /**************** Ruelpsen ***************/ 01929 case "ruelps": 01930 HELPCHECK("ruelps"); 01931 GHOSTCHECK("Ein leichter Windhauch entfaehrt Deinem Mund, mehr nicht.\n", 01932 "Dem Mund des Geistes von "+capname() 01933 +" entfaehrt ein leichtes Lueftchen.\n", 0); 01934 if (!str) { 01935 out_sel="BOOOOEEERRRRPP! Entschuldige dich gefaelligst!"; 01936 out_oth="@@name@@ ruelpst unanstaendig."; 01937 } 01938 else { 01939 ParseRest(str); 01940 if (!adverb) { 01941 write("Ruelpse wie (schlimm genug, dass Du Dich nicht beherrschen " 01942 +"kannst!)?\n"); 01943 return 1; 01944 } 01945 out_sel="Du ruelpst@@adverb@@. Schaem Dich!"; 01946 out_oth="@@name@@ ruelpst@@adverb@@ und wird nicht mal rot dabei."; 01947 } 01948 return FeelIt(); 01949 } 01950 01951 switch (vb) { 01952 /**************** Runzeln ***************/ 01953 case "runzel": 01954 case "runzl": 01955 HELPCHECK("runzel"); 01956 if (ghost()) 01957 Return("DAS geht als Geist nun wirklich nicht.\n"); 01958 ParseRest(str,"stirn"); 01959 if (str && !adverb) 01960 Return("Runzle die Stirn wie?\n"); 01961 out_sel="Du runzelst@@adverb@@ die Stirn."; 01962 out_oth="@@name@@ runzelt@@adverb@@ die Stirn."; 01963 return FeelIt(); 01964 01965 /**************** Sabbere ***************/ 01966 case "sabber": 01967 HELPCHECK("sabber"); 01968 sfoo=ghost() ? "schleim" : "sabber"; 01969 ParseRest(str); 01970 if (str && !adverb && !who) 01971 Return("Sabber wie oder wen an?\n"); 01972 out_sel="Du "+sfoo+"st@@ wen@@@@adverb@@ " 01973 +(who ? "an." : "auf den Boden."); 01974 if (who) out_vic="@@gname@@ "+sfoo+"t Dich@@adverb@@ an."; 01975 out_oth="@@gname@@ "+sfoo+"t@@ wen@@@@adverb@@ " 01976 +(who ? "an." : "auf den Boden."); 01977 return FeelIt(); 01978 01979 /**************** Schaemen ***************/ 01980 case "schaem": 01981 HELPCHECK("schaem"); 01982 ParseRest(str); 01983 if (str && !adverb && lower_case(str)!="dich") 01984 Return("Schaeme Dich wie?\n"); 01985 out_sel="Du schaemst Dich@@adverb@@."; 01986 out_oth="@@gname@@ schaemt sich@@adverb@@."; 01987 return FeelIt(); 01988 01989 #ifdef SCHAU_AN 01990 /**************** Schau an ***************/ 01991 case "schau": 01992 HELPCHECK("schau"); 01993 if (!str || old_explode(str, " ")[sizeof(old_explode(str, " "))]!="an") 01994 return 0; 01995 ParseRest(str, "an"); 01996 if (!who) 01997 Return("Schau wen an?\n"); 01998 out_sel="Du schaust @@wen@@@@adverb@@ an."; 01999 out_vic="@@gname@@ schaut Dich@@adverb@@ an."; 02000 out_oth="@@gname@@ schaut @@wen@@@@adverb@@ an."; 02001 return FeelIt(); 02002 #endif 02003 02004 /**************** Schluchzen ***************/ 02005 case "schluchz": 02006 HELPCHECK("schluchz"); 02007 ParseRest(str); 02008 if (str && !adverb) 02009 Return("Schluchze wie?\n"); 02010 out_sel="Du schluchzt"+(adverb ? "@@adverb@@." : " herzzerreissend."); 02011 out_oth="@@gname@@ schluchzt" 02012 +(adverb ? "@@adverb@@." : " herzzerreissend."); 02013 return FeelIt(); 02014 02015 /**************** Schmollen ***************/ 02016 case "schmoll": 02017 HELPCHECK("schmoll"); 02018 GHOSTCHECK("Du schwebst beleidigt in die Ecke.\n", 02019 gname()+" schwebt beleidigt in die Ecke und schmollt.\n", 0); 02020 ParseRest(str); 02021 if (str && !adverb) 02022 Return("Schmolle wie?\n"); 02023 out_sel="Du schmollst@@adverb@@."; 02024 out_oth="@@name@@ geht in die Ecke und schmollt@@adverb@@."; 02025 return FeelIt(); 02026 02027 /**************** Schmunzeln ***************/ 02028 case "schmunzel": 02029 case "schmunzl": 02030 HELPCHECK("schmunzel"); 02031 ParseRest(str); 02032 if (str && !adverb) 02033 Return("Schmunzle wie?\n"); 02034 out_sel="Du schmunzelst@@adverb@@."; 02035 out_oth="@@gname@@ schmunzelt@@adverb@@."; 02036 return FeelIt(); 02037 02038 /**************** Schnalzen ***************/ 02039 case "schnalz": 02040 HELPCHECK("schnalz"); 02041 ParseRest(str, ({"zunge","mit zunge", "mit der zunge"})); 02042 out_sel="Du schnalzt@@adverb@@ mit der Zunge."; 02043 out_oth="@@gname@@ schnalzt@@adverb@@ mit der Zunge."; 02044 return FeelIt(); 02045 02046 /**************** Schnauben ***************/ 02047 case "schnaub": 02048 HELPCHECK("schnaub"); 02049 ParseRest(str); 02050 if (str && !adverb) 02051 Return("Schnaube wie?\n"); 02052 out_sel="Du schnaubst"+(adverb ? "@@adverb@@." : " entruestet."); 02053 out_oth="@@gname@@ schnaubt"+(adverb ? "@@adverb@@." : " entruestet."); 02054 return FeelIt(); 02055 02056 /**************** Schnaufen ***************/ 02057 case "schnauf": 02058 HELPCHECK("schnauf"); 02059 ParseRest(str); 02060 if (str && !adverb) 02061 Return("Schnaufe wie?\n"); 02062 out_sel="Du schnaufst"+(adverb ? "@@adverb@@." : " vor Anstrengung."); 02063 out_oth="@@gname@@ schnauft"+(adverb ? "@@adverb@@." : " vor Anstrengung."); 02064 return FeelIt(); 02065 02066 /**************** Schnippen ***************/ 02067 case "schnipp": 02068 case "schnipps": 02069 HELPCHECK("schnipp"); 02070 GHOSTCHECK("Du schaffst es nicht, weil die Finger durcheinander durch " 02071 +"gehen.\n", 02072 gname()+" versagt beim Schnippen - die Finger\ngehen durcheinander " 02073 +"durch.\n", 0); 02074 ParseRest(str); 02075 if (str && !adverb) 02076 Return("Schnippe wie?\n"); 02077 out_sel="Du schnippst@@adverb@@ mit deinen Fingern."; 02078 out_oth="@@name@@ schnippt@@adverb@@ mit den Fingern."; 02079 return FeelIt(); 02080 02081 /**************** Schnarchen ***************/ 02082 case "schnarch": 02083 HELPCHECK("schnarch"); 02084 if (ghost()) 02085 Return("Ich glaube, da fehlen Dir irgendwie die physischen " 02086 +"Voraussetzungen dazu.\n"); 02087 ParseRest(str); 02088 if (str && !adverb) 02089 Return("Schnarche wie?\n"); 02090 out_sel=(str ? "Zzzzzzzzzzz..." : "Du schnarchst@@adverb@@."); 02091 out_oth="@@name@@ schnarcht "+(str ? "@@adverb@@." : "laut."); 02092 return FeelIt(); 02093 02094 /**************** Schniefen ***************/ 02095 case "snief": 02096 case "schnief": 02097 HELPCHECK("schnief"); 02098 GHOSTCHECK("Du schniefst ganz leise.\n", 02099 gname()+" schnieft ganz leise.\n", 0); 02100 ParseRest(str); 02101 if (str && !adverb) 02102 Return("Schniefe wie?\n"); 02103 out_sel="Du schniefst@@adverb@@."; 02104 out_oth="@@name@@ schnieft@@adverb@@."; 02105 return FeelIt(); 02106 02107 /**************** Schnurren ***************/ 02108 case "schnurr": 02109 HELPCHECK("schnurr"); 02110 ParseRest(str); 02111 if (str && !adverb) 02112 Return("Wie willst Du schnurren?\n"); 02113 out_sel="MMMMIIIIIAAAAAAUUUUUUUU! Du schnurrst" 02114 +(adverb ? "@@adverb@@." : " zufrieden."); 02115 out_oth="@@gname@@ schnurrt"+(adverb ? "@@adverb@@." : " zufrieden."); 02116 return FeelIt(); 02117 02118 /**************** Schreien ***************/ 02119 case "schrei": 02120 HELPCHECK("schrei"); 02121 GHOSTCHECK("AAAAIIIIIIIIIIIEEEEEEEEEEEEEEEEEEEEEEEEEE! Ja, nur Geister " 02122 +"koennen so schreien!\n", 02123 gname()+" schreit - das Blut gefriert fast in deinen Ader!\n", 0); 02124 if (!str) { 02125 out_sel="AUUUAAAHHHHHH!!!!"; 02126 out_oth="@@name@@ schreit laut!"; 02127 } 02128 else { 02129 ParseRest(str); 02130 if (!who && !adverb) 02131 Return("Schreien - wie denn? Oder wen denn anschreien?\n"); 02132 out_sel="Du schreist@@ wen@@@@adverb@@"+(who ? " an" : "")+"."; 02133 if (who) out_vic="@@name@@ schreit Dich@@adverb@@ an."; 02134 out_oth="@@name@@ schreit@@ wen@@@@adverb@@"+(who? " an" : "")+"."; 02135 } 02136 return FeelIt(); 02137 02138 /**************** Schuetteln ***************/ 02139 case "schuettel": 02140 case "schuettl": 02141 HELPCHECK("schuettel"); 02142 ParseRest(str); 02143 if (for_all) { 02144 out_sel="Du schuettelst @@alle@@@@adverb@@ die Haende."; 02145 out_vic="@@gname@@ schuettelt @@alle@@@@adverb@@ die Haende."; 02146 return MixedOut(WEM); 02147 } 02148 if (str && !who && !adverb) 02149 Return("Schuettle wie? Schuettle wem die Hand?\n"); 02150 if(!who) { 02151 out_sel="Du schuettelst Dich@@adverb@@."; 02152 out_oth="@@gname@@ schuettelt sich@@adverb@@."; 02153 } 02154 else { 02155 if (CheckLife(0,NOT_DEAD, 02156 "", "Noe, das mach ich nur mit Lebewesen.")) 02157 return 1; 02158 if (who == this_player()) { 02159 out_sel="Du hebst"+(adverb ? "@@adverb@@" : " triumphierend") 02160 +" Deine Haende ueber den Kopf und schuettelst sie."; 02161 out_oth="@@gname@@ hebt"+(adverb ? "@@adverb@@" : " triumphierend") 02162 +" die Haende ueber den Kopf\nund schuettelt sie."; 02163 } 02164 else { 02165 out_sel="Du schuettelst@@ wem@@@@adverb@@ die Haende."; 02166 if (ghost()) out_sel+="\nNaja, Du versuchst es wenigstens - " 02167 +"immer diese durchlaessigen Haende..."; 02168 out_vic="@@gname@@ schuettelt Dir@@adverb@@ die Haende."; 02169 if (ghost()) out_vic+="\nNaja, Du versuchst es wenigstens - " 02170 +"immer diese durchlaessigen Haende..."; 02171 out_oth="@@gname@@ schuettelt@@ wem@@@@adverb@@ die Haende."; 02172 if (ghost()) out_oth+="\nNaja, Du versuchst es wenigstens - " 02173 +"immer diese durchlaessigen Haende..."; 02174 } 02175 } 02176 return FeelIt(); 02177 02178 /**************** Schweigen ***************/ 02179 case "schweig": 02180 HELPCHECK("schweig"); 02181 ParseRest(str); 02182 if (str && !adverb) 02183 Return("Schweige wie?\n"); 02184 out_sel="Du schweigst@@adverb@@."; 02185 out_oth="@@gname@@ schweigt@@adverb@@."; 02186 return FeelIt(); 02187 02188 /**************** Seufzen ***************/ 02189 case "seufz": 02190 HELPCHECK("seufz"); 02191 GHOSTCHECK("Du seufzt geisterhaft.\n", 02192 gname()+" seufzt geisterhaft. Naja, wie denn sonst?\n", 0); 02193 ParseRest(str); 02194 if (!adverb && str) 02195 Return("Seufze wie?\n"); 02196 out_sel="Du seufzst@@adverb@@."; 02197 out_oth="@@name@@ seufzt@@adverb@@."; 02198 return FeelIt(); 02199 02200 /**************** Singen ***************/ 02201 case "sing": 02202 HELPCHECK("sing"); 02203 if (!str) { 02204 out_sel="Oh sole mio!"; 02205 out_oth="@@gname@@ singt irgendwas italienisches."; 02206 } 02207 else { 02208 ParseRest(str); 02209 out_sel="Du singst@@adverb@@"+(adverb ? "." : " '"+capitalize(str)+"'."); 02210 out_oth="@@gname@@ singt@@adverb@@"+(adverb ? "." : " '" 02211 +capitalize(str)+"'."); 02212 } 02213 return FeelIt(); 02214 02215 /**************** Sniffen ***************/ 02216 case "sniff": 02217 HELPCHECK("sniff"); 02218 ParseRest(str); 02219 if (str && !adverb && !who) 02220 Return("Sniffe wie?\n"); 02221 out_sel="Du sniffst"+(who ? " @@wen@@" : "") 02222 +(adverb ? "@@adverb@@" : " traurig")+(who ? " an." : "."); 02223 if (who) out_vic="@@gname@@ snifft Dich" 02224 +(adverb ? "@@adverb@@" : " traurig")+" an."; 02225 out_oth="@@gname@@ snifft"+(who ? " @@wen@@" : "") 02226 +(adverb ? "@@adverb@@" : " traurig")+(who ? " an." : "."); 02227 return FeelIt(); 02228 02229 /**************** Spucken ***************/ 02230 case "spuck": 02231 HELPCHECK("spuck"); 02232 GHOSTCHECK("Du bringst nicht genug Spucke zusammen.\n", 02233 gname()+" stellt gerade fest, dass man ohne Spucke nicht\n" 02234 +"spucken kann.\n", 0); 02235 ParseRest(str); 02236 if (str && !who && !adverb) 02237 Return("Spucke wen wie an?\n"); 02238 if (who && CheckLife(NOT_SELF,0, 02239 "Hast Du Dich so schlecht benommen? Lass es lieber bleiben.")) 02240 return 1; 02241 out_sel="Du spuckst@@ wen@@@@adverb@@ "+(who ? "an." : "auf den Boden."); 02242 if (who) out_vic="@@name@@ spuckt Dich@@adverb@@ an."; 02243 out_oth="@@name@@ spuckt@@ wen@@@@adverb@@ " 02244 +(who ? "an." : "auf den Boden."); 02245 return FeelIt(); 02246 02247 /**************** Stampfen ***************/ 02248 case "stampf": 02249 HELPCHECK("stampf"); 02250 ParseRest(str, "auf"); 02251 out_sel="Du stampfst@@adverb@@ mit dem Fuss auf."; 02252 out_oth="@@gname@@ stampft@@adverb@@ mit dem Fuss auf."; 02253 return FeelIt(); 02254 02255 /**************** Starren ***************/ 02256 case "starr": 02257 HELPCHECK("starr"); 02258 ParseRest(str); 02259 if (str && !who && !adverb) 02260 Return("Starre wie bzw. wen an?\n"); 02261 if (who && CheckLife(NOT_SELF,0, 02262 "Wie willst Du in Deine eigenen Augen starren? " 02263 +"(Spiegel gelten nicht...)")) 02264 return 1; 02265 out_sel="Du starrst"+(!str ? " ins Leere." : (who ? "@@ wen@@" : "") 02266 +(adverb ? "@@adverb@@" : " vertraeumt")+(who ? " an." : ".")); 02267 if (who) out_vic="@@gname@@ starrt"+(adverb ? "@@adverb@@" : " tief") 02268 +" in Deine Augen."; 02269 out_oth="@@gname@@ starrt"+(!str ? " ins Leere." : (who ? "@@ wen@@" : "") 02270 +(adverb ? "@@adverb@@" : " vertraeumt")+(who ? " an." : ".")); 02271 return FeelIt(); 02272 02273 /**************** Staunen ***************/ 02274 case "staun": 02275 HELPCHECK("staun"); 02276 if (!str) { 02277 out_sel="Du bist erstaunt."; 02278 out_oth="@@gname@@ ist erstaunt."; 02279 } 02280 else { 02281 ParseRest(str, "ueber"); 02282 if (!who && !adverb) 02283 Return("Bla bla. Wenn Du nach staune noch was tippst, sollte " 02284 +"das ein\nLebewesen sein.\n"); 02285 if (who == this_player()) { 02286 out_sel="Du staunst@@adverb@@ ueber Dich selber."; 02287 out_oth="@@gname@@ staunt@@adverb@@ ueber sich selber."; 02288 } 02289 else { 02290 out_sel="Du staunst@@adverb@@"+(who ? " ueber @@wen@@." : "."); 02291 if (who) out_vic="@@gname@@ staunt@@adverb@@ ueber Dich."; 02292 out_oth="@@gname@@ staunt@@adverb@@"+(who ? " ueber @@wen@@." : "."); 02293 } 02294 } 02295 return FeelIt(); 02296 02297 /**************** Stieren ***************/ 02298 case "stier": 02299 HELPCHECK("stier"); 02300 GHOSTCHECK("Du stierst mit hohlem Blick in die Gegend.\n", 02301 gname()+" stiert mit hohlem Blick in die Gegend.\n", 0); 02302 ParseRest(str); 02303 if (str && !who && !adverb) 02304 Return("Stiere wie oder wen an?\n"); 02305 if (who && CheckLife(NOT_SELF,NOT_DEAD, 02306 "Du kannst Dich nicht selber anstieren.", 02307 "Bitte nur Lebewesen anstieren.")) 02308 return 1; 02309 out_sel="Du stierst@@ wen@@@@adverb@@" 02310 +(who ? " an." : " in der Gegend herum."); 02311 if (who) out_vic="@@gname@@ stiert Dich@@adverb@@ an."; 02312 out_oth="@@gname@@ stiert@@ wen@@@@adverb@@" 02313 +(who ? " an." : " in der Gegend herum."); 02314 return FeelIt(); 02315 02316 /**************** Stimme zu ***************/ 02317 case "stimm": 02318 HELPCHECK("stimm"); 02319 ParseRest(str, "zu"); 02320 if (str && !who && !adverb) 02321 Return("Stimme wem zu?\n"); 02322 out_sel="Du stimmst@@ wem@@@@adverb@@ zu."; 02323 if (who) out_vic="@@gname@@ stimmt Dir@@adverb@@ zu."; 02324 out_oth="@@gname@@ stimmt@@ wem@@@@adverb@@ zu."; 02325 return FeelIt(); 02326 02327 /**************** Stoehnen ***************/ 02328 case "stoehn": 02329 HELPCHECK("stoehn"); 02330 GHOSTCHECK("Du stoehnst schauderlich.\n", 02331 gname()+" stoehnt schauderlich. Zum Glueck\nhast Du ziemlich " 02332 +"gute Nerven.\n", 0); 02333 ParseRest(str); 02334 if (!adverb && str) 02335 Return("Wie willst Du stoehnen?\n"); 02336 out_sel="Du stoehnst@@adverb@@."; 02337 out_oth="@@name@@ stoehnt@@adverb@@."; 02338 return FeelIt(); 02339 02340 /**************** Stossen ***************/ 02341 case "stoss": 02342 HELPCHECK("stoss"); 02343 ParseRest(str); 02344 if (!who) 02345 Return("Stosse wen?\n"); 02346 if (CheckLife(NOT_SELF,NOT_DEAD, 02347 "Was soll der Unsinn? Lass das!", 02348 "Das gibt nur bei Lebewesen Sinn.")) 02349 return 1; 02350 GHOSTCHECK("Dein Ellenbogen versinkt in "+who->name(WEM)+".\n", 02351 gname()+" will "+who->name(WEM)+" in die Rippen stossen, aber " 02352 +QPP(MALE,WER,PLURAL)+"\nEllenbogen verteilen keinen Stoss, " 02353 +"sondern versinken.\n", 02354 gname()+" will Dich in die Rippen stossen, aber "+QPP(MALE,WER,PLURAL) 02355 +" Ellenbogen versinken.\n"); 02356 out_sel="Du stoesst@@ wen@@@@adverb@@ in die Rippen."; 02357 out_vic="@@name@@ stoesst Dir@@adverb@@ in die Rippen."; 02358 out_oth="@@name@@ stoesst@@ wen@@@@adverb@@ in die Rippen."; 02359 return FeelIt(); 02360 02361 /**************** Streicheln ***************/ 02362 case "streichel": 02363 case "streichl": 02364 HELPCHECK("streichel"); 02365 ParseRest(str); 02366 if (!who) 02367 Return("Streichle wen?\n"); 02368 if (for_all) { 02369 out_sel="Du streichelst @@alle@@@@adverb@@."; 02370 out_vic="@@gname@@ streichelt @@alle@@@@adverb@@."; 02371 return MixedOut(WEN); 02372 } 02373 if (CheckLife(NOT_SELF,NOT_DEAD, 02374 "Lass Dich von anderen streicheln.", 02375 "Ich streichle nur Lebewesen.")) 02376 return 1; 02377 GHOSTCHECK("Du willst "+who->name(WEN,2)+" streicheln, aber Deine " 02378 +"Haende koennen\nnichts beruehren.\n", 02379 gname()+" will "+who->name(WEN,2)+" streicheln, aber diese\n" 02380 +"Geisterhaende koennen halt nix beruehren...\n", 02381 gname()+" will Dich streicheln, scheitert aber wie so oft an\n" 02382 +"diesen dummen durchlaessigen Geisterhaenden.\n"); 02383 out_sel="Du streichelst @@wen@@@@adverb@@."; 02384 out_vic="@@name@@ streichelt Dich@@adverb@@."; 02385 out_oth="@@name@@ streichelt @@wen@@@@adverb@@."; 02386 return FeelIt(); 02387 02388 /**************** Stupsen ***************/ 02389 case "stups": 02390 HELPCHECK("stups"); 02391 if (ghost()) 02392 Return("Das geht nicht ohne Ellenbogen,..\n"); 02393 ParseRest(str); 02394 if (!who) 02395 Return("Stupse wen an?\n"); 02396 out_sel="Du stupst @@wen@@@@adverb@@ an."; 02397 out_vic="@@name@@ stupst Dich@@adverb@@ an."; 02398 out_oth="@@name@@ stupst @@wen@@@@adverb@@ an."; 02399 return FeelIt(); 02400 02401 /**************** Stutzen ***************/ 02402 case "stutz": 02403 HELPCHECK("stutz"); 02404 ParseRest(str); 02405 if (str && !adverb) 02406 Return("Stutze wie?\n"); 02407 out_sel="Du stutzt@@adverb@@."; 02408 out_oth="@@gname@@ stutzt@@adverb@@."; 02409 return FeelIt(); 02410 02411 /**************** Taetscheln ***************/ 02412 case "taetschel": 02413 case "taetschl": 02414 HELPCHECK("taetschel"); 02415 ParseRest(str); 02416 if (!who) 02417 Return("Taetschle wen?\n"); 02418 if (CheckLife(NOT_SELF,NOT_DEAD, 02419 "Das sieht zu doof aus, das mache ich nicht.", 02420 "Ich taetschle nur Lebewesen.")) 02421 return 1; 02422 GHOSTCHECK("Du willst "+who->name(WEN)+" taetscheln - aber Deine " 02423 +"Haende gehen\nglatt durch den Kopf durch.\n", 02424 gname()+" will "+who->name(WEN)+" den Kopf taetscheln, aber " 02425 +"die Geister-\nhaende gehen glatt durch den Kopf durch.\n", 02426 gname()+" will Deinen Kopf taetscheln, aber diese Geisterhaende " 02427 +"gehen\nglatt durch Deinen Kopf durch - Du hast ein seltsames " 02428 +"Gefuehl dabei.\n"); 02429 out_sel="Du taetschelst @@wem@@@@adverb@@ den Kopf."; 02430 out_vic="@@name@@ taetschelt Dir@@adverb@@ den Kopf."; 02431 out_oth="@@name@@ taetschelt @@wem@@@@adverb@@ den Kopf."; 02432 return FeelIt(); 02433 02434 /**************** Tanzen ***************/ 02435 case "tanz": 02436 HELPCHECK("tanz"); 02437 GHOSTCHECK("Du tanzt den klassischen GeisterTanz (tm).\n", 02438 gname()+" tanzt den klassischen GeisterTanz (tm).\n", 0); 02439 if (!str) { 02440 out_sel="Kommst Du Dir nicht irgendwie bloed vor? Du tanzt " 02441 +"den Ententanz."; 02442 out_oth="@@name@@ tanzt den Ententanz."; 02443 } 02444 else { 02445 taenze=({"Walzer","Polka","Rumba","Tango","Cha cha cha","Foxtrott", 02446 "Mambo","Salsa","Slowfox","Breakdance","Pogo","Merengue", 02447 "Rock'n'Roll","Ballett","Regentanz","Hexentanz"}); 02448 ParseRest(str,"mit"); 02449 if (!who) 02450 Return("Mit wem willst Du tanzen?\n"); 02451 if (who && CheckLife(NOT_SELF,NOT_DEAD, 02452 "Mit Dir selber kannst Du nicht tanzen.", 02453 "Keine Reaktion - will wahrscheinlich nicht tanzen.")) 02454 return 1; 02455 ifoo=random(sizeof(taenze)); 02456 out_sel="Du tanzt@@adverb@@ mit @@wem@@ eine Runde "+taenze[ifoo]+"."; 02457 out_vic="@@name@@ reisst Dich an sich und tanzt@@adverb@@ eine Runde " 02458 +taenze[ifoo]+" mit Dir."; 02459 out_oth="@@name@@ schnappt sich @@wen@@ und die beiden tanzen" 02460 +"@@adverb@@ eine Runde "+taenze[ifoo]+"."; 02461 } 02462 return FeelIt(); 02463 02464 /**************** Traeumen ***************/ 02465 case "traeum": 02466 HELPCHECK("traeum"); 02467 if (!str) 02468 Return("Traeume wovon oder von wem?\n"); 02469 ParseRest(str); 02470 out_sel="Du traeumst"+(who ? "@@adverb@@ von @@wem@@." 02471 : (adverb ? "@@adverb@@." : " "+str+".")); 02472 if (who) out_vic="@@gname@@ traeumt@@adverb@@ von Dir."; 02473 out_oth="@@gname@@ traeumt"+(who ? "@@adverb@@ von @@wem@@." 02474 : (adverb ? "@@adverb@@." : " "+str+".")); 02475 return FeelIt(); 02476 02477 /**************** Treten (tritt) ***************/ 02478 case "tritt": 02479 case "tret": 02480 HELPCHECK("tritt"); 02481 if (!str) { 02482 GHOSTCHECK("Dein Fuss faehrt durch die beruehmte langvergessene " 02483 +"unsichtbare Schildkroete\nhindurch.\n", 02484 gname()+" will die beruehmte langvergessene unsichtbare\n" 02485 +"Schildkroete treten, aber "+QPP(MALE,WER) 02486 +" Fuss faehrt durch sie hindurch.\n", 0); 02487 out_sel="Du trittst die beruehmte langvergessene unsichtbare " 02488 +"Schildkroete."; 02489 out_oth="@@gname@@ tritt die beruehmte langvergessene unsichtbare " 02490 +"Schildkroete."; 02491 } 02492 else { 02493 ParseRest(str); 02494 if (for_all) { 02495 out_sel="Du trittst @@alle@@@@adverb@@. Solltest Du nicht langsam " 02496 +"an Flucht denken?"; 02497 out_vic="@@name@@ tritt @@alle@@@@adverb@@. Traut sich ganz " 02498 +"schoen was!"; 02499 return MixedOut(WEN); 02500 } 02501 if (!who && !adverb) 02502 Return("Wenn Du schon was nach tritt tippst, dann sag mir, wen " 02503 +"oder wie ich das soll.\n"); 02504 if (who && CheckLife(NOT_SELF,NOT_DEAD, 02505 "Du schaffst es nicht, Dir selber in den Hintern zu treten.", 02506 "Tote Sachen tritt man nicht auch noch!")) 02507 return 1; 02508 if (who) { 02509 out_sel="Du trittst@@ wen@@@@adverb@@."; 02510 if (who) out_vic="@@gname@@ tritt Dich@@adverb@@."; 02511 out_oth="@@gname@@ tritt@@ wen@@@@adverb@@."; 02512 } 02513 else { 02514 out_sel="Du trittst die beruehmte langvergessene unsichtbare " 02515 +"Schildkroete@@adverb@@."; 02516 out_oth="@@gname@@ tritt die beruehmte langvergessene unsichtbare " 02517 +"Schildkroete\n@@adverb@@."; 02518 } 02519 } 02520 return FeelIt(); 02521 02522 /**************** Troesten ***************/ 02523 case "troest": 02524 HELPCHECK("troest"); 02525 ParseRest(str); 02526 if (!who) 02527 Return("Wen willst Du troesten?\n"); 02528 if (who && CheckLife(NOT_SELF,NOT_DEAD, 02529 "Trost musst Du bei jemand anders suchen.", 02530 "Das Teil musst Du nicht troesten, das fuehlt nix.")) 02531 return 1; 02532 out_sel="Du troestest@@ wen@@@@adverb@@."; 02533 out_vic="@@gname@@ troestet Dich@@adverb@@."; 02534 out_oth="@@gname@@ troestet@@ wen@@@@adverb@@."; 02535 return FeelIt(); 02536 02537 /**************** Umarmen ***************/ 02538 case "umarm": 02539 HELPCHECK("umarm"); 02540 ParseRest(str); 02541 if (!who) 02542 Return("Wen willst Du umarmen?\n"); 02543 if (who && CheckLife(0,NOT_DEAD,0,"Bitte umarme nur Lebewesen.")) 02544 return 1; 02545 if (ghost() && CheckLife(NOT_SELF,0, 02546 "Du kannst Dich als Geist nicht selber waermen.")) 02547 return 1; 02548 str1=who->QueryProp(P_NAME); 02549 if(pointerp(str1))str1=(string)str1[0]; // Rumata 02550 str2=who->QueryPronoun(WEN); 02551 GHOSTCHECK("Du willst "+str1+" umarmen, aber Deine Arme gehen durch " 02552 +str2+" durch.\n", 02553 gname()+" will "+str1+" umarmen, aber "+QPP(MALE,WER,PLURAL) 02554 +" Arme gehen\ndurch "+str2+" hindurch.\n", 02555 gname()+" will Dich umarmen, aber "+QPP(MALE,WER,PLURAL) 02556 +" Arme gehen durch Dich hindurch.\n"); 02557 if (for_all) { 02558 out_sel="Du umarmst @@alle@@@@adverb@@."; 02559 out_vic="@@name@@ umarmt @@alle@@@@adverb@@."; 02560 return MixedOut(WEN); 02561 } 02562 if (who==this_player()) { 02563 out_sel="Du legst Deine Arme um Dich und waermst Dich " 02564 +"ein bisschen selber."; 02565 out_oth="@@name@@ legt "+QPP(MALE,WER,PLURAL) 02566 +" Arme um sich und waermt sich ein bisschen selber."; 02567 } 02568 else { 02569 out_sel="Du umarmst@@ wen@@@@adverb@@."; 02570 out_vic="@@name@@ umarmt Dich@@adverb@@."; 02571 out_oth="@@name@@ umarmt@@ wen@@@@adverb@@."; 02572 } 02573 return FeelIt(); 02574 02575 /**************** Verfluchen ***************/ 02576 case "verfluch": 02577 HELPCHECK("verfluch"); 02578 if (!str) 02579 Return("Wen oder was willst Du denn verfluchen?\n"); 02580 ParseRest(str); 02581 if (!who) { 02582 out_sel="Du verfluchst "+str+"."; 02583 out_oth="@@gname@@ verflucht "+str+"."; 02584 } 02585 else { 02586 if (who==this_player()) 02587 Return("Sich selber verflucht man besser nicht...\n"); 02588 if (!adverb) { 02589 flag=sscanf(str, "%s %s", str1,str2); 02590 out_sel="Du verfluchst@@ wen@@"+(flag==2 ? " "+str2 : "")+"."; 02591 out_vic="@@gname@@ verflucht Dich"+(flag==2?" "+str2 : "")+"."; 02592 out_oth="@@gname@@ verflucht@@ wen@@"+(flag==2 ? " "+str2 : "")+"."; 02593 } 02594 else { 02595 out_sel="Du verfluchst@@ wen@@@@adverb@@."; 02596 out_vic="@@gname@@ verflucht Dich@@adverb@@."; 02597 out_oth="@@gname@@ verflucht@@ wen@@@@adverb@@."; 02598 } 02599 } 02600 return FeelIt(); 02601 02602 /**************** Verneigen / Verbeugen ***************/ 02603 case "verneig": 02604 case "verbeug": 02605 HELPCHECK("verneig"); 02606 GHOSTCHECK("Du verneigst Dich ein bisschen heftig - Dein Kopf taucht " 02607 +"kurz in den Boden.\n", 02608 gname()+" verneigt sich. Ein bisschen heftig - "+QPP(MALE,WER) 02609 +" Kopf\ntaucht kurz in den Boden ein.\n", 0); 02610 if ((!str) || (str == "dich")) { 02611 out_sel="Du verneigst dich vor den Anwesenden."; 02612 out_oth="@@name@@ verneigt sich anmutig."; 02613 } 02614 else { 02615 ParseRest(str); 02616 if (for_all) { 02617 out_sel="Du verneigst Dich@@adverb@@ vor @@alle@@."; 02618 out_vic="@@name@@ verneigt sich@@adverb@@ vor @@alle@@."; 02619 return MixedOut(WEM); 02620 } 02621 if (!who && !adverb) 02622 Return("Verneige dich irgendwie oder vor jemandem.\n"); 02623 if (who && CheckLife(NOT_SELF,NOT_DEAD, 02624 "Wie willst Du das denn schaffen?", 02625 "Vor Sachen wird hier nicht verneigt, klar?\n")) 02626 return 1; 02627 out_sel="Du verneigst dich@@adverb@@"+(who ? " vor" : "")+"@@ wem@@."; 02628 if (who ) out_vic="@@name@@ verneigt sich@@adverb@@ vor Dir."; 02629 out_oth="@@name@@ verneigt sich@@adverb@@"+(who ? " vor" : "") 02630 +"@@ wem@@."; 02631 } 02632 return FeelIt(); 02633 02634 /**************** Verneinen ***************/ 02635 case "nein": 02636 case "noe": 02637 HELPCHECK("nein"); 02638 GHOSTCHECK("Du schuettelst Deinen Kopf so heftig, dass er kurz " 02639 +"davonschwebt.\n", 02640 gname()+" schuettelt heftig den Kopf.\nSo heftig, dass dieser " 02641 +"kurz davonschwebt und wieder eingefangen werden muss.\n", 0); 02642 ParseRest(str); 02643 if (str && !adverb) 02644 Return("Schuettle wie den Kopf?\n"); 02645 out_sel="Du schuettelst@@adverb@@ den Kopf."; 02646 out_oth="@@name@@ schuettelt@@adverb@@ den Kopf."; 02647 return FeelIt(); 02648 02649 /**************** Wackeln ***************/ 02650 case "wackel": 02651 case "wackl": 02652 HELPCHECK("wackel"); 02653 if (ghost()) 02654 Return("Da gibt es nichts mehr, womit Du wackeln kannst.\n"); 02655 if (str) 02656 if (strstr(str, "mit ")==0) 02657 sscanf(str, "mit %s", sfoo); 02658 else if (strstr(str,"mit ")>0) { 02659 sscanf(str, "%s mit %s", sfoo, sfoo); 02660 flag=1; 02661 } 02662 if (sfoo=="") sfoo=0; 02663 ParseRest(str, (sfoo ? (flag ? " mit " : "mit ")+sfoo : 0)); 02664 if (str && !adverb && !sfoo) 02665 Return("Wackle wie oder womit?\n"); 02666 out_sel="Du wackelst@@adverb@@ mit "+(sfoo ? sfoo+"." : "dem Hintern."); 02667 out_oth="@@name@@ wackelt@@adverb@@ mit " 02668 +(sfoo ? sfoo+"." : QPP(MALE,WEM)+" Hintern."); 02669 return FeelIt(); 02670 02671 /**************** Waelzen ***************/ 02672 case "waelz": 02673 HELPCHECK("waelz"); 02674 ParseRest(str); 02675 if (str && !adverb) 02676 Return("Waelze Dich wie auf dem Boden?\n"); 02677 out_sel="Du waelzt Dich"+(adverb ? "@@adverb@@" : " vor Lachen") 02678 +" auf dem Boden."; 02679 out_oth="@@gname@@ waelzt sich"+(adverb ? "@@adverb@@" : " vor Lachen") 02680 +(ghost() ? " im" : " auf dem")+" Boden."; 02681 return FeelIt(); 02682 02683 /**************** Warten ***************/ 02684 case "wart": 02685 HELPCHECK("wart"); 02686 ParseRest(str); 02687 if (!str) { 02688 out_sel="Du tippst mit dem Fuss auf den Boden."; 02689 out_oth="@@gname@@ tippt mit dem Fuss auf den Boden."; 02690 } else if (!who && adverb) { 02691 out_sel="Du wartest@@adverb@@."; 02692 out_oth="@@gname@@ wartet@@adverb@@."; 02693 } else { 02694 out_sel="Du wartest@@adverb@@ auf "+(who ? "@@wen@@." : str+"."); 02695 if (who) out_vic="@@gname@@ wartet@@adverb@@ auf Dich."; 02696 out_oth="@@gname@@ wartet@@adverb@@ auf "+(who ? "@@wen@@." : str+"."); 02697 } 02698 return FeelIt(); 02699 02700 #ifdef WECKE 02701 /**************** Wecken ***************/ 02702 case "weck": 02703 HELPCHECK("weck"); 02704 if (ParseRemote(str)) 02705 return 1; 02706 // ParseRest(str); 02707 if (!who) 02708 Return("Wen willst Du wecken?\n"); 02709 if (sscanf(str, "%s %s", sfoo, sfoo)==2) 02710 flag=1; 02711 out_sel="Dein Wecker klingelt bei @@wem@@@@adverb@@" 02712 +(adverb ? "." : (flag ? ": "+sfoo : ".")); 02713 out_vic=" "+name(WESSEN)+" Wecker klingelt bei Dir@@adverb@@" 02714 +(adverb ? "." : (flag ? ": "+sfoo : ".")); 02715 out_oth="@@gname@@ wirft "+QPP(MALE, WEN) 02716 +" Wecker@@adverb@@ nach @@wem@@."; 02717 if (!who->QueryProp(P_VISUALBELL)) 02718 out_vic[0]=7; // chr(7)==BEL 02719 else out_vic=out_vic[1..]; 02720 return FeelIt(); 02721 #endif 02722 02723 /**************** Weinen ***************/ 02724 case "wein": 02725 HELPCHECK("wein"); 02726 GHOSTCHECK("Es reicht leider nur fuer ein paar winzige Nebelwoelkchen, " 02727 +"nicht fuer Traenen.\n", 02728 gname()+" verzieht das Gesicht und ein paar winzige Nebel-\n" 02729 +"woelkchen entfernen sich von seinen \"Augen\".\n", 0); 02730 if (!str) { 02731 out_sel="Waaaaah! Du weinst bitterlich."; 02732 out_oth="@@name@@ bricht in Traenen aus und weint bitterlich."; 02733 } 02734 else { 02735 ParseRest(str); 02736 if (!who && !adverb) 02737 Return("Weine Dich irgendwie bei irgendwem aus, aber nicht so.\n"); 02738 if (who && CheckLife(NOT_SELF,NOT_DEAD, 02739 "Bei sich selber kann man sich so schlecht ausweinen.", 02740 "Bei wem willst Du Dich ausweinen???")) 02741 return 1; 02742 if (who) { 02743 out_sel="Du weinst Dich@@adverb@@ bei@@ wem@@ aus."; 02744 out_vic="@@name@@ weint sich@@adverb@@ bei Dir aus."; 02745 out_oth="@@name@@ weint sich@@adverb@@ bei@@ wem@@ aus."; 02746 } 02747 else { 02748 out_sel="Du brichst in Traenen aus und weinst@@adverb@@."; 02749 out_oth="@@name@@ bricht in Traenen aus und weint@@adverb@@."; 02750 } 02751 } 02752 return FeelIt(); 02753 02754 /**************** Winken ***************/ 02755 case "wink": 02756 HELPCHECK("wink"); 02757 ParseRest(str); 02758 if (for_all) { 02759 out_sel="Du winkst @@alle@@@@adverb@@ zu."; 02760 out_vic="@@name@@ winkt @@alle@@@@adverb@@ zu."; 02761 return MixedOut(WEM); 02762 } 02763 if (!who && !adverb && str) 02764 Return("Vielleicht solltest Du auch sagen, wem oder wie Du " 02765 +"(zu)winken willst.\n"); 02766 if (who && CheckLife(NOT_SELF, NOT_DEAD, 02767 "Wink Dir nicht selber zu.", 02768 "Du musst schon einem Lebewesen zuwinken.")) 02769 return 1; 02770 out_sel="Du winkst@@ wem@@@@adverb@@"+(who ? " zu" : "")+"."; 02771 if (who) out_vic="@@gname@@ winkt Dir@@adverb@@ zu."; 02772 out_oth="@@gname@@ winkt@@ wem@@@@adverb@@"+(who ? " zu" : "")+"."; 02773 return FeelIt(); 02774 02775 /**************** Wuergen ***************/ 02776 case "wuerg": 02777 HELPCHECK("wuerg"); 02778 ParseRest(str); 02779 if (str && !who && !adverb) 02780 Return("Wuerge wen oder wie?\n"); 02781 if (!who) { 02782 out_sel="Du faengst@@adverb@@ an zu wuergen."; 02783 out_oth="@@gname@@ faengt@@adverb@@ an zu wuergen."; 02784 } else if (CheckLife(NOT_SELF, NOT_DEAD, 02785 "Du wuergst ein bischen an Dir rum. Dir wird schnell langweilig.", 02786 "Wuerg lieber ein Lebewesen.")) { 02787 return 1; 02788 } else { 02789 out_sel="Du springst @@wen@@ an und faengst an, "+who->QueryPronoun(WEN) 02790 +"@@adverb@@ zu wuergen."; 02791 out_vic="@@gname@@ springt Dich auf einmal an und wuergt Dich@@adverb@@."; 02792 out_oth="@@gname@@ springt auf einmal @@wen@@ an und wuergt " 02793 +who->QueryPronoun(WEN)+"@@adverb@@."; 02794 } 02795 return FeelIt(); 02796 02797 /**************** Wundern ***************/ 02798 case "wunder": 02799 HELPCHECK("wunder"); 02800 ParseRest(str); 02801 if (str && !who && !adverb) 02802 Return("Wie oder ueber wen willst Du Dich wundern?\n"); 02803 out_sel="Du wunderst Dich@@adverb@@"+(who ? " ueber @@wen@@." : "."); 02804 if (who) out_vic="@@gname@@ wundert sich@@adverb@@ ueber Dich."; 02805 out_oth="@@gname@@ wundert sich@@adverb@@"+(who ? " ueber @@wen@@." : "."); 02806 return FeelIt(); 02807 02808 /**************** Wuscheln ***************/ 02809 case "wuschel": 02810 case "wuschl": 02811 HELPCHECK("wuschel"); 02812 ParseRest(str); 02813 if (!who) 02814 Return("Wen willst Du denn wuscheln?\n"); 02815 if (CheckLife(0,NOT_DEAD, 02816 "", "Hmm, sehr tot. Ne, lieber nicht.")) 02817 return 1; 02818 if (who->QueryProp(P_FROG)) { 02819 write("Du verwuschelst... aeh... hm. Ein Frosch hat wohl nix " 02820 +"zum Wuscheln.\n"); 02821 return 1; 02822 }; 02823 GHOSTCHECK("Du willst "+who->name(WEN)+" wuscheln - aber Deine " 02824 +"Haende gehen\nglatt durch den Kopf durch.\n", 02825 gname()+" will "+who->name(WEN)+" den Kopf wuscheln, aber " 02826 +"die Geister-\nhaende gehen glatt durch den Kopf durch.\n", 02827 gname()+" will Dich wuscheln, aber diese Geisterhaende " 02828 +"gehen\nglatt durch Deinen Kopf durch - Du hast ein seltsames " 02829 +"Gefuehl dabei.\n"); 02830 if (member(({"highlander","boing","mieze","freund"}), who->query_real_name())>-1) 02831 switch (who->query_real_name()) { 02832 case "highlander": str1="Federn"; break; 02833 case "freund" : 02834 case "mieze" : 02835 case "boing" : str1="Fell"; break; 02836 } 02837 else if (who->is_class_member(({CL_DRAGON, CL_FISH, CL_REPTILE}))) 02838 str1="Schuppen"; 02839 else if (who->is_class_member(({CL_BIRD, "elster","greif"}))) 02840 str1="Federn"; 02841 else if (who->is_class_member(({CL_MAMMAL_LAND,"feline","tiger", 02842 "steinbeisser","knuddeleisbaer"}))) 02843 str1="Fell"; 02844 else str1="Haare"; 02845 out_sel="Du verwuschelst@@adverb@@ @@wessen@@ "+str1+"."; 02846 out_vic="@@name@@ verwuschelt@@adverb@@ Dein" 02847 +(str1=="Fell" ? " " : "e ")+str1+"."; 02848 out_oth="@@name@@ verwuschelt@@adverb@@ @@wessen@@ "+str1+"."; 02849 return FeelIt(); 02850 02851 /**************** Zitieren ***************/ 02852 case "zitier": 02853 HELPCHECK("zitier"); 02854 ParseRest(str); 02855 if (!str) 02856 Return("Zitiere was oder wen womit?\n"); 02857 sfoo=implode(explode(str, " ")[1..], " "); 02858 if (sfoo=="") sfoo=0; 02859 if (who) { 02860 out_sel="Du zitierst @@wen@@"+(sfoo ? ": \""+sfoo+"\"" : "")+"."; 02861 out_vic="@@gname@@ zitiert Dich"+(sfoo ? ": \""+sfoo+"\"" : "")+"."; 02862 out_oth="@@gname@@ zitiert @@wen@@"+(sfoo ? ": \""+sfoo+"\"" : "")+"."; 02863 } 02864 else { 02865 sfoo=explode(str, "/")[0]; 02866 out_sel="Du zitierst@@adverb@@"+(sfoo ? ": \""+sfoo+"\"" : "")+"."; 02867 out_oth="@@gname@@ zitiert@@adverb@@"+(sfoo ? ": \""+sfoo+"\"" : "")+"."; 02868 } 02869 return FeelIt(); 02870 02871 /**************** Zittern ***************/ 02872 case "zitter": 02873 HELPCHECK("zitter"); 02874 ParseRest(str); 02875 if (str && !adverb) 02876 Return("Zittere wie?\n"); 02877 out_sel="Du zitterst"+(adverb ? "@@adverb@@." : " vor Angst."); 02878 out_oth="@@gname@@ zittert"+(adverb ? "@@adverb@@." : " vor Angst."); 02879 return FeelIt(); 02880 02881 /**************** Schulterzucken ***************/ 02882 case "zuck" : 02883 HELPCHECK("zuck"); 02884 if (str) 02885 if (sscanf(str,"%s mit den schultern",sfoo)) 02886 str=sfoo; 02887 else if (sscanf(str,"%s den schultern",sfoo)) 02888 str=sfoo; 02889 else 02890 if (sscanf(str,"%s schultern",sfoo)) 02891 str=sfoo; 02892 if (str=="") str=0; 02893 ParseRest(str); 02894 if (str && !adverb) 02895 Return("Zucke wie mit den Schultern?\n"); 02896 out_sel="Du zuckst@@adverb@@ mit den Schultern."; 02897 out_oth="@@gname@@ zuckt"+(adverb ? "@@adverb@@" : " ratlos") 02898 +" mit den Schultern."; 02899 return FeelIt(); 02900 02901 /**************** Zwinkern ***************/ 02902 case "zwinker": 02903 HELPCHECK("zwinker"); 02904 if (ghost()) 02905 Return("Vergiss es - das ist als Geist viel zu unauffaellig, als dass\n" 02906 +"es andere Leute sehen wuerden.\n"); 02907 ParseRest(str); 02908 if (str && !who && !adverb) 02909 Return("Zwinkere wie? Zwinkere wem zu?\n"); 02910 if (who && CheckLife(NOT_SELF,NOT_DEAD, 02911 "Du kannst Dir nicht selber zuzwinkern.", 02912 "Wieso reagiert das Ding da nicht auf Dein Zwinkern? Ist es etwa tot?")) 02913 return 1; 02914 out_sel="Du zwinkerst@@ wem@@@@adverb@@"+(who ? " zu." : "."); 02915 if (who) out_vic="@@name@@ zwinkert Dir@@adverb@@ zu."; 02916 out_oth="@@name@@ zwinkert@@ wem@@@@adverb@@"+(who ? " zu." : "."); 02917 return FeelIt(); 02918 02919 /**************** Zunge rausstrecken ***************/ 02920 case "streck": 02921 HELPCHECK("streck"); 02922 GHOSTCHECK("Sorry, Du hast keine Zunge zum Rausstrecken.\n","",0); 02923 if (!str) 02924 Return("Strecke was wie wem wo wann wieso?\n"); 02925 str=lower_case(str); 02926 if (sscanf(str, "%s zunge raus", str1)!=1 && 02927 sscanf(str, "%s die zunge raus", str1)!=1) 02928 Return("Strecke was wie wem wo wann wieso?\n"); 02929 ParseRest(str1); 02930 if (for_all) { 02931 out_sel="Du streckst @@alle@@@@adverb@@ die Zunge raus."; 02932 out_vic="@@name@@ streckt @@alle@@@@adverb@@ die Zunge raus."; 02933 return MixedOut(WEM); 02934 } 02935 out_sel="Du streckst@@ wem@@@@adverb@@ die Zunge raus."; 02936 if (who) out_vic="@@name@@ streckt Dir@@adverb@@ die Zunge raus."; 02937 out_oth="@@name@@ streckt@@ wem@@@@adverb@@ die Zunge raus."; 02938 return FeelIt(); 02939 02940 // Spezialsachen - Geisterverben und Magierverben 02941 02942 /**************** Rasseln ***************/ 02943 case "rassel": 02944 case "rassl": 02945 if (!ghost()) 02946 Return("Das ist nicht Dein Fachgebiet - Du bist doch kein Geist!\n"); 02947 HELPCHECK("rassel"); 02948 ParseRest(str); 02949 if (str && !adverb) 02950 Return("Rassel wie?\n"); 02951 out_sel="Du rasselst"+(adverb ? "@@adverb@@" : " fuerchterlich") 02952 +" mit einer rostigen Rasselkette,\n" 02953 +"die Du auf einmal fuer einen Moment in der Hand haeltst."; 02954 out_oth="@@gname@@ holt auf einmal eine rostige Rasselkette aus\n" 02955 +"dem Nichts und faengt an,"+(adverb ? "@@adverb@@" : " fuerchterlich") 02956 +" damit zu rasseln.\n" 02957 +"Danach ist die Kette auf einmal wieder verschwunden."; 02958 return FeelIt(); 02959 02960 /**************** Heulen ***************/ 02961 case "heul": 02962 if (!ghost()) 02963 Return("Lass das mal den Fachleuten (also den Geistern).\n"); 02964 HELPCHECK("heul"); 02965 ParseRest(str); 02966 if (str && !adverb) 02967 Return("Heule wie?\n"); 02968 out_sel="Du heulst"+(adverb ? "@@adverb@@." : " schauerlich."); 02969 out_oth="@@gname@@ heult"+(adverb ? "@@adverb@@." : " schauerlich."); 02970 return FeelIt(); 02971 02972 /**************** Treten (tretet) ***************/ 02973 case "kick": 02974 if (!IS_WIZARD(this_player())) 02975 return 0; 02976 HELPCHECK("kick"); 02977 if (!str) { 02978 GHOSTCHECK("Dein Fuss faehrt durch die beruehmte langvergessene " 02979 +"unsichtbare Schildkroete\nhindurch.\n", 02980 gname()+" will die beruehmte langvergessene unsichtbare\n" 02981 +"Schildkroete treten, aber "+QPP(MALE,WER) 02982 +" Fuss faehrt durch sie hindurch.\n", 0); 02983 out_sel="Du tretest die beruehmte langvergessene unsichtbare " 02984 +"Schildkroete."; 02985 out_oth="@@name@@ tretet die beruehmte langvergessene unsichtbare " 02986 +"Schildkroete."; 02987 } 02988 else { 02989 ParseRest(str); 02990 if (for_all) { 02991 out_sel="Du tretest @@alle@@@@adverb@@."; 02992 out_vic="@@name@@ tretet @@alle@@@@adverb@@."; 02993 return MixedOut(WEN); 02994 } 02995 if (!who && !adverb) 02996 Return("Wenn Du schon was nach kick tippst, dann sag mir wen " 02997 +"oder wie ichdas soll.\n"); 02998 if (who && CheckLife(NOT_SELF,NOT_DEAD, 02999 "Du schaffst es nicht, Dir selber in den Hintern zu treten.", 03000 "Tote Sachen tritt man nicht auch noch!")) 03001 return 1; 03002 if (who) { 03003 out_sel="Du tretest@@ wen@@@@adverb@@."; 03004 if (who) out_vic="@@gname@@ tretet Dich@@adverb@@."; 03005 out_oth="@@gname@@ tretet@@ wen@@@@adverb@@."; 03006 } 03007 else { 03008 out_sel="Du tretest die beruehmte langvergessene unsichtbare " 03009 +"Schildkroete@@adverb@@."; 03010 out_oth="@@gname@@ tretet die beruehmte langvergessene unsichtbare " 03011 +"Schildkroete\n@@adverb@@."; 03012 } 03013 } 03014 return FeelIt(); 03015 03016 /************* Nassspritzen ***************/ 03017 case "splash": 03018 if (!IS_WIZARD(this_player()) && 03019 !(IS_SEER(this_player()) && present("SEHER\nspritzpistole",this_player()))) 03020 return 0; 03021 HELPCHECK("splash"); 03022 ParseRest(str); 03023 if (for_all) { 03024 out_sel="Du ziehst Deine Wasserpistole und spritzt @@alle@@@@adverb@@ " 03025 +"patschnass."; 03026 out_vic="@@gname@@ zieht "+QPP(FEMALE,WEN)+" Wasserpistole und spritzt\n" 03027 +"@@alle@@@@adverb@@ patschnass."; 03028 return MixedOut(WEN); 03029 } 03030 if (!who) 03031 Return("Wen willst Du denn nassmachen?\n"); 03032 if (who == this_player()) { 03033 out_sel="Sag mal, kommst Du Dir nicht ein bisschen doof vor?\n" 03034 +"Du ziehst Deine Wasserpistole und spritzt Dich@@adverb@@ selber patschnass."; 03035 out_oth="@@gname@@ zieht "+QPP(FEMALE,WEN)+" Wasserpistole und spritzt " 03036 +"sich@@adverb@@ aus unerfindlichen Gruenden selbst patschnass."; 03037 } 03038 else { 03039 out_sel="Du ziehst Deine Wasserpistole und spritzt @@wen@@@@adverb@@ " 03040 +"patschnass."; 03041 out_vic="@@gname@@ zieht "+QPP(FEMALE,WEN)+" Wasserpistole und spritzt " 03042 +"Dich@@adverb@@ patschnass."; 03043 out_oth="@@gname@@ zieht "+QPP(FEMALE,WEN)+" Wasserpistole und spritzt " 03044 +"@@wen@@@@adverb@@ patschnass."; 03045 } 03046 return FeelIt(); 03047 03048 /**************** Anflammen ***************/ 03049 case "flam": 03050 if (!IS_WIZARD(this_player()) && 03051 !(IS_SEER(this_player()) && present("SEHER\nflammenwerfer",this_player()))) 03052 return 0; 03053 HELPCHECK("flame"); 03054 if (ghost()) 03055 Return("Du hast leider grade Deinen Flammenwerfer nicht dabei.\n"); 03056 ParseRest(str); 03057 ifoo=!random(7); 03058 if (for_all) { 03059 out_sel="Du holst aus Deinen tiefsten Taschen (oder was weiss denn " 03060 +"ich woher) Deinen\nMorgenGrauen handgearbeiteten Mini-Flammenwerfer " 03061 +"(tm), richtest ihn aus und...\n" 03062 +(ifoo ? "schaust leicht frustriert auf das Streichholz, in das " 03063 +"er sich verwandelt hat." 03064 : "feuerst@@adverb@@ einen riesigen Feuerball auf @@alle@@ ab.\n" 03065 +"Es riecht auf einmal so verbrannt hier..."); 03066 out_vic="@@name@@ holt auf einmal irgendwoher einen MorgenGrauen " 03067 +"handgearbeiteten\nMini-Flammenwerfer (tm), richtet ihn aus und...\n" 03068 +(ifoo ? "schaut ziemlich frustriert auf das Streichholz, in das " 03069 +"sich das Ding verwandelt hat." 03070 : "feuert@@adverb@@ einen riesigen Feuerball auf @@alle@@ ab.\n" 03071 +"Dir wird so warm um's Herz..."); 03072 return MixedOut(WEN); 03073 } 03074 if (!who) 03075 Return("Wen willst Du denn ankokeln?\n"); 03076 out_sel="Du holst aus Deinen tiefsten Taschen (oder was weiss denn " 03077 +"ich woher) Deinen\nMorgenGrauen handgearbeiteten Mini-Flammenwerfer " 03078 +"(tm), richtest ihn aus und...\n" 03079 +(ifoo ? "schaust leicht frustriert auf das Streichholz, in das er " 03080 +"sich verwandelt hat." 03081 : "feuerst@@adverb@@ einen riesigen Feuerball auf @@wen@@ ab.\n" 03082 +"Es riecht auf einmal so verbrannt hier..."); 03083 out_vic="@@name@@ holt auf einmal irgendwoher einen MorgenGrauen " 03084 +"handgearbeiteten\nMini-Flammenwerfer (tm), richtet ihn auf Dich " 03085 +"aus und...\n" 03086 +(ifoo ? "schaut ziemlich frustriert auf das Streichholz, in das " 03087 +"sich das Ding\nverwandelt hat." 03088 : "feuert@@adverb@@ einen riesigen Feuerball auf Dich ab.\n" 03089 +"Dir wird so warm ums Herz..."); 03090 out_oth="@@name@@ holt auf einmal irgendwoher einen MorgenGrauen " 03091 +"handgearbeiteten\nMini-Flammenwerfer (tm), richtet ihn " 03092 +"auf@@ wen@@ aus und...\n" 03093 +(ifoo ? "schaut ziemlich frustriert auf das Streichholz, in das " 03094 +"sich das Ding\nverwandelt hat." 03095 : "feuert@@adverb@@ einen riesigen Feuerball auf@@ wen@@ ab.\nEs " 03096 +"riecht auf einmal irgendwie verbrannt hier ..."); 03097 return FeelIt(); 03098 03099 // Special 2: remote verbs 03100 03101 /**************** Remote knuddeln ***************/ 03102 case "rknuddel": 03103 case "rknuddl": 03104 HELPCHECK("rknuddel"); 03105 if (ParseRemote(str)) 03106 return 1; 03107 if (!who) 03108 Return("Knuddle wen?\n"); 03109 if (CheckLife(NOT_SELF,0, 03110 "Das bringt doch nix, lass es halt.", 03111 0)) 03112 return 1; 03113 if (present(who, environment())) 03114 Return("Wenn jemand neben Dir steht, nimm knuddel.\n"); 03115 out_sel="Du knuddelst @@wen@@@@adverb@@ aus der Ferne."; 03116 out_vic="@@gname@@ knuddelt Dich@@adverb@@ aus der Ferne."; 03117 return FeelIt(); 03118 03119 /**************** Remote winken ***************/ 03120 case "rwink": 03121 HELPCHECK("rwink"); 03122 if (ParseRemote(str)) 03123 return 1; 03124 if (!who) 03125 Return("Winke wem zu?\n"); 03126 if (CheckLife(NOT_SELF,0, 03127 "Sehr witzig. Pah.", 0)) 03128 return 1; 03129 if (present(who, environment())) 03130 Return("Wenn jemand neben Dir steht, nimm wink.\n"); 03131 out_sel="Du winkst @@wem@@@@adverb@@ aus der Ferne zu."; 03132 out_vic="@@gname@@ winkt Dir@@adverb@@ aus der Ferne zu."; 03133 return FeelIt(); 03134 03135 /**************** Verbenliste ***************/ 03136 case "verb": 03137 case "verben": 03138 HELPCHECK("verb"); 03139 More(SOULHELP->Help()); 03140 return 1; 03141 03142 /**************** Adverbienverwaltung ***************/ 03143 case "adverb": 03144 case "adverben": 03145 case "adverbien": { /* Das ist die richtige Form, aber wer weiss das? */ 03146 string f1,f2; 03147 HELPCHECK("adverb"); 03148 if (!str || str=="#" || str=="$") 03149 return zeige_adverbs((str=="#" ? 1 : (str=="$" ? 2 : 0))); 03150 if (sscanf(str, "%s %s", f1,f2)==2) { 03151 if (f1=="") 03152 Return("Hm, da muss wohl ein Leerzeichen zu viel gewesen sein. Bitte " 03153 +"nochmal,\naber ohne zuviele Leerzeichen.\n"); 03154 if (f1=="?") { 03155 string match; 03156 if ((match=QueryStdAdverbs()[f2] || plr_adverbs[f2])) 03157 write("Die Abkuerzung "+f2+" gehoert zu dem Adverb:\n"+match+LF); 03158 else 03159 write("Diese Abkuerzung ist bisher nicht definiert.\n"); 03160 return 1; 03161 } 03162 if (QueryStdAdverbs()[f1]) 03163 Return("Die Standardabkuerzungen koennen nicht neu definiert " 03164 +"werden.\n"); 03165 if (plr_adverbs[f1]) { 03166 plr_adverbs[f1]=f2; 03167 write("OK, Adverb mit der Abkuerzung \""+f1+"\" auf \""+f2 03168 +"\" gesetzt.\n"); 03169 } 03170 else { 03171 if (strlen(f1) > 6) 03172 Return("Die Abkuerzung ist zu lang, bitte nicht mehr als " 03173 +"6 Zeichen.\n"); 03174 plr_adverbs[f1]=f2; 03175 write("OK, neues Adverb \""+f2+"\" mit der Abkuerzung \""+f1+"\".\n"); 03176 } 03177 } 03178 else { 03179 if (QueryStdAdverbs()[str]) 03180 Return("Die Standardadverben koennen nicht geloescht werden.\n"); 03181 else if (!plr_adverbs[str]) 03182 Return("Du hast kein Adverb mit dieser Abkuerzung.\n" 03183 +"Syntax: adverb, um die Adverbien anzuzeigen,\n" 03184 +" adverb #, um nur Deine Adverbien anzuzeigen,\n" 03185 +" adverb $, um nur die Standardadverbien anzuzeigen,\n" 03186 +" adverb ? <Abkuerzung>, um nachzusehen, ob <Abkuerzung> " 03187 +"definiert ist,\n" 03188 +" adverb <Abkuerzung> <Adverb>, um der <Abkuerzung> das " 03189 +"<Adverb>\n" 03190 +" zuzuordnen,\n" 03191 +" adverb <Abkuerzung>, um das Adverb mit der <Abkuerzung> " 03192 +"zu loeschen,\n"); 03193 else { 03194 write("OK, Adverb \""+plr_adverbs[str]+"\" geloescht.\n"); 03195 plr_adverbs=m_delete(plr_adverbs, str); 03196 } 03197 } 03198 return 1; 03199 } 03200 } 03201 return(0); //fallthrough 03202 }
| static int verben_liste | ( | ) | [static] |
| private int zeige_adverbs | ( | int | mine | ) |
Die Funktion stellt einen Hilfetext zur Verfuegung und listet die definierten Adverbien auf.
| mine | 0 = alle Adverbien, 1=nur selbst definierte Adverbien 2=nur die vom System bereitgestellten |
Definiert in Zeile 578 der Datei soul.c.
Benutzt plr_adverbs und QueryStdAdverbs().
00578 { 00579 mapping adverb_list; 00580 string out,s; 00581 00582 // Parameter auswerten 00583 switch (mine){ 00584 case 1: 00585 adverb_list=plr_adverbs; 00586 out = "Du hast folgende Adverbien definiert:\n"; 00587 break; 00588 case 2: 00589 adverb_list=QueryStdAdverbs(); 00590 out = "Systemseitig sind folgende Adverbien definiert:\n"; 00591 break; 00592 default: 00593 adverb_list=QueryStdAdverbs()+plr_adverbs; 00594 out = "Folgende Adverbien stehen Dir zur Verfuegung:\n"; 00595 } 00596 00597 out +=" Abk. Adverb\n ====== ======\n"; 00598 00599 if ( sizeof(adverb_list) == 0) 00600 out += " keine.\n"; 00601 else 00602 // Ueber alle Elemente der indizies der Adverbienliste gehen 00603 // Die Closure sagt dem sort_array nur, wie es die Liste zu 00604 // sortieren hat: Aufsteigend, gross-klein-schreibung ignorierend 00605 foreach ( s : sort_array(m_indices(adverb_list), 00606 lambda( ({'x,'y}), 00607 ({ #'>, 00608 ({ #'lower_case , 'x }), 00609 ({ #'lower_case , 'y }) 00610 }) 00611 ) 00612 ) 00613 ) /* bis hierher geht das foreach :) */ 00614 out += break_string(adverb_list[s],78, 00615 sprintf(" %-6s ",s),BS_INDENT_ONCE); 00616 00617 More( 00618 out+"\nWie diese Adverbien benutzt werden ist in <hilfe adverb> beschrieben.\n"); 00619 00620 return 1; 00621 }

string adverb [static] |
Definiert in Zeile 170 der Datei soul.c.
Wird benutzt von convert_string(), MatchAdverb(), ParseAdverb(), ParseRemote() und ParseRest().
int for_all [static] |
Definiert in Zeile 168 der Datei soul.c.
Wird benutzt von MixedOut() und ParseRest().
string out_sel [static] |
Definiert in Zeile 170 der Datei soul.c.
Wird benutzt von FeelIt() und MixedOut().
string out_vic [static] |
Definiert in Zeile 170 der Datei soul.c.
Wird benutzt von FeelIt() und MixedOut().
| mapping plr_adverbs |
Definiert in Zeile 169 der Datei soul.c.
Wird benutzt von add_soul_commands(), GetPlayerAdverb(), QueryAdverbs() und zeige_adverbs().
object who [static] |
Definiert in Zeile 167 der Datei soul.c.
Wird benutzt von _echoto(), _mecho(), CheckLife(), convert_string(), CustomizeObject(), FeelIt(), Load(), lv(), ParseRemote(), ParseRest(), pl(), Remove(), Request(), Save(), set_user(), tell(), Validate() und Xinventory().
1.6.3