Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

mob.h

00001 // $Id: mob.h 484 2006-04-02 07:28:04Z zugule $
00002 #ifndef _MOB_H_
00003 #define _MOB_H_
00004 
00005 #define MAX_RANDOMMONSTER 3
00006 #define MAX_MOB_RACE_DB 6
00007 
00008 struct mob_skill {
00009         short state;
00010         short skill_id,skill_lv;
00011         short permillage;
00012         int casttime,delay;
00013         short cancel;
00014         short cond1, cond2;
00015         short target;
00016         int val[5];
00017         short emotion;
00018 };
00019 
00020 struct mob_db {
00021         char name[25], jname[25]; // 24 + NULL
00022         int lv;
00023         int max_hp, max_sp;
00024         int base_exp, job_exp;
00025         int atk1, atk2;
00026         int def, mdef;
00027         int str, agi, vit, int_, dex, luk;
00028         int range, range2, range3;
00029         int size, race, element, mode;
00030         short race2;    // celest
00031         int speed, adelay, amotion, dmotion;
00032         int mexp, mexpper;
00033         struct { int nameid; short p; } dropitem[10]; // p: 0-10000(100%)
00034         struct { int nameid; short p; } mvpitem[3]; // p: 0-10000(100%)
00035         int view_class, sex;
00036         short hair, hair_color, weapon, shield, head_top, head_mid, head_buttom, option, clothes_color; // [Valaris]
00037         int equip; // [Valaris]
00038         int summonper[MAX_RANDOMMONSTER];
00039         int maxskill;
00040         struct mob_skill skill[MAX_MOBSKILL];
00041 };
00042 extern struct mob_db mob_db[];
00043 
00044 enum {
00045         MST_TARGET =    0,
00046         MST_SELF,
00047         MST_FRIEND,
00048         MST_MASTER,
00049         MST_AROUND5,
00050         MST_AROUND6,
00051         MST_AROUND7,
00052         MST_AROUND8,
00053         MST_AROUND1,
00054         MST_AROUND2,
00055         MST_AROUND3,
00056         MST_AROUND4,
00057         MST_AROUND                      =       MST_AROUND4,
00058 
00059         MSC_ALWAYS             = 0x0000,
00060         MSC_MYHPLTMAXRATE,
00061         MSC_MYHPINRATE,
00062         MSC_FRIENDHPLTMAXRATE,
00063         MSC_FRIENDHPINRATE,
00064         MSC_MYSTATUSON,
00065         MSC_MYSTATUSOFF,
00066         MSC_FRIENDSTATUSON,
00067         MSC_FRIENDSTATUSOFF,
00068         MSC_ATTACKPCGT,
00069         MSC_ATTACKPCGE,
00070         MSC_SLAVELT,
00071         MSC_SLAVELE,
00072         MSC_CLOSEDATTACKED,
00073         MSC_LONGRANGEATTACKED,
00074         MSC_AFTERSKILL,
00075         MSC_SKILLUSED,
00076         MSC_CASTTARGETED,
00077         MSC_RUDEATTACKED,
00078         MSC_MASTERHPLTMAXRATE,
00079         MSC_MASTERATTACKED,
00080         MSC_ALCHEMIST,
00081         MSC_SPAWN,
00082 };
00083 
00084 //Mob skill states.
00085 enum {
00086         MSS_IDLE,
00087         MSS_WALK,
00088         MSS_LOOT,
00089         MSS_DEAD,
00090         MSS_BERSERK, //Aggressive mob attacking
00091         MSS_ANGRY,   //Mob retaliating from being attacked.
00092         MSS_RUSH,    //Mob following a player after being attacked.
00093         MSS_FOLLOW,  //Mob following a player without being attacked.
00094 };
00095 
00096 int mobdb_searchname(const char *str);
00097 int mobdb_checkid(const int id);
00098 int mob_once_spawn(struct map_session_data *sd,char *mapname,
00099         int x,int y,const char *mobname,int class,int amount,const char *event);
00100 int mob_once_spawn_area(struct map_session_data *sd,char *mapname,
00101         int x0,int y_0,int x1,int y_1,
00102         const char *mobname,int class,int amount,const char *event);
00103 
00104 int mob_spawn_guardian(struct map_session_data *sd, char *mapname,      // Spawning Guardians [Valaris]
00105         int x, int y, const char *mobname, int class, int amount, const char *event, int guardian);     // Spawning Guardians [Valaris]
00106 
00107 
00108 int mob_walktoxy(struct mob_data *md, int x, int y, int easy);
00109 //int mob_randomwalk(struct mob_data *md, unsigned int tick);
00110 //int mob_can_move(struct mob_data *md);
00111 
00112 int mob_target(struct mob_data *md, struct block_list *bl, int dist);
00113 int mob_stop_walking(struct mob_data *md, int type);
00114 void mob_stopattack(struct mob_data *);
00115 int mob_spawn(int);
00116 int mob_damage(struct block_list *, struct mob_data*, int, int);
00117 void mob_changestate(struct mob_data *md, int state, int type);
00118 int mob_heal(struct mob_data*, int);
00119 int mob_exclusion_add(struct mob_data *md, int type, int id);
00120 int mob_exclusion_check(struct mob_data *md, struct map_session_data *sd);
00121 int mob_get_viewclass(int);
00122 int mob_get_sex(int);
00123 short mob_get_hair(int);
00124 short mob_get_hair_color(int);
00125 short mob_get_weapon(int);
00126 short mob_get_shield(int);
00127 short mob_get_head_top(int);
00128 short mob_get_head_mid(int);
00129 short mob_get_head_buttom(int);
00130 short mob_get_clothes_color(int);       //player mob dye [Valaris]
00131 int mob_get_equip(int); // mob equip [Valaris]
00132 int do_init_mob(void);
00133 
00134 int mob_delete(struct mob_data *md);
00135 void mob_catch_delete(struct mob_data *md, int type);
00136 TIMER_FUNC(mob_timer_delete);
00137 
00138 int mob_deleteslave(struct mob_data *md);
00139 
00140 int mob_class_change(struct mob_data *md, int *value, int valuesize);
00141 int mob_warp(struct mob_data *md, int m, int x, int y, int type);
00142 
00143 int mobskill_use(struct mob_data *md, unsigned int tick, int event);
00144 int mobskill_event(struct mob_data *md, int flag);
00145 TIMER_FUNC(mobskill_castend_id);
00146 TIMER_FUNC(mobskill_castend_pos);
00147 int mob_summonslave(struct mob_data *md2, int *value, int amount, int flag);
00148 
00149 int mob_gvmobcheck(struct map_session_data *sd, struct block_list *bl);
00150 void mob_reload(void);
00151 
00152 #endif // _MOB_H_

Generated on Fri Apr 28 10:20:05 2006 for OpenAthena by  doxygen 1.4.4