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

Map Server Core Structure and Routines.
[Map Server Routines.]


Data Structures

struct  block_list
struct  walkpath_data
struct  script_reg
struct  script_regstr
struct  status_change
struct  vending
struct  skill_unit
struct  skill_unit_group
struct  skill_unit_group_tickset
struct  skill_timerskill
struct  map_session_data
 The data assigned for each session. More...
struct  npc_timerevent_list
struct  npc_label_list
struct  npc_item_list
struct  npc_data
struct  mob_data
struct  pet_data
struct  map_data
struct  map_data_other_server
struct  flooritem_data
struct  chat_data

Defines

#define MAX_PC_CLASS   4050
#define PC_CLASS_BASE   0
#define PC_CLASS_BASE2   (PC_CLASS_BASE + 4001)
#define PC_CLASS_BASE3   (PC_CLASS_BASE2 + 22)
#define MAX_NPC_PER_MAP   512
#define BLOCK_SIZE   8
#define AREA_SIZE   battle_config.area_size
#define LOCAL_REG_NUM   16
#define LIFETIME_FLOORITEM   60
#define DAMAGELOG_SIZE   30
#define LOOTITEM_SIZE   10
#define MAX_SKILL_LEVEL   100
#define MAX_STATUSCHANGE   250
#define MAX_SKILLUNITGROUP   32
#define MAX_MOBSKILLUNITGROUP   8
#define MAX_SKILLUNITGROUPTICKSET   32
#define MAX_SKILLTIMERSKILL   32
#define MAX_MOBSKILLTIMERSKILL   10
#define MAX_MOBSKILL   50
#define MAX_EVENTQUEUE   2
#define MAX_EVENTTIMER   32
#define NATURAL_HEAL_INTERVAL   500
#define MAX_FLOORITEM   500000
#define MAX_LEVEL   255
#define MAX_WALKPATH   32
 previously 48
#define MAX_IGNORE_LIST   1000
 now it's used in dynamic, but maximum is to send all names in 1 packet (32768/24) = 1365 ->1000
#define MAX_VENDING   12
#define MAX_MOB_DB   2000
#define MAX_PC_BONUS   10
#define DEFAULT_AUTOSAVE_INTERVAL   120*1000
#define OPTION_HIDE   0x40
#define CELL_MASK   0x0f
#define CELL_NPC   0x80
#define CELL_BASILICA   0x40
#define CELL_MOONLIT   0x100
#define CELL_REGEN   0x200
#define map_clearflooritem(id)   map_clearflooritem_timer(0,0,id,1)

Enumerations

enum  {
  JOB_NOVICE, JOB_SWORDMAN, JOB_MAGE, JOB_ARCHER,
  JOB_ACOLYTE, JOB_MERCHANT, JOB_THIEF, JOB_KNIGHT,
  JOB_PRIEST, JOB_WIZARD, JOB_BLACKSMITH, JOB_HUNTER,
  JOB_ASSASSIN, JOB_KNIGHT2, JOB_CRUSADER, JOB_MONK,
  JOB_SAGE, JOB_ROGUE, JOB_ALCHEMIST, JOB_BARD,
  JOB_DANCER, JOB_CRUSADER2, JOB_WEDDING, JOB_SUPER_NOVICE,
  JOB_NOVICE_HIGH = 4001, JOB_SWORDMAN_HIGH, JOB_MAGE_HIGH, JOB_ARCHER_HIGH,
  JOB_ACOLYTE_HIGH, JOB_MERCHANT_HIGH, JOB_THIEF_HIGH, JOB_LORD_KNIGHT,
  JOB_HIGH_PRIEST, JOB_HIGH_WIZARD, JOB_WHITESMITH, JOB_SNIPER,
  JOB_ASSASSIN_CROSS, JOB_LORD_KNIGHT2, JOB_PALADIN, JOB_CHAMPION,
  JOB_PROFESSOR, JOB_STALKER, JOB_CREATOR, JOB_CLOWN,
  JOB_GYPSY, JOB_PALADIN2, JOB_BABY, JOB_BABY_SWORDMAN,
  JOB_BABY_MAGE, JOB_BABY_ARCHER, JOB_BABY_ACOLYTE, JOB_BABY_MERCHANT,
  JOB_BABY_THIEF, JOB_BABY_KNIGHT, JOB_BABY_PRIEST, JOB_BABY_WIZARD,
  JOB_BABY_BLACKSMITH, JOB_BABY_HUNTER, JOB_BABY_ASSASSIN, JOB_BABY_KNIGHT2,
  JOB_BABY_CRUSADER, JOB_BABY_MONK, JOB_BABY_SAGE, JOB_BABY_ROGUE,
  JOB_BABY_ALCHEMIST, JOB_BABY_BARD, JOB_BABY_DANCER, JOB_BABY_CRUSADER2,
  JOB_SUPER_BABY
}
 Job List for BaseClass.
enum  {
  BL_NUL, BL_PC, BL_NPC, BL_MOB,
  BL_ITEM, BL_CHAT, BL_SKILL, BL_PET
}
enum  { WARP, SHOP, SCRIPT, MONS }
enum  {
  MS_IDLE, MS_WALK, MS_ATTACK, MS_DEAD,
  MS_DELAY
}
enum  { NONE_ATTACKABLE, ATTACKABLE }
enum  { ATK_LUCKY = 1, ATK_FLEE, ATK_DEF }
enum  { EQP_WEAPON = 1, EQP_ARMOR = 2, EQP_SHIELD = 4, EQP_HELM = 8 }
enum  {
  SP_SPEED, SP_BASEEXP, SP_JOBEXP, SP_KARMA,
  SP_MANNER, SP_HP, SP_MAXHP, SP_SP,
  SP_MAXSP, SP_STATUSPOINT, SP_0a, SP_BASELEVEL,
  SP_SKILLPOINT, SP_STR, SP_AGI, SP_VIT,
  SP_INT, SP_DEX, SP_LUK, SP_CLASS,
  SP_ZENY, SP_SEX, SP_NEXTBASEEXP, SP_NEXTJOBEXP,
  SP_WEIGHT, SP_MAXWEIGHT, SP_1a, SP_1b,
  SP_1c, SP_1d, SP_1e, SP_1f,
  SP_USTR, SP_UAGI, SP_UVIT, SP_UINT,
  SP_UDEX, SP_ULUK, SP_26, SP_27,
  SP_28, SP_ATK1, SP_ATK2, SP_MATK1,
  SP_MATK2, SP_DEF1, SP_DEF2, SP_MDEF1,
  SP_MDEF2, SP_HIT, SP_FLEE1, SP_FLEE2,
  SP_CRITICAL, SP_ASPD, SP_36, SP_JOBLEVEL,
  SP_UPPER, SP_PARTNER, SP_CART, SP_FAME,
  SP_UNBREAKABLE, SP_CARTINFO = 99, SP_BASEJOB = 119, SP_BASECLASS = 120,
  SP_ATTACKRANGE = 1000, SP_ATKELE, SP_DEFELE, SP_CASTRATE,
  SP_MAXHPRATE, SP_MAXSPRATE, SP_SPRATE, SP_ADDELE,
  SP_ADDRACE, SP_ADDSIZE, SP_SUBELE, SP_SUBRACE,
  SP_ADDEFF, SP_RESEFF, SP_BASE_ATK, SP_ASPD_RATE,
  SP_HP_RECOV_RATE, SP_SP_RECOV_RATE, SP_SPEED_RATE, SP_CRITICAL_DEF,
  SP_NEAR_ATK_DEF, SP_LONG_ATK_DEF, SP_DOUBLE_RATE, SP_DOUBLE_ADD_RATE,
  SP_MATK, SP_MATK_RATE, SP_IGNORE_DEF_ELE, SP_IGNORE_DEF_RACE,
  SP_ATK_RATE, SP_SPEED_ADDRATE, SP_ASPD_ADDRATE, SP_MAGIC_ATK_DEF,
  SP_MISC_ATK_DEF, SP_IGNORE_MDEF_ELE, SP_IGNORE_MDEF_RACE, SP_MAGIC_ADDELE,
  SP_MAGIC_ADDRACE, SP_MAGIC_SUBRACE, SP_PERFECT_HIT_RATE, SP_PERFECT_HIT_ADD_RATE,
  SP_CRITICAL_RATE, SP_GET_ZENY_NUM, SP_ADD_GET_ZENY_NUM, SP_ADD_DAMAGE_CLASS,
  SP_ADD_MAGIC_DAMAGE_CLASS, SP_ADD_DEF_CLASS, SP_ADD_MDEF_CLASS, SP_ADD_MONSTER_DROP_ITEM,
  SP_DEF_RATIO_ATK_ELE, SP_DEF_RATIO_ATK_RACE, SP_ADD_SPEED, SP_HIT_RATE,
  SP_FLEE_RATE, SP_FLEE2_RATE, SP_DEF_RATE, SP_DEF2_RATE,
  SP_MDEF_RATE, SP_MDEF2_RATE, SP_SPLASH_RANGE, SP_SPLASH_ADD_RANGE,
  SP_AUTOSPELL, SP_HP_DRAIN_RATE, SP_SP_DRAIN_RATE, SP_SHORT_WEAPON_DAMAGE_RETURN,
  SP_LONG_WEAPON_DAMAGE_RETURN, SP_WEAPON_COMA_ELE, SP_WEAPON_COMA_RACE, SP_ADDEFF2,
  SP_BREAK_WEAPON_RATE, SP_BREAK_ARMOR_RATE, SP_ADD_STEAL_RATE, SP_MAGIC_DAMAGE_RETURN,
  SP_RANDOM_ATTACK_INCREASE, SP_ALL_STATS, SP_AGI_VIT, SP_AGI_DEX_STR,
  SP_PERFECT_HIDE, SP_DISGUISE, SP_CLASSCHANGE, SP_HP_DRAIN_VALUE,
  SP_SP_DRAIN_VALUE, SP_WEAPON_ATK, SP_WEAPON_ATK_RATE, SP_DELAYRATE,
  SP_RESTART_FULL_RECORVER = 2000, SP_NO_CASTCANCEL, SP_NO_SIZEFIX, SP_NO_MAGIC_DAMAGE,
  SP_NO_WEAPON_DAMAGE, SP_NO_GEMSTONE, SP_NO_CASTCANCEL2, SP_INFINITE_ENDURE,
  SP_UNBREAKABLE_WEAPON, SP_UNBREAKABLE_ARMOR, SP_UNBREAKABLE_HELM, SP_UNBREAKABLE_SHIELD,
  SP_LONG_ATK_RATE, SP_CRIT_ATK_RATE, SP_CRITICAL_ADDRACE, SP_NO_REGEN,
  SP_ADDEFF_WHENHIT, SP_AUTOSPELL_WHENHIT, SP_SKILL_ATK, SP_UNSTRIPABLE,
  SP_ADD_DAMAGE_BY_CLASS, SP_SP_GAIN_VALUE, SP_IGNORE_DEF_MOB, SP_HP_LOSS_RATE,
  SP_ADDRACE2, SP_HP_GAIN_VALUE, SP_SUBSIZE, SP_DAMAGE_WHEN_UNEQUIP,
  SP_ADD_ITEM_HEAL_RATE, SP_LOSESP_WHEN_UNEQUIP, SP_EXP_ADDRACE, SP_SP_GAIN_RACE
}
enum  {
  LOOK_BASE, LOOK_HAIR, LOOK_WEAPON, LOOK_HEAD_BOTTOM,
  LOOK_HEAD_TOP, LOOK_HEAD_MID, LOOK_HAIR_COLOR, LOOK_CLOTHES_COLOR,
  LOOK_SHIELD, LOOK_SHOES
}
enum  cell_t {
  CELL_CHKWALL = 0, CELL_CHKWATER, CELL_CHKGROUND, CELL_CHKPASS,
  CELL_CHKNOPASS, CELL_GETTYPE, CELL_CHKNOPASS_NPC, CELL_CHKNPC = 0x10,
  CELL_CHKBASILICA
}
enum  { CELL_SETNPC = 0x10, CELL_SETBASILICA, CELL_CLRBASILICA }
enum  {
  READ_FROM_GAT, READ_FROM_AFM, READ_FROM_BITMAP, CREATE_BITMAP,
  READ_FROM_BITMAP_COMPRESSED, CREATE_BITMAP_COMPRESSED
}

Functions

int map_getcell (int, int, int, cell_t)
int map_getcellp (struct map_data *, int, int, cell_t)
void map_setcell (int, int, int, int)
void map_setusers (int)
int map_getusers (void)
int map_freeblock (void *bl)
void map_freeblock_lock (void)
void map_freeblock_unlock (void)
int map_addblock (struct block_list *)
int map_delblock (struct block_list *)
void map_foreachinarea (int(*)(struct block_list *, va_list), int, int, int, int, int, int,...)
void map_foreachinmovearea (int(*)(struct block_list *, va_list), int, int, int, int, int, int, int, int,...)
void map_foreachinpath (int(*)(struct block_list *, va_list), int, int, int, int, int, int, int,...)
int map_count_oncell (int m, int x, int y)
skill_unit * map_find_skill_unit_oncell (struct block_list *, int x, int y, int skill_id, struct skill_unit *)
int map_addobject (struct block_list *)
int map_delobject (intptr_t)
int map_delobjectnofree (intptr_t id)
void map_foreachobject (int(*)(struct block_list *, va_list), int,...)
void map_quit (struct map_session_data *)
void map_quit2 (struct map_session_data *)
int map_addnpc (int, struct npc_data *)
 TIMER_FUNC (map_clearflooritem_timer)
int map_addflooritem (struct item *, int, int, int, int, struct map_session_data *, struct map_session_data *, struct map_session_data *, int owner_id, int)
int map_searchrandfreecell (int, int, int, int)
void map_addchariddb (intptr_t charid, char *name)
void map_delchariddb (intptr_t charid)
int map_reqchariddb (struct map_session_data *sd, intptr_t charid)
char * map_charid2nick (intptr_t)
map_session_datamap_charid2sd (int)
map_session_datamap_id2sd (int)
block_list * map_id2bl (intptr_t)
int map_mapname2mapid (const char *)
int map_mapname2ipport (const char *, int *, int *)
short map_checkmapname (const char *mapname)
int map_setipport (char *name, unsigned long ip, int port)
int map_eraseipport (char *name, unsigned long ip, int port)
int map_eraseallipport (void)
void map_addiddb (struct block_list *)
void map_deliddb (struct block_list *bl)
void map_foreachiddb (int(*)(void *, void *, va_list),...)
map_session_datamap_nick2sd (char *)
int map_check_dir (int s_dir, int t_dir)
int map_calc_dir (struct block_list *src, int x, int y)
int path_search (struct walkpath_data *, int, int, int, int, int, int)
int path_search_long (int m, int x0, int y_0, int x1, int y_1)
int path_blownpos (int m, int x0, int y_0, int dx, int dy, int count)
int map_who (int fd)
void map_helpscreen ()

Variables

char messages_filename [1024]
map_data * map
int map_num
int autosave_interval
unsigned char agit_flag
unsigned char night_flag
char motd_txt []
char help_txt []
char talkie_mes []
char wisp_server_name [25]
int server_char_id
int server_fake_mob_id
char npc_language [6]
unsigned char map_is_alone
char item_db_db [32]
char mob_db_db [32]
char create_item_db_script
char create_mob_db_script

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