#include <config.h>#include <player/user_filter.h>#include <properties.h>#include <defines.h>
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | NEED_PROTOTYPES |
Funktionen | |
| void | add_guide_commands () |
| protected int | NewbieChangeMsg () |
| protected int | NewbieStatusMsg () |
| int | CiceroneCmd (string str) |
| protected string | IstSindMsg (string *namen) |
| void | NewbieIntroMsg () |
| void add_guide_commands | ( | ) |
| int CiceroneCmd | ( | string | str | ) |
Definiert in Zeile 76 der Datei guide.c.
Benutzt break_string(), BS_INDENT_ONCE, BS_LEAVE_MY_LFS, BS_PREPEND_INDENT, idle(), NewbieChangeMsg(), NewbieStatusMsg(), P_LEVEL, P_NEWBIE_GUIDE, QueryProp() und SetProp().
00077 { 00078 if (QueryProp(P_LEVEL)<20) 00079 { 00080 write(break_string("Du solltest erst noch ein wenig " 00081 "Erfahrung sammeln, bevor Du Dich " 00082 "als Cicerone zur Verfuegung stellst.",78)); 00083 return 1; 00084 } 00085 // Idlezeit uebergeben? 00086 int idle=to_int(str); 00087 // max. einen Tag (1440 min) zulassen. 00088 if (idle < 0) idle=0; 00089 else if (idle > 1440) idle=1440; 00090 00091 if (!str) { 00092 return NewbieStatusMsg(); 00093 } 00094 else if (str=="status") { 00095 return NewbieStatusMsg(); 00096 } 00097 // "ein" schaltet einfach generell ein, hierbei steht 1 in der Prop 00098 // fuer "permanent ein". 00099 else if (str=="ein") { 00100 SetProp(P_NEWBIE_GUIDE,1); 00101 return NewbieChangeMsg(); 00102 } 00103 // "aus" oder "0" deaktiviert. 00104 else if (str=="aus") { 00105 SetProp(P_NEWBIE_GUIDE,0); 00106 return NewbieChangeMsg(); 00107 } 00108 // wenn Zahl uebergeben ist, die groesser 0 und kleiner 1440 ist 00109 // (s.o.), wird es als Anzahl an Idle-Minuten aufgefasst, ab der man 00110 // ausgeblendet werden will. 00111 else if (idle) { 00112 SetProp(P_NEWBIE_GUIDE, idle*60); // als Sekunden speichern. 00113 return NewbieChangeMsg(); 00114 } 00115 write(break_string( 00116 "cicerone ein - Du bist Cicerone\n" 00117 "cicerone aus - Du bist kein Cicerone\n" 00118 "cicerone - Status anzeigen\n" 00119 +break_string( 00120 "Du bist Cicerone, aber wenn Du laenger als <zahl> Minuten " 00121 "idle bist, wirst Du automatisch ausgeblendet, bis Du wieder " 00122 "endidelt bist.", 00123 76,"cicerone zahl - ",BS_INDENT_ONCE), 00124 78,"Syntaxhilfe:",BS_PREPEND_INDENT|BS_LEAVE_MY_LFS)); 00125 00126 return 1; 00127 }

| protected string IstSindMsg | ( | string * | namen | ) |
| protected int NewbieChangeMsg | ( | ) |
Definiert in Zeile 28 der Datei guide.c.
Benutzt break_string(), P_NEWBIE_GUIDE, QueryProp() und SetProp().
Wird benutzt von CiceroneCmd().
00028 { 00029 int cic=QueryProp(P_NEWBIE_GUIDE); 00030 // begrenzen auf 1 Tag, falls jemand da Schrott reingschrieben hat. 00031 if (cic > 86400) { 00032 cic=86400; 00033 SetProp(P_NEWBIE_GUIDE,cic); 00034 } 00035 if (cic<=0) { 00036 write("Du bist jetzt kein Cicerone mehr.\n"); 00037 } 00038 else if (cic < 60) { 00039 write("Du bist jetzt ein Cicerone.\n"); 00040 } 00041 else { 00042 write(break_string( 00043 "Du bist jetzt ein Cicerone, allerdings nur in den Zeiten, " 00044 "in denen Du weniger als " + cic/60 00045 + ((cic/60)<2 ? " Minute ":" Minuten ") 00046 + "idle bist.\n",78)); 00047 } 00048 return 1; 00049 }


| void NewbieIntroMsg | ( | ) |
Definiert in Zeile 137 der Datei guide.c.
Benutzt neu, P_LEVEL und QueryProp().
00138 { 00139 object* cicerones; 00140 string* namen; 00141 string restext; 00142 00143 // Nur bis Level 5 wird etwas ausgegeben. 00144 if (QueryProp(P_LEVEL)>5) return; 00145 00146 // is_active_guide() ist in /std/user_filter.c, welches vom 00147 // Spielerobjekt geerbt wird und damit zur Verfuegung steht. 00148 cicerones=filter(users(),#'is_active_guide); 00149 // uid verwenden, da sonst kleine Spieler einen getarnten 00150 // "Riesen" oder aehnliches anstprechen. 00151 namen=map(cicerones,function string (object o) 00152 { return(capitalize(geteuid(o))); } ); 00153 00154 if (namen && sizeof(namen)>0) 00155 { 00156 restext="\nEs gibt einige nette Spieler, die bereit sind, Dich " 00157 "auf Deinen ersten Schritten im "MUDNAME 00158 " zu begleiten. \n\nDerzeit " 00159 +IstSindMsg(namen)+" eingeloggt. Du kannst " 00160 "einen oder eine von Ihnen ansprechen, " 00161 "indem Du z.B. einfach \n" 00162 " 'teile "+ 00163 lower_case(namen[random(sizeof(namen))])+ 00164 " mit Hallo ich bin neu hier, kannst Du " 00165 "mir bitte helfen?'\n" 00166 "eintippst. Nur keine Scheu, diese Spieler " 00167 "haben sich freiwillig dazu bereiterklaert!\n" 00168 "\nDu kannst Dir diese Spieler jederzeit " 00169 "mit 'kwer cicerones' anzeigen lassen.\n\n"; 00170 write(break_string(restext,78,"* ",BS_LEAVE_MY_LFS)); 00171 } 00172 else 00173 { 00174 // Weia, kein Newbie-Guide da. Lieber erstmal nix tun, 00175 // bis uns was besseres einfaellt. 00176 } 00177 return; 00178 }

| protected int NewbieStatusMsg | ( | ) |
Definiert in Zeile 52 der Datei guide.c.
Benutzt break_string(), P_NEWBIE_GUIDE, QueryProp() und SetProp().
Wird benutzt von CiceroneCmd().
00052 { 00053 int cic=QueryProp(P_NEWBIE_GUIDE); 00054 // begrenzen auf 1 Tag, falls jemand da Schrott reingschrieben hat. 00055 if (cic > 86400) { 00056 cic=86400; 00057 SetProp(P_NEWBIE_GUIDE,cic); 00058 } 00059 00060 if (cic <= 0) 00061 write ("Du bist kein Cicerone.\n"); 00062 else if (cic < 60) 00063 write ("Du stehst Neuspielern als Cicerone zur Verfuegung.\n"); 00064 else { 00065 write(break_string( 00066 "Du stehst Neuspielern als Cicerone zur Verfuegung, allerdings " 00067 "nur in den Zeiten, in denen Du weniger als " + cic/60 00068 + ((cic/60)<2 ? " Minute ":" Minuten ") 00069 + "idle bist.\n",78)); 00070 } 00071 return 1; 00072 }


1.6.3