newsclient.c-Dateireferenz

#include <config.h>
#include <properties.h>
#include <news.h>
#include <wizlevels.h>
#include <language.h>
#include <defines.h>
Include-Abhängigkeitsdiagramm für newsclient.c:

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

Dokumentation der Funktionen

protected void create (  ) 

Definiert in Zeile 38 der Datei newsclient.c.

Benutzt create() und writer.

00039 {
00040   thing::create();
00041   writer=="";
00042 
00043 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

void Crumble (  ) 

Definiert in Zeile 231 der Datei newsclient.c.

Benutzt name und WER.

00232 {
00233   if (environment() && living(environment()))
00234     return;
00235   say(capitalize(name(WER))+" zerfaellt zu Staub, der sich sofort verteilt.\n");
00236   write(capitalize(name(WER))+" zerfaellt zu Staub, der sich sofort verteilt.\n");
00237   remove();
00238 }

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

string ladj ( string  str,
int  weite 
)

Definiert in Zeile 63 der Datei newsclient.c.

Wird benutzt von QueryLong().

00064 {
00065   return((str+"                                            ")[0..weite-1]);
00066 }

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

varargs string long ( int  mode  ) 

Definiert in Zeile 94 der Datei newsclient.c.

Benutzt QueryLong().

00095 {
00096   return QueryLong();
00097 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

Hier ist ein Graph der zeigt, wo diese Funktion aufgerufen wird:

varargs int remove ( int  silent  ) 

Definiert in Zeile 50 der Datei newsclient.c.

Benutzt remove().

00051 {
00052   return thing::remove();
00053 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

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 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:

string SetGroup ( string  str  ) 

Definiert in Zeile 33 der Datei newsclient.c.

Benutzt GROUP.

00034 {
00035   return GROUP=str;
00036 }

void SetInUseMessage ( string  str  ) 

Definiert in Zeile 28 der Datei newsclient.c.

Benutzt usemsg.

00029 {
00030   usemsg=str;
00031 }

void thinginit (  ) 

Definiert in Zeile 45 der Datei newsclient.c.

Benutzt init().

00046 {
00047   thing::init();
00048 }

Hier ist ein Graph der zeigt, was diese Funktion aufruft:


Variablen-Dokumentation

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().

Erzeugt am Thu Jun 3 14:42:39 2010 für MorgenGrauen Mudlib von  doxygen 1.6.3