diff options
Diffstat (limited to 'src/map/mob.hpp')
-rw-r--r-- | src/map/mob.hpp | 214 |
1 files changed, 84 insertions, 130 deletions
diff --git a/src/map/mob.hpp b/src/map/mob.hpp index 19addf2..16715c4 100644 --- a/src/map/mob.hpp +++ b/src/map/mob.hpp @@ -1,151 +1,105 @@ -// $Id: mob.h,v 1.4 2004/09/25 05:32:18 MouseJstr Exp $ #ifndef MOB_HPP #define MOB_HPP -#include "../common/timer.hpp" -#define MAX_RANDOMMONSTER 3 + +#include "mob.t.hpp" + +#include "../common/mmo.hpp" +#include "../common/timer.t.hpp" +#include "../common/random.t.hpp" + +#include "clif.t.hpp" +#include "map.hpp" +#include "skill.t.hpp" struct mob_skill { - short state; - short skill_id, skill_lv; + MobSkillState state; + SkillID skill_id; + short skill_lv; short permillage; - int casttime, delay; + interval_t casttime, delay; short cancel; - short cond1, cond2; - short target; - int val[5]; + MobSkillCondition cond1; + int cond2i; + MobSkillTarget target; + int val[5]; short emotion; }; struct mob_db { char name[24], jname[24]; - int lv; - int max_hp, max_sp; - int base_exp, job_exp; - int atk1, atk2; - int def, mdef; - int str, agi, vit, int_, dex, luk; - int range, range2, range3; - int size, race, element, mode; - int speed, adelay, amotion, dmotion; - int mexp, mexpper; - int mutations_nr, mutation_power; + int lv; + int max_hp, max_sp; + int base_exp, job_exp; + int atk1, atk2; + int def, mdef; + earray<int, ATTR, ATTR::COUNT> attrs; + int range, range2, range3; + // always 1 + int size; + Race race; + LevelElement element; + MobMode mode; + int speed, adelay, amotion, dmotion; + int mutations_nr, mutation_power; struct { - int nameid, p; + int nameid; + random_::Fixed<int, 10000> p; } dropitem[8]; - struct - { - int nameid, p; - } mvpitem[3]; - int view_class, sex; + int sex; short hair, hair_color, weapon, shield, head_top, head_mid, head_buttom, option, clothes_color; // [Valaris] - int equip; // [Valaris] - int summonper[MAX_RANDOMMONSTER]; - int maxskill; + int equip; // [Valaris] + int maxskill; struct mob_skill skill[MAX_MOBSKILL]; }; extern struct mob_db mob_db[]; -enum -{ - MST_TARGET = 0, - MST_SELF, - MST_FRIEND, - MST_MASTER, - MST_AROUND5, - MST_AROUND6, - MST_AROUND7, - MST_AROUND8, - MST_AROUND1, - MST_AROUND2, - MST_AROUND3, - MST_AROUND4, - MST_AROUND = MST_AROUND4, - - MSC_ALWAYS = 0x0000, - MSC_MYHPLTMAXRATE = 0x0001, - MSC_FRIENDHPLTMAXRATE = 0x0010, - MSC_MYSTATUSON = 0x0020, - MSC_MYSTATUSOFF = 0x0021, - MSC_FRIENDSTATUSON = 0x0030, - MSC_FRIENDSTATUSOFF = 0x0031, - MSC_NOTINTOWN = 0x0032, - - MSC_ATTACKPCGT = 0x0100, - MSC_ATTACKPCGE = 0x0101, - MSC_SLAVELT = 0x0110, - MSC_SLAVELE = 0x0111, - MSC_CLOSEDATTACKED = 0x1000, - MSC_LONGRANGEATTACKED = 0x1001, - MSC_SKILLUSED = 0x1010, - MSC_CASTTARGETED = 0x1011, -}; - -enum -{ - MSS_IDLE, // 待機 - MSS_WALK, // 移動 - MSS_ATTACK, // 攻撃 - MSS_DEAD, // 死亡 - MSS_LOOT, // ルート - MSS_CHASE, // 突撃 -}; - -int mobdb_searchname (const char *str); -int mobdb_checkid (const int id); -int mob_once_spawn (struct map_session_data *sd, const char *mapname, - int x, int y, const char *mobname, int class_, int amount, - const char *event); -int mob_once_spawn_area (struct map_session_data *sd, const char *mapname, int x0, - int y0, int x1, int y1, const char *mobname, - int class_, int amount, const char *event); - -int mob_spawn_guardian (struct map_session_data *sd, const char *mapname, // Spawning Guardians [Valaris] - int x, int y, const char *mobname, int class_, int amount, const char *event, int guardian); // Spawning Guardians [Valaris] - -int mob_walktoxy (struct mob_data *md, int x, int y, int easy); - -int mob_target (struct mob_data *md, struct block_list *bl, int dist); -int mob_stop_walking (struct mob_data *md, int type); -int mob_stopattack (struct mob_data *); -int mob_spawn (int); -int mob_damage (struct block_list *, struct mob_data *, int, int); -int mob_changestate (struct mob_data *md, int state, int type); -int mob_heal (struct mob_data *, int); -int mob_get_viewclass (int); -int mob_get_sex (int); -short mob_get_hair (int); -short mob_get_hair_color (int); -short mob_get_weapon (int); -short mob_get_shield (int); -short mob_get_head_top (int); -short mob_get_head_mid (int); -short mob_get_head_buttom (int); -short mob_get_clothes_color (int); //player mob dye [Valaris] -int mob_get_equip (int); // mob equip [Valaris] -int do_init_mob (void); - -int mob_delete (struct mob_data *md); -int mob_catch_delete (struct mob_data *md, int type); -void mob_timer_delete (timer_id, tick_t, custom_id_t, custom_data_t); - -int mob_deleteslave (struct mob_data *md); - -int mob_counttargeted (struct mob_data *md, struct block_list *src, - int target_lv); - -int mob_class_change (struct mob_data *md, int *value); -int mob_warp (struct mob_data *md, int m, int x, int y, int type); - -int mobskill_use (struct mob_data *md, unsigned int tick, int event); -int mobskill_event (struct mob_data *md, int flag); -void mobskill_castend_id (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data); -void mobskill_castend_pos (timer_id tid, tick_t tick, custom_id_t id, custom_data_t data); -int mob_summonslave (struct mob_data *md2, int *value, int amount, int flag); - -int mob_gvmobcheck (struct map_session_data *sd, struct block_list *bl); -void mob_reload (void); - -#endif +int mobdb_searchname(const char *str); +int mobdb_checkid(const int id); +int mob_once_spawn(struct map_session_data *sd, + const char *mapname, int x, int y, + const char *mobname, int class_, int amount, const char *event); +int mob_once_spawn_area(struct map_session_data *sd, + const char *mapname, int x0, int y0, int x1, int y1, + const char *mobname, int class_, int amount, const char *event); + +int mob_target(struct mob_data *md, struct block_list *bl, int dist); +int mob_stop_walking(struct mob_data *md, int type); +int mob_stopattack(struct mob_data *); +int mob_spawn(int); +int mob_damage(struct block_list *, struct mob_data *, int, int); +int mob_heal(struct mob_data *, int); +int mob_get_sex(int); +short mob_get_hair(int); +short mob_get_hair_color(int); +short mob_get_weapon(int); +short mob_get_shield(int); +short mob_get_head_top(int); +short mob_get_head_mid(int); +short mob_get_head_buttom(int); +short mob_get_clothes_color(int); //player mob dye [Valaris] +int mob_get_equip(int); // mob equip [Valaris] +int do_init_mob(void); + +int mob_delete(struct mob_data *md); +int mob_catch_delete(struct mob_data *md, BeingRemoveWhy type); +void mob_timer_delete(TimerData *, tick_t, int); + +int mob_deleteslave(struct mob_data *md); + +int mob_counttargeted(struct mob_data *md, struct block_list *src, + ATK target_lv); + +int mob_warp(struct mob_data *md, int m, int x, int y, BeingRemoveWhy type); + +int mobskill_use(struct mob_data *md, tick_t tick, MobSkillCondition event); +int mobskill_event(struct mob_data *md, BF flag); +void mobskill_castend_id(TimerData *tid, tick_t tick, int id); +void mobskill_castend_pos(TimerData *tid, tick_t tick, int id); +int mob_summonslave(struct mob_data *md2, int *value, int amount, int flag); + +void mob_reload(void); + +#endif // MOB_HPP |