29#ifndef HORIZON_ZONE_MONSTER_DEFINITIONS_HPP
30#define HORIZON_ZONE_MONSTER_DEFINITIONS_HPP
36#include <unordered_map>
38#define MAX_MOB_DROP 10
39#define MAX_MVP_DROP 10
40#define MAX_MOB_DB 22000
#define MAX_UNIT_NAME_LENGTH
Definition: Client.hpp:34
monster_secondary_race_type
Definition: MonsterDefinitions.hpp:75
@ MONSTER_RACE2_GUARDIAN
Definition: MonsterDefinitions.hpp:81
@ MONSTER_RACE2_KOBOLD
Definition: MonsterDefinitions.hpp:78
@ MONSTER_RACE2_NONE
Definition: MonsterDefinitions.hpp:76
@ MONSTER_RACE2_ORC
Definition: MonsterDefinitions.hpp:79
@ MONSTER_RACE2_GOBLIN
Definition: MonsterDefinitions.hpp:77
@ MONSTER_RACE2_SCARABA
Definition: MonsterDefinitions.hpp:83
@ MONSTER_RACE2_NINJA
Definition: MonsterDefinitions.hpp:82
@ MONSTER_RACE2_MAX
Definition: MonsterDefinitions.hpp:85
@ MONSTER_RACE2_TURTLE
Definition: MonsterDefinitions.hpp:84
@ MONSTER_RACE2_GOLEM
Definition: MonsterDefinitions.hpp:80
monster_mode_type
Definition: MonsterDefinitions.hpp:89
@ MONSTER_MODE_MASK_TARGETWEAK
Definition: MonsterDefinitions.hpp:105
@ MONSTER_MODE_MASK_LOOTER
Definition: MonsterDefinitions.hpp:92
@ MONSTER_MODE_MASK_CHANGECHASE
Definition: MonsterDefinitions.hpp:101
@ MONSTER_MODE_MASK_CASTSENSOR_IDLE
Definition: MonsterDefinitions.hpp:95
@ MONSTER_MODE_MASK_PLANT
Definition: MonsterDefinitions.hpp:97
@ MONSTER_MODE_MASK_NOKNOCKBACK
Definition: MonsterDefinitions.hpp:106
@ MONSTER_MODE_MASK_BOSS
Definition: MonsterDefinitions.hpp:96
@ MONSTER_MODE_MASK_CANATTACK
Definition: MonsterDefinitions.hpp:98
@ MONSTER_MODE_MASK_CASTSENSOR_CHASE
Definition: MonsterDefinitions.hpp:100
@ MONSTER_MODE_MASK_AGGRESSIVE
Definition: MonsterDefinitions.hpp:93
@ MONSTER_MODE_MASK_CANMOVE
Definition: MonsterDefinitions.hpp:91
@ MONSTER_MODE_MASK_DETECTOR
Definition: MonsterDefinitions.hpp:99
@ MONSTER_MODE_MASK_CHANGETARGET_CHASE
Definition: MonsterDefinitions.hpp:104
@ MONSTER_MODE_MASK_ANGRY
Definition: MonsterDefinitions.hpp:102
@ MONSTER_MODE_MASK_NONE
Definition: MonsterDefinitions.hpp:90
@ MONSTER_MODE_MASK_ALL
Definition: MonsterDefinitions.hpp:109
@ MONSTER_MODE_MASK_CHANGETARGET_MELEE
Definition: MonsterDefinitions.hpp:103
@ MONSTER_MODE_MASK_ASSIST
Definition: MonsterDefinitions.hpp:94
monster_boss_type
Definition: MonsterDefinitions.hpp:42
@ BOSS_TYPE_MINI
Definition: MonsterDefinitions.hpp:44
@ BOSS_TYPE_MVP
Definition: MonsterDefinitions.hpp:45
@ BOSS_TYPE_NONE
Definition: MonsterDefinitions.hpp:43
monster_skill_cast_condition_type
Definition: MonsterDefinitions.hpp:142
@ MONSTER_SKILL_CC_FRIENDSTATUSOFF
Definition: MonsterDefinitions.hpp:151
@ MONSTER_SKILL_CC_FRIENDHPINRATE
Definition: MonsterDefinitions.hpp:147
@ MONSTER_SKILL_CC_FRIENDSTATUSON
Definition: MonsterDefinitions.hpp:150
@ MONSTER_SKILL_CC_SKILLUSED
Definition: MonsterDefinitions.hpp:159
@ MONSTER_SKILL_CC_MAGICATTACKED
Definition: MonsterDefinitions.hpp:166
@ MONSTER_SKILL_CC_MASTERATTACKED
Definition: MonsterDefinitions.hpp:163
@ MONSTER_SKILL_CC_MASTERHPLTMAXRATE
Definition: MonsterDefinitions.hpp:162
@ MONSTER_SKILL_CC_CASTTARGETED
Definition: MonsterDefinitions.hpp:160
@ MONSTER_SKILL_CC_ALWAYS
Definition: MonsterDefinitions.hpp:143
@ MONSTER_SKILL_CC_ATTACKPCGT
Definition: MonsterDefinitions.hpp:152
@ MONSTER_SKILL_CC_CLOSERANGEATTACKED
Definition: MonsterDefinitions.hpp:156
@ MONSTER_SKILL_CC_ALCHEMIST
Definition: MonsterDefinitions.hpp:164
@ MONSTER_SKILL_CC_LONGRANGEATTACKED
Definition: MonsterDefinitions.hpp:157
@ MONSTER_SKILL_CC_MYHPLTMAXRATE
Definition: MonsterDefinitions.hpp:144
@ MONSTER_SKILL_CC_ATTACKPCGE
Definition: MonsterDefinitions.hpp:153
@ MONSTER_SKILL_CC_SLAVELE
Definition: MonsterDefinitions.hpp:155
@ MONSTER_SKILL_CC_FRIENDHPLTMAXRATE
Definition: MonsterDefinitions.hpp:146
@ MONSTER_SKILL_CC_MYSTATUSOFF
Definition: MonsterDefinitions.hpp:149
@ MONSTER_SKILL_CC_AFTERSKILL
Definition: MonsterDefinitions.hpp:158
@ MONSTER_SKILL_CC_SLAVELT
Definition: MonsterDefinitions.hpp:154
@ MONSTER_SKILL_CC_MYSTATUSON
Definition: MonsterDefinitions.hpp:148
@ MONSTER_SKILL_CC_MYHPINRATE
Definition: MonsterDefinitions.hpp:145
@ MONSTER_SKILL_CC_SPAWN
Definition: MonsterDefinitions.hpp:165
@ MONSTER_SKILL_CC_RUDEATTACKED
Definition: MonsterDefinitions.hpp:161
monster_primary_race_type
Definition: MonsterDefinitions.hpp:48
@ MONSTER_RACE_NONDEMIHUMAN
Every race except Demi-Human (including Player)
Definition: MonsterDefinitions.hpp:68
@ MONSTER_RACE_NONDEMIPLAYER
Every race except Demi-Human (and except Player)
Definition: MonsterDefinitions.hpp:71
@ MONSTER_RACE_ALL
Every race (implemented as equivalent to RC_BOSS and RC_NONBOSS)
Definition: MonsterDefinitions.hpp:72
@ MONSTER_RACE_MAX
Definition: MonsterDefinitions.hpp:65
@ MONSTER_RACE_DRAGON
Dragon.
Definition: MonsterDefinitions.hpp:59
@ MONSTER_RACE_ANGEL
Angel.
Definition: MonsterDefinitions.hpp:58
@ MONSTER_RACE_BOSS
Boss.
Definition: MonsterDefinitions.hpp:62
@ MONSTER_RACE_PLANT
Plant.
Definition: MonsterDefinitions.hpp:53
@ MONSTER_RACE_PLAYER
Player.
Definition: MonsterDefinitions.hpp:60
@ MONSTER_RACE_DEMON
Demon.
Definition: MonsterDefinitions.hpp:56
@ MONSTER_RACE_UNDEAD
Undead.
Definition: MonsterDefinitions.hpp:51
@ MONSTER_RACE_DEMIHUMAN
Demi-Human (not including Player)
Definition: MonsterDefinitions.hpp:57
@ MONSTER_RACE_INSECT
Insect.
Definition: MonsterDefinitions.hpp:54
@ MONSTER_RACE_DEMIPLAYER
Demi-Human (including Player)
Definition: MonsterDefinitions.hpp:70
@ MONSTER_RACE_FORMLESS
Formless.
Definition: MonsterDefinitions.hpp:50
@ MONSTER_RACE_NONPLAYER
Every non-player race.
Definition: MonsterDefinitions.hpp:69
@ MONSTER_RACE_FISH
Fish.
Definition: MonsterDefinitions.hpp:55
@ MONSTER_RACE_NONBOSS
Non-boss.
Definition: MonsterDefinitions.hpp:63
@ MONSTER_RACE_BRUTE
Beast/Brute.
Definition: MonsterDefinitions.hpp:52
monster_skill_target_type
Definition: MonsterDefinitions.hpp:125
@ MONSTER_SKILL_TARGET_MASTER
Definition: MonsterDefinitions.hpp:130
@ MONSTER_SKILL_TARGET_AROUND
Definition: MonsterDefinitions.hpp:139
@ MONSTER_SKILL_TARGET_FRIEND
Definition: MonsterDefinitions.hpp:129
@ MONSTER_SKILL_TARGET_AROUND4
Definition: MonsterDefinitions.hpp:138
@ MONSTER_SKILL_TARGET_AROUND6
Definition: MonsterDefinitions.hpp:132
@ MONSTER_SKILL_TARGET_AROUND2
Definition: MonsterDefinitions.hpp:136
@ MONSTER_SKILL_TARGET_AROUND5
Definition: MonsterDefinitions.hpp:131
@ MONSTER_SKILL_TARGET_AROUND8
Definition: MonsterDefinitions.hpp:134
@ MONSTER_SKILL_TARGET_CURRENT
Definition: MonsterDefinitions.hpp:126
@ MONSTER_SKILL_TARGET_AROUND3
Definition: MonsterDefinitions.hpp:137
@ MONSTER_SKILL_TARGET_SELF
Definition: MonsterDefinitions.hpp:128
@ MONSTER_SKILL_TARGET_AROUND7
Definition: MonsterDefinitions.hpp:133
@ MONSTER_SKILL_TARGET_RANDOM
Definition: MonsterDefinitions.hpp:127
@ MONSTER_SKILL_TARGET_AROUND1
Definition: MonsterDefinitions.hpp:135
#define MAX_MVP_DROP
Definition: MonsterDefinitions.hpp:39
#define MAX_MOB_DROP
Definition: MonsterDefinitions.hpp:38
monster_skill_state_type
Definition: MonsterDefinitions.hpp:112
@ MONSTER_SKILL_STATE_ANYTARGET
Definition: MonsterDefinitions.hpp:122
@ MONSTER_SKILL_STATE_RUSH
Definition: MonsterDefinitions.hpp:120
@ MONSTER_SKILL_STATE_BERSERK
Definition: MonsterDefinitions.hpp:118
@ MONSTER_SKILL_STATE_IDLE
Definition: MonsterDefinitions.hpp:114
@ MONSTER_SKILL_STATE_DEAD
Definition: MonsterDefinitions.hpp:117
@ MONSTER_SKILL_STATE_WALK
Definition: MonsterDefinitions.hpp:115
@ MONSTER_SKILL_STATE_FOLLOW
Definition: MonsterDefinitions.hpp:121
@ MONSTER_SKILL_STATE_LOOT
Definition: MonsterDefinitions.hpp:116
@ MONSTER_SKILL_STATE_ANGRY
Definition: MonsterDefinitions.hpp:119
@ MONSTER_SKILL_STATE_ANY
Definition: MonsterDefinitions.hpp:113
element_type
Definition: UnitDefinitions.hpp:970
@ ELE_NEUTRAL
Definition: UnitDefinitions.hpp:971
unit_gender_types
Definition: UnitDefinitions.hpp:988
@ UNIT_GENDER_FEMALE
Definition: UnitDefinitions.hpp:989
unit_size_type
Definition: UnitDefinitions.hpp:36
@ ESZ_MEDIUM
Definition: UnitDefinitions.hpp:38
Definition: MonsterDefinitions.hpp:240
unit_gender_types gender
Definition: MonsterDefinitions.hpp:252
int32_t body_color_id
Definition: MonsterDefinitions.hpp:251
int32_t body_style_id
Definition: MonsterDefinitions.hpp:249
int32_t headgear_top_id
Definition: MonsterDefinitions.hpp:245
int32_t headgear_bottom_id
Definition: MonsterDefinitions.hpp:247
int32_t hair_color_id
Definition: MonsterDefinitions.hpp:250
int32_t hair_style_id
Definition: MonsterDefinitions.hpp:248
int32_t shield_id
Definition: MonsterDefinitions.hpp:243
int32_t headgear_middle_id
Definition: MonsterDefinitions.hpp:246
int32_t robe_id
Definition: MonsterDefinitions.hpp:244
int32_t weapon_id
Definition: MonsterDefinitions.hpp:242
int32_t sprite_id
Definition: MonsterDefinitions.hpp:241
Definition: MonsterDefinitions.hpp:260
int item_id
Definition: MonsterDefinitions.hpp:260
int chance
Definition: MonsterDefinitions.hpp:260
Definition: MonsterDefinitions.hpp:259
struct drops items_mvp[MAX_MVP_DROP]
Definition: MonsterDefinitions.hpp:265
unsigned int job_exp
Definition: MonsterDefinitions.hpp:262
unsigned int mvp_exp
Definition: MonsterDefinitions.hpp:263
unsigned int base_exp
Definition: MonsterDefinitions.hpp:262
struct drops items[MAX_MOB_DROP]
Definition: MonsterDefinitions.hpp:264
Definition: MonsterDefinitions.hpp:203
int32_t mode
Definition: MonsterDefinitions.hpp:233
int16_t vit
Definition: MonsterDefinitions.hpp:220
int16_t agi
Definition: MonsterDefinitions.hpp:219
int32_t sp
Definition: MonsterDefinitions.hpp:211
struct monster_config_data::@132 stats
int32_t damage_motion
Definition: MonsterDefinitions.hpp:237
char sprite_name[MAX_UNIT_NAME_LENGTH]
Definition: MonsterDefinitions.hpp:205
struct monster_config_data::monster_view_data view
uint16_t level
Definition: MonsterDefinitions.hpp:209
struct monster_config_data::rewards rewards
element_type element
Definition: MonsterDefinitions.hpp:231
char alt_name[MAX_UNIT_NAME_LENGTH]
Definition: MonsterDefinitions.hpp:207
short view_range
Definition: MonsterDefinitions.hpp:226
int32_t damage_taken_rate
Definition: MonsterDefinitions.hpp:238
int16_t dex
Definition: MonsterDefinitions.hpp:222
int32_t magic_defense
Definition: MonsterDefinitions.hpp:215
int32_t attack_motion
Definition: MonsterDefinitions.hpp:236
int32_t hp
Definition: MonsterDefinitions.hpp:210
int16_t str
Definition: MonsterDefinitions.hpp:218
int32_t attack_delay
Definition: MonsterDefinitions.hpp:235
int32_t attack_damage[2]
Definition: MonsterDefinitions.hpp:213
int32_t defense
Definition: MonsterDefinitions.hpp:214
int8_t element_level
Definition: MonsterDefinitions.hpp:232
uint16_t monster_id
Definition: MonsterDefinitions.hpp:204
short chase_range
Definition: MonsterDefinitions.hpp:227
unit_size_type size
Definition: MonsterDefinitions.hpp:228
int16_t luk
Definition: MonsterDefinitions.hpp:223
monster_secondary_race_type secondary_race
Definition: MonsterDefinitions.hpp:230
int32_t move_speed
Definition: MonsterDefinitions.hpp:234
int16_t int_
Definition: MonsterDefinitions.hpp:221
monster_primary_race_type primary_race
Definition: MonsterDefinitions.hpp:229
char name[MAX_UNIT_NAME_LENGTH]
Definition: MonsterDefinitions.hpp:206
unsigned int option
Definition: MonsterDefinitions.hpp:255
int32_t attack_range
Definition: MonsterDefinitions.hpp:212
Definition: MonsterDefinitions.hpp:186
int16_t emotion_id
Definition: MonsterDefinitions.hpp:196
int cast_time
Definition: MonsterDefinitions.hpp:190
uint16_t skill_level
Definition: MonsterDefinitions.hpp:188
uint16_t skill_id
Definition: MonsterDefinitions.hpp:187
bool cancelable
Definition: MonsterDefinitions.hpp:192
int16_t cast_condition
Definition: MonsterDefinitions.hpp:193
int delay
Definition: MonsterDefinitions.hpp:191
uint16_t msg_id
Definition: MonsterDefinitions.hpp:197
int val[5]
Definition: MonsterDefinitions.hpp:195
int16_t skill_invoke_rate
Definition: MonsterDefinitions.hpp:189
int32_t condition_data
Definition: MonsterDefinitions.hpp:194
Definition: MonsterDefinitions.hpp:179
int64_t spawn_time
Definition: MonsterDefinitions.hpp:181
int64_t dead_time
Definition: MonsterDefinitions.hpp:180
Definition: MonsterDefinitions.hpp:169
int16_t y
Definition: MonsterDefinitions.hpp:174
int32_t spawn_delay_variance
Definition: MonsterDefinitions.hpp:177
int16_t x_area
Definition: MonsterDefinitions.hpp:174
std::unordered_map< int64_t, s_monster_spawn_time_cache > dead_spawn_time_list
Definition: MonsterDefinitions.hpp:183
int16_t x
Definition: MonsterDefinitions.hpp:174
int spawn_dataset_id
Definition: MonsterDefinitions.hpp:170
std::string map_name
Definition: MonsterDefinitions.hpp:172
int16_t amount
Definition: MonsterDefinitions.hpp:176
int32_t spawn_delay_base
Definition: MonsterDefinitions.hpp:177
std::string mob_name
Definition: MonsterDefinitions.hpp:175
int16_t dead_amount
Definition: MonsterDefinitions.hpp:178
MapCoords coords
Definition: MonsterDefinitions.hpp:173
int monster_id
Definition: MonsterDefinitions.hpp:171
int16_t y_area
Definition: MonsterDefinitions.hpp:174