#include <config.h>#include <properties.h>#include <news.h>#include <wizlevels.h>#include <language.h>#include <defines.h>
gehe zum Quellcode dieser Datei
Funktionen | |
| void | SetInUseMessage (string str) |
| string | SetGroup (string str) |
| protected void | create () |
| void | thinginit () |
| varargs int | remove (int silent) |
| void | init () |
| string | ladj (string str, int weite) |
| string | QueryLong () |
| varargs string | long (int mode) |
| int | schreib (string str) |
| int | get_note_line (string str) |
| int | lies (string str) |
| int | loesche (string str) |
| void | Crumble () |
| varargs int | move (object target, mixed method) |
Variablen | |
| inherit std | thing |
| inherit std | more |
| string | GROUP |
| string | writer |
| string | usemsg |
| mixed * | message |
| protected void create | ( | ) |
Definiert in Zeile 38 der Datei newsclient.c.
00039 { 00040 thing::create(); 00041 writer==""; 00042 00043 }

| void Crumble | ( | ) |
Definiert in Zeile 231 der Datei newsclient.c.
| int get_note_line | ( | string | str | ) |
Definiert in Zeile 135 der Datei newsclient.c.
Benutzt err, input_to(), IS_WIZARD, M_MESSAGE, M_WRITER, message, NEWSSERVER und writer.
00136 { 00137 int err; 00138 if (str=="**" || str=="~.") 00139 { 00140 writer=0; 00141 switch (err=(NEWSSERVER->WriteNote(message))) 00142 { 00143 case 1: write("Ok, Nachricht aufgehaengt.\n"); 00144 say(message[M_WRITER]+" hat eine Nachricht ans Brett gehaengt.\n"); 00145 return 1; 00146 case -1: write("Du darfst leider keine Nachrichten hier aufhaengen.\n"); 00147 return 1; 00148 case -3: write("Das Brett ist leider voll !\n"); 00149 return 1; 00150 default: write("Interner Fehler "+err+" aufgetreten ! Bitte Erzmagier verstaendigen.\n"); 00151 return 1; 00152 } 00153 } 00154 if (str=="~q") 00155 { 00156 writer=0; 00157 write("Notiz nicht angeheftet.\n"); 00158 return 1; 00159 } 00160 if (str[0..1]=="~r" && IS_WIZARD(this_player())) { 00161 str=str[2..<1]; 00162 if (str[0]==' ') str=str[1..<1]; 00163 if (!str || catch(err=file_size(str);publish) || err<0) { 00164 write("File nicht gefunden.\n"); 00165 write(":"); 00166 input_to("get_note_line"); 00167 return 1; 00168 } 00169 str=read_file(str); 00170 if (!str){ 00171 write("Zu gross!\n:"); 00172 input_to("get_note_line"); 00173 return 1; 00174 } 00175 write("Ok.\n"); 00176 } 00177 if (message[M_MESSAGE] && message[M_MESSAGE]!="") message[M_MESSAGE]+="\n"; 00178 message[M_MESSAGE]+=str; 00179 write(":"); 00180 input_to("get_note_line"); 00181 return 1; 00182 }

| void init | ( | ) |
Definiert in Zeile 55 der Datei newsclient.c.
Benutzt init().
00056 { 00057 thing::init(); 00058 add_action("schreib","schreib",1); 00059 add_action("lies","lies"); 00060 add_action("loesche","loesch",1); 00061 }

| string ladj | ( | string | str, | |
| int | weite | |||
| ) |
Definiert in Zeile 63 der Datei newsclient.c.
Wird benutzt von QueryLong().

| int lies | ( | string | str | ) |
Definiert in Zeile 184 der Datei newsclient.c.
Benutzt _notify_fail(), dtime(), extract(), GROUP, M_MESSAGE, M_TIME, M_TITLE, M_WRITER und NEWSSERVER.
00185 { 00186 int num; 00187 mixed *messages; 00188 00189 if (!str || str=="" || sscanf(str,"%d",num)!=1 || num<=0) 00190 { 00191 _notify_fail("WELCHE Nachricht willst Du lesen ?\n"); 00192 return 0; 00193 } 00194 num--; 00195 messages=(NEWSSERVER->GetNotes(GROUP)); 00196 if (sizeof(messages)<=num) 00197 { 00198 _notify_fail("So viele Nachrichten sind da nicht !\n"); 00199 return 0; 00200 } 00201 this_player()->More(messages[num][M_TITLE]+" ("+messages[num][M_WRITER]+", "+ 00202 extract(dtime(messages[num][M_TIME]),5,26)+"):\n"+ 00203 messages[num][M_MESSAGE]); 00204 return 1; 00205 }

| int loesche | ( | string | str | ) |
Definiert in Zeile 207 der Datei newsclient.c.
Benutzt _notify_fail(), GROUP, name und NEWSSERVER.
00208 { 00209 int num; 00210 00211 if (!str || str=="" || sscanf(str,"%d",num)!=1 || num<=0) 00212 { 00213 _notify_fail("WELCHE Nachricht willst Du loeschen ?\n"); 00214 return 0; 00215 } 00216 num--; 00217 switch (NEWSSERVER->RemoveNote(GROUP, num)){ 00218 case 1: write("Ok.\n"); 00219 say(this_player()->name()+" entfernt eine Nachricht vom Brett.\n"); 00220 return 1; 00221 case -1: write("Das darfst Du nicht.\n"); 00222 say(this_player()->name()+" versucht, eine Nachricht vom Brett zu reissen.\n"); 00223 return 1; 00224 case -3: write("So viele Nachrichten sind da nicht !\n"); 00225 return 1; 00226 default: write("Interner Fehler. Bitte Erzmagier verstaendigen !\n"); 00227 return 1; 00228 } 00229 }

| varargs string long | ( | int | mode | ) |
Definiert in Zeile 94 der Datei newsclient.c.
Benutzt QueryLong().
00095 { 00096 return QueryLong(); 00097 }

| varargs int move | ( | object | target, | |
| mixed | method | |||
| ) |
Definiert in Zeile 240 der Datei newsclient.c.
Benutzt call_out() und move().
00241 { 00242 if (objectp(target)&&!living(target)&&environment()&&living(environment())) 00243 call_out("Crumble",30+random(30)); 00244 return ::move(target, method); 00245 }

| string QueryLong | ( | ) |
Definiert in Zeile 68 der Datei newsclient.c.
Benutzt desc, dtime(), extract(), GROUP, i, ladj(), M_TIME, M_TITLE, M_WRITER, NEWSSERVER, P_LONG und QueryProp().
Wird benutzt von long().
00069 { 00070 mixed *messages; 00071 string desc; 00072 int i; 00073 00074 desc=QueryProp(P_LONG); 00075 desc+="\n"; 00076 messages=NEWSSERVER->GetNotes(GROUP); 00077 if (!pointerp(messages) || !sizeof(messages)) 00078 return desc+"Zur Zeit befinden sich keine Nachrichten am Brett.\n"; 00079 if (sizeof(messages)==1) 00080 desc+="Zur Zeit befindet sich eine Nachricht am Brett:\n\n"; 00081 else 00082 desc+="Zur Zeit befinden sich "+sizeof(messages)+" Nachrichten am Brett:\n\n"; 00083 for (i=0;i<sizeof(messages);i++) 00084 { 00085 if (i<9) desc+=" "; 00086 desc+=""+(i+1)+". "; 00087 desc+=(ladj(messages[i][M_TITLE],45)+" ("+ 00088 ladj(messages[i][M_WRITER]+",",13)+ 00089 extract(dtime(messages[i][M_TIME]),4,24)+")\n"); 00090 } 00091 return desc; 00092 }


| varargs int remove | ( | int | silent | ) |
Definiert in Zeile 50 der Datei newsclient.c.
Benutzt remove().
00051 { 00052 return thing::remove(); 00053 }

| int schreib | ( | string | str | ) |
Definiert in Zeile 101 der Datei newsclient.c.
Benutzt _notify_fail(), err, FEMALE, GROUP, input_to(), IS_WIZARD, M_BOARD, M_MESSAGE, M_TITLE, message, NEWSSERVER, P_GENDER, query_real_name(), QueryProp(), usemsg und writer.
00102 { 00103 int err; 00104 00105 if (!this_interactive() || !this_interactive()->query_real_name()) return 0; 00106 if (writer) 00107 { 00108 write("Das geht im Moment nicht, da "+capitalize(writer)+" gerade an diesem Brett schreibt.\n"); 00109 if (usemsg) write(usemsg+"\n"); 00110 return 1; 00111 } 00112 _notify_fail("Du musst einen Titel fuer die Notiz angeben !\n"); 00113 if (!str) return 0; 00114 switch (err=NEWSSERVER->AskAllowedWrite(GROUP)) 00115 { 00116 case 1: break; 00117 case -1: write("Du darfst keine Notes an dieses Brett heften !\n"); return 1; 00118 case -3: write("Das Brett ist leider voll !\n"); return 1; 00119 default: write("Interner Fehler "+err+", Erzmagier verstaendigen !\n"); return 1; 00120 } 00121 writer=this_interactive()->query_real_name(); 00122 message=allocate(6); 00123 message[M_BOARD]=GROUP; 00124 message[M_TITLE]=str; 00125 message[M_MESSAGE]=""; 00126 write("Ok, beende Deine Notiz mit '**' oder brich sie mit '~q' ab !\n"); 00127 if (IS_WIZARD(this_player())) 00128 write("Als Magier"+(this_player()->QueryProp(P_GENDER)==FEMALE ? "in" : "")+ 00129 " kannst Du per '~r<filename>' ein File in die Notiz einlesen.\n"); 00130 input_to("get_note_line"); 00131 write(":"); 00132 return 1; 00133 }

| string SetGroup | ( | string | str | ) |
Definiert in Zeile 33 der Datei newsclient.c.
Benutzt GROUP.
00034 { 00035 return GROUP=str; 00036 }
| void SetInUseMessage | ( | string | str | ) |
| void thinginit | ( | ) |
Definiert in Zeile 45 der Datei newsclient.c.
Benutzt init().
00046 { 00047 thing::init(); 00048 }

| string GROUP |
Definiert in Zeile 24 der Datei newsclient.c.
| mixed* message |
Definiert in Zeile 99 der Datei newsclient.c.
| inherit std more |
Definiert in Zeile 15 der Datei newsclient.c.
| inherit std thing |
Definiert in Zeile 14 der Datei newsclient.c.
| string usemsg |
Definiert in Zeile 26 der Datei newsclient.c.
Wird benutzt von schreib() und SetInUseMessage().
| string writer |
Definiert in Zeile 25 der Datei newsclient.c.
Wird benutzt von create(), get_note_line() und schreib().
1.6.3