wanderer.c-Dateireferenz

#include <properties.h>
#include <language.h>
#include <moving.h>
#include "/secure/questmaster.h"
Include-Abhängigkeitsdiagramm für wanderer.c:

gehe zum Quellcode dieser Datei

Makrodefinitionen

#define DELAY   60
#define MAXWAY   30

Funktionen

 create ()
 frag (str)
 lauf ()

Variablen

inherit std npc

Makro-Dokumentation

#define DELAY   60

Definiert in Zeile 3 der Datei wanderer.c.

Wird benutzt von create() und lauf().

#define MAXWAY   30

Definiert in Zeile 4 der Datei wanderer.c.


Dokumentation der Funktionen

create (  ) 

Definiert in Zeile 11 der Datei wanderer.c.

Benutzt AddCmd(), AddId(), call_out(), create(), create_default_npc(), DELAY, destruct(), MALE, Name(), P_ALIGN, P_GENDER, P_HANDS, P_HP, P_LONG, P_MAX_HP, P_NAME, P_NO_ATTACK, P_REJECT, P_SHORT, P_XP, REJECT_GIVE, set_living_name(), SetProp() und WER.

00012 {
00013   if ( clonep(this_object()) ){
00014                   destruct(this_object());
00015                   return;
00016   }
00017   
00018   ::create();
00019   SetProp(P_NAME,"Wanderer");
00020   set_living_name("orakel");
00021   SetProp(P_GENDER, MALE);
00022   SetProp(P_SHORT,"Ein alter Wanderer");
00023   SetProp(P_LONG,
00024   "Ein uralter Wanderer mit einem langen Hirtenmantel und einem Hirtenstab.\n");
00025   AddId(({"wanderer","hirte","orakel"}));
00026                 create_default_npc( 19 );
00027   SetProp(P_MAX_HP, 5000);
00028   SetProp(P_HP, 5000);
00029   SetProp(P_GENDER,MALE);
00030   SetProp(P_ALIGN, 1000);
00031   SetProp(P_XP, 1000);
00032   SetProp(P_HANDS, ({" mit seinem Hirtenstab", 50}) );
00033   SetProp(P_NO_ATTACK, 1);
00034   SetProp(P_REJECT, ({ REJECT_GIVE, Name(WER) + " sagt: Danke, aber das "
00035                                                   "brauche ich nicht.\n" }) );
00036   call_out("lauf", DELAY);
00037   // Sollte eigentlich ueber das `info'-System laufen ;(
00038   AddCmd( ({"frag","frage"}), "frag" );
00039 }

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

frag ( str   ) 

Definiert in Zeile 41 der Datei wanderer.c.

Benutzt break_string(), i, member_array(), old_explode(), QM, QueryQuest() und quests.

00042 {
00043   int i,j,geredet;
00044   mixed *quests;
00045   string tmp;
00046   
00047   if (!str) return;
00048   str=lower_case(str);
00049   str=old_explode(str," ");
00050   if (!sizeof(str)) return;
00051   if (!id(str[0])) return;
00052   if (sizeof(str)<3 || (str[1]!="nach" && str[1]!="ueber"))
00053   {
00054     tell_object(this_player(),"Der Wanderer sagt: Ich versteh dich nicht.\n");
00055     return 1;
00056   }
00057   geredet=0;
00058   str=implode(str[2..]," ");
00059   if (str=="aufgabe" || str=="aufgaben" || str=="abenteuer")
00060   {
00061     tell_object(this_player(),"Der Wanderer sagt: Folgende Aufgaben gibt es hier:\n");
00062     quests=QM->QueryQuests();
00063     for (i=0;i<sizeof(quests[0]);i++)
00064     {
00065       tell_object(this_player(),quests[0][i]);
00066       if (this_interactive()->QueryQuest(quests[0][i]))
00067         tell_object(this_player()," [hast Du schon geloest]");
00068       tell_object(this_player(),"\n");
00069     }
00070     return 1;
00071   }
00072   quests=QM->QueryQuests();
00073   for (i=0;i<sizeof(quests[0]);i++)
00074   {
00075     if (member_array(str,old_explode(lower_case(quests[0][i])," "))>=0
00076                 || strstr(lower_case(quests[0][i]), str)>=0)
00077     {
00078       tmp=quests[0][i]+"? Dazu kann ich Dir folgendes sagen: ";
00079       tmp+=quests[1][i][3];
00080       tmp=old_explode(break_string(tmp,60),"\n");
00081       geredet=1;
00082       for (j=0;j<sizeof(tmp);j++)
00083                 tell_object(this_player(),"Der Wanderer sagt: "+tmp[j]+"\n");
00084     }
00085   }
00086   if (!geredet) 
00087     tell_object(this_player(),"Der Wanderer sagt: "+capitalize(str+" ")+"? Interessiert mich nicht !\n"); 
00088   return 1;
00089 }

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

lauf (  ) 

Definiert in Zeile 91 der Datei wanderer.c.

Benutzt call_out(), command_me(), DELAY, i, liste(), ok(), P_EXITS, P_ORAKEL und QueryProp().

00092 {
00093   int i;
00094   mapping liste;
00095   string *dirs;
00096   string *dirs2;
00097   int ok;
00098   
00099   liste = environment()->QueryProp(P_EXITS);
00100   dirs = m_indices(liste);
00101   dirs2 = ({ });
00102   for (i=0;i<sizeof(liste);i++)
00103     if (!catch(ok=liste[dirs[i]]->QueryProp(P_ORAKEL)) && ok) 
00104       dirs2 += ({ dirs[i] });
00105   
00106   if (sizeof(dirs2))
00107   {
00108     i=random(sizeof(dirs2));
00109     command_me(dirs2[i]);
00110   }
00111   call_out("lauf",DELAY);
00112 }

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


Variablen-Dokumentation

inherit std npc

Definiert in Zeile 1 der Datei wanderer.c.

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