#include <properties.h>#include <attributes.h>#include <wizlevels.h>#include <health.h>#include <new_skills.h>#include <language.h>#include <combat.h>#include <defines.h>#include <defuel.h>#include "/d/vland/morgoth/std/orc.h"
gehe zum Quellcode dieser Datei
Funktionen | |
| int | QueryFCnt () |
| int | SetFCnt (int fc) |
| int | QueryFDeg () |
| void | create () |
| string | _query_race () |
| string | _query_real_race () |
| string | _query_racedescr () |
| int | QueryAllowSelect () |
| string * | _query_racestring () |
| string | _query_default_guild () |
| mixed | RaceDefault (string arg) |
| protected void | heart_beat () |
| void | Attack (object enemy) |
| varargs int | _examine (string str, int mode) |
Variablen | |
| inherit std player | base |
| static int | f_cnt |
| static int | f_deg |
| varargs int _examine | ( | string | str, | |
| int | mode | |||
| ) |
Definiert in Zeile 201 der Datei orc.c.
Benutzt _examine(), break_string() und f_cnt.
00201 { 00202 00203 if(++f_cnt > F_MAX) { 00204 tell_object(this_object(),break_string(NO_EXAMINE[random(sizeof(NO_EXAMINE))],78)); 00205 return 1; 00206 } 00207 return ::_examine(str,mode); 00208 }

| string _query_default_guild | ( | ) |
| string _query_racedescr | ( | ) |
Definiert in Zeile 139 der Datei orc.c.
Benutzt break_string() und BS_LEAVE_MY_LFS.
00139 { 00140 return break_string("Ein Ork. Die brutale Macht des Boesen. Ein " 00141 "erbitterter Kaempfer, ohne Furcht vor dem Tod. So stellst Du " 00142 "Dir einen Ork vor.\nDiese Orks sehen vielleicht ausserlich so " 00143 "aus: Eine dicke und dunkle, lederartige Haut, die sicher " 00144 "einiges an Schlaegen abhaelt. Lange Eckzaehne, die sicher boese " 00145 "Wunden reissen koennen.\nDu spuerst, dass diese Orks hier ein " 00146 "wenig anders sind. Ihren Drang nach dem Blut ihrer Feinde scheinen " 00147 "sie recht gut unter Kontrolle zu haben, die meiste Zeit zumindest. " 00148 "Sie sind in der Lage, friedlich zwischen den anderen Rassen zu " 00149 "wandeln. Dennoch sind vor allem die Uruk-Hai Orks als Gegner nicht " 00150 "zu unterschaetzen, sollte es doch einmal zu einem Kampf kommen.", 00151 78,0,BS_LEAVE_MY_LFS); 00152 }

| string* _query_racestring | ( | ) |
| string _query_real_race | ( | ) |
| void Attack | ( | object | enemy | ) |
| void create | ( | ) |
Definiert in Zeile 55 der Datei orc.c.
Benutzt A_CON, A_INT, A_STR, create(), DT_ACID, DT_BLUDGEON, DT_FIRE, DT_HOLY, DT_RIP, DT_UNHOLY, f_cnt, f_deg, F_MODE_AS, FOOD_DELAY, HEAL_DELAY, MT_ANGRIFF, MT_BEHERRSCHUNG, MT_ILLUSION, MT_VERWANDLUNG, P_ATTRIBUTES_OFFSETS, P_AVERAGE_SIZE, P_AVERAGE_WEIGHT, P_BODY, P_DEFUEL_AMOUNT_DRINK, P_DEFUEL_AMOUNT_FOOD, P_DEFUEL_LIMIT_DRINK, P_DEFUEL_LIMIT_FOOD, P_DEFUEL_TIME_DRINK, P_DEFUEL_TIME_FOOD, P_FOOD_DELAY, P_HANDS, P_MAGIC_RESISTANCE_OFFSET, P_MATERIAL_KNOWLEDGE, P_MAX_ALCOHOL, P_MAX_DRINK, P_MAX_FOOD, P_POISON_DELAY, P_RESISTANCE_STRENGTHS, P_SIZE, P_SKILL_ATTRIBUTE_OFFSETS, P_SP_DELAY, P_WEIGHT, POISON_DELAY, QueryProp(), SA_DAMAGE, SAVE, Set(), set_next_reset(), SetDefaultHome(), SetPrayRoom() und SetProp().
00055 { 00056 if (!clonep() || object_name(this_object()) == __FILE__[0..<3]) { 00057 set_next_reset(-1); 00058 return; 00059 } 00060 00061 mixed res; 00062 00063 base::create(); 00064 00065 f_cnt=0; 00066 f_deg=F_DEG; 00067 00068 SetDefaultHome("/d/vland/morgoth/room/city/rathalle"); 00069 SetPrayRoom("/d/vland/morgoth/room/city/c0606"); 00070 SetProp(P_ATTRIBUTES_OFFSETS,([A_STR:4,A_INT:-1,A_CON:3])); 00071 /* Kleine aeh grosse Muskelpakete */ 00072 SetProp(P_SKILL_ATTRIBUTE_OFFSETS,([SA_DAMAGE:110])); 00073 SetProp(P_AVERAGE_SIZE,195); 00074 SetProp(P_AVERAGE_WEIGHT,125000); // ziemlich schwer, viele Muskeln 00075 SetProp(P_MATERIAL_KNOWLEDGE,([MATGROUP_DEAD:60, 00076 MATGROUP_BIO:40, 00077 MATGROUP_ELEMENTAL: 20, 00078 MAT_BLOOD:100])); 00079 SetProp(P_RESISTANCE_STRENGTHS, 00080 ([ 00081 DT_FIRE : -0.2, 00082 DT_HOLY :0.3, 00083 DT_UNHOLY : -0.2, 00084 DT_ACID : 0.2 ])); 00085 00086 SetProp(P_MAX_FOOD,110); 00087 SetProp(P_MAX_DRINK,110); 00088 SetProp(P_MAX_ALCOHOL,150); 00089 SetProp(P_DEFUEL_LIMIT_FOOD,50); 00090 SetProp(P_DEFUEL_LIMIT_DRINK,70); 00091 SetProp(P_DEFUEL_TIME_FOOD,300); 00092 SetProp(P_DEFUEL_TIME_DRINK,400); 00093 SetProp(P_DEFUEL_AMOUNT_FOOD,0.4); 00094 SetProp(P_DEFUEL_AMOUNT_DRINK,0.35); 00095 00096 /* SP regenerieren sie nich ganz so schnell, dafuer sind sie 00097 * ein bischen schneller bei Gift und Futter */ 00098 SetProp(P_SP_DELAY,HEAL_DELAY+1); 00099 SetProp(P_POISON_DELAY,POISON_DELAY-1); 00100 SetProp(P_FOOD_DELAY,FOOD_DELAY-1); 00101 00102 SetProp(P_MAGIC_RESISTANCE_OFFSET, 00103 ([ MT_ANGRIFF : 500, 00104 MT_ILLUSION : -250, 00105 MT_BEHERRSCHUNG : -250, 00106 MT_VERWANDLUNG : 500 ])); 00107 00108 00109 if(!(res=QueryProp(P_HANDS)) || !pointerp(res) || (sizeof(res)<3)) 00110 res=({" mit starken Haenden",35,({DT_BLUDGEON, DT_RIP}) }); 00111 SetProp(P_HANDS,res); 00112 /* Orks haben dicke Haut */ 00113 SetProp(P_BODY,25); 00114 00115 /* Groesse wird nur einmal gesetzt */ 00116 if(!QueryProp(P_SIZE)){ 00117 SetProp(P_SIZE,180+random(31)); 00118 Set(P_SIZE,SAVE,F_MODE_AS); 00119 } 00120 00121 /* Dito Gewicht */ 00122 if(!QueryProp(P_WEIGHT) || (QueryProp(P_WEIGHT) == 75000)){ 00123 SetProp(P_WEIGHT,100000+random(25001)+random(25001)); 00124 Set(P_WEIGHT,SAVE,F_MODE_AS); 00125 } 00126 }

| protected void heart_beat | ( | ) |
Definiert in Zeile 184 der Datei orc.c.
Benutzt f_cnt, f_deg und heart_beat().
00184 { 00185 ::heart_beat(); 00186 00187 if(f_cnt > 0 && !--f_deg) { 00188 f_cnt--; 00189 f_deg=F_DEG; 00190 } 00191 }

| int QueryFCnt | ( | ) |
| int QueryFDeg | ( | ) |
| mixed RaceDefault | ( | string | arg | ) |
Definiert in Zeile 172 der Datei orc.c.
Benutzt DT_BLUDGEON, DT_RIP, P_BODY, P_HANDS und RaceDefault().
00172 { 00173 if (!arg) 00174 return 0; 00175 switch(arg) { 00176 case P_HANDS : 00177 return ({" mit starken Haenden",35,({DT_BLUDGEON,DT_RIP}) }); 00178 case P_BODY : 00179 return 25; 00180 } 00181 return base::RaceDefault(arg); 00182 }

| int SetFCnt | ( | int | fc | ) |
int f_cnt [static] |
Definiert in Zeile 35 der Datei orc.c.
Wird benutzt von _examine(), Attack(), create(), heart_beat(), QueryFCnt() und SetFCnt().
int f_deg [static] |
Definiert in Zeile 35 der Datei orc.c.
Wird benutzt von create(), heart_beat() und QueryFDeg().
1.6.3