#include <properties.h>#include <language.h>#include <moving.h>#include "/secure/questmaster.h"
gehe zum Quellcode dieser Datei
Makrodefinitionen | |
| #define | DELAY 60 |
| #define | MAXWAY 30 |
Funktionen | |
| create () | |
| frag (str) | |
| lauf () | |
Variablen | |
| inherit std | npc |
| #define DELAY 60 |
Definiert in Zeile 3 der Datei wanderer.c.
| #define MAXWAY 30 |
Definiert in Zeile 4 der Datei wanderer.c.
| 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 }

| 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 }

| 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 }

| inherit std npc |
Definiert in Zeile 1 der Datei wanderer.c.
1.6.3