summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
Diffstat (limited to 'src/map')
-rw-r--r--src/map/Makefile.in12
-rw-r--r--src/map/achievement.c73
-rw-r--r--src/map/achievement.h4
-rw-r--r--src/map/atcommand.c102
-rw-r--r--src/map/battle.c2
-rw-r--r--src/map/battle.h3
-rw-r--r--src/map/battleground.c18
-rw-r--r--src/map/channel.c2
-rw-r--r--src/map/clif.c558
-rw-r--r--src/map/clif.h47
-rw-r--r--src/map/duel.c4
-rw-r--r--src/map/guild.c13
-rw-r--r--src/map/instance.c61
-rw-r--r--src/map/instance.h1
-rw-r--r--src/map/intif.c11
-rw-r--r--src/map/intif.h2
-rw-r--r--src/map/map.c28
-rw-r--r--src/map/map.h9
-rw-r--r--src/map/mapreg_sql.c2
-rw-r--r--src/map/messages.h4
-rw-r--r--src/map/messages_ad.h7310
-rw-r--r--src/map/messages_main.h62
-rw-r--r--src/map/messages_re.h62
-rw-r--r--src/map/messages_sak.h8267
-rw-r--r--src/map/messages_zero.h58
-rw-r--r--src/map/mob.c9
-rw-r--r--src/map/npc.c7
-rw-r--r--src/map/npc.h2
-rw-r--r--src/map/packets.h142
-rw-r--r--src/map/packets_keys_main.h12
-rw-r--r--src/map/packets_keys_zero.h12
-rw-r--r--src/map/packets_shuffle_main.h12
-rw-r--r--src/map/packets_shuffle_re.h11
-rw-r--r--src/map/packets_shuffle_zero.h12
-rw-r--r--src/map/packets_struct.h214
-rw-r--r--src/map/pc.c123
-rw-r--r--src/map/pc.h2
-rw-r--r--src/map/pet.c2
-rw-r--r--src/map/quest.c26
-rw-r--r--src/map/script.c503
-rw-r--r--src/map/script.h2
-rw-r--r--src/map/skill.c28
-rw-r--r--src/map/storage.c10
43 files changed, 17328 insertions, 516 deletions
diff --git a/src/map/Makefile.in b/src/map/Makefile.in
index 1bef380e1..3705fda0e 100644
--- a/src/map/Makefile.in
+++ b/src/map/Makefile.in
@@ -50,12 +50,12 @@ MAP_OBJ = $(addprefix obj_sql/, $(patsubst %c,%o,$(MAP_C)))
MAP_H = achievement.h atcommand.h battle.h battleground.h buyingstore.h channel.h chat.h \
chrif.h clan.h clif.h date.h duel.h elemental.h guild.h homunculus.h HPMmap.h \
instance.h intif.h irc-bot.h itemdb.h log.h mail.h map.h mapreg.h \
- mercenary.h messages.h messages_main.h messages_re.h messages_zero.h \
- mob.h npc.h packets.h packets_keys_main.h packets_keys_zero.h \
- packets_shuffle_main.h packets_shuffle_re.h packets_shuffle_zero.h \
- packets_struct.h party.h path.h pc.h pc_groups.h pet.h quest.h rodex.h \
- script.h searchstore.h skill.h status.h storage.h trade.h unit.h \
- vending.h
+ mercenary.h messages.h messages_ad.h messages_main.h messages_re.h \
+ messages_sak.h messages_zero.h mob.h npc.h packets.h packets_keys_main.h \
+ packets_keys_zero.h packets_shuffle_main.h packets_shuffle_re.h \
+ packets_shuffle_zero.h packets_struct.h party.h path.h pc.h pc_groups.h \
+ pet.h quest.h rodex.h script.h searchstore.h skill.h status.h storage.h \
+ trade.h unit.h vending.h
MAP_PH =
HAVE_MYSQL=@HAVE_MYSQL@
diff --git a/src/map/achievement.c b/src/map/achievement.c
index 6abdb74ee..68fc8a983 100644
--- a/src/map/achievement.c
+++ b/src/map/achievement.c
@@ -733,7 +733,7 @@ static void achievement_validate_zeny(struct map_session_data *sd, int amount)
achievement->validate_type(sd, ACH_ZENY_GET_ONCE, &criteria, false);
achievement->validate_type(sd, ACH_ZENY_GET_TOTAL, &criteria, true);
} else {
- criteria.goal = amount;
+ criteria.goal = -amount;
achievement->validate_type(sd, ACH_ZENY_SPEND_ONCE, &criteria, false);
achievement->validate_type(sd, ACH_ZENY_SPEND_TOTAL, &criteria, true);
}
@@ -1016,44 +1016,56 @@ static bool achievement_check_title(struct map_session_data *sd, int title_id) {
return false;
}
-/**
- * Achievement rewards are given to player
- * @param sd session data
- * @param ad achievement data
- */
-static void achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad) {
- int i = 0;
- struct achievement *ach = NULL;
-
+static void achievement_get_rewards_buffs(struct map_session_data *sd, const struct achievement_data *ad)
+{
nullpo_retv(sd);
nullpo_retv(ad);
- if ((ach = achievement->ensure(sd, ad)) == NULL)
- return;
-
- /* Buff */
if (ad->rewards.bonus != NULL)
script->run(ad->rewards.bonus, 0, sd->bl.id, 0);
+}
- /* Give Items */
- for (i = 0; i < VECTOR_LENGTH(ad->rewards.item); i++) {
- struct item it = { 0 };
- int total = 0;
+// TODO: kro send items by rodex
+static void achievement_get_rewards_items(struct map_session_data *sd, const struct achievement_data *ad)
+{
+ nullpo_retv(sd);
+ nullpo_retv(ad);
- it.nameid = VECTOR_INDEX(ad->rewards.item, i).id;
- total = VECTOR_INDEX(ad->rewards.item, i).amount;
+ struct item it = { 0 };
+ it.identify = 1;
- it.identify = 1;
+ for (int i = 0; i < VECTOR_LENGTH(ad->rewards.item); i++) {
+ it.nameid = VECTOR_INDEX(ad->rewards.item, i).id;
+ int total = VECTOR_INDEX(ad->rewards.item, i).amount;
//Check if it's stackable.
if (!itemdb->isstackable(it.nameid)) {
- int j = 0;
- for (j = 0; j < total; ++j)
- pc->additem(sd, &it, (it.amount = 1), LOG_TYPE_SCRIPT);
+ it.amount = 1;
+ for (int j = 0; j < total; ++j)
+ pc->additem(sd, &it, 1, LOG_TYPE_SCRIPT);
} else {
- pc->additem(sd, &it, (it.amount = total), LOG_TYPE_SCRIPT);
+ it.amount = total;
+ pc->additem(sd, &it, total, LOG_TYPE_SCRIPT);
}
}
+}
+
+/**
+ * Achievement rewards are given to player
+ * @param sd session data
+ * @param ad achievement data
+ */
+static bool achievement_get_rewards(struct map_session_data *sd, const struct achievement_data *ad)
+{
+ nullpo_retr(false, sd);
+ nullpo_retr(false, ad);
+
+ struct achievement *ach = achievement->ensure(sd, ad);
+ if (ach == NULL)
+ return false;
+
+ /* Buff */
+ achievement->get_rewards_buffs(sd, ad);
ach->rewarded_at = time(NULL);
@@ -1062,9 +1074,14 @@ static void achievement_get_rewards(struct map_session_data *sd, const struct ac
VECTOR_PUSH(sd->title_ids, ad->rewards.title_id);
clif->achievement_send_list(sd->fd, sd);
} else {
- clif->achievement_reward_ack(sd->fd, sd, ad);
clif->achievement_send_update(sd->fd, sd, ad); // send update.
+ clif->achievement_reward_ack(sd->fd, sd, ad);
}
+
+ /* Give Items */
+ achievement->get_rewards_items(sd, ad);
+
+ return true;
}
/**
@@ -1088,7 +1105,7 @@ static void achievement_readdb_ranks(void)
}
while (entry < libconfig->setting_length(ardb) && entry < MAX_ACHIEVEMENT_RANKS) {
- char rank[8];
+ char rank[16];
if (!(conf = libconfig->setting_get_elem(ardb, entry))) {
ShowError("achievement_readdb_ranks: Could not read value for entry %d, skipping...\n", entry+1);
@@ -1977,4 +1994,6 @@ void achievement_defaults(void)
achievement->init_titles = achievement_init_titles;
achievement->check_title = achievement_check_title;
achievement->get_rewards = achievement_get_rewards;
+ achievement->get_rewards_buffs = achievement_get_rewards_buffs;
+ achievement->get_rewards_items = achievement_get_rewards_items;
}
diff --git a/src/map/achievement.h b/src/map/achievement.h
index beba120a2..de5eaa060 100644
--- a/src/map/achievement.h
+++ b/src/map/achievement.h
@@ -277,7 +277,9 @@ struct achievement_interface {
/* */
void (*init_titles) (struct map_session_data *sd);
bool (*check_title) (struct map_session_data *sd, int title_id);
- void (*get_rewards) (struct map_session_data *sd, const struct achievement_data *ad);
+ bool (*get_rewards) (struct map_session_data *sd, const struct achievement_data *ad);
+ void (*get_rewards_buffs) (struct map_session_data *sd, const struct achievement_data *ad);
+ void (*get_rewards_items) (struct map_session_data *sd, const struct achievement_data *ad);
};
#ifdef HERCULES_CORE
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index bedb58478..a7dc5dd95 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -1887,6 +1887,63 @@ ACMD(hair_color)
return true;
}
+ACMD(setzone)
+{
+ char zone_name[MAP_ZONE_MAPFLAG_LENGTH];
+ memset(zone_name, '\0', sizeof(zone_name));
+
+ char fmt_str[8] = "";
+ safesnprintf(fmt_str, 8, "%%%ds", MAP_ZONE_MAPFLAG_LENGTH - 1);
+
+ if (*message == '\0' || sscanf(message, fmt_str, zone_name) < 1) {
+ clif->message(fd, msg_fd(fd, 924)); // usage info
+ return false;
+ }
+
+ struct map_zone_data *zone = strdb_get(map->zone_db, zone_name);
+ const char *prev_zone_name = map->list[sd->bl.m].zone->name;
+
+ // handle special zones:
+ if (zone == NULL && strcmp(zone_name, MAP_ZONE_NORMAL_NAME) == 0) {
+ zone = &map->zone_all;
+ } else if (zone == NULL && strcmp(zone_name, MAP_ZONE_PK_NAME) == 0) {
+ zone = &map->zone_pk;
+ }
+
+ if (zone != NULL) {
+ if (map->list[sd->bl.m].zone != zone) {
+ if (strcmp(prev_zone_name, MAP_ZONE_PVP_NAME) == 0) {
+ atcommand_pvpoff(fd, sd, command, message, info);
+ } else if (strcmp(prev_zone_name, MAP_ZONE_GVG_NAME) == 0) {
+ atcommand_gvgoff(fd, sd, command, message, info);
+ } else if (strcmp(prev_zone_name, MAP_ZONE_CVC_NAME) == 0) {
+ atcommand_cvcoff(fd, sd, command, message, info);
+ }
+ } else {
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 925), zone_name);
+ clif->message(fd, atcmd_output); // nothing to do
+ return false;
+ }
+
+ if (strcmp(zone_name, MAP_ZONE_PVP_NAME) == 0) {
+ atcommand_pvpon(fd, sd, command, message, info);
+ } else if (strcmp(zone_name, MAP_ZONE_GVG_NAME) == 0) {
+ atcommand_gvgon(fd, sd, command, message, info);
+ } else if (strcmp(zone_name, MAP_ZONE_CVC_NAME) == 0) {
+ atcommand_cvcon(fd, sd, command, message, info);
+ } else {
+ map->zone_change2(sd->bl.m, zone);
+ }
+ } else {
+ clif->message(fd, msg_fd(fd, 926)); // zone not found
+ return false;
+ }
+
+ safesnprintf(atcmd_output, sizeof(atcmd_output), msg_fd(fd, 927), prev_zone_name, zone_name);
+ clif->message(fd, atcmd_output); // changed successfully
+ return true;
+}
+
/*==========================================
* @go [city_number or city_name] - Updated by Harbin
*------------------------------------------*/
@@ -4240,7 +4297,7 @@ ACMD(repairall)
if (count > 0) {
clif->misceffect(&sd->bl, 3);
- clif->equiplist(sd);
+ clif->equipList(sd);
clif->message(fd, msg_fd(fd,107)); // All items have been repaired.
} else {
clif->message(fd, msg_fd(fd,108)); // No item need to be repaired.
@@ -7688,7 +7745,7 @@ ACMD(mapflag)
CHECKFLAG(nojobexp); CHECKFLAG(nomobloot); CHECKFLAG(nomvploot); CHECKFLAG(nightenabled);
CHECKFLAG(nodrop); CHECKFLAG(novending); CHECKFLAG(loadevent);
CHECKFLAG(nochat); CHECKFLAG(partylock); CHECKFLAG(guildlock); CHECKFLAG(src4instance);
- CHECKFLAG(notomb); CHECKFLAG(nocashshop); CHECKFLAG(noviewid);
+ CHECKFLAG(notomb); CHECKFLAG(nocashshop); CHECKFLAG(noviewid); CHECKFLAG(town);
clif->message(sd->fd," ");
clif->message(sd->fd,msg_fd(fd,1312)); // Usage: "@mapflag monster_noteleport 1" (0=Off | 1=On)
clif->message(sd->fd,msg_fd(fd,1313)); // Type "@mapflag available" to list the available mapflags.
@@ -7730,6 +7787,7 @@ ACMD(mapflag)
SETFLAG(nomvploot); SETFLAG(nightenabled); SETFLAG(nodrop); SETFLAG(novending);
SETFLAG(loadevent); SETFLAG(nochat); SETFLAG(partylock); SETFLAG(guildlock);
SETFLAG(src4instance); SETFLAG(notomb); SETFLAG(nocashshop); SETFLAG(noviewid);
+ SETFLAG(town);
clif->message(sd->fd, msg_fd(fd, 1314)); // Invalid flag name or flag.
@@ -8680,19 +8738,19 @@ ACMD(set)
const char *str = NULL;
switch (reg[0]) {
case '@':
- str = pc->readregstr(sd, script->add_str(reg));
+ str = pc->readregstr(sd, script->add_variable(reg));
break;
case '$':
- str = mapreg->readregstr(script->add_str(reg));
+ str = mapreg->readregstr(script->add_variable(reg));
break;
case '#':
if (reg[1] == '#')
- str = pc_readaccountreg2str(sd, script->add_str(reg));// global
+ str = pc_readaccountreg2str(sd, script->add_variable(reg));// global
else
- str = pc_readaccountregstr(sd, script->add_str(reg));// local
+ str = pc_readaccountregstr(sd, script->add_variable(reg));// local
break;
default:
- str = pc_readglobalreg_str(sd, script->add_str(reg));
+ str = pc_readglobalreg_str(sd, script->add_variable(reg));
break;
}
if (str == NULL || str[0] == '\0') {
@@ -8708,19 +8766,19 @@ ACMD(set)
data->type = C_INT;
switch( reg[0] ) {
case '@':
- data->u.num = pc->readreg(sd, script->add_str(reg));
+ data->u.num = pc->readreg(sd, script->add_variable(reg));
break;
case '$':
- data->u.num = mapreg->readreg(script->add_str(reg));
+ data->u.num = mapreg->readreg(script->add_variable(reg));
break;
case '#':
if( reg[1] == '#' )
- data->u.num = pc_readaccountreg2(sd, script->add_str(reg));// global
+ data->u.num = pc_readaccountreg2(sd, script->add_variable(reg));// global
else
- data->u.num = pc_readaccountreg(sd, script->add_str(reg));// local
+ data->u.num = pc_readaccountreg(sd, script->add_variable(reg));// local
break;
default:
- data->u.num = pc_readglobalreg(sd, script->add_str(reg));
+ data->u.num = pc_readglobalreg(sd, script->add_variable(reg));
break;
}
}
@@ -9752,6 +9810,24 @@ ACMD(reloadclans)
return true;
}
+// show camera window or change camera parameters
+ACMD(camerainfo)
+{
+ if (*message == '\0') {
+ clif->camera_showWindow(sd);
+ return true;
+ }
+ float range = 0;
+ float rotation = 0;
+ float latitude = 0;
+ if (sscanf(message, "%15f %15f %15f", &range, &rotation, &latitude) < 3) {
+ clif->message(fd, msg_fd(fd, 452)); // usage @camerainfo range rotation latitude
+ return false;
+ }
+ clif->camera_change(sd, range, rotation, latitude, SELF);
+ return true;
+}
+
/**
* Fills the reference of available commands in atcommand DBMap
**/
@@ -10033,6 +10109,8 @@ static void atcommand_basecommands(void)
ACMD_DEF(joinclan),
ACMD_DEF(leaveclan),
ACMD_DEF(reloadclans),
+ ACMD_DEF(setzone),
+ ACMD_DEF(camerainfo),
};
int i;
diff --git a/src/map/battle.c b/src/map/battle.c
index 8707ef6ac..44241bf23 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -7405,6 +7405,8 @@ static const struct battle_data {
{ "storage_use_item", &battle_config.storage_use_item, 0, 0, 1, },
{ "features/enable_attendance_system", &battle_config.feature_enable_attendance_system,1, 0, 1, },
{ "features/feature_attendance_endtime",&battle_config.feature_attendance_endtime, 1, 0, 99999999, },
+ { "min_item_buy_price", &battle_config.min_item_buy_price, 1, 0, INT_MAX, },
+ { "min_item_sell_price", &battle_config.min_item_sell_price, 0, 0, INT_MAX, },
};
static bool battle_set_value_sub(int index, int value)
diff --git a/src/map/battle.h b/src/map/battle.h
index c16007e16..02536e4a1 100644
--- a/src/map/battle.h
+++ b/src/map/battle.h
@@ -571,6 +571,9 @@ struct Battle_Config {
int feature_enable_attendance_system;
int feature_attendance_endtime;
+
+ int min_item_buy_price;
+ int min_item_sell_price;
};
/* criteria for battle_config.idletime_critera */
diff --git a/src/map/battleground.c b/src/map/battleground.c
index 4bedc2a00..c2772a2b9 100644
--- a/src/map/battleground.c
+++ b/src/map/battleground.c
@@ -615,7 +615,7 @@ static void bg_match_over(struct bg_arena *arena, bool canceled)
if (canceled)
clif->messagecolor_self(sd->fd, COLOR_RED, "BG Match Canceled: not enough players");
else
- pc_setglobalreg(sd, script->add_str(arena->delay_var), (unsigned int)time(NULL));
+ pc_setglobalreg(sd, script->add_variable(arena->delay_var), (unsigned int)time(NULL));
}
arena->begin_timer = INVALID_TIMER;
@@ -654,8 +654,8 @@ static void bg_begin(struct bg_arena *arena)
bg->afk_timer_id = timer->add(timer->gettick()+10000,bg->afk_timer,0,0);
/* TODO: make this a arena-independent var? or just .@? */
- mapreg->setreg(script->add_str("$@bg_queue_id"),arena->queue_id);
- mapreg->setregstr(script->add_str("$@bg_delay_var$"),bg->gdelay_var);
+ mapreg->setreg(script->add_variable("$@bg_queue_id"),arena->queue_id);
+ mapreg->setregstr(script->add_variable("$@bg_delay_var$"),bg->gdelay_var);
count = 0;
for (i = 0; i < VECTOR_LENGTH(queue->entries); i++) {
@@ -664,20 +664,20 @@ static void bg_begin(struct bg_arena *arena)
if (sd == NULL || sd->bg_queue.ready != 1)
continue;
- mapreg->setreg(reference_uid(script->add_str("$@bg_member"), count), sd->status.account_id);
- mapreg->setreg(reference_uid(script->add_str("$@bg_member_group"), count),
+ mapreg->setreg(reference_uid(script->add_variable("$@bg_member"), count), sd->status.account_id);
+ mapreg->setreg(reference_uid(script->add_variable("$@bg_member_group"), count),
sd->bg_queue.type == BGQT_GUILD ? sd->status.guild_id :
sd->bg_queue.type == BGQT_PARTY ? sd->status.party_id :
0
);
- mapreg->setreg(reference_uid(script->add_str("$@bg_member_type"), count),
+ mapreg->setreg(reference_uid(script->add_variable("$@bg_member_type"), count),
sd->bg_queue.type == BGQT_GUILD ? 1 :
sd->bg_queue.type == BGQT_PARTY ? 2 :
0
);
count++;
}
- mapreg->setreg(script->add_str("$@bg_member_size"),count);
+ mapreg->setreg(script->add_variable("$@bg_member_size"),count);
npc->event_do(arena->npc_event);
}
@@ -857,7 +857,7 @@ static enum BATTLEGROUNDS_QUEUE_ACK bg_canqueue(struct map_session_data *sd, str
tsec = (unsigned int)time(NULL);
- if ( ( tick = pc_readglobalreg(sd, script->add_str(bg->gdelay_var)) ) && tsec < tick ) {
+ if ( ( tick = pc_readglobalreg(sd, script->add_variable(bg->gdelay_var)) ) && tsec < tick ) {
char response[100];
if( (tick-tsec) > 60 )
sprintf(response, "You are a deserter! Wait %u minute(s) before you can apply again", (tick - tsec) / 60);
@@ -867,7 +867,7 @@ static enum BATTLEGROUNDS_QUEUE_ACK bg_canqueue(struct map_session_data *sd, str
return BGQA_FAIL_DESERTER;
}
- if ( ( tick = pc_readglobalreg(sd, script->add_str(arena->delay_var)) ) && tsec < tick ) {
+ if ( ( tick = pc_readglobalreg(sd, script->add_variable(arena->delay_var)) ) && tsec < tick ) {
char response[100];
if( (tick-tsec) > 60 )
sprintf(response, "You can't reapply to this arena so fast. Apply to the different arena or wait %u minute(s)", (tick - tsec) / 60);
diff --git a/src/map/channel.c b/src/map/channel.c
index 3bb2016d8..f1946385d 100644
--- a/src/map/channel.c
+++ b/src/map/channel.c
@@ -290,7 +290,7 @@ static void channel_send(struct channel_data *chan, struct map_session_data *sd,
for (i = 0; i < MAX_EVENTQUEUE; i++) {
if (chan->handlers[i][0] != '\0') {
- pc->setregstr(sd, script->add_str("@channelmes$"), msg);
+ pc->setregstr(sd, script->add_variable("@channelmes$"), msg);
npc->event(sd, chan->handlers[i], 0);
}
}
diff --git a/src/map/clif.c b/src/map/clif.c
index 4e8e84f41..1e9844f14 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -86,8 +86,8 @@ static struct s_packet_db packet_db[MAX_PACKET_DB + 1];
/* re-usable */
static struct packet_itemlist_normal itemlist_normal;
static struct packet_itemlist_equip itemlist_equip;
-static struct packet_storelist_normal storelist_normal;
-static struct packet_storelist_equip storelist_equip;
+static struct ZC_STORE_ITEMLIST_NORMAL storelist_normal;
+static struct ZC_STORE_ITEMLIST_EQUIP storelist_equip;
static struct packet_viewequip_ack viewequip_list;
#if PACKETVER >= 20131223
static struct packet_npc_market_result_ack npcmarket_result;
@@ -2633,6 +2633,22 @@ static void clif_dropitem(struct map_session_data *sd, int n, int amount)
WFIFOSET(fd,packet_len(0xaf));
}
+static void clif_item_movefailed(struct map_session_data *sd, int n)
+{
+#if PACKETVER_MAIN_NUM >= 20161214 || PACKETVER_RE_NUM >= 20161130 || defined(PACKETVER_ZERO)
+ int fd = sd->fd;
+ const int len = sizeof(struct PACKET_ZC_INVENTORY_MOVE_FAILED);
+ WFIFOHEAD(fd, len);
+ struct PACKET_ZC_INVENTORY_MOVE_FAILED *p = WFIFOP(fd, 0);
+ p->packetType = 0xaa7;
+ p->index = n + 2;
+ p->unknown = 1;
+ WFIFOSET(fd, len);
+#else
+ clif->dropitem(sd, n, 0);
+#endif
+}
+
/// Notifies the client, that an inventory item was deleted (ZC_DELETE_ITEM_FROM_BODY).
/// 07fa <delete type>.W <index>.W <amount>.W
/// delete type: @see enum delitem_reason
@@ -2771,7 +2787,18 @@ static void clif_item_normal(short idx, struct NORMALITEM_INFO *p, struct item *
#endif
}
-static void clif_inventorylist(struct map_session_data *sd)
+static void clif_inventoryList(struct map_session_data *sd)
+{
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ clif->inventoryStart(sd, INVTYPE_INVENTORY, "");
+#endif
+ clif->inventoryItems(sd, INVTYPE_INVENTORY);
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ clif->inventoryEnd(sd, INVTYPE_INVENTORY);
+#endif
+}
+
+static void clif_inventoryItems(struct map_session_data *sd, enum inventory_type type)
{
int i, normal = 0, equip = 0;
@@ -2786,9 +2813,12 @@ static void clif_inventorylist(struct map_session_data *sd)
clif->item_normal(i+2,&itemlist_normal.list[normal++],&sd->status.inventory[i],sd->inventory_data[i]);
}
- if( normal ) {
- itemlist_normal.PacketType = inventorylistnormalType;
- itemlist_normal.PacketLength = 4 + (sizeof(struct NORMALITEM_INFO) * normal);
+ if (normal) {
+ itemlist_normal.PacketType = inventorylistnormalType;
+ itemlist_normal.PacketLength = (sizeof(itemlist_normal) - sizeof(itemlist_normal.list)) + (sizeof(struct NORMALITEM_INFO) * normal);
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ itemlist_normal.invType = type;
+#endif
clif->send(&itemlist_normal, itemlist_normal.PacketLength, &sd->bl, SELF);
}
@@ -2798,7 +2828,10 @@ static void clif_inventorylist(struct map_session_data *sd)
if( equip ) {
itemlist_equip.PacketType = inventorylistequipType;
- itemlist_equip.PacketLength = 4 + (sizeof(struct EQUIPITEM_INFO) * equip);
+ itemlist_equip.PacketLength = (sizeof(itemlist_equip) - sizeof(itemlist_equip.list)) + (sizeof(struct EQUIPITEM_INFO) * equip);
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ itemlist_equip.invType = type;
+#endif
clif->send(&itemlist_equip, itemlist_equip.PacketLength, &sd->bl, SELF);
}
@@ -2814,8 +2847,20 @@ static void clif_inventorylist(struct map_session_data *sd)
#endif
}
+static void clif_equipList(struct map_session_data *sd)
+{
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ clif->inventoryStart(sd, INVTYPE_INVENTORY, "");
+ clif->inventoryItems(sd, INVTYPE_INVENTORY);
+ clif->inventoryEnd(sd, INVTYPE_INVENTORY);
+#else
+ // [4144] for old packet version it send only equipment. this is bug?
+ clif->equipItems(sd, INVTYPE_INVENTORY);
+#endif
+}
+
//Required when items break/get-repaired. Only sends equippable item list.
-static void clif_equiplist(struct map_session_data *sd)
+static void clif_equipItems(struct map_session_data *sd, enum inventory_type type)
{
int i, equip = 0;
@@ -2828,9 +2873,12 @@ static void clif_equiplist(struct map_session_data *sd)
clif->item_equip(i+2,&itemlist_equip.list[equip++],&sd->status.inventory[i],sd->inventory_data[i],pc->equippoint(sd,i));
}
- if( equip ) {
- itemlist_equip.PacketType = inventorylistequipType;
- itemlist_equip.PacketLength = 4 + (sizeof(struct EQUIPITEM_INFO) * equip);
+ if (equip) {
+ itemlist_equip.PacketType = inventorylistequipType;
+ itemlist_equip.PacketLength = (sizeof(itemlist_equip) - sizeof(itemlist_equip.list)) + (sizeof(struct EQUIPITEM_INFO) * equip);
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ itemlist_equip.invType = type;
+#endif
clif->send(&itemlist_equip, itemlist_equip.PacketLength, &sd->bl, SELF);
}
@@ -2847,13 +2895,74 @@ static void clif_equiplist(struct map_session_data *sd)
#endif
}
-static void clif_storagelist(struct map_session_data *sd, struct item *items, int items_length)
+static void clif_storageList(struct map_session_data *sd, struct item *items, int items_length)
{
- int i = 0;
- struct item_data *id;
+ nullpo_retv(sd);
+ clif->inventoryStart(sd, INVTYPE_STORAGE, "Storage");
+ if (sd->storage.aggregate > 0)
+ clif->storageItems(sd, INVTYPE_STORAGE, items, items_length);
+ clif->inventoryEnd(sd, INVTYPE_STORAGE);
+}
+
+static void clif_guildStorageList(struct map_session_data *sd, struct item *items, int items_length)
+{
+ clif->inventoryStart(sd, INVTYPE_GUILD_STORAGE, "Guild storage");
+ clif->storageItems(sd, INVTYPE_GUILD_STORAGE, items, items_length);
+ clif->inventoryEnd(sd, INVTYPE_GUILD_STORAGE);
+}
+
+static void clif_inventoryStart(struct map_session_data *sd, enum inventory_type type, const char *name)
+{
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ nullpo_retv(sd);
+ nullpo_retv(name);
+
+ char buf[sizeof(struct ZC_INVENTORY_START) + 24];
+ memset(buf, 0, sizeof(buf));
+ struct ZC_INVENTORY_START *p = (struct ZC_INVENTORY_START *)buf;
+ p->packetType = 0xb08;
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ p->invType = type;
+#endif
+#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ int strLen = (int)safestrnlen(name, 24);
+ if (strLen > 24)
+ strLen = 24;
+ const int len = sizeof(struct ZC_INVENTORY_START) + strLen;
+ p->packetLength = len;
+ safestrncpy(p->name, name, strLen);
+#else
+ const int len = sizeof(struct ZC_INVENTORY_START);
+ safestrncpy(p->name, name, NAME_LENGTH);
+#endif
+ clif->send(p, len, &sd->bl, SELF);
+#endif
+}
+
+static void clif_inventoryEnd(struct map_session_data *sd, enum inventory_type type)
+{
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ nullpo_retv(sd);
+
+ struct ZC_INVENTORY_END p;
+ p.packetType = 0xb0b;
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ p.invType = type;
+#endif
+ p.flag = 0;
+ clif->send(&p, sizeof(p), &sd->bl, SELF);
+#endif
+}
+
+static void clif_storageItems(struct map_session_data *sd, enum inventory_type type, struct item *items, int items_length)
+{
nullpo_retv(sd);
nullpo_retv(items);
+
+ int i = 0;
+ struct item_data *id;
+
do {
int normal = 0, equip = 0, k = 0;
@@ -2871,10 +2980,13 @@ static void clif_storagelist(struct map_session_data *sd, struct item *items, in
}
if( normal ) {
- storelist_normal.PacketType = storagelistnormalType;
+ storelist_normal.PacketType = storageListNormalType;
storelist_normal.PacketLength = ( sizeof( storelist_normal ) - sizeof( storelist_normal.list ) ) + (sizeof(struct NORMALITEM_INFO) * normal);
-#if PACKETVER >= 20120925
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ storelist_normal.invType = type;
+#endif
+#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919 && PACKETVER_MAIN_NUM < 20181002
safestrncpy(storelist_normal.name, "Storage", NAME_LENGTH);
#endif
@@ -2882,10 +2994,13 @@ static void clif_storagelist(struct map_session_data *sd, struct item *items, in
}
if( equip ) {
- storelist_equip.PacketType = storagelistequipType;
+ storelist_equip.PacketType = storageListEquipType;
storelist_equip.PacketLength = ( sizeof( storelist_equip ) - sizeof( storelist_equip.list ) ) + (sizeof(struct EQUIPITEM_INFO) * equip);
-#if PACKETVER >= 20120925
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ storelist_equip.invType = type;
+#endif
+#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919 && PACKETVER_MAIN_NUM < 20181002
safestrncpy(storelist_equip.name, "Storage", NAME_LENGTH);
#endif
@@ -2896,7 +3011,18 @@ static void clif_storagelist(struct map_session_data *sd, struct item *items, in
}
-static void clif_cartlist(struct map_session_data *sd)
+static void clif_cartList(struct map_session_data *sd)
+{
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ clif->inventoryStart(sd, INVTYPE_CART, "");
+#endif
+ clif->cartItems(sd, INVTYPE_CART);
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ clif->inventoryEnd(sd, INVTYPE_CART);
+#endif
+}
+
+static void clif_cartItems(struct map_session_data *sd, enum inventory_type type)
{
int i, normal = 0, equip = 0;
struct item_data *id;
@@ -2914,16 +3040,22 @@ static void clif_cartlist(struct map_session_data *sd)
clif->item_normal(i+2,&itemlist_normal.list[normal++],&sd->status.cart[i],id);
}
- if( normal ) {
- itemlist_normal.PacketType = cartlistnormalType;
- itemlist_normal.PacketLength = 4 + (sizeof(struct NORMALITEM_INFO) * normal);
+ if (normal) {
+ itemlist_normal.PacketType = cartlistnormalType;
+ itemlist_normal.PacketLength = (sizeof(itemlist_normal) - sizeof(itemlist_normal.list)) + (sizeof(struct NORMALITEM_INFO) * normal);
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ itemlist_normal.invType = type;
+#endif
clif->send(&itemlist_normal, itemlist_normal.PacketLength, &sd->bl, SELF);
}
- if( equip ) {
- itemlist_equip.PacketType = cartlistequipType;
- itemlist_equip.PacketLength = 4 + (sizeof(struct EQUIPITEM_INFO) * equip);
+ if (equip) {
+ itemlist_equip.PacketType = cartlistequipType;
+ itemlist_equip.PacketLength = (sizeof(itemlist_equip) - sizeof(itemlist_equip.list)) + (sizeof(struct EQUIPITEM_INFO) * equip);
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ itemlist_equip.invType = type;
+#endif
clif->send(&itemlist_equip, itemlist_equip.PacketLength, &sd->bl, SELF);
}
@@ -6180,6 +6312,7 @@ static void clif_wis_message(int fd, const char *nick, const char *mes, int mes_
/// 1 = target character is not logged in
/// 2 = ignored by target
/// 3 = everyone ignored by target
+/// other = target character is not logged in
static void clif_wis_end(int fd, int flag)
{
struct map_session_data *sd = sockt->session_is_valid(fd) ? sockt->session[fd]->session_data : NULL;
@@ -6191,7 +6324,7 @@ static void clif_wis_end(int fd, int flag)
p.PacketType = wisendType;
p.result = (char)flag;
#if PACKETVER >= 20131223
- p.unknown = 0;
+ p.AID = sd->bl.id;
#endif
clif->send(&p, sizeof(p), &sd->bl, SELF);
@@ -7554,22 +7687,16 @@ static void clif_mvp_item(struct map_session_data *sd, int nameid)
/// 010b <exp>.L
static void clif_mvp_exp(struct map_session_data *sd, unsigned int exp)
{
-#if PACKETVER >= 20131223 // Kro removed this packet [Napster]
- if (battle_config.mvp_exp_reward_message) {
- char e_msg[CHAT_SIZE_MAX];
- sprintf(e_msg, msg_txt(855), exp);
- clif->messagecolor_self(sd->fd, COLOR_CYAN, e_msg); // Congratulations! You are the MVP! Your reward EXP Points are %u !!
- }
-#else
+#if PACKETVER_RE_NUM >= 20080827 || PACKETVER_MAIN_NUM >= 20090401 || defined(PACKETVER_ZERO)
int fd;
nullpo_retv(sd);
- fd=sd->fd;
- WFIFOHEAD(fd,packet_len(0x10b));
- WFIFOW(fd,0)=0x10b;
- WFIFOL(fd,2)=cap_value(exp,0,INT32_MAX);
- WFIFOSET(fd,packet_len(0x10b));
+ fd = sd->fd;
+ WFIFOHEAD(fd, packet_len(0x10b));
+ WFIFOW(fd, 0) = 0x10b;
+ WFIFOL(fd, 2) = cap_value(exp, 0, INT32_MAX);
+ WFIFOSET(fd, packet_len(0x10b));
#endif
}
@@ -7594,6 +7721,7 @@ static void clif_mvp_noitem(struct map_session_data *sd)
/// 1 = "You are already in a Guild."
/// 2 = "That Guild Name already exists."
/// 3 = "You need the necessary item to create a Guild."
+/// 4 = "Can't create a Guild in this area."
static void clif_guild_created(struct map_session_data *sd, int flag)
{
int fd;
@@ -7612,12 +7740,13 @@ static void clif_guild_created(struct map_session_data *sd, int flag)
/// mode: @see enum guild_permission
static void clif_guild_belonginfo(struct map_session_data *sd, struct guild *g)
{
- int ps,fd;
nullpo_retv(sd);
nullpo_retv(g);
- fd=sd->fd;
- ps=guild->getposition(g,sd);
+ int fd = sd->fd;
+ int ps = guild->getposition(g, sd);
+ Assert_retv(ps != -1);
+
WFIFOHEAD(fd,packet_len(0x16c));
WFIFOW(fd,0)=0x16c;
WFIFOL(fd,2)=g->guild_id;
@@ -8079,6 +8208,7 @@ static void clif_guild_invite(struct map_session_data *sd, struct guild *g)
/// 1 = Offer rejected.
/// 2 = Offer accepted.
/// 3 = Guild full.
+/// 4 = Offline or not exists
static void clif_guild_inviteack(struct map_session_data *sd, int flag)
{
int fd;
@@ -8094,41 +8224,45 @@ static void clif_guild_inviteack(struct map_session_data *sd, int flag)
/// Notifies clients of a guild of a leaving member (ZC_ACK_LEAVE_GUILD).
/// 015a <char name>.24B <reason>.40B
-static void clif_guild_leave(struct map_session_data *sd, const char *name, const char *mes)
+static void clif_guild_leave(struct map_session_data *sd, const char *name, int char_id, const char *mes)
{
- unsigned char buf[128];
-
nullpo_retv(sd);
+ nullpo_retv(name);
+ nullpo_retv(mes);
- WBUFW(buf, 0)=0x15a;
- memcpy(WBUFP(buf, 2),name,NAME_LENGTH);
- memcpy(WBUFP(buf,26),mes,40);
- clif->send(buf,packet_len(0x15a),&sd->bl,GUILD_NOBG);
+ struct PACKET_ZC_ACK_LEAVE_GUILD p;
+ p.packetType = guildLeave;
+#if PACKETVER_MAIN_NUM >= 20161019 || PACKETVER_RE_NUM >= 20160921 || defined(PACKETVER_ZERO)
+ p.GID = char_id;
+#else
+ safestrncpy(&p.name[0], name, NAME_LENGTH);
+#endif
+ safestrncpy(&p.reason[0], mes, 40);
+ clif->send(&p, sizeof(p), &sd->bl, GUILD_NOBG);
}
/// Notifies clients of a guild of an expelled member.
/// 015c <char name>.24B <reason>.40B <account name>.24B (ZC_ACK_BAN_GUILD)
/// 0839 <char name>.24B <reason>.40B (ZC_ACK_BAN_GUILD_SSO)
-static void clif_guild_expulsion(struct map_session_data *sd, const char *name, const char *mes, int account_id)
+static void clif_guild_expulsion(struct map_session_data *sd, const char *name, int char_id, const char *mes, int account_id)
{
- unsigned char buf[128];
-#if PACKETVER < 20100803
- const unsigned short cmd = 0x15c;
-#else
- const unsigned short cmd = 0x839;
-#endif
-
nullpo_retv(sd);
nullpo_retv(name);
nullpo_retv(mes);
- WBUFW(buf,0) = cmd;
- safestrncpy(WBUFP(buf,2), name, NAME_LENGTH);
- safestrncpy(WBUFP(buf,26), mes, 40);
+ struct PACKET_ZC_ACK_BAN_GUILD p;
+ p.packetType = guildExpulsion;
+#if PACKETVER_MAIN_NUM >= 20161019 || PACKETVER_RE_NUM >= 20160921 || defined(PACKETVER_ZERO)
+ p.GID = char_id;
+#else
+ safestrncpy(&p.name[0], name, NAME_LENGTH);
+#endif
+ safestrncpy(&p.reason[0], mes, 40);
+
#if PACKETVER < 20100803
- memset(WBUFP(buf,66), 0, NAME_LENGTH); // account name (not used for security reasons)
+ memset(&p.account_name, 0, NAME_LENGTH); // account name (not used for security reasons)
#endif
- clif->send(buf, packet_len(cmd), &sd->bl, GUILD_NOBG);
+ clif->send(&p, sizeof(p), &sd->bl, GUILD_NOBG);
}
/// Guild expulsion list (ZC_BAN_LIST).
@@ -8310,6 +8444,49 @@ static void clif_guild_broken(struct map_session_data *sd, int flag)
WFIFOSET(fd,packet_len(0x15e));
}
+static void clif_guild_position_selected(struct map_session_data *sd)
+{
+#if PACKETVER >= 20180801
+ clif->guild_set_position(sd);
+#else
+ clif->charnameupdate(sd);
+#endif
+}
+
+static void clif_guild_set_position(struct map_session_data *sd)
+{
+ nullpo_retv(sd);
+
+ int len = sizeof(struct PACKET_ZC_GUILD_POSITION);
+ const char *name = NULL;
+ if (sd->status.guild_id > 0) {
+ struct guild *g = sd->guild;
+
+ nullpo_retv(g);
+
+ int i = 0;
+ int ps = -1;
+ ARR_FIND(0, g->max_member, i, g->member[i].account_id == sd->status.account_id && g->member[i].char_id == sd->status.char_id);
+ if (i < g->max_member)
+ ps = g->member[i].position;
+
+ if (ps >= 0 && ps < MAX_GUILDPOSITION) {
+ len += 24;
+ name = g->position[ps].name;
+ }
+ }
+
+ unsigned char buf[sizeof(struct PACKET_ZC_GUILD_POSITION) + NAME_LENGTH];
+ struct PACKET_ZC_GUILD_POSITION *p = WBUFP(buf, 0);
+ p->packetType = 0xafd;
+ p->packetLength = len;
+ p->AID = sd->bl.id;
+ if (name != NULL)
+ memcpy(&p->position, name, 24);
+
+ clif->send(buf, len, &sd->bl, AREA);
+}
+
/// Displays emotion on an object (ZC_EMOTION).
/// 00c0 <id>.L <type>.B
/// type:
@@ -8688,6 +8865,45 @@ static void clif_specialeffect_value(struct block_list *bl, int effect_id, int n
clif->send(buf, packet_len(0x284), bl, SELF);
}
}
+
+/// Remove special effects (ZC_REMOVE_EFFECT).
+/// 0b0d <id>.L <effect id>.L
+/// effect id:
+/// @see doc/effect_list.txt
+static void clif_removeSpecialEffect(struct block_list *bl, int effectId, enum send_target target)
+{
+#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002
+ nullpo_retv(bl);
+
+ struct PACKET_ZC_REMOVE_EFFECT p;
+ p.packetType = 0xb0d;
+ p.aid = bl->id;
+ p.effectId = effectId;
+
+ clif->send(&p, sizeof(p), bl, target);
+
+ if (clif->isdisguised(bl)) {
+ p.aid = -bl->id;
+ clif->send(&p, sizeof(p), bl, SELF);
+ }
+#endif
+}
+
+static void clif_removeSpecialEffect_single(struct block_list *bl, int effectId, struct block_list *targetBl)
+{
+#if PACKETVER_MAIN_NUM >= 20181002 || PACKETVER_RE_NUM >= 20181002
+ nullpo_retv(bl);
+ nullpo_retv(targetBl);
+
+ struct PACKET_ZC_REMOVE_EFFECT p;
+ p.packetType = 0xb0d;
+ p.aid = bl->id;
+ p.effectId = effectId;
+
+ clif->send(&p, sizeof(p), targetBl, SELF);
+#endif
+}
+
/**
* Modification of clif_messagecolor to send colored messages to players to chat log only (doesn't display overhead).
*
@@ -8760,8 +8976,8 @@ static void clif_refresh_storagewindow(struct map_session_data *sd)
if (sd->state.storage_flag == STORAGE_FLAG_NORMAL) {
if (sd->storage.aggregate > 0) {
storage->sortitem(VECTOR_DATA(sd->storage.item), VECTOR_LENGTH(sd->storage.item));
- clif->storagelist(sd, VECTOR_DATA(sd->storage.item), VECTOR_LENGTH(sd->storage.item));
}
+ clif->storageList(sd, VECTOR_DATA(sd->storage.item), VECTOR_LENGTH(sd->storage.item));
clif->updatestorageamount(sd, sd->storage.aggregate, MAX_STORAGE);
}
// Notify the client that the gstorage is open otherwise it will
@@ -8773,7 +8989,7 @@ static void clif_refresh_storagewindow(struct map_session_data *sd)
intif->request_guild_storage(sd->status.account_id,sd->status.guild_id);
} else {
storage->sortitem(gstor->items, ARRAYLENGTH(gstor->items));
- clif->storagelist(sd, gstor->items, ARRAYLENGTH(gstor->items));
+ clif->guildStorageList(sd, gstor->items, ARRAYLENGTH(gstor->items));
clif->updatestorageamount(sd, gstor->storage_amount, MAX_GUILD_STORAGE);
}
}
@@ -8785,9 +9001,9 @@ static void clif_refresh(struct map_session_data *sd)
nullpo_retv(sd);
clif->changemap(sd,sd->bl.m,sd->bl.x,sd->bl.y);
- clif->inventorylist(sd);
+ clif->inventoryList(sd);
if(pc_iscarton(sd)) {
- clif->cartlist(sd);
+ clif->cartList(sd);
clif->updatestatus(sd,SP_CARTINFO);
}
clif->updatestatus(sd,SP_WEIGHT);
@@ -9327,6 +9543,9 @@ static void clif_viewequip_ack(struct map_session_data *sd, struct map_session_d
#endif
viewequip_list.headpalette = tsd->vd.hair_color;
viewequip_list.bodypalette = tsd->vd.cloth_color;
+#if PACKETVER_MAIN_NUM >= 20180801 || PACKETVER_RE_NUM >= 20180801 || PACKETVER_ZERO_NUM >= 20180808
+ viewequip_list.body2 = tsd->vd.body_style;
+#endif
viewequip_list.sex = tsd->vd.sex;
clif->send(&viewequip_list, viewequip_list.PacketLength, &sd->bl, SELF);
@@ -9433,6 +9652,36 @@ static void clif_msgtable_str(struct map_session_data *sd, enum clif_messages ms
}
/**
+ * Displays a format string from msgstringtable.txt with a %s value and color (ZC_FORMATSTRING_MSG).
+ *
+ * @param sd The target character.
+ * @param msg_id msgstringtable message index, 0-based (@see enum clif_messages)
+ * @param value The value to fill %s.
+ * @param color The color to use
+ */
+static void clif_msgtable_str_color(struct map_session_data *sd, enum clif_messages msg_id, const char *value, uint32 color)
+{
+#if PACKETVER >= 20160330
+ nullpo_retv(sd);
+ nullpo_retv(value);
+
+ int message_len = (int)strlen(value) + 1;
+ const int len = sizeof(struct PACKET_ZC_FORMATSTRING_MSG_COLOR) + message_len + 1;
+ struct PACKET_ZC_FORMATSTRING_MSG_COLOR *p = (struct PACKET_ZC_FORMATSTRING_MSG_COLOR *)aMalloc(len);
+
+ p->PacketType = 0xa6f;
+ p->PacketLength = len;
+ p->messageId = msg_id;
+ p->color = color;
+ safestrncpy(p->messageString, value, message_len);
+ p->messageString[message_len] = 0;
+
+ clif->send(p, p->PacketLength, &sd->bl, SELF);
+ aFree(p);
+#endif
+}
+
+/**
* Displays a format string from msgstringtable.txt with a color (ZC_MSG_COLOR).
*
* @param sd The target character.
@@ -9786,11 +10035,11 @@ static void clif_parse_LoadEndAck(int fd, struct map_session_data *sd)
// Send character inventory to the client.
// call this before pc->checkitem() so that the client isn't called to delete a non-existent item.
- clif->inventorylist(sd);
+ clif->inventoryList(sd);
// Send the cart inventory, counts & weight to the client.
if(pc_iscarton(sd)) {
- clif->cartlist(sd);
+ clif->cartList(sd);
clif->updatestatus(sd, SP_CARTINFO);
}
@@ -10793,7 +11042,7 @@ static void clif_parse_WisMessage(int fd, struct map_session_data *sd)
// Lordalfa - Paperboy - To whisper NPC commands //
//-------------------------------------------------------//
if (target[0] && (strncasecmp(target,"NPC:",4) == 0) && (strlen(target) > 4)) {
- const char *str = target+4; //Skip the NPC: string part.
+ char *str = target + 4; // Skip the NPC: string part.
struct npc_data *nd;
if ((nd = npc->name2id(str))) {
char split_data[NUM_WHISPER_VAR][CHAT_SIZE_MAX];
@@ -11485,7 +11734,7 @@ static void clif_parse_PutItemToCart(int fd, struct map_session_data *sd)
if (!pc_iscarton(sd))
return;
if ( (flag = pc->putitemtocart(sd,RFIFOW(fd,2)-2,RFIFOL(fd,4))) ) {
- clif->dropitem(sd, RFIFOW(fd,2)-2,0);
+ clif->item_movefailed(sd, RFIFOW(fd,2)-2);
clif->cart_additem_ack(sd,flag == 1?0x0:0x1);
}
}
@@ -15195,7 +15444,7 @@ static void clif_parse_FeelSaveOk(int fd, struct map_session_data *sd)
sd->feel_map[i].index = map_id2index(sd->bl.m);
sd->feel_map[i].m = sd->bl.m;
- pc_setglobalreg(sd,script->add_str(pc->sg_info[i].feel_var),sd->feel_map[i].index);
+ pc_setglobalreg(sd,script->add_variable(pc->sg_info[i].feel_var),sd->feel_map[i].index);
#if 0 // Are these really needed? Shouldn't they show up automatically from the feel save packet?
clif_misceffect2(&sd->bl, 0x1b0);
@@ -16758,7 +17007,7 @@ static void clif_quest_update_objective(struct map_session_data *sd, struct ques
qi = quest->db(qd->quest_id);
Assert_retv(qi->objectives_count < MAX_QUEST_OBJECTIVES);
-
+
len = sizeof(struct packet_quest_update_header)
+ MAX_QUEST_OBJECTIVES * sizeof(struct packet_quest_update_hunt); // >= than the actual length
@@ -16771,7 +17020,7 @@ static void clif_quest_update_objective(struct map_session_data *sd, struct ques
for (i = 0; i < qi->objectives_count; i++) {
real_len += sizeof(packet->objectives[i]);
-
+
packet->objectives[i].questID = qd->quest_id;
#if PACKETVER >= 20150513
packet->objectives[i].huntIdent = (qd->quest_id * 1000) + i;
@@ -16801,7 +17050,7 @@ static void clif_quest_notify_objective(struct map_session_data *sd, struct ques
qi = quest->db(qd->quest_id);
Assert_retv(qi->objectives_count < MAX_QUEST_OBJECTIVES);
-
+
len = sizeof(struct packet_quest_hunt_info)
+ MAX_QUEST_OBJECTIVES * sizeof(struct packet_quest_hunt_info_sub); // >= than the actual length
@@ -16813,7 +17062,7 @@ static void clif_quest_notify_objective(struct map_session_data *sd, struct ques
for (i = 0; i < qi->objectives_count; i++) {
real_len += sizeof(packet->info[i]);
-
+
packet->info[i].questID = qd->quest_id;
packet->info[i].mob_id = qi->objectives[i].mob;
packet->info[i].maxCount = qi->objectives[i].count;
@@ -17348,6 +17597,7 @@ static int clif_instance(int instance_id, int type, int flag)
case 2:
// S 0x2cc <Standby Position>.W
// To announce Instancing queue creation if no maps available
+ // flag is priority, negative value mean cancel reservation
WBUFW(buf,0) = 0x02CC;
WBUFW(buf,2) = flag;
clif->send(buf,packet_len(0x02CC),&sd->bl,target);
@@ -18629,8 +18879,20 @@ static void clif_monster_hp_bar(struct mob_data *md, struct map_session_data *sd
}
/* [Ind/Hercules] placeholder for unsupported incoming packets (avoids server disconnecting client) */
-static void __attribute__ ((unused)) clif_parse_dull(int fd, struct map_session_data *sd)
+static void clif_parse_dull(int fd, struct map_session_data *sd)
{
+ const int cmd = clif->cmd;
+ Assert_retv(cmd <= MAX_PACKET_DB && cmd >= MIN_PACKET_DB);
+
+ int packet_len = packet_db[cmd].len;
+ if (packet_len == -1) { // variable-length packet
+ packet_len = RFIFOW(fd, 2);
+ }
+ if (sd) {
+ ShowWarning("Unhandled packet 0x%04d (length %d), %s session #%d, %d/%d (AID/CID)\n", cmd, packet_len, sd->state.active ? "authed" : "unauthed", fd, sd->status.account_id, sd->status.char_id);
+ } else {
+ ShowWarning("Unhandled packet 0x%04d (length %d), session #%d\n", cmd, packet_len, fd);
+ }
return;
}
@@ -18742,12 +19004,12 @@ static void clif_parse_CashShopBuy(int fd, struct map_session_data *sd)
struct item item_tmp;
int k, get_count;
int ret = 0;
-
+
get_count = qty;
if (!itemdb->isstackable2(data))
get_count = 1;
-
+
ret = pc->paycash(sd, clif->cs.data[tab][j]->price * qty, kafra_pay);// [Ryuuzaki] //changed Kafrapoints calculation. [Normynator]
if (ret < 0) {
ShowError("clif_parse_CashShopBuy: The return from pc->paycash was negative which is not allowed.\n");
@@ -19548,9 +19810,9 @@ static void clif_parse_RouletteOpen(int fd, struct map_session_data *sd)
p.Step = sd->roulette.stage - 1;
p.Idx = (char)sd->roulette.prizeIdx;
p.AdditionItemID = -1; /** TODO **/
- p.BronzePoint = pc_readglobalreg(sd, script->add_str("TmpRouletteBronze"));
- p.GoldPoint = pc_readglobalreg(sd, script->add_str("TmpRouletteGold"));
- p.SilverPoint = pc_readglobalreg(sd, script->add_str("TmpRouletteSilver"));
+ p.BronzePoint = pc_readglobalreg(sd, script->add_variable("TmpRouletteBronze"));
+ p.GoldPoint = pc_readglobalreg(sd, script->add_variable("TmpRouletteGold"));
+ p.SilverPoint = pc_readglobalreg(sd, script->add_variable("TmpRouletteSilver"));
clif->send(&p,sizeof(p), &sd->bl, SELF);
#endif
@@ -19569,7 +19831,7 @@ static void clif_parse_RouletteInfo(int fd, struct map_session_data *sd)
}
p.PacketType = rouletteinfoackType;
- p.PacketLength = 8 + (42 * 8);
+ p.PacketLength = sizeof(p);
p.RouletteSerial = 1;
for(i = 0; i < MAX_ROULETTE_LEVEL; i++) {
@@ -19617,21 +19879,21 @@ static void clif_parse_RouletteGenerate(int fd, struct map_session_data *sd)
stage = sd->roulette.stage = 0;
if( stage == 0 ) {
- if( pc_readglobalreg(sd, script->add_str("TmpRouletteBronze")) <= 0 &&
- pc_readglobalreg(sd, script->add_str("TmpRouletteSilver")) < 10 &&
- pc_readglobalreg(sd, script->add_str("TmpRouletteGold")) < 10 )
+ if( pc_readglobalreg(sd, script->add_variable("TmpRouletteBronze")) <= 0 &&
+ pc_readglobalreg(sd, script->add_variable("TmpRouletteSilver")) < 10 &&
+ pc_readglobalreg(sd, script->add_variable("TmpRouletteGold")) < 10 )
result = GENERATE_ROULETTE_NO_ENOUGH_POINT;
}
if( result == GENERATE_ROULETTE_SUCCESS ) {
if( stage == 0 ) {
- if( pc_readglobalreg(sd, script->add_str("TmpRouletteBronze")) > 0 ) {
- pc_setglobalreg(sd, script->add_str("TmpRouletteBronze"), pc_readglobalreg(sd, script->add_str("TmpRouletteBronze")) - 1);
- } else if( pc_readglobalreg(sd, script->add_str("TmpRouletteSilver")) > 9 ) {
- pc_setglobalreg(sd, script->add_str("TmpRouletteSilver"), pc_readglobalreg(sd, script->add_str("TmpRouletteSilver")) - 10);
+ if( pc_readglobalreg(sd, script->add_variable("TmpRouletteBronze")) > 0 ) {
+ pc_setglobalreg(sd, script->add_variable("TmpRouletteBronze"), pc_readglobalreg(sd, script->add_variable("TmpRouletteBronze")) - 1);
+ } else if( pc_readglobalreg(sd, script->add_variable("TmpRouletteSilver")) > 9 ) {
+ pc_setglobalreg(sd, script->add_variable("TmpRouletteSilver"), pc_readglobalreg(sd, script->add_variable("TmpRouletteSilver")) - 10);
stage = sd->roulette.stage = 2;
- } else if( pc_readglobalreg(sd, script->add_str("TmpRouletteGold")) > 9 ) {
- pc_setglobalreg(sd, script->add_str("TmpRouletteGold"), pc_readglobalreg(sd, script->add_str("TmpRouletteGold")) - 10);
+ } else if( pc_readglobalreg(sd, script->add_variable("TmpRouletteGold")) > 9 ) {
+ pc_setglobalreg(sd, script->add_variable("TmpRouletteGold"), pc_readglobalreg(sd, script->add_variable("TmpRouletteGold")) - 10);
stage = sd->roulette.stage = 4;
}
}
@@ -19813,9 +20075,9 @@ static void clif_roulette_generate_ack(struct map_session_data *sd, unsigned cha
p.Step = stage;
p.Idx = prizeIdx;
p.AdditionItemID = bonusItemID;
- p.RemainBronze = pc_readglobalreg(sd, script->add_str("TmpRouletteBronze"));
- p.RemainGold = pc_readglobalreg(sd, script->add_str("TmpRouletteGold"));
- p.RemainSilver = pc_readglobalreg(sd, script->add_str("TmpRouletteSilver"));
+ p.RemainBronze = pc_readglobalreg(sd, script->add_variable("TmpRouletteBronze"));
+ p.RemainGold = pc_readglobalreg(sd, script->add_variable("TmpRouletteGold"));
+ p.RemainSilver = pc_readglobalreg(sd, script->add_variable("TmpRouletteSilver"));
clif->send(&p,sizeof(p), &sd->bl, SELF);
#endif
@@ -20271,7 +20533,7 @@ static unsigned short clif_parse_cmd_optional(int fd, struct map_session_data *s
*/
static void clif_achievement_send_list(int fd, struct map_session_data *sd)
{
-#if PACKETVER >= 20141016
+#if PACKETVER_MAIN_NUM >= 20150225 || PACKETVER_RE_NUM >= 20141126 || defined(PACKETVER_ZERO)
int i = 0, count = 0, curr_exp_tmp = 0;
struct packet_achievement_list p = { 0 };
@@ -20334,7 +20596,7 @@ static void clif_achievement_send_list(int fd, struct map_session_data *sd)
*/
static void clif_achievement_send_update(int fd, struct map_session_data *sd, const struct achievement_data *ad)
{
-#if PACKETVER >= 20141016
+#if PACKETVER_MAIN_NUM >= 20150225 || PACKETVER_RE_NUM >= 20141126 || defined(PACKETVER_ZERO)
struct packet_achievement_update p = { 0 };
struct achievement *a = NULL;
int i = 0, points = 0, rank = 0, curr_rank_points = 0;
@@ -20388,7 +20650,6 @@ static void clif_achievement_send_update(int fd, struct map_session_data *sd, co
static void clif_parse_achievement_get_reward(int fd, struct map_session_data *sd) __attribute__((nonnull(2)));
static void clif_parse_achievement_get_reward(int fd, struct map_session_data *sd)
{
-#if PACKETVER >= 20141016
int ach_id = RFIFOL(fd, 2);
const struct achievement_data *ad = NULL;
struct achievement *ach = NULL;
@@ -20402,7 +20663,6 @@ static void clif_parse_achievement_get_reward(int fd, struct map_session_data *s
if (achievement->check_complete(sd, ad) && ach->completed_at && ach->rewarded_at == 0) {
achievement->get_rewards(sd, ad);
}
-#endif // PACKETVER >= 20141016
}
/**
@@ -20411,14 +20671,14 @@ static void clif_parse_achievement_get_reward(int fd, struct map_session_data *s
*/
static void clif_achievement_reward_ack(int fd, struct map_session_data *sd, const struct achievement_data *ad)
{
-#if PACKETVER >= 20141016
+#if PACKETVER_MAIN_NUM >= 20150225 || PACKETVER_RE_NUM >= 20141126 || defined(PACKETVER_ZERO)
struct packet_achievement_reward_ack p = { 0 };
nullpo_retv(sd);
nullpo_retv(ad);
p.packet_id = achievementRewardAckType;
- p.received = 1;
+ p.failed = 0;
p.ach_id = ad->id;
clif->send(&p, packet_len(achievementRewardAckType), &sd->bl, SELF);
@@ -20738,7 +20998,7 @@ static void clif_rodex_send_mails_all(int fd, struct map_session_data *sd, int64
nullpo_retv(sd);
mailsSize = VECTOR_LENGTH(sd->rodex.messages);
-
+
if (mail_id > 0)
ARR_FIND(0, VECTOR_LENGTH(sd->rodex.messages), j, (VECTOR_INDEX(sd->rodex.messages, j)).id == mail_id);
@@ -21360,8 +21620,8 @@ static void clif_parse_private_airship_request(int fd, struct map_session_data *
safestrncpy(evname, "private_airship::OnAirShipRequest", EVENT_NAME_LENGTH);
if ((ev = strdb_get(npc->ev_db, evname))) {
- pc->setregstr(sd, script->add_str("@mapname$"), p->mapName);
- pc->setreg(sd, script->add_str("@itemid"), p->ItemID);
+ pc->setregstr(sd, script->add_variable("@mapname$"), p->mapName);
+ pc->setreg(sd, script->add_variable("@itemid"), p->ItemID);
script->run_npc(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id);
} else {
ShowError("clif_parse_private_airship_request: event '%s' not found, operation failed.\n", evname);
@@ -21548,13 +21808,32 @@ static void clif_parse_cz_req_style_change(int fd, struct map_session_data *sd)
clif->cz_req_style_change_sub(sd, LOOK_HEAD_MID, p->MidAccessory, true);
if (p->BottomAccessory > 0)
clif->cz_req_style_change_sub(sd, LOOK_HEAD_BOTTOM, p->BottomAccessory, true);
-#if PACKETVER_RE_NUM >= 20180718
+ clif->style_change_response(sd, STYLIST_SHOP_SUCCESS);
+ return;
+}
+
+static void clif_parse_cz_req_style_change2(int fd, struct map_session_data *sd) __attribute__((nonnull(2)));
+static void clif_parse_cz_req_style_change2(int fd, struct map_session_data *sd)
+{
+ const struct PACKET_CZ_REQ_STYLE_CHANGE2 *p = RP2PTR(fd);
+
+ if (p->HeadStyle > 0)
+ clif->cz_req_style_change_sub(sd, LOOK_HAIR, p->HeadStyle, false);
+ if (p->HeadPalette > 0)
+ clif->cz_req_style_change_sub(sd, LOOK_HAIR_COLOR, p->HeadPalette, false);
+ if (p->BodyPalette > 0)
+ clif->cz_req_style_change_sub(sd, LOOK_CLOTHES_COLOR, p->BodyPalette, false);
+ if (p->TopAccessory > 0)
+ clif->cz_req_style_change_sub(sd, LOOK_HEAD_TOP, p->TopAccessory, true);
+ if (p->MidAccessory > 0)
+ clif->cz_req_style_change_sub(sd, LOOK_HEAD_MID, p->MidAccessory, true);
+ if (p->BottomAccessory > 0)
+ clif->cz_req_style_change_sub(sd, LOOK_HEAD_BOTTOM, p->BottomAccessory, true);
if (p->BodyStyle > 0) {
if (pc->has_second_costume(sd)) {
clif->cz_req_style_change_sub(sd, LOOK_BODY2, p->BodyStyle, false);
}
}
-#endif
clif->style_change_response(sd, STYLIST_SHOP_SUCCESS);
return;
}
@@ -21632,6 +21911,43 @@ static void clif_party_dead_notification(struct map_session_data *sd)
#endif
}
+static void clif_parse_memorial_dungeon_command(int fd, struct map_session_data *sd) __attribute__((nonnull(2)));
+static void clif_parse_memorial_dungeon_command(int fd, struct map_session_data *sd)
+{
+ const struct PACKET_CZ_MEMORIALDUNGEON_COMMAND *p = RP2PTR(fd);
+
+ switch (p->command) {
+ case COMMAND_MEMORIALDUNGEON_DESTROY_FORCE:
+ instance->force_destroy(sd);
+ }
+}
+
+static void clif_camera_showWindow(struct map_session_data *sd)
+{
+#if PACKETVER >= 20160525
+ struct PACKET_ZC_CAMERA_INFO p;
+ p.packetType = 0xa78;
+ p.action = 1;
+ p.range = 0;
+ p.rotation = 0;
+ p.latitude = 0;
+ clif->send(&p, sizeof(p), &sd->bl, SELF);
+#endif
+}
+
+static void clif_camera_change(struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target)
+{
+#if PACKETVER >= 20160525
+ struct PACKET_ZC_CAMERA_INFO p;
+ p.packetType = 0xa78;
+ p.action = 0;
+ p.range = range;
+ p.rotation = rotation;
+ p.latitude = latitude;
+ clif->send(&p, sizeof(p), &sd->bl, target);
+#endif
+}
+
/*==========================================
* Main client packet processing function
*------------------------------------------*/
@@ -21683,6 +21999,7 @@ static int clif_parse(int fd)
parse_cmd_func = clif->parse_cmd;
cmd = parse_cmd_func(fd,sd);
+ clif->cmd = cmd;
if (VECTOR_LENGTH(HPM->packets[hpClif_Parse]) > 0) {
int result = HPM->parse_packets(fd,cmd,hpClif_Parse);
@@ -21746,8 +22063,8 @@ static int clif_parse(int fd)
else
packet_db[cmd].func(fd, sd);
}
-#ifdef DUMP_UNKNOWN_PACKET
else {
+#ifdef DUMP_UNKNOWN_PACKET
const char* packet_txt = "save/packet.txt";
FILE* fp;
@@ -21773,8 +22090,10 @@ static int clif_parse(int fd)
ShowDump(RFIFOP(fd,0), packet_len);
}
- }
+#else
+ clif->pDull(fd, sd);
#endif
+ }
RFIFOSKIP(fd, packet_len);
@@ -21946,6 +22265,7 @@ void clif_defaults(void)
clif->map_port = 5121;
clif->ally_only = false;
clif->delayed_damage_ers = NULL;
+ clif->cmd = -1;
/* core */
clif->init = do_init_clif;
clif->final = do_final_clif;
@@ -21973,6 +22293,7 @@ void clif_defaults(void)
clif->dropitem = clif_dropitem;
clif->delitem = clif_delitem;
clif->takeitem = clif_takeitem;
+ clif->item_movefailed = clif_item_movefailed;
clif->item_equip = clif_item_equip;
clif->item_normal = clif_item_normal;
clif->arrowequip = clif_arrowequip;
@@ -22081,9 +22402,12 @@ void clif_defaults(void)
clif->combo_delay = clif_combo_delay;
clif->status_change = clif_status_change;
clif->insert_card = clif_insert_card;
- clif->inventorylist = clif_inventorylist;
- clif->equiplist = clif_equiplist;
- clif->cartlist = clif_cartlist;
+ clif->inventoryList = clif_inventoryList;
+ clif->inventoryItems = clif_inventoryItems;
+ clif->equipList = clif_equipList;
+ clif->equipItems = clif_equipItems;
+ clif->cartList = clif_cartList;
+ clif->cartItems = clif_cartItems;
clif->favorite_item = clif_favorite_item;
clif->clearcart = clif_clearcart;
clif->item_identify_list = clif_item_identify_list;
@@ -22176,6 +22500,8 @@ void clif_defaults(void)
clif->specialeffect = clif_specialeffect;
clif->specialeffect_single = clif_specialeffect_single;
clif->specialeffect_value = clif_specialeffect_value;
+ clif->removeSpecialEffect = clif_removeSpecialEffect;
+ clif->removeSpecialEffect_single = clif_removeSpecialEffect_single;
clif->millenniumshield = clif_millenniumshield;
clif->spiritcharm = clif_charm;
clif->charm_single = clif_charm_single;
@@ -22209,6 +22535,7 @@ void clif_defaults(void)
clif->msgtable = clif_msgtable;
clif->msgtable_num = clif_msgtable_num;
clif->msgtable_str = clif_msgtable_str;
+ clif->msgtable_str_color = clif_msgtable_str_color;
clif->msgtable_color = clif_msgtable_color;
clif->message = clif_displaymessage;
clif->messageln = clif_displaymessage2;
@@ -22238,7 +22565,11 @@ void clif_defaults(void)
clif->openvendingAck = clif_openvendingAck;
clif->vendingreport = clif_vendingreport;
/* storage handling */
- clif->storagelist = clif_storagelist;
+ clif->storageList = clif_storageList;
+ clif->guildStorageList = clif_guildStorageList;
+ clif->storageItems = clif_storageItems;
+ clif->inventoryStart = clif_inventoryStart;
+ clif->inventoryEnd = clif_inventoryEnd;
clif->updatestorageamount = clif_updatestorageamount;
clif->storageitemadded = clif_storageitemadded;
clif->storageitemremoved = clif_storageitemremoved;
@@ -22297,6 +22628,8 @@ void clif_defaults(void)
clif->guild_positionnamelist = clif_guild_positionnamelist;
clif->guild_positioninfolist = clif_guild_positioninfolist;
clif->guild_expulsionlist = clif_guild_expulsionlist;
+ clif->guild_set_position = clif_guild_set_position;
+ clif->guild_position_selected = clif_guild_position_selected;
clif->validate_emblem = clif_validate_emblem;
/* battleground-specific */
clif->bg_hp = clif_bg_hp;
@@ -22775,11 +23108,16 @@ void clif_defaults(void)
clif->style_change_validate_requirements = clif_style_change_validate_requirements;
clif->stylist_send_rodexitem = clif_stylist_send_rodexitem;
clif->pReqStyleChange = clif_parse_cz_req_style_change;
+ clif->pReqStyleChange2 = clif_parse_cz_req_style_change2;
clif->cz_req_style_change_sub = clif_cz_req_style_change_sub;
clif->style_change_response = clif_style_change_response;
+ clif->camera_showWindow = clif_camera_showWindow;
+ clif->camera_change = clif_camera_change;
+
// -- Pet Evolution
clif->pPetEvolution = clif_parse_pet_evolution;
clif->petEvolutionResult = clif_pet_evolution_result;
+ clif->pMemorialDungeonCommand = clif_parse_memorial_dungeon_command;
}
diff --git a/src/map/clif.h b/src/map/clif.h
index 3ed9b96ae..13c34c77d 100644
--- a/src/map/clif.h
+++ b/src/map/clif.h
@@ -439,11 +439,13 @@ enum e_BANKING_DEPOSIT_ACK {
BDA_ERROR = 0x1,
BDA_NO_MONEY = 0x2,
BDA_OVERFLOW = 0x3,
+ BDA_PROHIBIT = 0x4,
};
enum e_BANKING_WITHDRAW_ACK {
BWA_SUCCESS = 0x0,
BWA_NO_MONEY = 0x1,
BWA_UNKNOWN_ERROR = 0x2,
+ BWA_PROHIBIT = 0x3,
};
/* because the client devs were replaced by monkeys. */
@@ -610,6 +612,16 @@ enum pet_evolution_result {
};
/**
+ * Inventory type for clients 2018-09-12 RE +
+ **/
+enum inventory_type {
+ INVTYPE_INVENTORY = 0,
+ INVTYPE_CART = 1,
+ INVTYPE_STORAGE = 2,
+ INVTYPE_GUILD_STORAGE = 3,
+};
+
+/**
* Structures
**/
typedef void (*pFunc)(int, struct map_session_data *); //cant help but put it first
@@ -658,6 +670,10 @@ enum stylist_shop {
STYLIST_SHOP_FAILURE
};
+enum memorial_dungeon_command {
+ COMMAND_MEMORIALDUNGEON_DESTROY_FORCE = 0x3,
+};
+
/**
* Clif.c Interface
**/
@@ -668,6 +684,7 @@ struct clif_interface {
uint16 map_port;
char map_ip_str[128];
int map_fd;
+ int cmd;
/* for clif_clearunit_delayed */
struct eri *delay_clearunit_ers;
/* Cash Shop [Ind/Hercules] */
@@ -716,6 +733,7 @@ struct clif_interface {
void (*dropitem) (struct map_session_data *sd,int n,int amount);
void (*delitem) (struct map_session_data *sd,int n,int amount, short reason);
void (*takeitem) (struct block_list* src, struct block_list* dst);
+ void (*item_movefailed) (struct map_session_data *sd, int n);
void (*item_equip) (short idx, struct EQUIPITEM_INFO *p, struct item *i, struct item_data *id, int eqp_pos);
void (*item_normal) (short idx, struct NORMALITEM_INFO *p, struct item *i, struct item_data *id);
void (*arrowequip) (struct map_session_data *sd,int val);
@@ -824,9 +842,12 @@ struct clif_interface {
void (*combo_delay) (struct block_list *bl,int wait);
void (*status_change) (struct block_list *bl,int type,int flag,int tick,int val1, int val2, int val3);
void (*insert_card) (struct map_session_data *sd,int idx_equip,int idx_card,int flag);
- void (*inventorylist) (struct map_session_data *sd);
- void (*equiplist) (struct map_session_data *sd);
- void (*cartlist) (struct map_session_data *sd);
+ void (*inventoryList) (struct map_session_data *sd);
+ void (*inventoryItems) (struct map_session_data *sd, enum inventory_type type);
+ void (*equipList) (struct map_session_data *sd);
+ void (*equipItems) (struct map_session_data *sd, enum inventory_type type);
+ void (*cartList) (struct map_session_data *sd);
+ void (*cartItems) (struct map_session_data *sd, enum inventory_type type);
void (*favorite_item) (struct map_session_data* sd, unsigned short index);
void (*clearcart) (int fd);
void (*item_identify_list) (struct map_session_data *sd);
@@ -919,6 +940,8 @@ struct clif_interface {
void (*specialeffect) (struct block_list* bl, int type, enum send_target target);
void (*specialeffect_single) (struct block_list* bl, int type, int fd);
void (*specialeffect_value) (struct block_list* bl, int effect_id, int num, send_target target);
+ void (*removeSpecialEffect) (struct block_list *bl, int effectId, enum send_target target);
+ void (*removeSpecialEffect_single) (struct block_list *bl, int effectId, struct block_list *targetBl);
void (*millenniumshield) (struct block_list *bl, short shields );
void (*spiritcharm) (struct map_session_data *sd);
void (*charm_single) (int fd, struct map_session_data *sd);
@@ -952,6 +975,7 @@ struct clif_interface {
void (*msgtable_num) (struct map_session_data *sd, enum clif_messages msg_id, int value);
void (*msgtable_skill) (struct map_session_data *sd, uint16 skill_id, enum clif_messages msg_id);
void (*msgtable_str) (struct map_session_data *sd, enum clif_messages, const char *value);
+ void (*msgtable_str_color) (struct map_session_data *sd, enum clif_messages, const char *value, uint32 color);
void (*msgtable_color) (struct map_session_data *sd, enum clif_messages, uint32 color);
void (*message) (const int fd, const char* mes);
void (*messageln) (const int fd, const char* mes);
@@ -982,7 +1006,11 @@ struct clif_interface {
void (*openvendingAck) (int fd, int result);
void (*vendingreport) (struct map_session_data* sd, int index, int amount, uint32 char_id, int zeny);
/* storage handling */
- void (*storagelist) (struct map_session_data* sd, struct item* items, int items_length);
+ void (*storageList) (struct map_session_data* sd, struct item* items, int items_length);
+ void (*guildStorageList) (struct map_session_data* sd, struct item* items, int items_length);
+ void (*storageItems) (struct map_session_data* sd, enum inventory_type type, struct item* items, int items_length);
+ void (*inventoryStart) (struct map_session_data* sd, enum inventory_type type, const char* name);
+ void (*inventoryEnd) (struct map_session_data* sd, enum inventory_type type);
void (*updatestorageamount) (struct map_session_data* sd, int amount, int max_amount);
void (*storageitemadded) (struct map_session_data* sd, struct item* i, int index, int amount);
void (*storageitemremoved) (struct map_session_data* sd, int index, int amount);
@@ -1022,8 +1050,8 @@ struct clif_interface {
void (*guild_memberlogin_notice) (struct guild *g,int idx,int flag);
void (*guild_invite) (struct map_session_data *sd,struct guild *g);
void (*guild_inviteack) (struct map_session_data *sd,int flag);
- void (*guild_leave) (struct map_session_data *sd,const char *name,const char *mes);
- void (*guild_expulsion) (struct map_session_data* sd, const char* name, const char* mes, int account_id);
+ void (*guild_leave) (struct map_session_data *sd, const char *name, int char_id, const char *mes);
+ void (*guild_expulsion) (struct map_session_data* sd, const char* name, int char_id, const char* mes, int account_id);
void (*guild_positionchanged) (struct guild *g,int idx);
void (*guild_memberpositionchanged) (struct guild *g,int idx);
void (*guild_emblem) (struct map_session_data *sd,struct guild *g);
@@ -1041,6 +1069,9 @@ struct clif_interface {
void (*guild_positionnamelist) (struct map_session_data *sd);
void (*guild_positioninfolist) (struct map_session_data *sd);
void (*guild_expulsionlist) (struct map_session_data* sd);
+ void (*guild_set_position) (struct map_session_data *sd);
+ void (*guild_position_selected) (struct map_session_data *sd);
+
bool (*validate_emblem) (const uint8* emblem, unsigned long emblem_len);
/* battleground-specific */
void (*bg_hp) (struct map_session_data *sd);
@@ -1514,11 +1545,15 @@ struct clif_interface {
bool (*style_change_validate_requirements) (struct map_session_data *sd, int type, int16 idx);
void (*stylist_send_rodexitem) (struct map_session_data *sd, int itemid);
void (*pReqStyleChange) (int fd, struct map_session_data *sd);
+ void (*pReqStyleChange2) (int fd, struct map_session_data *sd);
void (*cz_req_style_change_sub) (struct map_session_data *sd, int type, int16 idx, bool isitem);
void (*style_change_response) (struct map_session_data *sd, enum stylist_shop flag);
void (*pPetEvolution) (int fd, struct map_session_data *sd);
void (*petEvolutionResult) (int fd, enum pet_evolution_result result);
void (*party_dead_notification) (struct map_session_data *sd);
+ void (*pMemorialDungeonCommand) (int fd, struct map_session_data *sd);
+ void (*camera_showWindow) (struct map_session_data *sd);
+ void (*camera_change) (struct map_session_data *sd, float range, float rotation, float latitude, enum send_target target);
};
#ifdef HERCULES_CORE
diff --git a/src/map/duel.c b/src/map/duel.c
index 39e5b5253..c2c24e37b 100644
--- a/src/map/duel.c
+++ b/src/map/duel.c
@@ -47,7 +47,7 @@ static void duel_savetime(struct map_session_data *sd)
time(&clock);
t = localtime(&clock);
- pc_setglobalreg(sd, script->add_str("PC_LAST_DUEL_TIME"), t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min);
+ pc_setglobalreg(sd, script->add_variable("PC_LAST_DUEL_TIME"), t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min);
}
static int duel_checktime(struct map_session_data *sd)
@@ -59,7 +59,7 @@ static int duel_checktime(struct map_session_data *sd)
time(&clock);
t = localtime(&clock);
- diff = t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min - pc_readglobalreg(sd, script->add_str("PC_LAST_DUEL_TIME") );
+ diff = t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min - pc_readglobalreg(sd, script->add_variable("PC_LAST_DUEL_TIME") );
return !(diff >= 0 && diff < battle_config.duel_time_interval);
}
diff --git a/src/map/guild.c b/src/map/guild.c
index 28954edf1..757dbb445 100644
--- a/src/map/guild.c
+++ b/src/map/guild.c
@@ -721,7 +721,6 @@ static int guild_reply_invite(struct map_session_data *sd, int guild_id, int fla
}
else
{// accepted
- struct guild_member m;
struct guild* g;
int i;
@@ -741,8 +740,8 @@ static int guild_reply_invite(struct map_session_data *sd, int guild_id, int fla
return 0;
}
- guild->makemember(&m,sd);
- intif->guild_addmember(guild_id, &m);
+ guild->makemember(&g->member[i], sd);
+ intif->guild_addmember(guild_id, &g->member[i]);
//TODO: send a minimap update to this player
}
@@ -925,9 +924,9 @@ static int guild_member_withdraw(int guild_id, int account_id, int char_id, int
#endif
if(!flag)
- clif->guild_leave(online_member_sd, name, mes);
+ clif->guild_leave(online_member_sd, name, char_id, mes);
else
- clif->guild_expulsion(online_member_sd, name, mes, account_id);
+ clif->guild_expulsion(online_member_sd, name, char_id, mes, account_id);
// remove member from guild
memset(&g->member[i],0,sizeof(struct guild_member));
@@ -1129,7 +1128,7 @@ static int guild_memberposition_changed(struct guild *g, int idx, int pos)
// Update char position in client [LuzZza]
if(g->member[idx].sd != NULL)
- clif->charnameupdate(g->member[idx].sd);
+ clif->guild_position_selected(g->member[idx].sd);
return 0;
}
@@ -1165,7 +1164,7 @@ static int guild_position_changed(int guild_id, int idx, const struct guild_posi
// Update char name in client [LuzZza]
for(i=0;i<g->max_member;i++)
if(g->member[i].position == idx && g->member[i].sd != NULL)
- clif->charnameupdate(g->member[i].sd);
+ clif->guild_position_selected(g->member[i].sd);
return 0;
}
diff --git a/src/map/instance.c b/src/map/instance.c
index 8bd45ba50..1e83b0b76 100644
--- a/src/map/instance.c
+++ b/src/map/instance.c
@@ -727,6 +727,66 @@ static void instance_check_kick(struct map_session_data *sd)
}
}
+/**
+ * Look up existing memorial dungeon of the player and destroy it
+ *
+ * @param sd session data.
+ *
+ */
+static void instance_force_destroy(struct map_session_data *sd)
+{
+ nullpo_retv(sd);
+
+ for (int i = 0; i < instance->instances; ++i) {
+ switch (instance->list[i].owner_type) {
+ case IOT_CHAR:
+ {
+ if (instance->list[i].owner_id != sd->status.char_id)
+ continue;
+ break;
+ }
+ case IOT_PARTY:
+ {
+ int party_id = sd->status.party_id;
+ if (instance->list[i].owner_id != party_id)
+ continue;
+ int j = 0;
+ struct party_data *pt = party->search(party_id);
+ nullpo_retv(pt);
+
+ ARR_FIND(0, MAX_PARTY, j, pt->party.member[j].leader);
+ if (j == MAX_PARTY) {
+ ShowWarning("clif_parse_memorial_dungeon_command: trying to destroy a party instance, while the party has no leader.");
+ return;
+ }
+ if (pt->party.member[j].char_id != sd->status.char_id) {
+ ShowWarning("clif_parse_memorial_dungeon_command: trying to destroy a party instance, from a non party-leader player.");
+ return;
+ }
+ break;
+ }
+ case IOT_GUILD:
+ {
+ int guild_id = sd->status.guild_id;
+ if (instance->list[i].owner_id != guild_id)
+ continue;
+ struct guild *g = guild->search(guild_id);
+ nullpo_retv(g);
+
+ if (g->member[0].char_id != sd->status.char_id) {
+ ShowWarning("clif_parse_memorial_dungeon_command: trying to destroy a guild instance, from a non guild-master player.");
+ return;
+ }
+ break;
+ }
+ default:
+ continue;
+ }
+ instance->destroy(instance->list[i].id);
+ return;
+ }
+}
+
static void do_reload_instance(void)
{
struct s_mapiterator *iter;
@@ -810,4 +870,5 @@ void instance_defaults(void)
instance->set_timeout = instance_set_timeout;
instance->valid = instance_is_valid;
instance->destroy_timer = instance_destroy_timer;
+ instance->force_destroy = instance_force_destroy;
}
diff --git a/src/map/instance.h b/src/map/instance.h
index ff7e49a7f..91928bf40 100644
--- a/src/map/instance.h
+++ b/src/map/instance.h
@@ -96,6 +96,7 @@ struct instance_interface {
void (*set_timeout) (int instance_id, unsigned int progress_timeout, unsigned int idle_timeout);
bool (*valid) (int instance_id);
int (*destroy_timer) (int tid, int64 tick, int id, intptr_t data);
+ void (*force_destroy) (struct map_session_data *sd);
};
#ifdef HERCULES_CORE
diff --git a/src/map/intif.c b/src/map/intif.c
index 5fafc0913..ed4c0e2d2 100644
--- a/src/map/intif.c
+++ b/src/map/intif.c
@@ -513,7 +513,7 @@ static void intif_parse_account_storage(int fd)
* @packet 0x3011 [out] <packet_len>.W <account_id>.L <struct item[]>.P
* @param sd [in] pointer to session data.
*/
-static void intif_send_account_storage(const struct map_session_data *sd)
+static void intif_send_account_storage(struct map_session_data *sd)
{
int len = 0, i = 0, c = 0;
@@ -541,6 +541,8 @@ static void intif_send_account_storage(const struct map_session_data *sd)
}
WFIFOSET(inter_fd, len);
+
+ sd->storage.save = false; // Save request has been sent
}
/**
@@ -562,10 +564,9 @@ static void intif_parse_account_storage_save_ack(int fd)
if (saved == 0) {
ShowError("intif_parse_account_storage_save_ack: Storage has not been saved! (AID: %d)\n", account_id);
+ sd->storage.save = true; // Flag it as unsaved, to re-attempt later
return;
}
-
- sd->storage.save = false; // Storage has been saved.
}
//=================================================================
@@ -1324,7 +1325,7 @@ static void intif_parse_Registers(int fd)
safestrncpy(sval, RFIFOP(fd, cursor + 1), min((int)sizeof(sval), len));
cursor += len + 1;
- script->set_reg(NULL,sd,reference_uid(script->add_str(key), index), key, sval, NULL);
+ script->set_reg(NULL,sd,reference_uid(script->add_variable(key), index), key, sval, NULL);
}
/**
* Vessel!
@@ -1346,7 +1347,7 @@ static void intif_parse_Registers(int fd)
ival = RFIFOL(fd, cursor);
cursor += 4;
- script->set_reg(NULL,sd,reference_uid(script->add_str(key), index), key, (const void *)h64BPTRSIZE(ival), NULL);
+ script->set_reg(NULL,sd,reference_uid(script->add_variable(key), index), key, (const void *)h64BPTRSIZE(ival), NULL);
}
}
script->parser_current_file = NULL;/* reset */
diff --git a/src/map/intif.h b/src/map/intif.h
index 1e98d11f8..21f7a494c 100644
--- a/src/map/intif.h
+++ b/src/map/intif.h
@@ -68,7 +68,7 @@ struct intif_interface {
int (*saveregistry) (struct map_session_data *sd);
int (*request_registry) (struct map_session_data *sd, int flag);
void (*request_account_storage) (const struct map_session_data *sd);
- void (*send_account_storage) (const struct map_session_data *sd);
+ void (*send_account_storage) (struct map_session_data *sd);
int (*request_guild_storage) (int account_id, int guild_id);
int (*send_guild_storage) (int account_id, struct guild_storage *gstor);
int (*create_party) (struct party_member *member, const char *name, int item, int item2);
diff --git a/src/map/map.c b/src/map/map.c
index ce8f4cdf5..343f219b8 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -3690,6 +3690,33 @@ static void do_final_maps(void)
map->zone_db_clear();
}
+
+static void map_zonedb_reload(void)
+{
+ // first, reset maps to their initial zones:
+ for (int i = 0; i < map->count; i++) {
+ map->zone_remove(i);
+
+ if (battle_config.pk_mode) {
+ map->list[i].flag.pvp = 1;
+ map->list[i].zone = &map->zone_pk;
+ } else {
+ map->list[i].flag.pvp = 0;
+ map->list[i].zone = &map->zone_all;
+ }
+
+ map->list[i].prev_zone = map->list[i].zone;
+ }
+
+ // now it's safe to remove the zones:
+ map->zone_db_clear();
+
+ // then reload everything from scratch:
+ map->zone_db = strdb_alloc(DB_OPT_DUP_KEY | DB_OPT_RELEASE_DATA, MAP_ZONE_NAME_LENGTH);
+ map->read_zone_db();
+}
+
+
/// Initializes map flags and adjusts them depending on configuration.
static void map_flags_init(void)
{
@@ -6804,6 +6831,7 @@ void map_defaults(void)
map->zone_apply = map_zone_apply;
map->zone_change = map_zone_change;
map->zone_change2 = map_zone_change2;
+ map->zone_reload = map_zonedb_reload;
map->getcell = map_getcell;
map->setgatcell = map_setgatcell;
diff --git a/src/map/map.h b/src/map/map.h
index 207fef2ce..d50666d4b 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -789,6 +789,12 @@ struct questinfo_qreq {
int state;
};
+struct questinfo_itemreq {
+ int nameid;
+ int min;
+ int max;
+};
+
struct questinfo {
struct npc_data *nd;
unsigned short icon;
@@ -805,7 +811,7 @@ struct questinfo {
int min;
int max;
} job_level;
- VECTOR_DECL(struct item) items;
+ VECTOR_DECL(struct questinfo_itemreq) items;
struct s_homunculus homunculus;
int homunculus_type;
VECTOR_DECL(struct questinfo_qreq) quest_requirement;
@@ -1216,6 +1222,7 @@ END_ZEROED_BLOCK;
void (*zone_apply) (int m, struct map_zone_data *zone, const char* start, const char* buffer, const char* filepath);
void (*zone_change) (int m, struct map_zone_data *zone, const char* start, const char* buffer, const char* filepath);
void (*zone_change2) (int m, struct map_zone_data *zone);
+ void (*zone_reload) (void);
int (*getcell) (int16 m, const struct block_list *bl, int16 x, int16 y, cell_chk cellchk);
void (*setgatcell) (int16 m, int16 x, int16 y, int gat);
diff --git a/src/map/mapreg_sql.c b/src/map/mapreg_sql.c
index 6e8b8f9b0..516be56cb 100644
--- a/src/map/mapreg_sql.c
+++ b/src/map/mapreg_sql.c
@@ -221,7 +221,7 @@ static void script_load_mapreg(void)
SQL->StmtBindColumn(stmt, 2, SQLDT_STRING, &value, sizeof value, NULL, NULL);
while ( SQL_SUCCESS == SQL->StmtNextRow(stmt) ) {
- int s = script->add_str(varname);
+ int s = script->add_variable(varname);
int i = index;
diff --git a/src/map/messages.h b/src/map/messages.h
index fa80b835f..5bfd476a2 100644
--- a/src/map/messages.h
+++ b/src/map/messages.h
@@ -25,6 +25,10 @@
#include "map/messages_zero.h"
#elif defined(PACKETVER_RE)
#include "map/messages_re.h"
+#elif defined(PACKETVER_SAK)
+#include "map/messages_sak.h"
+#elif defined(PACKETVER_AD)
+#include "map/messages_ad.h"
#else
#include "map/messages_main.h"
#endif
diff --git a/src/map/messages_ad.h b/src/map/messages_ad.h
new file mode 100644
index 000000000..4345e078a
--- /dev/null
+++ b/src/map/messages_ad.h
@@ -0,0 +1,7310 @@
+/**
+ * This file is part of Hercules.
+ * http://herc.ws - http://github.com/HerculesWS/Hercules
+ *
+ * Copyright (C) 2013-2018 Hercules Dev Team
+ *
+ * Hercules is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef MAP_MESSAGES_AD_H
+#define MAP_MESSAGES_AD_H
+
+/* This file is autogenerated, please do not commit manual changes
+
+Latest version: 20080701
+*/
+
+enum clif_messages {
+/*20040804 to latest
+동의 하십니까?
+Do you agree?
+*/
+ MSG_DO_YOU_AGREE = 0x0,
+/*20040804 to latest
+서버 연결 실패
+Failed to Connect to Server.
+*/
+ MSG_SERVER_CONNECTION_FAILED = 0x1,
+/*20040804 to latest
+서버와 연결이 끊어졌습니다.
+Disconnected from Server.
+*/
+ MSG_UNABLE_TO_CONNECT_SERVER = 0x2,
+/*20040804 to 20080617
+서버와 연결이 끊어졌습니다.
+Disconnected from Server.
+20080624 to latest
+서버와 연결이 끊어졌습니다!
+Disconnected from Server!
+*/
+ MSG_BANNED = 0x3,
+/*20040804 to latest
+서버 종료됨
+Server Closed.
+*/
+ MSG_SERVER_OFF = 0x4,
+/*20040804 to latest
+같은 계정으로 다른 사용자가 로그인 하였습니다.
+Someone has Logged in with this ID.
+*/
+ MSG_DOUBLE_LOGIN_PROHIBITED = 0x5,
+/*20040804 to latest
+등록되지 않은 계정입니다. 다시 확인 바랍니다.
+Unregistered ID. Please make sure you have a registered account and you have correctly typed in the user ID.
+*/
+ MSG_INCORRECT_USERID = 0x6,
+/*20040804 to 20070704
+비밀번호가 틀립니다
+20070710 to latest
+입력하신 비밀번호가 올바르지 않습니다.
+Incorrect User ID or Password. Please try again.
+*/
+ MSG_INCORRECT_PASSWORD = 0x7,
+/*20040804 to latest
+본 ID 는 사용기간이 만료 되었습니다
+This ID is expired.
+*/
+ MSG_ID_EXPIRED = 0x8,
+/*20040804 to latest
+서버 접근 거부
+Rejected from Server.
+*/
+ MSG_ACCESS_DENIED = 0x9,
+/*20040804 to latest
+같은 캐릭터 이름이 있습니다.
+Character Name already exists.
+*/
+ MSG_CHARACTER_NAME_ALREADY_EXISTS = 0xa,
+/*20040804 to latest
+캐릭터 생성 거부됨
+Character Creation is denied.
+*/
+ MSG_CHARACTER_CREATION_DENIED = 0xb,
+/*20040804 to latest
+캐릭터 삭제 거부
+Character Deletion is denied.
+*/
+ MSG_CANNOT_DELETE_CHARACTER = 0xc,
+/*20040804 to latest
+방제목를 입력하세요.
+Please Enter Room Title.
+*/
+ MSG_ENTER_ROOM_TITLE = 0xd,
+/*20040804 to latest
+불량단어가 검출되었습니다.
+Foul Language Detected.
+*/
+ MSG_BAD_SENTANGE = 0xe,
+/*20040804 to latest
+암호를 입력하세요.
+Please enter Password.
+*/
+ MSG_ENTER_PASSWORD = 0xf,
+/*20040804 to latest
+암호를 영문 4자 이상 입력하세요.
+Please enter Password. Passwords must be at least 4 characters long.
+*/
+ MSG_Enter_Password_more_than_4_char = 0x10,
+/*20040804 to latest
+종료 하시겠습니까?
+Are you sure that you want to quit?
+*/
+ MSG_DO_YOU_REALLY_WANT_TO_QUIT = 0x11,
+/*20040804 to latest
+4자 이상 입력해주세요. 사용자 계정이 없으신분들은 왼쪽 하단의 [신청] 버튼을 눌러 계정을 만드시기 바랍니다.
+Passwords are at least 4 characters long. Please try again.
+*/
+ MSG_NAME_MUST_EXCEED_4_CHAR = 0x12,
+/*20040804 to 20070704
+캐릭터를 삭제하겠습니까?
+20070618 to latest
+한 번 삭제된 캐릭터 및 관련 정보는 다시 복구되지 않습니다. 캐릭터를 삭제하시겠습니까?
+Are you sure that you want to delete this character?
+*/
+ MSG_DELETE_CHARACTER = 0x13,
+/*20040804 to latest
+불량단어가 검출되었습니다.
+Foul Language Detected.
+*/
+ MSG_BAD_NAME = 0x14,
+/*20040804 to latest
+이름을 입력해 주세요.(한글 2자 영문 4자 이상)
+Character Name must be at least 4 characters long.
+*/
+ MSG_ENTER_NAME_MORE_THAN_4_CHAR = 0x15,
+/*20040804 to latest
+명령어 일람: /h
+Command List: /h | /help
+*/
+ MSG_LIST_COMMAND = 0x16,
+/*20040804 to latest
+이펙트 On
+Effects On
+*/
+ MSG_EFFECT_ON = 0x17,
+/*20040804 to latest
+이펙트 Off
+Effects Off
+*/
+ MSG_EFFECT_OFF = 0x18,
+/*20040804 to latest
+사운드 볼륨
+Sound Volume
+*/
+ MSG_VOLUME_OF_SOUND = 0x19,
+/*20040804 to latest
+배경음악 볼륨
+BGM Volume
+*/
+ MSG_VOLUME_OF_BGM = 0x1a,
+/*20040804 to latest
+효과음 On
+Sound Effects On
+*/
+ MSG_SOUND_ON = 0x1b,
+/*20040804 to latest
+효과음 Off
+Sound Effects Off
+*/
+ MSG_SOUND_OFF = 0x1c,
+/*20040804 to latest
+프레임스킵 On
+Frame Skip On
+*/
+ MSG_FRAME_SKIP_ON = 0x1d,
+/*20040804 to latest
+프레임스킵 Off
+Frame Skip Off
+*/
+ MSG_FRAME_SKIP_OFF = 0x1e,
+/*20040804 to latest
+배경음악 On
+BGM On
+*/
+ MSG_BGM_ON = 0x1f,
+/*20040804 to latest
+배경음악 Off
+BGM Off
+*/
+ MSG_BGM_OFF = 0x20,
+/*20040804 to latest
+/h or /help: 명령어 일람
+/h or /help: Shows this Command Help List
+*/
+ MSG_EXPLAIN_HELP = 0x21,
+/*20040804 to latest
+/w or /who or /접속자 or /누구: 현재 접속자수 보기
+/w or /who or /player or /who: wiew current the number of player
+*/
+ MSG_EXPLAIN_WHO = 0x22,
+/*20040804 to latest
+/음악 : 배경음악 On Off
+/music: Turns BGM On or Off
+*/
+ MSG_EXPLAIN_MUSIC = 0x23,
+/*20040804 to latest
+/효과음 : 효과음 On Off
+/sound: Turns Sound Effects On or Off
+*/
+ MSG_EXPLAIN_SOUND = 0x24,
+/*20040804 to latest
+/이펙트 : 이펙트 On Off
+/effect: Effects On or Off
+*/
+ MSG_EXPLAIN_EFFECT = 0x25,
+/*20040804 to latest
+/좌표 or /장소: 현재 위치 표시
+/where: Shows your present location
+*/
+ MSG_EXPLAIN_POS = 0x26,
+/*20040804 to latest
+/skip : 프래임스킵 On Off
+/skip: Turns Frame Skip On or Off
+*/
+ MSG_EXPLAIN_FRAMESKIP = 0x27,
+/*20040804 to latest
+/v (0~127): 효과음 볼륨조정
+/v (0~127): Controls the volume of the Sound Effects
+*/
+ MSG_EXPLAIN_SOUNDVOLUME = 0x28,
+/*20040804 to latest
+/bv (0~127): 배경음악 볼륨조정
+/bv (0~127): Controls the volume of the BGM
+*/
+ MSG_EXPLAIN_BGMVOLUME = 0x29,
+/*20040804 to latest
+/ex (캐릭터이름) or /차단 (캐릭터이름) : 해당캐릭터에 대해 귓말차단
+/ex (Character Name): Blocks whispering from the Character
+*/
+ MSG_EXPLAIN_SAYISOLATION = 0x2a,
+/*20040804 to latest
+/ex or /차단 : 귓말차단 캐릭터 리스트
+/ex: View a list of Characters you have Blocked
+*/
+ MSG_EXPLAIN_LIST_SAYISOLATION_CHAR = 0x2b,
+/*20040804 to latest
+/in (캐릭터이름) or /해제 (캐릭터이름) : 해당캐릭터에 대해 귓말허용
+/in (Character Name): Allows whispering from the Character
+*/
+ MSG_EXPLAIN_SAY_PERMIT = 0x2c,
+/*20040804 to latest
+/inall or /해제전부 : 모두에게 귓말허용
+/inall: Allows whispers from anyone
+*/
+ MSG_EXPLAIN_SAY_PERMITALL = 0x2d,
+/*20040804 to latest
+/exall or /차단전부 : 모두에게 귓말차단
+/exall: Blocks whispers from everyone
+*/
+ MSG_EXPLAIN_SAY_ISOLATEALL = 0x2e,
+/*20040804 to latest
+다른유저 캐릭터를 마우스 오른버튼을 누르고 있는 상태에서 왼버튼으로 클릭하면 그캐릭터이름이 귓말콤보박스에 저장됩니다.
+Right click on a character and select [Register as a Friend] to add a person to your Friend List.
+*/
+ MSG_EXPLAIN_TIP1 = 0x2f,
+/*20040804 to latest
+단축아이탬창(F12) 소비장비 아이템을 드래그한후 사용하세요. 사용키(F1F2F3F4F5F6F7F8F9)
+F12 Brings up a Hotkey Window which allows you to drag and drop Recovery Items, Equipment and Skills into it for faster access.
+*/
+ MSG_EXPLAIN_TIP2 = 0x30,
+/*20040804 to latest
+같은말을 3번이상 연속해서 전송할 수 없습니다.
+You can't type the same word/phrase more than 3 times.
+*/
+ MSG_NO_SAME_SENTANCE = 0x31,
+/*20040804 to latest
+불량단어 검출로 전송이 중단 되었습니다.
+Chat Filter: Yeah, uh, I don't think so buddy...
+*/
+ MSG_NO_SEND_BECAUSE_INSULT = 0x32,
+/*20040804 to latest
+같은아이템은 한번만 올릴수 있습니다.
+You cannot overlap items on a window.
+*/
+ MSG_CAN_DRAG_ITEM_OLNY_ONETIME = 0x33,
+/*20040804 to latest
+무게가 초과하여 아이템을 가질 수 없습니다.
+You cannot carry more items because you are overweight.
+*/
+ MSG_CANT_GET_ITEM_BECAUSE_WEIGHT = 0x34,
+/*20040804 to latest
+아이템을 가질 수 없습니다.
+You cannot get the item.
+*/
+ MSG_CANT_GET_ITEM = 0x35,
+/*20040804 to latest
+거래가 잘 이루어졌습니다.
+The deal has successfully completed.
+*/
+ MSG_DEAL_SECCESS = 0x36,
+/*20040804 to latest
+돈이 부족합니다.
+You do not have enough zeny.
+*/
+ MSG_INSUFFICIENT_MONEY = 0x37,
+/*20040804 to latest
+무게가 초과 되었습니다.
+You are over your Weight Limit.
+*/
+ MSG_OVER_WEIGHT = 0x38,
+/*20040804 to latest
+거래가 실패 했습니다.
+The deal has failed.
+*/
+ MSG_DEAL_FAIL = 0x39,
+/*20040804 to latest
+모두에게 귓말거부상태로됨
+You've blocked whispers from everyone.
+*/
+ MSG_REFUSE_HEAR_ALL = 0x3a,
+/*20040804 to latest
+모두에게 귓말거부요청 실패함
+You've failed to block all whispers.
+*/
+ MSG_REQ_REFUSE_HEAR_ALL_FAIL = 0x3b,
+/*20040804 to latest
+모두에게 귓말가능상태가됨
+You've allowed whispers from everyone.
+*/
+ MSG_HEAR_ALL = 0x3c,
+/*20040804 to latest
+모두에게 귓말가능요청 실패함
+You've failed to allow all whispers.
+*/
+ MSG_REQ_HEAR_ALL_FAIL = 0x3d,
+/*20040804 to latest
+귓말 거부 리스트가 없습니다
+You have no Block List.
+*/
+ MSG_NO_REFUSE_HEAR_LIST = 0x3e,
+/*20040804 to latest
+-귓말 거부 리스트-
+[ Character Block List ]
+*/
+ MSG_REFUSE_HEAR_LIST = 0x3f,
+/*20040804 to latest
+방이 잘 만들어 졌습니다.
+Room has been successfully created.
+*/
+ MSG_ROOM_IS_MADE = 0x40,
+/*20040804 to latest
+방갯수가 허용갯수를 초과 하였습니다.
+Room Limit Exceeded.
+*/
+ MSG_TOO_MANY_ROOM = 0x41,
+/*20040804 to latest
+같은 방제목이 있습니다.
+Same Room exists.
+*/
+ MSG_SAME_ROOM_TITLE = 0x42,
+/*20040804 to latest
+인원초과로 방에 들어갈 수 없습니다.
+The Room is full.
+*/
+ MSG_TOO_MANY_PEOPLE_IN_ROOM = 0x43,
+/*20040804 to latest
+강제로 퇴장된 방입니다.
+You have been kicked out of this room.
+*/
+ MSG_YOU_HAVE_BANNED_FROM_THE_ROOM = 0x44,
+/*20040804 to latest
+교환요청을 거절 했습니다.
+The deal has been rejected.
+*/
+ MSG_REJECT_DEAL = 0x45,
+/*20040804 to latest
+교환가능거리를 벗어났습니다.
+You are too far away from the person to trade.
+*/
+ MSG_TOO_FAR_TO_DEAL = 0x46,
+/*20040804 to latest
+해당 캐릭터가 없습니다.
+The Character is not currently online or does not exist.
+*/
+ MSG_CHARACTER_IS_NOT_EXIST = 0x47,
+/*20040804 to latest
+다른캐릭터와 교환중입니다.
+The person is in another deal.
+*/
+ MSG_CHARACTER_IS_DEALING = 0x48,
+/*20040804 to latest
+상태캐릭터 중량초과로 올려놓을수가 없습니다.
+*/
+ MSG_CHARACTER_IS_OVER_WEIGHT = 0x49,
+/*20040804 to latest
+거래가 취소 되었습니다.
+The deal has been canceled.
+*/
+ MSG_DEAL_IS_CANCELED = 0x4a,
+/*20040804 to latest
+아이템 교환이 잘 되었습니다.
+The deal has successfully completed.
+*/
+ MSG_DEAL_SUCCESS = 0x4b,
+/*20040804 to latest
+아이템 교환이 실패 하였습니다.
+The deal has failed.
+*/
+ MSG_DEAL_FAILED = 0x4c,
+/*20040804 to latest
+파티가 만들어졌습니다.
+Party has successfully been organized.
+*/
+ MSG_PARTY_MAKE_SUCCEED = 0x4d,
+/*20040804 to latest
+같은 파티이름이 있습니다.
+That Party Name already exists.
+*/
+ MSG_SAME_PARTY_NAME = 0x4e,
+/*20040804 to latest
+이미 파티에 속해있습니다.
+The Character is already in a party.
+*/
+ MSG_YOU_ARE_ALREADY_IN_PARTY = 0x4f,
+/*20040804 to latest
+다른파티에 가입되어 있습니다.
+The Character already joined another party.
+*/
+ MSG_CHARACTER_IS_ALREADY_IN_PARTY = 0x50,
+/*20040804 to latest
+파티가입을 거부했습니다.
+Request for party rejected.
+*/
+ MSG_CHARACTER_REJECT_JOIN = 0x51,
+/*20040804 to latest
+파티가입을 수락했습니다.
+Request for party accepted.
+*/
+ MSG_CHARACTER_ACCEPT_JOIN = 0x52,
+/*20040804 to latest
+파티정원을 초과했습니다.
+Party Capacity exceeded.
+*/
+ MSG_TOO_MANY_PEOPLE_IN_PARTY = 0x53,
+/*20040804 to latest
+파티에서 탈퇴하였습니다.
+You left the party.
+*/
+ MSG_YOU_LEAVE_FROM_PARTY = 0x54,
+/*20040804 to latest
+전체에게 보냄
+Send to All
+*/
+ MSG_SEND_TO_ALL = 0x55,
+/*20040804 to latest
+파티에게 보냄
+Send to Party
+*/
+ MSG_SEND_TO_PARTY = 0x56,
+/*20040804 to latest
+님과의 거래요청
+Request a deal with %s
+*/
+ MSG_REQ_DEAL_WITH = 0x57,
+/*20040804 to latest
+님 파티에 가입요청
+Ask %s to join your party
+*/
+ MSG_REQ_JOIN_PARTY = 0x58,
+/*20040804 to latest
+비공개 :
+Pri:
+*/
+ MSG_ROOM_PRIVATE = 0x59,
+/*20040804 to latest
+공개 :
+Pub:
+*/
+ MSG_ROOM_PUBLIC = 0x5a,
+/*20040804 to latest
+마지막 체크지점부터 시작하려면 '재시작'을 캐릭터 선택으로 돌아가려면 '종료'를 눌러주세요.
+Click ''Restart'' to go back to your save point or click ''Exit'' to select another character.
+*/
+ MSG_RESTART_MSG = 0x5b,
+/*20040804 to latest
+원하는 거래를 선택하세요.
+Please select a Deal Type.
+*/
+ MSG_SELECT_DEAL_TYPE = 0x5c,
+/*20040804 to latest
+님이 거래를 요청했습니다.
+ requests a deal.
+*/
+ MSG_SUGGEST_DEAL = 0x5d,
+/*20040804 to latest
+ 파티에서 초청 메시지가 왔습니다. 합류하겠습니까?
+ Party has sent you an invitation. Would you like to join?
+*/
+ MSG_SUGGEST_JOIN_PARTY = 0x5e,
+/*20040804 to latest
+명령이 틀렸습니다.
+Invalid Command
+*/
+ MSG_INVALID_COMMAND = 0x5f,
+/*20040804 to latest
+탈퇴하기
+Leave party
+*/
+ MSG_LEAVE_PARTY = 0x60,
+/*20040804 to latest
+제명시키기
+Expel
+*/
+ MSG_EXPEL = 0x61,
+/*20040804 to latest
+쪽지보내기
+Send Message
+*/
+ MSG_MSG = 0x62,
+/*20040804 to latest
+1:1 대화
+1:1 Chat
+*/
+ MSG_1ON1 = 0x63,
+/*20040804 to latest
+정보
+Information
+*/
+ MSG_CHARACTER_INFO = 0x64,
+/*20040804 to latest
+파티설정
+Party Setup
+*/
+ MSG_PARTY_SETTING = 0x65,
+/*20040804 to latest
+친구
+Friend
+*/
+ MSG_FRIEND = 0x66,
+/*20040804 to latest
+파티
+Party
+*/
+ MSG_PARTY = 0x67,
+/*20040804 to latest
+장착아이템
+Equipment
+*/
+ MSG_EQUIPED_ITEM = 0x68,
+/*20040804 to latest
+스테이터스
+Status
+*/
+ MSG_STATUS_ = 0x69,
+/*20040804 to latest
+소지아이템
+Inventory
+*/
+ MSG_ITEM = 0x6a,
+/*20040804 to latest
+/결성 [파티이름] : 파티결성 /탈퇴 : 파티탈퇴
+/organize ''Party Name'' To organize a party. Type /leave To leave a Party.
+*/
+ MSG_EXPLAIN_PARTY = 0x6b,
+/*20040804 to latest
+자신이 파티리더일때 캐릭터를 오른버튼으로 클릭하면 파티에 가입요청하기 메뉴가 뜹니다.
+If you are the party master, you can invite someone into your party by right-clicking on a Character.
+*/
+ MSG_EXPLAIN_TIP3 = 0x6c,
+/*20040804 to latest
+회복
+Consumables
+*/
+ MSG_RESTORE = 0x6d,
+/*20040804 to latest
+공격
+Attack
+*/
+ MSG_ATTACK = 0x6e,
+/*20040804 to latest
+보조
+Support
+*/
+ MSG_SUPPORT = 0x6f,
+/*20040804 to latest
+전체
+All
+*/
+ MSG_ALL = 0x70,
+/*20040804 to latest
+무기
+Weapons
+*/
+ MSG_WEAPON = 0x71,
+/*20040804 to latest
+방어
+Defense
+*/
+ MSG_DEFENCE = 0x72,
+/*20040804 to latest
+수
+Water
+*/
+ MSG_WATER = 0x73,
+/*20040804 to latest
+지
+Earth
+*/
+ MSG_EARTH = 0x74,
+/*20040804 to latest
+화
+Fire
+*/
+ MSG_FIRE = 0x75,
+/*20040804 to latest
+풍
+Wind
+*/
+ MSG_WIND = 0x76,
+/*20040804 to latest
+같은종류의 장비아이템은 한번에 한개만 살 수 있습니다.
+Please avoid buying 2 of the same items at one time.
+*/
+ MSG_EQUIPITEM_OLNY_ONE = 0x77,
+/*20040804 to latest
+창모드에서 실행 할때는 16비트 컬러로 맞춰주세요.
+Please change your desktop Color Depth to 16-bit when running Ragnarok in windowed mode.
+*/
+ MSG_ONLY_16BIT_WHEN_WINDOWMODE = 0x78,
+/*20040804 to latest
+잠시만 기다려 주세요.
+Please wait...
+*/
+ MSG_PLEASE_BE_PATIENT = 0x79,
+/*20040804 to latest
+잠시만 기다려 주세요.
+Please wait...
+*/
+ MSG_WAITING_RESPONSE_FROM_SERVER = 0x7a,
+/*20040804 to latest
+잠시만 기다려 주세요.
+Please wait...
+*/
+ MSG_MAKING_CHARACTER = 0x7b,
+/*20040804 to latest
+잠시만 기다려 주세요.
+Please wait...
+*/
+ MSG_DELETING_CHARACTER = 0x7c,
+/*20040804 to latest
+방 만들기
+Make a Room
+*/
+ MSG_MAKING_ROOM = 0x7d,
+/*20040804 to latest
+방셋팅 바꾸기
+Room Setup
+*/
+ MSG_CHANGE_ROOM_SETTING = 0x7e,
+/*20040804 to latest
+강퇴시키기
+Kick Character Out
+*/
+ MSG_BAN = 0x7f,
+/*20040804 to latest
+방장권한 주기
+Give Master Authority
+*/
+ MSG_GIVE_GIVE_ROOM_POWER = 0x80,
+/*20040804 to latest
+정보보기
+View Information
+*/
+ MSG_SEE_INFORMATION_OF_CHARACTER = 0x81,
+/*20040804 to latest
+대화방
+Chat Room
+*/
+ MSG_CHAT_ROOM = 0x82,
+/*20040804 to latest
+명
+Ppl
+*/
+ MSG_COUNT_UNIT_OF_PEOPLE = 0x83,
+/*20040804 to latest
+/앉기 or /sit : 앉기. 앉아있을때 서기
+/sit: Sit command. If you are sitting, you will stand instead.
+*/
+ MSG_EXPLAIN_SIT = 0x84,
+/*20040804 to latest
+/서기 or /stand : 서기. 서있을때 앉기
+/stand: Stand command. If you are standing, you will sit instead.
+*/
+ MSG_EXPLAIN_STAND = 0x85,
+/*20040804 to latest
+/채팅방 or /chat : 채팅방 만들기창 띄우기
+/chat: Creates a Chat Room
+*/
+ MSG_EXPLAIN_MAKE_CHAT = 0x86,
+/*20040804 to latest
+/q : 채팅방 나가기.
+/q: Leaves a Chat Room
+*/
+ MSG_EXPLAIN_EXIT_CHAT_ROOM = 0x87,
+/*20040804 to latest
+/거래 [캐릭터이름] or /교환 [캐릭터이름] or /deal [캐릭터이름] : 해당 캐릭터와 거래요청
+/deal ''Character Name'' Requests a deal with a character
+*/
+ MSG_EXPLAIN_DEAL = 0x88,
+/*20040804 to latest
+/결성 [파티이름] or /organize [파티이름] : 파티결성
+/organize ''Party Name'' Organizes a party
+*/
+ MSG_EXPLAIN_ORGANIZE_PARTY = 0x89,
+/*20040804 to latest
+/탈퇴 or /leave : 파티 탈퇴
+/leave: Leaves a party
+*/
+ MSG_EXPLAIN_LEAVE_PARTY = 0x8a,
+/*20040804 to latest
+/제명 [캐릭터이름] or /expel [캐릭터이름] : 해당캐릭터를 파티에서 제명시킴
+/expel ''Character Name'' kicks a Character out of your party
+*/
+ MSG_EXPLAIN_EXPEL_PARTY_MEMBER = 0x8b,
+/*20040804 to latest
+[Alt] + [End] : 플레이어 hp/sp 게이지 On Off
+[Alt] + [End]: Turns HP/SP Bar On or Off
+*/
+ MSG_EXPLAIN_TIP4 = 0x8c,
+/*20040804 to latest
+[Alt] + [Home] : 지면 커서 표시 On Off
+[Alt] + [Home]: Turns Ground Cursor On or Off
+*/
+ MSG_EXPLAIN_TIP5 = 0x8d,
+/*20040804 to latest
+[Insert] : 앉기 서기
+[Insert]: Makes you sit or stand. (Hotkey to toggle between /sit and /stand)
+*/
+ MSG_EXPLAIN_TIP6 = 0x8e,
+/*20040804 to latest
+MVP가 되셨습니다!! MVP 아이템은
+Congratulations! You are the MVP! Your reward item is
+*/
+ MSG_YOU_RECEIVE_MVP_ITEM = 0x8f,
+/*20040804 to latest
+ !!
+!!
+*/
+ MSG_YOU_RECEIVE_MVP_ITEM2 = 0x90,
+/*20040804 to latest
+MVP가 되셨습니다!! 특별경험치
+Congratulations! You are the MVP! Your reward EXP Points are
+*/
+ MSG_YOU_RECEIVE_MVP_EXP = 0x91,
+/*20040804 to latest
+ 획득!!
+!!
+*/
+ MSG_YOU_RECEIVE_MVP_EXP2 = 0x92,
+/*20040804 to latest
+MVP가 되셨습니다만 무게초과로 MVP 아이템을 가질 수 없었습니다!!
+You are the MVP, but you can't take the reward because you are over your weight limit.
+*/
+ MSG_YOU_THROW_MVPITEM = 0x93,
+/*20040804 to latest
+ 없는 캐릭터 이름 입니다.
+There is no such character name or the user is offline.
+*/
+ MSG_NOT_EXIST_CHARACTER = 0x94,
+/*20040804 to latest
+ 수신 거부 상태입니다.
+ doesn't want to receive your messages.
+*/
+ MSG_NO_RECEIVE_MODE = 0x95,
+/*20040804 to latest
+ 모든 캐릭터에 대해 수신 거부 상태 입니다.
+ is not in the mood to talk with anyone.
+*/
+ MSG_NO_RECEIVE_MODE_FOR_ALL = 0x96,
+/*20040804 to latest
+캐릭터 접속끊기 성공.
+Killed/Disconnected User.
+*/
+ MSG_SUCCESS_DISCONNECT_CHARACTER = 0x97,
+/*20040804 to latest
+캐릭터 접속끊기 실패.
+Kill has failed.
+*/
+ MSG_FAIL_DISCONNECT_CHARACTER = 0x98,
+/*20040804 to latest
+%s %d 개 획득
+You got %s (%d).
+*/
+ MSG_GET_ITEM = 0x99,
+/*20040804 to latest
+[Alt] + [=] : 알파벳 간격이 넓어졌을때 되돌리기.
+[Alt] + [=]: Fix the interval error between letters.
+*/
+ MSG_EXPLAIN_TIP7 = 0x9a,
+/*20040804 to latest
+[F10] : 채팅창 크기조정 [Alt] + [F10] : 채팅창 On Off
+[F10]: To toggle Chat Window size; [Alt] + [F10]: Toggle Chat Window On or Off
+*/
+ MSG_EXPLAIN_TIP8 = 0x9b,
+/*20040804 to latest
+귓속말 하는법 : 채팅창 왼쪽 입력란에 캐릭터이름을 입력하고 오른쪽 입력란에 말을 입력하면 됩니다. TAB키로 두입력란 사이로 커서를 이동할 수 있습니다.
+How to Whisper: Enter a Character's Name on the left side of chat window and type your message on the right side. The Tab key helps you move between these boxes.
+*/
+ MSG_EXPLAIN_TIP9 = 0x9c,
+/*20040804 to latest
+/! /? /기쁨 /하트 /땀 /아하 /짜증 /화 /돈 /... /가위 /바위 /보 : Alt + (1~9) Ctrl + (-=\) 에 대응되는 명령어 입니다.
+/!,/?,/ho,/lv,/lv2,/swt,/ic,/an,/ag,/$,/….,/thx,/wah,/sry,/heh,/swt2,/hmm,/no1,/??,/omg,/oh,/X,/hp,/go,/sob,/gg,/kis,/kis2,/pif,/ok: Emotion icons corresponding to Alt + (1~9) Ctrl + (-=\\)
+*/
+ MSG_EXPLAIN_TIP10 = 0x9d,
+/*20040804 to latest
+파티원에게 말하는법 : 말의 제일앞에 '%'를 붙이면 파티원에게 말이 갑니다. (예: "%안녕")
+How to Speak to Party: Add % in front of every message.(Example: \%Hello\)
+*/
+ MSG_EXPLAIN_TIP11 = 0x9e,
+/*20040804 to latest
+스킬레벨이 부족합니다. 교환 불능.
+You haven't learned enough Basic Skills to Trade.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE1 = 0x9f,
+/*20040804 to latest
+스킬레벨이 부족합니다. 이모션 불능.
+You haven't learned enough Basic Skills to use Emotion icons.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE2 = 0xa0,
+/*20040804 to latest
+스킬레벨이 부족합니다. 앉기 불능.
+You haven't learned enough Basic Skills to Sit.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE3 = 0xa1,
+/*20040804 to latest
+스킬레벨이 부족합니다. 채팅방만들기 불능.
+You haven't learned enough Basic Skills to create a chat room.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE4 = 0xa2,
+/*20040804 to latest
+스킬레벨이 부족합니다. 파티만들기 불능
+You haven't learned enough Basic Skills to Party.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE5 = 0xa3,
+/*20040804 to latest
+스킬레벨이 부족합니다. 외치기 불능
+You haven't learned enough skills to Shout.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE6 = 0xa4,
+/*20040804 to latest
+스킬레벨이 부족합니다. pk 불능
+You haven't learned enough skills for Pking.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE7 = 0xa5,
+/*20040804 to latest
+사고자하는 품목
+Buying Items
+*/
+ MSG_ITEMS_FOR_BUY = 0xa6,
+/*20040804 to latest
+아이템 상점
+Item Shop
+*/
+ MSG_ITEM_STORE = 0xa7,
+/*20040804 to latest
+팔고자하는 품목
+Selling Items
+*/
+ MSG_ITEMS_FOR_SELL = 0xa8,
+/*20040804 to latest
+보관아이템
+Storage
+*/
+ MSG_ITEMS_THAT_IS_STORED = 0xa9,
+/*20040804 to latest
+ 장비가 장착 되었습니다.
+ is put on.
+*/
+ MSG_ITEM_IS_EQUIPED = 0xaa,
+/*20040804 to latest
+ 장비가 해제 되었습니다.
+ is taken off.
+*/
+ MSG_ITEM_IS_REMOVED = 0xab,
+/*20040804 to latest
+귓말리스트에 이름넣기
+To add names on the Whispering List
+*/
+ MSG_ADD_TO_WHISPER_CHAR_LIST = 0xac,
+/*20040804 to latest
+스크린샷 찍는법 : [Print Screen]키나 [Scroll Lock]키를 누르면 됩니다.
+How to Take Screen Shots: Press [Print Screen] or [Scroll Lock]
+*/
+ MSG_EXPLAIN_TIP12 = 0xad,
+/*20040804 to latest
+오늘의 팁
+Tip of the Day
+*/
+ MSG_TIPOFTHEDAY = 0xae,
+/*20040804 to latest
+^3850a0알고 계셨습니까... ^000000 //^709fed
+^3850a0Did you know...?^709fed
+*/
+ MSG_DIDYOUKNOW = 0xaf,
+/*20040804 to latest
+시작할때 열기
+Display at startup
+*/
+ MSG_SHOWTIPSATSTARTUP = 0xb0,
+/*20040804 to latest
+/tip : 오늘의팁 열기
+/tip: Opens ''Tip of the Day''
+*/
+ MSG_EXPLAIN_OPENTIP = 0xb1,
+/*20040804 to latest
+현재 접속자 %d명
+There are %d Players Currently Connected.
+*/
+ MSG_NUMPEOPLE = 0xb2,
+/*20040804 to latest
+(%s)님이 입장 하였습니다.
+(%s) has entered.
+*/
+ MSG_USERGETINTHEROOM = 0xb3,
+/*20040804 to latest
+(%s)님이 퇴장 하였습니다.
+(%s) has left.
+*/
+ MSG_USERGETOUTOFTHEROOM = 0xb4,
+/*20040804 to latest
+(%s)님이 강제 퇴장 되었습니다.
+(%s) was kicked out.
+*/
+ MSG_USERGETOUTOFTHEROOMBYFORCE = 0xb5,
+/*20040804 to latest
+ %d 개
+%d ea.
+*/
+ MSG_EA = 0xb6,
+/*20040804 to latest
+%s : %d 개
+%s: %d ea.
+*/
+ MSG_EA2 = 0xb7,
+/*20040804 to latest
+%s %s : %d 개
+%s %s: %d
+*/
+ MSG_EA3 = 0xb8,
+/*20040804 to latest
+팔 수 있는 품목
+Available Items to sell
+*/
+ MSG_ITEMSYOUCANSELL = 0xb9,
+/*20040804 to latest
+상점에서 파는 품목
+Shop Items
+*/
+ MSG_SHOPITEMS = 0xba,
+/*20040804 to latest
+알 수 없는곳
+Unknown Area
+*/
+ MSG_NOWHERE = 0xbb,
+/*20040804 to latest
+서버와 언어가 맞지 않습니다.
+Your Client language doesn't match the Server language.
+*/
+ MSG_CLIENTTYPEMISMATCH = 0xbc,
+/*20040804 to latest
+아이템을 버릴려면 장비창을 닫으세요.
+Please move your equipment to the inventory. And close the equipment window.
+*/
+ MSG_CLOSEEQUIPWND = 0xbd,
+/*20040804 to latest
+영어만 됩니다.
+This server provides English Text Characters Only.
+*/
+ MSG_ENGLISHONLY = 0xbe,
+/*20040804 to latest
+지금은 지원되지 않습니다.
+This is not implemented yet.
+*/
+ MSG_NOTSUPPORTEDYET = 0xbf,
+/*20040804 to latest
+귓말 리스트가 없습니다.
+No Whisper List.
+*/
+ MSG_NOWHISPERLIST = 0xc0,
+/*20040804 to latest
+ 에게 귓말거부상태로됨
+: Whispering Blocked.
+*/
+ MSG_WHISPERIGNORESUCCESS = 0xc1,
+/*20040804 to latest
+ 에게 귓말거부 요청실패함
+: Whispering Block has failed.
+*/
+ MSG_WHISPERIGNOREFAILED1 = 0xc2,
+/*20040804 to latest
+ 에게 귓말거부 요청실패함 (인원초과)
+: Whispering Block has failed. Block List is full.
+*/
+ MSG_WHISPERIGNOREFAILED2 = 0xc3,
+/*20040804 to latest
+ 에게 귓말가능상태로됨
+: Whispering accepted.
+*/
+ MSG_WHISPERNOIGNORESUCCESS = 0xc4,
+/*20040804 to latest
+ 에게 귓말가능 요청실패함
+: Command has failed.
+*/
+ MSG_WHISPERNOIGNOREFAILED1 = 0xc5,
+/*20040804 to latest
+ 에게 귓말가능 요청실패함 (인원초과)
+: Command has failed. Block List is full.
+*/
+ MSG_WHISPERNOIGNOREFAILED2 = 0xc6,
+/*20040804 to latest
+이름의 처음과 마지막에는 공백문자를 사용할 수 없습니다.
+You cannot put a space at the beginning or end of a name.
+*/
+ MSG_NO_SPACE_IN_NAME = 0xc7,
+/*20040804 to latest
+비공개
+Private
+*/
+ MSG_ROOM_PRIVATE2 = 0xc8,
+/*20040804 to latest
+공개
+Public
+*/
+ MSG_ROOM_PUBLIC2 = 0xc9,
+/*20040804 to latest
+SP가 부족합니다.
+Not Enough SP
+*/
+ MSG_USESKILL_FAIL_SP_INSUFFICIENT = 0xca,
+/*20040804 to latest
+HP가 부족합니다.
+Not Enough HP
+*/
+ MSG_USESKILL_FAIL_HP_INSUFFICIENT = 0xcb,
+/*20040804 to latest
+스킬사용 실패.
+Skill has failed.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE8 = 0xcc,
+/*20040804 to latest
+훔치기 실패.
+Steal has failed.
+*/
+ MSG_FAIL_STEAL = 0xcd,
+/*20040804 to latest
+교환창
+Trade
+*/
+ MSG_EXCHANGE = 0xce,
+/*20040804 to latest
+독걸기 실패.
+Envenom skill has failed.
+*/
+ MSG_FAIL_POISON = 0xcf,
+/*20040804 to latest
+이 아이디로는 이 서버에 접속할 수 없습니다.
+You cannot use this ID on this server.
+*/
+ MSG_ID_MISMATCH = 0xd0,
+/*20040804 to latest
+스피드가 향상되었습니다.
+Your Speed has increased.
+*/
+ MSG_SPEEDUP = 0xd1,
+/*20040804 to latest
+스피드가 감소되었습니다.
+Your Speed has decreased.
+*/
+ MSG_SPEEDDOWN = 0xd2,
+/*20040804 to latest
+/기억 : 워프할 장소 기억(워프 스킬이 있는경우)
+/memo: To memorize a place as Warp Point (If you are an Acolyte Class character)
+*/
+ MSG_EXPLAIN_TIP13 = 0xd3,
+/*20040804 to latest
+임의의 위치
+Random Area
+*/
+ MSG_RANDOM_POS = 0xd4,
+/*20040804 to latest
+워프 할 위치를 선택하세요.
+Select an Area to Warp
+*/
+ MSG_SELECTWHERETOWARP = 0xd5,
+/*20040804 to latest
+스킬레벨이 부족합니다.
+Skill Level is not high enough
+*/
+ MSG_NOTENOUGHSKILLLEVEL = 0xd6,
+/*20040804 to latest
+저장된 워프할 장소가 없습니다.
+There are no memorized locations (Memo Points).
+*/
+ MSG_NO_STORED_PLACE_TO_WARP = 0xd7,
+/*20040804 to latest
+워프 관련 스킬이 없습니다.
+You haven't learned Warp.
+*/
+ MSG_NOWARPSKILL = 0xd8,
+/*20040804 to latest
+워프 장소로 저장됨.
+Saved location as a Memo Point for Warp Skill.
+*/
+ MSG_WARPPOINTSTORED = 0xd9,
+/*20040804 to latest
+취소
+Cancel
+*/
+ MSG_CANCEL = 0xda,
+/*20040804 to latest
+스킬 사용후 시간이 충분히 지나지 않았습니다.
+There is a Delay after using a Skill.
+*/
+ MSG_SKILLINTERVAL = 0xdb,
+/*20040804 to latest
+한번에 가질 수 있는 아이템 종류수를 초과하여 아이템을 가질 수 없습니다.
+You can't have this item because you will exceed the weight limit.
+*/
+ MSG_CANT_GET_ITEM_BECAUSE_COUNT = 0xdc,
+/*20040804 to latest
+아이템 최대 종류수를 초과 하였습니다.
+Out of the maximum capacity
+*/
+ MSG_INSUFFICIENT_OVER_COUNT = 0xdd,
+/*20040804 to latest
+수레아이템
+Cart Items
+*/
+ MSG_MERCHANTITEM = 0xde,
+/*20040804 to latest
+수레 벗기
+Take off Cart
+*/
+ MSG_CARTOFF = 0xdf,
+/*20040804 to latest
+노점 개설
+Opening a stall
+*/
+ MSG_MERCHANTSHOPMAKER = 0xe0,
+/*20040804 to 20041207
+노점이름를 입력하세요.
+20041213 to latest
+노점이름을 입력하세요.
+Please Name your Shop.
+*/
+ MSG_ENTER_SHOP_TITLE = 0xe1,
+/*20040804 to latest
+나의 노점
+My Shop
+*/
+ MSG_ITEM_MY_STORE = 0xe2,
+/*20040804 to latest
+상인 아이템 상점
+Merchant Shop
+*/
+ MSG_ITEM_MERCHANT_STORE = 0xe3,
+/*20040804 to latest
+상인에게 사고자하는 품목
+Buying Items
+*/
+ MSG_ITEMS_FOR_BUY_FROM_MERCHANT = 0xe4,
+/*20040804 to latest
+%s 사기 실패 %s
+*/
+ MSG_FAIL_BUY_ITEM_FROM_MERCHANT = 0xe5,
+/*20040804 to latest
+재고 부족.
+Out of Stock
+*/
+ MSG_INSUFFICIENT_STOCK = 0xe6,
+/*20040804 to latest
+%s %d 개 팔림.
+%s %d sold.
+*/
+ MSG_ITEM_IS_SOLD = 0xe7,
+/*20040804 to latest
+노점에서 팔 수 있는 아이템
+Available Items for Vending
+*/
+ MSG_MERCHANTMIRRORITEM = 0xe8,
+/*20040804 to latest
+돈이 부족해서 스킬을 쓸 수 없습니다.
+*/
+ MSG_SKILL_FAIL_MONEY = 0xe9,
+/*20040804 to latest
+사용할 대상을 선택하세요
+Select a Target.
+*/
+ MSG_SELECTTARGET = 0xea,
+/*20040804 to latest
+/pk on : pk On /pk off : pk Off
+/pk on: Turns PK On. /pk off: Turns PK Off.
+*/
+ MSG_EXPLAIN_TIP14 = 0xeb,
+/*20040804 to latest
+노점
+Shop
+*/
+ MSG_STREETSHOP = 0xec,
+/*20040804 to latest
+수레 아이템 [Alt+W]
+Cart Items [Alt+W]
+*/
+ MSG_OPENCARTWINDOW = 0xed,
+/*20040804 to latest
+기본정보
+Basic Information
+*/
+ MSG_BASICINFOWND = 0xee,
+/*20040804 to latest
+이무기로는 이스킬을 사용할수 없습니다.
+The skill cannot be used with this weapon.
+*/
+ MSG_USESKILL_FAIL_NOT_SUITABLE_WEAPON = 0xef,
+/*20040804 to latest
+%s 사기 실패 재고 부족 현재 재고 %d 개.
+Buying %s has been failed. Out of Stock. Current Stock %d.
+*/
+ MSG_FAIL_BUY_ITEM_FROM_MERCHANT_NO_STOCK = 0xf0,
+/*20040804 to latest
+서버와 동기화가 틀려 연결이 끊어졌습니다.
+You've been disconnected due to a time gap between you and the server.
+*/
+ MSG_SPEEDHACK = 0xf1,
+/*20040804 to latest
+화살을 장착하세요
+Please equip the proper ammunition first.
+*/
+ MSG_ERR_ATTACK_ARROW = 0xf2,
+/*20040804 to latest
+중량과다로 공격이나 스킬을 사용할 수 없습니다.
+You can't attack or use skills because you've exceeded the Weight Limit.
+*/
+ MSG_ERR_ATTACK_WEIGHT = 0xf3,
+/*20040804 to latest
+중량과다로 스킬을 사용할 수 없습니다.
+You can't use skills because you've exceeded the Weight Limit.
+*/
+ MSG_ERR_SKILL_WEIGHT = 0xf4,
+/*20040804 to latest
+화살이 장착되었습니다.
+Ammunition has been equipped.
+*/
+ MSG_MSG_ARROW_EQUIPMENT_SUCCESS = 0xf5,
+/*20040804 to latest
+레드젬스톤이 필요합니다.
+Red Gemstone required.
+*/
+ MSG_NEED_REDJAMSTONE = 0xf6,
+/*20040804 to latest
+블루젬스톤이 필요합니다.
+Blue Gemstone required.
+*/
+ MSG_NEED_BLUEJAMSTONE = 0xf7,
+/*20040804 to latest
+힘 파라메터
+Strength
+*/
+ MSG_DESC_STR = 0xf8,
+/*20040804 to latest
+민첩성 파라메터
+Agility
+*/
+ MSG_DESC_AGI = 0xf9,
+/*20040804 to latest
+체력 파라메터
+Vitality
+*/
+ MSG_DESC_VIT = 0xfa,
+/*20040804 to latest
+지력 파라메터
+Intelligence
+*/
+ MSG_DESC_INT = 0xfb,
+/*20040804 to latest
+손재주 파라메터
+Dexterity
+*/
+ MSG_DESC_DEX = 0xfc,
+/*20040804 to latest
+운 파라메터
+Luck
+*/
+ MSG_DESC_LUK = 0xfd,
+/*20040804 to latest
+공격력
+Hit Point
+*/
+ MSG_DESC_ATK = 0xfe,
+/*20040804 to latest
+방어력
+Defence Rate
+*/
+ MSG_DESC_DEF = 0xff,
+/*20040804 to latest
+명중률
+Accuracy
+*/
+ MSG_DESC_HIT = 0x100,
+/*20040804 to latest
+필살공격률
+Critical Attack
+*/
+ MSG_DESC_CRI = 0x101,
+/*20040804 to latest
+소속길드
+Affiliated Guild
+*/
+ MSG_DESC_GUILD = 0x102,
+/*20040804 to latest
+각 파라메터 레벨업에 사용되는 포인트
+Points to level up each Parameter
+*/
+ MSG_DESC_POINT = 0x103,
+/*20040804 to latest
+마법공격력
+Magic Attack
+*/
+ MSG_DESC_MATK = 0x104,
+/*20040804 to latest
+마법방어력
+Magic Defense
+*/
+ MSG_DESC_MDEF = 0x105,
+/*20040804 to latest
+회피율
+Dodge
+*/
+ MSG_DESC_FLEE = 0x106,
+/*20040804 to latest
+공격스피드
+Attack Speed
+*/
+ MSG_DESC_ASPD = 0x107,
+/*20040804 to latest
+지역당 수용인원 초과로 접속할 수 없습니다.
+Server is jammed due to over population. Please try again shortly.
+*/
+ MSG_PC_OVERFLOW = 0x108,
+/*20040804 to latest
+옵션
+Option
+*/
+ MSG_OPTIONWND = 0x109,
+/*20040804 to latest
+E-MAIL 인증이 되지않았거나 블럭된 계정입니다.
+Account ID blocked by the Game Master Team.
+*/
+ MSG_ID_EMAIL_CONFIRM_NEEDED = 0x10a,
+/*20040804 to latest
+비밀번호가 틀립니다.
+Incorrect User ID or Password. Please try again.
+*/
+ MSG_INCORRECT_LOGIN_PASSWORD = 0x10b,
+/*20040804 to latest
+머리모양 선택
+Choose Hairstyle
+*/
+ MSG_SELECT_HAIR_STYLE = 0x10c,
+/*20040804 to latest
+공격력
+Hit Point
+*/
+ MSG_ATK = 0x10d,
+/*20040804 to latest
+방어력
+Defence Rate
+*/
+ MSG_DEF = 0x10e,
+/*20040804 to latest
+공격스냅 On
+Attack Snap On
+*/
+ MSG_ATTACK_SNAP_ON = 0x10f,
+/*20040804 to latest
+공격스냅 Off
+Attack Snap Off
+*/
+ MSG_ATTACK_SNAP_OFF = 0x110,
+/*20040804 to latest
+스킬스냅 On
+Skill Snap On
+*/
+ MSG_SKILL_SNAP_ON = 0x111,
+/*20040804 to latest
+스킬스냅 Off
+Skill Snap Off
+*/
+ MSG_SKILL_SNAP_OFF = 0x112,
+/*20040804 to latest
+/스냅 or /snap: 몬스터 공격시 스냅 On Off /스킬스냅 or /skillsnap: 스킬로 몬스터 공격시 스냅 On Off /아이템스냅 or /itemsnap: 아이템 주울때 스냅 On Off
+/snap: Turns snap On | Off for fights, /skillsnap: Turns snap On | Off for skills. /itemsnap: Turns snap On | Off for items on the grounds.
+*/
+ MSG_EXPLAIN_SNAP = 0x113,
+/*20040804 to latest
+아이템스냅 On
+Item Snap On
+*/
+ MSG_ITEM_SNAP_ON = 0x114,
+/*20040804 to latest
+아이템스냅 Off
+Item Snap Off
+*/
+ MSG_ITEM_SNAP_OFF = 0x115,
+/*20040804 to latest
+스냅
+Snap
+*/
+ MSG_SNAP = 0x116,
+/*20040804 to latest
+한가지 아이템을 3만개 이상 가질수 없습니다.
+You cannot carry more than 30,000 of one kind of item.
+*/
+ MSG_CANT_GET_ITEM_OVERCOUNT_ONEITEM = 0x117,
+/*20040804 to latest
+레벨 30이상의 캐릭터는 삭제할 수 없습니다. 삭제를 원하시면 관계자에게 문의 하세요.
+You cannot delete a Character with a level greater than 30. If you want to delete the character please contact a Game Master.
+*/
+ MSG_CANT_DELETE_CHARACTER_OVER_30_LEVEL = 0x118,
+/*20040804 to latest
+이이템 교환중에는 아이템을 사고 팔 수 없습니다.
+*/
+ MSG_FAIL_BUY_ITEM_ITEM_EXCHANGING = 0x119,
+/*20040804 to latest
+상점명
+Shop Name
+*/
+ MSG_STALL_NAME = 0x11a,
+/*20040804 to latest
+스킬목록
+Skill Tree
+*/
+ MSG_SKILLLIST = 0x11b,
+/*20040804 to latest
+스킬포인트 : %d
+Skill Point: %d
+*/
+ MSG_SKILLPOINT = 0x11c,
+/*20040804 to latest
+스킬사용 실패
+Skill has failed.
+*/
+ MSG_USESKILL_FAIL = 0x11d,
+/*20040804 to latest
+패시브
+Passive
+*/
+ MSG_PASSIVE = 0x11e,
+/*20040804 to latest
+각자 취득
+Individual
+*/
+ MSG_EXPDIV1 = 0x11f,
+/*20040804 to latest
+균등하게 분배
+Shared
+*/
+ MSG_EXPDIV2 = 0x120,
+/*20040804 to latest
+각자 취득
+Individual
+*/
+ MSG_ITEMCOLLECT1 = 0x121,
+/*20040804 to latest
+파티 전체 공유
+Party Share
+*/
+ MSG_ITEMCOLLECT2 = 0x122,
+/*20040804 to latest
+파티 설정
+Party Setup
+*/
+ MSG_PARTYSETTING = 0x123,
+/*20040804 to latest
+경험치 분배방식
+How to share EXP
+*/
+ MSG_HOWEXPDIV = 0x124,
+/*20040804 to latest
+아이템 수집방식
+How to share Items
+*/
+ MSG_HOWITEMCOLLECT = 0x125,
+/*20040804 to latest
+파티 리더만 설정할 수 있습니다.
+Only the Party Leader can change this setting.
+*/
+ MSG_ONLY_PARTYMASTER = 0x126,
+/*20040804 to latest
+아이템 갯수 안물어보기
+Toggle Item Amount.
+*/
+ MSG_NOQUESTION_ITEMCOUNT = 0x127,
+/*20040804 to latest
+^ff0000%d^000000 초 후에 캐릭터가 지워집니다. 취소 하려면 취소 버튼을 누르세요.
+Character will be deleted after ^ff0000%d^000000 seconds. Press Cancel to quit.
+*/
+ MSG_CHARARATER_DELETE_COUNT = 0x128,
+/*20040804 to latest
+교환할 수 있는 최대 아이템 갯수는 10가지 입니다.
+You cannot trade more than 10 types of items per trade.
+*/
+ MSG_MAXEXCHANGE_IS_10_KIND = 0x129,
+/*20040804 to latest
+이서버를 이용할 수 없는 나이입니다.
+You are underaged.
+*/
+ MSG_LIMIT_AGE = 0x12a,
+/*20040804 to latest
+이메일 주소를 입력하세요.
+Please enter the deletion password.
+*/
+ MSG_ENTER_EMAIL = 0x12b,
+/*20040804 to latest
+이메일 주소 입력하기
+E-mail Address (Case Sensitive).
+*/
+ MSG_ENTER_EMAIL_TOOLTIP = 0x12c,
+/*20040804 to latest
+이메일 주소가 틀려서 캐릭터가 삭제 되지 않았습니다.
+Character Deletion has failed because you have entered an incorrect e-mail address.
+*/
+ MSG_CANNOT_DELETE_CHARACTER_EMAIL = 0x12d,
+/*20040804 to 20070703
+주민등록번호 뒷자리를 입력하세요.
+20070618 to 20070622
+비밀번호를 한 번 더 입력해 주시기 바랍니다.
+20070704 to latest
+계정 비밀번호를 입력하세요.
+Enter Second Serial Cord of your Social Security number.
+*/
+ MSG_ENTER_PEOPLE_REG_NUMBER = 0x12e,
+/*20040804 to 20070703
+주민등록번호 뒷자리가 틀려서 캐릭터가 삭제 되지 않았습니다.
+20070618 to 20070622
+비밀번호가 맞지 않아 캐릭터가 삭제 되지 않았습니다.
+20070704 to latest
+비밀번호가 틀려서 캐릭터가 삭제 되지 않았습니다.
+Character Deletion has failed because you have entered an incorrect SSN.
+*/
+ MSG_CANNOT_DELETE_CHARACTER_PEOPLE_REG_NUMBER = 0x12f,
+/*20040804 to latest
+한번에 15가지 이상의 아이템을 팔 수 없습니다.
+You can't sell more than 15 types of Items at one time.
+*/
+ MSG_CANT_SELL_OVER_15 = 0x130,
+/*20040804 to latest
+나이제한 때문에 이계정으로 이서버에 접속할 수 없습니다.
+The age limit from commandment tables cannot connect to this server.
+*/
+ MSG_UNDER_AGE = 0x131,
+/*20040804 to latest
+무게가 50 퍼센트 이상일때는 HP SP가 자연적으로 회복이 되지 않습니다.
+HP/SP will not be restored when your carried weight is over 50% of the Weight Limit.
+*/
+ MSG_NO_RECOVER_OVERWEIGHT = 0x132,
+/*20040804 to latest
+무게가 90 퍼센트 이상일때는 공격과 스킬을 사용할 수 없습니다.
+You can't use Skills or Attack while your carried weight is over 90% of your Weight Limit.
+*/
+ MSG_NO_ATTACK_OVERWEIGHT = 0x133,
+/*20040804 to latest
+HP SP가 자연적으로 회복이 가능한 상태가 되었습니다.
+Your HP/SP are now being restored naturally.
+*/
+ MSG_NO_RECOVER_OVERWEIGHT_RELEASED = 0x134,
+/*20040804 to latest
+공격과 스킬이 가능한 상태가 되었습니다.
+Attack and Skills are now available.
+*/
+ MSG_NO_ATTACK_OVERWEIGHT_RELEASED = 0x135,
+/*20040804 to latest
+서버 점검중입니다.
+Your Game's Exe File is not the latest version.
+*/
+ MSG_INVALID_VERSION = 0x136,
+/*20040804 to latest
+아이템이 모두 팔렸습니다.
+Items are sold out.
+*/
+ MSG_ITEM_IS_SOLD_OUT = 0x137,
+/*20040804 to latest
+채팅내용 파일로 저장하기
+Save Chat as Text File
+*/
+ MSG_WRITE_CHAT_TO_FILE = 0x138,
+/*20040804 to latest
+/갈무리 or /savechat : 채팅 내용 파일로 저장하기.
+/savechat: Save a Chat Log
+*/
+ MSG_EXPLAIN_SAVE_CHAT = 0x139,
+/*20040804 to latest
+계정 만들기
+Register
+*/
+ MSG_MAKEACCOUNT = 0x13a,
+/*20040804 to latest
+수신거부하기
+Reject Whispering
+*/
+ MSG_REQ_EX_LIST = 0x13b,
+/*20040804 to latest
+수신거부해제하기
+Allow Whispering
+*/
+ MSG_REQ_IN = 0x13c,
+/*20040804 to latest
+미스표시 On
+Shows ''Miss''
+*/
+ MSG_MISS_EFFECT_ON = 0x13d,
+/*20040804 to latest
+미스표시 Off
+Shows ''Miss''
+*/
+ MSG_MISS_EFFECT_OFF = 0x13e,
+/*20040804 to latest
+카메라고정 On
+Camera Zooming On
+*/
+ MSG_FIXED_CAMERA_ON = 0x13f,
+/*20040804 to latest
+카메라고정 Off
+Camera Zooming Off
+*/
+ MSG_FIXED_CAMERA_OFF = 0x140,
+/*20040804 to latest
+/camera : 플레이어에게 카메라고정 On Off /miss : 미스이펙트 On Off
+/camera: Camera Zooming On or Off. /miss: Toggle ''Miss'' display
+*/
+ MSG_EXPLAIN_CAMERA_MISS = 0x141,
+/*20040804 to latest
+스킬정보보기
+View Skill Info
+*/
+ MSG_SEE_INFORMATION_OF_SKILL = 0x142,
+/*20040804 to latest
+스킬이름바꾸기
+Change Skill
+*/
+ MSG_CHANGE_SKILL_NAME = 0x143,
+/*20040804 to latest
+스프라이트 해상도
+Sprite Resolution
+*/
+ MSG_SPRITE_RESOLUTION = 0x144,
+/*20040804 to latest
+텍스쳐 해상도
+Texture Resolution
+*/
+ MSG_TEXTURE_RESOLUTION = 0x145,
+/*20040804 to latest
+디테일 조정
+Arrange Detail
+*/
+ MSG_DETAILLEVELWND = 0x146,
+/*20040804 to latest
+%s Zeny 획득
+You got %s Zeny
+*/
+ MSG_GET_ZENY = 0x147,
+/*20040804 to latest
+길드명
+Guild Name
+*/
+ MSG_GUILDNAME = 0x148,
+/*20040804 to latest
+길드레벨
+Guild lvl
+*/
+ MSG_GUILDLEVEL = 0x149,
+/*20040804 to latest
+마스터이름
+ClanMaster Name
+*/
+ MSG_GUILD_MASTER_NAME = 0x14a,
+/*20040804 to latest
+조합원수
+Number of Members
+*/
+ MSG_GUILD_NUM_MEMBER = 0x14b,
+/*20040804 to latest
+조합원 평균레벨
+Avg.lvl of Guildsmen
+*/
+ MSG_GUILD_AVG_MEMBER_LEVEL = 0x14c,
+/*20040804 to latest
+관리영지
+Castles Owned
+*/
+ MSG_GUILD_MANAGE_LAND = 0x14d,
+/*20040804 to latest
+성향
+Tendency
+*/
+ MSG_GUILD_FAIR = 0x14e,
+/*20040804 to latest
+경험치
+EXP
+*/
+ MSG_GUILD_EXP = 0x14f,
+/*20040804 to latest
+길드엠블렘
+Emblem
+*/
+ MSG_GUILD_EMBLEM = 0x150,
+/*20040804 to latest
+길드상납포인트
+Tax Point
+*/
+ MSG_GUILD_POINT = 0x151,
+/*20040804 to latest
+동맹길드
+Alliances
+*/
+ MSG_ALLY_GUILD = 0x152,
+/*20040804 to latest
+적대길드
+Antagonists
+*/
+ MSG_HOSTILITY_GUILD = 0x153,
+/*20040804 to latest
+길드정보
+Guild Info
+*/
+ MSG_GUILDINFOMANAGE = 0x154,
+/*20040804 to latest
+조합원정보
+Guildsmen Info
+*/
+ MSG_GUILDMEMBERMANAGE = 0x155,
+/*20040804 to latest
+직위설정
+Position
+*/
+ MSG_GUILDPOSITIONMANAGE = 0x156,
+/*20040804 to latest
+길드스킬
+Guild Skill
+*/
+ MSG_GUILDSKILL = 0x157,
+/*20040804 to latest
+추방자 리스트
+Expel History
+*/
+ MSG_GUILDBANISHEDMEMBER = 0x158,
+/*20040804 to latest
+공지사항
+Guild Notice
+*/
+ MSG_GUILDNOTICE = 0x159,
+/*20040804 to latest
+전체길드 리스트
+Entire Guild List
+*/
+ MSG_GUILDTOTALINFO = 0x15a,
+/*20040804 to latest
+귓말 리스트
+Whispering List
+*/
+ MSG_WHISPERLISTWND = 0x15b,
+/*20040804 to latest
+귓말창 열기
+Open Whispering Window
+*/
+ MSG_OPENWHISPERLISTWND = 0x15c,
+/*20040804 to latest
+귓말 리스트 창 여는법 : [Alt] + [H] 를 누르면 귓말 리스트 창이 열립니다.
+How to Open Whispering List: Press [Alt] + [H]
+*/
+ MSG_EXPLAIN_WHISPER_LIST_WND = 0x15d,
+/*20040804 to latest
+자동으로 귓말창 열기
+Open Whispering List Automatically
+*/
+ MSG_AUTOOPENWHISPERLISTWND = 0x15e,
+/*20040804 to latest
+지우기
+Delete
+*/
+ MSG_DELETE = 0x15f,
+/*20040804 to latest
+다음부터 열리지 않음
+Close since next
+*/
+ MSG_DONTOPEN = 0x160,
+/*20040804 to latest
+마지막으로 접속한 시간
+Last Log-in Time
+*/
+ MSG_LAST_LOGIN_TIME = 0x161,
+/*20040804 to latest
+마지막으로 접속한 IP
+Last Log-in IP
+*/
+ MSG_LAST_LOGIN_IP = 0x162,
+/*20040804 to latest
+친구 설정
+Friend Setup
+*/
+ MSG_FRIEND_SETTING = 0x163,
+/*20040804 to latest
+정말 지우시겠습니까?
+Are you sure that you want to delete?
+*/
+ MSG_DO_YOU_REALLY_WANT_DELETE = 0x164,
+/*20040804 to latest
+정말 탈퇴하시겠습니까?
+Are you sure that you want to leave?
+*/
+ MSG_DO_YOU_REALLY_WANT_LEAVE = 0x165,
+/*20040804 to latest
+친구로 등록하기
+Register as a Friend
+*/
+ MSG_ADD_TO_FRIEND_CHAR_LIST = 0x166,
+/*20040804 to latest
+친구일때 자동으로 1:1창 열기
+Open 1:1 Chat between Friends
+*/
+ MSG_AUTOOPENWHISPERLISTWND_FRIEND = 0x167,
+/*20040804 to latest
+1:1창 열기
+Open 1:1 Chat
+*/
+ MSG_OPEN_1ON1_WINDOW = 0x168,
+/*20040804 to latest
+친구가 아닐때 자동으로 1:1창 열기
+Open 1:1 Chat between Strangers
+*/
+ MSG_AUTOOPEN_1ON1_WINDOW = 0x169,
+/*20040804 to latest
+1:1창 열릴때 소리로 알림
+Alarm when you recieve a 1:1 Chat
+*/
+ MSG_WHISPER_OPEN_SOUND = 0x16a,
+/*20040804 to latest
+정말 제명시키시겠습니까?
+Are you sure that you want to expel?
+*/
+ MSG_DO_YOU_REALLY_WANT_EXPEL = 0x16b,
+/*20040804 to latest
+%s 님이 길드를 탈퇴했습니다.
+%s has withdrawn from the guild.
+*/
+ MSG_USER_LEFT_GUILD = 0x16c,
+/*20040804 to latest
+탈퇴사유 : %s
+Secession Reason: %s
+*/
+ MSG_REASON_LEAVE_GUILD = 0x16d,
+/*20040804 to latest
+길드 해체 실패
+*/
+ MSG_DISORGANIZE_GUILD_FAILURE = 0x16e,
+/*20040804 to latest
+길드해체사유 : %s
+Disband Reason: %s
+*/
+ MSG_DISORGANIZATION_REASON = 0x16f,
+/*20040804 to latest
+해당 계정은 삭제된 아이디 입니다.
+This ID has been removed.
+*/
+ MSG_DELETED_ACCOUNT = 0x170,
+/*20040804 to latest
+판매가 :
+Price:
+*/
+ MSG_SELLPRICE = 0x171,
+/*20040804 to latest
+%s 님이 길드에서 추방되었습니다.
+%s has been expelled from our guild.
+*/
+ MSG_BAN_GUILD = 0x172,
+/*20040804 to latest
+추방사유 : %s
+Expulsion Reason: %s
+*/
+ MSG_REASON_BAN_GUILD = 0x173,
+/*20040804 to latest
+아이템을 착용할 수 없습니다.
+You can't put this item on.
+*/
+ MSG_CAN_NOT_EQUIP_ITEM = 0x174,
+/*20040804 to latest
+파티설정을 변경할 수 없습니다.
+You can't modify Party Setup.
+*/
+ MSG_PARTYSETTING_CHANGE_IMPOSSIBLE = 0x175,
+/*20040804 to latest
+길드가 만들어 졌습니다.
+Guild has been Created.
+*/
+ MSG_GUILD_MAKE_SUCCESS = 0x176,
+/*20040804 to latest
+이미 길드에 속해있습니다.
+You are already in a Guild.
+*/
+ MSG_GUILD_MAKE_ALREADY_MEMBER = 0x177,
+/*20040804 to latest
+같은이름의 길드가 존재합니다.
+That Guild Name already exists.
+*/
+ MSG_GUILD_MAKE_GUILD_EXIST = 0x178,
+/*20040804 to latest
+ 길드에서 초청 메시지가 왔습니다. 가입하겠습니까?
+ Guild has sent you an invitation. Would you like to join this Guild?
+*/
+ MSG_SUGGEST_JOIN_GUILD = 0x179,
+/*20040804 to latest
+다른길드에 가입되어 있습니다.
+He/She is already in a Guild.
+*/
+ MSG_CHARACTER_IS_ALREADY_IN_GUILD = 0x17a,
+/*20040804 to latest
+길드가입을 거절 했습니다.
+Offer Rejected
+*/
+ MSG_CHARACTER_REJECT_JOIN_GUILD = 0x17b,
+/*20040804 to latest
+길드가입을 수락했습니다.
+Offer Accepted
+*/
+ MSG_CHARACTER_ACCEPT_JOIN_GUILD = 0x17c,
+/*20040804 to latest
+길드정원을 초과했습니다.
+Your Guild is Full.
+*/
+ MSG_TOO_MANY_PEOPLE_IN_GUILD = 0x17d,
+/*20040804 to latest
+(%s)님 길드에 가입요청
+Send (%s) a Guild invitation
+*/
+ MSG_REQ_JOIN_GUILD = 0x17e,
+/*20040804 to latest
+스킬 레벨이 모자라서 매너포인트를 줄 수 없습니다.
+You haven't learned enough skills for aligning.
+*/
+ MSG_NOT_ENOUGH_FOR_MANNER_POINT = 0x17f,
+/*20040804 to latest
+매너 포인트 주기 성공
+Aligning completed.
+*/
+ MSG_GIVING_MANNER_POINT_SUCCESS = 0x180,
+/*20040804 to latest
+오늘 이미 사용했습니다.
+You already spent your point for today.
+*/
+ MSG_YOU_USE_TODAY_ALREADY = 0x181,
+/*20040804 to latest
+이캐릭터에게 지급한지 한달이 지나지 않았습니다.
+Hasn't been a month yet since you aligned this person.
+*/
+ MSG_ONE_MONTH_NOT_PASSED = 0x182,
+/*20040804 to latest
+%s 님으로부터 플러스 매너 포인트를 받았습니다.
+Remember, Spamming isn't nice.
+*/
+ MSG_RECEIVE_PLUS_MANNER_POINT = 0x183,
+/*20040804 to latest
+%s 님으로부터 마이너스 매너 포인트를 받았습니다.
+Please refrain from ill-mannered conduct, thank you.
+*/
+ MSG_RECEIVE_MINUS_MANNER_POINT = 0x184,
+/*20040804 to latest
+채팅 금지 시간 줄이기(풀기)
+Align with a Good Point
+*/
+ MSG_GIVE_PLUS_MANNER_POINT = 0x185,
+/*20040804 to latest
+채팅 금지 시간 늘이기(걸기)
+Align with a Bad Point
+*/
+ MSG_GIVE_MINUS_MANNER_POINT = 0x186,
+/*20040804 to latest
+(%s)님과의 거래요청
+Request a deal with (%s)
+*/
+ MSG_REQ_DEAL_WITH2 = 0x187,
+/*20040804 to latest
+(%s)님 파티에 가입요청
+Ask (%s) to join your party
+*/
+ MSG_REQ_JOIN_PARTY2 = 0x188,
+/*20040804 to latest
+ 길드에서 동맹요청 메시지가 왔습니다. 동맹하겠습니까?
+ Guild is asking you to agree to an Alliance with them. Do you accept?
+*/
+ MSG_SUGGEST_ALLY_GUILD = 0x189,
+/*20040804 to latest
+이미 동맹되어 있습니다.
+This Guild is already your Ally.
+*/
+ MSG_REQALLYGUILD_ALREADY_ALLIED = 0x18a,
+/*20040804 to latest
+동맹을 거절 했습니다.
+You reject the offer
+*/
+ MSG_REQALLYGUILD_REJECT = 0x18b,
+/*20040804 to latest
+동맹을 수락 했습니다.
+You accept the offer
+*/
+ MSG_REQALLYGUILD_ACCEPT = 0x18c,
+/*20040804 to latest
+상대길드의 동맹길드의 수가 초과 되었습니다.
+They have too many Alliances.
+*/
+ MSG_REQALLYGUILD_OVERSIZE = 0x18d,
+/*20040804 to latest
+길드의 동맹길드의 수가 초과 되었습니다.
+You have too many Alliances.
+*/
+ MSG_REQALLYMYGUILD_OVERSIZE = 0x18e,
+/*20040804 to latest
+길드 동맹 요청
+Set this guild as an Alliance
+*/
+ MSG_REQ_ALLY_GUILD = 0x18f,
+/*20040804 to latest
+길드가 성공적으로 해체 되었습니다.
+Guild was successfully disbanded.
+*/
+ MSG_DISORGANIZE_GUILD_SUCCESS = 0x190,
+/*20040804 to latest
+주민등록번호가 틀려서 길드가 해체되지 않았습니다.
+You have failed to disband the guild due to your incorrect SSN.
+*/
+ MSG_DISORGANIZE_GUILD_INVALIDKEY = 0x191,
+/*20040804 to latest
+길드맴버가 존재해서 길드가 해체되지 않았습니다.
+You have failed to disband the guild because there are guildsmen still present.
+*/
+ MSG_DISORGANIZE_GUILD_MEMBEREXIST = 0x192,
+/*20040804 to latest
+길드 적대 요청
+Set this guild as an Antagonist
+*/
+ MSG_REQ_HOSTILE_GUILD = 0x193,
+/*20040804 to latest
+머리색깔 선택
+Choose Hair Color
+*/
+ MSG_SELECT_HAIR_COLOR = 0x194,
+/*20040804 to latest
+길드결성시 필요한 아이템이 없습니다.
+You don't have necessary item to create a Guild.
+*/
+ MSG_GUILD_MAKE_GUILD_NONE_ITEM = 0x195,
+/*20040804 to latest
+몬스터 정보
+Monster Info
+*/
+ MSG_MONSTER_INFO_WINDOW = 0x196,
+/*20040804 to latest
+이름
+Name
+*/
+ MSG_NAME = 0x197,
+/*20040804 to latest
+레벨
+Level
+*/
+ MSG_LEVEL = 0x198,
+/*20040804 to latest
+HP
+*/
+ MSG_HP = 0x199,
+/*20040804 to latest
+크기
+Size
+*/
+ MSG_SIZE = 0x19a,
+/*20040804 to latest
+종족
+Type
+*/
+ MSG_RACETYPE = 0x19b,
+/*20040804 to latest
+MDEF
+*/
+ MSG_MDEFPOWER = 0x19c,
+/*20040804 to latest
+속성
+Attribute
+*/
+ MSG_PROPERTY = 0x19d,
+/*20040804 to latest
+無
+Neutral
+*/
+ MSG_PROPERTY_NEUTURAL = 0x19e,
+/*20040804 to latest
+水
+Water
+*/
+ MSG_PROPERTY_WATER = 0x19f,
+/*20040804 to latest
+地
+Earth
+*/
+ MSG_PROPERTY_EARTH = 0x1a0,
+/*20040804 to latest
+火
+Fire
+*/
+ MSG_PROPERTY_FIRE = 0x1a1,
+/*20040804 to latest
+風
+Wind
+*/
+ MSG_PROPERTY_WIND = 0x1a2,
+/*20040804 to latest
+毒
+Poison
+*/
+ MSG_PROPERTY_POISON = 0x1a3,
+/*20040804 to latest
+聖
+Holy
+*/
+ MSG_PROPERTY_SAINT = 0x1a4,
+/*20040804 to latest
+暗
+Shadow
+*/
+ MSG_PROPERTY_DARK = 0x1a5,
+/*20040804 to latest
+念
+Ghost
+*/
+ MSG_PROPERTY_MENTAL = 0x1a6,
+/*20040804 to latest
+死
+Undead
+*/
+ MSG_PROPERTY_UNDEAD = 0x1a7,
+/*20040804 to latest
+현재는 아이템을 만들 수 없습니다.
+You can't create items yet.
+*/
+ MSG_CANT_MAKE_ITEM = 0x1a8,
+/*20040804 to latest
+제조 목록
+Item List you can craft
+*/
+ MSG_MAKE_LIST = 0x1a9,
+/*20040804 to latest
+ 만들기
+ Create
+*/
+ MSG_MAKE_TARGET = 0x1aa,
+/*20040804 to latest
+ 에 필요한 재료:
+'s materials
+*/
+ MSG_REQUIRE_FOR_MAKE_TARGET = 0x1ab,
+/*20040804 to latest
+ 만들기 실패
+ item creation failed.
+*/
+ MSG_MAKE_TARGET_FAIL = 0x1ac,
+/*20040804 to latest
+ 만들기 성공
+ item created successfully.
+*/
+ MSG_MAKE_TARGET_SUCCEESS = 0x1ad,
+/*20040804 to latest
+%s 만들기를 실패하였습니다.
+ item creation failed.
+*/
+ MSG_MAKE_TARGET_FAIL_MSG = 0x1ae,
+/*20040804 to latest
+%s 만들기를 성공했습니다.
+ item created successfully.
+*/
+ MSG_MAKE_TARGET_SUCCEESS_MSG = 0x1af,
+/*20040804 to latest
+레벨이 부족합니다.
+You are not the required lvl.
+*/
+ MSG_NOT_ENOUGH_LEVEL = 0x1b0,
+/*20040804 to latest
+레벨이 너무 높습니다.
+Too high lvl for this job.
+*/
+ MSG_TOO_HIGH_LEVEL = 0x1b1,
+/*20040804 to latest
+직업이 적합하지 않습니다.
+Not the suitable job for this type of work.
+*/
+ MSG_NOT_ACCEPTABLE_JOB = 0x1b2,
+/*20040804 to latest
+토키 박스 트랩 메세지
+Record a message in the Talkie Box
+*/
+ MSG_TALKBOX_WINDOW = 0x1b3,
+/*20040804 to latest
+기록할 메세지를 입력하시기 바랍니다.
+Please type a message for the Talkie Box
+*/
+ MSG_TALKBOX_WINDOW_MSG = 0x1b4,
+/*20040804 to latest
+길드에게 보냄
+Send to Guild
+*/
+ MSG_SEND_TO_GUILD = 0x1b5,
+/*20040804 to latest
+결제된 계정이 아닙니다. 결제 페이지로 이동하시겠습니까?
+You didn't pay for this ID. Would you like to pay for it now?
+*/
+ MSG_NOT_SETTLED = 0x1b6,
+/*20040804 to latest
+서버가 혼잡한 관계로 잠시후 다시 시도해 주시기 바랍니다.
+Server is jammed due to overpopulation. Please try again after few minutes.
+*/
+ MSG_ACCOUNT_BUSY = 0x1b7,
+/*20040804 to latest
+지난 접속 정보가 남아 있습니다. 30초정도 지난뒤에 다시 시도해 주시기 바랍니다.
+Server still recognizes your last log-in. Please try again after a few minutes.
+*/
+ MSG_INFORMATION_REMAINED = 0x1b8,
+/*20040804 to latest
+매 풀어주기
+Release Falcon
+*/
+ MSG_BIRDOFF = 0x1b9,
+/*20040804 to latest
+페코페코 내리기
+Dismount
+*/
+ MSG_CHIKENOFF = 0x1ba,
+/*20040804 to latest
+小
+Small
+*/
+ MSG_SIZE_SMALL = 0x1bb,
+/*20040804 to latest
+中
+Med
+*/
+ MSG_SIZE_MIDDLE = 0x1bc,
+/*20040804 to latest
+大
+Big
+*/
+ MSG_SIZE_BIG = 0x1bd,
+/*20040804 to latest
+더블
+Double
+*/
+ MSG_DOUBLE = 0x1be,
+/*20040804 to latest
+트리플
+Triple
+*/
+ MSG_TRIPLE = 0x1bf,
+/*20040804 to latest
+쿼드로플
+Quadruple
+*/
+ MSG_QUADROPLE = 0x1c0,
+/*20040804 to latest
+%s 까지 로그인을 금지하고 있습니다.
+You are prohibited to log in until %s.
+*/
+ MSG_LOGIN_REFUSE_BLOCKED_UNTIL = 0x1c1,
+/*20040804 to latest
+의
+'s
+*/
+ MSG_MANUFACTURED_NORMAL_ITEM = 0x1c2,
+/*20040804 to latest
+의 파이어
+'s Fire
+*/
+ MSG_MANUFACTURED_FIRE_ITEM = 0x1c3,
+/*20040804 to latest
+의 아이스
+'s Ice
+*/
+ MSG_MANUFACTURED_ICE_ITEM = 0x1c4,
+/*20040804 to latest
+의 윈드
+'s Wind
+*/
+ MSG_MANUFACTURED_WIND_ITEM = 0x1c5,
+/*20040804 to latest
+의 어스
+'s Earth
+*/
+ MSG_MANUFACTURED_EARTH_ITEM = 0x1c6,
+/*20040804 to latest
+211.239.161.246
+38.144.194.2
+*/
+ MSG_ACCOUNT_ADDRESS = 0x1c7,
+/*20040804 to latest
+6900
+*/
+ MSG_ACCOUNT_PORT = 0x1c8,
+/*20040804 to latest
+http://www.ragnarok.co.kr
+*/
+ MSG_REGISTRATION_WEB_URL = 0x1c9,
+/*20040804 to latest
+%s 사용자 강제 종료
+Kill %s
+*/
+ MSG_BAN_USER = 0x1ca,
+/*20040804 to latest
+무지쎈
+Very Strong
+*/
+ MSG_ONE_STARPIECE = 0x1cb,
+/*20040804 to latest
+무지무지쎈
+Very Very Strong
+*/
+ MSG_TWO_STARPIECE = 0x1cc,
+/*20040804 to latest
+무무무쎈
+Very Very Very Strong
+*/
+ MSG_THREE_STARPIECE = 0x1cd,
+/*20040804 to latest
+길드 추방 사유
+The Reason of Expulsion
+*/
+ MSG_GUILD_KICK_REASON = 0x1ce,
+/*20040804 to latest
+ 공격 속도가 증가했습니다.
+Attack Speed is up.
+*/
+ MSG_INCATTACKSPEED = 0x1cf,
+/*20040804 to latest
+ 공격 속도가 감소했습니다.
+Attack Speed is down.
+*/
+ MSG_DECATTACKSPEED = 0x1d0,
+/*20040804 to latest
+ 무기의 공격력이 향상되었습니다.
+Weapon Damage is improved.
+*/
+ MSG_INCWEAPONATTACK = 0x1d1,
+/*20040804 to latest
+ 무기의 공격력이 감소되었습니다.
+Weapon Damage is reduced.
+*/
+ MSG_DECWEAPONATTACK = 0x1d2,
+/*20040804 to latest
+ 시전 딜레이가 줄었습니다.
+Cast Delay is reduced.
+*/
+ MSG_FASTPREDELAY = 0x1d3,
+/*20040804 to latest
+ 시전 딜레이가 정상으로 되었습니다.
+Cast Delay has returned to normal.
+*/
+ MSG_NORMALPREDELAY = 0x1d4,
+/*20040804 to latest
+ 무기에 독속성이 부여되었습니다.
+Weapon is temporarily enchanted with Poison.
+*/
+ MSG_WEAPONPROPERTYPOISON = 0x1d5,
+/*20040804 to latest
+ 무기에 성속성이 부여되었습니다.
+Weapon is temporarily enchanted with an elemental property.
+*/
+ MSG_WEAPONPROPERTYSAINT = 0x1d6,
+/*20040804 to latest
+ 무기의 원래속성이 적용되었습니다.
+Weapon has changed back to normal.
+*/
+ MSG_WEAPONPROPERTYORIGINAL = 0x1d7,
+/*20040804 to latest
+ 방어구에 성속성이 부여되었습니다.
+Armor has been enchanted with the Holy Ghost.
+*/
+ MSG_ARMORPROPERTYSAINT = 0x1d8,
+/*20040804 to latest
+ 방어구의 원래속성이 적용되었습니다.
+Armor has changed back to normal.
+*/
+ MSG_ARMORPROPERTYORIGINAL = 0x1d9,
+/*20040804 to latest
+ 배리어 상태가 되었습니다.
+Barrier Formed.
+*/
+ MSG_BARRIOR = 0x1da,
+/*20040804 to latest
+ 배리어 상태가 해제 되었습니다.
+Barrier Canceled.
+*/
+ MSG_DISAPPEARBARRIOR = 0x1db,
+/*20040804 to latest
+ 소형, 중형, 대형 몬스터에게 100% 공격력을 줍니다.
+Weapon Perfection Initiated.
+*/
+ MSG_PERFECTDAMAGE = 0x1dc,
+/*20040804 to latest
+ 웨폰퍼펙션 모드가 해제 되었습니다.
+Weapon perfection Canceled.
+*/
+ MSG_DISAPPEARPERFECTDAMAGE = 0x1dd,
+/*20040804 to latest
+ 무기가 파괴될 가능성이 높아진 대신 무기의 공격력이 증가하였습니다.
+Power-Thrust Initiated.
+*/
+ MSG_OVERTHRUSTING = 0x1de,
+/*20040804 to 20050118
+ 오버트러스팅 상태가 해제 되었습니다.
+20050124 to latest
+ 오버트러스트 상태가 해제 되었습니다.
+Power-Thrust Canceled.
+*/
+ MSG_DISAPPEAROVERTHRUSTING = 0x1df,
+/*20040804 to latest
+ 무기의 최대 성능을 끌어냅니다.
+Maximize-Power Initiated.
+*/
+ MSG_MAXIMIZE = 0x1e0,
+/*20040804 to latest
+ 맥시마이즈 상태가 해제 되었습니다.
+Maximize-Power Canceled.
+*/
+ MSG_DISAPPEARMAXIMIZE = 0x1e1,
+/*20040804 to latest
+[신서버]
+[New Server]
+*/
+ MSG_SERVER_PROPERTY_NEW = 0x1e2,
+/*20040804 to latest
+(%d 명)
+(%d players)
+*/
+ MSG_SERVER_USER_COUNT = 0x1e3,
+/*20040804 to latest
+(점검중)
+(On the maintenance)
+*/
+ MSG_SERVER_INSPECTING = 0x1e4,
+/*20040804 to latest
+길드멤버 %s님이 접속하셨습니다.
+Guild member %s has connected.
+*/
+ MSG_GUILD_MEMBER_STATUS_ONLINE = 0x1e5,
+/*20040804 to latest
+길드멤버 %s님이 종료하셨습니다.
+Guild member %s has disconnected.
+*/
+ MSG_GUILD_MEMBER_STATUS_OFFLINE = 0x1e6,
+/*20040804 to latest
+경험치 %d 얻음
+You got %d Base EXP.
+*/
+ MSG_GOT_EXPERIENCE_POINT = 0x1e7,
+/*20040804 to latest
+잡경험치 %d 얻음
+You got %d Job EXP.
+*/
+ MSG_GOT_JOB_EXPERIENCE_POINT = 0x1e8,
+/*20040804 to latest
+길드에서 탈퇴 했습니다.
+You left the guild.
+*/
+ MSG_LEFT_GUILD = 0x1e9,
+/*20040804 to latest
+길드에서 추방 당했습니다.
+You have been expelled from the Guild.
+*/
+ MSG_BAN_FROM_GUILD = 0x1ea,
+/*20040804 to latest
+아이템 감정 성공
+Item Appraisal has completed successfully.
+*/
+ MSG_ITEM_IDENTIFY_SUCCEESS = 0x1eb,
+/*20040804 to latest
+아이템 감정 실패
+Item appraisal has failed.
+*/
+ MSG_ITEM_IDENTIFY_FAIL = 0x1ec,
+/*20040804 to latest
+아이템 조합 성공
+Compounding has completed successfully.
+*/
+ MSG_ITEM_COMPOUNDING_SUCCEESS = 0x1ed,
+/*20040804 to latest
+아이템 조합 실패
+Compounding has failed.
+*/
+ MSG_ITEM_COMPOUNDING_FAIL = 0x1ee,
+/*20040804 to latest
+길드 적대 성공
+Antagonist has been set.
+*/
+ MSG_HOSTILE_GUILD_SUCCEESS = 0x1ef,
+/*20040804 to latest
+적대 길드수 초과로 길드 적대 실패
+Guild has too many Antagonists.
+*/
+ MSG_TOO_MANY_HOSTILE_GUILD = 0x1f0,
+/*20040804 to latest
+이미 적대 길드 입니다
+Already set as an Antagonist
+*/
+ MSG_ALREADY_REGISTERED_HOSTILE_GUILD = 0x1f1,
+/*20040804 to latest
+제련이 성공적으로 되었습니다.
+Upgrade has been completed successfully.
+*/
+ MSG_ITEM_REFINING_SUCCEESS = 0x1f2,
+/*20040804 to latest
+제련이 실패하였습니다.
+Upgrade has failed.
+*/
+ MSG_ITEM_REFINING_FAIL = 0x1f3,
+/*20040804 to latest
+이곳에서는 순간이동이 불가능합니다.
+Unavailable Area to Teleport
+*/
+ MSG_IMPOSSIBLE_TELEPORT_AREA = 0x1f4,
+/*20040804 to latest
+이 장소는 기억할 수 없습니다.
+Unable to memorize this place as Warp Point
+*/
+ MSG_POSSIBLE_TELEPORT_AREA = 0x1f5,
+/*20040804 to latest
+지금은 종료할 수 없습니다.
+Please wait 10 seconds before trying to log out.
+*/
+ MSG_CANT_EXIT_NOW = 0x1f6,
+/*20040804 to latest
+직위
+Position
+*/
+ MSG_POSITION = 0x1f7,
+/*20040804 to latest
+직업
+Job
+*/
+ MSG_JOB = 0x1f8,
+/*20040804 to latest
+메모
+Note
+*/
+ MSG_MEMO = 0x1f9,
+/*20040804 to latest
+기여
+Devotion
+*/
+ MSG_CONTRIBUTION = 0x1fa,
+/*20040804 to latest
+상납경험치
+Tax Point
+*/
+ MSG_EXP_CONTIRIBUTION = 0x1fb,
+/*20040804 to latest
+길드탈퇴
+Leave Guild
+*/
+ MSG_LEAVE_GUILD = 0x1fc,
+/*20040804 to latest
+제명시키기
+Expel
+*/
+ MSG_EXPEL_GUILD = 0x1fd,
+/*20040804 to latest
+서열
+Rank
+*/
+ MSG_GRADE = 0x1fe,
+/*20040804 to latest
+직위명
+Position Title
+*/
+ MSG_POSITION_NAME = 0x1ff,
+/*20040804 to latest
+가입권한
+Invitation
+*/
+ MSG_JOIN_AUTHORITY = 0x200,
+/*20040804 to latest
+처벌권한
+Punish
+*/
+ MSG_PENALTY_AUTORITY = 0x201,
+/*20040804 to latest
+상납%
+Tax %
+*/
+ MSG_CONTRIBUTION_PERCENT = 0x202,
+/*20040804 to latest
+제목
+Title
+*/
+ MSG_TITLE = 0x203,
+/*20040804 to latest
+내용
+For
+*/
+ MSG_CONTENTS = 0x204,
+/*20040804 to latest
+길드이름
+Guild Name
+*/
+ MSG_GUILD_NAME = 0x205,
+/*20040804 to latest
+길드레벨
+Guild lvl
+*/
+ MSG_GUILD_LEVEL = 0x206,
+/*20040804 to latest
+조합원수
+Number of Members
+*/
+ MSG_GUILD_PEOPLE_COUNT = 0x207,
+/*20040804 to latest
+랭킹
+Ranking
+*/
+ MSG_RANKING = 0x208,
+/*20040804 to latest
+아이템 감정
+Item Appraisal
+*/
+ MSG_ITEM_IDENTIFY = 0x209,
+/*20040804 to latest
+아이템 조합
+Insert Card
+*/
+ MSG_ITEM_COMPOUNDING = 0x20a,
+/*20040804 to latest
+탈퇴 사유를 입력해주세요.
+Please enter the reason of Secession.
+*/
+ MSG_PLEASE_INPUT_WHY_LEAVING = 0x20b,
+/*20040804 to latest
+추방 사유를 입력해주세요.
+Please enter the reason of Expulsion.
+*/
+ MSG_PELASE_INPUT_WHY_EXPEL = 0x20c,
+/*20040804 to latest
+상점을 닫으세요.
+Please close Shop.
+*/
+ MSG_PLEASE_CLOSE_STORE = 0x20d,
+/*20040804 to latest
+스킬 이름
+Skill
+*/
+ MSG_SKILL_NAME = 0x20e,
+/*20040804 to latest
+아이템 이름
+Item Name
+*/
+ MSG_ITEM_NAME = 0x20f,
+/*20040804 to latest
+https://payment.ragnarok.co.kr
+https://pay.ragnarok.co.kr (Billing Web)
+*/
+ MSG_SETTLE_WEB_URL = 0x210,
+/*20040804 to latest
+게임방에서 사용가능한 IP개수가 모두 사용중입니다. 개인 계정으로 결제 하시겠습니까?
+IP capacity of this Internet Cafe is full. Would you like to pay the personal base?
+*/
+ MSG_BAN_IP_OVERFLOW = 0x211,
+/*20040804 to latest
+결제시간이 다되어 게임을 종료합니다.
+You are out of available paid playing time. Game will be shut down automatically.
+*/
+ MSG_BAN_PAY_OUT = 0x212,
+/*20040804 to latest
+이름이 너무 깁니다. 한글 11자 영문 23자 이내로 써주십시오.
+Name is too long. Please enter a name no greater than 23 english characters.
+*/
+ MSG_NAMELENGTH_TOO_LONG = 0x213,
+/*20040804 to latest
+deleted
+Character will be deleted in %d seconds.
+*/
+ MSG_DELETE_AFTER_10_SECOND = 0x214,
+/*20040804 to latest
+귀하는 개인 정액제 사용자입니다.
+You paid with the personal regular base.
+*/
+ MSG_BILLING_100 = 0x215,
+/*20040804 to latest
+귀하는 개인정량제 사용자입니다.
+You paid with the personal regular base. Available time is xx hrs xx mins xx secs.
+*/
+ MSG_BILLING_200 = 0x216,
+/*20040804 to latest
+귀하는 개인 무료 사용자입니다.
+You are free!
+*/
+ MSG_BILLING_300 = 0x217,
+/*20040804 to latest
+귀하는 개인 무료 허용기간 사용자입니다.
+You are free for the test, your available time is xx hrs xx mins xx secs.
+*/
+ MSG_BILLING_400 = 0x218,
+/*20040804 to latest
+귀하는 게임방 정액제 사용자입니다.
+You paid with the Internet Cafe regular base. Available time is xx hrs xx mins xx secs.
+*/
+ MSG_BILLING_500 = 0x219,
+/*20040804 to latest
+귀하는 게임방 정량제 사용자입니다.
+You paid with the Time Limit for Internet Cafe. Available time is xx hrs xx mins xx secs.
+*/
+ MSG_BILLING_501 = 0x21a,
+/*20040804 to latest
+귀하는 게임방 무료 허용기간 사용자입니다.
+You are free for the test of Internet Cafe version .
+*/
+ MSG_BILLING_600 = 0x21b,
+/*20040804 to latest
+귀하는 게임방 무료 사용자입니다.
+You are free for the Internet Cafe version.
+*/
+ MSG_BILLING_700 = 0x21c,
+/*20040804 to latest
+귀하는 종량제 사이트 이용자입니다.
+You paid on the Time Limit Website.
+*/
+ MSG_BILLING_800 = 0x21d,
+/*20040804 to latest
+이모션 목록
+Emotion icon List
+*/
+ MSG_EMOTION_LIST = 0x21e,
+/*20040804 to latest
+/이모션
+/emo
+*/
+ MSG_VIEW_EMOTION = 0x21f,
+/*20040804 to latest
+/!
+*/
+ MSG_EMOTION_SURPRISE = 0x220,
+/*20040804 to latest
+/?
+*/
+ MSG_EMOTION_QUESTION = 0x221,
+/*20040804 to latest
+/기쁨
+/ho
+*/
+ MSG_EMOTION_DELIGHT = 0x222,
+/*20040804 to latest
+/하트
+/lv
+*/
+ MSG_EMOTION_THROB = 0x223,
+/*20040804 to latest
+/왕하트
+/lv2
+*/
+ MSG_EMOTION_BIGTHROB = 0x224,
+/*20040804 to latest
+/땀
+/swt
+*/
+ MSG_EMOTION_SWEAT = 0x225,
+/*20040804 to latest
+/아하
+/ic
+*/
+ MSG_EMOTION_AHA = 0x226,
+/*20040804 to latest
+/짜증
+/an
+*/
+ MSG_EMOTION_FRET = 0x227,
+/*20040804 to latest
+/화
+/ag
+*/
+ MSG_EMOTION_ANGER = 0x228,
+/*20040804 to latest
+/돈
+/$
+*/
+ MSG_EMOTION_MONEY = 0x229,
+/*20040804 to latest
+/...
+*/
+ MSG_EMOTION_THINK = 0x22a,
+/*20040804 to latest
+/감사
+/thx
+*/
+ MSG_EMOTION_THANKS = 0x22b,
+/*20040804 to latest
+/꽥
+/wah
+*/
+ MSG_EMOTION_KEK = 0x22c,
+/*20040804 to latest
+/죄송
+/sry
+*/
+ MSG_EMOTION_SORRY = 0x22d,
+/*20040804 to latest
+/웃음
+/heh
+*/
+ MSG_EMOTION_SMILE = 0x22e,
+/*20040804 to latest
+/뻘뻘
+/swt2
+*/
+ MSG_EMOTION_PROFUSELY_SWEAT = 0x22f,
+/*20040804 to latest
+/긁적
+/hmm
+*/
+ MSG_EMOTION_SCRATCH = 0x230,
+/*20040804 to latest
+/최고
+/no1
+*/
+ MSG_EMOTION_BEST = 0x231,
+/*20040804 to latest
+/두리번
+/??
+*/
+ MSG_EMOTION_STARE_ABOUT = 0x232,
+/*20040804 to latest
+/헉
+/omg
+*/
+ MSG_EMOTION_HUK = 0x233,
+/*20040804 to latest
+/오
+/oh
+*/
+ MSG_EMOTION_O = 0x234,
+/*20040804 to latest
+/엑스
+/X
+*/
+ MSG_EMOTION_X = 0x235,
+/*20040804 to latest
+/헬프
+/hlp
+*/
+ MSG_EMOTION_HELP = 0x236,
+/*20040804 to latest
+/가
+/go
+*/
+ MSG_EMOTION_GO = 0x237,
+/*20040804 to latest
+/엉엉
+/sob
+*/
+ MSG_EMOTION_CRY = 0x238,
+/*20040804 to latest
+/킥킥
+/gg
+*/
+ MSG_EMOTION_KIK = 0x239,
+/*20040804 to latest
+/쪽
+/kis
+*/
+ MSG_EMOTION_CHUP = 0x23a,
+/*20040804 to latest
+/쪽쪽
+/kis2
+*/
+ MSG_EMOTION_CHUPCHUP = 0x23b,
+/*20040804 to latest
+/흥
+/pif
+*/
+ MSG_EMOTION_HNG = 0x23c,
+/*20040804 to latest
+/응
+/ok
+*/
+ MSG_EMOTION_OK = 0x23d,
+/*20040804 to latest
+단축키 목록
+Shortcut List
+*/
+ MSG_SHORTCUT_LIST = 0x23e,
+/*20040804 to latest
+귀하의 계정은 보류되었습니다.
+Your account is suspended.
+*/
+ MSG_BAN_PAY_SUSPEND = 0x23f,
+/*20040804 to latest
+과금 정책 변경으로 인해 일시 종료됩니다. 다시 접속하여 주시기 바랍니다.
+Your connection is terminated due to change in the billing policy. Please connect again.
+*/
+ MSG_BAN_PAY_CHANGE = 0x240,
+/*20040804 to latest
+어카운트 서버에 인증된 IP와 귀하의 IP가 달라 연결을 종료합니다.
+Your connection is terminated because your IP doesn't match the authorized IP from the account server.
+*/
+ MSG_BAN_PAY_WRONGIP = 0x241,
+/*20040804 to latest
+게임방 IP에서 개인 종량제 과금을 막기 위해 연결을 종료합니다. 개인 종량제 과금을 사용하기 위해서는 게임방IP로 등록이 되지 않은 IP를 사용해 주세요.
+Your connection is terminated to prevent charging from your account's play time.
+*/
+ MSG_BAN_PAY_PNGAMEROOM = 0x242,
+/*20040804 to latest
+귀하는 운영자에 의해 강제 종료 되었습니다.
+You have been forced to disconnect by the Game Master Team.
+*/
+ MSG_BAN_OP_FORCE = 0x243,
+/*20040804 to latest
+무게가 90%를 초과하여 스킬을 사용할 수 없습니다.
+You can't use this Skill because you are over your Weight Limit.
+*/
+ MSG_USESKILL_FAIL_WEIGHTOVER = 0x244,
+/*20040804 to latest
+무명
+Nameless
+*/
+ MSG_NAMELESS_USER = 0x245,
+/*20040804 to latest
+축하합니다. %s님의 현재 랭킹이 %d위로 상승하였습니다.
+Congratulations! %s ranking has gone up to %d.
+*/
+ MSG_RANK_IN_TEN = 0x246,
+/*20040804 to latest
+안타깝게도 %s님의 현재 랭킹이 %d위로 하락하였습니다.
+What a pity! %s ranking has gone down to %d.
+*/
+ MSG_RANK_OUT_TEN = 0x247,
+/*20040804 to latest
+Pet Info
+*/
+ MSG_PET_INFO = 0x248,
+/*20040804 to latest
+만복도
+Hunger
+*/
+ MSG_PET_HUNGRY = 0x249,
+/*20040804 to latest
+친밀도
+Intimacy
+*/
+ MSG_PET_FRIENDLY = 0x24a,
+/*20040804 to latest
+상점과 채팅방을 동시에 열수 없습니다.
+Please avoid opening a chatroom while vending.
+*/
+ MSG_CANT_OPEN_STORE_WHILE_CHAT = 0x24b,
+/*20040804 to latest
+개
+Total
+*/
+ MSG_EA4 = 0x24c,
+/*20040804 to latest
+%s 를 전투불능으로 만들었습니다.
+You have knocked down %s.
+*/
+ MSG_SLAIN = 0x24d,
+/*20040804 to latest
+%s 님에 의해 전투불능 상태가 되었습니다.
+You have been knocked down by %s.
+*/
+ MSG_SLAINBY = 0x24e,
+/*20040804 to latest
+먹이 - '%s' 아이템이 존재하지 않습니다..
+Feed - "%s" is not available.
+*/
+ MSG_NOT_EXIST_PET_FOOD = 0x24f,
+/*20040804 to latest
+먹이 주기
+Feed Pet
+*/
+ MSG_PET_FEEDING = 0x250,
+/*20040804 to latest
+퍼포먼스
+Performance
+*/
+ MSG_PET_PERFORMANCE = 0x251,
+/*20040804 to latest
+알로 되돌리기
+Return to Egg Shell
+*/
+ MSG_PET_RETURN_EGG = 0x252,
+/*20040804 to latest
+악세사리 해제
+Unequip Accessory
+*/
+ MSG_PET_ACC_OFF = 0x253,
+/*20040804 to latest
+Pet 상태 보기
+Check Pet Status
+*/
+ MSG_PET_SHOWINFO = 0x254,
+/*20040804 to latest
+악세사리
+Accessory
+*/
+ MSG_PET_ACCESSARY = 0x255,
+/*20040804 to latest
+장착됨
+Equipped
+*/
+ MSG_ITEM_EQUIPED = 0x256,
+/*20040804 to latest
+펫 리스트
+Pet List
+*/
+ MSG_PET_EGG_LIST = 0x257,
+/*20040804 to latest
+장착 안됨
+Unequipped
+*/
+ MSG_ITEM_UNEQUIPED = 0x258,
+/*20040804 to latest
+정말로 먹이를 주시겠습니까?
+Are you sure that you want to feed your pet?
+*/
+ MSG_SURE_TO_FEED_PET = 0x259,
+/*20040804 to latest
+가격을 쓰실땐 숫자(0~9)만 써주십시오.
+Only the numbers (0~9) are available.
+*/
+ MSG_CAN_INPUT_NUMBER_ONLY = 0x25a,
+/*20040804 to latest
+감정되지 않은 아이템은 판매할 수 없습니다.
+You cannot sell unidentified items.
+*/
+ MSG_CANT_SELL_UNIDENTIFIED_ITEM = 0x25b,
+/*20040804 to latest
+가격이 0 Zeny인 아이템이 존재합니다. 계속 하시겠습니까?
+Item at 0 Zeny exists. Do you wish to continue?
+*/
+ MSG_YOU_HAVE_FREE_ITEM_ON_SHOP = 0x25c,
+/*20040804 to latest
+[새로 추가된 이모션 리스트]
+[New Emotion List]
+*/
+ MSG_NEW_EMOTION_LIST = 0x25d,
+/*20040804 to latest
+일본쪽 베타 사용자들에게 전하는 메세지. -> 겅호에서 재가입 하세요.
+N/A
+*/
+ MSG_BAN_JAPAN_REFUSE1 = 0x25e,
+/*20040804 to latest
+일본쪽 과금이 종료된 사용자들에게 전하는 메세지. -> 돈내라. 두 번내라.
+N/A
+*/
+ MSG_BAN_JAPAN_REFUSE2 = 0x25f,
+/*20040804 to latest
+같은 계정의 캐릭터가 이미 가입되어있습니다.
+Character in the same account already joined.
+*/
+ MSG_ALREADY_SAME_AID_JOINED = 0x260,
+/*20040804 to latest
+(%d 명) - 만18세이상
+(%d ppl) - over the age 18
+*/
+ MSG_SERVER_PROPERTY_ADULT = 0x261,
+/*20040804 to latest
+ 프로보크 상태가 되었습니다.
+Provoke initiated.
+*/
+ MSG_ENST_PROVOKE = 0x262,
+/*20040804 to latest
+ 프로보크 상태가 해제되었습니다.
+Provoke canceled.
+*/
+ MSG_DSST_PROVOKE = 0x263,
+/*20040804 to latest
+ 인듀어 상태가 되었습니다.
+Endure initiated.
+*/
+ MSG_ENST_ENDURE = 0x264,
+/*20040804 to latest
+ 인듀어 상태가 해제되었습니다.
+Endure canceled.
+*/
+ MSG_DSST_ENDURE = 0x265,
+/*20040804 to latest
+ 집중력 향상 상태가 되었습니다.
+Improve Concentration initiated.
+*/
+ MSG_ENST_CONCENTRATION = 0x266,
+/*20040804 to latest
+ 집중력 향상 상태가 해제되었습니다.
+Improve Concentration canceled.
+*/
+ MSG_DSST_CONCENTRATION = 0x267,
+/*20040804 to latest
+ 하이딩 상태가 되었습니다.
+Hiding Initiated.
+*/
+ MSG_ENST_HIDING = 0x268,
+/*20040804 to latest
+ 하이딩 상태가 해제되었습니다.
+Hiding Canceled.
+*/
+ MSG_DSST_HIDING = 0x269,
+/*20040804 to latest
+ 클로킹 상태가 되었습니다.
+Cloaking initiated.
+*/
+ MSG_ENST_CLOAKING = 0x26a,
+/*20040804 to latest
+ 클로킹 상태가 해제되었습니다.
+Cloaking canceled.
+*/
+ MSG_DSST_CLOAKING = 0x26b,
+/*20040804 to latest
+ 독을 반사 할 수 있는 상태가 되었습니다.
+Poison React initiated.
+*/
+ MSG_ENST_POISONREACT = 0x26c,
+/*20040804 to latest
+ 포이즌 리액트 상태가 해제되었습니다.
+Poison React canceled.
+*/
+ MSG_DSST_POISONREACT = 0x26d,
+/*20040804 to latest
+ 이동속도가 감소하였습니다.
+Speed reduced.
+*/
+ MSG_ENST_QUAGMIRE = 0x26e,
+/*20040804 to latest
+ 콰그마이어 상태가 해제되었습니다.
+Quagmire canceled.
+*/
+ MSG_DSST_QUAGMIRE = 0x26f,
+/*20040804 to latest
+ 방어력이 증가되었습니다.
+Defense increased.
+*/
+ MSG_ENST_ANGELUS = 0x270,
+/*20040804 to latest
+ 안젤루스 상태가 해제되었습니다.
+Angelus canceled.
+*/
+ MSG_DSST_ANGELUS = 0x271,
+/*20040804 to latest
+ 힘과 지능, 덱스가 증가하였습니다.
+Blessing aligned.
+*/
+ MSG_ENST_BLESSING = 0x272,
+/*20040804 to latest
+ 블레싱 상태가 해제되었습니다.
+Blessing canceled.
+*/
+ MSG_DSST_BLESSING = 0x273,
+/*20040804 to latest
+ 시그넘 크루시스를 사용하였습니다.
+Signum Crusis initiated.
+*/
+ MSG_ENST_CRUCIS = 0x274,
+/*20040804 to latest
+ 시그넘 크루시스 상태가 해제되었습니다.
+Signum Crusis canceled.
+*/
+ MSG_DSST_CRUCIS = 0x275,
+/*20040804 to latest
+ 독이 퍼지는 속도가 느려졌습니다.
+Slow Poison initiated.
+*/
+ MSG_ENST_SLOWPOISON = 0x276,
+/*20040804 to latest
+ 슬로우 포이즌 상태가 해제되었습니다.
+Slow Poison Canceled.
+*/
+ MSG_DSST_SLOWPOISON = 0x277,
+/*20040804 to latest
+ SP의 회복 속도가 향상 되었습니다.
+HP/SP recovery increased.
+*/
+ MSG_ENST_MAGNIFICAT = 0x278,
+/*20040804 to latest
+ 마니피캇 상태가 해제되었습니다.
+Magnificat canceled.
+*/
+ MSG_DSST_MAGNIFICAT = 0x279,
+/*20040804 to latest
+ 행운이 향상되었습니다.
+Luck increased.
+*/
+ MSG_ENST_GLORIA = 0x27a,
+/*20040804 to latest
+ 글로리아 상태가 해제되었습니다.
+Gloria canceled.
+*/
+ MSG_DSST_GLORIA = 0x27b,
+/*20040804 to latest
+ 1회 공격에 두 배 데미지를 받는 상태가 되었습니다.
+You will received double damage from all attacking opponents.
+*/
+ MSG_ENST_LEXAETERNA = 0x27c,
+/*20040804 to latest
+ 렉스에테르나 상태가 해제되었습니다.
+Lex Eterna canceled.
+*/
+ MSG_DSST_LEXAETERNA = 0x27d,
+/*20040804 to latest
+ 공격속도가 증가하였습니다.
+Attack Speed increased.
+*/
+ MSG_ENST_ADRENALINE = 0x27e,
+/*20040804 to latest
+ 공격속도가 감소하였습니다.
+Attack Speed reduced.
+*/
+ MSG_DSST_ADRENALINE = 0x27f,
+/*20040804 to latest
+ 페코에 올라 탔습니다.
+You've just been on a Peco Peco.
+*/
+ MSG_ENST_RIDING = 0x280,
+/*20040804 to latest
+ 페코에서 내렸습니다.
+You've just got off of a Peco Peco.
+*/
+ MSG_DSST_RIDING = 0x281,
+/*20040804 to latest
+ 팔콘을 장착하였습니다.
+You've just carried a Falcon with.
+*/
+ MSG_ENST_FALCON = 0x282,
+/*20040804 to latest
+ 팔콘을 풀어주었습니다.
+You've just released a Falcon.
+*/
+ MSG_DSST_FALCON = 0x283,
+/*20040804 to latest
+ 죽은척하기 상태가 되었습니다.
+Play Dead initiated.
+*/
+ MSG_ENST_TRICKDEAD = 0x284,
+/*20040804 to latest
+ 죽은척하기 상태가 해제되었습니다.
+Play Dead canceled.
+*/
+ MSG_DSST_TRICKDEAD = 0x285,
+/*20040804 to latest
+ 힘이 강해졌습니다.
+STR improved.
+*/
+ MSG_ENST_SHOUT = 0x286,
+/*20040804 to latest
+ 힘이 원래대로 돌아왔습니다.
+STR turned back to normal.
+*/
+ MSG_DSST_SHOUT = 0x287,
+/*20040804 to latest
+ 에너지코트 상태가 되었습니다.
+Energy Coat initiated.
+*/
+ MSG_ENST_ENERGYCOAT = 0x288,
+/*20040804 to latest
+ 에너지코트 상태가 해제되었습니다.
+Energy Coat canceled.
+*/
+ MSG_DSST_ENERGYCOAT = 0x289,
+/*20040804 to latest
+ 방어구가 파괴되었습니다.
+Armor destroyed.
+*/
+ MSG_ENST_BROKENAMOR = 0x28a,
+/*20040804 to latest
+ ...
+Weapon has just been released from destroyed status.
+*/
+ MSG_DSST_BROKENAMOR = 0x28b,
+/*20040804 to latest
+ 무기가 파괴되었니다.
+Weapon destroyed.
+*/
+ MSG_ENST_BROKENWEAPON = 0x28c,
+/*20040804 to latest
+ ...
+Weapon has just been released from destroyed status.
+*/
+ MSG_DSST_BROKENWEAPON = 0x28d,
+/*20040804 to latest
+ 환영상태가 되었습니다.
+Invisibility initiated.
+*/
+ MSG_ENST_ILLUSION = 0x28e,
+/*20040804 to latest
+ 환영상태가 해제되었습니다.
+Invisibility canceled.
+*/
+ MSG_DSST_ILLUSION = 0x28f,
+/*20040804 to latest
+과금 정보 처리가 늦어지고 있어 접속이 지연되고 있습니다. 잠시 후에 다시 시도해 주시기 바랍니다.
+Sorry. It is delayed due to the process of payment. Please re-connect in a minute.
+*/
+ MSG_REFUSE_BLOCK_TEMPORARY = 0x290,
+/*20040804 to 20060403
+장착된 화살을 해제 하여야 합니다.
+20060410 to 20061009
+장착된 화살 또는 탄환을 해제 하여야 합니다.
+20061016 to latest
+장착된 화살/탄환/수리검 을 해제해야합니다.
+You must unequip ammunition first.
+*/
+ MSG_UNEQUIP_ARROW = 0x291,
+/*20040804 to latest
+화살 목록
+Arrow List
+*/
+ MSG_ARROW_LIST = 0x292,
+/*20040804 to latest
+카트 목록
+Cart List
+*/
+ MSG_CART_LIST = 0x293,
+/*20040804 to latest
+카트를 장착한 상태여야 합니다.
+You must have a Pushcart.
+*/
+ MSG_MUST_EQUIP_CART = 0x294,
+/*20040804 to latest
+채팅방을 개설 할 수 없습니다.
+You cannot open a Chat Window.
+*/
+ MSG_CANT_MAKE_CHAT_ROOM = 0x295,
+/*20040804 to latest
+라그나로크 홈페이지로 접속하여 계정을 만듭니다. 처음 계정을 만드시면 3일 동안은 무료로 이용하실 수 있습니다.
+Registering an account is the first step to accessing the game. Do you want to visit the registration page now?
+*/
+ MSG_3DAY_FREE = 0x296,
+/*20040804 to latest
+앉은 상태에서는 이 아이템을 사용할 수 없습니다.
+You cannot use this item while sitting.
+*/
+ MSG_CANT_USE_WHEN_SITDOWN = 0x297,
+/*20040804 to latest
+채팅, 스킬, 아이템 사용금지가 %d 분간 남아 있습니다.
+Your use of skills and chat will be blocked for the next %d minutes.
+*/
+ MSG_BAD_MANNER_REMAIN = 0x298,
+/*20040804 to latest
+채팅, 스킬, 아이템 사용금지가 해지 되었습니다.
+Your use of skills and chat have been reinstated.
+*/
+ MSG_BAD_MANNER_END = 0x299,
+/*20040804 to latest
+-[장착안됨]
+- [Not equipped]
+*/
+ MSG_REF_UNEQUIP = 0x29a,
+/*20040804 to latest
+배고픔
+Very Hungry
+*/
+ MSG_VERY_HUNGRY = 0x29b,
+/*20040804 to latest
+출출함
+Hungry
+*/
+ MSG_HUNGRY = 0x29c,
+/*20040804 to latest
+보통
+Normal
+*/
+ MSG_NORMAL = 0x29d,
+/*20040804 to latest
+배부름
+Satisfied
+*/
+ MSG_REPLETE = 0x29e,
+/*20040804 to latest
+아주 배부름
+Stuffed
+*/
+ MSG_VERY_REPLETE = 0x29f,
+/*20040804 to latest
+서먹서먹함
+Awkward
+*/
+ MSG_VERY_AWKWARD = 0x2a0,
+/*20040804 to latest
+어색함
+Shy
+*/
+ MSG_AWKWARD = 0x2a1,
+/*20040804 to latest
+친함
+Cordial
+*/
+ MSG_FRIENDLY = 0x2a2,
+/*20040804 to latest
+절친함
+Loyal
+*/
+ MSG_VERY_FRIENDLY = 0x2a3,
+/*20040804 to latest
+알수 없음
+Unknown
+*/
+ MSG_UNKNOWN = 0x2a4,
+/*20040804 to 20080513
+(태국)귀하는 앞으로 %일 %d시간 %d분 사용이 가능합니다.
+20080520 to latest
+귀하는 앞으로 %일 %d시간 %d분 사용이 가능합니다.
+Your account has play time of %d day %d hour %d minute.
+*/
+ MSG_BILLING_DAY_HOUR_MINUTES = 0x2a5,
+/*20040804 to 20080513
+(태국)이 계정은 이미 다른 어카운트 서버로 접속한 상태입니다.
+20080520 to latest
+이 계정은 이미 다른 어카운트 서버로 접속한 상태입니다.
+Your account is already connected to account server.
+*/
+ MSG_BAN_INFORMATION_REMAINED_ANOTHER_ACCOUNT = 0x2a6,
+/*20040804 to 20080513
+(태국)귀하는 앞으로 %d시간 %d분 사용이 가능합니다.
+20080520 to latest
+귀하는 앞으로 %d시간 %d분 사용이 가능합니다.
+Your account has play time of %d hour %d minute.
+*/
+ MSG_BILLING_HOUR_MINUTES = 0x2a7,
+/*20040804 to 20080513
+(태국)귀하는 무료 사용자 입니다.
+20080520 to latest
+귀하는 무료 사용자 입니다.
+Your account is a free account.
+*/
+ MSG_BILLING_FREE_USER = 0x2a8,
+/*20040804 to 20080513
+(태국)이 계정으로 사크라이에 접속할수 없습니다.
+20080520 to latest
+이 계정으로 사크라이에 접속할수 없습니다.
+This account can't connect the Sakray server.
+*/
+ MSG_REFUSE_NONSAKRAY_ID_BLOCKED = 0x2a9,
+/*20040804 to latest
+펫의 이름은 영문 23, 한글 11자 이내로 정해 주세요.
+Your pet name must be 23 characters or less.
+*/
+ MSG_PETNAME_IN23 = 0x2aa,
+/*20040804 to latest
+이름은 단 한번만 바꿀수 있습니다. 펫 이름을 ^0000ff^0000ff %s^000000^000000 로 수정합니다. 계속 하시겠습니까?
+You may change your pet's name only once. Your pet's name will be changed to ^0000ff^0000ff %s^000000^000000. Do you wish to continue?
+*/
+ MSG_PETNAME_CHANGE_ONLYONCE = 0x2ab,
+/*20040804 to latest
+/폰트
+/font
+*/
+ MSG_NAMEBALLOON_TYPE = 0x2ac,
+/*20040804 to latest
+길드에 남은 제니가 부족하여 작업이 실패하였습니다.
+Your guild lacks the funds to pay for this venture.
+*/
+ MSG_GUILDZENY_NOT_ENOUGH = 0x2ad,
+/*20040804 to latest
+길드가 소유할 수 있는 최대 금액을 초과하여 작업이 실패하였습니다.
+Your guild zeny limit prevents you from performing this action.
+*/
+ MSG_GUILDZENY_OVER = 0x2ae,
+/*20040804 to latest
+이펙트 간략화 On
+Simplified effects have been activated.
+*/
+ MSG_MINEFFECT_ON = 0x2af,
+/*20040804 to latest
+이펙트 간략화 Off
+Simplified effects have been deactivated.
+*/
+ MSG_MINEFFECT_OFF = 0x2b0,
+/*20040804 to latest
+자본금
+Required Fee
+*/
+ MSG_CAPITAL = 0x2b1,
+/*20040804 to latest
+아이템을 바닥에 버리려면, 아이템 창을 열어 주십시오.
+If you wish to drop an item, you must first open your Item Window (alt+e).
+*/
+ MSG_OPEN_ITEMWND_TO_THROW = 0x2b2,
+/*20040804 to latest
+PC방 요금이 종료하여 개인 요금제로 전환합니다. 개인 요금으로 게임을 계속 하시겠습니까?
+Internet Cafe Time Plan has been ended. Would you like to continue the game with your personal play time?
+*/
+ MSG_ASK_PNGAMEROOM = 0x2b3,
+/*20040804 to latest
+
+*/
+ MSG_REPLY_REMAINTIME = 0x2b4,
+/*20040804 to latest
+
+*/
+ MSG_INFO_REMAINTIME = 0x2b5,
+/*20040804 to latest
+돈이 모자라거나, 가질 수 있는 최대 금액을 초과하였습니다.
+Your lack of zeny or your zeny limit have prevented you from performing this action.
+*/
+ MSG_OVER_OR_LOW_MONEY = 0x2b6,
+/*20040804 to latest
+전투불능 상태가 되었습니다. esc키를 누르시면 선택창이 뜹니다.
+Your character has fainted. Push the ESC key to restart.
+*/
+ MSG_PRESS_ESC_TO_RESTART = 0x2b7,
+/*20040804 to latest
+ %d 개 획득
+- %d obtained.
+*/
+ MSG_EA_OBTAIN = 0x2b8,
+/*20040804 to latest
+스펠 리스트
+Spell List
+*/
+ MSG_SPELL_LIST = 0x2b9,
+/*20040804 to latest
+/최소화
+/minimize
+*/
+ MSG_MINEFFECT = 0x2ba,
+/*20040804 to latest
+이 아이템은 손상되어 있습니다..
+This item has been damaged.
+*/
+ MSG_DAMAGED_ITEM = 0x2bb,
+/*20040804 to latest
+/noshift : 쉬프트를 누르지않고 힐로 적을 공격할수있게됩니다 On Off
+/noshift: You may use your ''force heal'' ability without the Shift key. On | Off
+*/
+ MSG_EXPLAIN_NOSHIFT = 0x2bc,
+/*20040804 to latest
+시프트를 누르지 않고도 힐로 언데드를 공격할수 있습니다 [/ns ON]
+[no shift] option activated. [ON]
+*/
+ MSG_NOSHIFT_ON = 0x2bd,
+/*20040804 to latest
+시프트를 눌러야 힐로 언데드를 공격할수 있습니다 [/ns OFF]
+[no shift] option deactivated. [OFF]
+*/
+ MSG_NOSHIFT_OFF = 0x2be,
+/*20040804 to latest
+MSI_REFUSE_BAN_BY_DBA
+*/
+ MSG_REFUSE_BAN_BY_DBA = 0x2bf,
+/*20040804 to latest
+MSI_REFUSE_EMAIL_NOT_CONFIRMED
+*/
+ MSG_REFUSE_EMAIL_NOT_CONFIRMED = 0x2c0,
+/*20040804 to latest
+MSI_REFUSE_BAN_BY_GM
+*/
+ MSG_REFUSE_BAN_BY_GM = 0x2c1,
+/*20040804 to latest
+MSI_REFUSE_TEMP_BAN_FOR_DBWORK
+*/
+ MSG_REFUSE_TEMP_BAN_FOR_DBWORK = 0x2c2,
+/*20040804 to latest
+MSI_REFUSE_SELF_LOCK
+*/
+ MSG_REFUSE_SELF_LOCK = 0x2c3,
+/*20040804 to latest
+MSI_REFUSE_NOT_PERMITTED_GROUP
+*/
+ MSG_REFUSE_NOT_PERMITTED_GROUP = 0x2c4,
+/*20040804 to latest
+MSI_REFUSE_WAIT_FOR_SAKRAY_ACTIVE
+*/
+ MSG_REFUSE_WAIT_FOR_SAKRAY_ACTIVE = 0x2c5,
+/*20040804 to latest
+/aura : 오오라를 간략화 시킬수있습니다 On Off
+/aura: Simplify Aura effect On | Off
+*/
+ MSG_EXPLAIN_AURA = 0x2c6,
+/*20040804 to latest
+오오라가 정상적으로 표시됩니다 [오오라 ON]
+Turn On Aura [Aura ON]
+*/
+ MSG_AURA_ON = 0x2c7,
+/*20040804 to latest
+오오라가 간략화되서 표시됩니다 [오오라 OFF]
+Simplify Aura enabled. [ON]
+*/
+ MSG_AURA_OFF = 0x2c8,
+/*20040804 to latest
+채팅금지 기록 %d 회
+Chat block record %d times
+*/
+ MSG_PROHIBIT_LOG = 0x2c9,
+/*20040804 to latest
+채팅 금지 리스트
+Chat block list
+*/
+ MSG_PROHIBIT_LIST = 0x2ca,
+/*20040804 to latest
+/이름표시 or /showname : 캐릭터의 이름 표시 방식을 변경합니다.
+/showname: Change the name font type.
+*/
+ MSG_EXPLAIN_SHOWNAMETYPE = 0x2cb,
+/*20040804 to latest
+/noctrl : 콘트롤을 누르지않아도 자동공격이 됩니다. On Off
+/noctrl | /nc: Auto attack without pressing ctrl key. On | Off
+*/
+ MSG_EXPLAIN_NOCTRL = 0x2cc,
+/*20040804 to latest
+콘트롤을 누르지 않아도 자동공격을 합니다 [/nc ON]
+Use auto attack without Ctrl. [Auto attack ON]
+*/
+ MSG_NOCTRL_ON = 0x2cd,
+/*20040804 to latest
+콘트롤을 눌러야 자동공격을 합니다 [/nc OFF]
+Use auto attack with Ctrl. [Auto attack OFF]
+*/
+ MSG_NOCTRL_OFF = 0x2ce,
+/*20040804 to latest
+채팅 금지 주기
+Mute this player.
+*/
+ MSG_APPEND_PROHIBIT = 0x2cf,
+/*20040804 to latest
+채팅 금지 완전 풀기 & 로그 삭제
+Unmute player & Erase mute time.
+*/
+ MSG_ERASE_PROHIBIT = 0x2d0,
+/*20040804 to latest
+채팅 금지 시간 줄이기(로그 삭제 안됨)
+Decrease Player Mute time.
+*/
+ MSG_REDUCE_PROHIBIT = 0x2d1,
+/*20040804 to latest
+폰트가 정상적으로 바뀌었습니다 [이름표시방식 1]
+Normal Font Displayed. [showname type 1]
+*/
+ MSG_SHOWNAME_ON = 0x2d2,
+/*20040804 to latest
+폰트가 가늘게 바뀌면서 파티명도 표시됩니다 [이름표시방식 2]
+Font will be thin and party name will be shown [showname type 2]
+*/
+ MSG_SHOWNAME_OFF = 0x2d3,
+/*20040804 to latest
+/doridori : 연속해서 이 명령어를 쳐주면 캐릭터가 도리도리 ^^;;
+/doridori: Shake head
+*/
+ MSG_EXPLAIN_DORIDORI = 0x2d4,
+/*20040804 to latest
+인터넷 카페에서 과금을 하고 있습니다.
+Internet room is paying now.
+*/
+ MSG_BILLING_INTERNET_CAFE = 0x2d5,
+/*20040804 to latest
+정액제 과금은 %d일 %d시간 %d분이 남았습니다.
+종량제 과금은 %d시간 %d분이 남았습니다.
+Prepaid voucher validate until %d days %d hours %d minutes later.
+Time limit voucher validate untill %d hours %d minutes later.
+*/
+ MSG_BILLING_BOTH = 0x2d6,
+/*20040804 to latest
+/bingbing : 연속해서 이 명령어를 쳐주면 캐릭터가 빙글빙글 ^^;;
+/bingbing: Rotates player counter clockwise.
+*/
+ MSG_EXPLAIN_BINGBING = 0x2d7,
+/*20040804 to latest
+/bangbang : 연속해서 이 명령어를 쳐주면 캐릭터가 뱅글뱅글 ^^;;
+/bangbang: Rotates player clockwise.
+*/
+ MSG_EXPLAIN_BANGBANG = 0x2d8,
+/*20040804 to latest
+/skillfail : 빨간색의 스킬사용 실패 메세지를 표시하지 않습니다 On Off
+/skillfail: Display red font message when skill fails. On | Off
+*/
+ MSG_EXPLAIN_SKILLFAIL = 0x2d9,
+/*20040804 to latest
+스킬사용 실패 메세지를 표시합니다 [/sf ON]
+Skill fail messages will be displayed. [Display On]
+*/
+ MSG_SKILLFAIL_ON = 0x2da,
+/*20040804 to latest
+스킬사용 실패 메세지를 표시하지 않습니다 [/sf OFF]
+Skill fail messages will not be displayed. [Display OFF]
+*/
+ MSG_SKILLFAIL_OFF = 0x2db,
+/*20040804 to latest
+/notalkmsg : 채팅내용을 채팅창에 표시하지 않습니다 On Off
+/notalkmsg: Chat will not be displayed in chat window. On | Off
+*/
+ MSG_EXPLAIN_NOTALKMSG = 0x2dc,
+/*20040804 to latest
+채팅내용을 채팅창에 표시합니다 [/nm ON]
+Chat content will be displayed in the chat window. [Display ON]
+*/
+ MSG_NOTALKMSG_ON = 0x2dd,
+/*20040804 to latest
+채팅내용을 채팅창에 표시하지않습니다 [/nm OFF]
+Chat content will not be displayed in the chat window. [Display OFF]
+*/
+ MSG_NOTALKMSG_OFF = 0x2de,
+/*20040804 to latest
+/set1 : /nc + /showname + /sf + /wi, /set2 : + /q3
+/set1: /noctrl + /showname + /skillfail
+*/
+ MSG_EXPLAIN_SET1 = 0x2df,
+/*20040804 to latest
+/fog : FOG이펙트를 키거나 끌수있습니다 On Off
+/fog: Fog effect. On | Off
+*/
+ MSG_EXPLAIN_FOG = 0x2e0,
+/*20040804 to latest
+ 청혼을 해왔습니다. 승낙하시겠습니까?
+You have received a marriage proposal. Do you accept?
+*/
+ MSG_SUGGEST_COUPLE = 0x2e1,
+/*20040804 to latest
+아이템 분배 방식
+Item sharing type
+*/
+ MSG_HOWITEMDIV = 0x2e2,
+/*20040804 to latest
+각자 취득
+Individual
+*/
+ MSG_ITEMDIV1 = 0x2e3,
+/*20040804 to latest
+균등하게 분배
+Shared
+*/
+ MSG_ITEMDIV2 = 0x2e4,
+/*20040804 to latest
+nProtect KeyCrypt
+*/
+ MSG_KEYCRYPT = 0x2e5,
+/*20040804 to latest
+Keyboard Driver가 검출되었습니다.
+
+키보드 보안 입력을 위해 추가기능을 설치하시겠습니까?
+
+(추가기능 설치후, 시스템 reboot 필수)
+Keyboard Driver has been detected.
+
+Do you want to install a program for keyboard security?
+
+(After installation, System Reboot is required)
+*/
+ MSG_KEYCRYPT_INSTALL_KEYDRIVER = 0x2e6,
+/*20040804 to latest
+설치가 완료 되었습니다.
+
+시스템을 Reboot 합니다.
+Installation has been completed.
+
+System will be rebooted.
+*/
+ MSG_KEYCRYPT_REBOOT = 0x2e7,
+/*20040804 to latest
+설치 실패.
+Installation has been failed.
+*/
+ MSG_KEYCRYPT_INSTALLFAIL = 0x2e8,
+/*20040804 to latest
+키보드 보안을 적용하지 않고 계속합니다.
+Keyboard Security will be skipped.
+*/
+ MSG_KEYCRYPT_SKIPKEYCRYPT = 0x2e9,
+/*20040804 to latest
+키보드 보안에 필요한 파일이 존재하지 않습니다.
+
+(npkeyc.vxd, npkeyc.sys, npkeycs.sys)
+Required file for Keyboard Security is not existing.
+
+(npkeyc.vxd, npkeyc.sys, npkeycs.sys)
+*/
+ MSG_KEYCRYPT_NOKEYCRYPTFILE = 0x2ea,
+/*20040804 to latest
+USB Keyboard가 검출되었습니다.
+
+키보드 보안 입력을 위해 추가기능을 설치하시겠습니까?
+
+(추가기능 설치후, 시스템 reboot 필수)
+USB Keyboard has been detected.
+
+Do you want to install a program for keyboard security?
+
+(After installation, System Reboot is required)
+*/
+ MSG_KEYCRYPT_USBKEYBOARD = 0x2eb,
+/*20040804 to latest
+ftp://ragnarok.nefficient.co.kr/pub/ragnarok/ragnarok0526.exe
+*/
+ MSG_FINDHACK_PATH = 0x2ec,
+/*20040804 to latest
+FindHack이 정상적으로 설치가 되어있지 않습니다. ragnarok0226.exe 를 다운로드 하여 라그나로크가 설치된 폴더에 설치해 주시기 바랍니다.(%d).
+FindHack is not installed correctly. Please download ragnarok0226.exe and install it in RagnarokOnline directory.(%d).
+*/
+ MSG_FINDHACK_NOTINSTALLED = 0x2ed,
+/*20040804 to latest
+해킹툴이 존재하지만 치료가 정상적으로 되지 않았습니다. 라그나로크가 실행되지 않습니다.
+Hacking tool is existing but it hasn't been cleaned. Rangarok Online will not be executed.
+*/
+ MSG_FINDHACK_HACKTOOLEXIST = 0x2ee,
+/*20040804 to latest
+해킹툴 진단 프로그램이 정상적으로 다운로드 되지 않았습니다. ragnarok0226.exe 를 다운로드 하여 라그나로크가 설치된 폴더에 설치해 주시기 바랍니다.
+Hacking tool scan program has not been downloaded correctly. Please download ragnarok0226.exe and install it in RagnarokOnline directory.
+*/
+ MSG_FINDHACK_CANTDOWNLOAD = 0x2ef,
+/*20040804 to latest
+NPX.DLL 등록에러 이거나 FindHack 구동에 필요한 파일이 없습니다. ragnarok0226.exe 를 다운로드 하여 라그나로크가 설치된 폴더에 설치해 주시기 바랍니다.
+NPX.DLL register error or there is no necessary file to run FindHack. Please download ragnarok0226.exe and install it in RagnarokOnline directory.
+*/
+ MSG_FINDHACK_NOFILE = 0x2f0,
+/*20040804 to latest
+예외사항이 발생했습니다. (02-3281-0361)로 문의해주세요. 리턴값(%d)
+Exceptional Error. Please contact the customer support. Return Value: (%d)
+*/
+ MSG_FINDHACK_EXCEPTION = 0x2f1,
+/*20040804 to latest
+종료버튼을 클릭 하셨습니다.
+Exit button has been clicked.
+*/
+ MSG_FINDHACK_EXITPRESSED = 0x2f2,
+/*20040804 to latest
+Findhack 업데이트 서버접근 실패하였습니다. 잠시 후에 다시 시도해 주시거나 그라비티 운영팀으로 연락해주시기 바랍니다.
+Unable to connect Findhack Update Server. Please try again or contact the customer support.
+*/
+ MSG_FINDHACK_UPDATEFAILED = 0x2f3,
+/*20040804 to latest
+사랑받고있는
+Beloved
+*/
+ MSG_NAMED_PET = 0x2f4,
+/*20040804 to latest
+/report or /신고 : 신고용 갈무리 파일을 저장합니다.
+/report: Save a chat log file.
+*/
+ MSG_REPORTCOMMAND_EXPLANATION = 0x2f5,
+/*20040804 to latest
+이 파일은 (주)그라비티의 운영팀에서 게임내의 부정행위나 비매너 행위에 대한
+증거자료로 사용하게 됩니다.
+문서를 다른 문서 형식으로 저장하거나 내용을 변경하여 원본과 일치하지 않게
+ 될 경우 그 문서는 증거 효력을 상실하게 됩니다.
+Chat logs are not accepted as evidence for any ill-mannered violation on account of possible file modifications. However this feature is provided for players' personal reference.
+*/
+ MSG_REPORTTEXT_HEADER = 0x2f6,
+/*20040804 to latest
+당신을 사랑해요 ♡
+I love you.
+*/
+ MSG_LOVE_SKILL = 0x2f7,
+/*20040804 to latest
+화면 또는 이펙트가 밝아서 눈에 부담이 되시는분들은 모니터의 밝기를 조정해주시기바랍니다.
+Please adjust your monitor/video brightness if effects appear too bright.
+*/
+ MSG_EXPLAIN_BRIGHT = 0x2f8,
+/*20040804 to latest
+전체화면모드가 잘안되는 경우에 게임실행후 ALT+TAB으로 화면을 전환하면 잘되는 기종도 있습니다
+If full screen mode fails to work, it is suggested you alt+tab [or ctrl+esc] to inactivate and reactivate the Ragnarok Client.
+*/
+ MSG_EXPLAIN_ALTTAB = 0x2f9,
+/*20040804 to latest
+(%d 명) - 유료서버
+(%d players) - Pay to Play Server
+*/
+ MSG_SERVER_PROPERTY_PAY = 0x2fa,
+/*20040804 to latest
+(%d 명) - 무료서버
+(%d players) - Free Server
+*/
+ MSG_SERVER_PROPERTY_FREE = 0x2fb,
+/*20040804 to latest
+무료 회원은 유료 서버로 접속할 수 없습니다.
+Trial players can't connect Pay to Play Server.
+*/
+ MSG_CANT_CONNECT_TO_PAY_SERVER = 0x2fc,
+/*20040804 to latest
+마우스 우클릭으로 F9에 저장한 스킬을 쓸수있습니다 [/q1 ON]
+Right click menu skills for F9 are Enabled.[/q1 ON]
+*/
+ MSG_QUICKSPELL_ON = 0x2fd,
+/*20040804 to latest
+마우스 우클릭으로 스킬을 사용하지 못합니다 [/q1 OFF]
+Right click menu skills for F9 are Disabled.[/q1 OFF]
+*/
+ MSG_QUICKSPELL_OFF = 0x2fe,
+/*20040804 to latest
+/quickspell : 마우스 우클릭으로 F9에 저장한 스킬을 사용합니다 On Off
+/quickspell: Right-click menu enables you to use skills assigned to the F9 hotkey. On | Off
+*/
+ MSG_EXPLAIN_QUICKSPELL = 0x2ff,
+/*20040804 to latest
+마우스의 WHEEL을 사용해서 F7 과 F8에 저장한 스킬을 사용합니다 [/q2 ON]
+Mouse wheel skills for F7 and F8 are Enabled.[/q2 ON]
+*/
+ MSG_QUICKSPELL2_ON = 0x300,
+/*20040804 to latest
+마우스 WHEEL로 스킬을 사용하지 못합니다 [/q2 OFF]
+Mouse wheel skills for F7 and F8 are Disabled.[/q2 OFF]
+*/
+ MSG_QUICKSPELL2_OFF = 0x301,
+/*20040804 to latest
+/quickspell2 : 마우스 WHEEL을 위,아래로 굴려서 F7과F8에 저장한 스킬을 사용합니다 On Off
+/quickspell2: By rolling the mouse wheel up and down, you are able to use skills registered on F7 and F8 hotkeys. On | Off
+*/
+ MSG_EXPLAIN_QUICKSPELL2 = 0x302,
+/*20040804 to latest
+/q3 : /quickspell (/q1) + /quickspell2 (/q2)
+/q3: /quickspell (/q1) + /quickspell2 (/q2)
+*/
+ MSG_EXPLAIN_QUICKSPELL3 = 0x303,
+/*20040804 to latest
+/찌릿
+/bzz
+*/
+ MSG_EMOTION_STARE = 0x304,
+/*20040804 to latest
+/밥
+/rice
+*/
+ MSG_EMOTION_HUNGRY = 0x305,
+/*20040804 to latest
+/멋져
+/awsm
+*/
+ MSG_EMOTION_COOL = 0x306,
+/*20040804 to latest
+/메롱
+/meh
+*/
+ MSG_EMOTION_MERONG = 0x307,
+/*20040804 to latest
+/부끄
+/shy
+*/
+ MSG_EMOTION_SHY = 0x308,
+/*20040804 to latest
+/쓱쓱
+/pat
+*/
+ MSG_EMOTION_GOODBOY = 0x309,
+/*20040804 to latest
+/엠탐
+/mp
+*/
+ MSG_EMOTION_SPTIME = 0x30a,
+/*20040804 to latest
+/질질
+/slur
+*/
+ MSG_EMOTION_SEXY = 0x30b,
+/*20040804 to latest
+/컴온
+/com
+*/
+ MSG_EMOTION_COMEON = 0x30c,
+/*20040804 to latest
+/하품
+/yawn
+*/
+ MSG_EMOTION_SLEEPY = 0x30d,
+/*20040804 to latest
+/축하
+/grat
+*/
+ MSG_EMOTION_CONGRATULATION = 0x30e,
+/*20040804 to latest
+/피탐
+/hp
+*/
+ MSG_EMOTION_HPTIME = 0x30f,
+/*20040804 to latest
+/이모션 : 현재 사용가능한 이모션의 리스트를 보여줍니다.
+/emotion: views the emoticon list.
+*/
+ MSG_EXPLAIN_EMOTION = 0x310,
+/*20040804 to latest
+키보드를 이용해서 스킬단축창 1,2,3의 스킬들을 사용합니다. [/bm ON]
+Skills assigned to shortcut windows 1, 2, 3 are Enabled. [/bm ON]
+*/
+ MSG_BATTLE_ON = 0x311,
+/*20040804 to latest
+키보드를 이용해서 스킬단축창 1,2,3의 스킬들을 사용하지못합니다. [/bm OFF]
+Skills assigned to shortcut windows 1, 2, 3 are Disabled. [/bm OFF]
+*/
+ MSG_BATTLE_OFF = 0x312,
+/*20040804 to latest
+/battlemode : Q ~ O 를 누르면 스킬단축창2의 스킬들이 사용됩니다.
+/battlemode: allows you to use skills assigned to Shortcut Window 2 by pressing Q ~ O keys.
+*/
+ MSG_EXPLAIN_BATTLE = 0x313,
+/*20040804 to latest
+ A ~ L 을 누르면 스킬단축창3의 스킬들이 사용됩니다.
+A ~ L keys allow you to use skills assigned to Shortcut Window 3.
+*/
+ MSG_EXPLAIN_BATTLE2 = 0x314,
+/*20040804 to latest
+라그나로크를 실행하실때 다른 프로그램을 띄우시면 게임이 느려질수도있습니다.
+Please remember, programs running in the background while playing may affect the game's performance.
+*/
+ MSG_EXPLAIN_LAG = 0x315,
+/*20040804 to 20041130
+천사님 제 목소리 들리세여? ^^;
+20041206 to latest
+천사님 제 목소리 들리세요? ^^;
+Dear angel, can you hear my voice?
+*/
+ MSG_SUPERNOVICE1 = 0x316,
+/*20040804 to latest
+슈퍼노비스
+Super Novice
+*/
+ MSG_SUPERNOVICE2 = 0x317,
+/*20040804 to 20041130
+예여~
+20041206 to latest
+예요~
+Super Novice~
+*/
+ MSG_SUPERNOVICE3 = 0x318,
+/*20040804 to 20041130
+저 좀 도와주세여~ ㅠ_ㅠ
+20041206 to latest
+저 좀 도와주세요~ ㅠ_ㅠ
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE4 = 0x319,
+/*20040804 to 20041011
+ 입양을 요청해왔습니다. 승낙하시겠습니까?
+20041018 to latest
+님께서 당신을 입양시키고 싶어하십니다. 승낙하시겠습니까?
+ wishes to adopt you. Do you accept?
+*/
+ MSG_SUGGEST_BABY = 0x31a,
+/*20040804 to latest
+ Z ~ > 을 누르면 스킬단축창1의 스킬들이 사용됩니다. On Off
+Z ~ > keys allow you to use skills assigned on shortcut window 1. On | Off
+*/
+ MSG_EXPLAIN_BATTLE3 = 0x31b,
+/*20040804 to latest
+ Space를 한번 누른뒤에 글자를 입력하면 채팅을 할수있습니다.
+Press the space bar to Chat when in Battle mode [/battlemode | /bm].
+*/
+ MSG_EXPLAIN_BATTLE4 = 0x31c,
+/*20040804 to latest
+게임가드 파일이 없거나 변조되었습니다. 게임가드 셋업 파일을 설치해보시기 바랍니다.
+"Either there's no Game Guard installed on the program or Game Guard is cracked. Please, try to reinstall Game Guard from its setup file."
+*/
+ MSG_NPGAMEMON_ERROR_AUTH_GAMEGUARD = 0x31d,
+/*20040804 to latest
+윈도우의 일부 시스템 파일이 손상되었습니다. 인터넷 익스플로러(IE)를 다시 설치해보시기 바랍니다.
+Some of Windows system files have been damaged. Please re-install your Internet Explorer.
+*/
+ MSG_NPGAMEMON_ERROR_CRYPTOAPI = 0x31e,
+/*20040804 to latest
+게임가드 실행에 실패했습니다. 게임가드 셋업 파일을 다시 설치해보시기 바랍니다.
+"Failed to run Game Guard. Please, try to reinstall Game Guard from its setup file."
+*/
+ MSG_NPGAMEMON_ERROR_EXECUTE = 0x31f,
+/*20040804 to latest
+불법 프로그램이 발견되었습니다. 불필요한 프로그램을 종료한 후 다시 실행해보시기 바랍니다.
+"At least one hazardous program has been detected. Please, terminate all the unnecessary programs before executing Game Guard."
+*/
+ MSG_NPGAMEMON_ERROR_ILLEGAL_PRG = 0x320,
+/*20040804 to latest
+게임가드 업데이트를 취소하셨습니다. 접속이 계속 되지 않을 경우 인터넷 및 방화벽 상태를 점검해보시기 바랍니다.
+"Game Guard update is canceled. If the disconnection continues, please, check your internet or firewall settings."
+*/
+ MSG_NPGMUP_ERROR_ABORT = 0x321,
+/*20040804 to latest
+게임가드 업데이트 서버 접속에 실패하였습니다. 잠시 후 재시도 해보거나, 인터넷 및 방화벽 상태를 점검해 보시기 바랍니다.
+"Failed to connect to Game Guard update server. Try to connect again later, or try to check the internet or firewall settings."
+*/
+ MSG_NPGMUP_ERROR_CONNECT = 0x322,
+/*20040804 to latest
+게임가드 업데이트를 완료하지 못 했습니다. 바이러스 검사를 해보시거나, PC 관리 프로그램을 사용하시면 설정을 조정한 후 게임을 실행해 보시기 바랍니다.
+"Can't complete Game Guard update process. Please, try to execute a vaccine program to remove viruses. Or, please try to modify the settings of your PC managing tool if you are using any."
+*/
+ MSG_NPGMUP_ERROR_AUTH = 0x323,
+/*20040804 to latest
+/notrade : 거래신청을 자동으로 거절합니다 On Off
+/notrade: Declines trade offers automatically. On | Off
+*/
+ MSG_EXPLAIN_NOTRADE = 0x324,
+/*20040804 to 20040805
+거래신청을 자동으로 거절합니다 [/nt ON]
+20040809 to latest
+거래신청과 친구등록요청을 자동으로 거절합니다 [/nt ON]
+Auto decline trade offers has been Enabled. [/nt ON]
+*/
+ MSG_NOTRADE_ON = 0x325,
+/*20040804 to 20040805
+거래신청을 정상적으로 받습니다 [/nt OFF]
+20040809 to latest
+거래신청과 친구등록요청을 정상적으로 받습니다 [/nt OFF]
+Auto decline trade offers has been Disabled. [/nt OFF]
+*/
+ MSG_NOTRADE_OFF = 0x326,
+/*20040804 to latest
+같은 아이템은 한번에 30000개 이상은 살수 없습니다.
+You cannot buy more than 30,000ea items at once.
+*/
+ MSG_LIMIT_BUY_ITEM = 0x327,
+/*20040804 to latest
+재료가 충분하지 않습니다.
+You do not have enough ingredients.
+*/
+ MSG_NOT_ENOUGH_SOURCE = 0x328,
+/*20040804 to latest
+%s에 계정정보가 남아있습니다.
+Login information remains at %s.
+*/
+ MSG_ALREADY_CONNECT = 0x329,
+/*20040804 to 20040906
+해킹 관련 조사를 위해 로그인이 금지되 었습니다. 자세한 문의는 해킹관련 메일로 하여주시기 바랍니다.
+20040913 to latest
+계정도용 조사를 위해 로그인이 금지되었습니다. 자세한 문의는 계정도용 관련 문의 메일로 해주시기 바랍니다.
+Account has been locked for a hacking investigation. Please contact the GM Team for more information.
+*/
+ MSG_HACKING_INVESTIGATION = 0x32a,
+/*20040804 to latest
+귀하는 버그관련 조사중이므로 일시적으로 접속을 금합니다
+This account has been temporarily prohibited from login due to a bug-related investigation.
+*/
+ MSG_BUG_INVESTIGATION = 0x32b,
+/*20040804 to latest
+수리가능한 아이템
+Repairable items
+*/
+ MSG_REPAIRITEMLIST = 0x32c,
+/*20040804 to latest
+아이템 수리 성공
+Item has been successfully repaired.
+*/
+ MSG_ITEM_REPAIR_SUCCEESS = 0x32d,
+/*20040804 to latest
+아이템 수리 실패 (재료 또는 상대와의 거리등을 확인해주십시요)
+You have failed to repair this item. Please check the distance between you and opponent.
+*/
+ MSG_ITEM_REPAIR_FAIL = 0x32e,
+/*20040804 to latest
+시스템 상황을 지속적으로 체크 합니다.[운영자모드] [/sc ON]
+System process enabled [GM mode] [/sc ON]
+*/
+ MSG_SYSTEM_CHECK_ON = 0x32f,
+/*20040804 to latest
+시스템 상황을 지속적으로 체크 하지 않습니다.[운영자모드] [/sc OFF]
+System process disabled [GM mode] [/sc OFF]
+*/
+ MSG_SYSTEM_CHECK_OFF = 0x330,
+/*20040804 to latest
+/systemcheck : 시스템 상황을 지속적으로 체크 합니다.[운영자모드]
+/systemcheck: Check the system process [GM mode] On | Off
+*/
+ MSG_EXPLAIN_SYSTEM_CHECK = 0x331,
+/*20040804 to latest
+(%s)님이 친구 신청을 하셨습니다. 친구가 되시겠습니까?
+(%s) wishes to be friends with you. Would you like to accept?
+*/
+ MSG_SUGGEST_JOIN_FRIEND = 0x332,
+/*20040804 to latest
+더 이상 친구 등록을 하실수 없습니다.
+Your Friend List is full.
+*/
+ MSG_FRIEND_ADD_ME_OVERSIZE = 0x333,
+/*20040804 to latest
+(%s)님이 더 이상 친구 등록을 하실수 없습니다.
+(%s)'s Friend List is full.
+*/
+ MSG_FRIEND_ADD_OTHER_OVERSIZE = 0x334,
+/*20040804 to latest
+(%s)님과 친구가 되셨습니다.
+You have become friends with (%s).
+*/
+ MSG_FRIEND_ADD_SUCCEED = 0x335,
+/*20040804 to latest
+(%s)님이 친구 되기를 원하지 않습니다.
+(%s) does not want to be friends with you.
+*/
+ MSG_FRIEND_ADD_FALSE = 0x336,
+/*20040804 to latest
+이 캐릭터는 %s 까지 블럭되어있습니다.
+This character will be blocked to use until %s.
+*/
+ MSG_BLOCKED = 0x337,
+/*20040804 to latest
+천만제니 이상 입력하셔도 가격은 천만제니로 판매됩니다.
+Price will be fixed at 10,000,000 zeny, even if you enter higher price.
+*/
+ MSG_OVERPRICE = 0x338,
+/*20040804 to latest
+(적음)
+(Very low)
+*/
+ MSG_LITTLEUSER = 0x339,
+/*20040804 to latest
+(약간 적음)
+(Low)
+*/
+ MSG_ALITTLEUSER = 0x33a,
+/*20040804 to latest
+(보통)
+(Normal)
+*/
+ MSG_NORMLEUSER = 0x33b,
+/*20040804 to latest
+(많음)
+(High)
+*/
+ MSG_MANYUSER = 0x33c,
+/*20040804 to latest
+(매우 많음)
+(Very high)
+*/
+ MSG_VERYMANYUSER = 0x33d,
+/*20040804 to latest
+비매너에 의해 운영자로부터 채팅금지가 적용됩니다.
+You have been blocked from using chat and skills for %d minutes by the GM Team.
+*/
+ MSG_GM_BAD_MANNER_START = 0x33e,
+/*20040804 to latest
+GM에 의한 채팅금지가 %d 분 남아 있습니다.
+%d minutes remain until release from the GM penalty.
+*/
+ MSG_GM_BAD_MANNER_REMAIN = 0x33f,
+/*20040804 to latest
+GM에 의한 채팅금지가 해지 되었습니다.
+You have been released from the GM penalty.
+*/
+ MSG_GM_BAD_MANNER_END = 0x340,
+/*20040804 to latest
+도배 방지 시스템으로 인한 자동 채팅금지가 적용됩니다.
+You have been blocked from using chat and skills for %d as an automatic penalty.
+*/
+ MSG_AUTO_BAD_MANNER_START = 0x341,
+/*20040804 to latest
+도배 방지 시스템으로 인한 채팅금지가 %d 분 남아 있습니다.
+%d minutes remain until release from auto penalty.
+*/
+ MSG_AUTO_BAD_MANNER_REMAIN = 0x342,
+/*20040804 to latest
+도배 방지 시스템으로 인한 채팅금지가 해지되었습니다. 게임진행 시에는 도배에 대해서 주의하여 주시기 바랍니다.
+You have been released from the auto penalty. Please refrain from spamming in-game.
+*/
+ MSG_AUTO_BAD_MANNER_END = 0x343,
+/*20040804 to latest
+%s님과 %s님이 이혼하셨습니다.
+%s and %s have divorced from each other.
+*/
+ MSG_DIVORCE = 0x344,
+/*20040804 to 20041108
+星鬪士 %s의 태양의 장소로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 태양의 장소로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Solar Space.
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 태양의 장소로 %s 가 지정됐습니다.
+*/
+ MSG_STARPLACE1 = 0x345,
+/*20040804 to 20041108
+星鬪士 %s의 달의 장소로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 달의 장소로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Luna Space.
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 달의 장소로 %s 가 지정됐습니다.
+*/
+ MSG_STARPLACE2 = 0x346,
+/*20040804 to 20041108
+星鬪士 %s의 별의 장소로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 별의 장소로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Stellar Space.
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 별의 장소로 %s 가 지정됐습니다.
+*/
+ MSG_STARPLACE3 = 0x347,
+/*20040804 to 20041108
+星鬪士 %s의 태양의 장소는 %s 입니다
+20041115 to latest
+拳聖 %s의 태양의 장소는 %s 입니다
+Gravity %s's Solar Space: %s
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 태양의 장소는 %s 입니다
+*/
+ MSG_STARPLACE4 = 0x348,
+/*20040804 to 20041108
+星鬪士 %s의 달의 장소는 %s 입니다
+20041115 to latest
+拳聖 %s의 달의 장소는 %s 입니다
+Gravity %s's Luna Space: %s
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 달의 장소는 %s 입니다
+*/
+ MSG_STARPLACE5 = 0x349,
+/*20040804 to 20041108
+星鬪士 %s의 별의 장소는 %s 입니다
+20041115 to latest
+拳聖 %s의 별의 장소는 %s 입니다
+Gravity %s's Stellar Space: %s
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 별의 장소는 %s 입니다
+*/
+ MSG_STARPLACE6 = 0x34a,
+/*20040804 to 20041108
+星鬪士 %s의 태양의 몬스터로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 태양의 몬스터로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Solar Monster.
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 태양의 몬스터로 %s 가 지정됐습니다.
+*/
+ MSG_STARMONSTER1 = 0x34b,
+/*20040804 to 20041108
+星鬪士 %s의 달의 몬스터로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 달의 몬스터로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Luna Monster.
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 달의 몬스터로 %s 가 지정됐습니다.
+*/
+ MSG_STARMONSTER2 = 0x34c,
+/*20040804 to 20041108
+星鬪士 %s의 별의 몬스터로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 별의 몬스터로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Stellar Monster.
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 별의 몬스터로 %s 가 지정됐습니다.
+*/
+ MSG_STARMONSTER3 = 0x34d,
+/*20040804 to 20041108
+星鬪士 %s의 태양의 몬스터는 %s 입니다
+20041115 to latest
+拳聖 %s의 태양의 몬스터는 %s 입니다
+Gravity %s's Solar Monster: %s
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 태양의 몬스터는 %s 입니다
+*/
+ MSG_STARMONSTER4 = 0x34e,
+/*20040804 to 20041108
+星鬪士 %s의 달의 몬스터는 %s 입니다
+20041115 to latest
+拳聖 %s의 달의 몬스터는 %s 입니다
+Gravity %s's Luna Monster: %s
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 달의 몬스터는 %s 입니다
+*/
+ MSG_STARMONSTER5 = 0x34f,
+/*20040804 to 20041108
+星鬪士 %s의 별의 몬스터는 %s 입니다
+20041115 to latest
+拳聖 %s의 별의 몬스터는 %s 입니다
+Gravity %s's Stellar Monster: %s
+20041220 to 20050816
+태양과 달과 별의 전사 %s의 별의 몬스터는 %s 입니다
+*/
+ MSG_STARMONSTER6 = 0x350,
+/*20040804 to latest
+/window : 창 위치 이동시 다른 창과 달라붙는 속성이 들어갑니다 On Off
+/window: Display windows will snap/dock together. On | Off
+*/
+ MSG_EXPLAIN_WINDOW = 0x351,
+/*20040804 to latest
+창 위치 이동시 다른 창과 잘 붙습니다 [/wi ON]
+Display window docking enabled. [/wi ON]
+*/
+ MSG_WINDOW_ON = 0x352,
+/*20040804 to latest
+창 위치 이동시 다른 창과 붙으려는 속성을 가지지 않습니다 [/wi OFF]
+Display window docking disabled. [/wi OFF]
+*/
+ MSG_WINDOW_OFF = 0x353,
+/*20040804 to latest
+/pvpinfo : 자신의 PVP 승패와 PVP 포인트를 알 수 있습니다.
+/pvpinfo: shows your PVP result and PVP points.
+*/
+ MSG_EXPLAIN_PVP_INFO = 0x354,
+/*20040804 to latest
+현재 %d승, %d패, PVP포인트는 %d입니다.
+You have won %d times and have lost %d times in PVP. Current points %d.
+*/
+ MSG_PVP_INFO = 0x355,
+/*20040804 to latest
+매너 포인트를 성공적으로 보냈습니다.
+A manner point has been successfully aligned.
+*/
+ MSG_SEND_MANNER_POINT = 0x356,
+#if PACKETVER >= 20040809
+/*20040809 to latest
+현재 이곳은 PK 가능 지역입니다. 불의의 공격에 유의 하시기 바랍니다.
+You are in a PK area. Please beware of sudden attack.
+*/
+ MSG_PKZONE = 0x357,
+#endif
+#if PACKETVER >= 20040817
+/*20040817 to latest
+게임가드 업데이트가 바이러스나 스파이웨어와의 충돌로 실패했습니다. 백신 프로그램/스파이웨어 제거 프로그램을 사용한 후 접속해 주십시기 바랍니다
+Game Guard update has been failed when either Virus or Spyware conflicted with. Please, Uninstall Spyware and Virus protection program before you log in.
+*/
+ MSG_NPGAMEMON_ERROR_100ERROR = 0x358,
+#endif
+#if PACKETVER >= 20040823
+/*20040823 to latest
+윈도우 호환성 문제로 프로그램을 종료합니다. 게임을 다시 실행해 주시기 바랍니다
+Program has encountered an error related to Windows compatibility. Please start the game again.
+*/
+ MSG_NPGAMEMON_XP_COMPATIBILITY = 0x359,
+#endif
+#if PACKETVER >= 20040906
+/*20040906 to latest
+채팅, 스킬, 아이템을 사용할수없게 되었습니다.
+You have been blocked from chatting, using skills and items.
+*/
+ MSG_PK_HONOR = 0x35a,
+/*20040906 to latest
+캐릭터 삭제 작업중이므로 접속이 일시적으로 제한됩니다.
+Login is temporarily unavailable while this character is being deleted.
+*/
+ MSG_DELETING_CHAR = 0x35b,
+/*20040906 to latest
+결혼 상대자의 캐릭터 삭제 작업중이므로 접속이 일시적으로 제한됩니다.
+Login is temporarily unavailable while your spouse character is being deleted.
+*/
+ MSG_DELETING_SPOUSE_CHAR = 0x35c,
+#endif
+#if PACKETVER >= 20040913
+/*20040913 to latest
+Novice
+*/
+ MSG_NOVICE = 0x35d,
+/*20040913 to latest
+Swordman
+*/
+ MSG_SWORDMAN = 0x35e,
+/*20040913 to latest
+Magician
+Mage
+*/
+ MSG_MAGICIAN = 0x35f,
+/*20040913 to latest
+Archer
+*/
+ MSG_ARCHER = 0x360,
+/*20040913 to latest
+Acolyte
+*/
+ MSG_ACOLYTE = 0x361,
+/*20040913 to latest
+Merchant
+*/
+ MSG_MERCHANT = 0x362,
+/*20040913 to latest
+Thief
+*/
+ MSG_THIEF = 0x363,
+/*20040913 to latest
+Knight
+*/
+ MSG_KNIGHT = 0x364,
+/*20040913 to latest
+Prieset
+Priest
+*/
+ MSG_PRIEST = 0x365,
+/*20040913 to latest
+Wizerd
+Wizard
+*/
+ MSG_WIZARD = 0x366,
+/*20040913 to latest
+Blacksmith
+*/
+ MSG_BLACKSMITH = 0x367,
+/*20040913 to latest
+Hunter
+*/
+ MSG_HUNTER = 0x368,
+/*20040913 to latest
+Assassin
+*/
+ MSG_ASSASSIN = 0x369,
+/*20040913 to latest
+Novice
+*/
+ MSG_NOVICE_W = 0x36a,
+/*20040913 to latest
+Swordman
+*/
+ MSG_SWORDMAN_W = 0x36b,
+/*20040913 to latest
+Magician
+Mage
+*/
+ MSG_MAGICIAN_W = 0x36c,
+/*20040913 to latest
+Archer
+*/
+ MSG_ARCHER_W = 0x36d,
+/*20040913 to latest
+Acolyte
+*/
+ MSG_ACOLYTE_W = 0x36e,
+/*20040913 to latest
+Merchant
+*/
+ MSG_MERCHANT_W = 0x36f,
+/*20040913 to latest
+Thief
+*/
+ MSG_THIEF_W = 0x370,
+/*20040913 to latest
+Knight
+*/
+ MSG_KNIGHT_W = 0x371,
+/*20040913 to latest
+Prieset
+Priest
+*/
+ MSG_PRIEST_W = 0x372,
+/*20040913 to latest
+Wizerd
+Wizard
+*/
+ MSG_WIZARD_W = 0x373,
+/*20040913 to latest
+Blacksmith
+*/
+ MSG_BLACKSMITH_W = 0x374,
+/*20040913 to latest
+Hunter
+*/
+ MSG_HUNTER_W = 0x375,
+/*20040913 to latest
+Assassin
+*/
+ MSG_ASSASSIN_W = 0x376,
+#endif
+#if PACKETVER >= 20041018
+/*20041018 to latest
+(%s)님을 아이로 입양신청
+Send an adoption request to %s
+*/
+ MSG_REQ_JOIN_BABY = 0x377,
+/*20041018 to 20041025
+아이가 되시면 전승을 하실수 없게 됩니다. 그래도 괜찮습니까?
+20041101 to latest
+아이가 되면 전승을 할수없고 스텟은 80이상 올릴수없게되며 HP와 SP가 줄어듭니다. 그래도 괜찮습니까?
+When you become a child, you will be unable to become a Transcendent Class character, all stats will be limited to a maximum of 80, and Max HP/SP will be reduced. Are you sure that you want to be adopted?
+*/
+ MSG_SUGGEST_BABY2 = 0x378,
+#endif
+#if PACKETVER >= 20041101
+/*20041101 to latest
+모든 나쁜 상태이상이 제거 되었습니다.
+All abnormal status effects have been removed.
+*/
+ MSG_GOSPEL1 = 0x379,
+/*20041101 to latest
+1분간 모든 상태이상에 대해 면역이 됩니다.
+You will be immune to abnormal status effects for the next minute.
+*/
+ MSG_GOSPEL2 = 0x37a,
+/*20041101 to latest
+1분간 최대 생명력이 크게 늘어납니다.
+Your Max HP will stay increased for the next minute.
+*/
+ MSG_GOSPEL3 = 0x37b,
+/*20041101 to latest
+1분간 최대 마법력이 크게 늘어납니다.
+Your Max SP will stay increased for the next minute.
+*/
+ MSG_GOSPEL4 = 0x37c,
+/*20041101 to latest
+1분간 모든 능력이 크게 상승합니다.
+All of your Stats will stay increased for the next minute.
+*/
+ MSG_GOSPEL5 = 0x37d,
+/*20041101 to latest
+1분간 사용하는 무기에 성스러운 속성이 부여됩니다.
+Your weapon will remain blessed with Holy power for the next minute.
+*/
+ MSG_GOSPEL6 = 0x37e,
+/*20041101 to latest
+1분간 사용하는 갑옷에 성스러운 속성이 부여됩니다.
+Your armor will remain blessed with Holy power for the next minute.
+*/
+ MSG_GOSPEL7 = 0x37f,
+/*20041101 to latest
+10초간 방어력이 크게 상승합니다.
+Your Defense will stay increased for the next 10 seconds.
+*/
+ MSG_GOSPEL8 = 0x380,
+/*20041101 to latest
+1분간 공격력이 크게 증가합니다.
+Your Attack strength will be increased for the next minute.
+*/
+ MSG_GOSPEL9 = 0x381,
+/*20041101 to latest
+1분간 명중률과 회피율이 크게 상승합니다.
+Your Accuracy and Flee Rate will be increased for the next minute.
+*/
+ MSG_GOSPEL10 = 0x382,
+#endif
+#if PACKETVER >= 20041108
+/*20041108 to latest
+아이를 한번 입양했던 부부는 추가 입양이 불가능합니다.
+You cannot adopt more than 1 child.
+*/
+ MSG_BABY1 = 0x383,
+/*20041108 to latest
+부부가 둘다 레벨70이 넘어야 아이를 입양할수있습니다.
+You must be at least character level 70 in order to adopt someone.
+*/
+ MSG_BABY2 = 0x384,
+/*20041108 to 20041108
+블랙스미스 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+20041115 to latest
+[POINT] 블랙스미스 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[Point] You have been rewarded with %d Blacksmith rank points. Your point total is %d.
+*/
+ MSG_BLACKSMITH_POINT = 0x385,
+/*20041108 to 20041108
+알케미스트 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+20041115 to latest
+[POINT] 알케미스트 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[Point] You have been rewarded with %d Alchemist rank points. Your point total is %d.
+*/
+ MSG_ALCHEMIST_POINT = 0x386,
+#endif
+#if PACKETVER >= 20041115
+/*20041115 to 20041130
+천사님 제 목소리 들리세요? ^^;
+Dear angel, can you hear my voice?
+20041206 to latest
+X
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE11 = 0x387,
+/*20041115 to 20041130
+슈퍼노비스
+Super Novice
+20041206 to latest
+X
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE12 = 0x388,
+/*20041115 to 20041130
+예요~
+Super Novice~
+20041206 to latest
+X
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE13 = 0x389,
+/*20041115 to 20041130
+저 좀 도와주세요~ ㅠ_ㅠ
+Help me out~ Please~ T_T
+20041206 to latest
+X
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE14 = 0x38a,
+/*20041115 to latest
+/notalkmsg2 : 채팅내용을 채팅창에 표시하지 않습니다 (길드말 포함) On Off
+/notalkmsg2: Hides chat messages(including guild chat). On Off
+*/
+ MSG_EXPLAIN_NOTALKMSG2 = 0x38b,
+/*20041115 to latest
+채팅내용을 채팅창에 표시합니다 [/nm2 ON]
+Show chat messages. [/nm2 ON]
+*/
+ MSG_NOTALKMSG2_ON = 0x38c,
+/*20041115 to latest
+채팅내용을 채팅창에 표시하지않습니다 (길드말 포함) [/nm2 OFF]
+Hide chat messages(including guild chat) [/nm2 OFF]
+*/
+ MSG_NOTALKMSG2_OFF = 0x38d,
+#endif
+#if PACKETVER >= 20041129
+/*20041129 to latest
+제련가능한 아이템
+Upgradable Weapons
+*/
+ MSG_REFINEITEMLIST = 0x38e,
+/*20041129 to latest
+제련한 무기 : %s
+Weapons upgraded: %s
+*/
+ MSG_ITEM_REFINE_SUCCEESS = 0x38f,
+/*20041129 to latest
+제련한 무기 : %s
+Weapons upgraded: %s
+*/
+ MSG_ITEM_REFINE_FAIL = 0x390,
+/*20041129 to latest
+무기제련스킬의 레벨이 부족해서 %s 제련을 할수없습니다.
+You cannot upgrade %s until you level up your Upgrade Weapon skill.
+*/
+ MSG_ITEM_REFINE_FAIL_LEVEL = 0x391,
+/*20041129 to latest
+제련에 필요한 아이템 (%s) 이 없으므로 제련할수없습니다.
+You lack a necessary item %s to upgrade this weapon.
+*/
+ MSG_ITEM_REFINE_FAIL_MATERIAL = 0x392,
+#endif
+#if PACKETVER >= 20041206
+/*20041206 to latest
+완벽하게 코팅되어있어서 풀스트립이 통하지 않습니다.
+Full Divestment cannot pierce the target. The target is fully shielded.
+*/
+ MSG_FULLSTRIP = 0x393,
+#endif
+#if PACKETVER >= 20041213
+/*20041213 to latest
+결혼한 캐릭터는 입양시킬수 없습니다.
+You cannot adopt a married person.
+*/
+ MSG_BABY3 = 0x394,
+#endif
+#if PACKETVER >= 20041220
+/*20041220 to latest
+친구로 등록된 이름과 비슷하지만 등록된 이름이 아닙니다. 아는사람인지 확인하십시요.
+This name is not registered in your Friend List. Please check the name again.
+*/
+ MSG_ID_WARNING = 0x395,
+/*20041220 to latest
+/hi 또는 /hi 문장 : 친구로 등록된 캐릭터들에게 인사를 합니다.
+/hi or /hi message: Send greetings to people who are online and registered on your Friend List.
+*/
+ MSG_EXPLAIN_HI = 0x396,
+#endif
+#if PACKETVER >= 20041227
+/*20041227 to latest
+길드원의 이름과 비슷하지만 길드원이 아닙니다. 길드원인지 확인하십시요.
+This character is not your guildsman. Please check the name again.
+*/
+ MSG_ID_WARNING_GUILD = 0x397,
+#endif
+#if PACKETVER >= 20050117
+/*20050117 to latest
+9999만제니 이상 입력하셔도 가격은 9999만제니로 판매됩니다.
+Please be aware that the maximum selling price is fixed as 2 Billion. You cannot sell an item higher than that.
+*/
+ MSG_OVERPRICE9999 = 0x398,
+#endif
+#if PACKETVER >= 20050131
+/*20050131 to latest
+친구의 귓속말은 [ Friend ] , 길드원은 [ Member ] 로 표시됩니다.
+Whispers from friends are displayed as [ Friend ], and ones from guildsmen are displayed as [ Member ].
+*/
+ MSG_EXPLAIN_SACHING1 = 0x399,
+/*20050131 to latest
+( From 캐릭터이름 : ) 이라고 표시 되는 귓속말은 친구나 길드원이 아닙니다.
+( From character name: ) is from an anonymous character who is neither your friend nor guildsman.
+*/
+ MSG_EXPLAIN_SACHING2 = 0x39a,
+#endif
+#if PACKETVER >= 20050214
+/*20050214 to 20050310
+블랙스미스의 상위 10위권 랭킹을 보여줍니다.
+20050314 to latest
+/blacksmith : 블랙스미스의 상위 10위권 랭킹을 보여줍니다.
+/blacksmith: Shows top 10 Blacksmiths in the server.
+*/
+ MSG_EXPLAIN_BLACKSMITH = 0x39b,
+/*20050214 to 20050310
+알케미스트의 상위 10위권 랭킹을 보여줍니다.
+20050314 to latest
+/alchemist : 알케미스트의 상위 10위권 랭킹을 보여줍니다.
+/alchemist: Shows top 10 Alchemists in the server.
+*/
+ MSG_EXPLAIN_ALCHEMIST = 0x39c,
+/*20050214 to latest
+ALT+Y : 여러가지 명령어를 쉽게 쓸수있는 윈도우가 열립니다.
+ALT+Y: Opens a window which allows you to use various commands with ease.
+*/
+ MSG_EXPLAIN_ALTY = 0x39d,
+#endif
+#if PACKETVER >= 20050328
+/*20050328 to latest
+[POINT] 태권미션 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[POINT] You have been rewarded with %d Tae-Kwon Mission rank points. Your point total is %d.
+*/
+ MSG_TAEKWON_POINT = 0x39e,
+#endif
+#if PACKETVER >= 20050404
+/*20050404 to latest
+[태권미션] Target Monster : %s (%d%%)
+[Taekwon Mission] Target Monster: %s (%d%%)
+*/
+ MSG_TAEKWON_MISSION = 0x39f,
+#endif
+#if PACKETVER >= 20050502
+/*20050502 to latest
+게임가드 초기화 에러 : %lu
+Error - Failed to initialize GameGuard: %lu
+*/
+ MSG_INIT_ERROR = 0x3a0,
+/*20050502 to latest
+스피드핵이 감지되었습니다.
+Speed Hack has been detected.
+*/
+ MSG_SPEEDHACK_DETECT = 0x3a1,
+/*20050502 to latest
+불법 프로그램 (%s) 가 발견되었습니다
+The illegal program, (%s) has been detected.
+*/
+ MSG_GAMEHACK_DETECT = 0x3a2,
+/*20050502 to latest
+게임이나 게임가드가 변조되었습니다.
+The Game or Gameguard has been cracked.
+*/
+ MSG_GAMEHACK_DOUBT = 0x3a3,
+/*20050502 to latest
+게임가드가 실행 중 입니다. 잠시 후에 다시 실행해보시기 바랍니다.
+GameGuard is currently running. Please wait for sometime and restart the game.
+*/
+ MSG_ERROR_EXIST = 0x3a4,
+/*20050502 to latest
+게임이 중복 실행되었거나 게임가드가 이미 실행 중 입니다. 게임 종료 후 다시 실행해보시기 바랍니다.
+The Game or GameGuard is already running. Please close the game and restart the game.
+*/
+ MSG_GAME_EXIST = 0x3a5,
+/*20050502 to latest
+게임가드 초기화 에러입니다. 재부팅 후 다시 실행해보거나 충돌할 수 있는 다른 프로그램들을 종료한 후 실행해 보시기 바랍니다.
+Failed to intialize GameGuard. Please try again after rebooting the system or closing other programs.
+*/
+ MSG_ERROR_INIT = 0x3a6,
+/*20050502 to latest
+바이러스 및 해킹툴 검사 모듈 로딩에 실패 했습니다. 메모리 부족이거나 바이러스에 의한 감염일 수 있습니다.
+Failed to load the scan module of virus and hacking tool. It's caused by lack of memory or PC virus infection.
+*/
+ MSG_ERROR_NPSCAN = 0x3a7,
+#endif
+#if PACKETVER >= 20050509
+/*20050509 to latest
+호문클루스 정보
+Homunculus Info
+*/
+ MSG_HOMUN_INFO = 0x3a8,
+#endif
+#if PACKETVER >= 20050523
+/*20050523 to latest
+호문클루스 스킬목록
+Homunculus Skill List
+*/
+ MSG_HOMUN_SKILLLIST = 0x3a9,
+/*20050523 to latest
+호문클루스의 이름은 영문 23, 한글 11자 이내로 정해 주세요.
+Please give your Homunculus a name no longer than 23 letters.
+*/
+ MSG_HOMUN_NAME_IN23 = 0x3aa,
+/*20050523 to latest
+이름은 단 한번만 바꿀수 있습니다. 호문클루스의 이름을 ^0000ff^0000ff %s^000000^000000 로 수정합니다. 계속 하시겠습니까?
+You can name a Homunculus only once. You have entered the name, ^0000ff%s^000000. Would you like to continue?
+*/
+ MSG_HOMUN_NAME_CHANGE_ONLYONCE = 0x3ab,
+/*20050523 to latest
+지금은 부재중~
+(Away)
+*/
+ MSG_AUTO_MSG = 0x3ac,
+/*20050523 to latest
+[자동응답]
+[Automated Message]
+*/
+ MSG_AUTO_MSG2 = 0x3ad,
+/*20050523 to latest
+부재시 타인의 귓말에 자동응답합니다.
+Send an automated message while you are away.
+*/
+ MSG_AUTO_MSG_ON = 0x3ae,
+/*20050523 to latest
+부재시 타인의 귓말에 자동응답하지 않습니다.
+Cancel automated away message.
+*/
+ MSG_AUTO_MSG_OFF = 0x3af,
+/*20050523 to latest
+자동 응답 메시지를 입력하세요.
+Please enter Away Message.
+*/
+ MSG_ENTER_AUTO_MSG = 0x3b0,
+#endif
+#if PACKETVER >= 20050530
+/*20050530 to latest
+/번쩍
+/fsh
+*/
+ MSG_EMOTION_SPARK = 0x3b1,
+/*20050530 to latest
+/빙빙
+/spin
+*/
+ MSG_EMOTION_CONFUSE = 0x3b2,
+/*20050530 to latest
+/하아
+/sigh
+*/
+ MSG_EMOTION_OHNO = 0x3b3,
+/*20050530 to latest
+/덤덤
+/dum
+*/
+ MSG_EMOTION_HUM = 0x3b4,
+/*20050530 to latest
+/시끌
+/crwd
+*/
+ MSG_EMOTION_BLABLA = 0x3b5,
+/*20050530 to latest
+/좌절
+/desp
+*/
+ MSG_EMOTION_OTL = 0x3b6,
+/*20050530 to latest
+/주사위
+/dice
+*/
+ MSG_EMOTION_DICE = 0x3b7,
+/*20050530 to latest
+/pk : 학살자의 상위 10위권 랭킹을 보여줍니다.
+/pk: Shows top 10 Slayers in the server.
+*/
+ MSG_EXPLAIN_KILLER_RANK = 0x3b8,
+/*20050530 to latest
+[POINT] 학살자 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[POINT] You have been rewarded with %d Slayer rank points. Your point total is %d.
+*/
+ MSG_KILLER_POINT = 0x3b9,
+#endif
+#if PACKETVER >= 20050608
+/*20050608 to latest
+진화 가능
+Evolution Available
+*/
+ MSG_HOMUN_EVOLVE = 0x3ba,
+/*20050608 to latest
+^ff0000^ff0000호문클루스를 삭제합니다.^000000^000000 삭제하실 경우 지금까지 키운 내역이 모두 삭제됩니다. 계속하시겠습니까?
+You have decided to delete this Homunculus ^ff0000^ff0000. When deleted, the homunculus and its history will be deleted and they cannot be restored in the future. Would you like to continue?
+*/
+ MSG_DELETE_HOMUN = 0x3bb,
+#endif
+#if PACKETVER >= 20050613
+/*20050613 to latest
+호문의 상태를 파일에 저장합니다.
+Save Homunculus status as a file.
+*/
+ MSG_TRACE_AI_ON = 0x3bc,
+/*20050613 to latest
+호문의 상태를 파일에 저장하지 않습니다.
+Do not save Homunculus status as a file.
+*/
+ MSG_TRACE_AI_OFF = 0x3bd,
+/*20050613 to latest
+Crusader
+*/
+ MSG_CRUSADER = 0x3be,
+/*20050613 to latest
+Monk
+*/
+ MSG_MONK = 0x3bf,
+/*20050613 to latest
+Sage
+*/
+ MSG_SAGE = 0x3c0,
+/*20050613 to latest
+Rouge
+Rogue
+*/
+ MSG_ROGUE = 0x3c1,
+/*20050613 to latest
+Alchemist
+*/
+ MSG_ALCHEMIST = 0x3c2,
+/*20050613 to latest
+Bard
+*/
+ MSG_BARD = 0x3c3,
+/*20050613 to latest
+Crusader_W
+Crusader
+*/
+ MSG_CRUSADER_W = 0x3c4,
+/*20050613 to latest
+Monk_W
+Monk
+*/
+ MSG_MONK_W = 0x3c5,
+/*20050613 to latest
+Sage_W
+Sage
+*/
+ MSG_SAGE_W = 0x3c6,
+/*20050613 to latest
+Rouge_W
+Rogue
+*/
+ MSG_ROGUE_W = 0x3c7,
+/*20050613 to latest
+Alchemist_W
+Alchemist
+*/
+ MSG_ALCHEMIST_W = 0x3c8,
+/*20050613 to latest
+Dancer
+*/
+ MSG_DANCER = 0x3c9,
+/*20050613 to latest
+Novice High
+High Novice
+*/
+ MSG_NOVICE_H = 0x3ca,
+/*20050613 to latest
+Swordman High
+High Swordman
+*/
+ MSG_SWORDMAN_H = 0x3cb,
+/*20050613 to latest
+Magician High
+High Mage
+*/
+ MSG_MAGICIAN_H = 0x3cc,
+/*20050613 to latest
+Archer High
+High Archer
+*/
+ MSG_ARCHER_H = 0x3cd,
+/*20050613 to latest
+Acolyte High
+High Acolyte
+*/
+ MSG_ACOLYTE_H = 0x3ce,
+/*20050613 to latest
+Merchant High
+High Merchant
+*/
+ MSG_MERCHANT_H = 0x3cf,
+/*20050613 to latest
+Thief High
+High Thief
+*/
+ MSG_THIEF_H = 0x3d0,
+/*20050613 to latest
+Novice High_W
+High Novice
+*/
+ MSG_NOVICE_H_W = 0x3d1,
+/*20050613 to latest
+Swordman High_W
+High Swordman
+*/
+ MSG_SWORDMAN_H_W = 0x3d2,
+/*20050613 to latest
+Magician High_W
+High Mage
+*/
+ MSG_MAGICIAN_H_W = 0x3d3,
+/*20050613 to latest
+Archer High_W
+High Archer
+*/
+ MSG_ARCHER_H_W = 0x3d4,
+/*20050613 to latest
+Acolyte High_W
+High Acolyte
+*/
+ MSG_ACOLYTE_H_W = 0x3d5,
+/*20050613 to latest
+Merchant High_W
+High Merchant
+*/
+ MSG_MERCHANT_H_W = 0x3d6,
+/*20050613 to latest
+Thief High_W
+High Thief
+*/
+ MSG_THIEF_H_W = 0x3d7,
+/*20050613 to latest
+Lord Knight
+*/
+ MSG_KNIGHT_H = 0x3d8,
+/*20050613 to latest
+High Priest
+*/
+ MSG_PRIEST_H = 0x3d9,
+/*20050613 to latest
+High Wizard
+*/
+ MSG_WIZARD_H = 0x3da,
+/*20050613 to latest
+White Smith
+WhiteSmith
+*/
+ MSG_BLACKSMITH_H = 0x3db,
+/*20050613 to latest
+Sniper
+*/
+ MSG_HUNTER_H = 0x3dc,
+/*20050613 to latest
+Saaassin Cross
+Assassin Cross
+*/
+ MSG_ASSASSIN_H = 0x3dd,
+/*20050613 to latest
+Lord Knight_W
+Lord Knight
+*/
+ MSG_KNIGHT_H_W = 0x3de,
+/*20050613 to latest
+High Priest_W
+High Priest
+*/
+ MSG_PRIEST_H_W = 0x3df,
+/*20050613 to latest
+High Wizard_W
+High Wizard
+*/
+ MSG_WIZARD_H_W = 0x3e0,
+/*20050613 to latest
+White Smith_W
+WhiteSmith
+*/
+ MSG_BLACKSMITH_H_W = 0x3e1,
+/*20050613 to latest
+Sniper_W
+Sniper
+*/
+ MSG_HUNTER_H_W = 0x3e2,
+/*20050613 to latest
+Saaassin Cross_W
+Assassin Cross
+*/
+ MSG_ASSASSIN_H_W = 0x3e3,
+/*20050613 to latest
+Paladin
+*/
+ MSG_CRUSADER_H = 0x3e4,
+/*20050613 to latest
+Champion
+*/
+ MSG_MONK_H = 0x3e5,
+/*20050613 to latest
+Professor
+Scholar
+*/
+ MSG_SAGE_H = 0x3e6,
+/*20050613 to latest
+Stalker
+*/
+ MSG_ROGUE_H = 0x3e7,
+/*20050613 to latest
+Creator
+Biochemist
+*/
+ MSG_ALCHEMIST_H = 0x3e8,
+/*20050613 to latest
+Clown
+Minstrel
+*/
+ MSG_BARD_H = 0x3e9,
+/*20050613 to latest
+Paladin_W
+Paladin
+*/
+ MSG_CRUSADER_H_W = 0x3ea,
+/*20050613 to latest
+Champion_W
+Champion
+*/
+ MSG_MONK_H_W = 0x3eb,
+/*20050613 to latest
+Professor_W
+Professor
+*/
+ MSG_SAGE_H_W = 0x3ec,
+/*20050613 to latest
+Stalker_W
+Stalker
+*/
+ MSG_ROGUE_H_W = 0x3ed,
+/*20050613 to latest
+Creator_W
+Creator
+*/
+ MSG_ALCHEMIST_H_W = 0x3ee,
+/*20050613 to latest
+Gypsy
+*/
+ MSG_DANCER_H = 0x3ef,
+/*20050613 to latest
+비밀번호가 지정되어 있지 않습니다. 새로운 비밀번호를 지정하시겠습니까?
+You have not set a password yet. Would you like to create one now?
+*/
+ MSG_STORE_PASSWORD_REQ = 0x3f0,
+/*20050613 to latest
+비밀번호를 3회 틀려셨습니다. 나중에 다시 시도해 주세요.
+You have incorrectly entered the password 3 times. Please try again later.
+*/
+ MSG_STORE_PASSWORD_PENALTY = 0x3f1,
+/*20050613 to latest
+비밀번호 변경이 실패하였습니다.
+Password creation has failed.
+*/
+ MSG_STORE_PASSWORD_CHANGE_NG = 0x3f2,
+/*20050613 to latest
+비밀번호는 4자리 이상 8자리이하여야만 합니다.
+Password must be 4~8 letters long.
+*/
+ MSG_STORE_PASSWORD_4_8 = 0x3f3,
+/*20050613 to latest
+비밀번호
+Password
+*/
+ MSG_STORE_PASSWORD = 0x3f4,
+/*20050613 to latest
+신규 비밀번호
+New Password
+*/
+ MSG_STORE_NEW_PASSWORD = 0x3f5,
+/*20050613 to latest
+확인 비밀번호
+Confirm Password
+*/
+ MSG_STORE_RENEW_PASSWORD = 0x3f6,
+/*20050613 to latest
+비밀번호 변경이 완료되었습니다.
+Password has been changed.
+*/
+ MSG_STORE_PASSWORD_CHANGE_OK = 0x3f7,
+/*20050613 to latest
+비밀번호가 서로 다릅니다.
+Password does not match.
+*/
+ MSG_STORE_PASSWORD_MISMATCH = 0x3f8,
+/*20050613 to latest
+비밀번호 입력
+Enter Password
+*/
+ MSG_STORE_PASSWORD_INPUT = 0x3f9,
+#endif
+#if PACKETVER >= 20050624
+/*20050624 to 20050624
+호문이 아사 직전입니다!!! 밥좀 주셈~!!
+20050628 to latest
+호문이 아사 직전입니다! 먹이를 주지 않으면 가출하게됩니다.
+Your Homunculus is starving. Please feed it, otherwise it will leave you.
+*/
+ MSG_HOMUN_HUNGRY = 0x3fa,
+/*20050624 to latest
+경험치
+EXP
+*/
+ MSG_HOMUN_EXP = 0x3fb,
+#endif
+#if PACKETVER >= 20050628
+/*20050628 to latest
+[EVENT] 이벤트에 당첨되셨습니다. 게임내에서 아이템을 지급받으십시요.
+*/
+ MSG_EVENT_RESULT = 0x3fc,
+#endif
+#if PACKETVER >= 20050704
+/*20050704 to latest
+싫어함
+Hate
+*/
+ MSG_HATE = 0x3fd,
+/*20050704 to 20050704
+매우 싫어함
+20050711 to latest
+매우싫어함
+Hate with a Passion
+*/
+ MSG_VERYHATE = 0x3fe,
+#endif
+#if PACKETVER >= 20050718
+/*20050718 to latest
+호문클루스가 사용자 인공지능으로 동작합니다.
+Homunculus has been customized.
+*/
+ MSG_HOMUN_USERAI_ON = 0x3ff,
+/*20050718 to latest
+호문클루스가 기본 인공지능으로 동작합니다.
+Homunculus has been activated with the basic AI.
+*/
+ MSG_HOMUN_USERAI_OFF = 0x400,
+#endif
+#if PACKETVER >= 20050808
+/*20050808 to latest
+편지목록
+Mail List
+*/
+ MSG_MAIL_LIST = 0x401,
+/*20050808 to latest
+편지쓰기
+Write Mail
+*/
+ MSG_MAIL_WRITE = 0x402,
+/*20050808 to latest
+편지읽기
+Read Mail
+*/
+ MSG_MAIL_READ = 0x403,
+#endif
+#if PACKETVER >= 20050822
+/*20050822 to latest
+한번 지정하시면 변경이 불가능합니다! 이 맵으로 지정하시겠습니까?
+You cannot change a map's designation once it is designated. Are you sure that you want to designate this map?
+*/
+ MSG_STARPLACE_ACCEPT = 0x404,
+/*20050822 to 20050822
+보내실 아이템이 추가 되었습니다.
+20050829 to 20051017
+아이템창에 아이템이 추가 되었습니다.
+20051024 to latest
+메일 아이템을 수령했습니다.
+Item has been added in the Item Window.
+*/
+ MSG_MAIL_ADD_ITEM_SUCCESS = 0x405,
+/*20050822 to 20050822
+보내실 아이템이 추가 되지 않았습니다.
+20050829 to 20051017
+아이템창에 아이템이 추가 되지 않았습니다.
+20051024 to latest
+메일 아이템을 수령하지 못했습니다.
+You have failed to add the item in the Item Window.
+*/
+ MSG_MAIL_ADD_ITEM_FAILURE = 0x406,
+/*20050822 to latest
+메일 보내기가 성공하였습니다.
+You have successfully mailed a message.
+*/
+ MSG_MAIL_SEND_SUCCESS = 0x407,
+/*20050822 to latest
+메일 보내기가 실패하였습니다. 받는 사람이 존재하지 않습니다.
+You have failed to mail a message. Recipient does not exist.
+*/
+ MSG_MAIL_USER_NOT_FOUND = 0x408,
+#endif
+#if PACKETVER >= 20050829
+/*20050829 to latest
+[태양과 달과 별의 천사] 지정했던 장소들과 몬스터들이 초기화됐습니다!
+[Solar, Lunar and Stellar Angel] Designated places and monsters have been reset.
+*/
+ MSG_STAR_ANGEL = 0x409,
+/*20050829 to latest
+경매 등록이 실패했습니다.
+The minimum starting bid for auctions is 10,000,000 zeny.
+*/
+ MSG_AUCTION_ADD_FALSE = 0x40a,
+/*20050829 to latest
+경매 등록이 성공했습니다.
+You have successfully started a new auction.
+*/
+ MSG_AUCTION_ADD_TRUE = 0x40b,
+/*20050829 to latest
+해당 경매가 취소되었습니다.
+The auction has been canceled.
+*/
+ MSG_AUCTION_ADD_CANCEL = 0x40c,
+/*20050829 to latest
+입찰자가 있는 경매는 취소할 수 없습니다.
+An auction with at least one bidder cannot be canceled.
+*/
+ MSG_AUCTION_ADD_CANCEL_FALSE = 0x40d,
+#endif
+#if PACKETVER >= 20050905
+/*20050905 to latest
+메일 삭제가 성공하였습니다.
+Mail has been successfully deleted.
+*/
+ MSG_MAIL_DELETE_SUCCESS = 0x40e,
+/*20050905 to latest
+메일 삭제가 실패하였습니다.
+You have failed to delete the mail.
+*/
+ MSG_MAIL_DELETE_FAILURE = 0x40f,
+#endif
+#if PACKETVER >= 20050912
+/*20050912 to latest
+던지는 단검이 장착되었습니다.
+You have equipped throwing daggers.
+*/
+ MSG_MSG_KNIFE_EQUIPMENT_SUCCESS = 0x410,
+#endif
+#if PACKETVER >= 20050926
+/*20050926 to latest
+%s 님이 로그인했습니다.
+%s has logged in.
+*/
+ MSG_LOGIN_FRIEND = 0x411,
+/*20050926 to latest
+%s 님이 로그아웃했습니다.
+%s has logged out.
+*/
+ MSG_LOGOUT_FRIEND = 0x412,
+#endif
+#if PACKETVER >= 20051004
+/*20051004 to latest
+/loginout : 길드원과 친구들의 접속관련 메세지를 보여줍니다. On Off
+/loginout: Shows guildsmen and friends online status. On Off
+*/
+ MSG_EXPLAIN_LOGINOUT = 0x413,
+/*20051004 to latest
+친구들의 접속관련 메세지를 대화창에 표시합니다. [/li ON]
+Display online status of friends in Chat Window. [/li ON]
+*/
+ MSG_LOGINOUT_ON = 0x414,
+/*20051004 to latest
+친구들의 접속관련 메세지를 대화창에 표시하지않습니다. [/li OFF]
+Do not display online status of friends in Chat Window. [/li OFF]
+*/
+ MSG_LOGINOUT_OFF = 0x415,
+/*20051004 to latest
+이미 실행중입니다.
+It is already running.
+*/
+ MSG_SGP_CODE_ALREADY_RUNNING = 0x416,
+/*20051004 to latest
+매크로 사용이 감지되었습니다.
+Use of Macro program has been detected.
+*/
+ MSG_SGP_CODE_DETECTED_MACRO = 0x417,
+/*20051004 to latest
+스피드해킹이 감지되었습니다.
+Use of Speed hack has been detected.
+*/
+ MSG_SGP_CODE_DETECTED_SPEEDHACK = 0x418,
+/*20051004 to latest
+API 후킹이 감지되었습니다.
+API Hooking has been detected.
+*/
+ MSG_SGP_CODE_DETECTED_APIHOOK = 0x419,
+/*20051004 to latest
+메시지 후킹이 감지되었습니다.
+Message Hooking has been detected.
+*/
+ MSG_SGP_CODE_DETECTED_MSGHOOK = 0x41a,
+/*20051004 to latest
+모듈이 변조 또는 손상되었거나 버전이 일치하지 않습니다.
+Module has been modified or damaged or its version does not match.
+*/
+ MSG_SGP_CODE_NOT_EQUALENCRYPTEDDATA = 0x41b,
+#endif
+#if PACKETVER >= 20051010
+/*20051010 to latest
+(태국)귀하는 게임방 과금으로 로그인 하셨습니다.
+(Thailand) You have logged in game with PC cafe payment.
+*/
+ MSG_BILLING_PCB = 0x41c,
+#endif
+#if PACKETVER >= 20051017
+/*20051017 to latest
+이전
+Prev
+*/
+ MSG_PREV_PAGE = 0x41d,
+/*20051017 to latest
+다음
+Next
+*/
+ MSG_NEXT_PAGE = 0x41e,
+/*20051017 to latest
+경매
+Auction
+*/
+ MSG_AUCTION = 0x41f,
+/*20051017 to latest
+물품보기
+Product List
+*/
+ MSG_AUCTION_VIEW = 0x420,
+/*20051017 to latest
+등록하기
+Register
+*/
+ MSG_AUCTION_ADD = 0x421,
+/*20051017 to latest
+판매 진행상태
+Sale Status
+*/
+ MSG_AUCTION_SELL = 0x422,
+/*20051017 to latest
+구매 진행상태
+Purchase Status
+*/
+ MSG_AUCTION_BUY = 0x423,
+/*20051017 to latest
+아이템
+Item
+*/
+ MSG_ITEM2 = 0x424,
+/*20051017 to latest
+아이템명
+Name
+*/
+ MSG_ITEM_NAME2 = 0x425,
+/*20051017 to latest
+가격 / 즉시구입가격
+Current Bid / Max Bid
+*/
+ MSG_ITEM_PRICE = 0x426,
+/*20051017 to latest
+판매자
+Seller
+*/
+ MSG_SELLER = 0x427,
+/*20051017 to latest
+구매자
+Buyer
+*/
+ MSG_BUYER = 0x428,
+/*20051017 to latest
+종료시간
+End Time
+*/
+ MSG_FINISH_TIME = 0x429,
+/*20051017 to latest
+%m월 %d일 %H시
+%m %d %H
+*/
+ MSG_TIME_TYPE = 0x42a,
+/*20051017 to latest
+시간설정
+Time (Hr)
+*/
+ MSG_SET_TIME = 0x42b,
+/*20051017 to latest
+수수료
+Fee
+*/
+ MSG_CHARGE = 0x42c,
+/*20051017 to latest
+검색 된 아이템이 없습니다.
+*/
+ MSG_NOTHING_SEARCH_ITEM = 0x42d,
+/*20051017 to latest
+현재 판매중인 아이템이 없습니다.
+Your Sale List is empty.
+*/
+ MSG_NOTHING_SEARCH_SELL_ITEM = 0x42e,
+/*20051017 to latest
+현재 구매중인 아이템이 없습니다.
+Your Purchase List is empty.
+*/
+ MSG_NOTHING_SEARCH_BUY_ITEM = 0x42f,
+/*20051017 to latest
+경매정보가 정확하지 않습니다.
+Auction Information is incorrect or incomplete.
+*/
+ MSG_ERROR_AUCTION_ITEM_INFO = 0x430,
+/*20051017 to latest
+경매에 등록할 아이템 정보가 없습니다.
+You must drag and drop an item from your Inventory into the Register Window to begin a new auction.
+*/
+ MSG_NOTHING_AUCTION_ITEM_INFO = 0x431,
+/*20051017 to latest
+이미 등록된 경매입니다.
+The auction has already been registered.
+*/
+ MSG_ERROR_ADD_AUCTION = 0x432,
+/*20051017 to latest
+제시가격
+Starting Bid
+*/
+ MSG_PRICE = 0x433,
+/*20051017 to latest
+구입희망가격
+Current Bid
+*/
+ MSG_PRICE2 = 0x434,
+/*20051017 to latest
+즉시구입가격
+Buy Now Price
+*/
+ MSG_PRICE3 = 0x435,
+/*20051017 to latest
+현재소지제니
+Your Current Zeny
+*/
+ MSG_PRICE4 = 0x436,
+/*20051017 to latest
+현재최고가격
+Highest Bid
+*/
+ MSG_PRICE5 = 0x437,
+/*20051017 to latest
+이전입찰가격
+Previous Bid
+*/
+ MSG_PRICE6 = 0x438,
+/*20051017 to latest
+추가입찰가격
+Next Bid
+*/
+ MSG_PRICE7 = 0x439,
+/*20051017 to latest
+구입하시겠습니까?
+Press buy to confirm.
+*/
+ MSG_BUY_ACTION_ITEM = 0x43a,
+/*20051017 to latest
+이 가격에 판매하시겠습니까?
+Would you like to sell this item?
+*/
+ MSG_SELL_ACTION_ITEM = 0x43b,
+/*20051017 to latest
+입찰하기
+Place Bid
+*/
+ MSG_BUY_AUCTION = 0x43c,
+/*20051017 to latest
+즉시구매하기
+Buy Now
+*/
+ MSG_BUY_AUCTION2 = 0x43d,
+/*20051017 to latest
+경매종료하기
+End the Auction
+*/
+ MSG_BUY_AUCTION3 = 0x43e,
+/*20051017 to latest
+재입찰하기
+Place another Bid
+*/
+ MSG_FINISH_AUCTION = 0x43f,
+/*20051017 to latest
+해당 경매에 대한 입찰이 성공했습니다.
+You have placed a bid.
+*/
+ MSG_RESULT_BUY_TRUE = 0x440,
+/*20051017 to latest
+해당 경매에 대한 입찰이 실패했습니다.
+You have failed to place a bid.
+*/
+ MSG_RESULT_BUY_FALSE = 0x441,
+/*20051017 to latest
+제니가 충분하지 않습니다.
+You do not have enough zeny.
+*/
+ MSG_RESULT_BUY_FALSE_MONEY = 0x442,
+#endif
+#if PACKETVER >= 20051024
+/*20051024 to latest
+방어구
+Armors
+*/
+ MSG_EQUIP = 0x443,
+/*20051024 to latest
+카드
+Card
+*/
+ MSG_CARD = 0x444,
+/*20051024 to latest
+기타
+Other
+*/
+ MSG_ETC = 0x445,
+/*20051024 to latest
+경매번호
+Bid
+*/
+ MSG_AUCTION_NUM = 0x446,
+/*20051024 to latest
+검색
+Search
+*/
+ MSG_AUCTION_SEARCH = 0x447,
+/*20051024 to latest
+해당 경매를 종료했습니다.
+You have ended the auction.
+*/
+ MSG_RESULT_MY_SELL_STOP_TRUE = 0x448,
+/*20051024 to latest
+해당 경매를 종료 할 수 없습니다.
+You cannot end the auction.
+*/
+ MSG_RESULT_MY_SELL_STOP_FALSE = 0x449,
+/*20051024 to latest
+경매 번호가 정확하지 않습니다.
+Bid Number is incorrect.
+*/
+ MSG_RESULT_AUCTION_ID_FALSE = 0x44a,
+/*20051024 to latest
+받는이
+To
+*/
+ MSG_SENDER = 0x44b,
+#endif
+#if PACKETVER >= 20051205
+/*20051205 to latest
+제 목
+Title
+*/
+ MSG_TITLE2 = 0x44c,
+/*20051205 to latest
+새 메일이 도착하였습니다.
+You have received a message in the mail.
+*/
+ MSG_NEW_MAIL = 0x44d,
+/*20051205 to latest
+검색중입니다.
+Searching...
+*/
+ MSG_SEARCHING_ITEM = 0x44e,
+/*20051205 to latest
+더 이상 경매 등록할 수 없습니다. 경매 등록은 최대 5개까지 가능합니다.
+You cannot register more than 5 items in an auction at a time.
+*/
+ MSG_AUCTION_ADD_OVER = 0x44f,
+/*20051205 to latest
+더 이상 경매 물품에 입찰할 수 없습니다. 경매 물품 입찰은 최대 5개까지 가능합니다.
+You cannot place more than 5 bids at a time.
+*/
+ MSG_RESULT_BUY_OVER = 0x450,
+/*20051205 to latest
+삭제하려는 메일에 수령하지 않은 아이템이 있습니다.
+Please accept all items from your mail before deleting.
+*/
+ MSG_MAIL_DELETE_ERROR = 0x451,
+/*20051205 to latest
+메일 제목을 입력하여 주십시오.
+Please enter a title.
+*/
+ MSG_MAIL_SEND_ERROR = 0x452,
+/*20051205 to latest
+/shopping : 클릭 한번으로 상점을 열고 상점이름 오른쪽 클릭으로 상점을 닫습니다 On Off
+/shopping: Enables you to open a shop with a single left-click and close your shop with a single right-click. On Off
+*/
+ MSG_EXPLAIN_SHOPPING = 0x453,
+/*20051205 to latest
+클릭 한번으로 상점을 열고 상점이름을 오른쪽 클릭해서 상점을 닫을수있습니다. [/sh ON]
+You can now open a shop with a single left-click and close your shop with a single right-click. [sh ON].
+*/
+ MSG_SHOPPING_ON = 0x454,
+/*20051205 to latest
+더블클릭 으로 상점을 열게됩니다. [/sh OFF]
+You can open a shop by double-clicking. [/sh OFF]
+*/
+ MSG_SHOPPING_OFF = 0x455,
+/*20051205 to latest
+메일을 보내려면, 제니 입력을 완료해야 합니다.
+Please enter zeny amount before sending mail.
+*/
+ MSG_MAIL_SEND_ERROR2 = 0x456,
+/*20051205 to latest
+경매 수수료가 부족합니다.
+You do not have enough zeny to pay the Auction Fee.
+*/
+ MSG_ADD_MONEY_FALSE = 0x457,
+/*20051205 to latest
+상태보기
+View Status
+*/
+ MSG_HOMUN_SHOWINFO = 0x458,
+/*20051205 to latest
+먹이주기
+Feed
+*/
+ MSG_HOMUN_FEEDING = 0x459,
+/*20051205 to latest
+대기
+Stand By
+*/
+ MSG_HOMUN_WAITING = 0x45a,
+/*20051205 to latest
+슈퍼노비스(남)
+Super Novice (Male)
+*/
+ MSG_JOB_SUPERNOVICE_M = 0x45b,
+/*20051205 to latest
+슈퍼노비스(여)
+Super Novice (Female)
+*/
+ MSG_JOB_SUPERNOVICE_F = 0x45c,
+/*20051205 to latest
+태권소년
+Taekwon Boy
+*/
+ MSG_JOB_TAEKWON_M = 0x45d,
+/*20051205 to latest
+태권소녀
+Taekwon Girl
+*/
+ MSG_JOB_TAEKWON_F = 0x45e,
+/*20051205 to latest
+권성(남)
+Taekwon Master (Male)
+*/
+ MSG_KWONSUNG_M = 0x45f,
+/*20051205 to latest
+권성(여)
+Taekwon Master (Female)
+*/
+ MSG_KWONSUNG_F = 0x460,
+/*20051205 to latest
+소울링커(남)
+Soul Linker (Male)
+*/
+ MSG_SOULLINGKER_M = 0x461,
+/*20051205 to latest
+소울링커(여)
+Soul Linker (Female)
+*/
+ MSG_SOULLINGKER_F = 0x462,
+/*20051205 to latest
+PC방요금제로 2개이상의 계정이 접속되고있습니다. 확인후 다시 사용하시기 바랍니다.
+Please check the connection, more than 2 accounts are connected with Internet Cafe Time Plan.
+*/
+ MSG_BAN_PC_IP_UNFAIR = 0x463,
+/*20051205 to latest
+귀하는 월정액 요금제 사용자 입니다. (남은기간 : %d일)
+Your account is using monthly payment. (Remaining day: %d day)
+*/
+ MSG_BILLING_1 = 0x464,
+/*20051205 to latest
+귀하는 정량 요금제 사용자 입니다. (남은시간 : %d시간 %분 %초)
+Your account is using time limited. (Remaining time: %d hour %d minute %d second)
+*/
+ MSG_BILLING_2 = 0x465,
+#endif
+#if PACKETVER >= 20051212
+/*20051212 to latest
+해당 아이템은 메일에 첨부 할수 없는 아이템입니다.
+This item cannot be mailed.
+*/
+ MSG_MAIL_ITEM_ADD_FAILED = 0x466,
+/*20051212 to latest
+더이상 아이템을 가질수 없습니다. 아이템은 메일로 보관하겠습니다.
+You cannot accept any more items. Please try again later.
+*/
+ MSG_MAIL_ADD_ITEM_OVER_FAILURE = 0x467,
+#endif
+#if PACKETVER >= 20060109
+/*20060109 to latest
+남성
+Male
+*/
+ MSG_PTSEX1 = 0x468,
+/*20060109 to latest
+여성
+Female
+*/
+ MSG_PTSEX2 = 0x469,
+/*20060109 to latest
+새로운 유저입니다
+New User.
+*/
+ MSG_PT_NEWUSER = 0x46a,
+/*20060109 to latest
+E-mail은 캐릭터를 지울때 필요합니다.
+E-mail address is required to delete a character.
+*/
+ MSG_PT_ACINFO = 0x46b,
+/*20060109 to latest
+정확한 형식으로 입력해 주세요.
+Please enter the correct information.
+*/
+ MSG_PT_ACINFO2 = 0x46c,
+/*20060109 to latest
+이 키를 사용하세요
+Please use this key.
+*/
+ MSG_PT_NEWKEYINFO = 0x46d,
+/*20060109 to latest
+정확한 카드 패스워드를 다시 입력해주세요
+Please enter the correct card password.
+*/
+ MSG_PT_FAIL_CARDPASS = 0x46e,
+/*20060109 to latest
+PT정보
+PT Info
+*/
+ MSG_PTID1 = 0x46f,
+/*20060109 to latest
+PT_ID는 %s
+PT_ID is %s
+*/
+ MSG_PTID2 = 0x470,
+/*20060109 to latest
+NUM_ID는 %s
+NUM_ID is %s
+*/
+ MSG_PTID3 = 0x471,
+/*20060109 to latest
+잊지않게 주의하세요
+Please don't forget this information.
+*/
+ MSG_PTID4 = 0x472,
+/*20060109 to latest
+1001
+*/
+ MSG_PT_ERROR_1001 = 0x473,
+/*20060109 to latest
+1002
+*/
+ MSG_PT_ERROR_1002 = 0x474,
+/*20060109 to latest
+1003
+*/
+ MSG_PT_ERROR_1003 = 0x475,
+/*20060109 to latest
+1004
+*/
+ MSG_PT_ERROR_1004 = 0x476,
+/*20060109 to latest
+1006
+*/
+ MSG_PT_ERROR_1006 = 0x477,
+/*20060109 to latest
+1007
+*/
+ MSG_PT_ERROR_1007 = 0x478,
+/*20060109 to latest
+1008
+*/
+ MSG_PT_ERROR_1008 = 0x479,
+/*20060109 to latest
+1009
+*/
+ MSG_PT_ERROR_1009 = 0x47a,
+/*20060109 to latest
+1012
+*/
+ MSG_PT_ERROR_1012 = 0x47b,
+/*20060109 to latest
+1013
+*/
+ MSG_PT_ERROR_1013 = 0x47c,
+/*20060109 to latest
+1014
+*/
+ MSG_PT_ERROR_1014 = 0x47d,
+/*20060109 to latest
+1015
+*/
+ MSG_PT_ERROR_1015 = 0x47e,
+/*20060109 to latest
+1019
+*/
+ MSG_PT_ERROR_1019 = 0x47f,
+/*20060109 to latest
+1020
+Navigation
+*/
+ MSG_PT_ERROR_1020 = 0x480,
+/*20060109 to latest
+1021
+*/
+ MSG_PT_ERROR_1021 = 0x481,
+/*20060109 to latest
+1023
+*/
+ MSG_PT_ERROR_1023 = 0x482,
+/*20060109 to latest
+1024
+*/
+ MSG_PT_ERROR_1024 = 0x483,
+/*20060109 to latest
+1025
+*/
+ MSG_PT_ERROR_1025 = 0x484,
+/*20060109 to latest
+1027
+*/
+ MSG_PT_ERROR_1027 = 0x485,
+/*20060109 to latest
+1028
+*/
+ MSG_PT_ERROR_1028 = 0x486,
+/*20060109 to latest
+10
+*/
+ MSG_PT_ERROR_10 = 0x487,
+/*20060109 to latest
+20
+*/
+ MSG_PT_ERROR_20 = 0x488,
+/*20060109 to latest
+40
+*/
+ MSG_PT_ERROR_40 = 0x489,
+/*20060109 to latest
+50
+*/
+ MSG_PT_ERROR_50 = 0x48a,
+/*20060109 to latest
+60
+*/
+ MSG_PT_ERROR_60 = 0x48b,
+/*20060109 to latest
+70
+*/
+ MSG_PT_ERROR_70 = 0x48c,
+/*20060109 to latest
+80
+*/
+ MSG_PT_ERROR_80 = 0x48d,
+/*20060109 to latest
+90
+*/
+ MSG_PT_ERROR_90 = 0x48e,
+/*20060109 to latest
+100
+*/
+ MSG_PT_ERROR_100 = 0x48f,
+/*20060109 to latest
+110
+*/
+ MSG_PT_ERROR_110 = 0x490,
+#endif
+#if PACKETVER >= 20060126
+/*20060126 to latest
+30포인트를 받으시겠습니까?
+Do you want to receive 30 points?
+*/
+ MSG_PT_POINT1 = 0x491,
+/*20060126 to latest
+30포인트(5시간)이 충전되었습니다
+30 points (5 hours) have been added.
+*/
+ MSG_PT_POINT2 = 0x492,
+#endif
+#if PACKETVER >= 20060213
+/*20060213 to latest
+감정되지 않은 아이템은 경매에 등록할 수 없습니다.
+You cannot register Unidentified Items in auctions.
+*/
+ MSG_AUCTION_ADD_ITEM_FAILURE = 0x493,
+/*20060213 to latest
+소비 아이템은 경매에 등록할 수 없습니다.
+You cannot register this Consumable Item in an auction.
+*/
+ MSG_AUCTION_ADD_ITEM_FAILURE2 = 0x494,
+#endif
+#if PACKETVER >= 20060306
+/*20060306 to latest
+메일창을 열려면 카트창을 닫아 주십시요.
+Please close the Cart Window to open the Mail Window.
+*/
+ MSG_CLOSE_MERCHANTITEMWND = 0x495,
+/*20060306 to latest
+카트창을 열려면 메일창을 닫아 주십시요.
+Please close the Mail Window to open the Cart Window.
+*/
+ MSG_CLOSE_MAILWND = 0x496,
+#endif
+#if PACKETVER >= 20060313
+/*20060313 to latest
+탄환이 장착되었습니다.
+Bullets have been equipped.
+*/
+ MSG_MSG_BULLET_EQUIPMENT_SUCCESS = 0x497,
+/*20060313 to latest
+메일이 반송되었습니다.
+The mail has been returned to sender.
+*/
+ MSG_MAIL_RETURN_SUCCESS = 0x498,
+/*20060313 to latest
+메일이 존재하지 않습니다.
+The mail no longer exists.
+*/
+ MSG_MAIL_RETURN_FAILURE = 0x499,
+#endif
+#if PACKETVER >= 20060522
+/*20060522 to 20060522
+한시간 동안, 동일한 IP로 접속한 유저가 60건 이상입니다. 확인후 다시 사용하시기 바랍니다.
+20060523 to latest
+한시간 동안, 동일한 IP로 접속한 유저가 30건 이상입니다. 확인후 다시 사용하시기 바랍니다.
+More than 30 players sharing the same IP have logged into the game for an hour. Please check this matter.
+*/
+ MSG_BAN_PC_IP_COUNT_ALL = 0x49a,
+/*20060522 to latest
+한시간 동안, 동일한 IP로 10번 이상 접속되었습니다. 확인후 다시 사용하시기 바랍니다.
+More than 10 connections sharing the same IP have logged into the game for an hour. Please check this matter.
+*/
+ MSG_BAN_PC_IP_COUNT = 0x49b,
+/*20060522 to latest
+게임을 재시작 하십시오
+Please restart the game.
+*/
+ MSG_GAMEGUARD_RESTART = 0x49c,
+#endif
+#if PACKETVER >= 20060703
+/*20060703 to latest
+용병정보 - 아쳐타입
+Mercenary: Archer
+*/
+ MSG_MER_INFO_TYPE_ARCHER = 0x49d,
+/*20060703 to latest
+용병정보 - 검사타입
+Mercenary: Swordman
+*/
+ MSG_MER_INFO_TYPE_SWORDMAN = 0x49e,
+/*20060703 to latest
+용병정보 - 창병타입
+Mercenary: Spearman
+*/
+ MSG_MER_INFO_TYPE_LANCER = 0x49f,
+/*20060703 to 20070109
+남은시간
+20070115 to latest
+삭제시간
+Expiration
+*/
+ MSG_LEFT_TIME = 0x4a0,
+/*20060703 to latest
+신뢰도
+Loyalty
+*/
+ MSG_MER_FRIENDLY = 0x4a1,
+/*20060703 to latest
+소환횟수
+Summons
+*/
+ MSG_MER_CALLCOUNT = 0x4a2,
+/*20060703 to latest
+Kill
+*/
+ MSG_MER_KILL = 0x4a3,
+#endif
+#if PACKETVER >= 20060904
+/*20060904 to latest
+펫이 배가 고파서 당신을 원망하고 있다는 느낌이 든다.
+You can feel hatred from your pet for neglecting to feed it.
+*/
+ MSG_PET_STARVING = 0x4a4,
+/*20060904 to latest
+[POINT] 테이밍미션 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[POINT] You earned %d Taming Mission Ranking Points, giving you a total of %d points.
+*/
+ MSG_GANGSI_POINT = 0x4a5,
+/*20060904 to latest
+[테이밍미션] Target Monster : %s
+[Taming Mission] Target Monster: %s
+*/
+ MSG_GANGSI_MISSION = 0x4a6,
+#endif
+#if PACKETVER >= 20060918
+/*20060918 to latest
+/hunting : 사냥 목록을 보여줍니다.
+/hunting: You can check the your hunting list.
+*/
+ MSG_EXPLAIN_HUNTING = 0x4a7,
+/*20060918 to latest
+[천사의질문] 소녀에게 가르쳐주시어요. %s는 몇 스킬 찍으셨나요?
+[Angel's Question] Please tell me, how many %s skills do you have?
+*/
+ MSG_DEATH_Q01 = 0x4a8,
+/*20060918 to latest
+[천사의질문] 소녀에게 가르쳐주시어요. 소지하시고있는 제니를 십만으로 나누면 얼마가 되시나요?
+[Angel's Question] Please tell me, how much zeny you'll have if you divide it by 100,000?
+*/
+ MSG_DEATH_Q02 = 0x4a9,
+/*20060918 to latest
+[천사의질문] 소녀에게 가르쳐주시어요. 오늘이 몇일이신지 아시나요?
+[Angel's Question] Please tell me, what is today's date?
+*/
+ MSG_DEATH_Q03 = 0x4aa,
+/*20060918 to latest
+[천사의질문] 소녀에게 가르쳐주시어요. %s은 지금 몇이신가요?
+[Angel's Question] Please tell me, how many %s do you have?
+*/
+ MSG_DEATH_Q04 = 0x4ab,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 슈노, 태권계열, 무낙계열을 담당하고있는 SiYeon씨의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in SiYeon's name?
+*/
+ MSG_DEATH_Q05 = 0x4ac,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 귀엽고 어여쁜 라그나로크의 히로인 Munak의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in Munak's name?
+*/
+ MSG_DEATH_Q06 = 0x4ad,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 제가 어여뻐하는 Bongun의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in Bongun's name?
+*/
+ MSG_DEATH_Q07 = 0x4ae,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 저희가 존재하는 온라인세계 Ragnarok의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, Ragnarok?
+*/
+ MSG_DEATH_Q08 = 0x4af,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 언제나 Online상태인 천사동료들은 큰힘이 되어주죠. Online의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, online?
+*/
+ MSG_DEATH_Q09 = 0x4b0,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 죽음도 두려워하지않는 기사들을 상징하는 단어인 Death의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, death?
+*/
+ MSG_DEATH_Q10 = 0x4b1,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 기사들은 너무 멋진다고 생각해요. Knight의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, knight?
+*/
+ MSG_DEATH_Q11 = 0x4b2,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 중력을 뜻하는 단어인 Gravity의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, gravity?
+*/
+ MSG_DEATH_Q12 = 0x4b3,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 어둠속에서도 밝게 사는게 중요하지요. Dark의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, dark?
+*/
+ MSG_DEATH_Q13 = 0x4b4,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 뭐든지 수집하는 Collector의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, collecter?
+*/
+ MSG_DEATH_Q14 = 0x4b5,
+/*20060918 to latest
+[천사의대답] 소녀에게 정확한 사실을 가르쳐주셔서 감사하옵니다.
+[Angel's Answer] Thank you for letting me know~
+*/
+ MSG_DEATH_R01 = 0x4b6,
+/*20060918 to latest
+[천사의대답] 사랑스러우신 분이시군요. 소녀 감탄했사옵니다.
+[Angel's Answer] I'm very pleased with your answer. You are a splendid adventurer.
+*/
+ MSG_DEATH_R02 = 0x4b7,
+/*20060918 to latest
+[천사의대답] 소녀 실망했사옵니다.
+[Angel's Answer] You've disappointed me...
+*/
+ MSG_DEATH_R05 = 0x4b8,
+#endif
+#if PACKETVER >= 20060925
+/*20060925 to latest
+[POINT] 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[Point] You earned %d Ranking Points, giving you a total of %d Ranking Points.
+*/
+ MSG_DEATH_POINT = 0x4b9,
+#endif
+#if PACKETVER >= 20060927
+/*20060927 to 20070417
+[%s]의 소지 Point : %d Point
+20070423 to latest
+[%s]의 소지 캐시 : %d 캐시
+[%s]'s Points: %d Points
+*/
+ MSG_POINT_SHOP = 0x4ba,
+#endif
+#if PACKETVER >= 20061009
+/*20061009 to latest
+선택하지 않은 캐릭터는 삭제 됩니다. 완료하시겠습니까?
+Unselected Characters will be deleted. Continue?
+*/
+ MSG_CONFIRM_SELECT_CHARACTERS = 0x4bb,
+/*20061009 to latest
+9개 이상 선택하실 수 없습니다.
+You cannot select more than 8.
+*/
+ MSG_ERROR_SELECT_CHARACTERS = 0x4bc,
+#endif
+#if PACKETVER >= 20061016
+/*20061016 to latest
+캐릭터명을 '%s' (으)로 변경하시겠습니까?
+Do you want to change your name to '%s'?
+*/
+ MSG_CONFIRM_TO_CHANGE_NAME = 0x4bd,
+/*20061016 to latest
+캐릭터명이 성공적으로 변경되었습니다.
+Character Name has been changed successfully.
+*/
+ MSG_CHANGE_NAME_SUCCESS = 0x4be,
+/*20061016 to latest
+캐릭터명 변경이 실패하였습니다.
+You have failed to change this character's name.
+*/
+ MSG_CHANGE_NAME_FAILURE = 0x4bf,
+/*20061016 to latest
+한 번에 한 종류의 아이템만 구매할 수 있습니다.
+You can purchase only one kind of item at a time.
+*/
+ MSG_CAN_BUY_ONLY_ONEITEM = 0x4c0,
+#endif
+#if PACKETVER >= 20061023
+/*20061023 to latest
+캐릭터가 한개도 선택되지 않았습니다. 반드시 한개 이상의 캐릭터를 선택하여야 합니다.
+No characters were selected. You must select at least one character.
+*/
+ MSG_NO_SELECT_CHARACTERS = 0x4c1,
+/*20061023 to latest
+이미 캐릭터명을 변경한 적이 있습니다. 더 이상 변경 할 수 없습니다.
+This character's name has already been changed. You cannot change a character's name more than once.
+*/
+ MSG_ALREADY_CHANGED_NAME = 0x4c2,
+/*20061023 to latest
+사용자 정보가 정확하지 않습니다.
+User Information is not correct.
+*/
+ MSG_NOTREGISTED_USER = 0x4c3,
+/*20061023 to latest
+다른 사용자가 같은 캐릭터 명을 먼저 사용하였습니다. 다른 캐릭터명을 사용하여 주십시요.
+Another user is using this character name, so please select another one.
+*/
+ MSG_DUPLICATED_CHAR_NAME = 0x4c4,
+#endif
+#if PACKETVER >= 20061030
+/*20061030 to latest
+파티장 권한이 없어 파티원을 소환하지 못했습니다.
+The party member was not summoned because you are not the party leader.
+*/
+ MSG_CANNOT_PARTYCALL = 0x4c5,
+/*20061030 to latest
+현재 맵에는 소환될 파티원이 존재하지 않습니다.
+There is no party member to summon in the current map.
+*/
+ MSG_NO_PARTYMEM_ON_THISMAP = 0x4c6,
+/*20061030 to latest
+이 지역에선 보스몬스터의 흔적을 찾을 수가 없습니다.
+You cannot find any trace of a Boss Monster in this area.
+*/
+ MSG_NOTFIND_BOSSMON = 0x4c7,
+/*20061030 to 20070122
+보스 몬스터 '%s'의 등장 예정시간 %02d시:%02d분
+20070129 to 20071204
+보스 몬스터 '%s'(이)가 %d시 %d분 후에 등장합니다.
+20071211 to latest
+보스 몬스터 '%s'(이)가 %d시간 %d분 후에 등장합니다.
+Boss Monster, '%s' will appear in %02d hour(s) and %02d minute(s).
+*/
+ MSG_APPEARANCE_TIME_OF_BOSSMON = 0x4c8,
+/*20061030 to latest
+보스 몬스터 '%s'의 위치가 미니맵에 표시됩니다.
+The location of Boss Monster, '%s', will be displayed on your Mini-Map.
+*/
+ MSG_SHOW_POSITION_OF_BOSSMON = 0x4c9,
+#endif
+#if PACKETVER >= 20061106
+/*20061106 to 20061211
+%s를 개봉 하시겠습니까? 한번 개봉된 아이템은 창고 저장 외의 다른 이동은 불가하며 동일한 아이템을 중복 사용하더라도 효과가 중첩되지 않습니다.
+20061218 to 20070618
+'%s'를 개봉 하시겠습니까? 한번 개봉된 아이템은 창고 저장 외의 다른 이동은 불가하며 동일한 아이템을 중복 사용하더라도 효과가 중첩되지 않습니다.
+20070619 to 20071218
+'%s'를 개봉 하시겠습니까? 한번 개봉된 아이템은 창고 저장 외의 다른 이동은 불가하며 임대 아이템은 창고 저장도 불가합니다. 동일한 아이템을 중복 사용하더라도 효과가 중첩되지 않습니다.
+20080102 to latest
+'%s'를 개봉 하시겠습니까? 한번 개봉된 아이템은 창고 저장 외의 다른 이동은 불가하며 임대 아이템은 창고 저장도 불가합니다. 한정 아이템은 거래 및 이동이 가능 합니다. 동일한 아이템을 중복 사용하더라도 효과가 중첩되지 않습니다.
+*/
+ MSG_CONFIRM_TO_OPEN_CASH_ITEM = 0x4ca,
+/*20061106 to latest
+NPC가 존재하지 않아 구매가 실패하였습니다.
+The Purchase has failed because the NPC does not exist.
+*/
+ MSG_BUY_CASH_FAIL_NPC = 0x4cb,
+/*20061106 to latest
+부분 유료화 시스템이 정상 작동하지 않아 구매가 실패하였습니다.
+The Purchase has failed because the Kafra Shop System is not working correctly.
+*/
+ MSG_BUY_CASH_FAIL_SYSTEM = 0x4cc,
+/*20061106 to latest
+교환중에는 아이템을 구매 할 수 없습니다.
+You cannot purchase items while you are in a trade.
+*/
+ MSG_BUY_CASH_FAIL_EXCHANGE = 0x4cd,
+/*20061106 to latest
+아이템 정보가 정확하지 않아 구매가 실패하였습니다.
+The Purchase has failed because the Item Information was incorrect.
+*/
+ MSG_BUY_CASH_FAIL_ITEM_ID = 0x4ce,
+#endif
+#if PACKETVER >= 20061204
+/*20061204 to latest
+ STR이 향상되었습니다.
+STR has increased.
+*/
+ MSG_ENST_STR = 0x4cf,
+/*20061204 to latest
+ STR이 원래대로 돌아왔습니다.
+STR has returned to normal.
+*/
+ MSG_DSST_STR = 0x4d0,
+/*20061204 to latest
+ AGI이 향상되었습니다.
+AGI has increased.
+*/
+ MSG_ENST_AGI = 0x4d1,
+/*20061204 to latest
+ AGI이 원래대로 돌아왔습니다.
+AGI has returned to normal.
+*/
+ MSG_DSST_AGI = 0x4d2,
+/*20061204 to latest
+ VIT이 향상되었습니다.
+VIT has increased.
+*/
+ MSG_ENST_VIT = 0x4d3,
+/*20061204 to latest
+ VIT이 원래대로 돌아왔습니다.
+VIT has returned to normal.
+*/
+ MSG_DSST_VIT = 0x4d4,
+/*20061204 to latest
+ INT이 향상되었습니다.
+INT has increased.
+*/
+ MSG_ENST_INT = 0x4d5,
+/*20061204 to latest
+ INT이 원래대로 돌아왔습니다.
+INT has returned to normal.
+*/
+ MSG_DSST_INT = 0x4d6,
+/*20061204 to latest
+ DEX이 향상되었습니다.
+DEX has increased.
+*/
+ MSG_ENST_DEX = 0x4d7,
+/*20061204 to latest
+ DEX이 원래대로 돌아왔습니다.
+DEX has returned to normal.
+*/
+ MSG_DSST_DEX = 0x4d8,
+/*20061204 to latest
+ LUK이 향상되었습니다.
+LUK has increased.
+*/
+ MSG_ENST_LUK = 0x4d9,
+/*20061204 to latest
+ LUK이 원래대로 돌아왔습니다.
+LUK has returned to normal.
+*/
+ MSG_DSST_LUK = 0x4da,
+/*20061204 to latest
+ 회피율이 향상되었습니다.
+Flee Rate (Flee) has increased.
+*/
+ MSG_ENST_AVOIDANCE = 0x4db,
+/*20061204 to latest
+ 회피율이 원래대로 돌아왔습니다.
+Flee Rate has returned to normal.
+*/
+ MSG_DSST_AVOIDANCE = 0x4dc,
+/*20061204 to latest
+ 명중률이 향상되었습니다.
+Accuracy Rate (Hit) has increased.
+*/
+ MSG_ENST_HIT = 0x4dd,
+/*20061204 to latest
+ 명중률이 원래대로 돌아왔습니다.
+Accuracy Rate has returned to normal.
+*/
+ MSG_DSST_HIT = 0x4de,
+/*20061204 to latest
+ 크리티컬 확률이 향상되었습니다.
+Critical Attack (Critical) has increased.
+*/
+ MSG_ENST_CRITICALSUCCESSVALUE = 0x4df,
+/*20061204 to latest
+ 크리티컬 확률이 원래대로 돌아왔습니다.
+Critical Attack has returned to normal.
+*/
+ MSG_DSST_CRITICALSUCCESSVALUE = 0x4e0,
+/*20061204 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 경험치가 30분간 1.5배로 증가합니다.
+*/
+ MSG_PLUSEXP = 0x4e1,
+/*20061204 to latest
+ 30분내 사망시 1회에 한해 경험치 감소가 일어나지 않습니다.
+This character will not receive any EXP penalty if killed within the next 30 minutes.
+*/
+ MSG_DDEATHPENALTY = 0x4e2,
+/*20061204 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 기본 아이템의 드롭률이 30분간 2배로 증가합니다.
+Regular item drops from monsters will be doubled for the next 30 minutes.
+*/
+ MSG_RECEIVEITEM = 0x4e3,
+/*20061204 to latest
+ 10분간 맵 내에 출현 가능한 보스 몬스터에 대한 정보를 안내해 드립니다.
+Boss Monster Map Information for the next 10 minutes.
+*/
+ MSG_BOSS_ALARM = 0x4e4,
+/*20061204 to 20061211
+ 정말로 %s아이템을 구매하시겠습니까?, %d포인트가 차감됩니다.
+20061218 to 20070423
+ 정말로 '%s'아이템을 구매하시겠습니까?, %d포인트가 차감됩니다.
+20070423 to 20080603
+ 정말로 '%s'아이템을 구매하시겠습니까?, %d캐시가 차감됩니다.
+20080610 to latest
+ 본 아이템은 청약 철회나 환불 대상에서 제외되는 아이템입니다. 정말로 '%s'아이템을 구매하시겠습니까?, %d캐시가 차감됩니다.
+*/
+ MSG_BUY_RECONFIRM = 0x4e5,
+#endif
+#if PACKETVER >= 20061211
+/*20061211 to 20061211
+'%s'아이템의 사용시간이 %d분 남았습니다.
+20061218 to 20070423
+ 포인트가 부족합니다.
+20070423 to latest
+ 캐시가 부족합니다.
+ You do not have enough Kafra Credit Points.
+*/
+ MSG_BUY_CASH_FAIL_MONEY = 0x4e6,
+/*20061211 to 20061211
+1분 후, '%s'아이템이 인벤토리에서 삭제됩니다.
+20061218 to latest
+ ^ff0000파기일시: %s^000000
+ ^ff0000Expiration Date: %s^000000
+*/
+ MSG_NOTICE_TO_DELETE_TIME = 0x4e7,
+/*20061211 to 20061211
+'%s'아이템이 인벤토리에서 삭제되었습니다.
+20061218 to latest
+ '%s'아이템의 사용시간이 %d분 남았습니다.
+ The '%s' item will disappear in %d minutes.
+20070102 to 20070312
+ '%s'아이템의 사용시간이 %s 남았습니다.
+*/
+ MSG_NOTICE_TO_REMAIN_ITEMUSINGTIME = 0x4e8,
+#endif
+#if PACKETVER >= 20061218
+/*20061218 to latest
+ 1분 후, '%s'아이템이 인벤토리에서 삭제됩니다.
+ '%s' item will be deleted from the Inventory in 1 minute.
+*/
+ MSG_LAST_NOTICE_TO_REMAIN_ITEMUSINGTIME = 0x4e9,
+/*20061218 to latest
+ '%s'아이템이 인벤토리에서 삭제되었습니다.
+ '%s' item has been deleted from the Inventory.
+*/
+ MSG_NOTICE_TO_DELETE_ITEM = 0x4ea,
+#endif
+#if PACKETVER >= 20070102
+/*20070102 to latest
+Input Number
+*/
+ MSG_INPUT_NUMBER = 0x4eb,
+/*20070102 to latest
+%m월 %d일 %H시 %M분
+%m/%d %H:%M
+*/
+ MSG_TIME_TYPE2 = 0x4ec,
+#endif
+#if PACKETVER >= 20070129
+/*20070129 to 20071120
+보스 몬스터 '%s'(이)가 1분 이내에 등장합니다.
+20071127 to latest
+보스 몬스터 '%s'(이)가 잠시 후에 등장합니다.
+Boss Monster '%s' will appear within 1 minute.
+*/
+ MSG_APPEARANCE_TIME_OF_BOSSMON2 = 0x4ed,
+/*20070129 to latest
+용병 스킬목록
+Mercenary Soldier Skill List
+*/
+ MSG_MER_SKILLLIST = 0x4ee,
+/*20070129 to latest
+블랙젬스톤 1개와 백만제니를 소모하는 마법의 실행에 동의합니까?
+Do you agree to cast the magic spell that consumes 1 Black Gemstone and 1,000,000 Zeny?
+*/
+ MSG_DA_EXP_ACCEPT = 0x4ef,
+#endif
+#if PACKETVER >= 20070220
+/*20070220 to latest
+[POINT] 콜렉터랭킹 포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[Point] You have gained %d Collector Rank Points; you now have a total of %d Collector Rank Points.
+*/
+ MSG_COLLECTOR_POINT = 0x4f0,
+/*20070220 to latest
+[콜렉터랭킹] Target Item : %s
+[Collector Rank] Target Item: %s
+*/
+ MSG_COLLECTOR_MISSION = 0x4f1,
+#endif
+#if PACKETVER >= 20070227
+/*20070227 to latest
+용병 사용시간이 만료되었습니다.
+The mercenary contract has expired.
+*/
+ MSG_MER_FINISH = 0x4f2,
+/*20070227 to latest
+용병이 사망하였습니다.
+The mercenary has died.
+*/
+ MSG_MER_DIE = 0x4f3,
+/*20070227 to latest
+용병이 해고되었습니다.
+You have released the mercenary.
+*/
+ MSG_MER_RETIRE = 0x4f4,
+/*20070227 to latest
+용병이 도망갔습니다.
+The mercenary has run away.
+*/
+ MSG_MER_RUNAWAY = 0x4f5,
+#endif
+#if PACKETVER >= 20070319
+/*20070319 to latest
+ '%s'아이템의 사용시간이 %d초 남았습니다.
+ The '%s' item will disappear in %d seconds.
+*/
+ MSG_NOTICE_TO_REMAIN_ITEMUSINGTIME2 = 0x4f6,
+#endif
+#if PACKETVER >= 20070326
+/*20070326 to 20070821
+PC방 이벤트 : 경험치 증가 %d%%, 죽을때 경험치 %d%%, 드롭율 증가 %d%%
+20070828 to latest
+PC방 프리미엄 서비스 : 경험치 %d%% 증가, 사망 페널티 %d%% 감소, 드롭율 %d%% 증가
+IP Bonus: EXP/JEXP %d%%, Death Penalty %d%%, Item Drop %d%%
+*/
+ MSG_PCBANG_EVENT = 0x4f7,
+#endif
+#if PACKETVER >= 20070402
+/*20070402 to latest
+24시간 이후에 시도하세요
+Symbols in Character Names are forbidden.
+*/
+ MSG_LIMIT_CHAR_DELETE = 0x4f8,
+#endif
+#if PACKETVER >= 20070416
+/*20070416 to latest
+용병이 사용자 인공지능으로 동작합니다.
+Mercenary will follow custom AI.
+*/
+ MSG_MER_USERAI_ON = 0x4f9,
+/*20070416 to latest
+용병이 기본 인공지능으로 동작합니다.
+Mercenary will follow basic AI.
+*/
+ MSG_MER_USERAI_OFF = 0x4fa,
+#endif
+#if PACKETVER >= 20070611
+/*20070611 to latest
+ %s님의
+ %s's
+*/
+ MSG_CHARACTER_NAME = 0x4fb,
+/*20070611 to 20070801
+%s님이 %s를 획득하셨습니다.
+20070807 to latest
+%s님이 %s 아이템을 획득하셨습니다.
+%s has acquired %s.
+*/
+ MSG_ITEM_PICKUP_PARTY = 0x4fc,
+/*20070611 to latest
+공개 채팅 메시지 표시
+Public Chat Display
+*/
+ MSG_VIEW_CHAT_MSG = 0x4fd,
+/*20070611 to latest
+귓속말 채팅 메시지 표시
+Whisper Display
+*/
+ MSG_VIEW_WHISPER_MSG = 0x4fe,
+/*20070611 to latest
+파티 채팅 메시지 표시
+Party Chat Display
+*/
+ MSG_VIEW_PARTY_MSG = 0x4ff,
+/*20070611 to latest
+길드 채팅 메시지 표시
+Guild Chat Display
+*/
+ MSG_VIEW_GUILD_MSG = 0x500,
+/*20070611 to latest
+아이템 획득/드롭 메시지 표시
+Item Get/Drop Message Display
+*/
+ MSG_VIEW_GET_ITEM_MSG = 0x501,
+/*20070611 to latest
+장비 장착/해제 메시지 표시
+Equipment On/Off Message Display
+*/
+ MSG_VIEW_EQUIP_MSG = 0x502,
+/*20070611 to latest
+상태이상 메시지 표시
+Abnormal Status Message Display
+*/
+ MSG_VIEW_CHANGE_STATUS_MSG = 0x503,
+/*20070611 to latest
+파티원의 주요 아이템 획득 메시지 표시
+Party Member's Obtained Item Message Display
+*/
+ MSG_VIEW_GET_ITEM_PARTY_MSG = 0x504,
+/*20070611 to latest
+파티원의 상태이상 메시지 표시
+Party Member's Abnormal Status Message Display
+*/
+ MSG_VIEW_CHANGE_STATUS_PARTY_MSG = 0x505,
+/*20070611 to latest
+스킬 사용 실패 메시지 표시
+Skill Failure Message Display
+*/
+ MSG_VIEW_FAIL_SKILL_MSG = 0x506,
+/*20070611 to latest
+파티 설정 메시지 표시
+Party Configuration Message Display
+*/
+ MSG_VIEW_PARTY_SETUP_MSG = 0x507,
+/*20070611 to latest
+장비 손상 메시지 표시
+Damaged Equipment Message Display
+*/
+ MSG_VIEW_DAMAGED_EQUIP_MSG = 0x508,
+/*20070611 to latest
+배틀 메시지 창 표시 정보
+Battle Message Window Display
+*/
+ MSG_BATTLE_CHAT_WND_OPTION = 0x509,
+/*20070611 to latest
+[%s]의 소지 한코인 : %d 한코인
+[%s]'s Han Coin: %d Han Coin
+*/
+ MSG_POINT_SHOP_NHN = 0x50a,
+#endif
+#if PACKETVER >= 20070618
+/*20070618 to latest
+일반 메시지
+Public Log
+*/
+ MSG_ST_CHAT = 0x50b,
+/*20070618 to latest
+배틀 메시지
+Battle Log
+*/
+ MSG_BT_CHAT = 0x50c,
+/*20070618 to latest
+휴대폰 인증.
+Mobile Authentication
+*/
+ MSG_PHONE_CONFIRM = 0x50d,
+/*20070618 to latest
+읽기
+Read
+*/
+ MSG_BOOK_READ = 0x50e,
+/*20070618 to latest
+자동낭독
+Auto Read
+*/
+ MSG_BOOK_AUTOREAD = 0x50f,
+/*20070618 to latest
+책갈피
+Bookmark
+*/
+ MSG_BOOK_KEEP = 0x510,
+/*20070618 to latest
+이전페이지
+Previous
+*/
+ MSG_BOOK_PREV = 0x511,
+/*20070618 to latest
+다음페이지
+Next
+*/
+ MSG_BOOK_NEXT = 0x512,
+/*20070618 to latest
+닫기
+Close
+*/
+ MSG_BOOK_CLOSE = 0x513,
+#endif
+#if PACKETVER >= 20070622
+/*20070622 to latest
+%s 장비가 손상되었습니다.
+%s's Equipment has been damaged.
+*/
+ MSG_DAMAGED_EQUIP = 0x514,
+/*20070622 to latest
+%s님의 %s 손상되었습니다.
+%s's %s was damaged.
+*/
+ MSG_DAMAGED_EQUIP_PARTY = 0x515,
+/*20070622 to latest
+무기가
+Weapon
+*/
+ MSG_DAMAGED_WEAPON = 0x516,
+/*20070622 to latest
+갑옷이
+Armor
+*/
+ MSG_DAMAGED_BODY = 0x517,
+/*20070622 to latest
+스킬레벨이 부족합니다. 파티가입 불능
+Insufficient Skill Level for joining a Party
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE5_2 = 0x518,
+#endif
+#if PACKETVER >= 20070703
+/*20070703 to latest
+[%s]의 무료 캐시 : %d 캐시
+[%s]'s Free Cash: %d Cash
+*/
+ MSG_POINT_SHOP2 = 0x519,
+/*20070703 to latest
+무료 캐시 사용 :
+Use Free Cash:
+*/
+ MSG_USE_FREE_POINT = 0x51a,
+/*20070703 to latest
+캐시
+Cash
+*/
+ MSG_CASH = 0x51b,
+#endif
+#if PACKETVER >= 20070710
+/*20070710 to latest
+http://payment.ro.hangame.com/index.asp
+*/
+ MSG_SETTLE_WEB_URL_HANGAME = 0x51c,
+/*20070710 to latest
+그라비티 회원 정보동의를 하셔야 사용할수있습니다.
+*/
+ MSG_BAN_GRAVITY_MEM_AGREE = 0x51d,
+/*20070710 to latest
+이용약관에 동의를 하셔야 본 서비스를 이용하실 수 있습니다.
+You need to accept the User Agreement in order to use the service.
+*/
+ MSG_BAN_GAME_MEM_AGREE = 0x51e,
+/*20070710 to 20080513
+존재하지 않는 한게임 ID이거나 잘못된 ID입니다.
+20080520 to latest
+입력하신 아이디와 비밀번호가 등록된 정보와 일치하지 않습니다.
+Incorrect or nonexistent ID.
+*/
+ MSG_BAN_HAN_VALID = 0x51f,
+#endif
+#if PACKETVER >= 20070711
+/*20070711 to 20080603
+ 정말로 '%s'아이템을 구매하시겠습니까?, 일반 %d캐시, 무료 %d캐시가 차감됩니다.
+20080610 to latest
+ 본 아이템은 청약 철회나 환불 대상에서 제외되는 아이템입니다. 정말로 '%s'아이템을 구매하시겠습니까?, 일반 %d캐시, 무료 %d캐시가 차감됩니다.
+*/
+ MSG_BUY_RECONFIRM2 = 0x520,
+#endif
+#if PACKETVER >= 20070718
+/*20070718 to latest
+%d시간이 경과하였습니다.
+%d hour(s) has passed.
+*/
+ MSG_NOTIFY_PLAYTIME1 = 0x521,
+/*20070718 to latest
+%d시간 %d분이 경과하였습니다.
+%d hour(s) %d minute(s) has passed.
+*/
+ MSG_NOTIFY_PLAYTIME2 = 0x522,
+/*20070718 to latest
+게임을 종료하세요, 경험치 및 모든게 50%로 조정됩니다
+Please stop playing the game, and take a break. Exp and other features will be reduced to 50%.
+*/
+ MSG_WARNING_MSG1 = 0x523,
+/*20070718 to latest
+불건전 시간대에 접어들었습니다. 게임을 종료하세요, 경험치 및 모든게 0%로 조정됩니다
+Please stop playing the game since you'll need to rest. Exp and other features will be fixed to 0%.
+*/
+ MSG_WARNING_MSG2 = 0x524,
+#endif
+#if PACKETVER >= 20070724
+/*20070724 to latest
+퀘스트 목록
+Quest List
+*/
+ MSG_QUESTWIN = 0x525,
+#endif
+#if PACKETVER >= 20070807
+/*20070807 to latest
+RO SHOP
+RO Shop
+*/
+ MSG_RO_SHOP = 0x526,
+#endif
+#if PACKETVER >= 20070821
+/*20070821 to 20070904
+메모리얼던젼 '%s'이 예약되었습니다.
+20070911 to latest
+메모리얼던젼 '%s'의 예약이 알수없는 이유로 실패 하였습니다.
+Memorial Dungeon, '%s' is booked.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_ERROR_UNKNOWN = 0x527,
+/*20070821 to 20070904
+메모리얼던젼 '%s' 예약이 실패했습니다.
+20070911 to latest
+메모리얼던젼 '%s'의 예약이 예약중복으로 실패 하였습니다.
+Failed to book Memorial Dungeon, '%s'.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_ERROR_DUPLICATE = 0x528,
+/*20070821 to 20070904
+메모리얼던젼 '%s' 이미 예약중입니다.
+20070911 to latest
+메모리얼던젼 '%s'의 예약이 권한문제로 실패 하였습니다.
+Memorial Dungeon, '%s' is already booked.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_ERROR_RIGHT = 0x529,
+/*20070821 to 20070904
+메모리얼던젼 '%s'가 생성 되었습니다
+ 5분내에 입장하세요.
+20070911 to latest
+메모리얼던젼 '%s'의 예약이 중복생성요청으로 실패하였습니다.
+Memorial Dungeon, '%s' is created.
+ Please enter in 5 minutes.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_ERROR_EXIST = 0x52a,
+/*20070821 to 20070904
+메모리얼던젼 '%s' 생성에 실패했습니다.
+ 나중에 다시 시도하세요.
+20070911 to latest
+메모리얼던젼 '%s'의 예약취소가 실패 하였습니다.
+Failed to create Memorial Dungeon, '%s'.
+ Please try again.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_CANCEL_FAIL = 0x52b,
+/*20070821 to latest
+상대방이 파티 초대 거부 상태입니다.
+The character blocked the party invitation.
+*/
+ MSG_JOINMSG_REFUSE = 0x52c,
+#endif
+#if PACKETVER >= 20070828
+/*20070828 to latest
+모든 파티 초대를 거부합니다.
+Block all party invitations.
+*/
+ MSG_INVITE_PARTY_REFUSE = 0x52d,
+/*20070828 to latest
+모든 파티 초대를 수락합니다.
+Allow all party invitations.
+*/
+ MSG_INVITE_PARTY_ACCEPT = 0x52e,
+#endif
+#if PACKETVER >= 20070904
+/*20070904 to latest
+착용하시면 이 아이템은 영구 귀속됩니다. 착용하시겠습니까?
+This item will be permanently bound to this character once it is equipped. Do you really want to equip this item?
+*/
+ MSG_YOURITEM_EQUIP = 0x52f,
+/*20070904 to latest
+%s 아이템이 귀속되었습니다.
+%s is now permanently bound to this character.
+*/
+ MSG_YOURITEM_EQUIPED = 0x530,
+/*20070904 to latest
+캐시가 부족합니다. 무료 캐시 포인트를 입력해 주시기 바랍니다.
+You do not have enough Kafra Credit Points. Please enter whether you have free credit points.
+*/
+ MSG_BUY_TO_FREE_POINT = 0x531,
+/*20070904 to latest
+파티 가입요청
+Request to Join Party
+*/
+ MSG_REQ_JOIN_PARTY3 = 0x532,
+#endif
+#if PACKETVER >= 20070912
+/*20070912 to latest
+공성 정보 메시지 표시
+Display WOE Info
+*/
+ MSG_VIEW_SIEGE_INFO_MSG = 0x533,
+/*20070912 to latest
+메모리얼던젼 '%s'의 예약이 취소 되었습니다.
+Memorial Dungeon %s's reservation has been canceled.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_CANCEL_SUCCESS = 0x534,
+/*20070912 to latest
+메모리얼던젼 '%s' 생성에 실패하였습니다. 다시 시도 하세요.
+Failed to create Memorial Dungeon %s. Please try again.
+*/
+ MSG_MDUNGEON_CREATE_FAIL = 0x535,
+/*20070912 to latest
+이 장소에서는 사용할 수 없는 스킬입니다.
+This skill cannot be used within this area.
+*/
+ MSG_IMPOSSIBLE_SKILL_AREA = 0x536,
+/*20070912 to latest
+이 장소에서는 사용할 수 없는 아이템입니다.
+This item cannot be used within this area.
+*/
+ MSG_IMPOSSIBLE_USEITEM_AREA = 0x537,
+#endif
+#if PACKETVER >= 20070918
+/*20070918 to latest
+메모리얼 던전
+Memorial Dungeon
+*/
+ MSG_MEMORIAL_DUN = 0x538,
+/*20070918 to latest
+%s 대기중
+%s in Standby
+*/
+ MSG_MEMORIAL_DUN_WAITING = 0x539,
+/*20070918 to latest
+%s 입장 가능
+%s Available
+*/
+ MSG_MEMORIAL_DUN_READY = 0x53a,
+/*20070918 to 20071120
+%s 내부
+20071127 to latest
+%s 진행중
+%s in Progress
+*/
+ MSG_MEMORIAL_DUN_IN = 0x53b,
+/*20070918 to latest
+시간 안에 입장하지 않아 메모리얼 던전이 사라졌습니다.
+No one entered the Memorial Dungeon within its duration; the dungeon has disappeared.
+*/
+ MSG_MEMORIAL_DUN_OUT1 = 0x53c,
+/*20070918 to latest
+이용하시려면 이용 신청을 처음부터 다시 해주시기 바랍니다.
+Please apply for dungeon entry again to play in this dungeon.
+*/
+ MSG_MEMORIAL_DUN_OUT2 = 0x53d,
+/*20070918 to latest
+대기 순위 : ^ff0000%d^000000
+Your Standby Priority: ^ff0000%d^000000
+*/
+ MSG_MEMORIAL_DUN_PRIORITY = 0x53e,
+/*20070918 to latest
+^ff0000%s^000000 내에 입장하지 않을 경우 신청하신 던전이 삭제 됩니다.
+The requested dungeon will be removed if you do not enter within ^ff0000%s^000000.
+*/
+ MSG_MEMORIAL_DUN_NOTIFY = 0x53f,
+/*20070918 to latest
+던전 미션 제한 시간 :
+Dungeon Mission Time Limit:
+*/
+ MSG_MEMORIAL_DUN_NOTIFY2 = 0x540,
+/*20070918 to latest
+메모리얼 던전 예약이 취소되었습니다.
+The Memorial Dungeon reservation has been canceled.
+*/
+ MSG_MEMORIAL_DUN_CANCEL = 0x541,
+/*20070918 to latest
+메모리얼 던전이 유지 시간 제한에 의해 파괴되었습니다.
+The Memorial Dungeon duration expired; it has been destroyed.
+*/
+ MSG_MEMORIAL_DUN_LIVE_TIME_OUT = 0x542,
+/*20070918 to latest
+메모리얼 던전이 입장 시간 제한에 의해 파괴되었습니다.
+The Memorial Dungeon's entry time limit expired; it has been destroyed.
+*/
+ MSG_MEMORIAL_DUN_ENTER_TIME_OUT = 0x543,
+/*20070918 to latest
+메모리얼 던전이 삭제 되었습니다.
+The Memorial Dungeon has been removed.
+*/
+ MSG_MEMORIAL_DUN_DESTROY_REQUEST = 0x544,
+/*20070918 to latest
+메모리얼 던전에 시스템 오류가 발생하였습니다. 정상적인 게임 진행을 위해 재접속을 해주십시오.
+A system error has occurred in the Memorial Dungeon. Please relog in to the game to continue playing.
+*/
+ MSG_MEMORIAL_DUN_ERROR = 0x545,
+/*20070918 to latest
+사용할 수 없는 슬롯입니다.
+This slot is not usable.
+*/
+ MSG_FR_INVALID_SLOT = 0x546,
+/*20070918 to latest
+Base Level이 15를 넘었습니다.
+Your Base Level is over 15.
+*/
+ MSG_FR_BASELVL = 0x547,
+/*20070918 to latest
+Job Level이 15를 넘었습니다.
+Your Job Level is over 15.
+*/
+ MSG_FR_INVALID_JOBLV = 0x548,
+/*20070918 to latest
+해당슬롯 캐릭터에 직업군의 상인이므로 게임을 할 수 없습니다.
+You cannot play the Merchant class character in this slot.
+*/
+ MSG_FR_JOB = 0x549,
+/*20070918 to latest
+추후 사용예정
+Not Yet Implemented
+*/
+ MSG_FR_MAP = 0x54a,
+/*20070918 to latest
+만들수 있는 케릭터 슬롯이 아닙니다.
+You are not eligible to open the Character Slot.
+*/
+ MSG_FR_ERR_MKCHAR_INVALID_SLOT = 0x54b,
+/*20070918 to latest
+삭제할 수 없는 케릭터 입니다.
+This character cannot be deleted.
+*/
+ MSG_FR_ERR_DELCHAR_INVALID_SLOT = 0x54c,
+/*20070918 to latest
+상대방의 장비창이 공개되어 있지 않습니다.
+This character's equipment information is not open to the public.
+*/
+ MSG_OPEN_EQUIPEDITEM_REFUSED = 0x54d,
+/*20070918 to latest
+장비창을 공개하지 않습니다.
+Equipment information not open to the public.
+*/
+ MSG_OPEN_EQUIPEDITEM_REFUSE = 0x54e,
+/*20070918 to latest
+장비창을 공개합니다.
+Equipment information open to the public.
+*/
+ MSG_OPEN_EQUIPEDITEM_ACCEPT = 0x54f,
+/*20070918 to latest
+(%s)님 장비창 보기
+Check %s's Equipment Info
+*/
+ MSG_REQ_VIEW_OTHERUSER = 0x550,
+/*20070918 to latest
+%s의 장착아이템
+'%s's Equipment
+*/
+ MSG_OTHERUSER_EQUIPED_ITEM = 0x551,
+/*20070918 to latest
+장비창 공개
+Show Equip
+*/
+ MSG_OPEN_EQUIPED_ITEM = 0x552,
+#endif
+#if PACKETVER >= 20071002
+/*20071002 to latest
+프리미엄 서비스를 이용해 주시기 바랍니다.
+This service is only available for premium users.
+*/
+ MSG_NEED_PREMIUM_SERVICE = 0x553,
+/*20071002 to latest
+무료 사용자는 최대 50000제니까지 소유할 수 있습니다.
+Free Trial users can only hold up to 50,000 zeny.
+*/
+ MSG_FR_INVALID_MONEY = 0x554,
+#endif
+#if PACKETVER >= 20071009
+/*20071009 to latest
+전장채팅 상태가 되었습니다.
+Battlefield Chat has been activated.
+*/
+ MSG_BATTLECHAT_ON = 0x555,
+/*20071009 to latest
+전장채팅 상태가 해제되었습니다.
+Battlefield Chat has been deactivated.
+*/
+ MSG_BATTLECHAT_OFF = 0x556,
+#endif
+#if PACKETVER >= 20071017
+/*20071017 to latest
+용병정보 - 몬스터타입
+Mercenary Info - Monster Type
+*/
+ MSG_MER_INFO_TYPE_MONSTER = 0x557,
+#endif
+#if PACKETVER >= 20071106
+/*20071106 to latest
+전체 맵 보기
+World Map
+*/
+ MSG_RO_MAP = 0x558,
+#endif
+#if PACKETVER >= 20071127
+/*20071127 to latest
+메모리얼던젼이 CLOSE 상태입니다.
+The Memorial Dungeon is now closed.
+*/
+ MSG_MEMORIAL_DUN_CLOSE = 0x559,
+#endif
+#if PACKETVER >= 20071204
+/*20071204 to latest
+^ff0000^ff0000용병을 삭제합니다.^000000^000000 삭제하실 경우 지금까지 키운 내역이 모두 삭제됩니다. 계속하시겠습니까?
+^ff0000Deleting a Mercenary Soldier^000000 will also delete his growth history. Do you really want to proceed with the deletion?
+*/
+ MSG_DELETE_MER = 0x55a,
+#endif
+#if PACKETVER >= 20071211
+/*20071211 to latest
+메모리얼던젼이 OPEN 상태입니다.
+The Memorial Dungeon is now open.
+*/
+ MSG_MEMORIAL_DUN_OPEN = 0x55b,
+#endif
+#if PACKETVER >= 20080108
+/*20080108 to latest
+위의 계정은 아직 통신 안전 키에 연결되지 않았습니다. 먼저 안전 키를 해제하신 뒤 게임에 접속해 주십시오.
+This account has not been confirmed by connecting to the safe communication key. Please connect to the key first, and then log into the game.
+*/
+ MSG_PHONE_BLOCK = 0x55c,
+/*20080108 to latest
+한 아이피로 접속 가능한 유저수를 초과하였습니다.
+The number of accounts connected to this IP has exceeded the limit.
+*/
+ MSG_BAN_PC_IP_LIMIT_ACCESS = 0x55d,
+#endif
+#if PACKETVER >= 20080219
+/*20080219 to latest
+새로운 퀘스트를 받았습니다
+You have received a new quest.
+*/
+ MSG_QUESTGET = 0x55e,
+#endif
+#if PACKETVER >= 20080401
+/*20080401 to latest
+^777777습득조건 :
+^CC3399Requirement:
+*/
+ MSG_FINDTEXT_TO_SKILLDES = 0x55f,
+/*20080401 to latest
+스킬 설명 보기
+View Skill Info
+*/
+ MSG_VIEW_SKILL_DESCRIPT = 0x560,
+#endif
+#if PACKETVER >= 20080408
+/*20080408 to latest
+사용된 스킬 포인트는 다시 되돌릴 수 없습니다. 적용하시겠습니까?
+Once used, skill points cannot be re-allocated. Would you like to use the skill points?
+*/
+ MSG_APPLY_SKILL_UP = 0x561,
+/*20080408 to latest
+노비스·1차직업
+1st
+*/
+ MSG_1TABNAME_SKILLWND = 0x562,
+/*20080408 to latest
+2차·전승직업
+2nd
+*/
+ MSG_2TABNAME_SKILLWND = 0x563,
+/*20080408 to 20080513
+불법프로그램을 사용하였거나 혹은 해킹을 시도한 계정입니다. 블럭시간 : %s
+20080520 to latest
+불법프로그램을 사용하였거나 혹은 해킹을 시도한 계정입니다. 블럭종료시간 : %s
+This account has been used for illegal program or hacking program. Block Time: %s
+*/
+ MSG_RE17 = 0x564,
+/*20080408 to latest
+불법프로그램이 실행, 바이러스 감염, 또는 해킹툴이 설치되어 있을 가능성이 있습니다. 정상 클라이언트를 실행하여 주시기 바랍니다. 함께 만드는 밝은 라그나로크가 될 수 있도록 노력하고 있습니다.
+The possibility of exposure to illegal program, PC virus infection or Hacking Tool has been detected. Please execute licensed client. Our team is trying to make a best environment for Ro players.
+*/
+ MSG_RE18 = 0x565,
+#endif
+#if PACKETVER >= 20080415
+/*20080415 to latest
+당신은 지금 건강한 게임 시간 대에 있습니다, 즐거운 게임이 되시길 바랍니다
+You are currently playing in the best game environment. Please enjoy the Ragnarok.
+*/
+ MSG_WARNING_MSG3 = 0x566,
+/*20080415 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 Job경험치가 30분간 1.5배로 증가합니다.
+*/
+ MSG_PLUSONLYJOBEXP = 0x567,
+/*20080415 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 경험치가 30분간 1.25배로 증가합니다.
+*/
+ MSG_PLUSEXP14532 = 0x568,
+/*20080415 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 경험치가 30분간 2배로 증가합니다.
+EXP points from hunting monsters are increased by 100%% for 30 minutes.
+*/
+ MSG_PLUSEXP14533 = 0x569,
+/*20080415 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 경험치가 60분간 1.5배로 증가합니다.
+EXP points from hunting monsters are increased by 50% for 60 minutes.
+*/
+ MSG_PLUSEXP12312 = 0x56a,
+#endif
+#if PACKETVER >= 20080520
+/*20080520 to latest
+이 맵에서는 파티를 결성할 수 없습니다.
+Unable to organize a party in this map.
+*/
+ MSG_NOPARTY = 0x56b,
+/*20080520 to latest
+(%s)님은 파티에 참여할 수 없는 맵에 있습니다.
+(%s) are currently in restricted map to join a party.
+*/
+ MSG_NOPARTY2 = 0x56c,
+#endif
+#if PACKETVER >= 20080528
+/*20080528 to 20080603
+간편아이템샵.
+20080610 to latest
+간편아이템샵
+Simple Item Shop
+*/
+ MSG_SIMPLE_CASH_SHOP = 0x56d,
+/*20080528 to latest
+소지 한코인 : %d 한코인
+Han Coin: %d Han Coin
+*/
+ MSG_SIMPLE_POINT_SHOP_NHN = 0x56e,
+/*20080528 to latest
+소지 캐시 : %d 캐시
+RoK Point: %d RoK Point
+*/
+ MSG_SIMPLE_POINT_SHOP = 0x56f,
+/*20080528 to latest
+무료 캐시 : %d 캐시
+Free Cash: %d Cash
+*/
+ MSG_SIMPLE_POINT_SHOP2 = 0x570,
+#endif
+
+};
+#endif /* MAP_MESSAGES_AD_H */
diff --git a/src/map/messages_main.h b/src/map/messages_main.h
index 1d42ff2bb..e56eb42a1 100644
--- a/src/map/messages_main.h
+++ b/src/map/messages_main.h
@@ -23,7 +23,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20180718
+Latest version: 20181002
*/
enum clif_messages {
@@ -17569,9 +17569,11 @@ DEATH: %.1f%% (Basic 100.0%% VIP Bonus %.1f%% + %s %.1f%%)
MSG_ID_AFB = 0xafb,
#endif
#if PACKETVER >= 20150826
-/*20150826 to latest
+/*20150826 to 20180919
해당 태그는 이름으로 사용하실 수 없습니다.
Name with this tag cannot be used.
+20181002 to latest
+ 해당 내용은 이름으로 사용하실 수 없습니다.
*/
MSG_ID_AFC = 0xafc,
#endif
@@ -21267,6 +21269,62 @@ DEATH : %.1f%% ( basic 100.0%% %s %.1f%%)
*/
MSG_ID_DD1 = 0xdd1,
#endif
+#if PACKETVER >= 20180829
+/*20180829 to latest
+영문이나 러시아어 단독으로만 사용이 가능합니다.
+*/
+ MSG_ID_DD2 = 0xdd2,
+/*20180829 to latest
+you must have an AccessTicket to login
+*/
+ MSG_ID_DD3 = 0xdd3,
+/*20180829 to latest
+창고를 불러오는 중입니다.
+*/
+ MSG_ID_DD4 = 0xdd4,
+/*20180829 to latest
+NOW LOADING..
+*/
+ MSG_ID_DD5 = 0xdd5,
+#endif
+#if PACKETVER >= 20181002
+/*20181002 to latest
+삭제
+*/
+ MSG_ID_DD6 = 0xdd6,
+/*20181002 to latest
+답장
+*/
+ MSG_ID_DD7 = 0xdd7,
+/*20181002 to latest
+전송
+*/
+ MSG_ID_DD8 = 0xdd8,
+/*20181002 to latest
+이름확인
+*/
+ MSG_ID_DD9 = 0xdd9,
+/*20181002 to latest
+공지
+Notice
+*/
+ MSG_ID_DDA = 0xdda,
+/*20181002 to latest
+일반
+General
+*/
+ MSG_ID_DDB = 0xddb,
+/*20181002 to latest
+반송
+Clear
+*/
+ MSG_ID_DDC = 0xddc,
+/*20181002 to latest
+검색
+Search
+*/
+ MSG_ID_DDD = 0xddd,
+#endif
};
#endif /* MAP_MESSAGES_MAIN_H */
diff --git a/src/map/messages_re.h b/src/map/messages_re.h
index 899f0c708..474030df1 100644
--- a/src/map/messages_re.h
+++ b/src/map/messages_re.h
@@ -23,7 +23,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20180718
+Latest version: 20181002
*/
enum clif_messages {
@@ -17045,9 +17045,11 @@ DEATH: %.1f%% (Basic 100.0%% VIP Bonus %.1f%% + %s %.1f%%)
MSG_ID_AFB = 0xafb,
#endif
#if PACKETVER >= 20150826
-/*20150826 to latest
+/*20150826 to 20180919
해당 태그는 이름으로 사용하실 수 없습니다.
Name with this tag cannot be used.
+20181002 to latest
+ 해당 내용은 이름으로 사용하실 수 없습니다.
*/
MSG_ID_AFC = 0xafc,
#endif
@@ -20746,6 +20748,62 @@ DEATH : %.1f%% ( basic 100.0%% %s %.1f%%)
*/
MSG_ID_DD1 = 0xdd1,
#endif
+#if PACKETVER >= 20180829
+/*20180829 to latest
+영문이나 러시아어 단독으로만 사용이 가능합니다.
+*/
+ MSG_ID_DD2 = 0xdd2,
+/*20180829 to latest
+you must have an AccessTicket to login
+*/
+ MSG_ID_DD3 = 0xdd3,
+/*20180829 to latest
+창고를 불러오는 중입니다.
+*/
+ MSG_ID_DD4 = 0xdd4,
+/*20180829 to latest
+NOW LOADING..
+*/
+ MSG_ID_DD5 = 0xdd5,
+#endif
+#if PACKETVER >= 20180919
+/*20180919 to latest
+삭제
+*/
+ MSG_ID_DD6 = 0xdd6,
+/*20180919 to latest
+답장
+*/
+ MSG_ID_DD7 = 0xdd7,
+/*20180919 to latest
+전송
+*/
+ MSG_ID_DD8 = 0xdd8,
+/*20180919 to latest
+이름확인
+*/
+ MSG_ID_DD9 = 0xdd9,
+/*20180919 to latest
+공지
+Notice
+*/
+ MSG_ID_DDA = 0xdda,
+/*20180919 to latest
+일반
+General
+*/
+ MSG_ID_DDB = 0xddb,
+/*20180919 to latest
+반송
+Clear
+*/
+ MSG_ID_DDC = 0xddc,
+/*20180919 to latest
+검색
+Search
+*/
+ MSG_ID_DDD = 0xddd,
+#endif
};
#endif /* MAP_MESSAGES_RE_H */
diff --git a/src/map/messages_sak.h b/src/map/messages_sak.h
new file mode 100644
index 000000000..2cfe085c8
--- /dev/null
+++ b/src/map/messages_sak.h
@@ -0,0 +1,8267 @@
+/**
+ * This file is part of Hercules.
+ * http://herc.ws - http://github.com/HerculesWS/Hercules
+ *
+ * Copyright (C) 2013-2018 Hercules Dev Team
+ *
+ * Hercules is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef MAP_MESSAGES_SAK_H
+#define MAP_MESSAGES_SAK_H
+
+/* This file is autogenerated, please do not commit manual changes
+
+Latest version: 20090617
+*/
+
+enum clif_messages {
+/*20031029 to latest
+동의 하십니까?
+Do you agree?
+*/
+ MSG_DO_YOU_AGREE = 0x0,
+/*20031029 to latest
+서버 연결 실패
+Failed to Connect to Server.
+*/
+ MSG_SERVER_CONNECTION_FAILED = 0x1,
+/*20031029 to latest
+서버와 연결이 끊어졌습니다.
+Disconnected from Server.
+*/
+ MSG_UNABLE_TO_CONNECT_SERVER = 0x2,
+/*20031029 to 20080618
+서버와 연결이 끊어졌습니다.
+Disconnected from Server.
+20080624 to latest
+서버와 연결이 끊어졌습니다!
+Disconnected from Server!
+*/
+ MSG_BANNED = 0x3,
+/*20031029 to latest
+서버 종료됨
+Server Closed.
+*/
+ MSG_SERVER_OFF = 0x4,
+/*20031029 to latest
+같은 계정으로 다른 사용자가 로그인 하였습니다.
+Someone has Logged in with this ID.
+*/
+ MSG_DOUBLE_LOGIN_PROHIBITED = 0x5,
+/*20031029 to latest
+등록되지 않은 계정입니다. 다시 확인 바랍니다.
+Unregistered ID. Please make sure you have a registered account and you have correctly typed in the user ID.
+*/
+ MSG_INCORRECT_USERID = 0x6,
+/*20031029 to 20070704
+비밀번호가 틀립니다
+20070710 to latest
+입력하신 비밀번호가 올바르지 않습니다.
+Incorrect User ID or Password. Please try again.
+*/
+ MSG_INCORRECT_PASSWORD = 0x7,
+/*20031029 to latest
+본 ID 는 사용기간이 만료 되었습니다
+This ID is expired.
+*/
+ MSG_ID_EXPIRED = 0x8,
+/*20031029 to latest
+서버 접근 거부
+Rejected from Server.
+*/
+ MSG_ACCESS_DENIED = 0x9,
+/*20031029 to latest
+같은 캐릭터 이름이 있습니다.
+Character Name already exists.
+*/
+ MSG_CHARACTER_NAME_ALREADY_EXISTS = 0xa,
+/*20031029 to latest
+캐릭터 생성 거부됨
+Character Creation is denied.
+*/
+ MSG_CHARACTER_CREATION_DENIED = 0xb,
+/*20031029 to latest
+캐릭터 삭제 거부
+Character Deletion is denied.
+*/
+ MSG_CANNOT_DELETE_CHARACTER = 0xc,
+/*20031029 to latest
+방제목를 입력하세요.
+Please Enter Room Title.
+*/
+ MSG_ENTER_ROOM_TITLE = 0xd,
+/*20031029 to latest
+불량단어가 검출되었습니다.
+Foul Language Detected.
+*/
+ MSG_BAD_SENTANGE = 0xe,
+/*20031029 to latest
+암호를 입력하세요.
+Please enter Password.
+*/
+ MSG_ENTER_PASSWORD = 0xf,
+/*20031029 to latest
+암호를 영문 4자 이상 입력하세요.
+Please enter Password. Passwords must be at least 4 characters long.
+*/
+ MSG_Enter_Password_more_than_4_char = 0x10,
+/*20031029 to latest
+종료 하시겠습니까?
+Are you sure that you want to quit?
+*/
+ MSG_DO_YOU_REALLY_WANT_TO_QUIT = 0x11,
+/*20031029 to latest
+4자 이상 입력해주세요. 사용자 계정이 없으신분들은 왼쪽 하단의 [신청] 버튼을 눌러 계정을 만드시기 바랍니다.
+Passwords are at least 4 characters long. Please try again.
+*/
+ MSG_NAME_MUST_EXCEED_4_CHAR = 0x12,
+/*20031029 to 20070704
+캐릭터를 삭제하겠습니까?
+20070618 to latest
+한 번 삭제된 캐릭터 및 관련 정보는 다시 복구되지 않습니다. 캐릭터를 삭제하시겠습니까?
+Are you sure that you want to delete this character?
+*/
+ MSG_DELETE_CHARACTER = 0x13,
+/*20031029 to latest
+불량단어가 검출되었습니다.
+Foul Language Detected.
+*/
+ MSG_BAD_NAME = 0x14,
+/*20031029 to latest
+이름을 입력해 주세요.(한글 2자 영문 4자 이상)
+Character Name must be at least 4 characters long.
+*/
+ MSG_ENTER_NAME_MORE_THAN_4_CHAR = 0x15,
+/*20031029 to latest
+명령어 일람: /h
+Command List: /h | /help
+*/
+ MSG_LIST_COMMAND = 0x16,
+/*20031029 to latest
+이펙트 On
+Effects On
+*/
+ MSG_EFFECT_ON = 0x17,
+/*20031029 to latest
+이펙트 Off
+Effects Off
+*/
+ MSG_EFFECT_OFF = 0x18,
+/*20031029 to latest
+사운드 볼륨
+Sound Volume
+*/
+ MSG_VOLUME_OF_SOUND = 0x19,
+/*20031029 to latest
+배경음악 볼륨
+BGM Volume
+*/
+ MSG_VOLUME_OF_BGM = 0x1a,
+/*20031029 to latest
+효과음 On
+Sound Effects On
+*/
+ MSG_SOUND_ON = 0x1b,
+/*20031029 to latest
+효과음 Off
+Sound Effects Off
+*/
+ MSG_SOUND_OFF = 0x1c,
+/*20031029 to latest
+프레임스킵 On
+Frame Skip On
+*/
+ MSG_FRAME_SKIP_ON = 0x1d,
+/*20031029 to latest
+프레임스킵 Off
+Frame Skip Off
+*/
+ MSG_FRAME_SKIP_OFF = 0x1e,
+/*20031029 to latest
+배경음악 On
+BGM On
+*/
+ MSG_BGM_ON = 0x1f,
+/*20031029 to latest
+배경음악 Off
+BGM Off
+*/
+ MSG_BGM_OFF = 0x20,
+/*20031029 to latest
+/h or /help: 명령어 일람
+/h or /help: Shows this Command Help List
+*/
+ MSG_EXPLAIN_HELP = 0x21,
+/*20031029 to latest
+/w or /who or /접속자 or /누구: 현재 접속자수 보기
+/w or /who or /player or /who: wiew current the number of player
+*/
+ MSG_EXPLAIN_WHO = 0x22,
+/*20031029 to latest
+/음악 : 배경음악 On Off
+/music: Turns BGM On or Off
+*/
+ MSG_EXPLAIN_MUSIC = 0x23,
+/*20031029 to latest
+/효과음 : 효과음 On Off
+/sound: Turns Sound Effects On or Off
+*/
+ MSG_EXPLAIN_SOUND = 0x24,
+/*20031029 to latest
+/이펙트 : 이펙트 On Off
+/effect: Effects On or Off
+*/
+ MSG_EXPLAIN_EFFECT = 0x25,
+/*20031029 to latest
+/좌표 or /장소: 현재 위치 표시
+/where: Shows your present location
+*/
+ MSG_EXPLAIN_POS = 0x26,
+/*20031029 to latest
+/skip : 프래임스킵 On Off
+/skip: Turns Frame Skip On or Off
+*/
+ MSG_EXPLAIN_FRAMESKIP = 0x27,
+/*20031029 to latest
+/v (0~127): 효과음 볼륨조정
+/v (0~127): Controls the volume of the Sound Effects
+*/
+ MSG_EXPLAIN_SOUNDVOLUME = 0x28,
+/*20031029 to latest
+/bv (0~127): 배경음악 볼륨조정
+/bv (0~127): Controls the volume of the BGM
+*/
+ MSG_EXPLAIN_BGMVOLUME = 0x29,
+/*20031029 to latest
+/ex (캐릭터이름) or /차단 (캐릭터이름) : 해당캐릭터에 대해 귓말차단
+/ex (Character Name): Blocks whispering from the Character
+*/
+ MSG_EXPLAIN_SAYISOLATION = 0x2a,
+/*20031029 to latest
+/ex or /차단 : 귓말차단 캐릭터 리스트
+/ex: View a list of Characters you have Blocked
+*/
+ MSG_EXPLAIN_LIST_SAYISOLATION_CHAR = 0x2b,
+/*20031029 to latest
+/in (캐릭터이름) or /해제 (캐릭터이름) : 해당캐릭터에 대해 귓말허용
+/in (Character Name): Allows whispering from the Character
+*/
+ MSG_EXPLAIN_SAY_PERMIT = 0x2c,
+/*20031029 to latest
+/inall or /해제전부 : 모두에게 귓말허용
+/inall: Allows whispers from anyone
+*/
+ MSG_EXPLAIN_SAY_PERMITALL = 0x2d,
+/*20031029 to latest
+/exall or /차단전부 : 모두에게 귓말차단
+/exall: Blocks whispers from everyone
+*/
+ MSG_EXPLAIN_SAY_ISOLATEALL = 0x2e,
+/*20031029 to latest
+다른유저 캐릭터를 마우스 오른버튼을 누르고 있는 상태에서 왼버튼으로 클릭하면 그캐릭터이름이 귓말콤보박스에 저장됩니다.
+Right click on a character and select [Register as a Friend] to add a person to your Friend List.
+*/
+ MSG_EXPLAIN_TIP1 = 0x2f,
+/*20031029 to latest
+단축아이탬창(F12) 소비장비 아이템을 드래그한후 사용하세요. 사용키(F1F2F3F4F5F6F7F8F9)
+F12 Brings up a Hotkey Window which allows you to drag and drop Recovery Items, Equipment and Skills into it for faster access.
+*/
+ MSG_EXPLAIN_TIP2 = 0x30,
+/*20031029 to latest
+같은말을 3번이상 연속해서 전송할 수 없습니다.
+You can't type the same word/phrase more than 3 times.
+*/
+ MSG_NO_SAME_SENTANCE = 0x31,
+/*20031029 to latest
+불량단어 검출로 전송이 중단 되었습니다.
+Chat Filter: Yeah, uh, I don't think so buddy...
+*/
+ MSG_NO_SEND_BECAUSE_INSULT = 0x32,
+/*20031029 to latest
+같은아이템은 한번만 올릴수 있습니다.
+You cannot overlap items on a window.
+*/
+ MSG_CAN_DRAG_ITEM_OLNY_ONETIME = 0x33,
+/*20031029 to latest
+무게가 초과하여 아이템을 가질 수 없습니다.
+You cannot carry more items because you are overweight.
+*/
+ MSG_CANT_GET_ITEM_BECAUSE_WEIGHT = 0x34,
+/*20031029 to latest
+아이템을 가질 수 없습니다.
+You cannot get the item.
+*/
+ MSG_CANT_GET_ITEM = 0x35,
+/*20031029 to latest
+거래가 잘 이루어졌습니다.
+The deal has successfully completed.
+*/
+ MSG_DEAL_SECCESS = 0x36,
+/*20031029 to latest
+돈이 부족합니다.
+You do not have enough zeny.
+*/
+ MSG_INSUFFICIENT_MONEY = 0x37,
+/*20031029 to latest
+무게가 초과 되었습니다.
+You are over your Weight Limit.
+*/
+ MSG_OVER_WEIGHT = 0x38,
+/*20031029 to latest
+거래가 실패 했습니다.
+The deal has failed.
+*/
+ MSG_DEAL_FAIL = 0x39,
+/*20031029 to latest
+모두에게 귓말거부상태로됨
+You've blocked whispers from everyone.
+*/
+ MSG_REFUSE_HEAR_ALL = 0x3a,
+/*20031029 to latest
+모두에게 귓말거부요청 실패함
+You've failed to block all whispers.
+*/
+ MSG_REQ_REFUSE_HEAR_ALL_FAIL = 0x3b,
+/*20031029 to latest
+모두에게 귓말가능상태가됨
+You've allowed whispers from everyone.
+*/
+ MSG_HEAR_ALL = 0x3c,
+/*20031029 to latest
+모두에게 귓말가능요청 실패함
+You've failed to allow all whispers.
+*/
+ MSG_REQ_HEAR_ALL_FAIL = 0x3d,
+/*20031029 to latest
+귓말 거부 리스트가 없습니다
+You have no Block List.
+*/
+ MSG_NO_REFUSE_HEAR_LIST = 0x3e,
+/*20031029 to latest
+-귓말 거부 리스트-
+[ Character Block List ]
+*/
+ MSG_REFUSE_HEAR_LIST = 0x3f,
+/*20031029 to latest
+방이 잘 만들어 졌습니다.
+Room has been successfully created.
+*/
+ MSG_ROOM_IS_MADE = 0x40,
+/*20031029 to latest
+방갯수가 허용갯수를 초과 하였습니다.
+Room Limit Exceeded.
+*/
+ MSG_TOO_MANY_ROOM = 0x41,
+/*20031029 to latest
+같은 방제목이 있습니다.
+Same Room exists.
+*/
+ MSG_SAME_ROOM_TITLE = 0x42,
+/*20031029 to latest
+인원초과로 방에 들어갈 수 없습니다.
+The Room is full.
+*/
+ MSG_TOO_MANY_PEOPLE_IN_ROOM = 0x43,
+/*20031029 to latest
+강제로 퇴장된 방입니다.
+You have been kicked out of this room.
+*/
+ MSG_YOU_HAVE_BANNED_FROM_THE_ROOM = 0x44,
+/*20031029 to latest
+교환요청을 거절 했습니다.
+The deal has been rejected.
+*/
+ MSG_REJECT_DEAL = 0x45,
+/*20031029 to latest
+교환가능거리를 벗어났습니다.
+You are too far away from the person to trade.
+*/
+ MSG_TOO_FAR_TO_DEAL = 0x46,
+/*20031029 to latest
+해당 캐릭터가 없습니다.
+The Character is not currently online or does not exist.
+*/
+ MSG_CHARACTER_IS_NOT_EXIST = 0x47,
+/*20031029 to latest
+다른캐릭터와 교환중입니다.
+The person is in another deal.
+*/
+ MSG_CHARACTER_IS_DEALING = 0x48,
+/*20031029 to latest
+상태캐릭터 중량초과로 올려놓을수가 없습니다.
+*/
+ MSG_CHARACTER_IS_OVER_WEIGHT = 0x49,
+/*20031029 to latest
+거래가 취소 되었습니다.
+The deal has been canceled.
+*/
+ MSG_DEAL_IS_CANCELED = 0x4a,
+/*20031029 to latest
+아이템 교환이 잘 되었습니다.
+The deal has successfully completed.
+*/
+ MSG_DEAL_SUCCESS = 0x4b,
+/*20031029 to latest
+아이템 교환이 실패 하였습니다.
+The deal has failed.
+*/
+ MSG_DEAL_FAILED = 0x4c,
+/*20031029 to latest
+파티가 만들어졌습니다.
+Party has successfully been organized.
+*/
+ MSG_PARTY_MAKE_SUCCEED = 0x4d,
+/*20031029 to latest
+같은 파티이름이 있습니다.
+That Party Name already exists.
+*/
+ MSG_SAME_PARTY_NAME = 0x4e,
+/*20031029 to latest
+이미 파티에 속해있습니다.
+The Character is already in a party.
+*/
+ MSG_YOU_ARE_ALREADY_IN_PARTY = 0x4f,
+/*20031029 to latest
+다른파티에 가입되어 있습니다.
+The Character already joined another party.
+*/
+ MSG_CHARACTER_IS_ALREADY_IN_PARTY = 0x50,
+/*20031029 to latest
+파티가입을 거부했습니다.
+Request for party rejected.
+*/
+ MSG_CHARACTER_REJECT_JOIN = 0x51,
+/*20031029 to latest
+파티가입을 수락했습니다.
+Request for party accepted.
+*/
+ MSG_CHARACTER_ACCEPT_JOIN = 0x52,
+/*20031029 to latest
+파티정원을 초과했습니다.
+Party Capacity exceeded.
+*/
+ MSG_TOO_MANY_PEOPLE_IN_PARTY = 0x53,
+/*20031029 to latest
+파티에서 탈퇴하였습니다.
+You left the party.
+*/
+ MSG_YOU_LEAVE_FROM_PARTY = 0x54,
+/*20031029 to latest
+전체에게 보냄
+Send to All
+*/
+ MSG_SEND_TO_ALL = 0x55,
+/*20031029 to latest
+파티에게 보냄
+Send to Party
+*/
+ MSG_SEND_TO_PARTY = 0x56,
+/*20031029 to latest
+님과의 거래요청
+Request a deal with %s
+*/
+ MSG_REQ_DEAL_WITH = 0x57,
+/*20031029 to latest
+님 파티에 가입요청
+Ask %s to join your party
+*/
+ MSG_REQ_JOIN_PARTY = 0x58,
+/*20031029 to latest
+비공개 :
+Pri:
+*/
+ MSG_ROOM_PRIVATE = 0x59,
+/*20031029 to latest
+공개 :
+Pub:
+*/
+ MSG_ROOM_PUBLIC = 0x5a,
+/*20031029 to latest
+마지막 체크지점부터 시작하려면 '재시작'을 캐릭터 선택으로 돌아가려면 '종료'를 눌러주세요.
+Click ''Restart'' to go back to your save point or click ''Exit'' to select another character.
+*/
+ MSG_RESTART_MSG = 0x5b,
+/*20031029 to latest
+원하는 거래를 선택하세요.
+Please select a Deal Type.
+*/
+ MSG_SELECT_DEAL_TYPE = 0x5c,
+/*20031029 to latest
+님이 거래를 요청했습니다.
+ requests a deal.
+*/
+ MSG_SUGGEST_DEAL = 0x5d,
+/*20031029 to latest
+ 파티에서 초청 메시지가 왔습니다. 합류하겠습니까?
+ Party has sent you an invitation. Would you like to join?
+*/
+ MSG_SUGGEST_JOIN_PARTY = 0x5e,
+/*20031029 to latest
+명령이 틀렸습니다.
+Invalid Command
+*/
+ MSG_INVALID_COMMAND = 0x5f,
+/*20031029 to latest
+탈퇴하기
+Leave party
+*/
+ MSG_LEAVE_PARTY = 0x60,
+/*20031029 to latest
+제명시키기
+Expel
+*/
+ MSG_EXPEL = 0x61,
+/*20031029 to latest
+쪽지보내기
+Send Message
+*/
+ MSG_MSG = 0x62,
+/*20031029 to latest
+1:1 대화
+1:1 Chat
+*/
+ MSG_1ON1 = 0x63,
+/*20031029 to latest
+정보
+Information
+*/
+ MSG_CHARACTER_INFO = 0x64,
+/*20031029 to latest
+파티설정
+Party Setup
+*/
+ MSG_PARTY_SETTING = 0x65,
+/*20031029 to latest
+친구
+Friend
+*/
+ MSG_FRIEND = 0x66,
+/*20031029 to latest
+파티
+Party
+*/
+ MSG_PARTY = 0x67,
+/*20031029 to latest
+장착아이템
+Equipment
+*/
+ MSG_EQUIPED_ITEM = 0x68,
+/*20031029 to latest
+스테이터스
+Status
+*/
+ MSG_STATUS_ = 0x69,
+/*20031029 to latest
+소지아이템
+Inventory
+*/
+ MSG_ITEM = 0x6a,
+/*20031029 to latest
+/결성 [파티이름] : 파티결성 /탈퇴 : 파티탈퇴
+/organize ''Party Name'' To organize a party. Type /leave To leave a Party.
+*/
+ MSG_EXPLAIN_PARTY = 0x6b,
+/*20031029 to latest
+자신이 파티리더일때 캐릭터를 오른버튼으로 클릭하면 파티에 가입요청하기 메뉴가 뜹니다.
+If you are the party master, you can invite someone into your party by right-clicking on a Character.
+*/
+ MSG_EXPLAIN_TIP3 = 0x6c,
+/*20031029 to latest
+회복
+Consumables
+*/
+ MSG_RESTORE = 0x6d,
+/*20031029 to latest
+공격
+Attack
+*/
+ MSG_ATTACK = 0x6e,
+/*20031029 to latest
+보조
+Support
+*/
+ MSG_SUPPORT = 0x6f,
+/*20031029 to latest
+전체
+All
+*/
+ MSG_ALL = 0x70,
+/*20031029 to latest
+무기
+Weapons
+*/
+ MSG_WEAPON = 0x71,
+/*20031029 to latest
+방어
+Defense
+*/
+ MSG_DEFENCE = 0x72,
+/*20031029 to latest
+수
+Water
+*/
+ MSG_WATER = 0x73,
+/*20031029 to latest
+지
+Earth
+*/
+ MSG_EARTH = 0x74,
+/*20031029 to latest
+화
+Fire
+*/
+ MSG_FIRE = 0x75,
+/*20031029 to latest
+풍
+Wind
+*/
+ MSG_WIND = 0x76,
+/*20031029 to latest
+같은종류의 장비아이템은 한번에 한개만 살 수 있습니다.
+Please avoid buying 2 of the same items at one time.
+*/
+ MSG_EQUIPITEM_OLNY_ONE = 0x77,
+/*20031029 to latest
+창모드에서 실행 할때는 16비트 컬러로 맞춰주세요.
+Please change your desktop Color Depth to 16-bit when running Ragnarok in windowed mode.
+*/
+ MSG_ONLY_16BIT_WHEN_WINDOWMODE = 0x78,
+/*20031029 to latest
+잠시만 기다려 주세요.
+Please wait...
+*/
+ MSG_PLEASE_BE_PATIENT = 0x79,
+/*20031029 to latest
+잠시만 기다려 주세요.
+Please wait...
+*/
+ MSG_WAITING_RESPONSE_FROM_SERVER = 0x7a,
+/*20031029 to latest
+잠시만 기다려 주세요.
+Please wait...
+*/
+ MSG_MAKING_CHARACTER = 0x7b,
+/*20031029 to latest
+잠시만 기다려 주세요.
+Please wait...
+*/
+ MSG_DELETING_CHARACTER = 0x7c,
+/*20031029 to latest
+방 만들기
+Make a Room
+*/
+ MSG_MAKING_ROOM = 0x7d,
+/*20031029 to latest
+방셋팅 바꾸기
+Room Setup
+*/
+ MSG_CHANGE_ROOM_SETTING = 0x7e,
+/*20031029 to latest
+강퇴시키기
+Kick Character Out
+*/
+ MSG_BAN = 0x7f,
+/*20031029 to latest
+방장권한 주기
+Give Master Authority
+*/
+ MSG_GIVE_GIVE_ROOM_POWER = 0x80,
+/*20031029 to latest
+정보보기
+View Information
+*/
+ MSG_SEE_INFORMATION_OF_CHARACTER = 0x81,
+/*20031029 to latest
+대화방
+Chat Room
+*/
+ MSG_CHAT_ROOM = 0x82,
+/*20031029 to latest
+명
+Ppl
+*/
+ MSG_COUNT_UNIT_OF_PEOPLE = 0x83,
+/*20031029 to latest
+/앉기 or /sit : 앉기. 앉아있을때 서기
+/sit: Sit command. If you are sitting, you will stand instead.
+*/
+ MSG_EXPLAIN_SIT = 0x84,
+/*20031029 to latest
+/서기 or /stand : 서기. 서있을때 앉기
+/stand: Stand command. If you are standing, you will sit instead.
+*/
+ MSG_EXPLAIN_STAND = 0x85,
+/*20031029 to latest
+/채팅방 or /chat : 채팅방 만들기창 띄우기
+/chat: Creates a Chat Room
+*/
+ MSG_EXPLAIN_MAKE_CHAT = 0x86,
+/*20031029 to latest
+/q : 채팅방 나가기.
+/q: Leaves a Chat Room
+*/
+ MSG_EXPLAIN_EXIT_CHAT_ROOM = 0x87,
+/*20031029 to latest
+/거래 [캐릭터이름] or /교환 [캐릭터이름] or /deal [캐릭터이름] : 해당 캐릭터와 거래요청
+/deal ''Character Name'' Requests a deal with a character
+*/
+ MSG_EXPLAIN_DEAL = 0x88,
+/*20031029 to latest
+/결성 [파티이름] or /organize [파티이름] : 파티결성
+/organize ''Party Name'' Organizes a party
+*/
+ MSG_EXPLAIN_ORGANIZE_PARTY = 0x89,
+/*20031029 to latest
+/탈퇴 or /leave : 파티 탈퇴
+/leave: Leaves a party
+*/
+ MSG_EXPLAIN_LEAVE_PARTY = 0x8a,
+/*20031029 to latest
+/제명 [캐릭터이름] or /expel [캐릭터이름] : 해당캐릭터를 파티에서 제명시킴
+/expel ''Character Name'' kicks a Character out of your party
+*/
+ MSG_EXPLAIN_EXPEL_PARTY_MEMBER = 0x8b,
+/*20031029 to latest
+[Alt] + [End] : 플레이어 hp/sp 게이지 On Off
+[Alt] + [End]: Turns HP/SP Bar On or Off
+*/
+ MSG_EXPLAIN_TIP4 = 0x8c,
+/*20031029 to latest
+[Alt] + [Home] : 지면 커서 표시 On Off
+[Alt] + [Home]: Turns Ground Cursor On or Off
+*/
+ MSG_EXPLAIN_TIP5 = 0x8d,
+/*20031029 to latest
+[Insert] : 앉기 서기
+[Insert]: Makes you sit or stand. (Hotkey to toggle between /sit and /stand)
+*/
+ MSG_EXPLAIN_TIP6 = 0x8e,
+/*20031029 to latest
+MVP가 되셨습니다!! MVP 아이템은
+Congratulations! You are the MVP! Your reward item is
+*/
+ MSG_YOU_RECEIVE_MVP_ITEM = 0x8f,
+/*20031029 to latest
+ !!
+!!
+*/
+ MSG_YOU_RECEIVE_MVP_ITEM2 = 0x90,
+/*20031029 to latest
+MVP가 되셨습니다!! 특별경험치
+Congratulations! You are the MVP! Your reward EXP Points are
+*/
+ MSG_YOU_RECEIVE_MVP_EXP = 0x91,
+/*20031029 to latest
+ 획득!!
+!!
+*/
+ MSG_YOU_RECEIVE_MVP_EXP2 = 0x92,
+/*20031029 to latest
+MVP가 되셨습니다만 무게초과로 MVP 아이템을 가질 수 없었습니다!!
+You are the MVP, but you can't take the reward because you are over your weight limit.
+*/
+ MSG_YOU_THROW_MVPITEM = 0x93,
+/*20031029 to latest
+ 없는 캐릭터 이름 입니다.
+There is no such character name or the user is offline.
+*/
+ MSG_NOT_EXIST_CHARACTER = 0x94,
+/*20031029 to latest
+ 수신 거부 상태입니다.
+ doesn't want to receive your messages.
+*/
+ MSG_NO_RECEIVE_MODE = 0x95,
+/*20031029 to latest
+ 모든 캐릭터에 대해 수신 거부 상태 입니다.
+ is not in the mood to talk with anyone.
+*/
+ MSG_NO_RECEIVE_MODE_FOR_ALL = 0x96,
+/*20031029 to latest
+캐릭터 접속끊기 성공.
+Killed/Disconnected User.
+*/
+ MSG_SUCCESS_DISCONNECT_CHARACTER = 0x97,
+/*20031029 to latest
+캐릭터 접속끊기 실패.
+Kill has failed.
+*/
+ MSG_FAIL_DISCONNECT_CHARACTER = 0x98,
+/*20031029 to latest
+%s %d 개 획득
+You got %s (%d).
+*/
+ MSG_GET_ITEM = 0x99,
+/*20031029 to latest
+[Alt] + [=] : 알파벳 간격이 넓어졌을때 되돌리기.
+[Alt] + [=]: Fix the interval error between letters.
+*/
+ MSG_EXPLAIN_TIP7 = 0x9a,
+/*20031029 to latest
+[F10] : 채팅창 크기조정 [Alt] + [F10] : 채팅창 On Off
+[F10]: To toggle Chat Window size; [Alt] + [F10]: Toggle Chat Window On or Off
+*/
+ MSG_EXPLAIN_TIP8 = 0x9b,
+/*20031029 to latest
+귓속말 하는법 : 채팅창 왼쪽 입력란에 캐릭터이름을 입력하고 오른쪽 입력란에 말을 입력하면 됩니다. TAB키로 두입력란 사이로 커서를 이동할 수 있습니다.
+How to Whisper: Enter a Character's Name on the left side of chat window and type your message on the right side. The Tab key helps you move between these boxes.
+*/
+ MSG_EXPLAIN_TIP9 = 0x9c,
+/*20031029 to latest
+/! /? /기쁨 /하트 /땀 /아하 /짜증 /화 /돈 /... /가위 /바위 /보 : Alt + (1~9) Ctrl + (-=\) 에 대응되는 명령어 입니다.
+/!,/?,/ho,/lv,/lv2,/swt,/ic,/an,/ag,/$,/….,/thx,/wah,/sry,/heh,/swt2,/hmm,/no1,/??,/omg,/oh,/X,/hp,/go,/sob,/gg,/kis,/kis2,/pif,/ok: Emotion icons corresponding to Alt + (1~9) Ctrl + (-=\\)
+*/
+ MSG_EXPLAIN_TIP10 = 0x9d,
+/*20031029 to latest
+파티원에게 말하는법 : 말의 제일앞에 '%'를 붙이면 파티원에게 말이 갑니다. (예: "%안녕")
+How to Speak to Party: Add % in front of every message.(Example: \%Hello\)
+*/
+ MSG_EXPLAIN_TIP11 = 0x9e,
+/*20031029 to latest
+스킬레벨이 부족합니다. 교환 불능.
+You haven't learned enough Basic Skills to Trade.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE1 = 0x9f,
+/*20031029 to latest
+스킬레벨이 부족합니다. 이모션 불능.
+You haven't learned enough Basic Skills to use Emotion icons.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE2 = 0xa0,
+/*20031029 to latest
+스킬레벨이 부족합니다. 앉기 불능.
+You haven't learned enough Basic Skills to Sit.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE3 = 0xa1,
+/*20031029 to latest
+스킬레벨이 부족합니다. 채팅방만들기 불능.
+You haven't learned enough Basic Skills to create a chat room.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE4 = 0xa2,
+/*20031029 to latest
+스킬레벨이 부족합니다. 파티만들기 불능
+You haven't learned enough Basic Skills to Party.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE5 = 0xa3,
+/*20031029 to latest
+스킬레벨이 부족합니다. 외치기 불능
+You haven't learned enough skills to Shout.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE6 = 0xa4,
+/*20031029 to latest
+스킬레벨이 부족합니다. pk 불능
+You haven't learned enough skills for Pking.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE7 = 0xa5,
+/*20031029 to latest
+사고자하는 품목
+Buying Items
+*/
+ MSG_ITEMS_FOR_BUY = 0xa6,
+/*20031029 to latest
+아이템 상점
+Item Shop
+*/
+ MSG_ITEM_STORE = 0xa7,
+/*20031029 to latest
+팔고자하는 품목
+Selling Items
+*/
+ MSG_ITEMS_FOR_SELL = 0xa8,
+/*20031029 to latest
+보관아이템
+Storage
+*/
+ MSG_ITEMS_THAT_IS_STORED = 0xa9,
+/*20031029 to latest
+ 장비가 장착 되었습니다.
+ is put on.
+*/
+ MSG_ITEM_IS_EQUIPED = 0xaa,
+/*20031029 to latest
+ 장비가 해제 되었습니다.
+ is taken off.
+*/
+ MSG_ITEM_IS_REMOVED = 0xab,
+/*20031029 to latest
+귓말리스트에 이름넣기
+To add names on the Whispering List
+*/
+ MSG_ADD_TO_WHISPER_CHAR_LIST = 0xac,
+/*20031029 to latest
+스크린샷 찍는법 : [Print Screen]키나 [Scroll Lock]키를 누르면 됩니다.
+How to Take Screen Shots: Press [Print Screen] or [Scroll Lock]
+*/
+ MSG_EXPLAIN_TIP12 = 0xad,
+/*20031029 to latest
+오늘의 팁
+Tip of the Day
+*/
+ MSG_TIPOFTHEDAY = 0xae,
+/*20031029 to latest
+^3850a0알고 계셨습니까... ^000000 //^709fed
+^3850a0Did you know...?^709fed
+*/
+ MSG_DIDYOUKNOW = 0xaf,
+/*20031029 to latest
+시작할때 열기
+Display at startup
+*/
+ MSG_SHOWTIPSATSTARTUP = 0xb0,
+/*20031029 to latest
+/tip : 오늘의팁 열기
+/tip: Opens ''Tip of the Day''
+*/
+ MSG_EXPLAIN_OPENTIP = 0xb1,
+/*20031029 to latest
+현재 접속자 %d명
+There are %d Players Currently Connected.
+*/
+ MSG_NUMPEOPLE = 0xb2,
+/*20031029 to latest
+(%s)님이 입장 하였습니다.
+(%s) has entered.
+*/
+ MSG_USERGETINTHEROOM = 0xb3,
+/*20031029 to latest
+(%s)님이 퇴장 하였습니다.
+(%s) has left.
+*/
+ MSG_USERGETOUTOFTHEROOM = 0xb4,
+/*20031029 to latest
+(%s)님이 강제 퇴장 되었습니다.
+(%s) was kicked out.
+*/
+ MSG_USERGETOUTOFTHEROOMBYFORCE = 0xb5,
+/*20031029 to latest
+ %d 개
+%d ea.
+*/
+ MSG_EA = 0xb6,
+/*20031029 to latest
+%s : %d 개
+%s: %d ea.
+*/
+ MSG_EA2 = 0xb7,
+/*20031029 to latest
+%s %s : %d 개
+%s %s: %d
+*/
+ MSG_EA3 = 0xb8,
+/*20031029 to latest
+팔 수 있는 품목
+Available Items to sell
+*/
+ MSG_ITEMSYOUCANSELL = 0xb9,
+/*20031029 to latest
+상점에서 파는 품목
+Shop Items
+*/
+ MSG_SHOPITEMS = 0xba,
+/*20031029 to latest
+알 수 없는곳
+Unknown Area
+*/
+ MSG_NOWHERE = 0xbb,
+/*20031029 to latest
+서버와 언어가 맞지 않습니다.
+Your Client language doesn't match the Server language.
+*/
+ MSG_CLIENTTYPEMISMATCH = 0xbc,
+/*20031029 to latest
+아이템을 버릴려면 장비창을 닫으세요.
+Please move your equipment to the inventory. And close the equipment window.
+*/
+ MSG_CLOSEEQUIPWND = 0xbd,
+/*20031029 to latest
+영어만 됩니다.
+This server provides English Text Characters Only.
+*/
+ MSG_ENGLISHONLY = 0xbe,
+/*20031029 to latest
+지금은 지원되지 않습니다.
+This is not implemented yet.
+*/
+ MSG_NOTSUPPORTEDYET = 0xbf,
+/*20031029 to latest
+귓말 리스트가 없습니다.
+No Whisper List.
+*/
+ MSG_NOWHISPERLIST = 0xc0,
+/*20031029 to latest
+ 에게 귓말거부상태로됨
+: Whispering Blocked.
+*/
+ MSG_WHISPERIGNORESUCCESS = 0xc1,
+/*20031029 to latest
+ 에게 귓말거부 요청실패함
+: Whispering Block has failed.
+*/
+ MSG_WHISPERIGNOREFAILED1 = 0xc2,
+/*20031029 to latest
+ 에게 귓말거부 요청실패함 (인원초과)
+: Whispering Block has failed. Block List is full.
+*/
+ MSG_WHISPERIGNOREFAILED2 = 0xc3,
+/*20031029 to latest
+ 에게 귓말가능상태로됨
+: Whispering accepted.
+*/
+ MSG_WHISPERNOIGNORESUCCESS = 0xc4,
+/*20031029 to latest
+ 에게 귓말가능 요청실패함
+: Command has failed.
+*/
+ MSG_WHISPERNOIGNOREFAILED1 = 0xc5,
+/*20031029 to latest
+ 에게 귓말가능 요청실패함 (인원초과)
+: Command has failed. Block List is full.
+*/
+ MSG_WHISPERNOIGNOREFAILED2 = 0xc6,
+/*20031029 to latest
+이름의 처음과 마지막에는 공백문자를 사용할 수 없습니다.
+You cannot put a space at the beginning or end of a name.
+*/
+ MSG_NO_SPACE_IN_NAME = 0xc7,
+/*20031029 to latest
+비공개
+Private
+*/
+ MSG_ROOM_PRIVATE2 = 0xc8,
+/*20031029 to latest
+공개
+Public
+*/
+ MSG_ROOM_PUBLIC2 = 0xc9,
+/*20031029 to latest
+SP가 부족합니다.
+Not Enough SP
+*/
+ MSG_USESKILL_FAIL_SP_INSUFFICIENT = 0xca,
+/*20031029 to latest
+HP가 부족합니다.
+Not Enough HP
+*/
+ MSG_USESKILL_FAIL_HP_INSUFFICIENT = 0xcb,
+/*20031029 to latest
+스킬사용 실패.
+Skill has failed.
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE8 = 0xcc,
+/*20031029 to latest
+훔치기 실패.
+Steal has failed.
+*/
+ MSG_FAIL_STEAL = 0xcd,
+/*20031029 to latest
+교환창
+Trade
+*/
+ MSG_EXCHANGE = 0xce,
+/*20031029 to latest
+독걸기 실패.
+Envenom skill has failed.
+*/
+ MSG_FAIL_POISON = 0xcf,
+/*20031029 to latest
+이 아이디로는 이 서버에 접속할 수 없습니다.
+You cannot use this ID on this server.
+*/
+ MSG_ID_MISMATCH = 0xd0,
+/*20031029 to latest
+스피드가 향상되었습니다.
+Your Speed has increased.
+*/
+ MSG_SPEEDUP = 0xd1,
+/*20031029 to latest
+스피드가 감소되었습니다.
+Your Speed has decreased.
+*/
+ MSG_SPEEDDOWN = 0xd2,
+/*20031029 to latest
+/기억 : 워프할 장소 기억(워프 스킬이 있는경우)
+/memo: To memorize a place as Warp Point (If you are an Acolyte Class character)
+*/
+ MSG_EXPLAIN_TIP13 = 0xd3,
+/*20031029 to latest
+임의의 위치
+Random Area
+*/
+ MSG_RANDOM_POS = 0xd4,
+/*20031029 to latest
+워프 할 위치를 선택하세요.
+Select an Area to Warp
+*/
+ MSG_SELECTWHERETOWARP = 0xd5,
+/*20031029 to latest
+스킬레벨이 부족합니다.
+Skill Level is not high enough
+*/
+ MSG_NOTENOUGHSKILLLEVEL = 0xd6,
+/*20031029 to latest
+저장된 워프할 장소가 없습니다.
+There are no memorized locations (Memo Points).
+*/
+ MSG_NO_STORED_PLACE_TO_WARP = 0xd7,
+/*20031029 to latest
+워프 관련 스킬이 없습니다.
+You haven't learned Warp.
+*/
+ MSG_NOWARPSKILL = 0xd8,
+/*20031029 to latest
+워프 장소로 저장됨.
+Saved location as a Memo Point for Warp Skill.
+*/
+ MSG_WARPPOINTSTORED = 0xd9,
+/*20031029 to latest
+취소
+Cancel
+*/
+ MSG_CANCEL = 0xda,
+/*20031029 to latest
+스킬 사용후 시간이 충분히 지나지 않았습니다.
+There is a Delay after using a Skill.
+*/
+ MSG_SKILLINTERVAL = 0xdb,
+/*20031029 to latest
+한번에 가질 수 있는 아이템 종류수를 초과하여 아이템을 가질 수 없습니다.
+You can't have this item because you will exceed the weight limit.
+*/
+ MSG_CANT_GET_ITEM_BECAUSE_COUNT = 0xdc,
+/*20031029 to latest
+아이템 최대 종류수를 초과 하였습니다.
+Out of the maximum capacity
+*/
+ MSG_INSUFFICIENT_OVER_COUNT = 0xdd,
+/*20031029 to latest
+수레아이템
+Cart Items
+*/
+ MSG_MERCHANTITEM = 0xde,
+/*20031029 to latest
+수레 벗기
+Take off Cart
+*/
+ MSG_CARTOFF = 0xdf,
+/*20031029 to latest
+노점 개설
+Opening a stall
+*/
+ MSG_MERCHANTSHOPMAKER = 0xe0,
+/*20031029 to 20041207
+노점이름를 입력하세요.
+20041213 to latest
+노점이름을 입력하세요.
+Please Name your Shop.
+*/
+ MSG_ENTER_SHOP_TITLE = 0xe1,
+/*20031029 to latest
+나의 노점
+My Shop
+*/
+ MSG_ITEM_MY_STORE = 0xe2,
+/*20031029 to latest
+상인 아이템 상점
+Merchant Shop
+*/
+ MSG_ITEM_MERCHANT_STORE = 0xe3,
+/*20031029 to latest
+상인에게 사고자하는 품목
+Buying Items
+*/
+ MSG_ITEMS_FOR_BUY_FROM_MERCHANT = 0xe4,
+/*20031029 to latest
+%s 사기 실패 %s
+*/
+ MSG_FAIL_BUY_ITEM_FROM_MERCHANT = 0xe5,
+/*20031029 to latest
+재고 부족.
+Out of Stock
+*/
+ MSG_INSUFFICIENT_STOCK = 0xe6,
+/*20031029 to latest
+%s %d 개 팔림.
+%s %d sold.
+*/
+ MSG_ITEM_IS_SOLD = 0xe7,
+/*20031029 to latest
+노점에서 팔 수 있는 아이템
+Available Items for Vending
+*/
+ MSG_MERCHANTMIRRORITEM = 0xe8,
+/*20031029 to latest
+돈이 부족해서 스킬을 쓸 수 없습니다.
+*/
+ MSG_SKILL_FAIL_MONEY = 0xe9,
+/*20031029 to latest
+사용할 대상을 선택하세요
+Select a Target.
+*/
+ MSG_SELECTTARGET = 0xea,
+/*20031029 to latest
+/pk on : pk On /pk off : pk Off
+/pk on: Turns PK On. /pk off: Turns PK Off.
+*/
+ MSG_EXPLAIN_TIP14 = 0xeb,
+/*20031029 to latest
+노점
+Shop
+*/
+ MSG_STREETSHOP = 0xec,
+/*20031029 to latest
+수레 아이템 [Alt+W]
+Cart Items [Alt+W]
+*/
+ MSG_OPENCARTWINDOW = 0xed,
+/*20031029 to latest
+기본정보
+Basic Information
+*/
+ MSG_BASICINFOWND = 0xee,
+/*20031029 to latest
+이무기로는 이스킬을 사용할수 없습니다.
+The skill cannot be used with this weapon.
+*/
+ MSG_USESKILL_FAIL_NOT_SUITABLE_WEAPON = 0xef,
+/*20031029 to latest
+%s 사기 실패 재고 부족 현재 재고 %d 개.
+Buying %s has been failed. Out of Stock. Current Stock %d.
+*/
+ MSG_FAIL_BUY_ITEM_FROM_MERCHANT_NO_STOCK = 0xf0,
+/*20031029 to latest
+서버와 동기화가 틀려 연결이 끊어졌습니다.
+You've been disconnected due to a time gap between you and the server.
+*/
+ MSG_SPEEDHACK = 0xf1,
+/*20031029 to latest
+화살을 장착하세요
+Please equip the proper ammunition first.
+*/
+ MSG_ERR_ATTACK_ARROW = 0xf2,
+/*20031029 to latest
+중량과다로 공격이나 스킬을 사용할 수 없습니다.
+You can't attack or use skills because you've exceeded the Weight Limit.
+*/
+ MSG_ERR_ATTACK_WEIGHT = 0xf3,
+/*20031029 to latest
+중량과다로 스킬을 사용할 수 없습니다.
+You can't use skills because you've exceeded the Weight Limit.
+*/
+ MSG_ERR_SKILL_WEIGHT = 0xf4,
+/*20031029 to latest
+화살이 장착되었습니다.
+Ammunition has been equipped.
+*/
+ MSG_MSG_ARROW_EQUIPMENT_SUCCESS = 0xf5,
+/*20031029 to latest
+레드젬스톤이 필요합니다.
+Red Gemstone required.
+*/
+ MSG_NEED_REDJAMSTONE = 0xf6,
+/*20031029 to latest
+블루젬스톤이 필요합니다.
+Blue Gemstone required.
+*/
+ MSG_NEED_BLUEJAMSTONE = 0xf7,
+/*20031029 to latest
+힘 파라메터
+Strength
+*/
+ MSG_DESC_STR = 0xf8,
+/*20031029 to latest
+민첩성 파라메터
+Agility
+*/
+ MSG_DESC_AGI = 0xf9,
+/*20031029 to latest
+체력 파라메터
+Vitality
+*/
+ MSG_DESC_VIT = 0xfa,
+/*20031029 to latest
+지력 파라메터
+Intelligence
+*/
+ MSG_DESC_INT = 0xfb,
+/*20031029 to latest
+손재주 파라메터
+Dexterity
+*/
+ MSG_DESC_DEX = 0xfc,
+/*20031029 to latest
+운 파라메터
+Luck
+*/
+ MSG_DESC_LUK = 0xfd,
+/*20031029 to latest
+공격력
+Hit Point
+*/
+ MSG_DESC_ATK = 0xfe,
+/*20031029 to latest
+방어력
+Defence Rate
+*/
+ MSG_DESC_DEF = 0xff,
+/*20031029 to latest
+명중률
+Accuracy
+*/
+ MSG_DESC_HIT = 0x100,
+/*20031029 to latest
+필살공격률
+Critical Attack
+*/
+ MSG_DESC_CRI = 0x101,
+/*20031029 to latest
+소속길드
+Affiliated Guild
+*/
+ MSG_DESC_GUILD = 0x102,
+/*20031029 to latest
+각 파라메터 레벨업에 사용되는 포인트
+Points to level up each Parameter
+*/
+ MSG_DESC_POINT = 0x103,
+/*20031029 to latest
+마법공격력
+Magic Attack
+*/
+ MSG_DESC_MATK = 0x104,
+/*20031029 to latest
+마법방어력
+Magic Defense
+*/
+ MSG_DESC_MDEF = 0x105,
+/*20031029 to latest
+회피율
+Dodge
+*/
+ MSG_DESC_FLEE = 0x106,
+/*20031029 to latest
+공격스피드
+Attack Speed
+*/
+ MSG_DESC_ASPD = 0x107,
+/*20031029 to latest
+지역당 수용인원 초과로 접속할 수 없습니다.
+Server is jammed due to over population. Please try again shortly.
+*/
+ MSG_PC_OVERFLOW = 0x108,
+/*20031029 to latest
+옵션
+Option
+*/
+ MSG_OPTIONWND = 0x109,
+/*20031029 to latest
+E-MAIL 인증이 되지않았거나 블럭된 계정입니다.
+Account ID blocked by the Game Master Team.
+*/
+ MSG_ID_EMAIL_CONFIRM_NEEDED = 0x10a,
+/*20031029 to latest
+비밀번호가 틀립니다.
+Incorrect User ID or Password. Please try again.
+*/
+ MSG_INCORRECT_LOGIN_PASSWORD = 0x10b,
+/*20031029 to latest
+머리모양 선택
+Choose Hairstyle
+*/
+ MSG_SELECT_HAIR_STYLE = 0x10c,
+/*20031029 to latest
+공격력
+Hit Point
+*/
+ MSG_ATK = 0x10d,
+/*20031029 to latest
+방어력
+Defence Rate
+*/
+ MSG_DEF = 0x10e,
+/*20031029 to latest
+공격스냅 On
+Attack Snap On
+*/
+ MSG_ATTACK_SNAP_ON = 0x10f,
+/*20031029 to latest
+공격스냅 Off
+Attack Snap Off
+*/
+ MSG_ATTACK_SNAP_OFF = 0x110,
+/*20031029 to latest
+스킬스냅 On
+Skill Snap On
+*/
+ MSG_SKILL_SNAP_ON = 0x111,
+/*20031029 to latest
+스킬스냅 Off
+Skill Snap Off
+*/
+ MSG_SKILL_SNAP_OFF = 0x112,
+/*20031029 to latest
+/스냅 or /snap: 몬스터 공격시 스냅 On Off /스킬스냅 or /skillsnap: 스킬로 몬스터 공격시 스냅 On Off /아이템스냅 or /itemsnap: 아이템 주울때 스냅 On Off
+/snap: Turns snap On | Off for fights, /skillsnap: Turns snap On | Off for skills. /itemsnap: Turns snap On | Off for items on the grounds.
+*/
+ MSG_EXPLAIN_SNAP = 0x113,
+/*20031029 to latest
+아이템스냅 On
+Item Snap On
+*/
+ MSG_ITEM_SNAP_ON = 0x114,
+/*20031029 to latest
+아이템스냅 Off
+Item Snap Off
+*/
+ MSG_ITEM_SNAP_OFF = 0x115,
+/*20031029 to latest
+스냅
+Snap
+*/
+ MSG_SNAP = 0x116,
+/*20031029 to latest
+한가지 아이템을 3만개 이상 가질수 없습니다.
+You cannot carry more than 30,000 of one kind of item.
+*/
+ MSG_CANT_GET_ITEM_OVERCOUNT_ONEITEM = 0x117,
+/*20031029 to latest
+레벨 30이상의 캐릭터는 삭제할 수 없습니다. 삭제를 원하시면 관계자에게 문의 하세요.
+You cannot delete a Character with a level greater than 30. If you want to delete the character please contact a Game Master.
+*/
+ MSG_CANT_DELETE_CHARACTER_OVER_30_LEVEL = 0x118,
+/*20031029 to latest
+이이템 교환중에는 아이템을 사고 팔 수 없습니다.
+*/
+ MSG_FAIL_BUY_ITEM_ITEM_EXCHANGING = 0x119,
+/*20031029 to latest
+상점명
+Shop Name
+*/
+ MSG_STALL_NAME = 0x11a,
+/*20031029 to latest
+스킬목록
+Skill Tree
+*/
+ MSG_SKILLLIST = 0x11b,
+/*20031029 to latest
+스킬포인트 : %d
+Skill Point: %d
+*/
+ MSG_SKILLPOINT = 0x11c,
+/*20031029 to latest
+스킬사용 실패
+Skill has failed.
+*/
+ MSG_USESKILL_FAIL = 0x11d,
+/*20031029 to latest
+패시브
+Passive
+*/
+ MSG_PASSIVE = 0x11e,
+/*20031029 to latest
+각자 취득
+Individual
+*/
+ MSG_EXPDIV1 = 0x11f,
+/*20031029 to latest
+균등하게 분배
+Shared
+*/
+ MSG_EXPDIV2 = 0x120,
+/*20031029 to latest
+각자 취득
+Individual
+*/
+ MSG_ITEMCOLLECT1 = 0x121,
+/*20031029 to latest
+파티 전체 공유
+Party Share
+*/
+ MSG_ITEMCOLLECT2 = 0x122,
+/*20031029 to latest
+파티 설정
+Party Setup
+*/
+ MSG_PARTYSETTING = 0x123,
+/*20031029 to latest
+경험치 분배방식
+How to share EXP
+*/
+ MSG_HOWEXPDIV = 0x124,
+/*20031029 to latest
+아이템 수집방식
+How to share Items
+*/
+ MSG_HOWITEMCOLLECT = 0x125,
+/*20031029 to latest
+파티 리더만 설정할 수 있습니다.
+Only the Party Leader can change this setting.
+*/
+ MSG_ONLY_PARTYMASTER = 0x126,
+/*20031029 to latest
+아이템 갯수 안물어보기
+Toggle Item Amount.
+*/
+ MSG_NOQUESTION_ITEMCOUNT = 0x127,
+/*20031029 to latest
+^ff0000%d^000000 초 후에 캐릭터가 지워집니다. 취소 하려면 취소 버튼을 누르세요.
+Character will be deleted after ^ff0000%d^000000 seconds. Press Cancel to quit.
+*/
+ MSG_CHARARATER_DELETE_COUNT = 0x128,
+/*20031029 to latest
+교환할 수 있는 최대 아이템 갯수는 10가지 입니다.
+You cannot trade more than 10 types of items per trade.
+*/
+ MSG_MAXEXCHANGE_IS_10_KIND = 0x129,
+/*20031029 to latest
+이서버를 이용할 수 없는 나이입니다.
+You are underaged.
+*/
+ MSG_LIMIT_AGE = 0x12a,
+/*20031029 to latest
+이메일 주소를 입력하세요.
+Please enter the deletion password.
+*/
+ MSG_ENTER_EMAIL = 0x12b,
+/*20031029 to latest
+이메일 주소 입력하기
+E-mail Address (Case Sensitive).
+*/
+ MSG_ENTER_EMAIL_TOOLTIP = 0x12c,
+/*20031029 to latest
+이메일 주소가 틀려서 캐릭터가 삭제 되지 않았습니다.
+Character Deletion has failed because you have entered an incorrect e-mail address.
+*/
+ MSG_CANNOT_DELETE_CHARACTER_EMAIL = 0x12d,
+/*20031029 to 20070703
+주민등록번호 뒷자리를 입력하세요.
+20070618 to 20070622
+비밀번호를 한 번 더 입력해 주시기 바랍니다.
+20070704 to latest
+계정 비밀번호를 입력하세요.
+Enter Second Serial Cord of your Social Security number.
+*/
+ MSG_ENTER_PEOPLE_REG_NUMBER = 0x12e,
+/*20031029 to 20070703
+주민등록번호 뒷자리가 틀려서 캐릭터가 삭제 되지 않았습니다.
+20070618 to 20070622
+비밀번호가 맞지 않아 캐릭터가 삭제 되지 않았습니다.
+20070704 to latest
+비밀번호가 틀려서 캐릭터가 삭제 되지 않았습니다.
+Character Deletion has failed because you have entered an incorrect SSN.
+*/
+ MSG_CANNOT_DELETE_CHARACTER_PEOPLE_REG_NUMBER = 0x12f,
+/*20031029 to latest
+한번에 15가지 이상의 아이템을 팔 수 없습니다.
+You can't sell more than 15 types of Items at one time.
+*/
+ MSG_CANT_SELL_OVER_15 = 0x130,
+/*20031029 to latest
+나이제한 때문에 이계정으로 이서버에 접속할 수 없습니다.
+The age limit from commandment tables cannot connect to this server.
+*/
+ MSG_UNDER_AGE = 0x131,
+/*20031029 to latest
+무게가 50 퍼센트 이상일때는 HP SP가 자연적으로 회복이 되지 않습니다.
+HP/SP will not be restored when your carried weight is over 50% of the Weight Limit.
+*/
+ MSG_NO_RECOVER_OVERWEIGHT = 0x132,
+/*20031029 to latest
+무게가 90 퍼센트 이상일때는 공격과 스킬을 사용할 수 없습니다.
+You can't use Skills or Attack while your carried weight is over 90% of your Weight Limit.
+*/
+ MSG_NO_ATTACK_OVERWEIGHT = 0x133,
+/*20031029 to latest
+HP SP가 자연적으로 회복이 가능한 상태가 되었습니다.
+Your HP/SP are now being restored naturally.
+*/
+ MSG_NO_RECOVER_OVERWEIGHT_RELEASED = 0x134,
+/*20031029 to latest
+공격과 스킬이 가능한 상태가 되었습니다.
+Attack and Skills are now available.
+*/
+ MSG_NO_ATTACK_OVERWEIGHT_RELEASED = 0x135,
+/*20031029 to latest
+서버 점검중입니다.
+Your Game's Exe File is not the latest version.
+*/
+ MSG_INVALID_VERSION = 0x136,
+/*20031029 to latest
+아이템이 모두 팔렸습니다.
+Items are sold out.
+*/
+ MSG_ITEM_IS_SOLD_OUT = 0x137,
+/*20031029 to latest
+채팅내용 파일로 저장하기
+Save Chat as Text File
+*/
+ MSG_WRITE_CHAT_TO_FILE = 0x138,
+/*20031029 to latest
+/갈무리 or /savechat : 채팅 내용 파일로 저장하기.
+/savechat: Save a Chat Log
+*/
+ MSG_EXPLAIN_SAVE_CHAT = 0x139,
+/*20031029 to latest
+계정 만들기
+Register
+*/
+ MSG_MAKEACCOUNT = 0x13a,
+/*20031029 to latest
+수신거부하기
+Reject Whispering
+*/
+ MSG_REQ_EX_LIST = 0x13b,
+/*20031029 to latest
+수신거부해제하기
+Allow Whispering
+*/
+ MSG_REQ_IN = 0x13c,
+/*20031029 to latest
+미스표시 On
+Shows ''Miss''
+*/
+ MSG_MISS_EFFECT_ON = 0x13d,
+/*20031029 to latest
+미스표시 Off
+Shows ''Miss''
+*/
+ MSG_MISS_EFFECT_OFF = 0x13e,
+/*20031029 to latest
+카메라고정 On
+Camera Zooming On
+*/
+ MSG_FIXED_CAMERA_ON = 0x13f,
+/*20031029 to latest
+카메라고정 Off
+Camera Zooming Off
+*/
+ MSG_FIXED_CAMERA_OFF = 0x140,
+/*20031029 to latest
+/camera : 플레이어에게 카메라고정 On Off /miss : 미스이펙트 On Off
+/camera: Camera Zooming On or Off. /miss: Toggle ''Miss'' display
+*/
+ MSG_EXPLAIN_CAMERA_MISS = 0x141,
+/*20031029 to latest
+스킬정보보기
+View Skill Info
+*/
+ MSG_SEE_INFORMATION_OF_SKILL = 0x142,
+/*20031029 to latest
+스킬이름바꾸기
+Change Skill
+*/
+ MSG_CHANGE_SKILL_NAME = 0x143,
+/*20031029 to latest
+스프라이트 해상도
+Sprite Resolution
+*/
+ MSG_SPRITE_RESOLUTION = 0x144,
+/*20031029 to latest
+텍스쳐 해상도
+Texture Resolution
+*/
+ MSG_TEXTURE_RESOLUTION = 0x145,
+/*20031029 to latest
+디테일 조정
+Arrange Detail
+*/
+ MSG_DETAILLEVELWND = 0x146,
+/*20031029 to latest
+%s Zeny 획득
+You got %s Zeny
+*/
+ MSG_GET_ZENY = 0x147,
+/*20031029 to latest
+길드명
+Guild Name
+*/
+ MSG_GUILDNAME = 0x148,
+/*20031029 to latest
+길드레벨
+Guild lvl
+*/
+ MSG_GUILDLEVEL = 0x149,
+/*20031029 to latest
+마스터이름
+ClanMaster Name
+*/
+ MSG_GUILD_MASTER_NAME = 0x14a,
+/*20031029 to latest
+조합원수
+Number of Members
+*/
+ MSG_GUILD_NUM_MEMBER = 0x14b,
+/*20031029 to latest
+조합원 평균레벨
+Avg.lvl of Guildsmen
+*/
+ MSG_GUILD_AVG_MEMBER_LEVEL = 0x14c,
+/*20031029 to latest
+관리영지
+Castles Owned
+*/
+ MSG_GUILD_MANAGE_LAND = 0x14d,
+/*20031029 to latest
+성향
+Tendency
+*/
+ MSG_GUILD_FAIR = 0x14e,
+/*20031029 to latest
+경험치
+EXP
+*/
+ MSG_GUILD_EXP = 0x14f,
+/*20031029 to latest
+길드엠블렘
+Emblem
+*/
+ MSG_GUILD_EMBLEM = 0x150,
+/*20031029 to latest
+길드상납포인트
+Tax Point
+*/
+ MSG_GUILD_POINT = 0x151,
+/*20031029 to latest
+동맹길드
+Alliances
+*/
+ MSG_ALLY_GUILD = 0x152,
+/*20031029 to latest
+적대길드
+Antagonists
+*/
+ MSG_HOSTILITY_GUILD = 0x153,
+/*20031029 to latest
+길드정보
+Guild Info
+*/
+ MSG_GUILDINFOMANAGE = 0x154,
+/*20031029 to latest
+조합원정보
+Guildsmen Info
+*/
+ MSG_GUILDMEMBERMANAGE = 0x155,
+/*20031029 to latest
+직위설정
+Position
+*/
+ MSG_GUILDPOSITIONMANAGE = 0x156,
+/*20031029 to latest
+길드스킬
+Guild Skill
+*/
+ MSG_GUILDSKILL = 0x157,
+/*20031029 to latest
+추방자 리스트
+Expel History
+*/
+ MSG_GUILDBANISHEDMEMBER = 0x158,
+/*20031029 to latest
+공지사항
+Guild Notice
+*/
+ MSG_GUILDNOTICE = 0x159,
+/*20031029 to latest
+전체길드 리스트
+Entire Guild List
+*/
+ MSG_GUILDTOTALINFO = 0x15a,
+/*20031029 to latest
+귓말 리스트
+Whispering List
+*/
+ MSG_WHISPERLISTWND = 0x15b,
+/*20031029 to latest
+귓말창 열기
+Open Whispering Window
+*/
+ MSG_OPENWHISPERLISTWND = 0x15c,
+/*20031029 to latest
+귓말 리스트 창 여는법 : [Alt] + [H] 를 누르면 귓말 리스트 창이 열립니다.
+How to Open Whispering List: Press [Alt] + [H]
+*/
+ MSG_EXPLAIN_WHISPER_LIST_WND = 0x15d,
+/*20031029 to latest
+자동으로 귓말창 열기
+Open Whispering List Automatically
+*/
+ MSG_AUTOOPENWHISPERLISTWND = 0x15e,
+/*20031029 to latest
+지우기
+Delete
+*/
+ MSG_DELETE = 0x15f,
+/*20031029 to latest
+다음부터 열리지 않음
+Close since next
+*/
+ MSG_DONTOPEN = 0x160,
+/*20031029 to latest
+마지막으로 접속한 시간
+Last Log-in Time
+*/
+ MSG_LAST_LOGIN_TIME = 0x161,
+/*20031029 to latest
+마지막으로 접속한 IP
+Last Log-in IP
+*/
+ MSG_LAST_LOGIN_IP = 0x162,
+/*20031029 to latest
+친구 설정
+Friend Setup
+*/
+ MSG_FRIEND_SETTING = 0x163,
+/*20031029 to latest
+정말 지우시겠습니까?
+Are you sure that you want to delete?
+*/
+ MSG_DO_YOU_REALLY_WANT_DELETE = 0x164,
+/*20031029 to latest
+정말 탈퇴하시겠습니까?
+Are you sure that you want to leave?
+*/
+ MSG_DO_YOU_REALLY_WANT_LEAVE = 0x165,
+/*20031029 to latest
+친구로 등록하기
+Register as a Friend
+*/
+ MSG_ADD_TO_FRIEND_CHAR_LIST = 0x166,
+/*20031029 to latest
+친구일때 자동으로 1:1창 열기
+Open 1:1 Chat between Friends
+*/
+ MSG_AUTOOPENWHISPERLISTWND_FRIEND = 0x167,
+/*20031029 to latest
+1:1창 열기
+Open 1:1 Chat
+*/
+ MSG_OPEN_1ON1_WINDOW = 0x168,
+/*20031029 to latest
+친구가 아닐때 자동으로 1:1창 열기
+Open 1:1 Chat between Strangers
+*/
+ MSG_AUTOOPEN_1ON1_WINDOW = 0x169,
+/*20031029 to latest
+1:1창 열릴때 소리로 알림
+Alarm when you recieve a 1:1 Chat
+*/
+ MSG_WHISPER_OPEN_SOUND = 0x16a,
+/*20031029 to latest
+정말 제명시키시겠습니까?
+Are you sure that you want to expel?
+*/
+ MSG_DO_YOU_REALLY_WANT_EXPEL = 0x16b,
+/*20031029 to latest
+%s 님이 길드를 탈퇴했습니다.
+%s has withdrawn from the guild.
+*/
+ MSG_USER_LEFT_GUILD = 0x16c,
+/*20031029 to latest
+탈퇴사유 : %s
+Secession Reason: %s
+*/
+ MSG_REASON_LEAVE_GUILD = 0x16d,
+/*20031029 to latest
+길드 해체 실패
+*/
+ MSG_DISORGANIZE_GUILD_FAILURE = 0x16e,
+/*20031029 to latest
+길드해체사유 : %s
+Disband Reason: %s
+*/
+ MSG_DISORGANIZATION_REASON = 0x16f,
+/*20031029 to latest
+해당 계정은 삭제된 아이디 입니다.
+This ID has been removed.
+*/
+ MSG_DELETED_ACCOUNT = 0x170,
+/*20031029 to latest
+판매가 :
+Price:
+*/
+ MSG_SELLPRICE = 0x171,
+/*20031029 to latest
+%s 님이 길드에서 추방되었습니다.
+%s has been expelled from our guild.
+*/
+ MSG_BAN_GUILD = 0x172,
+/*20031029 to latest
+추방사유 : %s
+Expulsion Reason: %s
+*/
+ MSG_REASON_BAN_GUILD = 0x173,
+/*20031029 to latest
+아이템을 착용할 수 없습니다.
+You can't put this item on.
+*/
+ MSG_CAN_NOT_EQUIP_ITEM = 0x174,
+/*20031029 to latest
+파티설정을 변경할 수 없습니다.
+You can't modify Party Setup.
+*/
+ MSG_PARTYSETTING_CHANGE_IMPOSSIBLE = 0x175,
+/*20031029 to latest
+길드가 만들어 졌습니다.
+Guild has been Created.
+*/
+ MSG_GUILD_MAKE_SUCCESS = 0x176,
+/*20031029 to latest
+이미 길드에 속해있습니다.
+You are already in a Guild.
+*/
+ MSG_GUILD_MAKE_ALREADY_MEMBER = 0x177,
+/*20031029 to latest
+같은이름의 길드가 존재합니다.
+That Guild Name already exists.
+*/
+ MSG_GUILD_MAKE_GUILD_EXIST = 0x178,
+/*20031029 to latest
+ 길드에서 초청 메시지가 왔습니다. 가입하겠습니까?
+ Guild has sent you an invitation. Would you like to join this Guild?
+*/
+ MSG_SUGGEST_JOIN_GUILD = 0x179,
+/*20031029 to latest
+다른길드에 가입되어 있습니다.
+He/She is already in a Guild.
+*/
+ MSG_CHARACTER_IS_ALREADY_IN_GUILD = 0x17a,
+/*20031029 to latest
+길드가입을 거절 했습니다.
+Offer Rejected
+*/
+ MSG_CHARACTER_REJECT_JOIN_GUILD = 0x17b,
+/*20031029 to latest
+길드가입을 수락했습니다.
+Offer Accepted
+*/
+ MSG_CHARACTER_ACCEPT_JOIN_GUILD = 0x17c,
+/*20031029 to latest
+길드정원을 초과했습니다.
+Your Guild is Full.
+*/
+ MSG_TOO_MANY_PEOPLE_IN_GUILD = 0x17d,
+/*20031029 to latest
+(%s)님 길드에 가입요청
+Send (%s) a Guild invitation
+*/
+ MSG_REQ_JOIN_GUILD = 0x17e,
+/*20031029 to latest
+스킬 레벨이 모자라서 매너포인트를 줄 수 없습니다.
+You haven't learned enough skills for aligning.
+*/
+ MSG_NOT_ENOUGH_FOR_MANNER_POINT = 0x17f,
+/*20031029 to latest
+매너 포인트 주기 성공
+Aligning completed.
+*/
+ MSG_GIVING_MANNER_POINT_SUCCESS = 0x180,
+/*20031029 to latest
+오늘 이미 사용했습니다.
+You already spent your point for today.
+*/
+ MSG_YOU_USE_TODAY_ALREADY = 0x181,
+/*20031029 to latest
+이캐릭터에게 지급한지 한달이 지나지 않았습니다.
+Hasn't been a month yet since you aligned this person.
+*/
+ MSG_ONE_MONTH_NOT_PASSED = 0x182,
+/*20031029 to latest
+%s 님으로부터 플러스 매너 포인트를 받았습니다.
+Remember, Spamming isn't nice.
+*/
+ MSG_RECEIVE_PLUS_MANNER_POINT = 0x183,
+/*20031029 to latest
+%s 님으로부터 마이너스 매너 포인트를 받았습니다.
+Please refrain from ill-mannered conduct, thank you.
+*/
+ MSG_RECEIVE_MINUS_MANNER_POINT = 0x184,
+/*20031029 to latest
+채팅 금지 시간 줄이기(풀기)
+Align with a Good Point
+*/
+ MSG_GIVE_PLUS_MANNER_POINT = 0x185,
+/*20031029 to latest
+채팅 금지 시간 늘이기(걸기)
+Align with a Bad Point
+*/
+ MSG_GIVE_MINUS_MANNER_POINT = 0x186,
+/*20031029 to latest
+(%s)님과의 거래요청
+Request a deal with (%s)
+*/
+ MSG_REQ_DEAL_WITH2 = 0x187,
+/*20031029 to latest
+(%s)님 파티에 가입요청
+Ask (%s) to join your party
+*/
+ MSG_REQ_JOIN_PARTY2 = 0x188,
+/*20031029 to latest
+ 길드에서 동맹요청 메시지가 왔습니다. 동맹하겠습니까?
+ Guild is asking you to agree to an Alliance with them. Do you accept?
+*/
+ MSG_SUGGEST_ALLY_GUILD = 0x189,
+/*20031029 to latest
+이미 동맹되어 있습니다.
+This Guild is already your Ally.
+*/
+ MSG_REQALLYGUILD_ALREADY_ALLIED = 0x18a,
+/*20031029 to latest
+동맹을 거절 했습니다.
+You reject the offer
+*/
+ MSG_REQALLYGUILD_REJECT = 0x18b,
+/*20031029 to latest
+동맹을 수락 했습니다.
+You accept the offer
+*/
+ MSG_REQALLYGUILD_ACCEPT = 0x18c,
+/*20031029 to latest
+상대길드의 동맹길드의 수가 초과 되었습니다.
+They have too many Alliances.
+*/
+ MSG_REQALLYGUILD_OVERSIZE = 0x18d,
+/*20031029 to latest
+길드의 동맹길드의 수가 초과 되었습니다.
+You have too many Alliances.
+*/
+ MSG_REQALLYMYGUILD_OVERSIZE = 0x18e,
+/*20031029 to latest
+길드 동맹 요청
+Set this guild as an Alliance
+*/
+ MSG_REQ_ALLY_GUILD = 0x18f,
+/*20031029 to latest
+길드가 성공적으로 해체 되었습니다.
+Guild was successfully disbanded.
+*/
+ MSG_DISORGANIZE_GUILD_SUCCESS = 0x190,
+/*20031029 to latest
+주민등록번호가 틀려서 길드가 해체되지 않았습니다.
+You have failed to disband the guild due to your incorrect SSN.
+*/
+ MSG_DISORGANIZE_GUILD_INVALIDKEY = 0x191,
+/*20031029 to latest
+길드맴버가 존재해서 길드가 해체되지 않았습니다.
+You have failed to disband the guild because there are guildsmen still present.
+*/
+ MSG_DISORGANIZE_GUILD_MEMBEREXIST = 0x192,
+/*20031029 to latest
+길드 적대 요청
+Set this guild as an Antagonist
+*/
+ MSG_REQ_HOSTILE_GUILD = 0x193,
+/*20031029 to latest
+머리색깔 선택
+Choose Hair Color
+*/
+ MSG_SELECT_HAIR_COLOR = 0x194,
+/*20031029 to latest
+길드결성시 필요한 아이템이 없습니다.
+You don't have necessary item to create a Guild.
+*/
+ MSG_GUILD_MAKE_GUILD_NONE_ITEM = 0x195,
+/*20031029 to latest
+몬스터 정보
+Monster Info
+*/
+ MSG_MONSTER_INFO_WINDOW = 0x196,
+/*20031029 to latest
+이름
+Name
+*/
+ MSG_NAME = 0x197,
+/*20031029 to latest
+레벨
+Level
+*/
+ MSG_LEVEL = 0x198,
+/*20031029 to latest
+HP
+*/
+ MSG_HP = 0x199,
+/*20031029 to latest
+크기
+Size
+*/
+ MSG_SIZE = 0x19a,
+/*20031029 to latest
+종족
+Type
+*/
+ MSG_RACETYPE = 0x19b,
+/*20031029 to latest
+MDEF
+*/
+ MSG_MDEFPOWER = 0x19c,
+/*20031029 to latest
+속성
+Attribute
+*/
+ MSG_PROPERTY = 0x19d,
+/*20031029 to latest
+無
+Neutral
+*/
+ MSG_PROPERTY_NEUTURAL = 0x19e,
+/*20031029 to latest
+水
+Water
+*/
+ MSG_PROPERTY_WATER = 0x19f,
+/*20031029 to latest
+地
+Earth
+*/
+ MSG_PROPERTY_EARTH = 0x1a0,
+/*20031029 to latest
+火
+Fire
+*/
+ MSG_PROPERTY_FIRE = 0x1a1,
+/*20031029 to latest
+風
+Wind
+*/
+ MSG_PROPERTY_WIND = 0x1a2,
+/*20031029 to latest
+毒
+Poison
+*/
+ MSG_PROPERTY_POISON = 0x1a3,
+/*20031029 to latest
+聖
+Holy
+*/
+ MSG_PROPERTY_SAINT = 0x1a4,
+/*20031029 to latest
+暗
+Shadow
+*/
+ MSG_PROPERTY_DARK = 0x1a5,
+/*20031029 to latest
+念
+Ghost
+*/
+ MSG_PROPERTY_MENTAL = 0x1a6,
+/*20031029 to latest
+死
+Undead
+*/
+ MSG_PROPERTY_UNDEAD = 0x1a7,
+/*20031029 to latest
+현재는 아이템을 만들 수 없습니다.
+You can't create items yet.
+*/
+ MSG_CANT_MAKE_ITEM = 0x1a8,
+/*20031029 to latest
+제조 목록
+Item List you can craft
+*/
+ MSG_MAKE_LIST = 0x1a9,
+/*20031029 to latest
+ 만들기
+ Create
+*/
+ MSG_MAKE_TARGET = 0x1aa,
+/*20031029 to latest
+ 에 필요한 재료:
+'s materials
+*/
+ MSG_REQUIRE_FOR_MAKE_TARGET = 0x1ab,
+/*20031029 to latest
+ 만들기 실패
+ item creation failed.
+*/
+ MSG_MAKE_TARGET_FAIL = 0x1ac,
+/*20031029 to latest
+ 만들기 성공
+ item created successfully.
+*/
+ MSG_MAKE_TARGET_SUCCEESS = 0x1ad,
+/*20031029 to latest
+%s 만들기를 실패하였습니다.
+ item creation failed.
+*/
+ MSG_MAKE_TARGET_FAIL_MSG = 0x1ae,
+/*20031029 to latest
+%s 만들기를 성공했습니다.
+ item created successfully.
+*/
+ MSG_MAKE_TARGET_SUCCEESS_MSG = 0x1af,
+/*20031029 to latest
+레벨이 부족합니다.
+You are not the required lvl.
+*/
+ MSG_NOT_ENOUGH_LEVEL = 0x1b0,
+/*20031029 to latest
+레벨이 너무 높습니다.
+Too high lvl for this job.
+*/
+ MSG_TOO_HIGH_LEVEL = 0x1b1,
+/*20031029 to latest
+직업이 적합하지 않습니다.
+Not the suitable job for this type of work.
+*/
+ MSG_NOT_ACCEPTABLE_JOB = 0x1b2,
+/*20031029 to latest
+토키 박스 트랩 메세지
+Record a message in the Talkie Box
+*/
+ MSG_TALKBOX_WINDOW = 0x1b3,
+/*20031029 to latest
+기록할 메세지를 입력하시기 바랍니다.
+Please type a message for the Talkie Box
+*/
+ MSG_TALKBOX_WINDOW_MSG = 0x1b4,
+/*20031029 to latest
+길드에게 보냄
+Send to Guild
+*/
+ MSG_SEND_TO_GUILD = 0x1b5,
+/*20031029 to latest
+결제된 계정이 아닙니다. 결제 페이지로 이동하시겠습니까?
+You didn't pay for this ID. Would you like to pay for it now?
+*/
+ MSG_NOT_SETTLED = 0x1b6,
+/*20031029 to latest
+서버가 혼잡한 관계로 잠시후 다시 시도해 주시기 바랍니다.
+Server is jammed due to overpopulation. Please try again after few minutes.
+*/
+ MSG_ACCOUNT_BUSY = 0x1b7,
+/*20031029 to latest
+지난 접속 정보가 남아 있습니다. 30초정도 지난뒤에 다시 시도해 주시기 바랍니다.
+Server still recognizes your last log-in. Please try again after a few minutes.
+*/
+ MSG_INFORMATION_REMAINED = 0x1b8,
+/*20031029 to latest
+매 풀어주기
+Release Falcon
+*/
+ MSG_BIRDOFF = 0x1b9,
+/*20031029 to latest
+페코페코 내리기
+Dismount
+*/
+ MSG_CHIKENOFF = 0x1ba,
+/*20031029 to latest
+小
+Small
+*/
+ MSG_SIZE_SMALL = 0x1bb,
+/*20031029 to latest
+中
+Med
+*/
+ MSG_SIZE_MIDDLE = 0x1bc,
+/*20031029 to latest
+大
+Big
+*/
+ MSG_SIZE_BIG = 0x1bd,
+/*20031029 to latest
+더블
+Double
+*/
+ MSG_DOUBLE = 0x1be,
+/*20031029 to latest
+트리플
+Triple
+*/
+ MSG_TRIPLE = 0x1bf,
+/*20031029 to latest
+쿼드로플
+Quadruple
+*/
+ MSG_QUADROPLE = 0x1c0,
+/*20031029 to latest
+%s 까지 로그인을 금지하고 있습니다.
+You are prohibited to log in until %s.
+*/
+ MSG_LOGIN_REFUSE_BLOCKED_UNTIL = 0x1c1,
+/*20031029 to latest
+의
+'s
+*/
+ MSG_MANUFACTURED_NORMAL_ITEM = 0x1c2,
+/*20031029 to latest
+의 파이어
+'s Fire
+*/
+ MSG_MANUFACTURED_FIRE_ITEM = 0x1c3,
+/*20031029 to latest
+의 아이스
+'s Ice
+*/
+ MSG_MANUFACTURED_ICE_ITEM = 0x1c4,
+/*20031029 to latest
+의 윈드
+'s Wind
+*/
+ MSG_MANUFACTURED_WIND_ITEM = 0x1c5,
+/*20031029 to latest
+의 어스
+'s Earth
+*/
+ MSG_MANUFACTURED_EARTH_ITEM = 0x1c6,
+/*20031029 to latest
+211.239.161.246
+38.144.194.2
+*/
+ MSG_ACCOUNT_ADDRESS = 0x1c7,
+/*20031029 to latest
+6900
+*/
+ MSG_ACCOUNT_PORT = 0x1c8,
+/*20031029 to latest
+http://www.ragnarok.co.kr
+*/
+ MSG_REGISTRATION_WEB_URL = 0x1c9,
+/*20031029 to latest
+%s 사용자 강제 종료
+Kill %s
+*/
+ MSG_BAN_USER = 0x1ca,
+/*20031029 to latest
+무지쎈
+Very Strong
+*/
+ MSG_ONE_STARPIECE = 0x1cb,
+/*20031029 to latest
+무지무지쎈
+Very Very Strong
+*/
+ MSG_TWO_STARPIECE = 0x1cc,
+/*20031029 to 20031029
+무지무지무지쎈
+20031103 to latest
+무무무쎈
+Very Very Very Strong
+*/
+ MSG_THREE_STARPIECE = 0x1cd,
+/*20031029 to latest
+길드 추방 사유
+The Reason of Expulsion
+*/
+ MSG_GUILD_KICK_REASON = 0x1ce,
+/*20031029 to latest
+ 공격 속도가 증가했습니다.
+Attack Speed is up.
+*/
+ MSG_INCATTACKSPEED = 0x1cf,
+/*20031029 to latest
+ 공격 속도가 감소했습니다.
+Attack Speed is down.
+*/
+ MSG_DECATTACKSPEED = 0x1d0,
+/*20031029 to latest
+ 무기의 공격력이 향상되었습니다.
+Weapon Damage is improved.
+*/
+ MSG_INCWEAPONATTACK = 0x1d1,
+/*20031029 to latest
+ 무기의 공격력이 감소되었습니다.
+Weapon Damage is reduced.
+*/
+ MSG_DECWEAPONATTACK = 0x1d2,
+/*20031029 to latest
+ 시전 딜레이가 줄었습니다.
+Cast Delay is reduced.
+*/
+ MSG_FASTPREDELAY = 0x1d3,
+/*20031029 to latest
+ 시전 딜레이가 정상으로 되었습니다.
+Cast Delay has returned to normal.
+*/
+ MSG_NORMALPREDELAY = 0x1d4,
+/*20031029 to latest
+ 무기에 독속성이 부여되었습니다.
+Weapon is temporarily enchanted with Poison.
+*/
+ MSG_WEAPONPROPERTYPOISON = 0x1d5,
+/*20031029 to latest
+ 무기에 성속성이 부여되었습니다.
+Weapon is temporarily enchanted with an elemental property.
+*/
+ MSG_WEAPONPROPERTYSAINT = 0x1d6,
+/*20031029 to latest
+ 무기의 원래속성이 적용되었습니다.
+Weapon has changed back to normal.
+*/
+ MSG_WEAPONPROPERTYORIGINAL = 0x1d7,
+/*20031029 to latest
+ 방어구에 성속성이 부여되었습니다.
+Armor has been enchanted with the Holy Ghost.
+*/
+ MSG_ARMORPROPERTYSAINT = 0x1d8,
+/*20031029 to latest
+ 방어구의 원래속성이 적용되었습니다.
+Armor has changed back to normal.
+*/
+ MSG_ARMORPROPERTYORIGINAL = 0x1d9,
+/*20031029 to latest
+ 배리어 상태가 되었습니다.
+Barrier Formed.
+*/
+ MSG_BARRIOR = 0x1da,
+/*20031029 to latest
+ 배리어 상태가 해제 되었습니다.
+Barrier Canceled.
+*/
+ MSG_DISAPPEARBARRIOR = 0x1db,
+/*20031029 to latest
+ 소형, 중형, 대형 몬스터에게 100% 공격력을 줍니다.
+Weapon Perfection Initiated.
+*/
+ MSG_PERFECTDAMAGE = 0x1dc,
+/*20031029 to latest
+ 웨폰퍼펙션 모드가 해제 되었습니다.
+Weapon perfection Canceled.
+*/
+ MSG_DISAPPEARPERFECTDAMAGE = 0x1dd,
+/*20031029 to latest
+ 무기가 파괴될 가능성이 높아진 대신 무기의 공격력이 증가하였습니다.
+Power-Thrust Initiated.
+*/
+ MSG_OVERTHRUSTING = 0x1de,
+/*20031029 to 20050118
+ 오버트러스팅 상태가 해제 되었습니다.
+20050124 to latest
+ 오버트러스트 상태가 해제 되었습니다.
+Power-Thrust Canceled.
+*/
+ MSG_DISAPPEAROVERTHRUSTING = 0x1df,
+/*20031029 to latest
+ 무기의 최대 성능을 끌어냅니다.
+Maximize-Power Initiated.
+*/
+ MSG_MAXIMIZE = 0x1e0,
+/*20031029 to latest
+ 맥시마이즈 상태가 해제 되었습니다.
+Maximize-Power Canceled.
+*/
+ MSG_DISAPPEARMAXIMIZE = 0x1e1,
+/*20031029 to latest
+[신서버]
+[New Server]
+*/
+ MSG_SERVER_PROPERTY_NEW = 0x1e2,
+/*20031029 to latest
+(%d 명)
+(%d players)
+*/
+ MSG_SERVER_USER_COUNT = 0x1e3,
+/*20031029 to latest
+(점검중)
+(On the maintenance)
+*/
+ MSG_SERVER_INSPECTING = 0x1e4,
+/*20031029 to latest
+길드멤버 %s님이 접속하셨습니다.
+Guild member %s has connected.
+*/
+ MSG_GUILD_MEMBER_STATUS_ONLINE = 0x1e5,
+/*20031029 to latest
+길드멤버 %s님이 종료하셨습니다.
+Guild member %s has disconnected.
+*/
+ MSG_GUILD_MEMBER_STATUS_OFFLINE = 0x1e6,
+/*20031029 to latest
+경험치 %d 얻음
+You got %d Base EXP.
+*/
+ MSG_GOT_EXPERIENCE_POINT = 0x1e7,
+/*20031029 to latest
+잡경험치 %d 얻음
+You got %d Job EXP.
+*/
+ MSG_GOT_JOB_EXPERIENCE_POINT = 0x1e8,
+/*20031029 to latest
+길드에서 탈퇴 했습니다.
+You left the guild.
+*/
+ MSG_LEFT_GUILD = 0x1e9,
+/*20031029 to latest
+길드에서 추방 당했습니다.
+You have been expelled from the Guild.
+*/
+ MSG_BAN_FROM_GUILD = 0x1ea,
+/*20031029 to latest
+아이템 감정 성공
+Item Appraisal has completed successfully.
+*/
+ MSG_ITEM_IDENTIFY_SUCCEESS = 0x1eb,
+/*20031029 to latest
+아이템 감정 실패
+Item appraisal has failed.
+*/
+ MSG_ITEM_IDENTIFY_FAIL = 0x1ec,
+/*20031029 to latest
+아이템 조합 성공
+Compounding has completed successfully.
+*/
+ MSG_ITEM_COMPOUNDING_SUCCEESS = 0x1ed,
+/*20031029 to latest
+아이템 조합 실패
+Compounding has failed.
+*/
+ MSG_ITEM_COMPOUNDING_FAIL = 0x1ee,
+/*20031029 to latest
+길드 적대 성공
+Antagonist has been set.
+*/
+ MSG_HOSTILE_GUILD_SUCCEESS = 0x1ef,
+/*20031029 to latest
+적대 길드수 초과로 길드 적대 실패
+Guild has too many Antagonists.
+*/
+ MSG_TOO_MANY_HOSTILE_GUILD = 0x1f0,
+/*20031029 to latest
+이미 적대 길드 입니다
+Already set as an Antagonist
+*/
+ MSG_ALREADY_REGISTERED_HOSTILE_GUILD = 0x1f1,
+/*20031029 to latest
+제련이 성공적으로 되었습니다.
+Upgrade has been completed successfully.
+*/
+ MSG_ITEM_REFINING_SUCCEESS = 0x1f2,
+/*20031029 to latest
+제련이 실패하였습니다.
+Upgrade has failed.
+*/
+ MSG_ITEM_REFINING_FAIL = 0x1f3,
+/*20031029 to 20040311
+텔레포트 불가능 지역입니다.
+20040315 to latest
+이곳에서는 순간이동이 불가능합니다.
+Unavailable Area to Teleport
+*/
+ MSG_IMPOSSIBLE_TELEPORT_AREA = 0x1f4,
+/*20031029 to 20040311
+텔레포트 가능 지역입니다.
+20040315 to latest
+이 장소는 기억할 수 없습니다.
+Unable to memorize this place as Warp Point
+*/
+ MSG_POSSIBLE_TELEPORT_AREA = 0x1f5,
+/*20031029 to latest
+지금은 종료할 수 없습니다.
+Please wait 10 seconds before trying to log out.
+*/
+ MSG_CANT_EXIT_NOW = 0x1f6,
+/*20031029 to latest
+직위
+Position
+*/
+ MSG_POSITION = 0x1f7,
+/*20031029 to latest
+직업
+Job
+*/
+ MSG_JOB = 0x1f8,
+/*20031029 to latest
+메모
+Note
+*/
+ MSG_MEMO = 0x1f9,
+/*20031029 to latest
+기여
+Devotion
+*/
+ MSG_CONTRIBUTION = 0x1fa,
+/*20031029 to latest
+상납경험치
+Tax Point
+*/
+ MSG_EXP_CONTIRIBUTION = 0x1fb,
+/*20031029 to latest
+길드탈퇴
+Leave Guild
+*/
+ MSG_LEAVE_GUILD = 0x1fc,
+/*20031029 to latest
+제명시키기
+Expel
+*/
+ MSG_EXPEL_GUILD = 0x1fd,
+/*20031029 to latest
+서열
+Rank
+*/
+ MSG_GRADE = 0x1fe,
+/*20031029 to latest
+직위명
+Position Title
+*/
+ MSG_POSITION_NAME = 0x1ff,
+/*20031029 to latest
+가입권한
+Invitation
+*/
+ MSG_JOIN_AUTHORITY = 0x200,
+/*20031029 to latest
+처벌권한
+Punish
+*/
+ MSG_PENALTY_AUTORITY = 0x201,
+/*20031029 to latest
+상납%
+Tax %
+*/
+ MSG_CONTRIBUTION_PERCENT = 0x202,
+/*20031029 to latest
+제목
+Title
+*/
+ MSG_TITLE = 0x203,
+/*20031029 to latest
+내용
+For
+*/
+ MSG_CONTENTS = 0x204,
+/*20031029 to latest
+길드이름
+Guild Name
+*/
+ MSG_GUILD_NAME = 0x205,
+/*20031029 to latest
+길드레벨
+Guild lvl
+*/
+ MSG_GUILD_LEVEL = 0x206,
+/*20031029 to latest
+조합원수
+Number of Members
+*/
+ MSG_GUILD_PEOPLE_COUNT = 0x207,
+/*20031029 to latest
+랭킹
+Ranking
+*/
+ MSG_RANKING = 0x208,
+/*20031029 to latest
+아이템 감정
+Item Appraisal
+*/
+ MSG_ITEM_IDENTIFY = 0x209,
+/*20031029 to latest
+아이템 조합
+Insert Card
+*/
+ MSG_ITEM_COMPOUNDING = 0x20a,
+/*20031029 to latest
+탈퇴 사유를 입력해주세요.
+Please enter the reason of Secession.
+*/
+ MSG_PLEASE_INPUT_WHY_LEAVING = 0x20b,
+/*20031029 to latest
+추방 사유를 입력해주세요.
+Please enter the reason of Expulsion.
+*/
+ MSG_PELASE_INPUT_WHY_EXPEL = 0x20c,
+/*20031029 to latest
+상점을 닫으세요.
+Please close Shop.
+*/
+ MSG_PLEASE_CLOSE_STORE = 0x20d,
+/*20031029 to latest
+스킬 이름
+Skill
+*/
+ MSG_SKILL_NAME = 0x20e,
+/*20031029 to latest
+아이템 이름
+Item Name
+*/
+ MSG_ITEM_NAME = 0x20f,
+/*20031029 to 20031118
+https://pay.ragnarok.co.kr
+20031119 to latest
+https://payment.ragnarok.co.kr
+https://pay.ragnarok.co.kr (Billing Web)
+*/
+ MSG_SETTLE_WEB_URL = 0x210,
+/*20031029 to latest
+게임방에서 사용가능한 IP개수가 모두 사용중입니다. 개인 계정으로 결제 하시겠습니까?
+IP capacity of this Internet Cafe is full. Would you like to pay the personal base?
+*/
+ MSG_BAN_IP_OVERFLOW = 0x211,
+/*20031029 to latest
+결제시간이 다되어 게임을 종료합니다.
+You are out of available paid playing time. Game will be shut down automatically.
+*/
+ MSG_BAN_PAY_OUT = 0x212,
+/*20031029 to latest
+이름이 너무 깁니다. 한글 11자 영문 23자 이내로 써주십시오.
+Name is too long. Please enter a name no greater than 23 english characters.
+*/
+ MSG_NAMELENGTH_TOO_LONG = 0x213,
+/*20031029 to latest
+deleted
+Character will be deleted in %d seconds.
+*/
+ MSG_DELETE_AFTER_10_SECOND = 0x214,
+/*20031029 to latest
+귀하는 개인 정액제 사용자입니다.
+You paid with the personal regular base.
+*/
+ MSG_BILLING_100 = 0x215,
+/*20031029 to latest
+귀하는 개인정량제 사용자입니다.
+You paid with the personal regular base. Available time is xx hrs xx mins xx secs.
+*/
+ MSG_BILLING_200 = 0x216,
+/*20031029 to latest
+귀하는 개인 무료 사용자입니다.
+You are free!
+*/
+ MSG_BILLING_300 = 0x217,
+/*20031029 to latest
+귀하는 개인 무료 허용기간 사용자입니다.
+You are free for the test, your available time is xx hrs xx mins xx secs.
+*/
+ MSG_BILLING_400 = 0x218,
+/*20031029 to latest
+귀하는 게임방 정액제 사용자입니다.
+You paid with the Internet Cafe regular base. Available time is xx hrs xx mins xx secs.
+*/
+ MSG_BILLING_500 = 0x219,
+/*20031029 to latest
+귀하는 게임방 정량제 사용자입니다.
+You paid with the Time Limit for Internet Cafe. Available time is xx hrs xx mins xx secs.
+*/
+ MSG_BILLING_501 = 0x21a,
+/*20031029 to latest
+귀하는 게임방 무료 허용기간 사용자입니다.
+You are free for the test of Internet Cafe version .
+*/
+ MSG_BILLING_600 = 0x21b,
+/*20031029 to latest
+귀하는 게임방 무료 사용자입니다.
+You are free for the Internet Cafe version.
+*/
+ MSG_BILLING_700 = 0x21c,
+/*20031029 to latest
+귀하는 종량제 사이트 이용자입니다.
+You paid on the Time Limit Website.
+*/
+ MSG_BILLING_800 = 0x21d,
+/*20031029 to latest
+이모션 목록
+Emotion icon List
+*/
+ MSG_EMOTION_LIST = 0x21e,
+/*20031029 to latest
+/이모션
+/emo
+*/
+ MSG_VIEW_EMOTION = 0x21f,
+/*20031029 to latest
+/!
+*/
+ MSG_EMOTION_SURPRISE = 0x220,
+/*20031029 to latest
+/?
+*/
+ MSG_EMOTION_QUESTION = 0x221,
+/*20031029 to latest
+/기쁨
+/ho
+*/
+ MSG_EMOTION_DELIGHT = 0x222,
+/*20031029 to latest
+/하트
+/lv
+*/
+ MSG_EMOTION_THROB = 0x223,
+/*20031029 to latest
+/왕하트
+/lv2
+*/
+ MSG_EMOTION_BIGTHROB = 0x224,
+/*20031029 to latest
+/땀
+/swt
+*/
+ MSG_EMOTION_SWEAT = 0x225,
+/*20031029 to latest
+/아하
+/ic
+*/
+ MSG_EMOTION_AHA = 0x226,
+/*20031029 to latest
+/짜증
+/an
+*/
+ MSG_EMOTION_FRET = 0x227,
+/*20031029 to latest
+/화
+/ag
+*/
+ MSG_EMOTION_ANGER = 0x228,
+/*20031029 to latest
+/돈
+/$
+*/
+ MSG_EMOTION_MONEY = 0x229,
+/*20031029 to latest
+/...
+*/
+ MSG_EMOTION_THINK = 0x22a,
+/*20031029 to latest
+/감사
+/thx
+*/
+ MSG_EMOTION_THANKS = 0x22b,
+/*20031029 to latest
+/꽥
+/wah
+*/
+ MSG_EMOTION_KEK = 0x22c,
+/*20031029 to latest
+/죄송
+/sry
+*/
+ MSG_EMOTION_SORRY = 0x22d,
+/*20031029 to latest
+/웃음
+/heh
+*/
+ MSG_EMOTION_SMILE = 0x22e,
+/*20031029 to latest
+/뻘뻘
+/swt2
+*/
+ MSG_EMOTION_PROFUSELY_SWEAT = 0x22f,
+/*20031029 to latest
+/긁적
+/hmm
+*/
+ MSG_EMOTION_SCRATCH = 0x230,
+/*20031029 to latest
+/최고
+/no1
+*/
+ MSG_EMOTION_BEST = 0x231,
+/*20031029 to latest
+/두리번
+/??
+*/
+ MSG_EMOTION_STARE_ABOUT = 0x232,
+/*20031029 to latest
+/헉
+/omg
+*/
+ MSG_EMOTION_HUK = 0x233,
+/*20031029 to latest
+/오
+/oh
+*/
+ MSG_EMOTION_O = 0x234,
+/*20031029 to latest
+/엑스
+/X
+*/
+ MSG_EMOTION_X = 0x235,
+/*20031029 to latest
+/헬프
+/hlp
+*/
+ MSG_EMOTION_HELP = 0x236,
+/*20031029 to latest
+/가
+/go
+*/
+ MSG_EMOTION_GO = 0x237,
+/*20031029 to latest
+/엉엉
+/sob
+*/
+ MSG_EMOTION_CRY = 0x238,
+/*20031029 to latest
+/킥킥
+/gg
+*/
+ MSG_EMOTION_KIK = 0x239,
+/*20031029 to latest
+/쪽
+/kis
+*/
+ MSG_EMOTION_CHUP = 0x23a,
+/*20031029 to latest
+/쪽쪽
+/kis2
+*/
+ MSG_EMOTION_CHUPCHUP = 0x23b,
+/*20031029 to latest
+/흥
+/pif
+*/
+ MSG_EMOTION_HNG = 0x23c,
+/*20031029 to latest
+/응
+/ok
+*/
+ MSG_EMOTION_OK = 0x23d,
+/*20031029 to latest
+단축키 목록
+Shortcut List
+*/
+ MSG_SHORTCUT_LIST = 0x23e,
+/*20031029 to latest
+귀하의 계정은 보류되었습니다.
+Your account is suspended.
+*/
+ MSG_BAN_PAY_SUSPEND = 0x23f,
+/*20031029 to latest
+과금 정책 변경으로 인해 일시 종료됩니다. 다시 접속하여 주시기 바랍니다.
+Your connection is terminated due to change in the billing policy. Please connect again.
+*/
+ MSG_BAN_PAY_CHANGE = 0x240,
+/*20031029 to latest
+어카운트 서버에 인증된 IP와 귀하의 IP가 달라 연결을 종료합니다.
+Your connection is terminated because your IP doesn't match the authorized IP from the account server.
+*/
+ MSG_BAN_PAY_WRONGIP = 0x241,
+/*20031029 to latest
+게임방 IP에서 개인 종량제 과금을 막기 위해 연결을 종료합니다. 개인 종량제 과금을 사용하기 위해서는 게임방IP로 등록이 되지 않은 IP를 사용해 주세요.
+Your connection is terminated to prevent charging from your account's play time.
+*/
+ MSG_BAN_PAY_PNGAMEROOM = 0x242,
+/*20031029 to latest
+귀하는 운영자에 의해 강제 종료 되었습니다.
+You have been forced to disconnect by the Game Master Team.
+*/
+ MSG_BAN_OP_FORCE = 0x243,
+/*20031029 to latest
+무게가 90%를 초과하여 스킬을 사용할 수 없습니다.
+You can't use this Skill because you are over your Weight Limit.
+*/
+ MSG_USESKILL_FAIL_WEIGHTOVER = 0x244,
+/*20031029 to latest
+무명
+Nameless
+*/
+ MSG_NAMELESS_USER = 0x245,
+/*20031029 to latest
+축하합니다. %s님의 현재 랭킹이 %d위로 상승하였습니다.
+Congratulations! %s ranking has gone up to %d.
+*/
+ MSG_RANK_IN_TEN = 0x246,
+/*20031029 to latest
+안타깝게도 %s님의 현재 랭킹이 %d위로 하락하였습니다.
+What a pity! %s ranking has gone down to %d.
+*/
+ MSG_RANK_OUT_TEN = 0x247,
+/*20031029 to latest
+Pet Info
+*/
+ MSG_PET_INFO = 0x248,
+/*20031029 to latest
+만복도
+Hunger
+*/
+ MSG_PET_HUNGRY = 0x249,
+/*20031029 to latest
+친밀도
+Intimacy
+*/
+ MSG_PET_FRIENDLY = 0x24a,
+/*20031029 to latest
+상점과 채팅방을 동시에 열수 없습니다.
+Please avoid opening a chatroom while vending.
+*/
+ MSG_CANT_OPEN_STORE_WHILE_CHAT = 0x24b,
+/*20031029 to latest
+개
+Total
+*/
+ MSG_EA4 = 0x24c,
+/*20031029 to latest
+%s 를 전투불능으로 만들었습니다.
+You have knocked down %s.
+*/
+ MSG_SLAIN = 0x24d,
+/*20031029 to latest
+%s 님에 의해 전투불능 상태가 되었습니다.
+You have been knocked down by %s.
+*/
+ MSG_SLAINBY = 0x24e,
+/*20031029 to latest
+먹이 - '%s' 아이템이 존재하지 않습니다..
+Feed - "%s" is not available.
+*/
+ MSG_NOT_EXIST_PET_FOOD = 0x24f,
+/*20031029 to latest
+먹이 주기
+Feed Pet
+*/
+ MSG_PET_FEEDING = 0x250,
+/*20031029 to latest
+퍼포먼스
+Performance
+*/
+ MSG_PET_PERFORMANCE = 0x251,
+/*20031029 to latest
+알로 되돌리기
+Return to Egg Shell
+*/
+ MSG_PET_RETURN_EGG = 0x252,
+/*20031029 to latest
+악세사리 해제
+Unequip Accessory
+*/
+ MSG_PET_ACC_OFF = 0x253,
+/*20031029 to latest
+Pet 상태 보기
+Check Pet Status
+*/
+ MSG_PET_SHOWINFO = 0x254,
+/*20031029 to latest
+악세사리
+Accessory
+*/
+ MSG_PET_ACCESSARY = 0x255,
+/*20031029 to latest
+장착됨
+Equipped
+*/
+ MSG_ITEM_EQUIPED = 0x256,
+/*20031029 to latest
+펫 리스트
+Pet List
+*/
+ MSG_PET_EGG_LIST = 0x257,
+/*20031029 to latest
+장착 안됨
+Unequipped
+*/
+ MSG_ITEM_UNEQUIPED = 0x258,
+/*20031029 to latest
+정말로 먹이를 주시겠습니까?
+Are you sure that you want to feed your pet?
+*/
+ MSG_SURE_TO_FEED_PET = 0x259,
+/*20031029 to latest
+가격을 쓰실땐 숫자(0~9)만 써주십시오.
+Only the numbers (0~9) are available.
+*/
+ MSG_CAN_INPUT_NUMBER_ONLY = 0x25a,
+/*20031029 to latest
+감정되지 않은 아이템은 판매할 수 없습니다.
+You cannot sell unidentified items.
+*/
+ MSG_CANT_SELL_UNIDENTIFIED_ITEM = 0x25b,
+/*20031029 to latest
+가격이 0 Zeny인 아이템이 존재합니다. 계속 하시겠습니까?
+Item at 0 Zeny exists. Do you wish to continue?
+*/
+ MSG_YOU_HAVE_FREE_ITEM_ON_SHOP = 0x25c,
+/*20031029 to latest
+[새로 추가된 이모션 리스트]
+[New Emotion List]
+*/
+ MSG_NEW_EMOTION_LIST = 0x25d,
+/*20031029 to latest
+일본쪽 베타 사용자들에게 전하는 메세지. -> 겅호에서 재가입 하세요.
+N/A
+*/
+ MSG_BAN_JAPAN_REFUSE1 = 0x25e,
+/*20031029 to latest
+일본쪽 과금이 종료된 사용자들에게 전하는 메세지. -> 돈내라. 두 번내라.
+N/A
+*/
+ MSG_BAN_JAPAN_REFUSE2 = 0x25f,
+/*20031029 to latest
+같은 계정의 캐릭터가 이미 가입되어있습니다.
+Character in the same account already joined.
+*/
+ MSG_ALREADY_SAME_AID_JOINED = 0x260,
+/*20031029 to latest
+(%d 명) - 만18세이상
+(%d ppl) - over the age 18
+*/
+ MSG_SERVER_PROPERTY_ADULT = 0x261,
+/*20031029 to latest
+ 프로보크 상태가 되었습니다.
+Provoke initiated.
+*/
+ MSG_ENST_PROVOKE = 0x262,
+/*20031029 to latest
+ 프로보크 상태가 해제되었습니다.
+Provoke canceled.
+*/
+ MSG_DSST_PROVOKE = 0x263,
+/*20031029 to latest
+ 인듀어 상태가 되었습니다.
+Endure initiated.
+*/
+ MSG_ENST_ENDURE = 0x264,
+/*20031029 to latest
+ 인듀어 상태가 해제되었습니다.
+Endure canceled.
+*/
+ MSG_DSST_ENDURE = 0x265,
+/*20031029 to latest
+ 집중력 향상 상태가 되었습니다.
+Improve Concentration initiated.
+*/
+ MSG_ENST_CONCENTRATION = 0x266,
+/*20031029 to latest
+ 집중력 향상 상태가 해제되었습니다.
+Improve Concentration canceled.
+*/
+ MSG_DSST_CONCENTRATION = 0x267,
+/*20031029 to latest
+ 하이딩 상태가 되었습니다.
+Hiding Initiated.
+*/
+ MSG_ENST_HIDING = 0x268,
+/*20031029 to latest
+ 하이딩 상태가 해제되었습니다.
+Hiding Canceled.
+*/
+ MSG_DSST_HIDING = 0x269,
+/*20031029 to latest
+ 클로킹 상태가 되었습니다.
+Cloaking initiated.
+*/
+ MSG_ENST_CLOAKING = 0x26a,
+/*20031029 to latest
+ 클로킹 상태가 해제되었습니다.
+Cloaking canceled.
+*/
+ MSG_DSST_CLOAKING = 0x26b,
+/*20031029 to latest
+ 독을 반사 할 수 있는 상태가 되었습니다.
+Poison React initiated.
+*/
+ MSG_ENST_POISONREACT = 0x26c,
+/*20031029 to latest
+ 포이즌 리액트 상태가 해제되었습니다.
+Poison React canceled.
+*/
+ MSG_DSST_POISONREACT = 0x26d,
+/*20031029 to latest
+ 이동속도가 감소하였습니다.
+Speed reduced.
+*/
+ MSG_ENST_QUAGMIRE = 0x26e,
+/*20031029 to latest
+ 콰그마이어 상태가 해제되었습니다.
+Quagmire canceled.
+*/
+ MSG_DSST_QUAGMIRE = 0x26f,
+/*20031029 to latest
+ 방어력이 증가되었습니다.
+Defense increased.
+*/
+ MSG_ENST_ANGELUS = 0x270,
+/*20031029 to 20031224
+ 안젤루스 상태가 해제돼었습니다.
+20031229 to latest
+ 안젤루스 상태가 해제되었습니다.
+Angelus canceled.
+*/
+ MSG_DSST_ANGELUS = 0x271,
+/*20031029 to latest
+ 힘과 지능, 덱스가 증가하였습니다.
+Blessing aligned.
+*/
+ MSG_ENST_BLESSING = 0x272,
+/*20031029 to latest
+ 블레싱 상태가 해제되었습니다.
+Blessing canceled.
+*/
+ MSG_DSST_BLESSING = 0x273,
+/*20031029 to latest
+ 시그넘 크루시스를 사용하였습니다.
+Signum Crusis initiated.
+*/
+ MSG_ENST_CRUCIS = 0x274,
+/*20031029 to latest
+ 시그넘 크루시스 상태가 해제되었습니다.
+Signum Crusis canceled.
+*/
+ MSG_DSST_CRUCIS = 0x275,
+/*20031029 to latest
+ 독이 퍼지는 속도가 느려졌습니다.
+Slow Poison initiated.
+*/
+ MSG_ENST_SLOWPOISON = 0x276,
+/*20031029 to latest
+ 슬로우 포이즌 상태가 해제되었습니다.
+Slow Poison Canceled.
+*/
+ MSG_DSST_SLOWPOISON = 0x277,
+/*20031029 to latest
+ SP의 회복 속도가 향상 되었습니다.
+HP/SP recovery increased.
+*/
+ MSG_ENST_MAGNIFICAT = 0x278,
+/*20031029 to latest
+ 마니피캇 상태가 해제되었습니다.
+Magnificat canceled.
+*/
+ MSG_DSST_MAGNIFICAT = 0x279,
+/*20031029 to latest
+ 행운이 향상되었습니다.
+Luck increased.
+*/
+ MSG_ENST_GLORIA = 0x27a,
+/*20031029 to latest
+ 글로리아 상태가 해제되었습니다.
+Gloria canceled.
+*/
+ MSG_DSST_GLORIA = 0x27b,
+/*20031029 to latest
+ 1회 공격에 두 배 데미지를 받는 상태가 되었습니다.
+You will received double damage from all attacking opponents.
+*/
+ MSG_ENST_LEXAETERNA = 0x27c,
+/*20031029 to latest
+ 렉스에테르나 상태가 해제되었습니다.
+Lex Eterna canceled.
+*/
+ MSG_DSST_LEXAETERNA = 0x27d,
+/*20031029 to latest
+ 공격속도가 증가하였습니다.
+Attack Speed increased.
+*/
+ MSG_ENST_ADRENALINE = 0x27e,
+/*20031029 to latest
+ 공격속도가 감소하였습니다.
+Attack Speed reduced.
+*/
+ MSG_DSST_ADRENALINE = 0x27f,
+/*20031029 to latest
+ 페코에 올라 탔습니다.
+You've just been on a Peco Peco.
+*/
+ MSG_ENST_RIDING = 0x280,
+/*20031029 to latest
+ 페코에서 내렸습니다.
+You've just got off of a Peco Peco.
+*/
+ MSG_DSST_RIDING = 0x281,
+/*20031029 to latest
+ 팔콘을 장착하였습니다.
+You've just carried a Falcon with.
+*/
+ MSG_ENST_FALCON = 0x282,
+/*20031029 to latest
+ 팔콘을 풀어주었습니다.
+You've just released a Falcon.
+*/
+ MSG_DSST_FALCON = 0x283,
+/*20031029 to latest
+ 죽은척하기 상태가 되었습니다.
+Play Dead initiated.
+*/
+ MSG_ENST_TRICKDEAD = 0x284,
+/*20031029 to latest
+ 죽은척하기 상태가 해제되었습니다.
+Play Dead canceled.
+*/
+ MSG_DSST_TRICKDEAD = 0x285,
+/*20031029 to latest
+ 힘이 강해졌습니다.
+STR improved.
+*/
+ MSG_ENST_SHOUT = 0x286,
+/*20031029 to latest
+ 힘이 원래대로 돌아왔습니다.
+STR turned back to normal.
+*/
+ MSG_DSST_SHOUT = 0x287,
+/*20031029 to latest
+ 에너지코트 상태가 되었습니다.
+Energy Coat initiated.
+*/
+ MSG_ENST_ENERGYCOAT = 0x288,
+/*20031029 to latest
+ 에너지코트 상태가 해제되었습니다.
+Energy Coat canceled.
+*/
+ MSG_DSST_ENERGYCOAT = 0x289,
+/*20031029 to latest
+ 방어구가 파괴되었습니다.
+Armor destroyed.
+*/
+ MSG_ENST_BROKENAMOR = 0x28a,
+/*20031029 to latest
+ ...
+Weapon has just been released from destroyed status.
+*/
+ MSG_DSST_BROKENAMOR = 0x28b,
+/*20031029 to latest
+ 무기가 파괴되었니다.
+Weapon destroyed.
+*/
+ MSG_ENST_BROKENWEAPON = 0x28c,
+/*20031029 to latest
+ ...
+Weapon has just been released from destroyed status.
+*/
+ MSG_DSST_BROKENWEAPON = 0x28d,
+/*20031029 to latest
+ 환영상태가 되었습니다.
+Invisibility initiated.
+*/
+ MSG_ENST_ILLUSION = 0x28e,
+/*20031029 to latest
+ 환영상태가 해제되었습니다.
+Invisibility canceled.
+*/
+ MSG_DSST_ILLUSION = 0x28f,
+/*20031029 to latest
+과금 정보 처리가 늦어지고 있어 접속이 지연되고 있습니다. 잠시 후에 다시 시도해 주시기 바랍니다.
+Sorry. It is delayed due to the process of payment. Please re-connect in a minute.
+*/
+ MSG_REFUSE_BLOCK_TEMPORARY = 0x290,
+/*20031029 to 20060403
+장착된 화살을 해제 하여야 합니다.
+20060410 to 20061009
+장착된 화살 또는 탄환을 해제 하여야 합니다.
+20061016 to latest
+장착된 화살/탄환/수리검 을 해제해야합니다.
+You must unequip ammunition first.
+*/
+ MSG_UNEQUIP_ARROW = 0x291,
+/*20031029 to latest
+화살 목록
+Arrow List
+*/
+ MSG_ARROW_LIST = 0x292,
+/*20031029 to latest
+카트 목록
+Cart List
+*/
+ MSG_CART_LIST = 0x293,
+/*20031029 to latest
+카트를 장착한 상태여야 합니다.
+You must have a Pushcart.
+*/
+ MSG_MUST_EQUIP_CART = 0x294,
+/*20031029 to latest
+채팅방을 개설 할 수 없습니다.
+You cannot open a Chat Window.
+*/
+ MSG_CANT_MAKE_CHAT_ROOM = 0x295,
+/*20031029 to latest
+라그나로크 홈페이지로 접속하여 계정을 만듭니다. 처음 계정을 만드시면 3일 동안은 무료로 이용하실 수 있습니다.
+Registering an account is the first step to accessing the game. Do you want to visit the registration page now?
+*/
+ MSG_3DAY_FREE = 0x296,
+/*20031029 to latest
+앉은 상태에서는 이 아이템을 사용할 수 없습니다.
+You cannot use this item while sitting.
+*/
+ MSG_CANT_USE_WHEN_SITDOWN = 0x297,
+/*20031029 to 20040413
+운영자에 의한 채팅 및 스킬 금지가 %d 분간 남아 있습니다.
+20040419 to 20040713
+운영자에 의한 채팅, 스킬, 아이템 사용금지가 %d 분간 남아 있습니다.
+20040726 to latest
+채팅, 스킬, 아이템 사용금지가 %d 분간 남아 있습니다.
+Your use of skills and chat will be blocked for the next %d minutes.
+*/
+ MSG_BAD_MANNER_REMAIN = 0x298,
+/*20031029 to 20040413
+운영자에 의한 채팅 및 스킬 금지가 해지 되었습니다.
+20040419 to 20040713
+운영자에 의한 채팅, 스킬, 아이템 사용금지가 해지 되었습니다.
+20040726 to latest
+채팅, 스킬, 아이템 사용금지가 해지 되었습니다.
+Your use of skills and chat have been reinstated.
+*/
+ MSG_BAD_MANNER_END = 0x299,
+/*20031029 to latest
+-[장착안됨]
+- [Not equipped]
+*/
+ MSG_REF_UNEQUIP = 0x29a,
+/*20031029 to latest
+배고픔
+Very Hungry
+*/
+ MSG_VERY_HUNGRY = 0x29b,
+/*20031029 to latest
+출출함
+Hungry
+*/
+ MSG_HUNGRY = 0x29c,
+/*20031029 to latest
+보통
+Normal
+*/
+ MSG_NORMAL = 0x29d,
+/*20031029 to latest
+배부름
+Satisfied
+*/
+ MSG_REPLETE = 0x29e,
+/*20031029 to latest
+아주 배부름
+Stuffed
+*/
+ MSG_VERY_REPLETE = 0x29f,
+/*20031029 to latest
+서먹서먹함
+Awkward
+*/
+ MSG_VERY_AWKWARD = 0x2a0,
+/*20031029 to latest
+어색함
+Shy
+*/
+ MSG_AWKWARD = 0x2a1,
+/*20031029 to latest
+친함
+Cordial
+*/
+ MSG_FRIENDLY = 0x2a2,
+/*20031029 to latest
+절친함
+Loyal
+*/
+ MSG_VERY_FRIENDLY = 0x2a3,
+/*20031029 to latest
+알수 없음
+Unknown
+*/
+ MSG_UNKNOWN = 0x2a4,
+/*20031029 to 20080520
+(태국)귀하는 앞으로 %일 %d시간 %d분 사용이 가능합니다.
+20080527 to latest
+귀하는 앞으로 %일 %d시간 %d분 사용이 가능합니다.
+Your account has play time of %d day %d hour %d minute.
+*/
+ MSG_BILLING_DAY_HOUR_MINUTES = 0x2a5,
+/*20031029 to 20080520
+(태국)이 계정은 이미 다른 어카운트 서버로 접속한 상태입니다.
+20080527 to latest
+이 계정은 이미 다른 어카운트 서버로 접속한 상태입니다.
+Your account is already connected to account server.
+*/
+ MSG_BAN_INFORMATION_REMAINED_ANOTHER_ACCOUNT = 0x2a6,
+/*20031029 to 20080520
+(태국)귀하는 앞으로 %d시간 %d분 사용이 가능합니다.
+20080527 to latest
+귀하는 앞으로 %d시간 %d분 사용이 가능합니다.
+Your account has play time of %d hour %d minute.
+*/
+ MSG_BILLING_HOUR_MINUTES = 0x2a7,
+/*20031029 to 20080520
+(태국)귀하는 무료 사용자 입니다.
+20080527 to latest
+귀하는 무료 사용자 입니다.
+Your account is a free account.
+*/
+ MSG_BILLING_FREE_USER = 0x2a8,
+/*20031029 to 20080520
+(태국)이 계정으로 사크라이에 접속할수 없습니다.
+20080527 to latest
+이 계정으로 사크라이에 접속할수 없습니다.
+This account can't connect the Sakray server.
+*/
+ MSG_REFUSE_NONSAKRAY_ID_BLOCKED = 0x2a9,
+/*20031029 to latest
+펫의 이름은 영문 23, 한글 11자 이내로 정해 주세요.
+Your pet name must be 23 characters or less.
+*/
+ MSG_PETNAME_IN23 = 0x2aa,
+/*20031029 to latest
+이름은 단 한번만 바꿀수 있습니다. 펫 이름을 ^0000ff^0000ff %s^000000^000000 로 수정합니다. 계속 하시겠습니까?
+You may change your pet's name only once. Your pet's name will be changed to ^0000ff^0000ff %s^000000^000000. Do you wish to continue?
+*/
+ MSG_PETNAME_CHANGE_ONLYONCE = 0x2ab,
+/*20031029 to latest
+/폰트
+/font
+*/
+ MSG_NAMEBALLOON_TYPE = 0x2ac,
+/*20031029 to latest
+길드에 남은 제니가 부족하여 작업이 실패하였습니다.
+Your guild lacks the funds to pay for this venture.
+*/
+ MSG_GUILDZENY_NOT_ENOUGH = 0x2ad,
+/*20031029 to latest
+길드가 소유할 수 있는 최대 금액을 초과하여 작업이 실패하였습니다.
+Your guild zeny limit prevents you from performing this action.
+*/
+ MSG_GUILDZENY_OVER = 0x2ae,
+/*20031029 to latest
+이펙트 간략화 On
+Simplified effects have been activated.
+*/
+ MSG_MINEFFECT_ON = 0x2af,
+/*20031029 to latest
+이펙트 간략화 Off
+Simplified effects have been deactivated.
+*/
+ MSG_MINEFFECT_OFF = 0x2b0,
+/*20031029 to latest
+자본금
+Required Fee
+*/
+ MSG_CAPITAL = 0x2b1,
+/*20031029 to latest
+아이템을 바닥에 버리려면, 아이템 창을 열어 주십시오.
+If you wish to drop an item, you must first open your Item Window (alt+e).
+*/
+ MSG_OPEN_ITEMWND_TO_THROW = 0x2b2,
+/*20031029 to latest
+PC방 요금이 종료하여 개인 요금제로 전환합니다. 개인 요금으로 게임을 계속 하시겠습니까?
+Internet Cafe Time Plan has been ended. Would you like to continue the game with your personal play time?
+*/
+ MSG_ASK_PNGAMEROOM = 0x2b3,
+/*20031029 to latest
+
+20080520 to 20080520
+
+Current admission application state.
+*/
+ MSG_REPLY_REMAINTIME = 0x2b4,
+/*20031029 to latest
+
+20080520 to 20080520
+
+Current admission application state.
+*/
+ MSG_INFO_REMAINTIME = 0x2b5,
+/*20031029 to latest
+돈이 모자라거나, 가질 수 있는 최대 금액을 초과하였습니다.
+Your lack of zeny or your zeny limit have prevented you from performing this action.
+*/
+ MSG_OVER_OR_LOW_MONEY = 0x2b6,
+/*20031029 to latest
+전투불능 상태가 되었습니다. esc키를 누르시면 선택창이 뜹니다.
+Your character has fainted. Push the ESC key to restart.
+*/
+ MSG_PRESS_ESC_TO_RESTART = 0x2b7,
+/*20031029 to latest
+ %d 개 획득
+- %d obtained.
+*/
+ MSG_EA_OBTAIN = 0x2b8,
+/*20031029 to latest
+스펠 리스트
+Spell List
+*/
+ MSG_SPELL_LIST = 0x2b9,
+/*20031029 to latest
+/최소화
+/minimize
+*/
+ MSG_MINEFFECT = 0x2ba,
+/*20031029 to latest
+이 아이템은 손상되어 있습니다..
+This item has been damaged.
+*/
+ MSG_DAMAGED_ITEM = 0x2bb,
+/*20031029 to latest
+/noshift : 쉬프트를 누르지않고 힐로 적을 공격할수있게됩니다 On Off
+/noshift: You may use your ''force heal'' ability without the Shift key. On | Off
+*/
+ MSG_EXPLAIN_NOSHIFT = 0x2bc,
+/*20031029 to 20040223
+시프트를 누르지 않고도 힐로 몬스터를 공격할수 있습니다 [ON]
+20040225 to latest
+시프트를 누르지 않고도 힐로 언데드를 공격할수 있습니다 [/ns ON]
+[no shift] option activated. [ON]
+*/
+ MSG_NOSHIFT_ON = 0x2bd,
+/*20031029 to 20040223
+시프트를 누르지 않고도 힐로 몬스터를 공격할수 있습니다 [OFF]
+20040225 to 20040315
+시프트를 누르지 않고도 힐로 언데드를 공격할수 있습니다 [/ns OFF]
+20040322 to latest
+시프트를 눌러야 힐로 언데드를 공격할수 있습니다 [/ns OFF]
+[no shift] option deactivated. [OFF]
+*/
+ MSG_NOSHIFT_OFF = 0x2be,
+/*20031029 to latest
+MSI_REFUSE_BAN_BY_DBA
+*/
+ MSG_REFUSE_BAN_BY_DBA = 0x2bf,
+/*20031029 to latest
+MSI_REFUSE_EMAIL_NOT_CONFIRMED
+*/
+ MSG_REFUSE_EMAIL_NOT_CONFIRMED = 0x2c0,
+/*20031029 to latest
+MSI_REFUSE_BAN_BY_GM
+*/
+ MSG_REFUSE_BAN_BY_GM = 0x2c1,
+/*20031029 to latest
+MSI_REFUSE_TEMP_BAN_FOR_DBWORK
+*/
+ MSG_REFUSE_TEMP_BAN_FOR_DBWORK = 0x2c2,
+/*20031029 to latest
+MSI_REFUSE_SELF_LOCK
+*/
+ MSG_REFUSE_SELF_LOCK = 0x2c3,
+/*20031029 to latest
+MSI_REFUSE_NOT_PERMITTED_GROUP
+*/
+ MSG_REFUSE_NOT_PERMITTED_GROUP = 0x2c4,
+/*20031029 to latest
+MSI_REFUSE_WAIT_FOR_SAKRAY_ACTIVE
+*/
+ MSG_REFUSE_WAIT_FOR_SAKRAY_ACTIVE = 0x2c5,
+/*20031029 to latest
+/aura : 오오라를 간략화 시킬수있습니다 On Off
+/aura: Simplify Aura effect On | Off
+*/
+ MSG_EXPLAIN_AURA = 0x2c6,
+/*20031029 to latest
+오오라가 정상적으로 표시됩니다 [오오라 ON]
+Turn On Aura [Aura ON]
+*/
+ MSG_AURA_ON = 0x2c7,
+/*20031029 to latest
+오오라가 간략화되서 표시됩니다 [오오라 OFF]
+Simplify Aura enabled. [ON]
+*/
+ MSG_AURA_OFF = 0x2c8,
+/*20031029 to latest
+채팅금지 기록 %d 회
+Chat block record %d times
+*/
+ MSG_PROHIBIT_LOG = 0x2c9,
+/*20031029 to latest
+채팅 금지 리스트
+Chat block list
+*/
+ MSG_PROHIBIT_LIST = 0x2ca,
+/*20031029 to latest
+/이름표시 or /showname : 캐릭터의 이름 표시 방식을 변경합니다.
+/showname: Change the name font type.
+*/
+ MSG_EXPLAIN_SHOWNAMETYPE = 0x2cb,
+/*20031029 to latest
+/noctrl : 콘트롤을 누르지않아도 자동공격이 됩니다. On Off
+/noctrl | /nc: Auto attack without pressing ctrl key. On | Off
+*/
+ MSG_EXPLAIN_NOCTRL = 0x2cc,
+/*20031029 to 20040223
+콘트롤을 누르지 않아도 자동공격을 합니다 [자동공격 ON]
+20040225 to latest
+콘트롤을 누르지 않아도 자동공격을 합니다 [/nc ON]
+Use auto attack without Ctrl. [Auto attack ON]
+*/
+ MSG_NOCTRL_ON = 0x2cd,
+/*20031029 to 20040223
+콘트롤을 눌러야 자동공격을 합니다 [자동공격 OFF]
+20040225 to latest
+콘트롤을 눌러야 자동공격을 합니다 [/nc OFF]
+Use auto attack with Ctrl. [Auto attack OFF]
+*/
+ MSG_NOCTRL_OFF = 0x2ce,
+/*20031029 to latest
+채팅 금지 주기
+Mute this player.
+*/
+ MSG_APPEND_PROHIBIT = 0x2cf,
+/*20031029 to latest
+채팅 금지 완전 풀기 & 로그 삭제
+Unmute player & Erase mute time.
+*/
+ MSG_ERASE_PROHIBIT = 0x2d0,
+/*20031029 to latest
+채팅 금지 시간 줄이기(로그 삭제 안됨)
+Decrease Player Mute time.
+*/
+ MSG_REDUCE_PROHIBIT = 0x2d1,
+/*20031029 to latest
+폰트가 정상적으로 바뀌었습니다 [이름표시방식 1]
+Normal Font Displayed. [showname type 1]
+*/
+ MSG_SHOWNAME_ON = 0x2d2,
+/*20031029 to latest
+폰트가 가늘게 바뀌면서 파티명도 표시됩니다 [이름표시방식 2]
+Font will be thin and party name will be shown [showname type 2]
+*/
+ MSG_SHOWNAME_OFF = 0x2d3,
+/*20031029 to latest
+/doridori : 연속해서 이 명령어를 쳐주면 캐릭터가 도리도리 ^^;;
+/doridori: Shake head
+*/
+ MSG_EXPLAIN_DORIDORI = 0x2d4,
+/*20031029 to latest
+인터넷 카페에서 과금을 하고 있습니다.
+Internet room is paying now.
+*/
+ MSG_BILLING_INTERNET_CAFE = 0x2d5,
+/*20031029 to latest
+정액제 과금은 %d일 %d시간 %d분이 남았습니다.
+종량제 과금은 %d시간 %d분이 남았습니다.
+Prepaid voucher validate until %d days %d hours %d minutes later.
+Time limit voucher validate untill %d hours %d minutes later.
+*/
+ MSG_BILLING_BOTH = 0x2d6,
+/*20031029 to latest
+/bingbing : 연속해서 이 명령어를 쳐주면 캐릭터가 빙글빙글 ^^;;
+/bingbing: Rotates player counter clockwise.
+*/
+ MSG_EXPLAIN_BINGBING = 0x2d7,
+/*20031029 to latest
+/bangbang : 연속해서 이 명령어를 쳐주면 캐릭터가 뱅글뱅글 ^^;;
+/bangbang: Rotates player clockwise.
+*/
+ MSG_EXPLAIN_BANGBANG = 0x2d8,
+/*20031029 to latest
+/skillfail : 빨간색의 스킬사용 실패 메세지를 표시하지 않습니다 On Off
+/skillfail: Display red font message when skill fails. On | Off
+*/
+ MSG_EXPLAIN_SKILLFAIL = 0x2d9,
+/*20031029 to 20040223
+스킬사용 실패 메세지를 표시합니다 [표시 ON]
+20040225 to latest
+스킬사용 실패 메세지를 표시합니다 [/sf ON]
+Skill fail messages will be displayed. [Display On]
+*/
+ MSG_SKILLFAIL_ON = 0x2da,
+/*20031029 to 20040223
+스킬사용 실패 메세지를 표시하지 않습니다 [표시 OFF]
+20040225 to latest
+스킬사용 실패 메세지를 표시하지 않습니다 [/sf OFF]
+Skill fail messages will not be displayed. [Display OFF]
+*/
+ MSG_SKILLFAIL_OFF = 0x2db,
+/*20031029 to latest
+/notalkmsg : 채팅내용을 채팅창에 표시하지 않습니다 On Off
+/notalkmsg: Chat will not be displayed in chat window. On | Off
+*/
+ MSG_EXPLAIN_NOTALKMSG = 0x2dc,
+/*20031029 to 20040223
+채팅내용을 채팅창에 표시합니다 [표시 ON]
+20040225 to latest
+채팅내용을 채팅창에 표시합니다 [/nm ON]
+Chat content will be displayed in the chat window. [Display ON]
+*/
+ MSG_NOTALKMSG_ON = 0x2dd,
+/*20031029 to 20040223
+채팅내용을 채팅창에 표시하지않습니다 [표시 OFF]
+20040225 to latest
+채팅내용을 채팅창에 표시하지않습니다 [/nm OFF]
+Chat content will not be displayed in the chat window. [Display OFF]
+*/
+ MSG_NOTALKMSG_OFF = 0x2de,
+/*20031029 to 20040423
+/set1 : /noctrl + /showname + /skillfail
+20040426 to 20040707
+/set1 : /noctrl + /showname + /skillfail , /set2 : + /q3
+20040707 to latest
+/set1 : /nc + /showname + /sf + /wi, /set2 : + /q3
+/set1: /noctrl + /showname + /skillfail
+*/
+ MSG_EXPLAIN_SET1 = 0x2df,
+/*20031029 to latest
+/fog : FOG이펙트를 키거나 끌수있습니다 On Off
+/fog: Fog effect. On | Off
+*/
+ MSG_EXPLAIN_FOG = 0x2e0,
+/*20031029 to latest
+ 청혼을 해왔습니다. 승낙하시겠습니까?
+You have received a marriage proposal. Do you accept?
+*/
+ MSG_SUGGEST_COUPLE = 0x2e1,
+/*20031029 to latest
+아이템 분배 방식
+Item sharing type
+*/
+ MSG_HOWITEMDIV = 0x2e2,
+/*20031029 to latest
+각자 취득
+Individual
+*/
+ MSG_ITEMDIV1 = 0x2e3,
+/*20031029 to latest
+균등하게 분배
+Shared
+*/
+ MSG_ITEMDIV2 = 0x2e4,
+#if PACKETVER >= 20031103
+/*20031103 to latest
+nProtect KeyCrypt
+*/
+ MSG_KEYCRYPT = 0x2e5,
+/*20031103 to latest
+Keyboard Driver가 검출되었습니다.
+
+키보드 보안 입력을 위해 추가기능을 설치하시겠습니까?
+
+(추가기능 설치후, 시스템 reboot 필수)
+Keyboard Driver has been detected.
+
+Do you want to install a program for keyboard security?
+
+(After installation, System Reboot is required)
+*/
+ MSG_KEYCRYPT_INSTALL_KEYDRIVER = 0x2e6,
+/*20031103 to latest
+설치가 완료 되었습니다.
+
+시스템을 Reboot 합니다.
+Installation has been completed.
+
+System will be rebooted.
+*/
+ MSG_KEYCRYPT_REBOOT = 0x2e7,
+/*20031103 to latest
+설치 실패.
+Installation has been failed.
+*/
+ MSG_KEYCRYPT_INSTALLFAIL = 0x2e8,
+/*20031103 to latest
+키보드 보안을 적용하지 않고 계속합니다.
+Keyboard Security will be skipped.
+*/
+ MSG_KEYCRYPT_SKIPKEYCRYPT = 0x2e9,
+/*20031103 to latest
+키보드 보안에 필요한 파일이 존재하지 않습니다.
+
+(npkeyc.vxd, npkeyc.sys, npkeycs.sys)
+Required file for Keyboard Security is not existing.
+
+(npkeyc.vxd, npkeyc.sys, npkeycs.sys)
+*/
+ MSG_KEYCRYPT_NOKEYCRYPTFILE = 0x2ea,
+/*20031103 to latest
+USB Keyboard가 검출되었습니다.
+
+키보드 보안 입력을 위해 추가기능을 설치하시겠습니까?
+
+(추가기능 설치후, 시스템 reboot 필수)
+USB Keyboard has been detected.
+
+Do you want to install a program for keyboard security?
+
+(After installation, System Reboot is required)
+*/
+ MSG_KEYCRYPT_USBKEYBOARD = 0x2eb,
+/*20031103 to latest
+ftp://ragnarok.nefficient.co.kr/pub/ragnarok/ragnarok0526.exe
+*/
+ MSG_FINDHACK_PATH = 0x2ec,
+/*20031103 to latest
+FindHack이 정상적으로 설치가 되어있지 않습니다. ragnarok0226.exe 를 다운로드 하여 라그나로크가 설치된 폴더에 설치해 주시기 바랍니다.(%d).
+FindHack is not installed correctly. Please download ragnarok0226.exe and install it in RagnarokOnline directory.(%d).
+*/
+ MSG_FINDHACK_NOTINSTALLED = 0x2ed,
+/*20031103 to latest
+해킹툴이 존재하지만 치료가 정상적으로 되지 않았습니다. 라그나로크가 실행되지 않습니다.
+Hacking tool is existing but it hasn't been cleaned. Rangarok Online will not be executed.
+*/
+ MSG_FINDHACK_HACKTOOLEXIST = 0x2ee,
+/*20031103 to latest
+해킹툴 진단 프로그램이 정상적으로 다운로드 되지 않았습니다. ragnarok0226.exe 를 다운로드 하여 라그나로크가 설치된 폴더에 설치해 주시기 바랍니다.
+Hacking tool scan program has not been downloaded correctly. Please download ragnarok0226.exe and install it in RagnarokOnline directory.
+*/
+ MSG_FINDHACK_CANTDOWNLOAD = 0x2ef,
+/*20031103 to latest
+NPX.DLL 등록에러 이거나 FindHack 구동에 필요한 파일이 없습니다. ragnarok0226.exe 를 다운로드 하여 라그나로크가 설치된 폴더에 설치해 주시기 바랍니다.
+NPX.DLL register error or there is no necessary file to run FindHack. Please download ragnarok0226.exe and install it in RagnarokOnline directory.
+*/
+ MSG_FINDHACK_NOFILE = 0x2f0,
+/*20031103 to latest
+예외사항이 발생했습니다. (02-3281-0361)로 문의해주세요. 리턴값(%d)
+Exceptional Error. Please contact the customer support. Return Value: (%d)
+*/
+ MSG_FINDHACK_EXCEPTION = 0x2f1,
+/*20031103 to latest
+종료버튼을 클릭 하셨습니다.
+Exit button has been clicked.
+*/
+ MSG_FINDHACK_EXITPRESSED = 0x2f2,
+/*20031103 to latest
+Findhack 업데이트 서버접근 실패하였습니다. 잠시 후에 다시 시도해 주시거나 그라비티 운영팀으로 연락해주시기 바랍니다.
+Unable to connect Findhack Update Server. Please try again or contact the customer support.
+*/
+ MSG_FINDHACK_UPDATEFAILED = 0x2f3,
+/*20031103 to latest
+사랑받고있는
+Beloved
+*/
+ MSG_NAMED_PET = 0x2f4,
+/*20031103 to 20031103
+신고용 갈무리 파일을 저장합니다.
+20031110 to latest
+/report or /신고 : 신고용 갈무리 파일을 저장합니다.
+/report: Save a chat log file.
+*/
+ MSG_REPORTCOMMAND_EXPLANATION = 0x2f5,
+/*20031103 to 20031112
+이 파일은 (주)그라비티의 운영팀에서 게임내의 부정행위나 비매너 행위에 대한
+증거자료로사용하게 됩니다.
+문서를 다른 문서 형식으로 저장하거나 내용을 변경하여 원본과 일치하지 않게
+ 될 경우 그 문서는 증거 효력을 상실하게 됩니다.
+20031117 to latest
+이 파일은 (주)그라비티의 운영팀에서 게임내의 부정행위나 비매너 행위에 대한
+증거자료로 사용하게 됩니다.
+문서를 다른 문서 형식으로 저장하거나 내용을 변경하여 원본과 일치하지 않게
+ 될 경우 그 문서는 증거 효력을 상실하게 됩니다.
+Chat logs are not accepted as evidence for any ill-mannered violation on account of possible file modifications. However this feature is provided for players' personal reference.
+*/
+ MSG_REPORTTEXT_HEADER = 0x2f6,
+#endif
+#if PACKETVER >= 20031110
+/*20031110 to latest
+당신을 사랑해요 ♡
+I love you.
+*/
+ MSG_LOVE_SKILL = 0x2f7,
+#endif
+#if PACKETVER >= 20031124
+/*20031124 to latest
+화면 또는 이펙트가 밝아서 눈에 부담이 되시는분들은 모니터의 밝기를 조정해주시기바랍니다.
+Please adjust your monitor/video brightness if effects appear too bright.
+*/
+ MSG_EXPLAIN_BRIGHT = 0x2f8,
+#endif
+#if PACKETVER >= 20031218
+/*20031218 to latest
+전체화면모드가 잘안되는 경우에 게임실행후 ALT+TAB으로 화면을 전환하면 잘되는 기종도 있습니다
+If full screen mode fails to work, it is suggested you alt+tab [or ctrl+esc] to inactivate and reactivate the Ragnarok Client.
+*/
+ MSG_EXPLAIN_ALTTAB = 0x2f9,
+#endif
+#if PACKETVER >= 20031223
+/*20031223 to latest
+(%d 명) - 유료서버
+(%d players) - Pay to Play Server
+*/
+ MSG_SERVER_PROPERTY_PAY = 0x2fa,
+/*20031223 to latest
+(%d 명) - 무료서버
+(%d players) - Free Server
+*/
+ MSG_SERVER_PROPERTY_FREE = 0x2fb,
+/*20031223 to latest
+무료 회원은 유료 서버로 접속할 수 없습니다.
+Trial players can't connect Pay to Play Server.
+*/
+ MSG_CANT_CONNECT_TO_PAY_SERVER = 0x2fc,
+#endif
+#if PACKETVER >= 20040107
+/*20040107 to 20040108
+마우스 우클릭으로 F9에 저장한 스킬을 쓸수있습니다 [QUICK ON]
+20040112 to latest
+마우스 우클릭으로 F9에 저장한 스킬을 쓸수있습니다 [/q1 ON]
+Right click menu skills for F9 are Enabled.[/q1 ON]
+*/
+ MSG_QUICKSPELL_ON = 0x2fd,
+/*20040107 to 20040108
+마우스 우클릭으로 스킬을 사용하지 못합니다 [QUICK OFF]
+20040112 to latest
+마우스 우클릭으로 스킬을 사용하지 못합니다 [/q1 OFF]
+Right click menu skills for F9 are Disabled.[/q1 OFF]
+*/
+ MSG_QUICKSPELL_OFF = 0x2fe,
+/*20040107 to 20040119
+/quickspell : 마우스 우클릭으로 F9에 저장한 스킬을 사용합니다 On Off
+20040126 to latest
+/quickspell : 마우스 우클릭으로 F9에 저장한 스킬을 사용합니다 On Off
+/quickspell: Right-click menu enables you to use skills assigned to the F9 hotkey. On | Off
+*/
+ MSG_EXPLAIN_QUICKSPELL = 0x2ff,
+#endif
+#if PACKETVER >= 20040112
+/*20040112 to latest
+마우스의 WHEEL을 사용해서 F7 과 F8에 저장한 스킬을 사용합니다 [/q2 ON]
+Mouse wheel skills for F7 and F8 are Enabled.[/q2 ON]
+*/
+ MSG_QUICKSPELL2_ON = 0x300,
+/*20040112 to latest
+마우스 WHEEL로 스킬을 사용하지 못합니다 [/q2 OFF]
+Mouse wheel skills for F7 and F8 are Disabled.[/q2 OFF]
+*/
+ MSG_QUICKSPELL2_OFF = 0x301,
+/*20040112 to 20040119
+/quickspell2 : 마우스 WHEEL로 F7 과 F8에 저장한 스킬을 사용합니다 On Off
+20040126 to latest
+/quickspell2 : 마우스 WHEEL을 위,아래로 굴려서 F7과F8에 저장한 스킬을 사용합니다 On Off
+/quickspell2: By rolling the mouse wheel up and down, you are able to use skills registered on F7 and F8 hotkeys. On | Off
+*/
+ MSG_EXPLAIN_QUICKSPELL2 = 0x302,
+/*20040112 to latest
+/q3 : /quickspell (/q1) + /quickspell2 (/q2)
+/q3: /quickspell (/q1) + /quickspell2 (/q2)
+*/
+ MSG_EXPLAIN_QUICKSPELL3 = 0x303,
+#endif
+#if PACKETVER >= 20040202
+/*20040202 to latest
+/찌릿
+/bzz
+*/
+ MSG_EMOTION_STARE = 0x304,
+/*20040202 to latest
+/밥
+/rice
+*/
+ MSG_EMOTION_HUNGRY = 0x305,
+/*20040202 to latest
+/멋져
+/awsm
+*/
+ MSG_EMOTION_COOL = 0x306,
+/*20040202 to latest
+/메롱
+/meh
+*/
+ MSG_EMOTION_MERONG = 0x307,
+/*20040202 to latest
+/부끄
+/shy
+*/
+ MSG_EMOTION_SHY = 0x308,
+/*20040202 to latest
+/쓱쓱
+/pat
+*/
+ MSG_EMOTION_GOODBOY = 0x309,
+/*20040202 to latest
+/엠탐
+/mp
+*/
+ MSG_EMOTION_SPTIME = 0x30a,
+/*20040202 to latest
+/질질
+/slur
+*/
+ MSG_EMOTION_SEXY = 0x30b,
+/*20040202 to latest
+/컴온
+/com
+*/
+ MSG_EMOTION_COMEON = 0x30c,
+/*20040202 to latest
+/하품
+/yawn
+*/
+ MSG_EMOTION_SLEEPY = 0x30d,
+/*20040202 to latest
+/축하
+/grat
+*/
+ MSG_EMOTION_CONGRATULATION = 0x30e,
+/*20040202 to latest
+/피탐
+/hp
+*/
+ MSG_EMOTION_HPTIME = 0x30f,
+/*20040202 to latest
+/이모션 : 현재 사용가능한 이모션의 리스트를 보여줍니다.
+/emotion: views the emoticon list.
+*/
+ MSG_EXPLAIN_EMOTION = 0x310,
+#endif
+#if PACKETVER >= 20040223
+/*20040223 to 20040302
+키보드를 이용해서 스킬단축창2 와 3의 스킬들을 사용합니다. [/bm ON]
+20040308 to latest
+키보드를 이용해서 스킬단축창 1,2,3의 스킬들을 사용합니다. [/bm ON]
+Skills assigned to shortcut windows 1, 2, 3 are Enabled. [/bm ON]
+*/
+ MSG_BATTLE_ON = 0x311,
+/*20040223 to 20040302
+키보드를 이용해서 스킬단축창2 와 3의 스킬들을 사용하지못합니다. [/bm OFF]
+20040308 to latest
+키보드를 이용해서 스킬단축창 1,2,3의 스킬들을 사용하지못합니다. [/bm OFF]
+Skills assigned to shortcut windows 1, 2, 3 are Disabled. [/bm OFF]
+*/
+ MSG_BATTLE_OFF = 0x312,
+/*20040223 to latest
+/battlemode : Q ~ O 를 누르면 스킬단축창2의 스킬들이 사용됩니다.
+/battlemode: allows you to use skills assigned to Shortcut Window 2 by pressing Q ~ O keys.
+*/
+ MSG_EXPLAIN_BATTLE = 0x313,
+/*20040223 to 20040302
+ A ~ L 을 누르면 스킬단축창3의 스킬들이 사용됩니다. On Off
+20040308 to latest
+ A ~ L 을 누르면 스킬단축창3의 스킬들이 사용됩니다.
+A ~ L keys allow you to use skills assigned to Shortcut Window 3.
+*/
+ MSG_EXPLAIN_BATTLE2 = 0x314,
+/*20040223 to latest
+라그나로크를 실행하실때 다른 프로그램을 띄우시면 게임이 느려질수도있습니다.
+Please remember, programs running in the background while playing may affect the game's performance.
+*/
+ MSG_EXPLAIN_LAG = 0x315,
+#endif
+#if PACKETVER >= 20040302
+/*20040302 to 20041130
+천사님 제 목소리 들리세여? ^^;
+20041206 to latest
+천사님 제 목소리 들리세요? ^^;
+Dear angel, can you hear my voice?
+*/
+ MSG_SUPERNOVICE1 = 0x316,
+/*20040302 to latest
+슈퍼노비스
+Super Novice
+*/
+ MSG_SUPERNOVICE2 = 0x317,
+/*20040302 to 20041130
+예여~
+20041206 to latest
+예요~
+Super Novice~
+*/
+ MSG_SUPERNOVICE3 = 0x318,
+/*20040302 to 20041130
+저 좀 도와주세여~ ㅠ_ㅠ
+20041206 to latest
+저 좀 도와주세요~ ㅠ_ㅠ
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE4 = 0x319,
+#endif
+#if PACKETVER >= 20040308
+/*20040308 to 20041012
+ 입양을 요청해왔습니다. 승낙하시겠습니까?
+20041018 to latest
+님께서 당신을 입양시키고 싶어하십니다. 승낙하시겠습니까?
+ wishes to adopt you. Do you accept?
+*/
+ MSG_SUGGEST_BABY = 0x31a,
+/*20040308 to latest
+ Z ~ > 을 누르면 스킬단축창1의 스킬들이 사용됩니다. On Off
+Z ~ > keys allow you to use skills assigned on shortcut window 1. On | Off
+*/
+ MSG_EXPLAIN_BATTLE3 = 0x31b,
+/*20040308 to latest
+ Space를 한번 누른뒤에 글자를 입력하면 채팅을 할수있습니다.
+Press the space bar to Chat when in Battle mode [/battlemode | /bm].
+*/
+ MSG_EXPLAIN_BATTLE4 = 0x31c,
+/*20040308 to latest
+게임가드 파일이 없거나 변조되었습니다. 게임가드 셋업 파일을 설치해보시기 바랍니다.
+"Either there's no Game Guard installed on the program or Game Guard is cracked. Please, try to reinstall Game Guard from its setup file."
+*/
+ MSG_NPGAMEMON_ERROR_AUTH_GAMEGUARD = 0x31d,
+/*20040308 to latest
+윈도우의 일부 시스템 파일이 손상되었습니다. 인터넷 익스플로러(IE)를 다시 설치해보시기 바랍니다.
+Some of Windows system files have been damaged. Please re-install your Internet Explorer.
+*/
+ MSG_NPGAMEMON_ERROR_CRYPTOAPI = 0x31e,
+/*20040308 to latest
+게임가드 실행에 실패했습니다. 게임가드 셋업 파일을 다시 설치해보시기 바랍니다.
+"Failed to run Game Guard. Please, try to reinstall Game Guard from its setup file."
+*/
+ MSG_NPGAMEMON_ERROR_EXECUTE = 0x31f,
+/*20040308 to latest
+불법 프로그램이 발견되었습니다. 불필요한 프로그램을 종료한 후 다시 실행해보시기 바랍니다.
+"At least one hazardous program has been detected. Please, terminate all the unnecessary programs before executing Game Guard."
+*/
+ MSG_NPGAMEMON_ERROR_ILLEGAL_PRG = 0x320,
+/*20040308 to latest
+게임가드 업데이트를 취소하셨습니다. 접속이 계속 되지 않을 경우 인터넷 및 방화벽 상태를 점검해보시기 바랍니다.
+"Game Guard update is canceled. If the disconnection continues, please, check your internet or firewall settings."
+*/
+ MSG_NPGMUP_ERROR_ABORT = 0x321,
+/*20040308 to latest
+게임가드 업데이트 서버 접속에 실패하였습니다. 잠시 후 재시도 해보거나, 인터넷 및 방화벽 상태를 점검해 보시기 바랍니다.
+"Failed to connect to Game Guard update server. Try to connect again later, or try to check the internet or firewall settings."
+*/
+ MSG_NPGMUP_ERROR_CONNECT = 0x322,
+/*20040308 to latest
+게임가드 업데이트를 완료하지 못 했습니다. 바이러스 검사를 해보시거나, PC 관리 프로그램을 사용하시면 설정을 조정한 후 게임을 실행해 보시기 바랍니다.
+"Can't complete Game Guard update process. Please, try to execute a vaccine program to remove viruses. Or, please try to modify the settings of your PC managing tool if you are using any."
+*/
+ MSG_NPGMUP_ERROR_AUTH = 0x323,
+#endif
+#if PACKETVER >= 20040311
+/*20040311 to latest
+/notrade : 거래신청을 자동으로 거절합니다 On Off
+/notrade: Declines trade offers automatically. On | Off
+*/
+ MSG_EXPLAIN_NOTRADE = 0x324,
+/*20040311 to 20040804
+거래신청을 자동으로 거절합니다 [/nt ON]
+20040809 to latest
+거래신청과 친구등록요청을 자동으로 거절합니다 [/nt ON]
+Auto decline trade offers has been Enabled. [/nt ON]
+*/
+ MSG_NOTRADE_ON = 0x325,
+/*20040311 to 20040804
+거래신청을 정상적으로 받습니다 [/nt OFF]
+20040809 to latest
+거래신청과 친구등록요청을 정상적으로 받습니다 [/nt OFF]
+Auto decline trade offers has been Disabled. [/nt OFF]
+*/
+ MSG_NOTRADE_OFF = 0x326,
+#endif
+#if PACKETVER >= 20040329
+/*20040329 to latest
+같은 아이템은 한번에 30000개 이상은 살수 없습니다.
+You cannot buy more than 30,000ea items at once.
+*/
+ MSG_LIMIT_BUY_ITEM = 0x327,
+/*20040329 to latest
+재료가 충분하지 않습니다.
+You do not have enough ingredients.
+*/
+ MSG_NOT_ENOUGH_SOURCE = 0x328,
+#endif
+#if PACKETVER >= 20040419
+/*20040419 to latest
+%s에 계정정보가 남아있습니다.
+Login information remains at %s.
+*/
+ MSG_ALREADY_CONNECT = 0x329,
+#endif
+#if PACKETVER >= 20040423
+/*20040423 to 20040429
+해킹조사에 관련되어 %s 까지 로그인을 금지하고 있습니다.
+20040503 to 20040906
+해킹 관련 조사를 위해 로그인이 금지되 었습니다. 자세한 문의는 해킹관련 메일로 하여주시기 바랍니다.
+20040913 to latest
+계정도용 조사를 위해 로그인이 금지되었습니다. 자세한 문의는 계정도용 관련 문의 메일로 해주시기 바랍니다.
+Account has been locked for a hacking investigation. Please contact the GM Team for more information.
+*/
+ MSG_HACKING_INVESTIGATION = 0x32a,
+/*20040423 to 20040429
+버그조사에 관련되어 %s 까지 로그인을 금지하고 있습니다.
+20040503 to latest
+귀하는 버그관련 조사중이므로 일시적으로 접속을 금합니다
+This account has been temporarily prohibited from login due to a bug-related investigation.
+*/
+ MSG_BUG_INVESTIGATION = 0x32b,
+/*20040423 to latest
+수리가능한 아이템
+Repairable items
+*/
+ MSG_REPAIRITEMLIST = 0x32c,
+#endif
+#if PACKETVER >= 20040426
+/*20040426 to latest
+아이템 수리 성공
+Item has been successfully repaired.
+*/
+ MSG_ITEM_REPAIR_SUCCEESS = 0x32d,
+/*20040426 to latest
+아이템 수리 실패 (재료 또는 상대와의 거리등을 확인해주십시요)
+You have failed to repair this item. Please check the distance between you and opponent.
+*/
+ MSG_ITEM_REPAIR_FAIL = 0x32e,
+#endif
+#if PACKETVER >= 20040531
+/*20040531 to latest
+시스템 상황을 지속적으로 체크 합니다.[운영자모드] [/sc ON]
+System process enabled [GM mode] [/sc ON]
+*/
+ MSG_SYSTEM_CHECK_ON = 0x32f,
+/*20040531 to latest
+시스템 상황을 지속적으로 체크 하지 않습니다.[운영자모드] [/sc OFF]
+System process disabled [GM mode] [/sc OFF]
+*/
+ MSG_SYSTEM_CHECK_OFF = 0x330,
+/*20040531 to latest
+/systemcheck : 시스템 상황을 지속적으로 체크 합니다.[운영자모드]
+/systemcheck: Check the system process [GM mode] On | Off
+*/
+ MSG_EXPLAIN_SYSTEM_CHECK = 0x331,
+#endif
+#if PACKETVER >= 20040614
+/*20040614 to latest
+(%s)님이 친구 신청을 하셨습니다. 친구가 되시겠습니까?
+(%s) wishes to be friends with you. Would you like to accept?
+*/
+ MSG_SUGGEST_JOIN_FRIEND = 0x332,
+#endif
+#if PACKETVER >= 20040621
+/*20040621 to latest
+더 이상 친구 등록을 하실수 없습니다.
+Your Friend List is full.
+*/
+ MSG_FRIEND_ADD_ME_OVERSIZE = 0x333,
+/*20040621 to latest
+(%s)님이 더 이상 친구 등록을 하실수 없습니다.
+(%s)'s Friend List is full.
+*/
+ MSG_FRIEND_ADD_OTHER_OVERSIZE = 0x334,
+/*20040621 to latest
+(%s)님과 친구가 되셨습니다.
+You have become friends with (%s).
+*/
+ MSG_FRIEND_ADD_SUCCEED = 0x335,
+/*20040621 to latest
+(%s)님이 친구 되기를 원하지 않습니다.
+(%s) does not want to be friends with you.
+*/
+ MSG_FRIEND_ADD_FALSE = 0x336,
+/*20040621 to latest
+이 캐릭터는 %s 까지 블럭되어있습니다.
+This character will be blocked to use until %s.
+*/
+ MSG_BLOCKED = 0x337,
+/*20040621 to 20040621
+천만제니이상을 입력하신 아이템은 천만제니로 판매됩니다.
+20040628 to latest
+천만제니 이상 입력하셔도 가격은 천만제니로 판매됩니다.
+Price will be fixed at 10,000,000 zeny, even if you enter higher price.
+*/
+ MSG_OVERPRICE = 0x338,
+#endif
+#if PACKETVER >= 20040628
+/*20040628 to latest
+(적음)
+(Very low)
+*/
+ MSG_LITTLEUSER = 0x339,
+/*20040628 to latest
+(약간 적음)
+(Low)
+*/
+ MSG_ALITTLEUSER = 0x33a,
+/*20040628 to latest
+(보통)
+(Normal)
+*/
+ MSG_NORMLEUSER = 0x33b,
+/*20040628 to latest
+(많음)
+(High)
+*/
+ MSG_MANYUSER = 0x33c,
+/*20040628 to latest
+(매우 많음)
+(Very high)
+*/
+ MSG_VERYMANYUSER = 0x33d,
+/*20040628 to 20040713
+비매너에 의해 GM으로부터 채팅금지가 %d 분간 적용됩니다.
+20040726 to latest
+비매너에 의해 운영자로부터 채팅금지가 적용됩니다.
+You have been blocked from using chat and skills for %d minutes by the GM Team.
+*/
+ MSG_GM_BAD_MANNER_START = 0x33e,
+/*20040628 to latest
+GM에 의한 채팅금지가 %d 분 남아 있습니다.
+%d minutes remain until release from the GM penalty.
+*/
+ MSG_GM_BAD_MANNER_REMAIN = 0x33f,
+/*20040628 to latest
+GM에 의한 채팅금지가 해지 되었습니다.
+You have been released from the GM penalty.
+*/
+ MSG_GM_BAD_MANNER_END = 0x340,
+/*20040628 to 20040713
+도배 방지 시스템으로 인한 채팅금지가 %d 분간 적용됩니다.
+20040726 to latest
+도배 방지 시스템으로 인한 자동 채팅금지가 적용됩니다.
+You have been blocked from using chat and skills for %d as an automatic penalty.
+*/
+ MSG_AUTO_BAD_MANNER_START = 0x341,
+/*20040628 to latest
+도배 방지 시스템으로 인한 채팅금지가 %d 분 남아 있습니다.
+%d minutes remain until release from auto penalty.
+*/
+ MSG_AUTO_BAD_MANNER_REMAIN = 0x342,
+/*20040628 to latest
+도배 방지 시스템으로 인한 채팅금지가 해지되었습니다. 게임진행 시에는 도배에 대해서 주의하여 주시기 바랍니다.
+You have been released from the auto penalty. Please refrain from spamming in-game.
+*/
+ MSG_AUTO_BAD_MANNER_END = 0x343,
+#endif
+#if PACKETVER >= 20040705
+/*20040705 to latest
+%s님과 %s님이 이혼하셨습니다.
+%s and %s have divorced from each other.
+*/
+ MSG_DIVORCE = 0x344,
+/*20040705 to 20041108
+星鬪士 %s의 태양의 장소로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 태양의 장소로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Solar Space.
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 태양의 장소로 %s 가 지정됐습니다.
+*/
+ MSG_STARPLACE1 = 0x345,
+/*20040705 to 20041108
+星鬪士 %s의 달의 장소로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 달의 장소로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Luna Space.
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 달의 장소로 %s 가 지정됐습니다.
+*/
+ MSG_STARPLACE2 = 0x346,
+/*20040705 to 20041108
+星鬪士 %s의 별의 장소로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 별의 장소로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Stellar Space.
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 별의 장소로 %s 가 지정됐습니다.
+*/
+ MSG_STARPLACE3 = 0x347,
+/*20040705 to 20040726
+星鬪士 %s의 태양의 장소 : %s
+20040804 to 20041108
+星鬪士 %s의 태양의 장소는 %s 입니다
+20041115 to latest
+拳聖 %s의 태양의 장소는 %s 입니다
+Gravity %s's Solar Space: %s
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 태양의 장소는 %s 입니다
+*/
+ MSG_STARPLACE4 = 0x348,
+/*20040705 to 20040726
+星鬪士 %s의 달의 장소 : %s
+20040804 to 20041108
+星鬪士 %s의 달의 장소는 %s 입니다
+20041115 to latest
+拳聖 %s의 달의 장소는 %s 입니다
+Gravity %s's Luna Space: %s
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 달의 장소는 %s 입니다
+*/
+ MSG_STARPLACE5 = 0x349,
+/*20040705 to 20040726
+星鬪士 %s의 별의 장소 : %s
+20040804 to 20041108
+星鬪士 %s의 별의 장소는 %s 입니다
+20041115 to latest
+拳聖 %s의 별의 장소는 %s 입니다
+Gravity %s's Stellar Space: %s
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 별의 장소는 %s 입니다
+*/
+ MSG_STARPLACE6 = 0x34a,
+#endif
+#if PACKETVER >= 20040707
+/*20040707 to 20041108
+星鬪士 %s의 태양의 몬스터로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 태양의 몬스터로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Solar Monster.
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 태양의 몬스터로 %s 가 지정됐습니다.
+*/
+ MSG_STARMONSTER1 = 0x34b,
+/*20040707 to 20041108
+星鬪士 %s의 달의 몬스터로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 달의 몬스터로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Luna Monster.
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 달의 몬스터로 %s 가 지정됐습니다.
+*/
+ MSG_STARMONSTER2 = 0x34c,
+/*20040707 to 20041108
+星鬪士 %s의 별의 몬스터로 %s 가 지정됐습니다.
+20041115 to latest
+拳聖 %s의 별의 몬스터로 %s 가 지정됐습니다.
+%s has been designated as Gravity %s's Stellar Monster.
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 별의 몬스터로 %s 가 지정됐습니다.
+*/
+ MSG_STARMONSTER3 = 0x34d,
+/*20040707 to 20040726
+星鬪士 %s의 태양의 몬스터 : %s
+20040804 to 20041108
+星鬪士 %s의 태양의 몬스터는 %s 입니다
+20041115 to latest
+拳聖 %s의 태양의 몬스터는 %s 입니다
+Gravity %s's Solar Monster: %s
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 태양의 몬스터는 %s 입니다
+*/
+ MSG_STARMONSTER4 = 0x34e,
+/*20040707 to 20040726
+星鬪士 %s의 달의 몬스터 : %s
+20040804 to 20041108
+星鬪士 %s의 달의 몬스터는 %s 입니다
+20041115 to latest
+拳聖 %s의 달의 몬스터는 %s 입니다
+Gravity %s's Luna Monster: %s
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 달의 몬스터는 %s 입니다
+*/
+ MSG_STARMONSTER5 = 0x34f,
+/*20040707 to 20040726
+星鬪士 %s의 별의 몬스터 : %s
+20040804 to 20041108
+星鬪士 %s의 별의 몬스터는 %s 입니다
+20041115 to latest
+拳聖 %s의 별의 몬스터는 %s 입니다
+Gravity %s's Stellar Monster: %s
+20041220 to 20050817
+태양과 달과 별의 전사 %s의 별의 몬스터는 %s 입니다
+*/
+ MSG_STARMONSTER6 = 0x350,
+/*20040707 to latest
+/window : 창 위치 이동시 다른 창과 달라붙는 속성이 들어갑니다 On Off
+/window: Display windows will snap/dock together. On | Off
+*/
+ MSG_EXPLAIN_WINDOW = 0x351,
+/*20040707 to latest
+창 위치 이동시 다른 창과 잘 붙습니다 [/wi ON]
+Display window docking enabled. [/wi ON]
+*/
+ MSG_WINDOW_ON = 0x352,
+/*20040707 to latest
+창 위치 이동시 다른 창과 붙으려는 속성을 가지지 않습니다 [/wi OFF]
+Display window docking disabled. [/wi OFF]
+*/
+ MSG_WINDOW_OFF = 0x353,
+#endif
+#if PACKETVER >= 20040713
+/*20040713 to latest
+/pvpinfo : 자신의 PVP 승패와 PVP 포인트를 알 수 있습니다.
+/pvpinfo: shows your PVP result and PVP points.
+*/
+ MSG_EXPLAIN_PVP_INFO = 0x354,
+/*20040713 to latest
+현재 %d승, %d패, PVP포인트는 %d입니다.
+You have won %d times and have lost %d times in PVP. Current points %d.
+*/
+ MSG_PVP_INFO = 0x355,
+#endif
+#if PACKETVER >= 20040726
+/*20040726 to latest
+매너 포인트를 성공적으로 보냈습니다.
+A manner point has been successfully aligned.
+*/
+ MSG_SEND_MANNER_POINT = 0x356,
+#endif
+#if PACKETVER >= 20040809
+/*20040809 to latest
+현재 이곳은 PK 가능 지역입니다. 불의의 공격에 유의 하시기 바랍니다.
+You are in a PK area. Please beware of sudden attack.
+*/
+ MSG_PKZONE = 0x357,
+#endif
+#if PACKETVER >= 20040817
+/*20040817 to latest
+게임가드 업데이트가 바이러스나 스파이웨어와의 충돌로 실패했습니다. 백신 프로그램/스파이웨어 제거 프로그램을 사용한 후 접속해 주십시기 바랍니다
+Game Guard update has been failed when either Virus or Spyware conflicted with. Please, Uninstall Spyware and Virus protection program before you log in.
+*/
+ MSG_NPGAMEMON_ERROR_100ERROR = 0x358,
+#endif
+#if PACKETVER >= 20040823
+/*20040823 to latest
+윈도우 호환성 문제로 프로그램을 종료합니다. 게임을 다시 실행해 주시기 바랍니다
+Program has encountered an error related to Windows compatibility. Please start the game again.
+*/
+ MSG_NPGAMEMON_XP_COMPATIBILITY = 0x359,
+#endif
+#if PACKETVER >= 20040906
+/*20040906 to latest
+채팅, 스킬, 아이템을 사용할수없게 되었습니다.
+You have been blocked from chatting, using skills and items.
+*/
+ MSG_PK_HONOR = 0x35a,
+/*20040906 to latest
+캐릭터 삭제 작업중이므로 접속이 일시적으로 제한됩니다.
+Login is temporarily unavailable while this character is being deleted.
+*/
+ MSG_DELETING_CHAR = 0x35b,
+/*20040906 to latest
+결혼 상대자의 캐릭터 삭제 작업중이므로 접속이 일시적으로 제한됩니다.
+Login is temporarily unavailable while your spouse character is being deleted.
+*/
+ MSG_DELETING_SPOUSE_CHAR = 0x35c,
+#endif
+#if PACKETVER >= 20040913
+/*20040913 to latest
+Novice
+*/
+ MSG_NOVICE = 0x35d,
+/*20040913 to latest
+Swordman
+*/
+ MSG_SWORDMAN = 0x35e,
+/*20040913 to latest
+Magician
+Mage
+*/
+ MSG_MAGICIAN = 0x35f,
+/*20040913 to latest
+Archer
+*/
+ MSG_ARCHER = 0x360,
+/*20040913 to latest
+Acolyte
+*/
+ MSG_ACOLYTE = 0x361,
+/*20040913 to latest
+Merchant
+*/
+ MSG_MERCHANT = 0x362,
+/*20040913 to latest
+Thief
+*/
+ MSG_THIEF = 0x363,
+/*20040913 to latest
+Knight
+*/
+ MSG_KNIGHT = 0x364,
+/*20040913 to latest
+Prieset
+Priest
+*/
+ MSG_PRIEST = 0x365,
+/*20040913 to latest
+Wizerd
+Wizard
+*/
+ MSG_WIZARD = 0x366,
+/*20040913 to latest
+Blacksmith
+*/
+ MSG_BLACKSMITH = 0x367,
+/*20040913 to latest
+Hunter
+*/
+ MSG_HUNTER = 0x368,
+/*20040913 to latest
+Assassin
+*/
+ MSG_ASSASSIN = 0x369,
+/*20040913 to latest
+Novice
+*/
+ MSG_NOVICE_W = 0x36a,
+/*20040913 to latest
+Swordman
+*/
+ MSG_SWORDMAN_W = 0x36b,
+/*20040913 to latest
+Magician
+Mage
+*/
+ MSG_MAGICIAN_W = 0x36c,
+/*20040913 to latest
+Archer
+*/
+ MSG_ARCHER_W = 0x36d,
+/*20040913 to latest
+Acolyte
+*/
+ MSG_ACOLYTE_W = 0x36e,
+/*20040913 to latest
+Merchant
+*/
+ MSG_MERCHANT_W = 0x36f,
+/*20040913 to latest
+Thief
+*/
+ MSG_THIEF_W = 0x370,
+/*20040913 to latest
+Knight
+*/
+ MSG_KNIGHT_W = 0x371,
+/*20040913 to latest
+Prieset
+Priest
+*/
+ MSG_PRIEST_W = 0x372,
+/*20040913 to latest
+Wizerd
+Wizard
+*/
+ MSG_WIZARD_W = 0x373,
+/*20040913 to latest
+Blacksmith
+*/
+ MSG_BLACKSMITH_W = 0x374,
+/*20040913 to latest
+Hunter
+*/
+ MSG_HUNTER_W = 0x375,
+/*20040913 to latest
+Assassin
+*/
+ MSG_ASSASSIN_W = 0x376,
+#endif
+#if PACKETVER >= 20041018
+/*20041018 to latest
+(%s)님을 아이로 입양신청
+Send an adoption request to %s
+*/
+ MSG_REQ_JOIN_BABY = 0x377,
+/*20041018 to 20041025
+아이가 되시면 전승을 하실수 없게 됩니다. 그래도 괜찮습니까?
+20041101 to latest
+아이가 되면 전승을 할수없고 스텟은 80이상 올릴수없게되며 HP와 SP가 줄어듭니다. 그래도 괜찮습니까?
+When you become a child, you will be unable to become a Transcendent Class character, all stats will be limited to a maximum of 80, and Max HP/SP will be reduced. Are you sure that you want to be adopted?
+*/
+ MSG_SUGGEST_BABY2 = 0x378,
+#endif
+#if PACKETVER >= 20041101
+/*20041101 to latest
+모든 나쁜 상태이상이 제거 되었습니다.
+All abnormal status effects have been removed.
+*/
+ MSG_GOSPEL1 = 0x379,
+/*20041101 to latest
+1분간 모든 상태이상에 대해 면역이 됩니다.
+You will be immune to abnormal status effects for the next minute.
+*/
+ MSG_GOSPEL2 = 0x37a,
+/*20041101 to latest
+1분간 최대 생명력이 크게 늘어납니다.
+Your Max HP will stay increased for the next minute.
+*/
+ MSG_GOSPEL3 = 0x37b,
+/*20041101 to latest
+1분간 최대 마법력이 크게 늘어납니다.
+Your Max SP will stay increased for the next minute.
+*/
+ MSG_GOSPEL4 = 0x37c,
+/*20041101 to latest
+1분간 모든 능력이 크게 상승합니다.
+All of your Stats will stay increased for the next minute.
+*/
+ MSG_GOSPEL5 = 0x37d,
+/*20041101 to latest
+1분간 사용하는 무기에 성스러운 속성이 부여됩니다.
+Your weapon will remain blessed with Holy power for the next minute.
+*/
+ MSG_GOSPEL6 = 0x37e,
+/*20041101 to latest
+1분간 사용하는 갑옷에 성스러운 속성이 부여됩니다.
+Your armor will remain blessed with Holy power for the next minute.
+*/
+ MSG_GOSPEL7 = 0x37f,
+/*20041101 to latest
+10초간 방어력이 크게 상승합니다.
+Your Defense will stay increased for the next 10 seconds.
+*/
+ MSG_GOSPEL8 = 0x380,
+/*20041101 to latest
+1분간 공격력이 크게 증가합니다.
+Your Attack strength will be increased for the next minute.
+*/
+ MSG_GOSPEL9 = 0x381,
+/*20041101 to latest
+1분간 명중률과 회피율이 크게 상승합니다.
+Your Accuracy and Flee Rate will be increased for the next minute.
+*/
+ MSG_GOSPEL10 = 0x382,
+#endif
+#if PACKETVER >= 20041108
+/*20041108 to latest
+아이를 한번 입양했던 부부는 추가 입양이 불가능합니다.
+You cannot adopt more than 1 child.
+*/
+ MSG_BABY1 = 0x383,
+/*20041108 to latest
+부부가 둘다 레벨70이 넘어야 아이를 입양할수있습니다.
+You must be at least character level 70 in order to adopt someone.
+*/
+ MSG_BABY2 = 0x384,
+/*20041108 to 20041108
+블랙스미스 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+20041115 to latest
+[POINT] 블랙스미스 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[Point] You have been rewarded with %d Blacksmith rank points. Your point total is %d.
+*/
+ MSG_BLACKSMITH_POINT = 0x385,
+/*20041108 to 20041108
+알케미스트 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+20041115 to latest
+[POINT] 알케미스트 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[Point] You have been rewarded with %d Alchemist rank points. Your point total is %d.
+*/
+ MSG_ALCHEMIST_POINT = 0x386,
+#endif
+#if PACKETVER >= 20041115
+/*20041115 to 20041130
+천사님 제 목소리 들리세요? ^^;
+Dear angel, can you hear my voice?
+20041206 to latest
+X
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE11 = 0x387,
+/*20041115 to 20041130
+슈퍼노비스
+Super Novice
+20041206 to latest
+X
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE12 = 0x388,
+/*20041115 to 20041130
+예요~
+Super Novice~
+20041206 to latest
+X
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE13 = 0x389,
+/*20041115 to 20041130
+저 좀 도와주세요~ ㅠ_ㅠ
+Help me out~ Please~ T_T
+20041206 to latest
+X
+Help me out~ Please~ T_T
+*/
+ MSG_SUPERNOVICE14 = 0x38a,
+/*20041115 to latest
+/notalkmsg2 : 채팅내용을 채팅창에 표시하지 않습니다 (길드말 포함) On Off
+/notalkmsg2: Hides chat messages(including guild chat). On Off
+*/
+ MSG_EXPLAIN_NOTALKMSG2 = 0x38b,
+/*20041115 to latest
+채팅내용을 채팅창에 표시합니다 [/nm2 ON]
+Show chat messages. [/nm2 ON]
+*/
+ MSG_NOTALKMSG2_ON = 0x38c,
+/*20041115 to latest
+채팅내용을 채팅창에 표시하지않습니다 (길드말 포함) [/nm2 OFF]
+Hide chat messages(including guild chat) [/nm2 OFF]
+*/
+ MSG_NOTALKMSG2_OFF = 0x38d,
+#endif
+#if PACKETVER >= 20041129
+/*20041129 to latest
+제련가능한 아이템
+Upgradable Weapons
+*/
+ MSG_REFINEITEMLIST = 0x38e,
+/*20041129 to latest
+제련한 무기 : %s
+Weapons upgraded: %s
+*/
+ MSG_ITEM_REFINE_SUCCEESS = 0x38f,
+/*20041129 to latest
+제련한 무기 : %s
+Weapons upgraded: %s
+*/
+ MSG_ITEM_REFINE_FAIL = 0x390,
+/*20041129 to latest
+무기제련스킬의 레벨이 부족해서 %s 제련을 할수없습니다.
+You cannot upgrade %s until you level up your Upgrade Weapon skill.
+*/
+ MSG_ITEM_REFINE_FAIL_LEVEL = 0x391,
+/*20041129 to latest
+제련에 필요한 아이템 (%s) 이 없으므로 제련할수없습니다.
+You lack a necessary item %s to upgrade this weapon.
+*/
+ MSG_ITEM_REFINE_FAIL_MATERIAL = 0x392,
+#endif
+#if PACKETVER >= 20041206
+/*20041206 to latest
+완벽하게 코팅되어있어서 풀스트립이 통하지 않습니다.
+Full Divestment cannot pierce the target. The target is fully shielded.
+*/
+ MSG_FULLSTRIP = 0x393,
+#endif
+#if PACKETVER >= 20041213
+/*20041213 to latest
+결혼한 캐릭터는 입양시킬수 없습니다.
+You cannot adopt a married person.
+*/
+ MSG_BABY3 = 0x394,
+#endif
+#if PACKETVER >= 20041220
+/*20041220 to latest
+친구로 등록된 이름과 비슷하지만 등록된 이름이 아닙니다. 아는사람인지 확인하십시요.
+This name is not registered in your Friend List. Please check the name again.
+*/
+ MSG_ID_WARNING = 0x395,
+/*20041220 to latest
+/hi 또는 /hi 문장 : 친구로 등록된 캐릭터들에게 인사를 합니다.
+/hi or /hi message: Send greetings to people who are online and registered on your Friend List.
+*/
+ MSG_EXPLAIN_HI = 0x396,
+#endif
+#if PACKETVER >= 20041227
+/*20041227 to latest
+길드원의 이름과 비슷하지만 길드원이 아닙니다. 길드원인지 확인하십시요.
+This character is not your guildsman. Please check the name again.
+*/
+ MSG_ID_WARNING_GUILD = 0x397,
+#endif
+#if PACKETVER >= 20050117
+/*20050117 to latest
+9999만제니 이상 입력하셔도 가격은 9999만제니로 판매됩니다.
+Please be aware that the maximum selling price is fixed as 2 Billion. You cannot sell an item higher than that.
+*/
+ MSG_OVERPRICE9999 = 0x398,
+#endif
+#if PACKETVER >= 20050131
+/*20050131 to latest
+친구의 귓속말은 [ Friend ] , 길드원은 [ Member ] 로 표시됩니다.
+Whispers from friends are displayed as [ Friend ], and ones from guildsmen are displayed as [ Member ].
+*/
+ MSG_EXPLAIN_SACHING1 = 0x399,
+/*20050131 to latest
+( From 캐릭터이름 : ) 이라고 표시 되는 귓속말은 친구나 길드원이 아닙니다.
+( From character name: ) is from an anonymous character who is neither your friend nor guildsman.
+*/
+ MSG_EXPLAIN_SACHING2 = 0x39a,
+#endif
+#if PACKETVER >= 20050214
+/*20050214 to 20050310
+블랙스미스의 상위 10위권 랭킹을 보여줍니다.
+20050314 to latest
+/blacksmith : 블랙스미스의 상위 10위권 랭킹을 보여줍니다.
+/blacksmith: Shows top 10 Blacksmiths in the server.
+*/
+ MSG_EXPLAIN_BLACKSMITH = 0x39b,
+/*20050214 to 20050310
+알케미스트의 상위 10위권 랭킹을 보여줍니다.
+20050314 to latest
+/alchemist : 알케미스트의 상위 10위권 랭킹을 보여줍니다.
+/alchemist: Shows top 10 Alchemists in the server.
+*/
+ MSG_EXPLAIN_ALCHEMIST = 0x39c,
+/*20050214 to latest
+ALT+Y : 여러가지 명령어를 쉽게 쓸수있는 윈도우가 열립니다.
+ALT+Y: Opens a window which allows you to use various commands with ease.
+*/
+ MSG_EXPLAIN_ALTY = 0x39d,
+#endif
+#if PACKETVER >= 20050328
+/*20050328 to latest
+[POINT] 태권미션 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[POINT] You have been rewarded with %d Tae-Kwon Mission rank points. Your point total is %d.
+*/
+ MSG_TAEKWON_POINT = 0x39e,
+#endif
+#if PACKETVER >= 20050404
+/*20050404 to latest
+[태권미션] Target Monster : %s (%d%%)
+[Taekwon Mission] Target Monster: %s (%d%%)
+*/
+ MSG_TAEKWON_MISSION = 0x39f,
+#endif
+#if PACKETVER >= 20050502
+/*20050502 to latest
+게임가드 초기화 에러 : %lu
+Error - Failed to initialize GameGuard: %lu
+*/
+ MSG_INIT_ERROR = 0x3a0,
+/*20050502 to latest
+스피드핵이 감지되었습니다.
+Speed Hack has been detected.
+*/
+ MSG_SPEEDHACK_DETECT = 0x3a1,
+/*20050502 to latest
+불법 프로그램 (%s) 가 발견되었습니다
+The illegal program, (%s) has been detected.
+*/
+ MSG_GAMEHACK_DETECT = 0x3a2,
+/*20050502 to latest
+게임이나 게임가드가 변조되었습니다.
+The Game or Gameguard has been cracked.
+*/
+ MSG_GAMEHACK_DOUBT = 0x3a3,
+/*20050502 to latest
+게임가드가 실행 중 입니다. 잠시 후에 다시 실행해보시기 바랍니다.
+GameGuard is currently running. Please wait for sometime and restart the game.
+*/
+ MSG_ERROR_EXIST = 0x3a4,
+/*20050502 to latest
+게임이 중복 실행되었거나 게임가드가 이미 실행 중 입니다. 게임 종료 후 다시 실행해보시기 바랍니다.
+The Game or GameGuard is already running. Please close the game and restart the game.
+*/
+ MSG_GAME_EXIST = 0x3a5,
+/*20050502 to latest
+게임가드 초기화 에러입니다. 재부팅 후 다시 실행해보거나 충돌할 수 있는 다른 프로그램들을 종료한 후 실행해 보시기 바랍니다.
+Failed to intialize GameGuard. Please try again after rebooting the system or closing other programs.
+*/
+ MSG_ERROR_INIT = 0x3a6,
+/*20050502 to latest
+바이러스 및 해킹툴 검사 모듈 로딩에 실패 했습니다. 메모리 부족이거나 바이러스에 의한 감염일 수 있습니다.
+Failed to load the scan module of virus and hacking tool. It's caused by lack of memory or PC virus infection.
+*/
+ MSG_ERROR_NPSCAN = 0x3a7,
+#endif
+#if PACKETVER >= 20050509
+/*20050509 to latest
+호문클루스 정보
+Homunculus Info
+*/
+ MSG_HOMUN_INFO = 0x3a8,
+#endif
+#if PACKETVER >= 20050511
+/*20050511 to latest
+호문클루스 스킬목록
+Homunculus Skill List
+*/
+ MSG_HOMUN_SKILLLIST = 0x3a9,
+#endif
+#if PACKETVER >= 20050523
+/*20050523 to latest
+호문클루스의 이름은 영문 23, 한글 11자 이내로 정해 주세요.
+Please give your Homunculus a name no longer than 23 letters.
+*/
+ MSG_HOMUN_NAME_IN23 = 0x3aa,
+/*20050523 to latest
+이름은 단 한번만 바꿀수 있습니다. 호문클루스의 이름을 ^0000ff^0000ff %s^000000^000000 로 수정합니다. 계속 하시겠습니까?
+You can name a Homunculus only once. You have entered the name, ^0000ff%s^000000. Would you like to continue?
+*/
+ MSG_HOMUN_NAME_CHANGE_ONLYONCE = 0x3ab,
+/*20050523 to latest
+지금은 부재중~
+(Away)
+*/
+ MSG_AUTO_MSG = 0x3ac,
+/*20050523 to latest
+[자동응답]
+[Automated Message]
+*/
+ MSG_AUTO_MSG2 = 0x3ad,
+/*20050523 to latest
+부재시 타인의 귓말에 자동응답합니다.
+Send an automated message while you are away.
+*/
+ MSG_AUTO_MSG_ON = 0x3ae,
+/*20050523 to latest
+부재시 타인의 귓말에 자동응답하지 않습니다.
+Cancel automated away message.
+*/
+ MSG_AUTO_MSG_OFF = 0x3af,
+/*20050523 to latest
+자동 응답 메시지를 입력하세요.
+Please enter Away Message.
+*/
+ MSG_ENTER_AUTO_MSG = 0x3b0,
+#endif
+#if PACKETVER >= 20050530
+/*20050530 to latest
+/번쩍
+/fsh
+*/
+ MSG_EMOTION_SPARK = 0x3b1,
+/*20050530 to latest
+/빙빙
+/spin
+*/
+ MSG_EMOTION_CONFUSE = 0x3b2,
+/*20050530 to latest
+/하아
+/sigh
+*/
+ MSG_EMOTION_OHNO = 0x3b3,
+/*20050530 to latest
+/덤덤
+/dum
+*/
+ MSG_EMOTION_HUM = 0x3b4,
+/*20050530 to latest
+/시끌
+/crwd
+*/
+ MSG_EMOTION_BLABLA = 0x3b5,
+/*20050530 to latest
+/좌절
+/desp
+*/
+ MSG_EMOTION_OTL = 0x3b6,
+/*20050530 to latest
+/주사위
+/dice
+*/
+ MSG_EMOTION_DICE = 0x3b7,
+/*20050530 to latest
+/pk : 학살자의 상위 10위권 랭킹을 보여줍니다.
+/pk: Shows top 10 Slayers in the server.
+*/
+ MSG_EXPLAIN_KILLER_RANK = 0x3b8,
+/*20050530 to latest
+[POINT] 학살자 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[POINT] You have been rewarded with %d Slayer rank points. Your point total is %d.
+*/
+ MSG_KILLER_POINT = 0x3b9,
+#endif
+#if PACKETVER >= 20050608
+/*20050608 to latest
+진화 가능
+Evolution Available
+*/
+ MSG_HOMUN_EVOLVE = 0x3ba,
+/*20050608 to latest
+^ff0000^ff0000호문클루스를 삭제합니다.^000000^000000 삭제하실 경우 지금까지 키운 내역이 모두 삭제됩니다. 계속하시겠습니까?
+You have decided to delete this Homunculus ^ff0000^ff0000. When deleted, the homunculus and its history will be deleted and they cannot be restored in the future. Would you like to continue?
+*/
+ MSG_DELETE_HOMUN = 0x3bb,
+#endif
+#if PACKETVER >= 20050613
+/*20050613 to latest
+호문의 상태를 파일에 저장합니다.
+Save Homunculus status as a file.
+*/
+ MSG_TRACE_AI_ON = 0x3bc,
+/*20050613 to latest
+호문의 상태를 파일에 저장하지 않습니다.
+Do not save Homunculus status as a file.
+*/
+ MSG_TRACE_AI_OFF = 0x3bd,
+/*20050613 to latest
+Crusader
+*/
+ MSG_CRUSADER = 0x3be,
+/*20050613 to latest
+Monk
+*/
+ MSG_MONK = 0x3bf,
+/*20050613 to latest
+Sage
+*/
+ MSG_SAGE = 0x3c0,
+/*20050613 to latest
+Rouge
+Rogue
+*/
+ MSG_ROGUE = 0x3c1,
+/*20050613 to latest
+Alchemist
+*/
+ MSG_ALCHEMIST = 0x3c2,
+/*20050613 to latest
+Bard
+*/
+ MSG_BARD = 0x3c3,
+/*20050613 to latest
+Crusader_W
+Crusader
+*/
+ MSG_CRUSADER_W = 0x3c4,
+/*20050613 to latest
+Monk_W
+Monk
+*/
+ MSG_MONK_W = 0x3c5,
+/*20050613 to latest
+Sage_W
+Sage
+*/
+ MSG_SAGE_W = 0x3c6,
+/*20050613 to latest
+Rouge_W
+Rogue
+*/
+ MSG_ROGUE_W = 0x3c7,
+/*20050613 to latest
+Alchemist_W
+Alchemist
+*/
+ MSG_ALCHEMIST_W = 0x3c8,
+/*20050613 to latest
+Dancer
+*/
+ MSG_DANCER = 0x3c9,
+/*20050613 to latest
+Novice High
+High Novice
+*/
+ MSG_NOVICE_H = 0x3ca,
+/*20050613 to latest
+Swordman High
+High Swordman
+*/
+ MSG_SWORDMAN_H = 0x3cb,
+/*20050613 to latest
+Magician High
+High Mage
+*/
+ MSG_MAGICIAN_H = 0x3cc,
+/*20050613 to latest
+Archer High
+High Archer
+*/
+ MSG_ARCHER_H = 0x3cd,
+/*20050613 to latest
+Acolyte High
+High Acolyte
+*/
+ MSG_ACOLYTE_H = 0x3ce,
+/*20050613 to latest
+Merchant High
+High Merchant
+*/
+ MSG_MERCHANT_H = 0x3cf,
+/*20050613 to latest
+Thief High
+High Thief
+*/
+ MSG_THIEF_H = 0x3d0,
+/*20050613 to latest
+Novice High_W
+High Novice
+*/
+ MSG_NOVICE_H_W = 0x3d1,
+/*20050613 to latest
+Swordman High_W
+High Swordman
+*/
+ MSG_SWORDMAN_H_W = 0x3d2,
+/*20050613 to latest
+Magician High_W
+High Mage
+*/
+ MSG_MAGICIAN_H_W = 0x3d3,
+/*20050613 to latest
+Archer High_W
+High Archer
+*/
+ MSG_ARCHER_H_W = 0x3d4,
+/*20050613 to latest
+Acolyte High_W
+High Acolyte
+*/
+ MSG_ACOLYTE_H_W = 0x3d5,
+/*20050613 to latest
+Merchant High_W
+High Merchant
+*/
+ MSG_MERCHANT_H_W = 0x3d6,
+/*20050613 to latest
+Thief High_W
+High Thief
+*/
+ MSG_THIEF_H_W = 0x3d7,
+/*20050613 to latest
+Lord Knight
+*/
+ MSG_KNIGHT_H = 0x3d8,
+/*20050613 to latest
+High Priest
+*/
+ MSG_PRIEST_H = 0x3d9,
+/*20050613 to latest
+High Wizard
+*/
+ MSG_WIZARD_H = 0x3da,
+/*20050613 to latest
+White Smith
+WhiteSmith
+*/
+ MSG_BLACKSMITH_H = 0x3db,
+/*20050613 to latest
+Sniper
+*/
+ MSG_HUNTER_H = 0x3dc,
+/*20050613 to latest
+Saaassin Cross
+Assassin Cross
+*/
+ MSG_ASSASSIN_H = 0x3dd,
+/*20050613 to latest
+Lord Knight_W
+Lord Knight
+*/
+ MSG_KNIGHT_H_W = 0x3de,
+/*20050613 to latest
+High Priest_W
+High Priest
+*/
+ MSG_PRIEST_H_W = 0x3df,
+/*20050613 to latest
+High Wizard_W
+High Wizard
+*/
+ MSG_WIZARD_H_W = 0x3e0,
+/*20050613 to latest
+White Smith_W
+WhiteSmith
+*/
+ MSG_BLACKSMITH_H_W = 0x3e1,
+/*20050613 to latest
+Sniper_W
+Sniper
+*/
+ MSG_HUNTER_H_W = 0x3e2,
+/*20050613 to latest
+Saaassin Cross_W
+Assassin Cross
+*/
+ MSG_ASSASSIN_H_W = 0x3e3,
+/*20050613 to latest
+Paladin
+*/
+ MSG_CRUSADER_H = 0x3e4,
+/*20050613 to latest
+Champion
+*/
+ MSG_MONK_H = 0x3e5,
+/*20050613 to latest
+Professor
+Scholar
+*/
+ MSG_SAGE_H = 0x3e6,
+/*20050613 to latest
+Stalker
+*/
+ MSG_ROGUE_H = 0x3e7,
+/*20050613 to latest
+Creator
+Biochemist
+*/
+ MSG_ALCHEMIST_H = 0x3e8,
+/*20050613 to latest
+Clown
+Minstrel
+*/
+ MSG_BARD_H = 0x3e9,
+/*20050613 to latest
+Paladin_W
+Paladin
+*/
+ MSG_CRUSADER_H_W = 0x3ea,
+/*20050613 to latest
+Champion_W
+Champion
+*/
+ MSG_MONK_H_W = 0x3eb,
+/*20050613 to latest
+Professor_W
+Professor
+*/
+ MSG_SAGE_H_W = 0x3ec,
+/*20050613 to latest
+Stalker_W
+Stalker
+*/
+ MSG_ROGUE_H_W = 0x3ed,
+/*20050613 to latest
+Creator_W
+Creator
+*/
+ MSG_ALCHEMIST_H_W = 0x3ee,
+/*20050613 to latest
+Gypsy
+*/
+ MSG_DANCER_H = 0x3ef,
+/*20050613 to latest
+비밀번호가 지정되어 있지 않습니다. 새로운 비밀번호를 지정하시겠습니까?
+You have not set a password yet. Would you like to create one now?
+*/
+ MSG_STORE_PASSWORD_REQ = 0x3f0,
+/*20050613 to latest
+비밀번호를 3회 틀려셨습니다. 나중에 다시 시도해 주세요.
+You have incorrectly entered the password 3 times. Please try again later.
+*/
+ MSG_STORE_PASSWORD_PENALTY = 0x3f1,
+/*20050613 to latest
+비밀번호 변경이 실패하였습니다.
+Password creation has failed.
+*/
+ MSG_STORE_PASSWORD_CHANGE_NG = 0x3f2,
+/*20050613 to latest
+비밀번호는 4자리 이상 8자리이하여야만 합니다.
+Password must be 4~8 letters long.
+*/
+ MSG_STORE_PASSWORD_4_8 = 0x3f3,
+/*20050613 to latest
+비밀번호
+Password
+*/
+ MSG_STORE_PASSWORD = 0x3f4,
+/*20050613 to latest
+신규 비밀번호
+New Password
+*/
+ MSG_STORE_NEW_PASSWORD = 0x3f5,
+/*20050613 to latest
+확인 비밀번호
+Confirm Password
+*/
+ MSG_STORE_RENEW_PASSWORD = 0x3f6,
+/*20050613 to latest
+비밀번호 변경이 완료되었습니다.
+Password has been changed.
+*/
+ MSG_STORE_PASSWORD_CHANGE_OK = 0x3f7,
+/*20050613 to latest
+비밀번호가 서로 다릅니다.
+Password does not match.
+*/
+ MSG_STORE_PASSWORD_MISMATCH = 0x3f8,
+/*20050613 to latest
+비밀번호 입력
+Enter Password
+*/
+ MSG_STORE_PASSWORD_INPUT = 0x3f9,
+#endif
+#if PACKETVER >= 20050624
+/*20050624 to 20050624
+호문이 아사 직전입니다!!! 밥좀 주셈~!!
+20050628 to latest
+호문이 아사 직전입니다! 먹이를 주지 않으면 가출하게됩니다.
+Your Homunculus is starving. Please feed it, otherwise it will leave you.
+*/
+ MSG_HOMUN_HUNGRY = 0x3fa,
+/*20050624 to latest
+경험치
+EXP
+*/
+ MSG_HOMUN_EXP = 0x3fb,
+#endif
+#if PACKETVER >= 20050628
+/*20050628 to latest
+[EVENT] 이벤트에 당첨되셨습니다. 게임내에서 아이템을 지급받으십시요.
+*/
+ MSG_EVENT_RESULT = 0x3fc,
+#endif
+#if PACKETVER >= 20050704
+/*20050704 to latest
+싫어함
+Hate
+*/
+ MSG_HATE = 0x3fd,
+/*20050704 to 20050704
+매우 싫어함
+20050711 to latest
+매우싫어함
+Hate with a Passion
+*/
+ MSG_VERYHATE = 0x3fe,
+#endif
+#if PACKETVER >= 20050718
+/*20050718 to latest
+호문클루스가 사용자 인공지능으로 동작합니다.
+Homunculus has been customized.
+*/
+ MSG_HOMUN_USERAI_ON = 0x3ff,
+/*20050718 to latest
+호문클루스가 기본 인공지능으로 동작합니다.
+Homunculus has been activated with the basic AI.
+*/
+ MSG_HOMUN_USERAI_OFF = 0x400,
+#endif
+#if PACKETVER >= 20050808
+/*20050808 to latest
+편지목록
+Mail List
+*/
+ MSG_MAIL_LIST = 0x401,
+/*20050808 to latest
+편지쓰기
+Write Mail
+*/
+ MSG_MAIL_WRITE = 0x402,
+/*20050808 to latest
+편지읽기
+Read Mail
+*/
+ MSG_MAIL_READ = 0x403,
+#endif
+#if PACKETVER >= 20050817
+/*20050817 to latest
+한번 지정하시면 변경이 불가능합니다! 이 맵으로 지정하시겠습니까?
+You cannot change a map's designation once it is designated. Are you sure that you want to designate this map?
+*/
+ MSG_STARPLACE_ACCEPT = 0x404,
+#endif
+#if PACKETVER >= 20050822
+/*20050822 to 20050822
+보내실 아이템이 추가 되었습니다.
+20050829 to 20051017
+아이템창에 아이템이 추가 되었습니다.
+20051024 to latest
+메일 아이템을 수령했습니다.
+Item has been added in the Item Window.
+*/
+ MSG_MAIL_ADD_ITEM_SUCCESS = 0x405,
+/*20050822 to 20050822
+보내실 아이템이 추가 되지 않았습니다.
+20050829 to 20051017
+아이템창에 아이템이 추가 되지 않았습니다.
+20051024 to latest
+메일 아이템을 수령하지 못했습니다.
+You have failed to add the item in the Item Window.
+*/
+ MSG_MAIL_ADD_ITEM_FAILURE = 0x406,
+/*20050822 to latest
+메일 보내기가 성공하였습니다.
+You have successfully mailed a message.
+*/
+ MSG_MAIL_SEND_SUCCESS = 0x407,
+/*20050822 to latest
+메일 보내기가 실패하였습니다. 받는 사람이 존재하지 않습니다.
+You have failed to mail a message. Recipient does not exist.
+*/
+ MSG_MAIL_USER_NOT_FOUND = 0x408,
+#endif
+#if PACKETVER >= 20050829
+/*20050829 to latest
+[태양과 달과 별의 천사] 지정했던 장소들과 몬스터들이 초기화됐습니다!
+[Solar, Lunar and Stellar Angel] Designated places and monsters have been reset.
+*/
+ MSG_STAR_ANGEL = 0x409,
+/*20050829 to latest
+경매 등록이 실패했습니다.
+The minimum starting bid for auctions is 10,000,000 zeny.
+*/
+ MSG_AUCTION_ADD_FALSE = 0x40a,
+/*20050829 to latest
+경매 등록이 성공했습니다.
+You have successfully started a new auction.
+*/
+ MSG_AUCTION_ADD_TRUE = 0x40b,
+/*20050829 to latest
+해당 경매가 취소되었습니다.
+The auction has been canceled.
+*/
+ MSG_AUCTION_ADD_CANCEL = 0x40c,
+/*20050829 to latest
+입찰자가 있는 경매는 취소할 수 없습니다.
+An auction with at least one bidder cannot be canceled.
+*/
+ MSG_AUCTION_ADD_CANCEL_FALSE = 0x40d,
+#endif
+#if PACKETVER >= 20050905
+/*20050905 to latest
+메일 삭제가 성공하였습니다.
+Mail has been successfully deleted.
+*/
+ MSG_MAIL_DELETE_SUCCESS = 0x40e,
+/*20050905 to latest
+메일 삭제가 실패하였습니다.
+You have failed to delete the mail.
+*/
+ MSG_MAIL_DELETE_FAILURE = 0x40f,
+#endif
+#if PACKETVER >= 20050912
+/*20050912 to latest
+던지는 단검이 장착되었습니다.
+You have equipped throwing daggers.
+*/
+ MSG_MSG_KNIFE_EQUIPMENT_SUCCESS = 0x410,
+#endif
+#if PACKETVER >= 20050926
+/*20050926 to latest
+%s 님이 로그인했습니다.
+%s has logged in.
+*/
+ MSG_LOGIN_FRIEND = 0x411,
+/*20050926 to latest
+%s 님이 로그아웃했습니다.
+%s has logged out.
+*/
+ MSG_LOGOUT_FRIEND = 0x412,
+#endif
+#if PACKETVER >= 20051004
+/*20051004 to latest
+/loginout : 길드원과 친구들의 접속관련 메세지를 보여줍니다. On Off
+/loginout: Shows guildsmen and friends online status. On Off
+*/
+ MSG_EXPLAIN_LOGINOUT = 0x413,
+/*20051004 to latest
+친구들의 접속관련 메세지를 대화창에 표시합니다. [/li ON]
+Display online status of friends in Chat Window. [/li ON]
+*/
+ MSG_LOGINOUT_ON = 0x414,
+/*20051004 to latest
+친구들의 접속관련 메세지를 대화창에 표시하지않습니다. [/li OFF]
+Do not display online status of friends in Chat Window. [/li OFF]
+*/
+ MSG_LOGINOUT_OFF = 0x415,
+/*20051004 to latest
+이미 실행중입니다.
+It is already running.
+*/
+ MSG_SGP_CODE_ALREADY_RUNNING = 0x416,
+/*20051004 to latest
+매크로 사용이 감지되었습니다.
+Use of Macro program has been detected.
+*/
+ MSG_SGP_CODE_DETECTED_MACRO = 0x417,
+/*20051004 to latest
+스피드해킹이 감지되었습니다.
+Use of Speed hack has been detected.
+*/
+ MSG_SGP_CODE_DETECTED_SPEEDHACK = 0x418,
+/*20051004 to latest
+API 후킹이 감지되었습니다.
+API Hooking has been detected.
+*/
+ MSG_SGP_CODE_DETECTED_APIHOOK = 0x419,
+/*20051004 to latest
+메시지 후킹이 감지되었습니다.
+Message Hooking has been detected.
+*/
+ MSG_SGP_CODE_DETECTED_MSGHOOK = 0x41a,
+/*20051004 to latest
+모듈이 변조 또는 손상되었거나 버전이 일치하지 않습니다.
+Module has been modified or damaged or its version does not match.
+*/
+ MSG_SGP_CODE_NOT_EQUALENCRYPTEDDATA = 0x41b,
+#endif
+#if PACKETVER >= 20051010
+/*20051010 to latest
+(태국)귀하는 게임방 과금으로 로그인 하셨습니다.
+(Thailand) You have logged in game with PC cafe payment.
+*/
+ MSG_BILLING_PCB = 0x41c,
+#endif
+#if PACKETVER >= 20051017
+/*20051017 to latest
+이전
+Prev
+*/
+ MSG_PREV_PAGE = 0x41d,
+/*20051017 to latest
+다음
+Next
+*/
+ MSG_NEXT_PAGE = 0x41e,
+/*20051017 to latest
+경매
+Auction
+*/
+ MSG_AUCTION = 0x41f,
+/*20051017 to latest
+물품보기
+Product List
+*/
+ MSG_AUCTION_VIEW = 0x420,
+/*20051017 to latest
+등록하기
+Register
+*/
+ MSG_AUCTION_ADD = 0x421,
+/*20051017 to latest
+판매 진행상태
+Sale Status
+*/
+ MSG_AUCTION_SELL = 0x422,
+/*20051017 to latest
+구매 진행상태
+Purchase Status
+*/
+ MSG_AUCTION_BUY = 0x423,
+/*20051017 to latest
+아이템
+Item
+*/
+ MSG_ITEM2 = 0x424,
+/*20051017 to latest
+아이템명
+Name
+*/
+ MSG_ITEM_NAME2 = 0x425,
+/*20051017 to latest
+가격 / 즉시구입가격
+Current Bid / Max Bid
+*/
+ MSG_ITEM_PRICE = 0x426,
+/*20051017 to latest
+판매자
+Seller
+*/
+ MSG_SELLER = 0x427,
+/*20051017 to latest
+구매자
+Buyer
+*/
+ MSG_BUYER = 0x428,
+/*20051017 to latest
+종료시간
+End Time
+*/
+ MSG_FINISH_TIME = 0x429,
+/*20051017 to latest
+%m월 %d일 %H시
+%m %d %H
+*/
+ MSG_TIME_TYPE = 0x42a,
+/*20051017 to latest
+시간설정
+Time (Hr)
+*/
+ MSG_SET_TIME = 0x42b,
+/*20051017 to latest
+수수료
+Fee
+*/
+ MSG_CHARGE = 0x42c,
+/*20051017 to latest
+검색 된 아이템이 없습니다.
+*/
+ MSG_NOTHING_SEARCH_ITEM = 0x42d,
+/*20051017 to latest
+현재 판매중인 아이템이 없습니다.
+Your Sale List is empty.
+*/
+ MSG_NOTHING_SEARCH_SELL_ITEM = 0x42e,
+/*20051017 to latest
+현재 구매중인 아이템이 없습니다.
+Your Purchase List is empty.
+*/
+ MSG_NOTHING_SEARCH_BUY_ITEM = 0x42f,
+/*20051017 to latest
+경매정보가 정확하지 않습니다.
+Auction Information is incorrect or incomplete.
+*/
+ MSG_ERROR_AUCTION_ITEM_INFO = 0x430,
+/*20051017 to latest
+경매에 등록할 아이템 정보가 없습니다.
+You must drag and drop an item from your Inventory into the Register Window to begin a new auction.
+*/
+ MSG_NOTHING_AUCTION_ITEM_INFO = 0x431,
+/*20051017 to latest
+이미 등록된 경매입니다.
+The auction has already been registered.
+*/
+ MSG_ERROR_ADD_AUCTION = 0x432,
+/*20051017 to latest
+제시가격
+Starting Bid
+*/
+ MSG_PRICE = 0x433,
+/*20051017 to latest
+구입희망가격
+Current Bid
+*/
+ MSG_PRICE2 = 0x434,
+/*20051017 to latest
+즉시구입가격
+Buy Now Price
+*/
+ MSG_PRICE3 = 0x435,
+/*20051017 to latest
+현재소지제니
+Your Current Zeny
+*/
+ MSG_PRICE4 = 0x436,
+/*20051017 to latest
+현재최고가격
+Highest Bid
+*/
+ MSG_PRICE5 = 0x437,
+/*20051017 to latest
+이전입찰가격
+Previous Bid
+*/
+ MSG_PRICE6 = 0x438,
+/*20051017 to latest
+추가입찰가격
+Next Bid
+*/
+ MSG_PRICE7 = 0x439,
+/*20051017 to latest
+구입하시겠습니까?
+Press buy to confirm.
+*/
+ MSG_BUY_ACTION_ITEM = 0x43a,
+/*20051017 to latest
+이 가격에 판매하시겠습니까?
+Would you like to sell this item?
+*/
+ MSG_SELL_ACTION_ITEM = 0x43b,
+/*20051017 to latest
+입찰하기
+Place Bid
+*/
+ MSG_BUY_AUCTION = 0x43c,
+/*20051017 to latest
+즉시구매하기
+Buy Now
+*/
+ MSG_BUY_AUCTION2 = 0x43d,
+/*20051017 to latest
+경매종료하기
+End the Auction
+*/
+ MSG_BUY_AUCTION3 = 0x43e,
+/*20051017 to latest
+재입찰하기
+Place another Bid
+*/
+ MSG_FINISH_AUCTION = 0x43f,
+/*20051017 to latest
+해당 경매에 대한 입찰이 성공했습니다.
+You have placed a bid.
+*/
+ MSG_RESULT_BUY_TRUE = 0x440,
+/*20051017 to latest
+해당 경매에 대한 입찰이 실패했습니다.
+You have failed to place a bid.
+*/
+ MSG_RESULT_BUY_FALSE = 0x441,
+/*20051017 to latest
+제니가 충분하지 않습니다.
+You do not have enough zeny.
+*/
+ MSG_RESULT_BUY_FALSE_MONEY = 0x442,
+#endif
+#if PACKETVER >= 20051024
+/*20051024 to latest
+방어구
+Armors
+*/
+ MSG_EQUIP = 0x443,
+/*20051024 to latest
+카드
+Card
+*/
+ MSG_CARD = 0x444,
+/*20051024 to latest
+기타
+Other
+*/
+ MSG_ETC = 0x445,
+/*20051024 to latest
+경매번호
+Bid
+*/
+ MSG_AUCTION_NUM = 0x446,
+/*20051024 to latest
+검색
+Search
+*/
+ MSG_AUCTION_SEARCH = 0x447,
+/*20051024 to latest
+해당 경매를 종료했습니다.
+You have ended the auction.
+*/
+ MSG_RESULT_MY_SELL_STOP_TRUE = 0x448,
+/*20051024 to latest
+해당 경매를 종료 할 수 없습니다.
+You cannot end the auction.
+*/
+ MSG_RESULT_MY_SELL_STOP_FALSE = 0x449,
+/*20051024 to latest
+경매 번호가 정확하지 않습니다.
+Bid Number is incorrect.
+*/
+ MSG_RESULT_AUCTION_ID_FALSE = 0x44a,
+/*20051024 to latest
+받는이
+To
+*/
+ MSG_SENDER = 0x44b,
+#endif
+#if PACKETVER >= 20051205
+/*20051205 to latest
+제 목
+Title
+*/
+ MSG_TITLE2 = 0x44c,
+/*20051205 to latest
+새 메일이 도착하였습니다.
+You have received a message in the mail.
+*/
+ MSG_NEW_MAIL = 0x44d,
+/*20051205 to latest
+검색중입니다.
+Searching...
+*/
+ MSG_SEARCHING_ITEM = 0x44e,
+/*20051205 to latest
+더 이상 경매 등록할 수 없습니다. 경매 등록은 최대 5개까지 가능합니다.
+You cannot register more than 5 items in an auction at a time.
+*/
+ MSG_AUCTION_ADD_OVER = 0x44f,
+/*20051205 to latest
+더 이상 경매 물품에 입찰할 수 없습니다. 경매 물품 입찰은 최대 5개까지 가능합니다.
+You cannot place more than 5 bids at a time.
+*/
+ MSG_RESULT_BUY_OVER = 0x450,
+/*20051205 to latest
+삭제하려는 메일에 수령하지 않은 아이템이 있습니다.
+Please accept all items from your mail before deleting.
+*/
+ MSG_MAIL_DELETE_ERROR = 0x451,
+/*20051205 to latest
+메일 제목을 입력하여 주십시오.
+Please enter a title.
+*/
+ MSG_MAIL_SEND_ERROR = 0x452,
+/*20051205 to latest
+/shopping : 클릭 한번으로 상점을 열고 상점이름 오른쪽 클릭으로 상점을 닫습니다 On Off
+/shopping: Enables you to open a shop with a single left-click and close your shop with a single right-click. On Off
+*/
+ MSG_EXPLAIN_SHOPPING = 0x453,
+/*20051205 to latest
+클릭 한번으로 상점을 열고 상점이름을 오른쪽 클릭해서 상점을 닫을수있습니다. [/sh ON]
+You can now open a shop with a single left-click and close your shop with a single right-click. [sh ON].
+*/
+ MSG_SHOPPING_ON = 0x454,
+/*20051205 to latest
+더블클릭 으로 상점을 열게됩니다. [/sh OFF]
+You can open a shop by double-clicking. [/sh OFF]
+*/
+ MSG_SHOPPING_OFF = 0x455,
+/*20051205 to latest
+메일을 보내려면, 제니 입력을 완료해야 합니다.
+Please enter zeny amount before sending mail.
+*/
+ MSG_MAIL_SEND_ERROR2 = 0x456,
+/*20051205 to latest
+경매 수수료가 부족합니다.
+You do not have enough zeny to pay the Auction Fee.
+*/
+ MSG_ADD_MONEY_FALSE = 0x457,
+/*20051205 to latest
+상태보기
+View Status
+*/
+ MSG_HOMUN_SHOWINFO = 0x458,
+/*20051205 to latest
+먹이주기
+Feed
+*/
+ MSG_HOMUN_FEEDING = 0x459,
+/*20051205 to latest
+대기
+Stand By
+*/
+ MSG_HOMUN_WAITING = 0x45a,
+/*20051205 to latest
+슈퍼노비스(남)
+Super Novice (Male)
+*/
+ MSG_JOB_SUPERNOVICE_M = 0x45b,
+/*20051205 to latest
+슈퍼노비스(여)
+Super Novice (Female)
+*/
+ MSG_JOB_SUPERNOVICE_F = 0x45c,
+/*20051205 to latest
+태권소년
+Taekwon Boy
+*/
+ MSG_JOB_TAEKWON_M = 0x45d,
+/*20051205 to latest
+태권소녀
+Taekwon Girl
+*/
+ MSG_JOB_TAEKWON_F = 0x45e,
+/*20051205 to latest
+권성(남)
+Taekwon Master (Male)
+*/
+ MSG_KWONSUNG_M = 0x45f,
+/*20051205 to latest
+권성(여)
+Taekwon Master (Female)
+*/
+ MSG_KWONSUNG_F = 0x460,
+/*20051205 to latest
+소울링커(남)
+Soul Linker (Male)
+*/
+ MSG_SOULLINGKER_M = 0x461,
+/*20051205 to latest
+소울링커(여)
+Soul Linker (Female)
+*/
+ MSG_SOULLINGKER_F = 0x462,
+/*20051205 to latest
+PC방요금제로 2개이상의 계정이 접속되고있습니다. 확인후 다시 사용하시기 바랍니다.
+Please check the connection, more than 2 accounts are connected with Internet Cafe Time Plan.
+*/
+ MSG_BAN_PC_IP_UNFAIR = 0x463,
+/*20051205 to latest
+귀하는 월정액 요금제 사용자 입니다. (남은기간 : %d일)
+Your account is using monthly payment. (Remaining day: %d day)
+*/
+ MSG_BILLING_1 = 0x464,
+/*20051205 to latest
+귀하는 정량 요금제 사용자 입니다. (남은시간 : %d시간 %분 %초)
+Your account is using time limited. (Remaining time: %d hour %d minute %d second)
+*/
+ MSG_BILLING_2 = 0x465,
+#endif
+#if PACKETVER >= 20051212
+/*20051212 to latest
+해당 아이템은 메일에 첨부 할수 없는 아이템입니다.
+This item cannot be mailed.
+*/
+ MSG_MAIL_ITEM_ADD_FAILED = 0x466,
+/*20051212 to latest
+더이상 아이템을 가질수 없습니다. 아이템은 메일로 보관하겠습니다.
+You cannot accept any more items. Please try again later.
+*/
+ MSG_MAIL_ADD_ITEM_OVER_FAILURE = 0x467,
+#endif
+#if PACKETVER >= 20060109
+/*20060109 to latest
+남성
+Male
+*/
+ MSG_PTSEX1 = 0x468,
+/*20060109 to latest
+여성
+Female
+*/
+ MSG_PTSEX2 = 0x469,
+/*20060109 to latest
+새로운 유저입니다
+New User.
+*/
+ MSG_PT_NEWUSER = 0x46a,
+/*20060109 to latest
+E-mail은 캐릭터를 지울때 필요합니다.
+E-mail address is required to delete a character.
+*/
+ MSG_PT_ACINFO = 0x46b,
+/*20060109 to latest
+정확한 형식으로 입력해 주세요.
+Please enter the correct information.
+*/
+ MSG_PT_ACINFO2 = 0x46c,
+/*20060109 to latest
+이 키를 사용하세요
+Please use this key.
+*/
+ MSG_PT_NEWKEYINFO = 0x46d,
+/*20060109 to latest
+정확한 카드 패스워드를 다시 입력해주세요
+Please enter the correct card password.
+*/
+ MSG_PT_FAIL_CARDPASS = 0x46e,
+/*20060109 to latest
+PT정보
+PT Info
+*/
+ MSG_PTID1 = 0x46f,
+/*20060109 to latest
+PT_ID는 %s
+PT_ID is %s
+*/
+ MSG_PTID2 = 0x470,
+/*20060109 to latest
+NUM_ID는 %s
+NUM_ID is %s
+*/
+ MSG_PTID3 = 0x471,
+/*20060109 to latest
+잊지않게 주의하세요
+Please don't forget this information.
+*/
+ MSG_PTID4 = 0x472,
+/*20060109 to latest
+1001
+*/
+ MSG_PT_ERROR_1001 = 0x473,
+/*20060109 to latest
+1002
+*/
+ MSG_PT_ERROR_1002 = 0x474,
+/*20060109 to latest
+1003
+*/
+ MSG_PT_ERROR_1003 = 0x475,
+/*20060109 to latest
+1004
+*/
+ MSG_PT_ERROR_1004 = 0x476,
+/*20060109 to latest
+1006
+*/
+ MSG_PT_ERROR_1006 = 0x477,
+/*20060109 to latest
+1007
+*/
+ MSG_PT_ERROR_1007 = 0x478,
+/*20060109 to latest
+1008
+*/
+ MSG_PT_ERROR_1008 = 0x479,
+/*20060109 to latest
+1009
+*/
+ MSG_PT_ERROR_1009 = 0x47a,
+/*20060109 to latest
+1012
+*/
+ MSG_PT_ERROR_1012 = 0x47b,
+/*20060109 to latest
+1013
+*/
+ MSG_PT_ERROR_1013 = 0x47c,
+/*20060109 to latest
+1014
+*/
+ MSG_PT_ERROR_1014 = 0x47d,
+/*20060109 to latest
+1015
+*/
+ MSG_PT_ERROR_1015 = 0x47e,
+/*20060109 to latest
+1019
+*/
+ MSG_PT_ERROR_1019 = 0x47f,
+/*20060109 to latest
+1020
+Navigation
+*/
+ MSG_PT_ERROR_1020 = 0x480,
+/*20060109 to latest
+1021
+*/
+ MSG_PT_ERROR_1021 = 0x481,
+/*20060109 to latest
+1023
+*/
+ MSG_PT_ERROR_1023 = 0x482,
+/*20060109 to latest
+1024
+*/
+ MSG_PT_ERROR_1024 = 0x483,
+/*20060109 to latest
+1025
+*/
+ MSG_PT_ERROR_1025 = 0x484,
+/*20060109 to latest
+1027
+*/
+ MSG_PT_ERROR_1027 = 0x485,
+/*20060109 to latest
+1028
+*/
+ MSG_PT_ERROR_1028 = 0x486,
+/*20060109 to latest
+10
+*/
+ MSG_PT_ERROR_10 = 0x487,
+/*20060109 to latest
+20
+*/
+ MSG_PT_ERROR_20 = 0x488,
+/*20060109 to latest
+40
+*/
+ MSG_PT_ERROR_40 = 0x489,
+/*20060109 to latest
+50
+*/
+ MSG_PT_ERROR_50 = 0x48a,
+/*20060109 to latest
+60
+*/
+ MSG_PT_ERROR_60 = 0x48b,
+/*20060109 to latest
+70
+*/
+ MSG_PT_ERROR_70 = 0x48c,
+/*20060109 to latest
+80
+*/
+ MSG_PT_ERROR_80 = 0x48d,
+/*20060109 to latest
+90
+*/
+ MSG_PT_ERROR_90 = 0x48e,
+/*20060109 to latest
+100
+*/
+ MSG_PT_ERROR_100 = 0x48f,
+/*20060109 to latest
+110
+*/
+ MSG_PT_ERROR_110 = 0x490,
+#endif
+#if PACKETVER >= 20060126
+/*20060126 to latest
+30포인트를 받으시겠습니까?
+Do you want to receive 30 points?
+*/
+ MSG_PT_POINT1 = 0x491,
+/*20060126 to latest
+30포인트(5시간)이 충전되었습니다
+30 points (5 hours) have been added.
+*/
+ MSG_PT_POINT2 = 0x492,
+#endif
+#if PACKETVER >= 20060213
+/*20060213 to latest
+감정되지 않은 아이템은 경매에 등록할 수 없습니다.
+You cannot register Unidentified Items in auctions.
+*/
+ MSG_AUCTION_ADD_ITEM_FAILURE = 0x493,
+/*20060213 to latest
+소비 아이템은 경매에 등록할 수 없습니다.
+You cannot register this Consumable Item in an auction.
+*/
+ MSG_AUCTION_ADD_ITEM_FAILURE2 = 0x494,
+#endif
+#if PACKETVER >= 20060306
+/*20060306 to latest
+메일창을 열려면 카트창을 닫아 주십시요.
+Please close the Cart Window to open the Mail Window.
+*/
+ MSG_CLOSE_MERCHANTITEMWND = 0x495,
+/*20060306 to latest
+카트창을 열려면 메일창을 닫아 주십시요.
+Please close the Mail Window to open the Cart Window.
+*/
+ MSG_CLOSE_MAILWND = 0x496,
+#endif
+#if PACKETVER >= 20060313
+/*20060313 to latest
+탄환이 장착되었습니다.
+Bullets have been equipped.
+*/
+ MSG_MSG_BULLET_EQUIPMENT_SUCCESS = 0x497,
+/*20060313 to latest
+메일이 반송되었습니다.
+The mail has been returned to sender.
+*/
+ MSG_MAIL_RETURN_SUCCESS = 0x498,
+/*20060313 to latest
+메일이 존재하지 않습니다.
+The mail no longer exists.
+*/
+ MSG_MAIL_RETURN_FAILURE = 0x499,
+#endif
+#if PACKETVER >= 20060522
+/*20060522 to 20060522
+한시간 동안, 동일한 IP로 접속한 유저가 60건 이상입니다. 확인후 다시 사용하시기 바랍니다.
+20060523 to latest
+한시간 동안, 동일한 IP로 접속한 유저가 30건 이상입니다. 확인후 다시 사용하시기 바랍니다.
+More than 30 players sharing the same IP have logged into the game for an hour. Please check this matter.
+*/
+ MSG_BAN_PC_IP_COUNT_ALL = 0x49a,
+/*20060522 to latest
+한시간 동안, 동일한 IP로 10번 이상 접속되었습니다. 확인후 다시 사용하시기 바랍니다.
+More than 10 connections sharing the same IP have logged into the game for an hour. Please check this matter.
+*/
+ MSG_BAN_PC_IP_COUNT = 0x49b,
+/*20060522 to latest
+게임을 재시작 하십시오
+Please restart the game.
+*/
+ MSG_GAMEGUARD_RESTART = 0x49c,
+#endif
+#if PACKETVER >= 20060703
+/*20060703 to latest
+용병정보 - 아쳐타입
+Mercenary: Archer
+*/
+ MSG_MER_INFO_TYPE_ARCHER = 0x49d,
+/*20060703 to latest
+용병정보 - 검사타입
+Mercenary: Swordman
+*/
+ MSG_MER_INFO_TYPE_SWORDMAN = 0x49e,
+/*20060703 to latest
+용병정보 - 창병타입
+Mercenary: Spearman
+*/
+ MSG_MER_INFO_TYPE_LANCER = 0x49f,
+/*20060703 to 20070108
+남은시간
+20070115 to latest
+삭제시간
+Expiration
+*/
+ MSG_LEFT_TIME = 0x4a0,
+/*20060703 to latest
+신뢰도
+Loyalty
+*/
+ MSG_MER_FRIENDLY = 0x4a1,
+/*20060703 to latest
+소환횟수
+Summons
+*/
+ MSG_MER_CALLCOUNT = 0x4a2,
+/*20060703 to latest
+Kill
+*/
+ MSG_MER_KILL = 0x4a3,
+#endif
+#if PACKETVER >= 20060904
+/*20060904 to latest
+펫이 배가 고파서 당신을 원망하고 있다는 느낌이 든다.
+You can feel hatred from your pet for neglecting to feed it.
+*/
+ MSG_PET_STARVING = 0x4a4,
+/*20060904 to latest
+[POINT] 테이밍미션 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[POINT] You earned %d Taming Mission Ranking Points, giving you a total of %d points.
+*/
+ MSG_GANGSI_POINT = 0x4a5,
+/*20060904 to latest
+[테이밍미션] Target Monster : %s
+[Taming Mission] Target Monster: %s
+*/
+ MSG_GANGSI_MISSION = 0x4a6,
+#endif
+#if PACKETVER >= 20060918
+/*20060918 to latest
+/hunting : 사냥 목록을 보여줍니다.
+/hunting: You can check the your hunting list.
+*/
+ MSG_EXPLAIN_HUNTING = 0x4a7,
+/*20060918 to latest
+[천사의질문] 소녀에게 가르쳐주시어요. %s는 몇 스킬 찍으셨나요?
+[Angel's Question] Please tell me, how many %s skills do you have?
+*/
+ MSG_DEATH_Q01 = 0x4a8,
+/*20060918 to latest
+[천사의질문] 소녀에게 가르쳐주시어요. 소지하시고있는 제니를 십만으로 나누면 얼마가 되시나요?
+[Angel's Question] Please tell me, how much zeny you'll have if you divide it by 100,000?
+*/
+ MSG_DEATH_Q02 = 0x4a9,
+/*20060918 to latest
+[천사의질문] 소녀에게 가르쳐주시어요. 오늘이 몇일이신지 아시나요?
+[Angel's Question] Please tell me, what is today's date?
+*/
+ MSG_DEATH_Q03 = 0x4aa,
+/*20060918 to latest
+[천사의질문] 소녀에게 가르쳐주시어요. %s은 지금 몇이신가요?
+[Angel's Question] Please tell me, how many %s do you have?
+*/
+ MSG_DEATH_Q04 = 0x4ab,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 슈노, 태권계열, 무낙계열을 담당하고있는 SiYeon씨의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in SiYeon's name?
+*/
+ MSG_DEATH_Q05 = 0x4ac,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 귀엽고 어여쁜 라그나로크의 히로인 Munak의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in Munak's name?
+*/
+ MSG_DEATH_Q06 = 0x4ad,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 제가 어여뻐하는 Bongun의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in Bongun's name?
+*/
+ MSG_DEATH_Q07 = 0x4ae,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 저희가 존재하는 온라인세계 Ragnarok의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, Ragnarok?
+*/
+ MSG_DEATH_Q08 = 0x4af,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 언제나 Online상태인 천사동료들은 큰힘이 되어주죠. Online의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, online?
+*/
+ MSG_DEATH_Q09 = 0x4b0,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 죽음도 두려워하지않는 기사들을 상징하는 단어인 Death의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, death?
+*/
+ MSG_DEATH_Q10 = 0x4b1,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 기사들은 너무 멋진다고 생각해요. Knight의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, knight?
+*/
+ MSG_DEATH_Q11 = 0x4b2,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 중력을 뜻하는 단어인 Gravity의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, gravity?
+*/
+ MSG_DEATH_Q12 = 0x4b3,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 어둠속에서도 밝게 사는게 중요하지요. Dark의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, dark?
+*/
+ MSG_DEATH_Q13 = 0x4b4,
+/*20060918 to latest
+[천사의질문] A는 1이고 Z는 26이어요. 뭐든지 수집하는 Collector의 알파벳을 더하면 몇이 되나요?
+[Angel's Question] If A is 1, B is 2, and so on, and if Z is 26, what number do you get if you add the letters in the word, collecter?
+*/
+ MSG_DEATH_Q14 = 0x4b5,
+/*20060918 to latest
+[천사의대답] 소녀에게 정확한 사실을 가르쳐주셔서 감사하옵니다.
+[Angel's Answer] Thank you for letting me know~
+*/
+ MSG_DEATH_R01 = 0x4b6,
+/*20060918 to latest
+[천사의대답] 사랑스러우신 분이시군요. 소녀 감탄했사옵니다.
+[Angel's Answer] I'm very pleased with your answer. You are a splendid adventurer.
+*/
+ MSG_DEATH_R02 = 0x4b7,
+/*20060918 to latest
+[천사의대답] 소녀 실망했사옵니다.
+[Angel's Answer] You've disappointed me...
+*/
+ MSG_DEATH_R05 = 0x4b8,
+#endif
+#if PACKETVER >= 20060925
+/*20060925 to latest
+[POINT] 랭킹포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[Point] You earned %d Ranking Points, giving you a total of %d Ranking Points.
+*/
+ MSG_DEATH_POINT = 0x4b9,
+#endif
+#if PACKETVER >= 20060927
+/*20060927 to 20070417
+[%s]의 소지 Point : %d Point
+20070423 to latest
+[%s]의 소지 캐시 : %d 캐시
+[%s]'s Points: %d Points
+*/
+ MSG_POINT_SHOP = 0x4ba,
+#endif
+#if PACKETVER >= 20061009
+/*20061009 to latest
+선택하지 않은 캐릭터는 삭제 됩니다. 완료하시겠습니까?
+Unselected Characters will be deleted. Continue?
+*/
+ MSG_CONFIRM_SELECT_CHARACTERS = 0x4bb,
+/*20061009 to latest
+9개 이상 선택하실 수 없습니다.
+You cannot select more than 8.
+*/
+ MSG_ERROR_SELECT_CHARACTERS = 0x4bc,
+#endif
+#if PACKETVER >= 20061016
+/*20061016 to latest
+캐릭터명을 '%s' (으)로 변경하시겠습니까?
+Do you want to change your name to '%s'?
+*/
+ MSG_CONFIRM_TO_CHANGE_NAME = 0x4bd,
+/*20061016 to latest
+캐릭터명이 성공적으로 변경되었습니다.
+Character Name has been changed successfully.
+*/
+ MSG_CHANGE_NAME_SUCCESS = 0x4be,
+/*20061016 to latest
+캐릭터명 변경이 실패하였습니다.
+You have failed to change this character's name.
+*/
+ MSG_CHANGE_NAME_FAILURE = 0x4bf,
+/*20061016 to latest
+한 번에 한 종류의 아이템만 구매할 수 있습니다.
+You can purchase only one kind of item at a time.
+*/
+ MSG_CAN_BUY_ONLY_ONEITEM = 0x4c0,
+#endif
+#if PACKETVER >= 20061017
+/*20061017 to 20061017
+캐릭터가 하나도 선택되지 않았습니다. 반드시 하나 이상의 캐릭터를 선택하여야 합니다.
+20061023 to latest
+캐릭터가 한개도 선택되지 않았습니다. 반드시 한개 이상의 캐릭터를 선택하여야 합니다.
+No characters were selected. You must select at least one character.
+*/
+ MSG_NO_SELECT_CHARACTERS = 0x4c1,
+#endif
+#if PACKETVER >= 20061023
+/*20061023 to latest
+이미 캐릭터명을 변경한 적이 있습니다. 더 이상 변경 할 수 없습니다.
+This character's name has already been changed. You cannot change a character's name more than once.
+*/
+ MSG_ALREADY_CHANGED_NAME = 0x4c2,
+/*20061023 to latest
+사용자 정보가 정확하지 않습니다.
+User Information is not correct.
+*/
+ MSG_NOTREGISTED_USER = 0x4c3,
+/*20061023 to latest
+다른 사용자가 같은 캐릭터 명을 먼저 사용하였습니다. 다른 캐릭터명을 사용하여 주십시요.
+Another user is using this character name, so please select another one.
+*/
+ MSG_DUPLICATED_CHAR_NAME = 0x4c4,
+#endif
+#if PACKETVER >= 20061030
+/*20061030 to latest
+파티장 권한이 없어 파티원을 소환하지 못했습니다.
+The party member was not summoned because you are not the party leader.
+*/
+ MSG_CANNOT_PARTYCALL = 0x4c5,
+/*20061030 to latest
+현재 맵에는 소환될 파티원이 존재하지 않습니다.
+There is no party member to summon in the current map.
+*/
+ MSG_NO_PARTYMEM_ON_THISMAP = 0x4c6,
+/*20061030 to latest
+이 지역에선 보스몬스터의 흔적을 찾을 수가 없습니다.
+You cannot find any trace of a Boss Monster in this area.
+*/
+ MSG_NOTFIND_BOSSMON = 0x4c7,
+/*20061030 to 20070122
+보스 몬스터 '%s'의 등장 예정시간 %02d시:%02d분
+20070129 to 20071204
+보스 몬스터 '%s'(이)가 %d시 %d분 후에 등장합니다.
+20071211 to latest
+보스 몬스터 '%s'(이)가 %d시간 %d분 후에 등장합니다.
+Boss Monster, '%s' will appear in %02d hour(s) and %02d minute(s).
+*/
+ MSG_APPEARANCE_TIME_OF_BOSSMON = 0x4c8,
+/*20061030 to latest
+보스 몬스터 '%s'의 위치가 미니맵에 표시됩니다.
+The location of Boss Monster, '%s', will be displayed on your Mini-Map.
+*/
+ MSG_SHOW_POSITION_OF_BOSSMON = 0x4c9,
+#endif
+#if PACKETVER >= 20061106
+/*20061106 to 20061211
+%s를 개봉 하시겠습니까? 한번 개봉된 아이템은 창고 저장 외의 다른 이동은 불가하며 동일한 아이템을 중복 사용하더라도 효과가 중첩되지 않습니다.
+20061218 to 20070618
+'%s'를 개봉 하시겠습니까? 한번 개봉된 아이템은 창고 저장 외의 다른 이동은 불가하며 동일한 아이템을 중복 사용하더라도 효과가 중첩되지 않습니다.
+20070619 to 20071218
+'%s'를 개봉 하시겠습니까? 한번 개봉된 아이템은 창고 저장 외의 다른 이동은 불가하며 임대 아이템은 창고 저장도 불가합니다. 동일한 아이템을 중복 사용하더라도 효과가 중첩되지 않습니다.
+20080102 to latest
+'%s'를 개봉 하시겠습니까? 한번 개봉된 아이템은 창고 저장 외의 다른 이동은 불가하며 임대 아이템은 창고 저장도 불가합니다. 한정 아이템은 거래 및 이동이 가능 합니다. 동일한 아이템을 중복 사용하더라도 효과가 중첩되지 않습니다.
+*/
+ MSG_CONFIRM_TO_OPEN_CASH_ITEM = 0x4ca,
+/*20061106 to latest
+NPC가 존재하지 않아 구매가 실패하였습니다.
+The Purchase has failed because the NPC does not exist.
+*/
+ MSG_BUY_CASH_FAIL_NPC = 0x4cb,
+/*20061106 to latest
+부분 유료화 시스템이 정상 작동하지 않아 구매가 실패하였습니다.
+The Purchase has failed because the Kafra Shop System is not working correctly.
+*/
+ MSG_BUY_CASH_FAIL_SYSTEM = 0x4cc,
+/*20061106 to latest
+교환중에는 아이템을 구매 할 수 없습니다.
+You cannot purchase items while you are in a trade.
+*/
+ MSG_BUY_CASH_FAIL_EXCHANGE = 0x4cd,
+/*20061106 to latest
+아이템 정보가 정확하지 않아 구매가 실패하였습니다.
+The Purchase has failed because the Item Information was incorrect.
+*/
+ MSG_BUY_CASH_FAIL_ITEM_ID = 0x4ce,
+#endif
+#if PACKETVER >= 20061204
+/*20061204 to latest
+ STR이 향상되었습니다.
+STR has increased.
+*/
+ MSG_ENST_STR = 0x4cf,
+/*20061204 to latest
+ STR이 원래대로 돌아왔습니다.
+STR has returned to normal.
+*/
+ MSG_DSST_STR = 0x4d0,
+/*20061204 to latest
+ AGI이 향상되었습니다.
+AGI has increased.
+*/
+ MSG_ENST_AGI = 0x4d1,
+/*20061204 to latest
+ AGI이 원래대로 돌아왔습니다.
+AGI has returned to normal.
+*/
+ MSG_DSST_AGI = 0x4d2,
+/*20061204 to latest
+ VIT이 향상되었습니다.
+VIT has increased.
+*/
+ MSG_ENST_VIT = 0x4d3,
+/*20061204 to latest
+ VIT이 원래대로 돌아왔습니다.
+VIT has returned to normal.
+*/
+ MSG_DSST_VIT = 0x4d4,
+/*20061204 to latest
+ INT이 향상되었습니다.
+INT has increased.
+*/
+ MSG_ENST_INT = 0x4d5,
+/*20061204 to latest
+ INT이 원래대로 돌아왔습니다.
+INT has returned to normal.
+*/
+ MSG_DSST_INT = 0x4d6,
+/*20061204 to latest
+ DEX이 향상되었습니다.
+DEX has increased.
+*/
+ MSG_ENST_DEX = 0x4d7,
+/*20061204 to latest
+ DEX이 원래대로 돌아왔습니다.
+DEX has returned to normal.
+*/
+ MSG_DSST_DEX = 0x4d8,
+/*20061204 to latest
+ LUK이 향상되었습니다.
+LUK has increased.
+*/
+ MSG_ENST_LUK = 0x4d9,
+/*20061204 to latest
+ LUK이 원래대로 돌아왔습니다.
+LUK has returned to normal.
+*/
+ MSG_DSST_LUK = 0x4da,
+/*20061204 to latest
+ 회피율이 향상되었습니다.
+Flee Rate (Flee) has increased.
+*/
+ MSG_ENST_AVOIDANCE = 0x4db,
+/*20061204 to latest
+ 회피율이 원래대로 돌아왔습니다.
+Flee Rate has returned to normal.
+*/
+ MSG_DSST_AVOIDANCE = 0x4dc,
+/*20061204 to latest
+ 명중률이 향상되었습니다.
+Accuracy Rate (Hit) has increased.
+*/
+ MSG_ENST_HIT = 0x4dd,
+/*20061204 to latest
+ 명중률이 원래대로 돌아왔습니다.
+Accuracy Rate has returned to normal.
+*/
+ MSG_DSST_HIT = 0x4de,
+/*20061204 to latest
+ 크리티컬 확률이 향상되었습니다.
+Critical Attack (Critical) has increased.
+*/
+ MSG_ENST_CRITICALSUCCESSVALUE = 0x4df,
+/*20061204 to latest
+ 크리티컬 확률이 원래대로 돌아왔습니다.
+Critical Attack has returned to normal.
+*/
+ MSG_DSST_CRITICALSUCCESSVALUE = 0x4e0,
+/*20061204 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 경험치가 30분간 1.5배로 증가합니다.
+*/
+ MSG_PLUSEXP = 0x4e1,
+/*20061204 to latest
+ 30분내 사망시 1회에 한해 경험치 감소가 일어나지 않습니다.
+This character will not receive any EXP penalty if killed within the next 30 minutes.
+*/
+ MSG_DDEATHPENALTY = 0x4e2,
+/*20061204 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 기본 아이템의 드롭률이 30분간 2배로 증가합니다.
+Regular item drops from monsters will be doubled for the next 30 minutes.
+*/
+ MSG_RECEIVEITEM = 0x4e3,
+/*20061204 to latest
+ 10분간 맵 내에 출현 가능한 보스 몬스터에 대한 정보를 안내해 드립니다.
+Boss Monster Map Information for the next 10 minutes.
+*/
+ MSG_BOSS_ALARM = 0x4e4,
+/*20061204 to 20061211
+ 정말로 %s아이템을 구매하시겠습니까?, %d포인트가 차감됩니다.
+20061218 to 20070417
+ 정말로 '%s'아이템을 구매하시겠습니까?, %d포인트가 차감됩니다.
+20070423 to 20080603
+ 정말로 '%s'아이템을 구매하시겠습니까?, %d캐시가 차감됩니다.
+20080610 to latest
+ 본 아이템은 청약 철회나 환불 대상에서 제외되는 아이템입니다. 정말로 '%s'아이템을 구매하시겠습니까?, %d캐시가 차감됩니다.
+*/
+ MSG_BUY_RECONFIRM = 0x4e5,
+#endif
+#if PACKETVER >= 20061211
+/*20061211 to 20061211
+'%s'아이템의 사용시간이 %d분 남았습니다.
+20061218 to 20070417
+ 포인트가 부족합니다.
+20070423 to latest
+ 캐시가 부족합니다.
+ You do not have enough Kafra Credit Points.
+*/
+ MSG_BUY_CASH_FAIL_MONEY = 0x4e6,
+/*20061211 to 20061211
+1분 후, '%s'아이템이 인벤토리에서 삭제됩니다.
+20061218 to latest
+ ^ff0000파기일시: %s^000000
+ ^ff0000Expiration Date: %s^000000
+*/
+ MSG_NOTICE_TO_DELETE_TIME = 0x4e7,
+/*20061211 to 20061211
+'%s'아이템이 인벤토리에서 삭제되었습니다.
+20061218 to latest
+ '%s'아이템의 사용시간이 %d분 남았습니다.
+ The '%s' item will disappear in %d minutes.
+20070102 to 20070312
+ '%s'아이템의 사용시간이 %s 남았습니다.
+*/
+ MSG_NOTICE_TO_REMAIN_ITEMUSINGTIME = 0x4e8,
+#endif
+#if PACKETVER >= 20061218
+/*20061218 to latest
+ 1분 후, '%s'아이템이 인벤토리에서 삭제됩니다.
+ '%s' item will be deleted from the Inventory in 1 minute.
+*/
+ MSG_LAST_NOTICE_TO_REMAIN_ITEMUSINGTIME = 0x4e9,
+/*20061218 to latest
+ '%s'아이템이 인벤토리에서 삭제되었습니다.
+ '%s' item has been deleted from the Inventory.
+*/
+ MSG_NOTICE_TO_DELETE_ITEM = 0x4ea,
+#endif
+#if PACKETVER >= 20070102
+/*20070102 to latest
+Input Number
+*/
+ MSG_INPUT_NUMBER = 0x4eb,
+/*20070102 to latest
+%m월 %d일 %H시 %M분
+%m/%d %H:%M
+*/
+ MSG_TIME_TYPE2 = 0x4ec,
+#endif
+#if PACKETVER >= 20070129
+/*20070129 to 20071120
+보스 몬스터 '%s'(이)가 1분 이내에 등장합니다.
+20071127 to latest
+보스 몬스터 '%s'(이)가 잠시 후에 등장합니다.
+Boss Monster '%s' will appear within 1 minute.
+*/
+ MSG_APPEARANCE_TIME_OF_BOSSMON2 = 0x4ed,
+/*20070129 to latest
+용병 스킬목록
+Mercenary Soldier Skill List
+*/
+ MSG_MER_SKILLLIST = 0x4ee,
+/*20070129 to latest
+블랙젬스톤 1개와 백만제니를 소모하는 마법의 실행에 동의합니까?
+Do you agree to cast the magic spell that consumes 1 Black Gemstone and 1,000,000 Zeny?
+*/
+ MSG_DA_EXP_ACCEPT = 0x4ef,
+#endif
+#if PACKETVER >= 20070220
+/*20070220 to latest
+[POINT] 콜렉터랭킹 포인트가 %d 상승해서 %d 포인트가 되었습니다.
+[Point] You have gained %d Collector Rank Points; you now have a total of %d Collector Rank Points.
+*/
+ MSG_COLLECTOR_POINT = 0x4f0,
+/*20070220 to latest
+[콜렉터랭킹] Target Item : %s
+[Collector Rank] Target Item: %s
+*/
+ MSG_COLLECTOR_MISSION = 0x4f1,
+#endif
+#if PACKETVER >= 20070227
+/*20070227 to latest
+용병 사용시간이 만료되었습니다.
+The mercenary contract has expired.
+*/
+ MSG_MER_FINISH = 0x4f2,
+/*20070227 to latest
+용병이 사망하였습니다.
+The mercenary has died.
+*/
+ MSG_MER_DIE = 0x4f3,
+/*20070227 to latest
+용병이 해고되었습니다.
+You have released the mercenary.
+*/
+ MSG_MER_RETIRE = 0x4f4,
+/*20070227 to latest
+용병이 도망갔습니다.
+The mercenary has run away.
+*/
+ MSG_MER_RUNAWAY = 0x4f5,
+#endif
+#if PACKETVER >= 20070319
+/*20070319 to latest
+ '%s'아이템의 사용시간이 %d초 남았습니다.
+ The '%s' item will disappear in %d seconds.
+*/
+ MSG_NOTICE_TO_REMAIN_ITEMUSINGTIME2 = 0x4f6,
+#endif
+#if PACKETVER >= 20070326
+/*20070326 to 20070821
+PC방 이벤트 : 경험치 증가 %d%%, 죽을때 경험치 %d%%, 드롭율 증가 %d%%
+20070828 to latest
+PC방 프리미엄 서비스 : 경험치 %d%% 증가, 사망 페널티 %d%% 감소, 드롭율 %d%% 증가
+IP Bonus: EXP/JEXP %d%%, Death Penalty %d%%, Item Drop %d%%
+*/
+ MSG_PCBANG_EVENT = 0x4f7,
+#endif
+#if PACKETVER >= 20070402
+/*20070402 to latest
+24시간 이후에 시도하세요
+Symbols in Character Names are forbidden.
+*/
+ MSG_LIMIT_CHAR_DELETE = 0x4f8,
+#endif
+#if PACKETVER >= 20070416
+/*20070416 to latest
+용병이 사용자 인공지능으로 동작합니다.
+Mercenary will follow custom AI.
+*/
+ MSG_MER_USERAI_ON = 0x4f9,
+/*20070416 to latest
+용병이 기본 인공지능으로 동작합니다.
+Mercenary will follow basic AI.
+*/
+ MSG_MER_USERAI_OFF = 0x4fa,
+#endif
+#if PACKETVER >= 20070611
+/*20070611 to latest
+ %s님의
+ %s's
+*/
+ MSG_CHARACTER_NAME = 0x4fb,
+/*20070611 to 20070801
+%s님이 %s를 획득하셨습니다.
+20070807 to latest
+%s님이 %s 아이템을 획득하셨습니다.
+%s has acquired %s.
+*/
+ MSG_ITEM_PICKUP_PARTY = 0x4fc,
+/*20070611 to latest
+공개 채팅 메시지 표시
+Public Chat Display
+*/
+ MSG_VIEW_CHAT_MSG = 0x4fd,
+/*20070611 to latest
+귓속말 채팅 메시지 표시
+Whisper Display
+*/
+ MSG_VIEW_WHISPER_MSG = 0x4fe,
+/*20070611 to latest
+파티 채팅 메시지 표시
+Party Chat Display
+*/
+ MSG_VIEW_PARTY_MSG = 0x4ff,
+/*20070611 to latest
+길드 채팅 메시지 표시
+Guild Chat Display
+*/
+ MSG_VIEW_GUILD_MSG = 0x500,
+/*20070611 to latest
+아이템 획득/드롭 메시지 표시
+Item Get/Drop Message Display
+*/
+ MSG_VIEW_GET_ITEM_MSG = 0x501,
+/*20070611 to latest
+장비 장착/해제 메시지 표시
+Equipment On/Off Message Display
+*/
+ MSG_VIEW_EQUIP_MSG = 0x502,
+/*20070611 to latest
+상태이상 메시지 표시
+Abnormal Status Message Display
+*/
+ MSG_VIEW_CHANGE_STATUS_MSG = 0x503,
+/*20070611 to latest
+파티원의 주요 아이템 획득 메시지 표시
+Party Member's Obtained Item Message Display
+*/
+ MSG_VIEW_GET_ITEM_PARTY_MSG = 0x504,
+/*20070611 to latest
+파티원의 상태이상 메시지 표시
+Party Member's Abnormal Status Message Display
+*/
+ MSG_VIEW_CHANGE_STATUS_PARTY_MSG = 0x505,
+/*20070611 to latest
+스킬 사용 실패 메시지 표시
+Skill Failure Message Display
+*/
+ MSG_VIEW_FAIL_SKILL_MSG = 0x506,
+/*20070611 to latest
+파티 설정 메시지 표시
+Party Configuration Message Display
+*/
+ MSG_VIEW_PARTY_SETUP_MSG = 0x507,
+/*20070611 to latest
+장비 손상 메시지 표시
+Damaged Equipment Message Display
+*/
+ MSG_VIEW_DAMAGED_EQUIP_MSG = 0x508,
+/*20070611 to latest
+배틀 메시지 창 표시 정보
+Battle Message Window Display
+*/
+ MSG_BATTLE_CHAT_WND_OPTION = 0x509,
+/*20070611 to latest
+[%s]의 소지 한코인 : %d 한코인
+[%s]'s Han Coin: %d Han Coin
+*/
+ MSG_POINT_SHOP_NHN = 0x50a,
+#endif
+#if PACKETVER >= 20070618
+/*20070618 to latest
+일반 메시지
+Public Log
+*/
+ MSG_ST_CHAT = 0x50b,
+/*20070618 to latest
+배틀 메시지
+Battle Log
+*/
+ MSG_BT_CHAT = 0x50c,
+/*20070618 to latest
+휴대폰 인증.
+Mobile Authentication
+*/
+ MSG_PHONE_CONFIRM = 0x50d,
+/*20070618 to latest
+읽기
+Read
+*/
+ MSG_BOOK_READ = 0x50e,
+/*20070618 to latest
+자동낭독
+Auto Read
+*/
+ MSG_BOOK_AUTOREAD = 0x50f,
+/*20070618 to latest
+책갈피
+Bookmark
+*/
+ MSG_BOOK_KEEP = 0x510,
+/*20070618 to latest
+이전페이지
+Previous
+*/
+ MSG_BOOK_PREV = 0x511,
+/*20070618 to latest
+다음페이지
+Next
+*/
+ MSG_BOOK_NEXT = 0x512,
+/*20070618 to latest
+닫기
+Close
+*/
+ MSG_BOOK_CLOSE = 0x513,
+#endif
+#if PACKETVER >= 20070622
+/*20070622 to latest
+%s 장비가 손상되었습니다.
+%s's Equipment has been damaged.
+*/
+ MSG_DAMAGED_EQUIP = 0x514,
+/*20070622 to latest
+%s님의 %s 손상되었습니다.
+%s's %s was damaged.
+*/
+ MSG_DAMAGED_EQUIP_PARTY = 0x515,
+/*20070622 to latest
+무기가
+Weapon
+*/
+ MSG_DAMAGED_WEAPON = 0x516,
+/*20070622 to latest
+갑옷이
+Armor
+*/
+ MSG_DAMAGED_BODY = 0x517,
+/*20070622 to latest
+스킬레벨이 부족합니다. 파티가입 불능
+Insufficient Skill Level for joining a Party
+*/
+ MSG_NOT_ENOUGH_SKILLLEVE5_2 = 0x518,
+#endif
+#if PACKETVER >= 20070628
+/*20070628 to latest
+[%s]의 무료 캐시 : %d 캐시
+[%s]'s Free Cash: %d Cash
+*/
+ MSG_POINT_SHOP2 = 0x519,
+/*20070628 to latest
+무료 캐시 사용 :
+Use Free Cash:
+*/
+ MSG_USE_FREE_POINT = 0x51a,
+/*20070628 to latest
+캐시
+Cash
+*/
+ MSG_CASH = 0x51b,
+#endif
+#if PACKETVER >= 20070710
+/*20070710 to latest
+http://payment.ro.hangame.com/index.asp
+*/
+ MSG_SETTLE_WEB_URL_HANGAME = 0x51c,
+/*20070710 to 20090603
+그라비티 회원 정보동의를 하셔야 사용할수있습니다.
+20090610 to latest
+그라비티 회원 정보동의를 하셔야 사용할 수 있습니다.
+You need to accept the Privacy Policy from Gravity in order to use the service.
+*/
+ MSG_BAN_GRAVITY_MEM_AGREE = 0x51d,
+/*20070710 to latest
+이용약관에 동의를 하셔야 본 서비스를 이용하실 수 있습니다.
+You need to accept the User Agreement in order to use the service.
+*/
+ MSG_BAN_GAME_MEM_AGREE = 0x51e,
+/*20070710 to 20080520
+존재하지 않는 한게임 ID이거나 잘못된 ID입니다.
+20080527 to latest
+입력하신 아이디와 비밀번호가 등록된 정보와 일치하지 않습니다.
+Incorrect or nonexistent ID.
+*/
+ MSG_BAN_HAN_VALID = 0x51f,
+#endif
+#if PACKETVER >= 20070711
+/*20070711 to 20080603
+ 정말로 '%s'아이템을 구매하시겠습니까?, 일반 %d캐시, 무료 %d캐시가 차감됩니다.
+20080610 to latest
+ 본 아이템은 청약 철회나 환불 대상에서 제외되는 아이템입니다. 정말로 '%s'아이템을 구매하시겠습니까?, 일반 %d캐시, 무료 %d캐시가 차감됩니다.
+*/
+ MSG_BUY_RECONFIRM2 = 0x520,
+#endif
+#if PACKETVER >= 20070718
+/*20070718 to latest
+%d시간이 경과하였습니다.
+%d hour(s) has passed.
+*/
+ MSG_NOTIFY_PLAYTIME1 = 0x521,
+/*20070718 to latest
+%d시간 %d분이 경과하였습니다.
+%d hour(s) %d minute(s) has passed.
+*/
+ MSG_NOTIFY_PLAYTIME2 = 0x522,
+/*20070718 to latest
+게임을 종료하세요, 경험치 및 모든게 50%로 조정됩니다
+Please stop playing the game, and take a break. Exp and other features will be reduced to 50%.
+*/
+ MSG_WARNING_MSG1 = 0x523,
+/*20070718 to latest
+불건전 시간대에 접어들었습니다. 게임을 종료하세요, 경험치 및 모든게 0%로 조정됩니다
+Please stop playing the game since you'll need to rest. Exp and other features will be fixed to 0%.
+*/
+ MSG_WARNING_MSG2 = 0x524,
+#endif
+#if PACKETVER >= 20070724
+/*20070724 to latest
+퀘스트 목록
+Quest List
+*/
+ MSG_QUESTWIN = 0x525,
+#endif
+#if PACKETVER >= 20070807
+/*20070807 to latest
+RO SHOP
+RO Shop
+*/
+ MSG_RO_SHOP = 0x526,
+#endif
+#if PACKETVER >= 20070821
+/*20070821 to 20070904
+메모리얼던젼 '%s'이 예약되었습니다.
+20070911 to latest
+메모리얼던젼 '%s'의 예약이 알수없는 이유로 실패 하였습니다.
+Memorial Dungeon, '%s' is booked.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_ERROR_UNKNOWN = 0x527,
+/*20070821 to 20070904
+메모리얼던젼 '%s' 예약이 실패했습니다.
+20070911 to latest
+메모리얼던젼 '%s'의 예약이 예약중복으로 실패 하였습니다.
+Failed to book Memorial Dungeon, '%s'.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_ERROR_DUPLICATE = 0x528,
+/*20070821 to 20070904
+메모리얼던젼 '%s' 이미 예약중입니다.
+20070911 to latest
+메모리얼던젼 '%s'의 예약이 권한문제로 실패 하였습니다.
+Memorial Dungeon, '%s' is already booked.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_ERROR_RIGHT = 0x529,
+/*20070821 to 20070904
+메모리얼던젼 '%s'가 생성 되었습니다
+ 5분내에 입장하세요.
+20070911 to latest
+메모리얼던젼 '%s'의 예약이 중복생성요청으로 실패하였습니다.
+Memorial Dungeon, '%s' is created.
+ Please enter in 5 minutes.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_ERROR_EXIST = 0x52a,
+/*20070821 to 20070904
+메모리얼던젼 '%s' 생성에 실패했습니다.
+ 나중에 다시 시도하세요.
+20070911 to latest
+메모리얼던젼 '%s'의 예약취소가 실패 하였습니다.
+Failed to create Memorial Dungeon, '%s'.
+ Please try again.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_CANCEL_FAIL = 0x52b,
+/*20070821 to latest
+상대방이 파티 초대 거부 상태입니다.
+The character blocked the party invitation.
+*/
+ MSG_JOINMSG_REFUSE = 0x52c,
+#endif
+#if PACKETVER >= 20070828
+/*20070828 to latest
+모든 파티 초대를 거부합니다.
+Block all party invitations.
+*/
+ MSG_INVITE_PARTY_REFUSE = 0x52d,
+/*20070828 to latest
+모든 파티 초대를 수락합니다.
+Allow all party invitations.
+*/
+ MSG_INVITE_PARTY_ACCEPT = 0x52e,
+#endif
+#if PACKETVER >= 20070904
+/*20070904 to latest
+착용하시면 이 아이템은 영구 귀속됩니다. 착용하시겠습니까?
+This item will be permanently bound to this character once it is equipped. Do you really want to equip this item?
+*/
+ MSG_YOURITEM_EQUIP = 0x52f,
+/*20070904 to latest
+%s 아이템이 귀속되었습니다.
+%s is now permanently bound to this character.
+*/
+ MSG_YOURITEM_EQUIPED = 0x530,
+/*20070904 to latest
+캐시가 부족합니다. 무료 캐시 포인트를 입력해 주시기 바랍니다.
+You do not have enough Kafra Credit Points. Please enter whether you have free credit points.
+*/
+ MSG_BUY_TO_FREE_POINT = 0x531,
+/*20070904 to latest
+파티 가입요청
+Request to Join Party
+*/
+ MSG_REQ_JOIN_PARTY3 = 0x532,
+#endif
+#if PACKETVER >= 20070912
+/*20070912 to latest
+공성 정보 메시지 표시
+Display WOE Info
+*/
+ MSG_VIEW_SIEGE_INFO_MSG = 0x533,
+/*20070912 to latest
+메모리얼던젼 '%s'의 예약이 취소 되었습니다.
+Memorial Dungeon %s's reservation has been canceled.
+*/
+ MSG_MDUNGEON_SUBSCRIPTION_CANCEL_SUCCESS = 0x534,
+/*20070912 to latest
+메모리얼던젼 '%s' 생성에 실패하였습니다. 다시 시도 하세요.
+Failed to create Memorial Dungeon %s. Please try again.
+*/
+ MSG_MDUNGEON_CREATE_FAIL = 0x535,
+/*20070912 to latest
+이 장소에서는 사용할 수 없는 스킬입니다.
+This skill cannot be used within this area.
+*/
+ MSG_IMPOSSIBLE_SKILL_AREA = 0x536,
+/*20070912 to latest
+이 장소에서는 사용할 수 없는 아이템입니다.
+This item cannot be used within this area.
+*/
+ MSG_IMPOSSIBLE_USEITEM_AREA = 0x537,
+#endif
+#if PACKETVER >= 20070918
+/*20070918 to latest
+메모리얼 던전
+Memorial Dungeon
+*/
+ MSG_MEMORIAL_DUN = 0x538,
+/*20070918 to latest
+%s 대기중
+%s in Standby
+*/
+ MSG_MEMORIAL_DUN_WAITING = 0x539,
+/*20070918 to latest
+%s 입장 가능
+%s Available
+*/
+ MSG_MEMORIAL_DUN_READY = 0x53a,
+/*20070918 to 20071120
+%s 내부
+20071127 to latest
+%s 진행중
+%s in Progress
+*/
+ MSG_MEMORIAL_DUN_IN = 0x53b,
+/*20070918 to latest
+시간 안에 입장하지 않아 메모리얼 던전이 사라졌습니다.
+No one entered the Memorial Dungeon within its duration; the dungeon has disappeared.
+*/
+ MSG_MEMORIAL_DUN_OUT1 = 0x53c,
+/*20070918 to latest
+이용하시려면 이용 신청을 처음부터 다시 해주시기 바랍니다.
+Please apply for dungeon entry again to play in this dungeon.
+*/
+ MSG_MEMORIAL_DUN_OUT2 = 0x53d,
+/*20070918 to latest
+대기 순위 : ^ff0000%d^000000
+Your Standby Priority: ^ff0000%d^000000
+*/
+ MSG_MEMORIAL_DUN_PRIORITY = 0x53e,
+/*20070918 to latest
+^ff0000%s^000000 내에 입장하지 않을 경우 신청하신 던전이 삭제 됩니다.
+The requested dungeon will be removed if you do not enter within ^ff0000%s^000000.
+*/
+ MSG_MEMORIAL_DUN_NOTIFY = 0x53f,
+/*20070918 to latest
+던전 미션 제한 시간 :
+Dungeon Mission Time Limit:
+*/
+ MSG_MEMORIAL_DUN_NOTIFY2 = 0x540,
+/*20070918 to latest
+메모리얼 던전 예약이 취소되었습니다.
+The Memorial Dungeon reservation has been canceled.
+*/
+ MSG_MEMORIAL_DUN_CANCEL = 0x541,
+/*20070918 to latest
+메모리얼 던전이 유지 시간 제한에 의해 파괴되었습니다.
+The Memorial Dungeon duration expired; it has been destroyed.
+*/
+ MSG_MEMORIAL_DUN_LIVE_TIME_OUT = 0x542,
+/*20070918 to latest
+메모리얼 던전이 입장 시간 제한에 의해 파괴되었습니다.
+The Memorial Dungeon's entry time limit expired; it has been destroyed.
+*/
+ MSG_MEMORIAL_DUN_ENTER_TIME_OUT = 0x543,
+/*20070918 to latest
+메모리얼 던전이 삭제 되었습니다.
+The Memorial Dungeon has been removed.
+*/
+ MSG_MEMORIAL_DUN_DESTROY_REQUEST = 0x544,
+/*20070918 to latest
+메모리얼 던전에 시스템 오류가 발생하였습니다. 정상적인 게임 진행을 위해 재접속을 해주십시오.
+A system error has occurred in the Memorial Dungeon. Please relog in to the game to continue playing.
+*/
+ MSG_MEMORIAL_DUN_ERROR = 0x545,
+/*20070918 to latest
+사용할 수 없는 슬롯입니다.
+This slot is not usable.
+*/
+ MSG_FR_INVALID_SLOT = 0x546,
+/*20070918 to latest
+Base Level이 15를 넘었습니다.
+Your Base Level is over 15.
+*/
+ MSG_FR_BASELVL = 0x547,
+/*20070918 to latest
+Job Level이 15를 넘었습니다.
+Your Job Level is over 15.
+*/
+ MSG_FR_INVALID_JOBLV = 0x548,
+/*20070918 to latest
+해당슬롯 캐릭터에 직업군의 상인이므로 게임을 할 수 없습니다.
+You cannot play the Merchant class character in this slot.
+*/
+ MSG_FR_JOB = 0x549,
+/*20070918 to latest
+추후 사용예정
+Not Yet Implemented
+*/
+ MSG_FR_MAP = 0x54a,
+/*20070918 to latest
+만들수 있는 케릭터 슬롯이 아닙니다.
+You are not eligible to open the Character Slot.
+*/
+ MSG_FR_ERR_MKCHAR_INVALID_SLOT = 0x54b,
+/*20070918 to latest
+삭제할 수 없는 케릭터 입니다.
+This character cannot be deleted.
+*/
+ MSG_FR_ERR_DELCHAR_INVALID_SLOT = 0x54c,
+/*20070918 to latest
+상대방의 장비창이 공개되어 있지 않습니다.
+This character's equipment information is not open to the public.
+*/
+ MSG_OPEN_EQUIPEDITEM_REFUSED = 0x54d,
+/*20070918 to latest
+장비창을 공개하지 않습니다.
+Equipment information not open to the public.
+*/
+ MSG_OPEN_EQUIPEDITEM_REFUSE = 0x54e,
+/*20070918 to latest
+장비창을 공개합니다.
+Equipment information open to the public.
+*/
+ MSG_OPEN_EQUIPEDITEM_ACCEPT = 0x54f,
+/*20070918 to latest
+(%s)님 장비창 보기
+Check %s's Equipment Info
+*/
+ MSG_REQ_VIEW_OTHERUSER = 0x550,
+/*20070918 to latest
+%s의 장착아이템
+'%s's Equipment
+*/
+ MSG_OTHERUSER_EQUIPED_ITEM = 0x551,
+/*20070918 to latest
+장비창 공개
+Show Equip
+*/
+ MSG_OPEN_EQUIPED_ITEM = 0x552,
+#endif
+#if PACKETVER >= 20071002
+/*20071002 to latest
+프리미엄 서비스를 이용해 주시기 바랍니다.
+This service is only available for premium users.
+*/
+ MSG_NEED_PREMIUM_SERVICE = 0x553,
+/*20071002 to latest
+무료 사용자는 최대 50000제니까지 소유할 수 있습니다.
+Free Trial users can only hold up to 50,000 zeny.
+*/
+ MSG_FR_INVALID_MONEY = 0x554,
+#endif
+#if PACKETVER >= 20071009
+/*20071009 to latest
+전장채팅 상태가 되었습니다.
+Battlefield Chat has been activated.
+*/
+ MSG_BATTLECHAT_ON = 0x555,
+/*20071009 to latest
+전장채팅 상태가 해제되었습니다.
+Battlefield Chat has been deactivated.
+*/
+ MSG_BATTLECHAT_OFF = 0x556,
+#endif
+#if PACKETVER >= 20071017
+/*20071017 to latest
+용병정보 - 몬스터타입
+Mercenary Info - Monster Type
+*/
+ MSG_MER_INFO_TYPE_MONSTER = 0x557,
+#endif
+#if PACKETVER >= 20071106
+/*20071106 to latest
+전체 맵 보기
+World Map
+*/
+ MSG_RO_MAP = 0x558,
+#endif
+#if PACKETVER >= 20071127
+/*20071127 to latest
+메모리얼던젼이 CLOSE 상태입니다.
+The Memorial Dungeon is now closed.
+*/
+ MSG_MEMORIAL_DUN_CLOSE = 0x559,
+#endif
+#if PACKETVER >= 20071204
+/*20071204 to latest
+^ff0000^ff0000용병을 삭제합니다.^000000^000000 삭제하실 경우 지금까지 키운 내역이 모두 삭제됩니다. 계속하시겠습니까?
+^ff0000Deleting a Mercenary Soldier^000000 will also delete his growth history. Do you really want to proceed with the deletion?
+*/
+ MSG_DELETE_MER = 0x55a,
+#endif
+#if PACKETVER >= 20071211
+/*20071211 to latest
+메모리얼던젼이 OPEN 상태입니다.
+The Memorial Dungeon is now open.
+*/
+ MSG_MEMORIAL_DUN_OPEN = 0x55b,
+#endif
+#if PACKETVER >= 20080108
+/*20080108 to latest
+위의 계정은 아직 통신 안전 키에 연결되지 않았습니다. 먼저 안전 키를 해제하신 뒤 게임에 접속해 주십시오.
+This account has not been confirmed by connecting to the safe communication key. Please connect to the key first, and then log into the game.
+*/
+ MSG_PHONE_BLOCK = 0x55c,
+/*20080108 to latest
+한 아이피로 접속 가능한 유저수를 초과하였습니다.
+The number of accounts connected to this IP has exceeded the limit.
+*/
+ MSG_BAN_PC_IP_LIMIT_ACCESS = 0x55d,
+#endif
+#if PACKETVER >= 20080219
+/*20080219 to latest
+새로운 퀘스트를 받았습니다
+You have received a new quest.
+*/
+ MSG_QUESTGET = 0x55e,
+#endif
+#if PACKETVER >= 20080401
+/*20080401 to latest
+^777777습득조건 :
+^CC3399Requirement:
+*/
+ MSG_FINDTEXT_TO_SKILLDES = 0x55f,
+/*20080401 to latest
+스킬 설명 보기
+View Skill Info
+*/
+ MSG_VIEW_SKILL_DESCRIPT = 0x560,
+#endif
+#if PACKETVER >= 20080408
+/*20080408 to latest
+사용된 스킬 포인트는 다시 되돌릴 수 없습니다. 적용하시겠습니까?
+Once used, skill points cannot be re-allocated. Would you like to use the skill points?
+*/
+ MSG_APPLY_SKILL_UP = 0x561,
+/*20080408 to latest
+노비스·1차직업
+1st
+*/
+ MSG_1TABNAME_SKILLWND = 0x562,
+/*20080408 to latest
+2차·전승직업
+2nd
+*/
+ MSG_2TABNAME_SKILLWND = 0x563,
+/*20080408 to 20080520
+불법프로그램을 사용하였거나 혹은 해킹을 시도한 계정입니다. 블럭시간 : %s
+20080527 to latest
+불법프로그램을 사용하였거나 혹은 해킹을 시도한 계정입니다. 블럭종료시간 : %s
+This account has been used for illegal program or hacking program. Block Time: %s
+20081217 to 20081218
+불법프로그램을 사용하였거나 해킹을 시도한 계정이거나 그라비티 이전을 신청한 한게임 계정입니다. 블럭종료시간 : %s
+*/
+ MSG_RE17 = 0x564,
+/*20080408 to latest
+불법프로그램이 실행, 바이러스 감염, 또는 해킹툴이 설치되어 있을 가능성이 있습니다. 정상 클라이언트를 실행하여 주시기 바랍니다. 함께 만드는 밝은 라그나로크가 될 수 있도록 노력하고 있습니다.
+The possibility of exposure to illegal program, PC virus infection or Hacking Tool has been detected. Please execute licensed client. Our team is trying to make a best environment for Ro players.
+*/
+ MSG_RE18 = 0x565,
+#endif
+#if PACKETVER >= 20080415
+/*20080415 to latest
+당신은 지금 건강한 게임 시간 대에 있습니다, 즐거운 게임이 되시길 바랍니다
+You are currently playing in the best game environment. Please enjoy the Ragnarok.
+*/
+ MSG_WARNING_MSG3 = 0x566,
+/*20080415 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 Job경험치가 30분간 1.5배로 증가합니다.
+*/
+ MSG_PLUSONLYJOBEXP = 0x567,
+/*20080415 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 경험치가 30분간 1.25배로 증가합니다.
+*/
+ MSG_PLUSEXP14532 = 0x568,
+/*20080415 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 경험치가 30분간 2배로 증가합니다.
+EXP points from hunting monsters are increased by 100%% for 30 minutes.
+*/
+ MSG_PLUSEXP14533 = 0x569,
+/*20080415 to latest
+ 몬스터 사냥을 통해 얻을 수 있는 경험치가 60분간 1.5배로 증가합니다.
+EXP points from hunting monsters are increased by 50% for 60 minutes.
+*/
+ MSG_PLUSEXP12312 = 0x56a,
+#endif
+#if PACKETVER >= 20080527
+/*20080527 to latest
+이 맵에서는 파티를 결성할 수 없습니다.
+Unable to organize a party in this map.
+*/
+ MSG_NOPARTY = 0x56b,
+/*20080527 to latest
+(%s)님은 파티에 참여할 수 없는 맵에 있습니다.
+(%s) are currently in restricted map to join a party.
+*/
+ MSG_NOPARTY2 = 0x56c,
+/*20080527 to 20080603
+간편아이템샵.
+20080610 to latest
+간편아이템샵
+Simple Item Shop
+*/
+ MSG_SIMPLE_CASH_SHOP = 0x56d,
+/*20080527 to latest
+소지 한코인 : %d 한코인
+Han Coin: %d Han Coin
+*/
+ MSG_SIMPLE_POINT_SHOP_NHN = 0x56e,
+/*20080527 to latest
+소지 캐시 : %d 캐시
+RoK Point: %d RoK Point
+*/
+ MSG_SIMPLE_POINT_SHOP = 0x56f,
+/*20080527 to latest
+무료 캐시 : %d 캐시
+Free Cash: %d Cash
+*/
+ MSG_SIMPLE_POINT_SHOP2 = 0x570,
+#endif
+#if PACKETVER >= 20080715
+/*20080715 to latest
+본서버 유저는 프리서버에 접속할수 없습니다.
+An user of this server cannot connect to free server
+*/
+ MSG_MAIN_USER_CANONT_LOGIN_FREE_SERVER = 0x571,
+/*20080715 to latest
+유효기간이 지난 비밀번호 입니다. 다시 로그인하여주십시오.
+Your password has expired. Please log in again
+*/
+ MSG_INVALID_ONETIMELIMIT = 0x572,
+#endif
+#if PACKETVER >= 20080903
+/*20080903 to latest
+3차직업
+3rd
+*/
+ MSG_3TABNAME_SKILLWND = 0x573,
+#endif
+#if PACKETVER >= 20080917
+/*20080917 to latest
+이 스킬을 사용할 수 없는 대상입니다.
+This skill can't be used on that target.
+*/
+ MSG_USESKILL_FAIL_TOTARGET = 0x574,
+/*20080917 to latest
+안실라 소유 개수가 초과하여 스킬을 사용할 수 없습니다.
+You can't use skill because you have exceeded the number Ancilla possession limit
+*/
+ MSG_USESKILL_FAIL_ANCILLA_NUMOVER = 0x575,
+/*20080917 to latest
+성수가 필요합니다.
+Unable to use the skill to exceed the number of Ancilla.
+*/
+ MSG_USESKILL_FAIL_HOLYWATER = 0x576,
+/*20080917 to latest
+안실라가 필요합니다.
+Holy water is required.
+*/
+ MSG_USESKILL_FAIL_ANCILLA = 0x577,
+/*20080917 to latest
+일정거리 내에 중복될 수 없습니다.
+Ancilla is required.
+*/
+ MSG_USESKILL_FAIL_DUPLICATE_RANGEIN = 0x578,
+/*20080917 to latest
+이 스킬을 사용하기 위해서는 다른 스킬이 필요합니다.
+Cannot be duplicated within a certain distance.
+*/
+ MSG_USESKILL_FAIL_NEED_OTHER_SKILL = 0x579,
+#endif
+#if PACKETVER >= 20080924
+/*20080924 to latest
+이 맵에서는 채팅을 할 수 없습니다.
+This skill requires other skills to be used.
+*/
+ MSG_NO_CHATTING = 0x57a,
+#endif
+#if PACKETVER >= 20081001
+/*20081001 to latest
+3시간이 지났습니다.
+Chat is not allowed in this map
+*/
+ MSG_VET_3HOUR = 0x57b,
+/*20081001 to latest
+5시간이 지났습니다.
+3 hours have passed.
+*/
+ MSG_VET_5HOUR = 0x57c,
+#endif
+#if PACKETVER >= 20081008
+/*20081008 to latest
+게임가드 초기화 에러 또는 구버전의 게임가드 파일입니다. 게임가드 셋업파일을 다시 설치하고 게임을 실행해 보시기 바랍니다.
+5 hours have passed.
+*/
+ MSG_NPGAMEMON_ERROR_GAMEGUARD = 0x57d,
+/*20081008 to latest
+ini 파일이 없거나 변조되었습니다. 게임가드 셋업파일을 설치하면 해결 할 수 있습니다.
+Game guard initialization error or previous version game guard file is installed. Please re-install the setup file and try again
+*/
+ MSG_NPGMUP_ERROR_PARAM = 0x57e,
+/*20081008 to latest
+게임가드와 충돌 프로그램이 발견되었습니다.
+Either ini file is missing or altered. Install game guard setup file to fix the problem
+*/
+ MSG_NPGG_ERROR_COLLISION = 0x57f,
+#endif
+#if PACKETVER >= 20081112
+/*20081112 to latest
+잘못된 클라이언트입니다. 정상적인 클라이언트를 실행하여 주십시요.
+There is a program found that conflicts with game guard
+*/
+ MSG_PROOF_ERROR = 0x580,
+#endif
+#if PACKETVER >= 20081203
+/*20081203 to latest
+모바일 인증을 받아주시기 바랍니다.
+Incorrect client. Please run a normal client
+*/
+ MSG_MOBILE_LOCKSERVER = 0x581,
+#endif
+#if PACKETVER >= 20081210
+/*20081210 to latest
+모바일 인증에 실패하였습니다.
+Thank you to accept mobile authentication.
+*/
+ MSG_FAILED_MOBILE_LOCKSERVER = 0x582,
+#endif
+#if PACKETVER >= 20081217
+/*20081217 to latest
+이스킬은 혼자서 사용할수 없습니다.
+This skill can't be used alone
+*/
+ MSG_USESKILL_FAIL_NEED_HELPER = 0x583,
+/*20081217 to latest
+이스킬은 특정방향으로만 사용할수 있습니다.
+This skill can be used to certain direction only
+*/
+ MSG_USESKILL_FAIL_INVALID_DIR = 0x584,
+/*20081217 to latest
+더이상 소환할수 없습니다.
+Cannot summon spheres anymore.
+*/
+ MSG_USESKILL_FAIL_SUMMON = 0x585,
+/*20081217 to latest
+소환된 구체가 존재하지 않습니다.
+*/
+ MSG_USESKILL_FAIL_SUMMON_NONE = 0x586,
+/*20081217 to latest
+사용가능한 모방스킬이 존재하지 않습니다.
+There is no imitation skills available.
+*/
+ MSG_USESKILL_FAIL_IMITATION_SKILL_NONE = 0x587,
+/*20081217 to latest
+이 스킬은 중복해서 사용할수 없습니다.
+You can't reuse this skill
+*/
+ MSG_USESKILL_FAIL_DUPLICATE = 0x588,
+/*20081217 to latest
+스킬을 사용할수 없는 상태입니다.
+Skill can't be used in this state
+*/
+ MSG_USESKILL_FAIL_CONDITION = 0x589,
+/*20081217 to latest
+아이템별 최대 소지량을 초과하여 가질 수 없습니다.
+You have exceeded the maximum amount of possession of another item.
+*/
+ MSG_PICKUP_MAXCOUNT_LIMIT = 0x58a,
+#endif
+#if PACKETVER >= 20090204
+/*20090204 to latest
+관리자 권한이 없습니다. 프로그램 최초 실행은 관리자 권한으로 실행하셔야 합니다.
+No administrative privileges. Must first run the program with administrator privileges.
+*/
+ MSG_NPK_ERROR_NOTADMIN = 0x58b,
+/*20090204 to latest
+nProtect KeyCrypt 드라이버 버전이 맞지 않습니다. 시스템 재 부팅 후에 새로 실행 시켜 주십시오.
+nProtect KeyCrypt not the same. Please restart the program and the computer first.
+*/
+ MSG_NPK_ERROR_DRIVERVERSION = 0x58c,
+/*20090204 to latest
+WindowXP 호환성 모드를 사용하고 계십니다. 현재 프로그램에서 호환성 모드를 제거하였습니다. 프로그램을 새로 시작해 주십시오.
+Currently wearing WindowXP Compatibility Mode. The program now removes Compatibility Mode. Please restart the program.
+*/
+ MSG_NPK_ERROR_VERIFYVERSION = 0x58d,
+/*20090204 to latest
+PS/2 키로거가 존재합니다.
+PS/2 keyloggers exist.
+*/
+ MSG_DETECT_PS2KEYLOGGER = 0x58e,
+/*20090204 to latest
+USB 키보드 드라이버 해킹 시도가 탐지되었습니다.
+USB Keylogging attempt was detected.
+*/
+ MSG_DETECT_USBKEYLOGGER = 0x58f,
+/*20090204 to latest
+HHD 모니터링 툴이 탐지되었습니다.
+HHD monitoring tool has been detected.
+*/
+ MSG_DETECT_HHDUSBH = 0x590,
+/*20090204 to latest
+페인트붓이 필요합니다.
+Paintbrush is required.
+*/
+ MSG_USESKILL_FAIL_PAINTBRUSH = 0x591,
+/*20090204 to 20090401
+그림물감이 필요합니다.
+20090408 to latest
+서페이스페인트가 필요합니다.
+Paint is required.
+*/
+ MSG_USESKILL_FAIL_II_SURFACE_PAINTS = 0x592,
+/*20090204 to latest
+지정한 위치에 스킬을 사용할수 없습니다.
+Use the skills that are not at the specified location.
+*/
+ MSG_USESKILL_FAIL_POS = 0x593,
+/*20090204 to latest
+도우미의 SP가 부족합니다.
+Not enough SP.
+*/
+ MSG_USESKILL_FAIL_HELPER_SP_INSUFFICIENT = 0x594,
+#endif
+#if PACKETVER >= 20090211
+/*20090211 to 20090218
+생성 가능 캐릭터 수는 9개입니다!!(임시)
+20090225 to latest
+캐릭터 선택창의 캐릭터가 %d개를 초과하면 게임에 접속할 수 없습니다. 불필요한 캐릭터를 삭제해주십시오.
+Character %d is character selection window cannot connect to the game that exceeds the total. Please remove unwanted characters.
+*/
+ MSG_BAN_OVER_CHARACTER_LIST = 0x595,
+#endif
+#if PACKETVER >= 20090225
+/*20090225 to latest
+목캔디가 필요합니다.
+Throat Lozenge is required.
+*/
+ MSG_USESKILL_FAIL_II_NECK_CANDY = 0x596,
+/*20090225 to latest
+안타까운눈물이 필요합니다.
+Painful Tears is required.
+*/
+ MSG_USESKILL_FAIL_II_MISERABLE_TEAR = 0x597,
+/*20090225 to latest
+목 보호 캔디가 필요합니다.
+Throat Lozenge is required.
+*/
+ MSG_USESKILL_FAIL_II_PROTECT_NECK_CANDY = 0x598,
+/*20090225 to latest
+웨폰 블로킹의 연계로만 사용가능합니다.
+Cooperation is only available with Weapon Blocking.
+*/
+ MSG_USESKILL_FAIL_GC_WEAPONBLOCKING = 0x599,
+/*20090225 to latest
+길로틴크로스의 독을 바른 무기가 필요합니다.
+Poisoned weapons is required.
+*/
+ MSG_USESKILL_FAIL_GC_POISONINGWEAPON = 0x59a,
+#endif
+#if PACKETVER >= 20090304
+/*20090304 to latest
+마도기어 탑승시에만 사용가능합니다.
+Item can only be used when Mado Gear is mounted.
+*/
+ MSG_USESKILL_FAIL_MADOGEAR = 0x59b,
+/*20090304 to latest
+발칸블릿이 필요합니다.
+Vulcan Bullet is required.
+*/
+ MSG_USESKILL_FAIL_II_VULCANBULLET = 0x59c,
+/*20090304 to latest
+마도기어 연료가 필요합니다.
+Mado Gear Fuel is required.
+*/
+ MSG_USESKILL_FAIL_II_FUELGAS = 0x59d,
+/*20090304 to latest
+액체냉각탄이 필요합니다.
+Liquid Cold Bullet is required.
+*/
+ MSG_USESKILL_FAIL_II_COLDSLOWERBULLET = 0x59e,
+/*20090304 to latest
+캐논볼을 장전 하세요.
+Please load a Cannon Ball.
+*/
+ MSG_USESKILL_FAIL_CANONBALL = 0x59f,
+/*20090304 to latest
+미도기어 가속장치를 착용하세요.
+Please equipped with a Mado Gear Accelerator.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_ACCELERATION = 0x5a0,
+/*20090304 to latest
+호버링부스터를 착용하세요.
+Please equipped with a Hovering Booster.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_HOVERING_BOOSTER = 0x5a1,
+/*20090304 to latest
+[톡신] 독 효과가 무기에 적용되었습니다.
+[Toxin] Poison effect was applied to the weapon.
+*/
+ MSG_TOXIN = 0x5a2,
+/*20090304 to latest
+[패럴라이즈] 독 효과가 무기에 적용되었습니다.
+[Paralysis] Poison effect was applied to the weapon.
+*/
+ MSG_PARALYZE = 0x5a3,
+/*20090304 to latest
+[베놈블리드] 독 효과가 무기에 적용되었습니다.
+[Fatigue] Poison effect was applied to the weapon.
+*/
+ MSG_VENOMBLEED = 0x5a4,
+/*20090304 to latest
+[매직 머쉬룸] 독 효과가 무기에 적용되었습니다.
+[Laughing] Poison effect was applied to the weapon.
+*/
+ MSG_MAGICMUSHROOM = 0x5a5,
+/*20090304 to latest
+[데스 허트] 독 효과가 무기에 적용되었습니다.
+[Disheart] Poison effect was applied to the weapon.
+*/
+ MSG_DEATHHURT = 0x5a6,
+/*20090304 to latest
+[파이렉시아] 독 효과가 무기에 적용되었습니다.
+[Pyrexia] Poison effect was applied to the weapon.
+*/
+ MSG_PHYREXIA = 0x5a7,
+/*20090304 to latest
+[오블리비언 커즈] 독 효과가 무기에 적용되었습니다.
+[Oblivion] Poison effect was applied to the weapon.
+*/
+ MSG_OBLIANCURSE = 0x5a8,
+/*20090304 to latest
+[리치 엔드] 독 효과가 무기에 적용되었습니다.
+[Leech] Poison effect was applied to the weapon.
+*/
+ MSG_RICHEND = 0x5a9,
+#endif
+#if PACKETVER >= 20090311
+/*20090311 to latest
+호버링상태에서만 사용가능합니다.
+Can only be used in Hovering state.
+*/
+ MSG_USESKILL_FAIL_MADOGEAR_HOVERING = 0x5aa,
+/*20090311 to latest
+자폭장치를 장착하세요.
+Please equip a Self-Destruct Mechanism.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_SELFDESTRUCTION_DEVICE = 0x5ab,
+/*20090311 to latest
+셰이프쉬프터를 장착하세요.
+Please equip a Shape Shift.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_SHAPESHIFTER = 0x5ac,
+/*20090311 to latest
+길로틴독이 필요합니다.
+Guillotine Cross Poison is required.
+*/
+ MSG_USESKILL_FAIL_GUILLONTINE_POISON = 0x5ad,
+/*20090311 to latest
+냉각장치를 장착하세요.
+Please equipped with a Cooling System.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_COOLING_DEVICE = 0x5ae,
+/*20090311 to latest
+자기장필드생성기를 착용하세요.
+Please equipped with a Magnetic Field Generator.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_MAGNETICFIELD_GENERATOR = 0x5af,
+/*20090311 to latest
+베리어생성기를 착용하세요.
+Please equipped with a Barrier Generator.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_BARRIER_GENERATOR = 0x5b0,
+/*20090311 to latest
+광학미채발생기를 착용하세요.
+Please equipped with a Optical Camouflage Generator.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_OPTICALCAMOUFLAGE_GENERATOR = 0x5b1,
+/*20090311 to latest
+리페어키트를 착용하세요.
+Please equipped with a Repair Kit.
+*/
+ MSG_USESKILL_FAIL_II_MADOGEAR_REPAIRKIT = 0x5b2,
+/*20090311 to latest
+몽키 스패너가 필요합니다.
+Monkey Wrench is required.
+*/
+ MSG_USESKILL_FAIL_II_MONKEY_SPANNER = 0x5b3,
+#endif
+#if PACKETVER >= 20090318
+/*20090318 to latest
+[%s] 스킬을 시전 할 수 없습니다.
+[%s] Cannot use the skills due to cooldown delay.
+*/
+ MSG_SKILLINTERVAL2 = 0x5b4,
+/*20090318 to latest
+%d레벨 이상은 삭제가 불가능합니다.
+Deletion is impossible for over level %d
+*/
+ MSG_LEMIT_DELETE_LEVEL = 0x5b5,
+/*20090318 to latest
+마도기어 탑승시에는 사용할수 없습니다.
+*/
+ MSG_USESKILL_FAIL_MADOGEAR_RIDE = 0x5b6,
+#endif
+#if PACKETVER >= 20090320
+/*20090320 to latest
+드래곤 내리기
+Dismount Dragon
+*/
+ MSG_DRAGONOFF = 0x5b7,
+/*20090320 to latest
+마도기어 내리기
+Dismount Magic Gear
+*/
+ MSG_MADOOFF = 0x5b8,
+#endif
+#if PACKETVER >= 20090330
+/*20090330 to latest
+소비
+I
+*/
+ MSG_STORE_TABNAME_0 = 0x5b9,
+/*20090330 to latest
+캐쉬
+Cash
+*/
+ MSG_STORE_TABNAME_1 = 0x5ba,
+/*20090330 to latest
+방어구
+Armors
+*/
+ MSG_STORE_TABNAME_2 = 0x5bb,
+/*20090330 to latest
+무기
+Weapons
+*/
+ MSG_STORE_TABNAME_3 = 0x5bc,
+/*20090330 to latest
+투사체
+Ammo
+*/
+ MSG_STORE_TABNAME_4 = 0x5bd,
+/*20090330 to latest
+카드
+Card
+*/
+ MSG_STORE_TABNAME_5 = 0x5be,
+/*20090330 to latest
+기타
+Other
+*/
+ MSG_STORE_TABNAME_6 = 0x5bf,
+#endif
+#if PACKETVER >= 20090401
+/*20090401 to latest
+클라이언트 응답시간이 초과되어 연결이 끊어집니다.
+Client response time has passed so connection is terminated
+*/
+ MSG_ERROR_HS_TIMEOUT = 0x5c0,
+/*20090401 to latest
+핵쉴드 파일의 버전이 맞지 않습니다. 클라이언트를 재설치 해주십시오.
+Incorrect version of hack shield file. Please reinstall the client
+*/
+ MSG_ERROR_DIFF_CLIENT = 0x5c1,
+#endif
+#if PACKETVER >= 20090408
+/*20090408 to latest
+마법서가 필요합니다.
+[Magic Book] is required.
+*/
+ MSG_USESKILL_FAIL_SPELLBOOK = 0x5c2,
+/*20090408 to latest
+마법서가 너무 어려워서 졸음이 몰려온다.
+Feel sleepy since Magic Book is too difficult to understand.
+*/
+ MSG_USESKILL_FAIL_SPELLBOOK_DIFFICULT_SLEEP = 0x5c3,
+/*20090408 to latest
+보존포인트가 부족합니다.
+Not enough saved point.
+*/
+ MSG_USESKILL_FAIL_SPELLBOOK_PRESERVATION_POINT = 0x5c4,
+/*20090408 to latest
+더이상 마법서를 읽을수 없습니다.
+Can't read a Magic Book anymore.
+*/
+ MSG_USESKILL_FAIL_SPELLBOOK_READING = 0x5c5,
+/*20090408 to latest
+페이스페인트가 필요합니다.
+Face Paint is required.
+*/
+ MSG_USESKILL_FAIL_II_FACE_PAINTS = 0x5c6,
+/*20090408 to latest
+분장용붓이 필요합니다.
+Brush is required.
+*/
+ MSG_USESKILL_FAIL_II_MAKEUP_BRUSH = 0x5c7,
+/*20090408 to latest
+대기 시간이 초과하였습니다. 다시 로그인 해주십시오.
+Waiting time has passed. Please log in again
+*/
+ MSG_MOBILE_TIMEOVER = 0x5c8,
+/*20090408 to latest
+위험! 이미 동일한 계정이 로그인 중에 있습니다. 잠시 모바일 인증 진행을 멈추시고 비번을 수정한 뒤 재 로그인 해주십시오.
+Watch out! Same account is already logged in. Stop mobile verification and log in again after changing your password
+*/
+ MSG_MOBILE_ANOTHER_LOGIN = 0x5c9,
+/*20090408 to latest
+위험! 현재 동일한 계정이 모바일 인증 대기 중에 있습니다. 잠시 모바일 인증 진행을 멈추시고 비번을 수정한 뒤 재 로그인 해주십시오.
+Watch out! Same account is waiting for mobile verification. Stop mobile verification and log in again after changing your password
+*/
+ MSG_MOBILE_WAITING_STATE = 0x5ca,
+#endif
+#if PACKETVER >= 20090506
+/*20090506 to latest
+게임 옵션창
+Game setting window
+*/
+ MSG_ESC_OPTIONWND = 0x5cb,
+/*20090506 to latest
+그래픽 설정
+Graphics Settings
+*/
+ MSG_GRAPHIC_OPTIONWND = 0x5cc,
+/*20090506 to latest
+사운드 설정
+Sound Settings
+*/
+ MSG_SOUND_OPTIONWND = 0x5cd,
+#endif
+#if PACKETVER >= 20090514
+/*20090514 to latest
+변경 할 단축키를 누르거나, 'ESC'키를 눌러 삭제 해 주세요.
+Press a key to assign. Pressing 'ESC' will remove the assigned key.
+*/
+ MSG_HOTKEYWND_NOTICE1 = 0x5ce,
+/*20090514 to latest
+단일 키로 지정 할 수 없는 키입니다.
+Unable to specify a single key.
+*/
+ MSG_HOTKEYWND_NOTICE2 = 0x5cf,
+/*20090514 to latest
+지정 할 수 없는 키입니다.
+Unable to specify the key assigned.
+*/
+ MSG_HOTKEYWND_NOTICE3 = 0x5d0,
+/*20090514 to latest
+'%s'에 사용된 단축키와 중복됩니다. 바꾸시겠습니까?
+Duplicated with ['%s']. Do you still want to change?
+*/
+ MSG_HOTKEYWND_NOTICE4 = 0x5d1,
+/*20090514 to latest
+저장된 단축키 조합이 초기화 됩니다. 초기화 하시겠습니까?
+Initialization is stored in the shortcut key settings. Do you want to initialized?
+*/
+ MSG_HOTKEYWND_NOTICE5 = 0x5d2,
+/*20090514 to latest
+스킬바
+Skill Bar
+*/
+ MSG_HOTKEYWND_TAB1 = 0x5d3,
+/*20090514 to latest
+인터페이스
+Interface
+*/
+ MSG_HOTKEYWND_TAB2 = 0x5d4,
+/*20090514 to latest
+이모션
+Macros
+*/
+ MSG_HOTKEYWND_TAB3 = 0x5d5,
+/*20090514 to latest
+단축키 설정 창
+Shortcut Settings
+*/
+ MSG_HOTKEYWND_TITLE = 0x5d6,
+#endif
+#if PACKETVER >= 20090520
+/*20090520 to latest
+배경음
+BGM
+*/
+ MSG_BGM = 0x5d7,
+/*20090520 to latest
+효과음
+Effect
+*/
+ MSG_SOUND = 0x5d8,
+/*20090520 to latest
+스킨
+Skin
+*/
+ MSG_SKIN = 0x5d9,
+/*20090520 to latest
+채팅방 입장음만 소리남 On
+Chat room entrance sound on
+*/
+ MSG_TINGONLY_ON = 0x5da,
+/*20090520 to latest
+채팅방 입장음만 소리남 Off
+Chat room entrance sound off
+*/
+ MSG_TINGONLY_OFF = 0x5db,
+/*20090520 to latest
+/tingonly : 채팅방 입장음만 들을수있게됩니다
+/tingonly: you can hear only sound like a chat room entry.
+*/
+ MSG_EXPLAIN_TINGONLY = 0x5dc,
+/*20090520 to latest
+/주먹
+/rock
+*/
+ MSG_EMOTION_ROCK = 0x5dd,
+/*20090520 to latest
+/가위
+/scissors
+*/
+ MSG_EMOTION_SCISSOR = 0x5de,
+/*20090520 to latest
+/보
+/paper
+*/
+ MSG_EMOTION_WRAP = 0x5df,
+/*20090520 to latest
+/러브
+/love
+*/
+ MSG_EMOTION_LUV = 0x5e0,
+/*20090520 to latest
+/mobile
+*/
+ MSG_EMOTION_MOBILE = 0x5e1,
+/*20090520 to latest
+/mail
+*/
+ MSG_EMOTION_MAIL = 0x5e2,
+/*20090520 to latest
+/antenna0
+*/
+ MSG_EMOTION_ANTENNA0 = 0x5e3,
+/*20090520 to latest
+/antenna1
+*/
+ MSG_EMOTION_ANTENNA1 = 0x5e4,
+/*20090520 to latest
+/antenna2
+*/
+ MSG_EMOTION_ANTENNA2 = 0x5e5,
+/*20090520 to latest
+/antenna3
+*/
+ MSG_EMOTION_ANTENNA3 = 0x5e6,
+/*20090520 to latest
+/hum
+*/
+ MSG_EMOTION_HUM2 = 0x5e7,
+/*20090520 to latest
+/abs
+*/
+ MSG_EMOTION_ABS = 0x5e8,
+/*20090520 to latest
+/oops
+*/
+ MSG_EMOTION_OOPS = 0x5e9,
+/*20090520 to latest
+/spit
+*/
+ MSG_EMOTION_SPIT = 0x5ea,
+/*20090520 to latest
+/ene
+*/
+ MSG_EMOTION_ENE = 0x5eb,
+/*20090520 to latest
+/panic
+*/
+ MSG_EMOTION_PANIC = 0x5ec,
+/*20090520 to latest
+/whisp
+*/
+ MSG_EMOTION_WHISP = 0x5ed,
+#endif
+#if PACKETVER >= 20090527
+/*20090527 to latest
+지정안함
+Not Assigned
+*/
+ MSG_HOTKEY_NOTHING = 0x5ee,
+#endif
+#if PACKETVER >= 20090603
+/*20090603 to latest
+카트장착시에만 사용가능합니다.
+Only available when cart is mounted.
+*/
+ MSG_USESKILL_FAIL_CART = 0x5ef,
+/*20090603 to latest
+[가시나무 씨앗]이 필요합니다.
+[Thorny Seed] is required.
+*/
+ MSG_USESKILL_FAIL_II_THORNS_SEED = 0x5f0,
+/*20090603 to latest
+[흡혈 식물 씨앗]이 필요합니다.
+[Bloodsucker Seed] is required.
+*/
+ MSG_USESKILL_FAIL_II_BLOOD_SUCKER_SEED = 0x5f1,
+/*20090603 to latest
+더이상 시전할수 없습니다.
+Cannot be used anymore.
+*/
+ MSG_USESKILL_FAIL_NO_MORE_SPELL = 0x5f2,
+/*20090603 to latest
+[폭탄버섯포자]가 필요합니다.
+[Bomb Mushroom Spore] is required.
+*/
+ MSG_USESKILL_FAIL_II_BOMB_MUSHROOM_SPORE = 0x5f3,
+/*20090603 to latest
+[화염병]이 필요합니다.
+[Fire Bottle] is required.
+*/
+ MSG_USESKILL_FAIL_II_GASOLINE_BOOMB = 0x5f4,
+/*20090603 to latest
+[기름병]이 필요합니다.
+[Oil Bottle] is required.
+*/
+ MSG_USESKILL_FAIL_II_OIL_BOTTLE = 0x5f5,
+/*20090603 to latest
+[폭발가루]가 필요합니다.
+[Explosive Powder] is required.
+*/
+ MSG_USESKILL_FAIL_II_EXPLOSION_POWDER = 0x5f6,
+/*20090603 to latest
+[연막가루]가 필요합니다.
+[Smokescreen Powder] is required.
+*/
+ MSG_USESKILL_FAIL_II_SMOKE_POWDER = 0x5f7,
+/*20090603 to latest
+[최루가스]가 필요합니다.
+[Tear Gas] is required.
+*/
+ MSG_USESKILL_FAIL_II_TEAR_GAS = 0x5f8,
+/*20090603 to latest
+[염산병]이 필요합니다.
+[Acid Bottle] is required.
+*/
+ MSG_USESKILL_FAIL_II_HYDROCHLORIC_ACID_BOTTLE = 0x5f9,
+/*20090603 to latest
+[식인식물병]이 필요합니다.
+[Bottom Man-Eating Plant] is required.
+*/
+ MSG_USESKILL_FAIL_II_HELLS_PLANT_BOTTLE = 0x5fa,
+/*20090603 to latest
+[만드라고라의 화분]이 필요합니다.
+[Pot of Mandragora] is required.
+*/
+ MSG_USESKILL_FAIL_II_MANDRAGORA_FLOWERPOT = 0x5fb,
+/*20090603 to latest
+파티장 위임
+Party delegation
+*/
+ MSG_YIELD_PARTYMASTER = 0x5fc,
+/*20090603 to latest
+정말 파티장을 위임하시겠습니까?
+Do you want to delegate the real party?
+*/
+ MSG_DO_YOU_REALLY_WANT_YIELD_PARTYMASTER = 0x5fd,
+/*20090603 to latest
+파티장을 위임 할 수 없습니다.
+Party cannot be delegated.
+*/
+ MSG_CANNOT_YIELD_PARTYMASTER = 0x5fe,
+/*20090603 to latest
+변경불가
+Immutable
+*/
+ MSG_FAILED_CHANGE = 0x5ff,
+#endif
+#if PACKETVER >= 20090610
+/*20090610 to latest
+[%s]가 %d개 필요합니다.
+[%s] required '%d' amount.
+*/
+ MSG_USESKILL_FAIL_NEED_ITEM = 0x600,
+/*20090610 to latest
+제련 수치가 하향 조정 되었습니다.
+Is now refining the value lowered.
+*/
+ MSG_ITEM_REFINING_DOWNGRADE = 0x601,
+/*20090610 to latest
+[%s]를 장비하고 있어야 사용할 수 있습니다
+Need to put on [%s] in order to use.
+*/
+ MSG_USESKILL_FAIL_NEED_EQUIPMENT = 0x602,
+#endif
+#if PACKETVER >= 20090617
+/*20090617 to latest
+전장 리스트
+*/
+ MSG_BATTLEFIELD_LIST = 0x603,
+/*20090617 to latest
+전장 - [%s] 신청 하시겠습니까?
+*/
+ MSG_CANNOT_JOINTO_BATTLEFIELD = 0x604,
+/*20090617 to latest
+전장 - [%s] 입장 신청이 완료되었습니다.
+*/
+ MSG_COMPLETED_JOINTO_BATTLEFIELD = 0x605,
+/*20090617 to latest
+전장 - [%s] 입장 하실 수 없습니다.
+*/
+ MSG_DIFFER_JOINTO_BATTLEFIELD = 0x606,
+/*20090617 to latest
+현재 입장 신청 상태입니다.
+*/
+ MSG_STATUS_JOINTO_BATTLEFIELD = 0x607,
+/*20090617 to latest
+입장 신청을 취소하시겠습니까?
+*/
+ MSG_REQ_CANCEL_JOINTO_BATTLEFIELD = 0x608,
+/*20090617 to latest
+전장 - [%s] 입장 신청이 취소되었습니다.
+*/
+ MSG_CANCEL_JOINTO_BATTLEFIELD = 0x609,
+/*20090617 to latest
+곧 전장으로 이동 합니다.
+*/
+ MSG_MOVETO_BATTLEFIELD = 0x60a,
+/*20090617 to latest
+전장 - [%s]
+*/
+ MSG_BATTLEFIELD_NAME = 0x60b,
+#endif
+
+};
+#endif /* MAP_MESSAGES_SAK_H */
diff --git a/src/map/messages_zero.h b/src/map/messages_zero.h
index 19959dc70..c562bb07c 100644
--- a/src/map/messages_zero.h
+++ b/src/map/messages_zero.h
@@ -23,7 +23,7 @@
/* This file is autogenerated, please do not commit manual changes
-Latest version: 20180725
+Latest version: 20180919
*/
enum clif_messages {
@@ -17357,19 +17357,69 @@ DEATH : %.1f%% ( basic 100.0%% %s %.1f%%)
MSG_ID_DD1 = 0xdd1,
#endif
#if PACKETVER >= 20180725
-/*20180725 to latest
+/*20180725 to 20180801
'
+20180808 to latest
+영문이나 러시아어 단독으로만 사용이 가능합니다.
*/
MSG_ID_DD2 = 0xdd2,
-/*20180725 to latest
+/*20180725 to 20180801
;
+20180822 to latest
+you must have an AccessTicket to login
*/
MSG_ID_DD3 = 0xdd3,
-/*20180725 to latest
+/*20180725 to 20180801
--
+20180905 to latest
+창고를 불러오는 중입니다.
*/
MSG_ID_DD4 = 0xdd4,
#endif
+#if PACKETVER >= 20180905
+/*20180905 to latest
+NOW LOADING..
+*/
+ MSG_ID_DD5 = 0xdd5,
+#endif
+#if PACKETVER >= 20180919
+/*20180919 to latest
+삭제
+*/
+ MSG_ID_DD6 = 0xdd6,
+/*20180919 to latest
+답장
+*/
+ MSG_ID_DD7 = 0xdd7,
+/*20180919 to latest
+전송
+*/
+ MSG_ID_DD8 = 0xdd8,
+/*20180919 to latest
+이름확인
+*/
+ MSG_ID_DD9 = 0xdd9,
+/*20180919 to latest
+공지
+Notice
+*/
+ MSG_ID_DDA = 0xdda,
+/*20180919 to latest
+일반
+General
+*/
+ MSG_ID_DDB = 0xddb,
+/*20180919 to latest
+반송
+Clear
+*/
+ MSG_ID_DDC = 0xddc,
+/*20180919 to latest
+검색
+Search
+*/
+ MSG_ID_DDD = 0xddd,
+#endif
};
#endif /* MAP_MESSAGES_ZERO_H */
diff --git a/src/map/mob.c b/src/map/mob.c
index 27039490c..765acafe7 100644
--- a/src/map/mob.c
+++ b/src/map/mob.c
@@ -2426,7 +2426,8 @@ static int mob_dead(struct mob_data *md, struct block_list *src, int type)
if(zeny) // zeny from mobs [Valaris]
pc->getzeny(tmpsd[i], zeny, LOG_TYPE_PICKDROP_MONSTER, NULL);
- achievement->validate_mob_kill(tmpsd[i], md->db->mob_id); // Achievements [Smokexyz/Hercules]
+ if (!md->special_state.clone && !mob->is_clone(md->class_))
+ achievement->validate_mob_kill(tmpsd[i], md->db->mob_id); // Achievements [Smokexyz/Hercules]
}
}
@@ -2702,11 +2703,11 @@ static int mob_dead(struct mob_data *md, struct block_list *src, int type)
if (++sd->mission_count >= 100 && (temp = mob->get_random_id(0, 0xE, sd->status.base_level)) != 0) {
pc->addfame(sd, RANKTYPE_TAEKWON, 1);
sd->mission_mobid = temp;
- pc_setglobalreg(sd,script->add_str("TK_MISSION_ID"), temp);
+ pc_setglobalreg(sd,script->add_variable("TK_MISSION_ID"), temp);
sd->mission_count = 0;
clif->mission_info(sd, temp, 0);
}
- pc_setglobalreg(sd,script->add_str("TK_MISSION_COUNT"), sd->mission_count);
+ pc_setglobalreg(sd,script->add_variable("TK_MISSION_COUNT"), sd->mission_count);
}
if( sd->status.party_id )
@@ -4955,7 +4956,6 @@ static bool mob_skill_db_libconfig_sub_skill(struct config_setting_t *it, int n,
int skill_id = 0;
int skill_idx = 0;
bool clearskills = false;
- char valname[5];
const char *name = config_setting_name(it);
struct mob_skill *ms, gms;
@@ -5055,6 +5055,7 @@ static bool mob_skill_db_libconfig_sub_skill(struct config_setting_t *it, int n,
ms->cond2 = i32;
for (i = 0; i < 5; i++) {
+ char valname[16];
sprintf(valname, "val%1d", i);
if (libconfig->setting_lookup_int(it, valname, &i32))
ms->val[i] = i32;
diff --git a/src/map/npc.c b/src/map/npc.c
index f80f8443a..a8bf7d371 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -1762,8 +1762,8 @@ static bool npc_trader_pay(struct npc_data *nd, struct map_session_data *sd, int
snprintf(evname, EVENT_NAME_LENGTH, "%s::OnPayFunds",nd->exname);
if ( (ev = strdb_get(npc->ev_db, evname)) ) {
- pc->setreg(sd,script->add_str("@price"),price);
- pc->setreg(sd,script->add_str("@points"),points);
+ pc->setreg(sd,script->add_variable("@price"),price);
+ pc->setreg(sd,script->add_variable("@points"),points);
script->run_npc(ev->nd->u.scr.script, ev->pos, sd->bl.id, ev->nd->bl.id);
} else
ShowError("npc_trader_pay: '%s' event '%s' not found, operation failed\n",nd->exname,evname);
@@ -2868,7 +2868,7 @@ static const char *npc_parse_shop(const char *w1, const char *w2, const char *w3
struct npc_item_list *items = NULL;
size_t items_count = 40; // Starting items size
- char *p;
+ const char *p;
int x, y, dir, m, i, class_;
struct npc_data *nd;
enum npc_subtype type;
@@ -4980,6 +4980,7 @@ static int npc_reload(void)
instance->reload();
+ map->zone_reload();
map->zone_init();
npc->motd = npc->name2id("HerculesMOTD"); /* [Ind/Hercules] */
diff --git a/src/map/npc.h b/src/map/npc.h
index eff4ed4ec..ed5f4138d 100644
--- a/src/map/npc.h
+++ b/src/map/npc.h
@@ -144,7 +144,7 @@ enum actor_classes {
#define MAX_NPC_CLASS 1000
// New NPC range
#define MAX_NPC_CLASS2_START 10001
-#define MAX_NPC_CLASS2_END 10248
+#define MAX_NPC_CLASS2_END 10310
//Script NPC events.
enum npce_event {
diff --git a/src/map/packets.h b/src/map/packets.h
index 6fb637185..dc610ce2a 100644
--- a/src/map/packets.h
+++ b/src/map/packets.h
@@ -1142,7 +1142,7 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x02cc,4);
packet(0x02cd,26);
packet(0x02ce,10);
- packet(0x02cf,6);
+ packet(0x02cf,6,clif->pMemorialDungeonCommand);
packet(0x02d0,-1);
packet(0x02d1,-1);
packet(0x02d2,-1);
@@ -1759,7 +1759,7 @@ packet(0x96e,-1,clif->ackmergeitems);
#if PACKETVER >= 20100413
//packet(0x081A,10);
packet(0x0820,11);
- //packet(0x0821,2);
+ packet(0x0821,2);
//packet(0x0822,9);
//packet(0x0823,-1);
#endif
@@ -3994,9 +3994,6 @@ packet(0x96e,-1,clif->ackmergeitems);
packet(0x0af2,40,clif->pDull/*,XXX*/);
packet(0x0af3,-1,clif->pDull/*,XXX*/);
// changed packet sizes
-#ifndef PACKETVER_RE
- packet(0x0821,102,clif->pDull/*,XXX*/); // AC_OTP_USER
-#endif
#endif
#ifdef PACKETVER_ZERO
@@ -4011,11 +4008,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
#endif // PACKETVER_ZERO
-#if PACKETVER >= 20180131
-// changed packet sizes
- packet(0x0821,102); // AC_OTP_USER
-#endif
-
#ifdef PACKETVER_ZERO
// 2018-02-07bRagexe_zero
#if PACKETVER >= 20180207
@@ -4091,14 +4083,6 @@ packet(0x96e,-1,clif->ackmergeitems);
#endif
#endif // PACKETVER_ZERO
-#ifdef PACKETVER_RE
-// 2018-04-04cRagexeRE
-#if PACKETVER >= 20180404
-// changed packet sizes
- packet(0x0821,102,clif->pDull/*,XXX*/); // AC_OTP_USER
-#endif
-#endif
-
#ifndef PACKETVER_ZERO
// 2018-04-18aRagexe, 2018-04-18bRagexeRE
#if PACKETVER >= 20180418
@@ -4121,7 +4105,7 @@ packet(0x96e,-1,clif->ackmergeitems);
// 2018-05-16cRagexe, 2018-05-16cRagexeRE
#if PACKETVER >= 20180516
// new packets
- packet(0x0afc,16,clif->pReqStyleChange);
+ packet(0x0afc,16,clif->pReqStyleChange2);
// changed packet sizes
#endif
#endif // PACKETVER_ZERO
@@ -4130,7 +4114,7 @@ packet(0x96e,-1,clif->ackmergeitems);
// 2018-05-23aRagexe_zero
#if PACKETVER >= 20180523
// new packets
- packet(0x0afc,16,clif->pReqStyleChange);
+ packet(0x0afc,16,clif->pReqStyleChange2);
// changed packet sizes
#endif
#endif // PACKETVER_ZERO
@@ -4138,7 +4122,7 @@ packet(0x96e,-1,clif->ackmergeitems);
// 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-05bRagexe_zero
#if PACKETVER >= 20180605
// new packets
- packet(0x0afd,155);
+ packet(0x0afd,-1);
packet(0x0afe,-1,clif->pDull/*,XXX*/);
packet(0x0aff,-1,clif->pDull/*,XXX*/);
// changed packet sizes
@@ -4255,4 +4239,120 @@ packet(0x96e,-1,clif->ackmergeitems);
// changed packet sizes
#endif
+#ifndef PACKETVER_ZERO
+// 2018-08-01cRagexe, 2018-08-01cRagexeRE
+#if PACKETVER >= 20180801
+// new packets
+ packet(0x0b03,-1);
+ packet(0x0b04,80,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+#endif // PACKETVER_ZERO
+
+// 2018-08-08_2aRagexe_zero
+#if PACKETVER_ZERO_NUM >= 20180808
+// new packets
+ packet(0x0b04,80,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+
+// 2018-08-22aRagexe_zero
+#if PACKETVER_ZERO_NUM >= 20180822
+// new packets
+ packet(0x0b05,59);
+ packet(0x0b06,53,clif->pDull/*,XXX*/);
+ packet(0x0b07,-1);
+ packet(0x0b08,26,clif->pDull/*,XXX*/);
+ packet(0x0b09,-1,clif->pDull/*,XXX*/);
+ packet(0x0b0a,-1,clif->pDull/*,XXX*/);
+ packet(0x0b0b,3,clif->pDull/*,XXX*/);
+ packet(0x0b0c,155,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+
+// 2018-08-29aRagexe
+#if PACKETVER_MAIN_NUM >= 20180829
+// new packets
+ packet(0x0b05,59);
+ packet(0x0b06,53,clif->pDull/*,XXX*/);
+ packet(0x0b07,-1);
+ packet(0x0b08,26); // ZC_INVENTORY_START
+ packet(0x0b09,-1); // ZC_STORE_ITEMLIST_NORMAL_V6
+ packet(0x0b0a,-1); // ZC_STORE_ITEMLIST_EQUIP_V6
+ packet(0x0b0b,3); // ZC_INVENTORY_END
+ packet(0x0b0c,155,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+
+// 2018-08-29aRagexeRE
+#if PACKETVER_RE_NUM >= 20180829
+// new packets
+ packet(0x0b05,63);
+ packet(0x0b06,53,clif->pDull/*,XXX*/);
+ packet(0x0b07,-1);
+ packet(0x0b08,26); // ZC_INVENTORY_START
+ packet(0x0b09,-1); // ZC_STORE_ITEMLIST_NORMAL_V6
+ packet(0x0b0a,-1); // ZC_STORE_ITEMLIST_EQUIP_V6
+ packet(0x0b0b,3); // ZC_INVENTORY_END
+ packet(0x0b0c,155,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+
+// 2018-09-05aRagexe_zero
+#if PACKETVER_ZERO_NUM >= 20180905
+// new packets
+ packet(0x0b0d,6,clif->pDull/*,XXX*/);
+// changed packet sizes
+ packet(0x0b08,27); // ZC_INVENTORY_START
+ packet(0x0b0b,4); // ZC_INVENTORY_END
+#endif
+
+#ifndef PACKETVER_ZERO
+// 2018-09-12dRagexe, 2018-09-12dRagexeRE
+#if PACKETVER >= 20180912
+// new packets
+ packet(0x0b0d,10,clif->pDull/*,XXX*/);
+ packet(0x0b0e,-1,clif->pDull/*,XXX*/);
+ packet(0x0b0f,-1,clif->pDull/*,XXX*/);
+// changed packet sizes
+ packet(0x0b08,27,clif->pDull/*,XXX*/); // ZC_INVENTORY_START
+ packet(0x0b0b,4,clif->pDull/*,XXX*/); // ZC_INVENTORY_END
+#endif
+#endif
+
+// 2018-09-19aRagexeRE
+#if PACKETVER_RE_NUM >= 20180919
+// new packets
+// changed packet sizes
+ packet(0x0b08,-1); // ZC_INVENTORY_START
+#endif
+
+// 2018-09-19aRagexe_zero
+#if PACKETVER_ZERO_NUM >= 20180919
+// new packets
+ packet(0x0b0e,-1,clif->pDull/*,XXX*/);
+ packet(0x0b0f,-1,clif->pDull/*,XXX*/);
+// changed packet sizes
+ packet(0x0b08,-1); // ZC_INVENTORY_START
+ packet(0x0b0d,10,clif->pDull/*,XXX*/);
+#endif
+
+
+// 2018-10-02aRagexe
+#if PACKETVER_MAIN_NUM >= 20181002
+// new packets
+ packet(0x0b10,10,clif->pDull/*,XXX*/);
+ packet(0x0b11,4,clif->pDull/*,XXX*/);
+// changed packet sizes
+ packet(0x0b08,-1); // ZC_INVENTORY_START
+#endif
+
+// 2018-10-02aRagexeRE
+#if PACKETVER_RE_NUM >= 20181002
+// new packets
+ packet(0x0b10,10,clif->pDull/*,XXX*/);
+ packet(0x0b11,4,clif->pDull/*,XXX*/);
+// changed packet sizes
+#endif
+
#endif /* MAP_PACKETS_H */
diff --git a/src/map/packets_keys_main.h b/src/map/packets_keys_main.h
index 43221f965..03ece5d27 100644
--- a/src/map/packets_keys_main.h
+++ b/src/map/packets_keys_main.h
@@ -874,7 +874,7 @@
packetKeys(0x6A596301,0x76866D0E,0x32294A45);
#endif
-// 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE
+// 2013-12-23aRagexeRE, 2014-05-08aRagexe, 2014-05-08aRagexeRE, 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-21aRagexeRE, 2018-03-28bRagexe, 2018-03-28bRagexeRE, 2018-04-04bRagexe, 2018-04-04cRagexeRE, 2018-04-18aRagexe, 2018-04-18bRagexeRE, 2018-04-25cRagexe, 2018-04-25cRagexeRE, 2018-05-02bRagexe, 2018-05-02bRagexeRE, 2018-05-02dRagexeRE, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-16cRagexeRE, 2018-05-23aRagexe, 2018-05-23aRagexeRE, 2018-05-30aRagexe, 2018-05-30bRagexeRE, 2018-05-30cRagexeRE, 2018-06-05bRagexe, 2018-06-05bRagexeRE, 2018-06-12aRagexeRE, 2018-06-12bRagexeRE, 2018-06-20cRagexe, 2018-06-20dRagexeRE, 2018-06-20eRagexe, 2018-06-20eRagexeRE, 2018-06-21aRagexe, 2018-06-21aRagexeRE, 2018-07-04aRagexe, 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexe, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexe, 2018-07-18cRagexeRE, 2018-08-01cRagexe, 2018-08-01cRagexeRE, 2018-08-08bRagexe, 2018-08-08bRagexeRE, 2018-08-22cRagexe, 2018-08-22cRagexeRE, 2018-08-29aRagexe, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-12dRagexeRE, 2018-09-19aRagexe, 2018-09-19aRagexeRE, 2018-10-02aRagexe, 2018-10-02aRagexeRE, 2018-10-02bRagexe, 2018-10-02bRagexeRE
#if PACKETVER == 20131223 || \
PACKETVER == 20140508 || \
PACKETVER == 20140611 || \
@@ -896,7 +896,15 @@
PACKETVER == 20180621 || \
PACKETVER == 20180704 || \
PACKETVER == 20180711 || \
- PACKETVER >= 20180718
+ PACKETVER == 20180718 || \
+ PACKETVER == 20180801 || \
+ PACKETVER == 20180808 || \
+ PACKETVER == 20180822 || \
+ PACKETVER == 20180829 || \
+ PACKETVER == 20180831 || \
+ PACKETVER == 20180912 || \
+ PACKETVER == 20180919 || \
+ PACKETVER >= 20181002
packetKeys(0x00000000,0x00000000,0x00000000);
#endif
diff --git a/src/map/packets_keys_zero.h b/src/map/packets_keys_zero.h
index 4d1267fbb..1b6cd537c 100644
--- a/src/map/packets_keys_zero.h
+++ b/src/map/packets_keys_zero.h
@@ -29,7 +29,7 @@
/* This file is autogenerated, please do not commit manual changes */
-// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero
+// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero
#if PACKETVER == 20171018 || \
PACKETVER == 20171019 || \
PACKETVER == 20171023 || \
@@ -51,7 +51,15 @@
PACKETVER == 20180627 || \
PACKETVER == 20180703 || \
PACKETVER == 20180711 || \
- PACKETVER >= 20180725
+ PACKETVER == 20180725 || \
+ PACKETVER == 20180801 || \
+ PACKETVER == 20180808 || \
+ PACKETVER == 20180822 || \
+ PACKETVER == 20180829 || \
+ PACKETVER == 20180905 || \
+ PACKETVER == 20180912 || \
+ PACKETVER == 20180919 || \
+ PACKETVER >= 20180928
packetKeys(0x00000000,0x00000000,0x00000000);
#endif
diff --git a/src/map/packets_shuffle_main.h b/src/map/packets_shuffle_main.h
index 41b4cbba5..53bdfa59d 100644
--- a/src/map/packets_shuffle_main.h
+++ b/src/map/packets_shuffle_main.h
@@ -3344,7 +3344,7 @@
packet(0x0969,2,clif->pSearchStoreInfoNextPage,0); // CZ_SEARCH_STORE_INFO_NEXT_PAGE
#endif
-// 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-28bRagexe, 2018-04-04bRagexe, 2018-04-18aRagexe, 2018-04-25cRagexe, 2018-05-02bRagexe, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-23aRagexe, 2018-05-30aRagexe, 2018-06-05bRagexe, 2018-06-20cRagexe, 2018-06-20eRagexe, 2018-06-21aRagexe, 2018-07-04aRagexe, 2018-07-18bRagexe, 2018-07-18cRagexe
+// 2014-06-11eRagexe, 2015-02-25hRagexe, 2018-03-15aRagexe, 2018-03-21aRagexe, 2018-03-28bRagexe, 2018-04-04bRagexe, 2018-04-18aRagexe, 2018-04-25cRagexe, 2018-05-02bRagexe, 2018-05-09aRagexe, 2018-05-16cRagexe, 2018-05-23aRagexe, 2018-05-30aRagexe, 2018-06-05bRagexe, 2018-06-20cRagexe, 2018-06-20eRagexe, 2018-06-21aRagexe, 2018-07-04aRagexe, 2018-07-18bRagexe, 2018-07-18cRagexe, 2018-08-01cRagexe, 2018-08-08bRagexe, 2018-08-22cRagexe, 2018-08-29aRagexe, 2018-08-31aRagexe, 2018-09-12dRagexe, 2018-09-19aRagexe, 2018-10-02aRagexe, 2018-10-02bRagexe
#if PACKETVER == 20140611 || \
PACKETVER == 20150225 || \
PACKETVER == 20180315 || \
@@ -3362,7 +3362,15 @@
PACKETVER == 20180620 || \
PACKETVER == 20180621 || \
PACKETVER == 20180704 || \
- PACKETVER >= 20180718
+ PACKETVER == 20180718 || \
+ PACKETVER == 20180801 || \
+ PACKETVER == 20180808 || \
+ PACKETVER == 20180822 || \
+ PACKETVER == 20180829 || \
+ PACKETVER == 20180831 || \
+ PACKETVER == 20180912 || \
+ PACKETVER == 20180919 || \
+ PACKETVER >= 20181002
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_shuffle_re.h b/src/map/packets_shuffle_re.h
index 2e4dedbce..e77b97cac 100644
--- a/src/map/packets_shuffle_re.h
+++ b/src/map/packets_shuffle_re.h
@@ -9662,10 +9662,17 @@
packet(0x083c,12,clif->pSearchStoreInfoListItemClick,2,6,10); // CZ_SSILIST_ITEM_CLICK
#endif
-// 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexeRE
+// 2018-07-04aRagexeRE, 2018-07-11aRagexeRE, 2018-07-18bRagexeRE, 2018-07-18bRagexeRE1, 2018-07-18cRagexeRE, 2018-08-01cRagexeRE, 2018-08-08bRagexeRE, 2018-08-22cRagexeRE, 2018-08-29aRagexeRE, 2018-08-29bRagexeRE, 2018-09-12dRagexeRE, 2018-09-19aRagexeRE, 2018-10-02aRagexeRE, 2018-10-02bRagexeRE
#if PACKETVER == 20180704 || \
PACKETVER == 20180711 || \
- PACKETVER >= 20180718
+ PACKETVER == 20180718 || \
+ PACKETVER == 20180801 || \
+ PACKETVER == 20180808 || \
+ PACKETVER == 20180822 || \
+ PACKETVER == 20180829 || \
+ PACKETVER == 20180912 || \
+ PACKETVER == 20180919 || \
+ PACKETVER >= 20181002
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_shuffle_zero.h b/src/map/packets_shuffle_zero.h
index 2d7757a08..fedefbe3d 100644
--- a/src/map/packets_shuffle_zero.h
+++ b/src/map/packets_shuffle_zero.h
@@ -36,7 +36,7 @@
/* This file is autogenerated, please do not commit manual changes */
-// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero
+// 2017-10-18aRagexe_zero, 2017-10-19aRagexe_zero, 2017-10-23aRagexe_zero, 2017-10-23bRagexe_zero, 2017-10-23cRagexe_zero, 2017-10-24aRagexe_2_zero, 2017-10-24aRagexe_zero, 2017-10-25bRagexe_zero, 2017-10-27aRagexe_zero, 2017-10-27bRagexe_zero, 2017-10-30aRagexe_zero, 2017-10-31aRagexe_zero, 2017-11-09aRagexe_zero, 2017-11-13aRagexe_zero, 2017-11-13bRagexe_zero, 2018-03-15aRagexe_zero, 2018-03-21aRagexe_zero, 2018-03-21bRagexe_zero, 2018-03-28_1aRagexe_zero, 2018-03-28cRagexe_zero, 2018-04-11aRagexe_zero, 2018-04-25_3aRagexe_zero, 2018-05-09_3aRagexe_zero, 2018-05-23aRagexe_zero, 2018-06-05bRagexe_zero, 2018-06-05cRagexe_zero, 2018-06-27aRagexe_zero, 2018-07-03aRagexe_zero, 2018-07-11_2aRagexe_zero, 2018-07-25_2aRagexe_zero, 2018-08-01aRagexe_zero, 2018-08-08_2aRagexe_zero, 2018-08-22aRagexe_zero, 2018-08-29aRagexe_zero, 2018-09-05aRagexe_zero, 2018-09-12aRagexe_zero, 2018-09-19aRagexe_zero, 2018-09-28aRagexe_zero
#if PACKETVER == 20171018 || \
PACKETVER == 20171019 || \
PACKETVER == 20171023 || \
@@ -58,7 +58,15 @@
PACKETVER == 20180627 || \
PACKETVER == 20180703 || \
PACKETVER == 20180711 || \
- PACKETVER >= 20180725
+ PACKETVER == 20180725 || \
+ PACKETVER == 20180801 || \
+ PACKETVER == 20180808 || \
+ PACKETVER == 20180822 || \
+ PACKETVER == 20180829 || \
+ PACKETVER == 20180905 || \
+ PACKETVER == 20180912 || \
+ PACKETVER == 20180919 || \
+ PACKETVER >= 20180928
packet(0x0202,26,clif->pFriendsListAdd,2); // CZ_ADD_FRIENDS
packet(0x022d,5,clif->pHomMenu,2,4); // CZ_COMMAND_MER
packet(0x023b,36,clif->pStoragePassword,0); // CZ_ACK_STORE_PASSWORD
diff --git a/src/map/packets_struct.h b/src/map/packets_struct.h
index e6d207fad..9248d96c8 100644
--- a/src/map/packets_struct.h
+++ b/src/map/packets_struct.h
@@ -198,7 +198,9 @@ enum packet_headers {
#else
dropflooritemType = 0x9e,
#endif
-#if PACKETVER >= 20120925
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ inventorylistnormalType = 0xb09,
+#elif PACKETVER >= 20120925
inventorylistnormalType = 0x991,
#elif PACKETVER >= 20080102
inventorylistnormalType = 0x2e8,
@@ -207,7 +209,9 @@ enum packet_headers {
#else
inventorylistnormalType = 0xa3,
#endif
-#if PACKETVER >= 20150226
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ inventorylistequipType = 0xb0a,
+#elif PACKETVER >= 20150226
inventorylistequipType = 0xa0d,
#elif PACKETVER >= 20120925
inventorylistequipType = 0x992,
@@ -218,27 +222,33 @@ enum packet_headers {
#else
inventorylistequipType = 0xa4,
#endif
-#if PACKETVER >= 20120925
- storagelistnormalType = 0x995,
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ storageListNormalType = 0xb09,
+#elif PACKETVER >= 20120925
+ storageListNormalType = 0x995,
#elif PACKETVER >= 20080102
- storagelistnormalType = 0x2ea,
+ storageListNormalType = 0x2ea,
#elif PACKETVER >= 20071002
- storagelistnormalType = 0x295,
+ storageListNormalType = 0x295,
#else
- storagelistnormalType = 0xa5,
+ storageListNormalType = 0xa5,
#endif
-#if PACKETVER >= 20150226
- storagelistequipType = 0xa10,
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ storageListEquipType = 0xb0a,
+#elif PACKETVER >= 20150226
+ storageListEquipType = 0xa10,
#elif PACKETVER >= 20120925
- storagelistequipType = 0x996,
+ storageListEquipType = 0x996,
#elif PACKETVER >= 20080102
- storagelistequipType = 0x2d1,
+ storageListEquipType = 0x2d1,
#elif PACKETVER >= 20071002
- storagelistequipType = 0x296,
+ storageListEquipType = 0x296,
#else
- storagelistequipType = 0xa6,
+ storageListEquipType = 0xa6,
#endif
-#if PACKETVER >= 20120925
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ cartlistnormalType = 0xb09,
+#elif PACKETVER >= 20120925
cartlistnormalType = 0x993,
#elif PACKETVER >= 20080102
cartlistnormalType = 0x2e9,
@@ -247,7 +257,9 @@ enum packet_headers {
#else
cartlistnormalType = 0x123,
#endif
-#if PACKETVER >= 20150226
+#if PACKETVER_RE_NUM >= 20180829 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ cartlistequipType = 0xb0a,
+#elif PACKETVER >= 20150226
cartlistequipType = 0xa0f,
#elif PACKETVER >= 20120925
cartlistequipType = 0x994,
@@ -279,10 +291,15 @@ enum packet_headers {
#else
unequipitemackType = 0xac,
#endif
-#if PACKETVER >= 20150226
+#if PACKETVER_MAIN_NUM >= 20180801 || PACKETVER_RE_NUM >= 20180801 || PACKETVER_ZERO_NUM >= 20180808
+ viewequipackType = 0xb03,
+#elif PACKETVER >= 20150226
viewequipackType = 0xa2d,
#elif PACKETVER >= 20120925
viewequipackType = 0x997,
+// [4144] not supported due other packets/structs not updated
+//#elif (PACKETVER_MAIN_NUM >= 20111207) || (PACKETVER_RE_NUM >= 20111122)
+// viewequipackType = 0x906,
#elif PACKETVER >= 20101124
viewequipackType = 0x859,
#else
@@ -416,6 +433,18 @@ enum packet_headers {
#else
skilWarpPointType = 0x11c,
#endif
+#if PACKETVER_MAIN_NUM >= 20161019 || PACKETVER_RE_NUM >= 20160921 || defined(PACKETVER_ZERO)
+ guildExpulsion = 0xa82,
+#elif PACKETVER >= 20100803
+ guildExpulsion = 0x839,
+#else
+ guildExpulsion = 0x15c,
+#endif
+#if PACKETVER_MAIN_NUM >= 20161019 || PACKETVER_RE_NUM >= 20160921 || defined(PACKETVER_ZERO)
+ guildLeave = 0xa83,
+#else
+ guildLeave = 0x15a,
+#endif
};
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
@@ -1145,28 +1174,63 @@ struct packet_roulette_itemrecv_ack {
struct packet_itemlist_normal {
int16 PacketType;
int16 PacketLength;
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ uint8 invType;
+#endif
struct NORMALITEM_INFO list[MAX_ITEMLIST];
} __attribute__((packed));
struct packet_itemlist_equip {
int16 PacketType;
int16 PacketLength;
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ uint8 invType;
+#endif
struct EQUIPITEM_INFO list[MAX_ITEMLIST];
} __attribute__((packed));
-struct packet_storelist_normal {
+struct ZC_STORE_ITEMLIST_NORMAL {
int16 PacketType;
int16 PacketLength;
-#if PACKETVER >= 20120925
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ uint8 invType;
+#endif
+#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919 && PACKETVER_MAIN_NUM < 20181002
char name[NAME_LENGTH];
#endif
struct NORMALITEM_INFO list[MAX_ITEMLIST];
} __attribute__((packed));
-struct packet_storelist_equip {
+struct ZC_INVENTORY_START {
+ int16 packetType;
+#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ int16 packetLength;
+#endif
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ uint8 invType;
+#endif
+#if PACKETVER_RE_NUM >= 20180919 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ char name[];
+#else
+ char name[NAME_LENGTH];
+#endif
+} __attribute__((packed));
+
+struct ZC_INVENTORY_END {
+ int16 packetType;
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ uint8 invType;
+#endif
+ char flag;
+} __attribute__((packed));
+
+struct ZC_STORE_ITEMLIST_EQUIP {
int16 PacketType;
int16 PacketLength;
-#if PACKETVER >= 20120925
+#if PACKETVER_RE_NUM >= 20180912 || PACKETVER_ZERO_NUM >= 20180919 || PACKETVER_MAIN_NUM >= 20181002
+ uint8 invType;
+#endif
+#if PACKETVER >= 20120925 && PACKETVER_RE_NUM < 20180829 && PACKETVER_ZERO_NUM < 20180919 && PACKETVER_MAIN_NUM < 20181002
char name[NAME_LENGTH];
#endif
struct EQUIPITEM_INFO list[MAX_ITEMLIST];
@@ -1221,6 +1285,9 @@ struct packet_viewequip_ack {
#endif
int16 headpalette;
int16 bodypalette;
+#if PACKETVER_MAIN_NUM >= 20180801 || PACKETVER_RE_NUM >= 20180801 || PACKETVER_ZERO_NUM >= 20180808
+ int16 body2;
+#endif
uint8 sex;
struct EQUIPITEM_INFO list[MAX_INVENTORY];
} __attribute__((packed));
@@ -1350,7 +1417,7 @@ struct packet_wis_end {
int16 PacketType;
int8 result;
#if PACKETVER >= 20131223
- uint32 unknown;/* maybe AID, not sure what for (works sending as 0) */
+ uint32 AID;
#endif
} __attribute__((packed));
@@ -1835,6 +1902,14 @@ struct PACKET_ZC_FORMATSTRING_MSG {
char MessageString[];
} __attribute__((packed));
+struct PACKET_ZC_FORMATSTRING_MSG_COLOR {
+ uint16 PacketType;
+ uint16 PacketLength;
+ uint16 messageId;
+ uint32 color;
+ char messageString[];
+} __attribute__((packed));
+
struct PACKET_ZC_MSG_COLOR {
uint16 PacketType;
uint16 MessageId;
@@ -1883,9 +1958,17 @@ struct PACKET_CZ_REQ_STYLE_CHANGE {
int16 TopAccessory;
int16 MidAccessory;
int16 BottomAccessory;
-#if PACKETVER_RE_NUM >= 20180718
+} __attribute__((packed));
+
+struct PACKET_CZ_REQ_STYLE_CHANGE2 {
+ int16 PacketType;
+ int16 HeadPalette;
+ int16 HeadStyle;
+ int16 BodyPalette;
+ int16 TopAccessory;
+ int16 MidAccessory;
+ int16 BottomAccessory;
int16 BodyStyle;
-#endif
} __attribute__((packed));
struct PACKET_ZC_STYLE_CHANGE_RES {
@@ -2191,8 +2274,13 @@ struct PACKET_ZC_PROPERTY_HOMUN {
uint16 mdef;
uint16 flee;
uint16 amotion;
+#if PACKETVER < 20150513
+ uint16 hp;
+ uint16 maxHp;
+#else
uint32 hp;
uint32 maxHp;
+#endif
uint16 sp;
uint16 maxSp;
uint32 exp;
@@ -2639,7 +2727,7 @@ struct packet_achievement_update {
struct packet_achievement_reward_ack {
uint16 packet_id;
- uint8 received;
+ uint8 failed;
uint32 ach_id;
} __attribute__((packed));
@@ -2690,6 +2778,84 @@ struct PACKET_ZC_GROUP_ISALIVE {
uint8 isDead;
} __attribute__((packed));
+struct PACKET_ZC_GUILD_POSITION {
+ int16 packetType;
+ int16 packetLength;
+ uint32 AID;
+ char position[];
+} __attribute__((packed));
+
+struct PACKET_ZC_INVENTORY_MOVE_FAILED {
+ int16 packetType;
+ int16 index;
+ int16 unknown;
+} __attribute__((packed));
+
+#if PACKETVER_MAIN_NUM >= 20161019 || PACKETVER_RE_NUM >= 20160921 || defined(PACKETVER_ZERO)
+#define PACKET_ZC_ACK_BAN_GUILD PACKET_ZC_ACK_BAN_GUILD3
+#elif PACKETVER >= 20100803
+#define PACKET_ZC_ACK_BAN_GUILD PACKET_ZC_ACK_BAN_GUILD2
+#else
+#define PACKET_ZC_ACK_BAN_GUILD PACKET_ZC_ACK_BAN_GUILD1
+#endif
+
+struct PACKET_ZC_ACK_BAN_GUILD1 {
+ int16 packetType;
+ char name[NAME_LENGTH];
+ char reason[40];
+ char account_name[NAME_LENGTH];
+} __attribute__((packed));
+
+struct PACKET_ZC_ACK_BAN_GUILD2 {
+ int16 packetType;
+ char name[NAME_LENGTH];
+ char reason[40];
+} __attribute__((packed));
+
+struct PACKET_ZC_ACK_BAN_GUILD3 {
+ int16 packetType;
+ char reason[40];
+ uint32 GID;
+} __attribute__((packed));
+
+#if PACKETVER_MAIN_NUM >= 20161019 || PACKETVER_RE_NUM >= 20160921 || defined(PACKETVER_ZERO)
+#define PACKET_ZC_ACK_LEAVE_GUILD PACKET_ZC_ACK_LEAVE_GUILD2
+#else
+#define PACKET_ZC_ACK_LEAVE_GUILD PACKET_ZC_ACK_LEAVE_GUILD1
+#endif
+
+struct PACKET_ZC_ACK_LEAVE_GUILD1 {
+ int16 packetType;
+ char name[NAME_LENGTH];
+ char reason[40];
+} __attribute__((packed));
+
+struct PACKET_ZC_ACK_LEAVE_GUILD2 {
+ int16 packetType;
+ uint32 GID;
+ char reason[40];
+} __attribute__((packed));
+
+struct PACKET_CZ_MEMORIALDUNGEON_COMMAND {
+ int16 packetType;
+ int32 command;
+} __attribute__((packed));
+
+struct PACKET_ZC_REMOVE_EFFECT {
+ int16 packetType;
+ uint32 aid;
+ uint32 effectId;
+} __attribute__((packed));
+
+struct PACKET_ZC_CAMERA_INFO {
+ int16 packetType;
+ int8 action;
+ float range;
+ float rotation;
+ float latitude;
+} __attribute__((packed));
+
+
#if !defined(sun) && (!defined(__NETBSD__) || __NetBSD_Version__ >= 600000000) // NetBSD 5 and Solaris don't like pragma pack but accept the packed attribute
#pragma pack(pop)
#endif // not NetBSD < 6 / Solaris
diff --git a/src/map/pc.c b/src/map/pc.c
index 0aad00a56..b8a6912ee 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1459,7 +1459,7 @@ static int pc_set_hate_mob(struct map_session_data *sd, int pos, struct block_li
return 0; //Wrong size
}
sd->hate_mob[pos] = class_;
- pc_setglobalreg(sd,script->add_str(pc->sg_info[pos].hate_var),class_+1);
+ pc_setglobalreg(sd,script->add_variable(pc->sg_info[pos].hate_var),class_+1);
clif->hate_info(sd, pos, class_, 1);
return 1;
}
@@ -1473,27 +1473,28 @@ static int pc_reg_received(struct map_session_data *sd)
nullpo_ret(sd);
sd->vars_ok = true;
- sd->change_level_2nd = pc_readglobalreg(sd,script->add_str("jobchange_level"));
- sd->change_level_3rd = pc_readglobalreg(sd,script->add_str("jobchange_level_3rd"));
- sd->die_counter = pc_readglobalreg(sd,script->add_str("PC_DIE_COUNTER"));
+
+ sd->change_level_2nd = pc_readglobalreg(sd,script->add_variable("jobchange_level"));
+ sd->change_level_3rd = pc_readglobalreg(sd,script->add_variable("jobchange_level_3rd"));
+ sd->die_counter = pc_readglobalreg(sd,script->add_variable("PC_DIE_COUNTER"));
// Cash shop
- sd->cashPoints = pc_readaccountreg(sd,script->add_str("#CASHPOINTS"));
- sd->kafraPoints = pc_readaccountreg(sd,script->add_str("#KAFRAPOINTS"));
+ sd->cashPoints = pc_readaccountreg(sd,script->add_variable("#CASHPOINTS"));
+ sd->kafraPoints = pc_readaccountreg(sd,script->add_variable("#KAFRAPOINTS"));
// Cooking Exp
- sd->cook_mastery = pc_readglobalreg(sd,script->add_str("COOK_MASTERY"));
+ sd->cook_mastery = pc_readglobalreg(sd,script->add_variable("COOK_MASTERY"));
if ((sd->job & MAPID_BASEMASK) == MAPID_TAEKWON) {
// Better check for class rather than skill to prevent "skill resets" from unsetting this
- sd->mission_mobid = pc_readglobalreg(sd,script->add_str("TK_MISSION_ID"));
- sd->mission_count = pc_readglobalreg(sd,script->add_str("TK_MISSION_COUNT"));
+ sd->mission_mobid = pc_readglobalreg(sd,script->add_variable("TK_MISSION_ID"));
+ sd->mission_count = pc_readglobalreg(sd,script->add_variable("TK_MISSION_COUNT"));
}
//SG map and mob read [Komurka]
for (i = 0; i < MAX_PC_FEELHATE; i++) {
//for now - someone need to make reading from txt/sql
- int j = pc_readglobalreg(sd,script->add_str(pc->sg_info[i].feel_var));
+ int j = pc_readglobalreg(sd,script->add_variable(pc->sg_info[i].feel_var));
if (j != 0) {
sd->feel_map[i].index = j;
sd->feel_map[i].m = map->mapindex2mapid(j);
@@ -1501,24 +1502,24 @@ static int pc_reg_received(struct map_session_data *sd)
sd->feel_map[i].index = 0;
sd->feel_map[i].m = -1;
}
- sd->hate_mob[i] = pc_readglobalreg(sd,script->add_str(pc->sg_info[i].hate_var))-1;
+ sd->hate_mob[i] = pc_readglobalreg(sd,script->add_variable(pc->sg_info[i].hate_var))-1;
}
if ((i = pc->checkskill(sd,RG_PLAGIARISM)) > 0) {
- sd->cloneskill_id = pc_readglobalreg(sd,script->add_str("CLONE_SKILL"));
+ sd->cloneskill_id = pc_readglobalreg(sd,script->add_variable("CLONE_SKILL"));
if (sd->cloneskill_id > 0 && (idx = skill->get_index(sd->cloneskill_id)) > 0) {
sd->status.skill[idx].id = sd->cloneskill_id;
- sd->status.skill[idx].lv = pc_readglobalreg(sd,script->add_str("CLONE_SKILL_LV"));
+ sd->status.skill[idx].lv = pc_readglobalreg(sd,script->add_variable("CLONE_SKILL_LV"));
if (sd->status.skill[idx].lv > i)
sd->status.skill[idx].lv = i;
sd->status.skill[idx].flag = SKILL_FLAG_PLAGIARIZED;
}
}
if ((i = pc->checkskill(sd,SC_REPRODUCE)) > 0) {
- sd->reproduceskill_id = pc_readglobalreg(sd,script->add_str("REPRODUCE_SKILL"));
+ sd->reproduceskill_id = pc_readglobalreg(sd,script->add_variable("REPRODUCE_SKILL"));
if( sd->reproduceskill_id > 0 && (idx = skill->get_index(sd->reproduceskill_id)) > 0) {
sd->status.skill[idx].id = sd->reproduceskill_id;
- sd->status.skill[idx].lv = pc_readglobalreg(sd,script->add_str("REPRODUCE_SKILL_LV"));
+ sd->status.skill[idx].lv = pc_readglobalreg(sd,script->add_variable("REPRODUCE_SKILL_LV"));
if( i < sd->status.skill[idx].lv)
sd->status.skill[idx].lv = i;
sd->status.skill[idx].flag = SKILL_FLAG_PLAGIARIZED;
@@ -1964,7 +1965,7 @@ static int pc_calc_skilltree_normalize_job(struct map_session_data *sd)
}
- pc_setglobalreg(sd, script->add_str("jobchange_level"), sd->change_level_2nd);
+ pc_setglobalreg(sd, script->add_variable("jobchange_level"), sd->change_level_2nd);
}
if (skill_point < novice_skills + (sd->change_level_2nd - 1)) {
@@ -1977,7 +1978,7 @@ static int pc_calc_skilltree_normalize_job(struct map_session_data *sd)
- (sd->status.job_level - 1)
- (sd->change_level_2nd - 1)
- novice_skills;
- pc_setglobalreg(sd, script->add_str("jobchange_level_3rd"), sd->change_level_3rd);
+ pc_setglobalreg(sd, script->add_variable("jobchange_level_3rd"), sd->change_level_3rd);
}
if (skill_point < novice_skills + (sd->change_level_2nd - 1) + (sd->change_level_3rd - 1)) {
@@ -2074,7 +2075,7 @@ static int pc_disguise(struct map_session_data *sd, int class)
clif->spawn(&sd->bl);
if (class == sd->status.class && pc_iscarton(sd)) {
//It seems the cart info is lost on undisguise.
- clif->cartlist(sd);
+ clif->cartList(sd);
clif->updatestatus(sd,SP_CARTINFO);
}
if (sd->chat_id != 0) {
@@ -4401,8 +4402,6 @@ static int pc_insert_card(struct map_session_data *sd, int idx_card, int idx_equ
static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
{
int skill_lv, rate1 = 0, rate2 = 0;
- if (orig_value <= 0)
- return 0;
if ((skill_lv=pc->checkskill(sd,MC_DISCOUNT)) > 0) // merchant discount
rate1 = 5+skill_lv*2-((skill_lv==10)? 1:0);
if ((skill_lv=pc->checkskill(sd,RG_COMPULSION)) > 0) // rogue discount
@@ -4411,8 +4410,9 @@ static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
rate1 = rate2;
if (rate1 != 0)
orig_value = apply_percentrate(orig_value, 100-rate1, 100);
- if (orig_value < 1)
- orig_value = 1;
+
+ if (orig_value < battle_config.min_item_buy_price)
+ orig_value = battle_config.min_item_buy_price;
return orig_value;
}
@@ -4422,14 +4422,13 @@ static int pc_modifybuyvalue(struct map_session_data *sd, int orig_value)
static int pc_modifysellvalue(struct map_session_data *sd, int orig_value)
{
int skill_lv, rate = 0;
- if (orig_value <= 0)
- return 0;
if ((skill_lv=pc->checkskill(sd,MC_OVERCHARGE)) > 0) //OverCharge
rate = 5+skill_lv*2-((skill_lv==10)? 1:0);
if (rate != 0)
orig_value = apply_percentrate(orig_value, 100+rate, 100);
- if (orig_value < 1)
- orig_value = 1;
+
+ if (orig_value < battle_config.min_item_sell_price)
+ orig_value = battle_config.min_item_sell_price;
return orig_value;
}
@@ -4505,14 +4504,15 @@ static int pc_payzeny(struct map_session_data *sd, int zeny, enum e_log_pick_typ
sd->status.zeny -= zeny;
clif->updatestatus(sd,SP_ZENY);
- achievement->validate_zeny(sd, -zeny); // Achievements [Smokexyz/Hercules]
+ if (zeny > 0) {
+ achievement->validate_zeny(sd, -zeny); // Achievements [Smokexyz/Hercules]
+ logs->zeny(sd, type, tsd ? tsd : sd, -zeny);
- if(!tsd) tsd = sd;
- logs->zeny(sd, type, tsd, -zeny);
- if( zeny > 0 && sd->state.showzeny ) {
- char output[255];
- sprintf(output, "Removed %dz.", zeny);
- clif_disp_onlyself(sd, output);
+ if (sd->state.showzeny) {
+ char output[255];
+ sprintf(output, "Removed %dz.", zeny);
+ clif_disp_onlyself(sd, output);
+ }
}
return 0;
@@ -4523,7 +4523,7 @@ static int pc_payzeny(struct map_session_data *sd, int zeny, enum e_log_pick_typ
*
* @param price Price of the item.
* @param points Provided kafra points.
- *
+ *
* @return points Leftover kafra points.
*/
//Changed Kafrapoints calculation. [Normynator]
@@ -4555,15 +4555,15 @@ static int pc_paycash(struct map_session_data *sd, int price, int points)
return -1;
}
- pc_setaccountreg(sd, script->add_str("#CASHPOINTS"), sd->cashPoints - cash);
- pc_setaccountreg(sd, script->add_str("#KAFRAPOINTS"), sd->kafraPoints - mempoints);
+ pc_setaccountreg(sd, script->add_variable("#CASHPOINTS"), sd->cashPoints - cash);
+ pc_setaccountreg(sd, script->add_variable("#KAFRAPOINTS"), sd->kafraPoints - mempoints);
if (battle_config.cashshop_show_points) {
char output[128];
sprintf(output, msg_sd(sd,504), points, cash, sd->kafraPoints, sd->cashPoints);
clif_disp_onlyself(sd, output);
}
-
+
return points;
}
@@ -4582,7 +4582,7 @@ static int pc_getcash(struct map_session_data *sd, int cash, int points)
cash = MAX_ZENY-sd->cashPoints;
}
- pc_setaccountreg(sd, script->add_str("#CASHPOINTS"), sd->cashPoints+cash);
+ pc_setaccountreg(sd, script->add_variable("#CASHPOINTS"), sd->cashPoints+cash);
if( battle_config.cashshop_show_points )
{
@@ -4605,7 +4605,7 @@ static int pc_getcash(struct map_session_data *sd, int cash, int points)
points = MAX_ZENY-sd->kafraPoints;
}
- pc_setaccountreg(sd, script->add_str("#KAFRAPOINTS"), sd->kafraPoints+points);
+ pc_setaccountreg(sd, script->add_variable("#KAFRAPOINTS"), sd->kafraPoints+points);
if( battle_config.cashshop_show_points )
{
@@ -4643,14 +4643,15 @@ static int pc_getzeny(struct map_session_data *sd, int zeny, enum e_log_pick_typ
sd->status.zeny += zeny;
clif->updatestatus(sd,SP_ZENY);
- achievement->validate_zeny(sd, zeny); // Achievements [Smokexyz/Hercules]
+ if (zeny > 0) {
+ achievement->validate_zeny(sd, zeny); // Achievements [Smokexyz/Hercules]
+ logs->zeny(sd, type, tsd ? tsd : sd, zeny);
- if(!tsd) tsd = sd;
- logs->zeny(sd, type, tsd, zeny);
- if( zeny > 0 && sd->state.showzeny ) {
- char output[255];
- sprintf(output, "Gained %dz.", zeny);
- clif_disp_onlyself(sd, output);
+ if (sd->state.showzeny) {
+ char output[255];
+ sprintf(output, "Gained %dz.", zeny);
+ clif_disp_onlyself(sd, output);
+ }
}
return 0;
@@ -4688,7 +4689,7 @@ static int pc_search_inventory(struct map_session_data *sd, int item_id)
* 6 = ?
* 7 = stack limitation
*------------------------------------------*/
-static int pc_additem(struct map_session_data *sd, struct item *item_data, int amount, e_log_pick_type log_type)
+static int pc_additem(struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type)
{
struct item_data *data;
int i;
@@ -5789,7 +5790,7 @@ static int pc_setpos(struct map_session_data *sd, unsigned short map_index, int
for (i = 0; i < VECTOR_LENGTH(sd->script_queues); i++) {
struct script_queue *queue = script->queue(VECTOR_INDEX(sd->script_queues, i));
if (queue && queue->event_mapchange[0] != '\0') {
- pc->setregstr(sd, script->add_str("@Queue_Destination_Map$"), map->list[m].name);
+ pc->setregstr(sd, script->add_variable("@Queue_Destination_Map$"), map->list[m].name);
npc->event(sd, queue->event_mapchange, 0);
}
}
@@ -7220,7 +7221,7 @@ static uint64 pc_thisjobexp(const struct map_session_data *sd)
const struct class_exp_group *exp_group = NULL;
nullpo_ret(sd);
-
+
if (sd->status.job_level > pc->maxjoblv(sd) || sd->status.job_level <= 1)
return 0;
@@ -7696,7 +7697,7 @@ static int pc_resetstate(struct map_session_data *sd)
if( sd->mission_mobid ) { //bugreport:2200
sd->mission_mobid = 0;
sd->mission_count = 0;
- pc_setglobalreg(sd,script->add_str("TK_MISSION_ID"), 0);
+ pc_setglobalreg(sd,script->add_variable("TK_MISSION_ID"), 0);
}
status_calc_pc(sd,SCO_NONE);
@@ -7856,7 +7857,7 @@ static int pc_resetfeel(struct map_session_data *sd)
{
sd->feel_map[i].m = -1;
sd->feel_map[i].index = 0;
- pc_setglobalreg(sd,script->add_str(pc->sg_info[i].feel_var),0);
+ pc_setglobalreg(sd,script->add_variable(pc->sg_info[i].feel_var),0);
}
return 0;
@@ -7869,7 +7870,7 @@ static int pc_resethate(struct map_session_data *sd)
for (i = 0; i < MAX_PC_FEELHATE; i++) {
sd->hate_mob[i] = -1;
- pc_setglobalreg(sd,script->add_str(pc->sg_info[i].hate_var),0);
+ pc_setglobalreg(sd,script->add_variable(pc->sg_info[i].hate_var),0);
}
return 0;
}
@@ -8059,7 +8060,7 @@ static int pc_dead(struct map_session_data *sd, struct block_list *src)
if (sd->npc_id && sd->st && sd->st->state != RUN)
npc->event_dequeue(sd);
- pc_setglobalreg(sd,script->add_str("PC_DIE_COUNTER"),sd->die_counter+1);
+ pc_setglobalreg(sd,script->add_variable("PC_DIE_COUNTER"),sd->die_counter+1);
pc->setparam(sd, SP_KILLERRID, src?src->id:0);
if( sd->bg_id ) {/* TODO: purge when bgqueue is deemed ok */
@@ -8920,11 +8921,11 @@ static int pc_jobchange(struct map_session_data *sd, int class, int upper)
if ((job & JOBL_2) != 0 && (sd->job & JOBL_2) == 0 && (job & MAPID_UPPERMASK) != MAPID_SUPER_NOVICE) {
// changing from 1st to 2nd job
sd->change_level_2nd = sd->status.job_level;
- pc_setglobalreg(sd, script->add_str("jobchange_level"), sd->change_level_2nd);
+ pc_setglobalreg(sd, script->add_variable("jobchange_level"), sd->change_level_2nd);
} else if((job & JOBL_THIRD) != 0 && (sd->job & JOBL_THIRD) == 0) {
// changing from 2nd to 3rd job
sd->change_level_3rd = sd->status.job_level;
- pc_setglobalreg(sd, script->add_str("jobchange_level_3rd"), sd->change_level_3rd);
+ pc_setglobalreg(sd, script->add_variable("jobchange_level_3rd"), sd->change_level_3rd);
}
if(sd->cloneskill_id) {
@@ -8936,8 +8937,8 @@ static int pc_jobchange(struct map_session_data *sd, int class, int upper)
clif->deleteskill(sd,sd->cloneskill_id);
}
sd->cloneskill_id = 0;
- pc_setglobalreg(sd, script->add_str("CLONE_SKILL"), 0);
- pc_setglobalreg(sd, script->add_str("CLONE_SKILL_LV"), 0);
+ pc_setglobalreg(sd, script->add_variable("CLONE_SKILL"), 0);
+ pc_setglobalreg(sd, script->add_variable("CLONE_SKILL_LV"), 0);
}
if(sd->reproduceskill_id) {
@@ -8949,8 +8950,8 @@ static int pc_jobchange(struct map_session_data *sd, int class, int upper)
clif->deleteskill(sd,sd->reproduceskill_id);
}
sd->reproduceskill_id = 0;
- pc_setglobalreg(sd, script->add_str("REPRODUCE_SKILL"),0);
- pc_setglobalreg(sd, script->add_str("REPRODUCE_SKILL_LV"),0);
+ pc_setglobalreg(sd, script->add_variable("REPRODUCE_SKILL"),0);
+ pc_setglobalreg(sd, script->add_variable("REPRODUCE_SKILL_LV"),0);
}
if ((job & MAPID_UPPERMASK) != (sd->job & MAPID_UPPERMASK)) { //Things to remove when changing class tree.
@@ -9197,7 +9198,7 @@ static int pc_setoption(struct map_session_data *sd, int type)
#ifndef NEW_CARTS
if( type&OPTION_CART && !( p_type&OPTION_CART ) ) { //Cart On
- clif->cartlist(sd);
+ clif->cartList(sd);
clif->updatestatus(sd, SP_CARTINFO);
if(pc->checkskill(sd, MC_PUSHCART) < 10)
status_calc_pc(sd,SCO_NONE); //Apply speed penalty.
@@ -9304,7 +9305,7 @@ static int pc_setcart(struct map_session_data *sd, int type)
break;
default:/* everything else is an allowed ID so we can move on */
if( !sd->sc.data[SC_PUSH_CART] ) /* first time, so fill cart data */
- clif->cartlist(sd);
+ clif->cartList(sd);
clif->updatestatus(sd, SP_CARTINFO);
sc_start(NULL,&sd->bl, SC_PUSH_CART, 100, type, 0);
clif->sc_load(&sd->bl, sd->bl.id, AREA, SI_ON_PUSH_CART, type, 0, 0);
diff --git a/src/map/pc.h b/src/map/pc.h
index 17a9b8200..4ee5f560b 100644
--- a/src/map/pc.h
+++ b/src/map/pc.h
@@ -937,7 +937,7 @@ END_ZEROED_BLOCK; /* End */
int (*inventoryblank) (struct map_session_data *sd);
int (*search_inventory) (struct map_session_data *sd,int item_id);
int (*payzeny) (struct map_session_data *sd,int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
- int (*additem) (struct map_session_data *sd,struct item *item_data,int amount,e_log_pick_type log_type);
+ int (*additem) (struct map_session_data *sd, const struct item *item_data, int amount, e_log_pick_type log_type);
int (*getzeny) (struct map_session_data *sd,int zeny, enum e_log_pick_type type, struct map_session_data *tsd);
int (*delitem) (struct map_session_data *sd,int n,int amount,int type, short reason, e_log_pick_type log_type);
diff --git a/src/map/pet.c b/src/map/pet.c
index cfb3e8253..c32a92b78 100644
--- a/src/map/pet.c
+++ b/src/map/pet.c
@@ -350,7 +350,7 @@ static int pet_return_egg(struct map_session_data *sd, struct pet_data *pd)
sd->status.inventory[i].bound = IBT_NONE;
}
#if PACKETVER >= 20180704
- clif->inventorylist(sd);
+ clif->inventoryList(sd);
clif->send_petdata(sd, pd, 6, 0);
#endif
pd->pet.incubate = 1;
diff --git a/src/map/quest.c b/src/map/quest.c
index ab0b06974..02bf7638b 100644
--- a/src/map/quest.c
+++ b/src/map/quest.c
@@ -805,18 +805,17 @@ static bool quest_questinfo_validate_joblevel(struct map_session_data *sd, struc
*/
static bool quest_questinfo_validate_items(struct map_session_data *sd, struct questinfo *qi)
{
- int i, idx;
-
nullpo_retr(false, sd);
nullpo_retr(false, qi);
-
- for (i = 0; i < VECTOR_LENGTH(qi->items); i++) {
- struct item *item = &VECTOR_INDEX(qi->items, i);
- idx = pc->search_inventory(sd, item->nameid);
- if (idx == INDEX_NOT_FOUND)
- return false;
- if (sd->status.inventory[idx].amount < item->amount)
+ for (int i = 0; i < VECTOR_LENGTH(qi->items); i++) {
+ struct questinfo_itemreq *item = &VECTOR_INDEX(qi->items, i);
+ int count = 0;
+ for (int j = 0; j < MAX_INVENTORY; j++) {
+ if (sd->status.inventory[j].nameid == item->nameid)
+ count += sd->status.inventory[j].amount;
+ }
+ if (count < item->min || count > item->max)
return false;
}
@@ -887,7 +886,14 @@ static bool quest_questinfo_validate_quests(struct map_session_data *sd, struct
for (i = 0; i < VECTOR_LENGTH(qi->quest_requirement); i++) {
struct questinfo_qreq *quest_requirement = &VECTOR_INDEX(qi->quest_requirement, i);
- if (quest->check(sd, quest_requirement->id, HAVEQUEST) != quest_requirement->state)
+ int quest_progress = quest->check(sd, quest_requirement->id, HAVEQUEST);
+ if (quest_progress == -1)
+ quest_progress = 0;
+ else if (quest_progress == 0 || quest_progress == 1)
+ quest_progress = 1;
+ else
+ quest_progress = 2;
+ if (quest_progress != quest_requirement->state)
return false;
}
diff --git a/src/map/script.c b/src/map/script.c
index 846075c0e..5eed58977 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -613,6 +613,18 @@ static int script_add_str(const char *p)
return script->str_num++;
}
+static int script_add_variable(const char *varname)
+{
+ int key = script->search_str(varname);
+
+ if (key < 0) {
+ key = script->add_str(varname);
+ script->str_data[key].type = C_NAME;
+ }
+
+ return key;
+}
+
/**
* Appends 1 byte to the script buffer.
*
@@ -1366,6 +1378,11 @@ static const char *parse_simpleexpr_name(const char *p)
disp_error_message("parse_simpleexpr: unmatched ']'", p);
++p;
script->addc(C_FUNC);
+ } else if (script->str_data[l].type == C_INT) {
+ script->addc(C_NAME);
+ script->addb(l);
+ script->addb(l >> 8);
+ script->addb(l >> 16);
} else {
script->addl(l);
}
@@ -2886,8 +2903,7 @@ static struct script_data *get_val(struct script_state *st, struct script_data *
return data;
}
- //##TODO use reference_tovariable(data) when it's confirmed that it works [FlavioJS]
- if (!reference_toconstant(data) && not_server_variable(prefix) && reference_getref(data) == NULL) {
+ if (((reference_tovariable(data) && not_server_variable(prefix)) || reference_toparam(data)) && reference_getref(data) == NULL) {
sd = script->rid2sd(st);
if (sd == NULL) {// needs player attached
if (postfix == '$') {// string variable
@@ -3032,6 +3048,10 @@ static const void *get_val2(struct script_state *st, int64 uid, struct reg_db *r
script->get_val(st, data);
if (data->type == C_INT) // u.num is int32 because it comes from script->get_val
return (const void *)h64BPTRSIZE((int32)data->u.num);
+ else if (data_isreference(data) && reference_toconstant(data))
+ return (const void *)h64BPTRSIZE((int32)reference_getconstant(data));
+ else if (data_isreference(data) && reference_toparam(data))
+ return (const void *)h64BPTRSIZE((int32)reference_getparamtype(data));
else
return (const void *)h64BPTRSIZE(data->u.str);
}
@@ -3296,95 +3316,28 @@ static void set_reg_npcscope_str(struct script_state *st, struct reg_db *n, int6
static void set_reg_pc_ref_str(struct script_state *st, struct reg_db *n, int64 num, const char *name, const char *str)
{
- struct script_reg_str *p = NULL;
- unsigned int index = script_getvaridx(num);
-
- nullpo_retv(n);
+ struct DBIterator *iter = db_iterator(map->pc_db);
- if ((p = i64db_get(n->vars, num)) != NULL) {
- if (str[0]) {
- if (p->value) {
- aFree(p->value);
- } else if (index) {
- script->array_update(n, num, false);
- }
- p->value = aStrdup(str);
- } else {
- p->value = NULL;
- if (index) {
- script->array_update(n, num, true);
- }
- }
-
- if (!pc->reg_load) {
- p->flag.update = 1;
- }
- } else if (str[0]) {
- struct DBData prev;
- if (index) {
- script->array_update(n, num, false);
- }
-
- p = ers_alloc(pc->str_reg_ers, struct script_reg_str);
- p->value = aStrdup(str);
-
- if (!pc->reg_load) {
- p->flag.update = 1;
- }
- p->flag.type = 1;
-
- if(n->vars->put(n->vars, DB->i642key(num), DB->ptr2data(p), &prev)) {
- p = DB->data2ptr(&prev);
- if (p->value) {
- aFree(p->value);
- }
- ers_free(pc->str_reg_ers, p);
+ for (struct map_session_data *sd = dbi_first(iter); dbi_exists(iter); sd = dbi_next(iter)) {
+ if (sd != NULL && n == &sd->regs) {
+ pc->setregistry_str(sd, num, str);
+ break;
}
}
+ dbi_destroy(iter);
}
static void set_reg_pc_ref_num(struct script_state *st, struct reg_db *n, int64 num, const char *name, int val)
{
- struct script_reg_num *p = NULL;
- unsigned int index = script_getvaridx(num);
-
- nullpo_retv(n);
+ struct DBIterator *iter = db_iterator(map->pc_db);
- if ((p = i64db_get(n->vars, num)) != NULL) {
- if (val) {
- if (!p->value && index) {
- script->array_update(n, num, false);
- }
- p->value = val;
- } else {
- p->value = 0;
- if (index) {
- script->array_update(n, num, true);
- }
- }
-
- if (!pc->reg_load) {
- p->flag.update = 1;
- }
- } else if (val) {
- struct DBData prev;
- if (index) {
- script->array_update(n, num, false);
- }
-
- p = ers_alloc(pc->num_reg_ers, struct script_reg_num);
- p->value = val;
-
- if (!pc->reg_load) {
- p->flag.update = 1;
- }
- p->flag.type = 1;
-
- if(n->vars->put(n->vars, DB->i642key(num), DB->ptr2data(p), &prev)) {
- p = DB->data2ptr(&prev);
- ers_free(pc->num_reg_ers, p);
+ for (struct map_session_data *sd = dbi_first(iter); dbi_exists(iter); sd = dbi_next(iter)) {
+ if (sd != NULL && n == &sd->regs) {
+ pc->setregistry(sd, num, val);
+ break;
}
}
+ dbi_destroy(iter);
}
static void set_reg_npcscope_num(struct script_state *st, struct reg_db *n, int64 num, const char *name, int val)
@@ -3460,6 +3413,19 @@ static int set_reg(struct script_state *st, struct map_session_data *sd, int64 n
nullpo_ret(name);
prefix = name[0];
+ if (script->str_data[script_getvarid(num)].type != C_NAME && script->str_data[script_getvarid(num)].type != C_PARAM) {
+ ShowError("script:set_reg: not a variable! '%s'\n", name);
+
+ // to avoid this don't do script->add_str(") without setting its type.
+ // either use script->add_variable() or manually set the type
+
+ if (st) {
+ script->reportsrc(st);
+ st->state = END;
+ }
+ return 0;
+ }
+
if (strlen(name) > SCRIPT_VARNAME_LENGTH) {
ShowError("script:set_reg: variable name too long. '%s'\n", name);
if (st) {
@@ -3579,12 +3545,26 @@ static int set_reg(struct script_state *st, struct map_session_data *sd, int64 n
static int set_var(struct map_session_data *sd, char *name, void *val)
{
- return script->set_reg(NULL, sd, reference_uid(script->add_str(name),0), name, val, NULL);
+ int key = script->add_variable(name);
+
+ if (script->str_data[key].type != C_NAME) {
+ ShowError("script:setd_sub: `%s` is already used by something that is not a variable.\n", name);
+ return -1;
+ }
+
+ return script->set_reg(NULL, sd, reference_uid(key, 0), name, val, NULL);
}
static void setd_sub(struct script_state *st, struct map_session_data *sd, const char *varname, int elem, const void *value, struct reg_db *ref)
{
- script->set_reg(st, sd, reference_uid(script->add_str(varname),elem), varname, value, ref);
+ int key = script->add_variable(varname);
+
+ if (script->str_data[key].type != C_NAME) {
+ ShowError("script:setd_sub: `%s` is already used by something that is not a variable.\n", varname);
+ return;
+ }
+
+ script->set_reg(st, sd, reference_uid(key, elem), varname, value, ref);
}
/// Converts the data to a string
@@ -4119,10 +4099,10 @@ static void op_2str(struct script_state *st, int op, const char *s1, const char
int i;
for (i = 0; i < offsetcount; i++) {
libpcre->get_substring(s1, offsets, offsetcount, i, &pcre_match);
- mapreg->setregstr(reference_uid(script->add_str("$@regexmatch$"), i), pcre_match);
+ mapreg->setregstr(reference_uid(script->add_variable("$@regexmatch$"), i), pcre_match);
libpcre->free_substring(pcre_match);
}
- mapreg->setreg(script->add_str("$@regexmatchcount"), i);
+ mapreg->setreg(script->add_variable("$@regexmatchcount"), i);
a = offsetcount;
} else { // C_RE_NE
a = (offsetcount == 0);
@@ -4905,7 +4885,12 @@ static void script_cleararray_pc(struct map_session_data *sd, const char *varnam
unsigned int i, *list = NULL, size = 0;
int key;
- key = script->add_str(varname);
+ key = script->add_variable(varname);
+
+ if (script->str_data[key].type != C_NAME) {
+ ShowError("script:cleararray_pc: `%s` is already used by something that is not a variable.\n", varname);
+ return;
+ }
if( !(src = script->array_src(NULL,sd,varname,NULL) ) )
return;
@@ -4935,7 +4920,12 @@ static void script_setarray_pc(struct map_session_data *sd, const char *varname,
return;
}
- key = ( refcache && refcache[0] ) ? refcache[0] : script->add_str(varname);
+ key = ( refcache && refcache[0] ) ? refcache[0] : script->add_variable(varname);
+
+ if (script->str_data[key].type != C_NAME) {
+ ShowError("script:setarray_pc: `%s` is already used by something that is not a variable.\n", varname);
+ return;
+ }
script->set_reg(NULL,sd,reference_uid(key, idx),varname,value,NULL);
@@ -5908,10 +5898,14 @@ static bool script_sprintf_helper(struct script_state *st, int start, struct Str
static BUILDIN(mes)
{
struct map_session_data *sd = script->rid2sd(st);
+
if (sd == NULL)
return true;
- clif->scriptmes(sd, st->oid, script_getstr(st, 2));
+ if (script_hasdata(st, 2))
+ clif->scriptmes(sd, st->oid, script_getstr(st, 2));
+ else
+ clif->scriptmes(sd, st->oid, "");
return true;
}
@@ -6162,7 +6156,7 @@ static BUILDIN(menu)
st->state = END;
return false;
}
- pc->setreg(sd, script->add_str("@menu"), menu);
+ pc->setreg(sd, script->add_variable("@menu"), menu);
st->pos = script_getnum(st, i + 1);
st->state = GOTO;
}
@@ -6235,7 +6229,7 @@ static BUILDIN(select)
if( sd->npc_menu <= 0 )
break;// entry found
}
- pc->setreg(sd, script->add_str("@menu"), menu);
+ pc->setreg(sd, script->add_variable("@menu"), menu);
script_pushint(st, menu);
st->state = RUN;
}
@@ -6302,7 +6296,7 @@ static BUILDIN(prompt)
else if( sd->npc_menu == 0xff )
{// Cancel was pressed
sd->state.menu_or_input = 0;
- pc->setreg(sd, script->add_str("@menu"), 0xff);
+ pc->setreg(sd, script->add_variable("@menu"), 0xff);
script_pushint(st, 0xff);
st->state = RUN;
}
@@ -6318,7 +6312,7 @@ static BUILDIN(prompt)
if( sd->npc_menu <= 0 )
break;// entry found
}
- pc->setreg(sd, script->add_str("@menu"), menu);
+ pc->setreg(sd, script->add_variable("@menu"), menu);
script_pushint(st, menu);
st->state = RUN;
}
@@ -8857,19 +8851,19 @@ static BUILDIN(getpartymember)
if(p->party.member[i].account_id) {
switch (type) {
case 2:
- mapreg->setreg(reference_uid(script->add_str("$@partymemberaid"), j),p->party.member[i].account_id);
+ mapreg->setreg(reference_uid(script->add_variable("$@partymemberaid"), j),p->party.member[i].account_id);
break;
case 1:
- mapreg->setreg(reference_uid(script->add_str("$@partymembercid"), j),p->party.member[i].char_id);
+ mapreg->setreg(reference_uid(script->add_variable("$@partymembercid"), j),p->party.member[i].char_id);
break;
default:
- mapreg->setregstr(reference_uid(script->add_str("$@partymembername$"), j),p->party.member[i].name);
+ mapreg->setregstr(reference_uid(script->add_variable("$@partymembername$"), j),p->party.member[i].name);
}
j++;
}
}
}
- mapreg->setreg(script->add_str("$@partymembercount"),j);
+ mapreg->setreg(script->add_variable("$@partymembercount"),j);
return true;
}
@@ -8999,20 +8993,20 @@ static BUILDIN(getguildmember)
if ( g->member[i].account_id ) {
switch (type) {
case 2:
- mapreg->setreg(reference_uid(script->add_str("$@guildmemberaid"), j),g->member[i].account_id);
+ mapreg->setreg(reference_uid(script->add_variable("$@guildmemberaid"), j),g->member[i].account_id);
break;
case 1:
- mapreg->setreg(reference_uid(script->add_str("$@guildmembercid"), j), g->member[i].char_id);
+ mapreg->setreg(reference_uid(script->add_variable("$@guildmembercid"), j), g->member[i].char_id);
break;
default:
- mapreg->setregstr(reference_uid(script->add_str("$@guildmembername$"), j), g->member[i].name);
+ mapreg->setregstr(reference_uid(script->add_variable("$@guildmembername$"), j), g->member[i].name);
break;
}
j++;
}
}
}
- mapreg->setreg(script->add_str("$@guildmembercount"), j);
+ mapreg->setreg(script->add_variable("$@guildmembercount"), j);
return true;
}
@@ -9304,7 +9298,7 @@ static BUILDIN(repair)
if(num==repaircounter) {
sd->status.inventory[i].attribute |= ATTR_BROKEN;
sd->status.inventory[i].attribute ^= ATTR_BROKEN;
- clif->equiplist(sd);
+ clif->equipList(sd);
clif->produce_effect(sd, 0, sd->status.inventory[i].nameid);
clif->misceffect(&sd->bl, 3);
break;
@@ -9341,7 +9335,7 @@ static BUILDIN(repairall)
if(repaircounter)
{
clif->misceffect(&sd->bl, 3);
- clif->equiplist(sd);
+ clif->equipList(sd);
}
return true;
@@ -10917,13 +10911,13 @@ static BUILDIN(getmobdrops)
if( itemdb->exists(monster->dropitem[i].nameid) == NULL )
continue;
- mapreg->setreg(reference_uid(script->add_str("$@MobDrop_item"), j), monster->dropitem[i].nameid);
- mapreg->setreg(reference_uid(script->add_str("$@MobDrop_rate"), j), monster->dropitem[i].p);
+ mapreg->setreg(reference_uid(script->add_variable("$@MobDrop_item"), j), monster->dropitem[i].nameid);
+ mapreg->setreg(reference_uid(script->add_variable("$@MobDrop_rate"), j), monster->dropitem[i].p);
j++;
}
- mapreg->setreg(script->add_str("$@MobDrop_count"), j);
+ mapreg->setreg(script->add_variable("$@MobDrop_count"), j);
script_pushint(st, 1);
return true;
@@ -12274,7 +12268,9 @@ static BUILDIN(sc_end)
}
//This should help status_change_end force disabling the SC in case it has no limit.
- sce->val1 = sce->val2 = sce->val3 = sce->val4 = 0;
+ if (type != SC_BERSERK)
+ sce->val1 = 0; // SC_BERSERK requires skill_lv that's stored in sce->val1 when being removed [KirieZ]
+ sce->val2 = sce->val3 = sce->val4 = 0;
status_change_end(bl, (sc_type)type, INVALID_TIMER);
}
else
@@ -12361,9 +12357,18 @@ static BUILDIN(getstatus)
*------------------------------------------*/
static BUILDIN(debugmes)
{
- const char *str;
- str=script_getstr(st,2);
- ShowDebug("script debug : %d %d : %s\n",st->rid,st->oid,str);
+ struct StringBuf buf;
+ StrBuf->Init(&buf);
+
+ if (!script->sprintf_helper(st, 2, &buf)) {
+ StrBuf->Destroy(&buf);
+ script_pushint(st, 0);
+ return false;
+ }
+
+ ShowDebug("script debug : %d %d : %s\n", st->rid, st->oid, StrBuf->Value(&buf));
+ StrBuf->Destroy(&buf);
+ script_pushint(st, 1);
return true;
}
@@ -12854,7 +12859,7 @@ static BUILDIN(getwaitingroomstate)
for (i = 0; i < cd->users; i++) {
struct map_session_data *sd = cd->usersd[i];
nullpo_retr(false, sd);
- mapreg->setreg(reference_uid(script->add_str("$@chatmembers"), i), sd->bl.id);
+ mapreg->setreg(reference_uid(script->add_variable("$@chatmembers"), i), sd->bl.id);
}
script_pushint(st, cd->users);
break;
@@ -12924,7 +12929,7 @@ static BUILDIN(warpwaitingpc)
pc->payzeny(sd, cd->zeny, LOG_TYPE_NPC, NULL);
}
- mapreg->setreg(reference_uid(script->add_str("$@warpwaitingpc"), i), sd->bl.id);
+ mapreg->setreg(reference_uid(script->add_variable("$@warpwaitingpc"), i), sd->bl.id);
if( strcmp(map_name,"Random") == 0 )
pc->randomwarp(sd,CLR_TELEPORT);
@@ -12933,7 +12938,7 @@ static BUILDIN(warpwaitingpc)
else
pc->setpos(sd, script->mapindexname2id(st,map_name), x, y, CLR_OUTSIGHT);
}
- mapreg->setreg(script->add_str("$@warpwaitingpcnum"), i);
+ mapreg->setreg(script->add_variable("$@warpwaitingpcnum"), i);
return true;
}
@@ -14809,34 +14814,34 @@ static BUILDIN(getinventorylist)
for(i=0;i<MAX_INVENTORY;i++) {
if(sd->status.inventory[i].nameid > 0 && sd->status.inventory[i].amount > 0) {
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_id"), j),sd->status.inventory[i].nameid);
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_amount"), j),sd->status.inventory[i].amount);
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_id"), j),sd->status.inventory[i].nameid);
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_amount"), j),sd->status.inventory[i].amount);
if(sd->status.inventory[i].equip) {
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),pc->equippoint(sd,i));
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_equip"), j),pc->equippoint(sd,i));
} else {
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_equip"), j),0);
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_equip"), j),0);
}
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_refine"), j),sd->status.inventory[i].refine);
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_identify"), j),sd->status.inventory[i].identify);
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_attribute"), j),sd->status.inventory[i].attribute);
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_refine"), j),sd->status.inventory[i].refine);
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_identify"), j),sd->status.inventory[i].identify);
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_attribute"), j),sd->status.inventory[i].attribute);
for (k = 0; k < MAX_SLOTS; k++) {
sprintf(card_var, "@inventorylist_card%d",k+1);
- pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.inventory[i].card[k]);
+ pc->setreg(sd,reference_uid(script->add_variable(card_var), j),sd->status.inventory[i].card[k]);
}
for (k = 0; k < MAX_ITEM_OPTIONS; k++) {
sprintf(card_var, "@inventorylist_opt_id%d", k + 1);
- pc->setreg(sd, reference_uid(script->add_str(card_var), j), sd->status.inventory[i].option[k].index);
+ pc->setreg(sd, reference_uid(script->add_variable(card_var), j), sd->status.inventory[i].option[k].index);
sprintf(card_var, "@inventorylist_opt_val%d", k + 1);
- pc->setreg(sd, reference_uid(script->add_str(card_var), j), sd->status.inventory[i].option[k].value);
+ pc->setreg(sd, reference_uid(script->add_variable(card_var), j), sd->status.inventory[i].option[k].value);
sprintf(card_var, "@inventorylist_opt_param%d", k + 1);
- pc->setreg(sd, reference_uid(script->add_str(card_var), j), sd->status.inventory[i].option[k].param);
+ pc->setreg(sd, reference_uid(script->add_variable(card_var), j), sd->status.inventory[i].option[k].param);
}
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_expire"), j),sd->status.inventory[i].expire_time);
- pc->setreg(sd,reference_uid(script->add_str("@inventorylist_bound"), j),sd->status.inventory[i].bound);
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_expire"), j),sd->status.inventory[i].expire_time);
+ pc->setreg(sd,reference_uid(script->add_variable("@inventorylist_bound"), j),sd->status.inventory[i].bound);
j++;
}
}
- pc->setreg(sd,script->add_str("@inventorylist_count"),j);
+ pc->setreg(sd,script->add_variable("@inventorylist_count"),j);
return true;
}
@@ -14850,30 +14855,30 @@ static BUILDIN(getcartinventorylist)
for(i=0;i<MAX_CART;i++) {
if(sd->status.cart[i].nameid > 0 && sd->status.cart[i].amount > 0) {
- pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_id"), j),sd->status.cart[i].nameid);
- pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_amount"), j),sd->status.cart[i].amount);
- pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_equip"), j),sd->status.cart[i].equip);
- pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_refine"), j),sd->status.cart[i].refine);
- pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_identify"), j),sd->status.cart[i].identify);
- pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_attribute"), j),sd->status.cart[i].attribute);
+ pc->setreg(sd,reference_uid(script->add_variable("@cartinventorylist_id"), j),sd->status.cart[i].nameid);
+ pc->setreg(sd,reference_uid(script->add_variable("@cartinventorylist_amount"), j),sd->status.cart[i].amount);
+ pc->setreg(sd,reference_uid(script->add_variable("@cartinventorylist_equip"), j),sd->status.cart[i].equip);
+ pc->setreg(sd,reference_uid(script->add_variable("@cartinventorylist_refine"), j),sd->status.cart[i].refine);
+ pc->setreg(sd,reference_uid(script->add_variable("@cartinventorylist_identify"), j),sd->status.cart[i].identify);
+ pc->setreg(sd,reference_uid(script->add_variable("@cartinventorylist_attribute"), j),sd->status.cart[i].attribute);
for (k = 0; k < MAX_SLOTS; k++) {
sprintf(card_var, "@cartinventorylist_card%d",k+1);
- pc->setreg(sd,reference_uid(script->add_str(card_var), j),sd->status.cart[i].card[k]);
+ pc->setreg(sd,reference_uid(script->add_variable(card_var), j),sd->status.cart[i].card[k]);
}
for (k = 0; k < MAX_ITEM_OPTIONS; k++) {
sprintf(card_var, "@cartinventorylist_opt_id%d", k + 1);
- pc->setreg(sd, reference_uid(script->add_str(card_var), j), sd->status.cart[i].option[k].index);
+ pc->setreg(sd, reference_uid(script->add_variable(card_var), j), sd->status.cart[i].option[k].index);
sprintf(card_var, "@cartinventorylist_opt_val%d", k + 1);
- pc->setreg(sd, reference_uid(script->add_str(card_var), j), sd->status.cart[i].option[k].value);
+ pc->setreg(sd, reference_uid(script->add_variable(card_var), j), sd->status.cart[i].option[k].value);
sprintf(card_var, "@cartinventorylist_opt_param%d", k + 1);
- pc->setreg(sd, reference_uid(script->add_str(card_var), j), sd->status.cart[i].option[k].param);
+ pc->setreg(sd, reference_uid(script->add_variable(card_var), j), sd->status.cart[i].option[k].param);
}
- pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_expire"), j),sd->status.cart[i].expire_time);
- pc->setreg(sd,reference_uid(script->add_str("@cartinventorylist_bound"), j),sd->status.cart[i].bound);
+ pc->setreg(sd,reference_uid(script->add_variable("@cartinventorylist_expire"), j),sd->status.cart[i].expire_time);
+ pc->setreg(sd,reference_uid(script->add_variable("@cartinventorylist_bound"), j),sd->status.cart[i].bound);
j++;
}
}
- pc->setreg(sd,script->add_str("@cartinventorylist_count"),j);
+ pc->setreg(sd,script->add_variable("@cartinventorylist_count"),j);
return true;
}
@@ -14885,13 +14890,13 @@ static BUILDIN(getskilllist)
return true;
for (i = 0; i < MAX_SKILL_DB; i++) {
if(sd->status.skill[i].id > 0 && sd->status.skill[i].lv > 0) {
- pc->setreg(sd,reference_uid(script->add_str("@skilllist_id"), j),sd->status.skill[i].id);
- pc->setreg(sd,reference_uid(script->add_str("@skilllist_lv"), j),sd->status.skill[i].lv);
- pc->setreg(sd,reference_uid(script->add_str("@skilllist_flag"), j),sd->status.skill[i].flag);
+ pc->setreg(sd,reference_uid(script->add_variable("@skilllist_id"), j),sd->status.skill[i].id);
+ pc->setreg(sd,reference_uid(script->add_variable("@skilllist_lv"), j),sd->status.skill[i].lv);
+ pc->setreg(sd,reference_uid(script->add_variable("@skilllist_flag"), j),sd->status.skill[i].flag);
j++;
}
}
- pc->setreg(sd,script->add_str("@skilllist_count"),j);
+ pc->setreg(sd,script->add_variable("@skilllist_count"),j);
return true;
}
@@ -15358,6 +15363,50 @@ static BUILDIN(specialeffect2)
return true;
}
+static BUILDIN(removespecialeffect)
+{
+ struct block_list *bl = NULL;
+ int type = script_getnum(st, 2);
+ enum send_target target = AREA;
+
+ if (script_hasdata(st, 3)) {
+ target = script_getnum(st, 3);
+ }
+
+ if (script_hasdata(st, 4)) {
+ if (script_isstringtype(st, 4)) {
+ struct npc_data *nd = npc->name2id(script_getstr(st, 4));
+ if (nd != NULL) {
+ bl = &nd->bl;
+ }
+ } else {
+ bl = map->id2bl(script_getnum(st, 4));
+ }
+ } else {
+ bl = map->id2bl(st->oid);
+ }
+
+ if (bl == NULL) {
+ return true;
+ }
+
+ if (target == SELF) {
+ struct map_session_data *sd;
+ if (script_hasdata(st, 5)) {
+ sd = map->id2sd(script_getnum(st, 5));
+ } else {
+ sd = script->rid2sd(st);
+ }
+ if (sd != NULL) {
+ clif->removeSpecialEffect_single(bl, type, &sd->bl);
+ }
+ } else {
+ clif->removeSpecialEffect(bl, type, target);
+ }
+
+ return true;
+}
+
/*==========================================
* Nude [Valaris]
*------------------------------------------*/
@@ -17798,12 +17847,11 @@ static BUILDIN(getd)
if (sscanf(buffer, "%99[^[][%d]", varname, &elem) < 2)
elem = 0;
- id = script->search_str(varname);
+ id = script->add_variable(varname);
- if (id < 0 || script->str_data[id].type == C_NOP) {
- id = script->add_str(varname);
- script->str_data[id].type = C_NAME;
- } else if (script->str_data[id].type != C_NAME) {
+ if (script->str_data[id].type != C_NAME && // variable
+ script->str_data[id].type != C_PARAM && // param
+ script->str_data[id].type != C_INT) { // constant
ShowError("script:getd: `%s` is already used by something that is not a variable.\n", varname);
st->state = END;
return false;
@@ -20631,7 +20679,7 @@ static BUILDIN(getvariableofpc)
}
if (!sd->regs.vars)
- sd->regs.vars = i64db_alloc(DB_OPT_RELEASE_DATA);
+ sd->regs.vars = i64db_alloc(DB_OPT_BASE);
script->push_val(st->stack, C_NAME, reference_getuid(data), &sd->regs);
return true;
@@ -21051,17 +21099,26 @@ static BUILDIN(setquestinfo)
}
case QINFO_ITEM:
{
- struct item item = { 0 };
+ struct questinfo_itemreq item = { 0 };
item.nameid = script_getnum(st, 3);
- item.amount = script_getnum(st, 4);
+ item.min = script_hasdata(st, 4) ? script_getnum(st, 4) : 0;
+ item.max = script_hasdata(st, 5) ? script_getnum(st, 5) : 0;
if (itemdb->exists(item.nameid) == NULL) {
ShowWarning("buildin_setquestinfo: non existing item (%d) have been given.\n", item.nameid);
return false;
}
- if (item.amount <= 0 || item.amount > MAX_AMOUNT) {
- ShowWarning("buildin_setquestinfo: given amount (%d) must be bigger than 0 and smaller than %d.\n", item.amount, MAX_AMOUNT + 1);
+ if (item.min > item.max) {
+ ShowWarning("buildin_setquestinfo: minimal amount (%d) is bigger than the maximal amount (%d).\n", item.min, item.max);
+ return false;
+ }
+ if (item.min < 0 || item.min > MAX_AMOUNT) {
+ ShowWarning("buildin_setquestinfo: given amount (%d) must be bigger than or equal to 0 and smaller than %d.\n", item.min, MAX_AMOUNT + 1);
+ return false;
+ }
+ if (item.max < 0 || item.max > MAX_AMOUNT) {
+ ShowWarning("buildin_setquestinfo: given amount (%d) must be bigger than or equal to 0 and smaller than %d.\n", item.max, MAX_AMOUNT + 1);
return false;
}
if (VECTOR_LENGTH(qi->items) == 0)
@@ -21404,12 +21461,12 @@ static BUILDIN(waitingroom2bg)
for (i = 0; i < n && i < MAX_BG_MEMBERS; i++) {
struct map_session_data *sd = cd->usersd[i];
if (sd != NULL && bg->team_join(bg_id, sd))
- mapreg->setreg(reference_uid(script->add_str("$@arenamembers"), i), sd->bl.id);
+ mapreg->setreg(reference_uid(script->add_variable("$@arenamembers"), i), sd->bl.id);
else
- mapreg->setreg(reference_uid(script->add_str("$@arenamembers"), i), 0);
+ mapreg->setreg(reference_uid(script->add_variable("$@arenamembers"), i), 0);
}
- mapreg->setreg(script->add_str("$@arenamembersnum"), i);
+ mapreg->setreg(script->add_variable("$@arenamembersnum"), i);
script_pushint(st,bg_id);
return true;
}
@@ -22471,18 +22528,52 @@ static BUILDIN(getcharip)
return true;
}
+enum function_type {
+ FUNCTION_IS_NONE = 0,
+ FUNCTION_IS_COMMAND,
+ FUNCTION_IS_GLOBAL,
+ FUNCTION_IS_LOCAL,
+ FUNCTION_IS_LABEL,
+};
+
/**
- * is_function(<function name>) -> 1 if function exists, 0 otherwise
+ * is_function(<function name>)
**/
static BUILDIN(is_function)
{
- const char* str = script_getstr(st,2);
+ const char *str = script_getstr(st, 2);
+ enum function_type type = FUNCTION_IS_NONE;
- if( strdb_exists(script->userfunc_db, str) )
- script_pushint(st,1);
- else
- script_pushint(st,0);
+ // TODO: add support for exported functions (#2142)
+
+ if (strdb_exists(script->userfunc_db, str)) {
+ type = FUNCTION_IS_GLOBAL;
+ } else {
+ int n = script->search_str(str);
+
+ if (n >= 0) {
+ switch (script->str_data[n].type) {
+ case C_FUNC:
+ type = FUNCTION_IS_COMMAND;
+ break;
+ case C_USERFUNC:
+ case C_USERFUNC_POS:
+ type = FUNCTION_IS_LOCAL;
+ break;
+ case C_POS:
+ type = FUNCTION_IS_LABEL;
+ break;
+ case C_NAME:
+ if (script->str_data[n].label >= 0) {
+ // WTF... ?
+ // for some reason local functions can have type C_NAME
+ type = FUNCTION_IS_LOCAL;
+ }
+ }
+ }
+ }
+ script_pushint(st, type);
return true;
}
@@ -23587,7 +23678,7 @@ static BUILDIN(countbound)
(!type && sd->status.inventory[i].bound > 0) ||
(type && sd->status.inventory[i].bound == type)
)) {
- pc->setreg(sd,reference_uid(script->add_str("@bound_items"), k),sd->status.inventory[i].nameid);
+ pc->setreg(sd,reference_uid(script->add_variable("@bound_items"), k),sd->status.inventory[i].nameid);
k++;
j += sd->status.inventory[i].amount;
}
@@ -24655,6 +24746,70 @@ static BUILDIN(openstylist)
return true;
}
+static BUILDIN(msgtable)
+{
+ struct map_session_data *sd = script_rid2sd(st);
+ if (sd == NULL)
+ return false;
+
+ const enum clif_messages msgId = script_getnum(st, 2);
+ if (script_hasdata(st, 3)) {
+ clif->msgtable_color(sd, msgId, script_getnum(st, 3));
+ } else {
+ clif->msgtable(sd, msgId);
+ }
+
+ return true;
+}
+
+static BUILDIN(msgtable2)
+{
+ struct map_session_data *sd = script_rid2sd(st);
+ if (sd == NULL)
+ return false;
+
+ const enum clif_messages msgId = script_getnum(st, 2);
+ if (script_isstringtype(st, 3)) {
+ const char *value = script_getstr(st, 3);
+ if (script_hasdata(st, 4)) {
+ clif->msgtable_str_color(sd, msgId, value, script_getnum(st, 4));
+ } else {
+ clif->msgtable_str(sd, msgId, value);
+ }
+ } else {
+ const int value = script_getnum(st, 3);
+ clif->msgtable_num(sd, msgId, value);
+ }
+
+ return true;
+}
+
+// show/hide camera info
+static BUILDIN(camerainfo)
+{
+ struct map_session_data *sd = script_rid2sd(st);
+ if (sd == NULL)
+ return false;
+
+ clif->camera_showWindow(sd);
+ return true;
+}
+
+// allow change some camera parameters
+static BUILDIN(changecamera)
+{
+ struct map_session_data *sd = script_rid2sd(st);
+ if (sd == NULL)
+ return false;
+
+ enum send_target target = SELF;
+ if (script_hasdata(st, 5)) {
+ target = script_getnum(st, 5);
+ }
+ clif->camera_change(sd, (float)script_getnum(st, 2), (float)script_getnum(st, 3), (float)script_getnum(st, 4), target);
+ return true;
+}
+
/**
* Adds a built-in script function.
*
@@ -24816,8 +24971,8 @@ static void script_parse_builtin(void)
BUILDIN_DEF(__setr,"rv?"),
// NPC interaction
- BUILDIN_DEF(mes,"s"),
- BUILDIN_DEF(mesf,"s*"),
+ BUILDIN_DEF(mes, "?"),
+ BUILDIN_DEF(mesf, "s*"),
BUILDIN_DEF(next,""),
BUILDIN_DEF(close,""),
BUILDIN_DEF(close2,""),
@@ -24975,7 +25130,7 @@ static void script_parse_builtin(void)
BUILDIN_DEF(sc_end,"i?"),
BUILDIN_DEF(getstatus, "i?"),
BUILDIN_DEF(getscrate,"ii?"),
- BUILDIN_DEF(debugmes,"v"),
+ BUILDIN_DEF(debugmes,"v*"),
BUILDIN_DEF2(catchpet,"pet","i"),
BUILDIN_DEF2(birthpet,"bpet",""),
BUILDIN_DEF(resetlvl,"i"),
@@ -25051,6 +25206,7 @@ static void script_parse_builtin(void)
BUILDIN_DEF(skilleffect,"vi"), // skill effect [Celest]
BUILDIN_DEF(npcskilleffect,"viii"), // npc skill effect [Valaris]
BUILDIN_DEF(specialeffect,"i???"), // npc skill effect [Valaris]
+ BUILDIN_DEF(removespecialeffect,"i???"),
BUILDIN_DEF_DEPRECATED(specialeffect2,"i??"), // skill effect on players[Valaris]
BUILDIN_DEF(nude,""), // nude command [Valaris]
BUILDIN_DEF(mapwarp,"ssii??"), // Added by RoVeRT
@@ -25231,6 +25387,8 @@ static void script_parse_builtin(void)
BUILDIN_DEF(buyingstore,"i"),
BUILDIN_DEF(searchstores,"ii"),
BUILDIN_DEF(showdigit,"i?"),
+ BUILDIN_DEF(msgtable, "i?"),
+ BUILDIN_DEF(msgtable2, "iv?"),
// WoE SE
BUILDIN_DEF(agitstart2,""),
BUILDIN_DEF(agitend2,""),
@@ -25310,7 +25468,7 @@ static void script_parse_builtin(void)
//Quest Log System [Inkfish]
BUILDIN_DEF(questinfo, "i?"),
- BUILDIN_DEF(setquestinfo, "i??"),
+ BUILDIN_DEF(setquestinfo, "i???"),
BUILDIN_DEF(setquest, "i?"),
BUILDIN_DEF(erasequest, "i?"),
BUILDIN_DEF(completequest, "i?"),
@@ -25382,6 +25540,10 @@ static void script_parse_builtin(void)
// -- HatEffect
BUILDIN_DEF(hateffect, "ii"),
+
+ // camera
+ BUILDIN_DEF(camerainfo, ""),
+ BUILDIN_DEF(changecamera, "iii?"),
};
int i, len = ARRAYLENGTH(BUILDIN);
RECREATE(script->buildin, char *, script->buildin_count + len); // Pre-alloc to speed up
@@ -25781,6 +25943,12 @@ static void script_hardcoded_constants(void)
script->set_constant("QINFO_HOMUN_TYPE", QINFO_HOMUN_TYPE, false, false);
script->set_constant("QINFO_QUEST", QINFO_QUEST, false, false);
+ script->constdb_comment("function types");
+ script->set_constant("FUNCTION_IS_COMMAND", FUNCTION_IS_COMMAND, false, false);
+ script->set_constant("FUNCTION_IS_GLOBAL", FUNCTION_IS_GLOBAL, false, false);
+ script->set_constant("FUNCTION_IS_LOCAL", FUNCTION_IS_LOCAL, false, false);
+ script->set_constant("FUNCTION_IS_LABEL", FUNCTION_IS_LABEL, false, false);
+
script->constdb_comment("Renewal");
#ifdef RENEWAL
script->set_constant("RENEWAL", 1, false, false);
@@ -25962,6 +26130,7 @@ void script_defaults(void)
script->setarray_pc = script_setarray_pc;
script->config_read = script_config_read;
script->add_str = script_add_str;
+ script->add_variable = script_add_variable;
script->get_str = script_get_str;
script->search_str = script_search_str;
script->setd_sub = setd_sub;
diff --git a/src/map/script.h b/src/map/script.h
index 9a8425ed2..9c72b793c 100644
--- a/src/map/script.h
+++ b/src/map/script.h
@@ -143,7 +143,6 @@ struct item_data;
/// Returns if this a reference to a param
#define reference_toparam(data) ( script->str_data[reference_getid(data)].type == C_PARAM )
/// Returns if this a reference to a variable
-//##TODO confirm it's C_NAME [FlavioJS]
#define reference_tovariable(data) ( script->str_data[reference_getid(data)].type == C_NAME )
/// Returns the unique id of the reference (id and index)
#define reference_getuid(data) ( (data)->u.num )
@@ -829,6 +828,7 @@ struct script_interface {
void (*setarray_pc) (struct map_session_data* sd, const char* varname, uint32 idx, void* value, int* refcache);
bool (*config_read) (const char *filename, bool imported);
int (*add_str) (const char* p);
+ int (*add_variable) (const char *varname);
const char* (*get_str) (int id);
int (*search_str) (const char* p);
void (*setd_sub) (struct script_state *st, struct map_session_data *sd, const char *varname, int elem, const void *value, struct reg_db *ref);
diff --git a/src/map/skill.c b/src/map/skill.c
index 0d1865a1f..9857badbe 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -2588,7 +2588,7 @@ static int skill_break_equip(struct block_list *bl, unsigned short where, int ra
pc->unequipitem(sd, j, PCUNEQUIPITEM_RECALC|PCUNEQUIPITEM_FORCE);
}
}
- clif->equiplist(sd);
+ clif->equipList(sd);
}
return where; //Return list of pieces broken.
@@ -2745,7 +2745,11 @@ static int skill_magic_reflect(struct block_list *src, struct block_list *bl, in
static int skill_attack(int attack_type, struct block_list *src, struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag)
{
struct Damage dmg;
+#if MAGIC_REFLECTION_TYPE
struct status_data *sstatus, *tstatus;
+#else
+ struct status_data *tstatus;
+#endif
struct status_change *sc;
struct map_session_data *sd, *tsd;
int type;
@@ -2780,7 +2784,9 @@ static int skill_attack(int attack_type, struct block_list *src, struct block_li
)
return 0;
+#if MAGIC_REFLECTION_TYPE
sstatus = status->get_status_data(src);
+#endif
tstatus = status->get_status_data(bl);
sc = status->get_sc(bl);
if (sc && !sc->count) sc = NULL; //Don't need it.
@@ -3212,8 +3218,8 @@ static int skill_attack(int attack_type, struct block_list *src, struct block_li
}
tsd->reproduceskill_id = copy_skill;
- pc_setglobalreg(tsd, script->add_str("REPRODUCE_SKILL"), copy_skill);
- pc_setglobalreg(tsd, script->add_str("REPRODUCE_SKILL_LV"), lv);
+ pc_setglobalreg(tsd, script->add_variable("REPRODUCE_SKILL"), copy_skill);
+ pc_setglobalreg(tsd, script->add_variable("REPRODUCE_SKILL_LV"), lv);
tsd->status.skill[cidx].id = copy_skill;
tsd->status.skill[cidx].lv = lv;
@@ -3236,8 +3242,8 @@ static int skill_attack(int attack_type, struct block_list *src, struct block_li
lv = plagiarismlvl;
tsd->cloneskill_id = copy_skill;
- pc_setglobalreg(tsd, script->add_str("CLONE_SKILL"), copy_skill);
- pc_setglobalreg(tsd, script->add_str("CLONE_SKILL_LV"), lv);
+ pc_setglobalreg(tsd, script->add_variable("CLONE_SKILL"), copy_skill);
+ pc_setglobalreg(tsd, script->add_variable("CLONE_SKILL_LV"), lv);
tsd->status.skill[cidx].id = copy_skill;
tsd->status.skill[cidx].lv = lv;
@@ -6752,7 +6758,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list *
}
sd->mission_mobid = id;
sd->mission_count = 0;
- pc_setglobalreg(sd,script->add_str("TK_MISSION_ID"), id);
+ pc_setglobalreg(sd,script->add_variable("TK_MISSION_ID"), id);
clif->mission_info(sd, id, 0);
clif->skill_nodamage(src,bl,skill_id,skill_lv,1);
}
@@ -8531,7 +8537,7 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list *
if (skill_id == SL_SUPERNOVICE && dstsd && dstsd->die_counter && !(rnd()%100)) {
//Erase death count 1% of the casts
dstsd->die_counter = 0;
- pc_setglobalreg(dstsd,script->add_str("PC_DIE_COUNTER"), 0);
+ pc_setglobalreg(dstsd,script->add_variable("PC_DIE_COUNTER"), 0);
clif->specialeffect(bl, 0x152, AREA);
//SC_SOULLINK invokes status_calc_pc for us.
}
@@ -16131,7 +16137,7 @@ static void skill_repairweapon(struct map_session_data *sd, int idx)
item->attribute |= ATTR_BROKEN;
item->attribute ^= ATTR_BROKEN; /* clear broken state */
- clif->equiplist(target_sd);
+ clif->equipList(target_sd);
pc->delitem(sd, pc->search_inventory(sd, material), 1, 0, DELITEM_NORMAL, LOG_TYPE_CONSUME); // FIXME: is this the correct reason flag?
@@ -16214,7 +16220,7 @@ static void skill_weaponrefine(struct map_session_data *sd, int idx)
}
clif->delitem(sd, idx, 1, DELITEM_NORMAL);
clif->upgrademessage(sd->fd, 0,item->nameid);
- clif->inventorylist(sd);
+ clif->inventoryList(sd);
clif->refine(sd->fd,0,idx,item->refine);
if (ep)
pc->equipitem(sd,idx,ep);
@@ -18500,7 +18506,7 @@ static int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int n
{ //Cooking items.
clif->specialeffect(&sd->bl, 608, AREA);
if( sd->cook_mastery < 1999 )
- pc_setglobalreg(sd, script->add_str("COOK_MASTERY"),sd->cook_mastery + ( 1 << ( (skill->dbs->produce_db[idx].itemlv - 11) / 2 ) ) * 5);
+ pc_setglobalreg(sd, script->add_variable("COOK_MASTERY"),sd->cook_mastery + ( 1 << ( (skill->dbs->produce_db[idx].itemlv - 11) / 2 ) ) * 5);
}
break;
}
@@ -18611,7 +18617,7 @@ static int skill_produce_mix(struct map_session_data *sd, uint16 skill_id, int n
{ //Cooking items.
clif->specialeffect(&sd->bl, 609, AREA);
if( sd->cook_mastery > 0 )
- pc_setglobalreg(sd, script->add_str("COOK_MASTERY"), sd->cook_mastery - ( 1 << ((skill->dbs->produce_db[idx].itemlv - 11) / 2) ) - ( ( ( 1 << ((skill->dbs->produce_db[idx].itemlv - 11) / 2) ) >> 1 ) * 3 ));
+ pc_setglobalreg(sd, script->add_variable("COOK_MASTERY"), sd->cook_mastery - ( 1 << ((skill->dbs->produce_db[idx].itemlv - 11) / 2) ) - ( ( ( 1 << ((skill->dbs->produce_db[idx].itemlv - 11) / 2) ) >> 1 ) * 3 ));
}
}
}
diff --git a/src/map/storage.c b/src/map/storage.c
index 4123ddc7c..a6f0715e7 100644
--- a/src/map/storage.c
+++ b/src/map/storage.c
@@ -122,8 +122,8 @@ static int storage_storageopen(struct map_session_data *sd)
if (sd->storage.aggregate > 0) {
storage->sortitem(VECTOR_DATA(sd->storage.item), VECTOR_LENGTH(sd->storage.item));
- clif->storagelist(sd, VECTOR_DATA(sd->storage.item), VECTOR_LENGTH(sd->storage.item));
}
+ clif->storageList(sd, VECTOR_DATA(sd->storage.item), VECTOR_LENGTH(sd->storage.item));
clif->updatestorageamount(sd, sd->storage.aggregate, MAX_STORAGE);
return 0;
@@ -297,7 +297,7 @@ static int storage_add_from_inventory(struct map_session_data *sd, int index, in
if (storage->additem(sd, &sd->status.inventory[index], amount) == 0)
pc->delitem(sd, index, amount, 0, DELITEM_TOSTORAGE, LOG_TYPE_STORAGE);
else
- clif->dropitem(sd, index, 0);
+ clif->item_movefailed(sd, index);
return 1;
}
@@ -398,7 +398,9 @@ static int storage_storagegettocart(struct map_session_data *sd, int index, int
if ((flag = pc->cart_additem(sd, it, amount, LOG_TYPE_STORAGE)) == 0)
storage->delitem(sd, index, amount);
else {
+ // probably this line is useless? it remove inventory lock but not storage [4144]
clif->dropitem(sd, index,0);
+
clif->cart_additem_ack(sd, flag == 1?0x0:0x1);
}
@@ -510,7 +512,7 @@ static int storage_guild_storageopen(struct map_session_data *sd)
gstor->storage_status = 1;
sd->state.storage_flag = STORAGE_FLAG_GUILD;
storage->sortitem(gstor->items, ARRAYLENGTH(gstor->items));
- clif->storagelist(sd, gstor->items, ARRAYLENGTH(gstor->items));
+ clif->guildStorageList(sd, gstor->items, ARRAYLENGTH(gstor->items));
clif->updatestorageamount(sd, gstor->storage_amount, MAX_GUILD_STORAGE);
return 0;
}
@@ -638,7 +640,7 @@ static int storage_guild_storageadd(struct map_session_data *sd, int index, int
if( gstorage->additem(sd,stor,&sd->status.inventory[index],amount) == 0 )
pc->delitem(sd, index, amount, 0, DELITEM_TOSTORAGE, LOG_TYPE_GSTORAGE);
else
- clif->dropitem(sd, index, 0);
+ clif->item_movefailed(sd, index);
return 1;
}