From d9ffcee4837b22bd404589079373c9157ef448bb Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Tue, 8 Mar 2016 23:04:20 +0300 Subject: Rename Sp attributes to server values. Also add missing values for hercules. --- src/net/eathena/playerhandler.cpp | 67 ++++----- src/net/eathena/playerrecv.cpp | 2 +- src/net/eathena/sp.h | 283 ++++++++++++++++++++++++++++++++------ src/net/tmwa/playerhandler.cpp | 64 ++++----- src/net/tmwa/sp.h | 66 ++++----- 5 files changed, 340 insertions(+), 142 deletions(-) diff --git a/src/net/eathena/playerhandler.cpp b/src/net/eathena/playerhandler.cpp index 97d914b21..8a6a7e878 100644 --- a/src/net/eathena/playerhandler.cpp +++ b/src/net/eathena/playerhandler.cpp @@ -251,15 +251,15 @@ void PlayerHandler::setStat(Net::MessageIn &msg, { switch (type) { - case Sp::WALK_SPEED: + case Sp::SPEED: localPlayer->setWalkSpeed(base); PlayerInfo::setStatBase(Attributes::WALK_SPEED, base); PlayerInfo::setStatMod(Attributes::WALK_SPEED, 0); break; - case Sp::EXP: + case Sp::BASEEXP: PlayerInfo::setAttribute(Attributes::EXP, base); break; - case Sp::JOB_EXP: + case Sp::JOBEXP: PlayerInfo::setStatExperience(Attributes::JOB, base, PlayerInfo::getStatExperience(Attributes::JOB).second); break; @@ -284,7 +284,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg, } } break; - case Sp::MAX_HP: + case Sp::MAXHP: PlayerInfo::setAttribute(Attributes::MAX_HP, base); if (localPlayer->isInParty() && Party::getParty(1)) @@ -298,16 +298,16 @@ void PlayerHandler::setStat(Net::MessageIn &msg, } } break; - case Sp::MP: + case Sp::SP: PlayerInfo::setAttribute(Attributes::MP, base); break; - case Sp::MAX_MP: + case Sp::MAXSP: PlayerInfo::setAttribute(Attributes::MAX_MP, base); break; - case Sp::CHAR_POINTS: + case Sp::STATUSPOINT: PlayerInfo::setAttribute(Attributes::CHAR_POINTS, base); break; - case Sp::LEVEL: + case Sp::BASELEVEL: PlayerInfo::setAttribute(Attributes::LEVEL, base); if (localPlayer) { @@ -315,7 +315,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg, localPlayer->updateName(); } break; - case Sp::SKILL_POINTS: + case Sp::SKILLPOINT: PlayerInfo::setAttribute(Attributes::SKILL_POINTS, base); if (skillDialog) skillDialog->update(); @@ -338,7 +338,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg, case Sp::LUK: setStatComplex(Attributes::LUK); break; - case Sp::MONEY: + case Sp::ZENY: { const int oldMoney = PlayerInfo::getAttribute(Attributes::MONEY); const int newMoney = base; @@ -356,83 +356,84 @@ void PlayerHandler::setStat(Net::MessageIn &msg, PlayerInfo::setAttribute(Attributes::MONEY, newMoney); break; } - case Sp::EXP_NEEDED: + case Sp::NEXTBASEEXP: PlayerInfo::setAttribute(Attributes::EXP_NEEDED, base); break; - case Sp::JOB_MOD: + // ++ here used in wrong way. Need like Sp::NEXTBASEEXP? + case Sp::NEXTJOBEXP: PlayerInfo::setStatExperience(Attributes::JOB, PlayerInfo::getStatExperience(Attributes::JOB).first, base); break; - case Sp::TOTAL_WEIGHT: + case Sp::WEIGHT: PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, base); break; - case Sp::MAX_WEIGHT: + case Sp::MAXWEIGHT: PlayerInfo::setAttribute(Attributes::MAX_WEIGHT, base); break; - case Sp::STR_NEEDED: + case Sp::USTR: statusWindow->setPointsNeeded(Attributes::STR, base); break; - case Sp::AGI_NEEDED: + case Sp::UAGI: statusWindow->setPointsNeeded(Attributes::AGI, base); break; - case Sp::VIT_NEEDED: + case Sp::UVIT: statusWindow->setPointsNeeded(Attributes::VIT, base); break; - case Sp::INT_NEEDED: + case Sp::UINT: statusWindow->setPointsNeeded(Attributes::INT, base); break; - case Sp::DEX_NEEDED: + case Sp::UDEX: statusWindow->setPointsNeeded(Attributes::DEX, base); break; - case Sp::LUK_NEEDED: + case Sp::ULUK: statusWindow->setPointsNeeded(Attributes::LUK, base); break; - case Sp::ATK: + case Sp::ATK1: PlayerInfo::setStatBase(Attributes::ATK, base); PlayerInfo::updateAttrs(); break; - case Sp::ATK_MOD: + case Sp::ATK2: PlayerInfo::setStatMod(Attributes::ATK, base); PlayerInfo::updateAttrs(); break; - case Sp::MATK: + case Sp::MATK1: PlayerInfo::setStatBase(Attributes::MATK, base); break; - case Sp::MATK_MOD: + case Sp::MATK2: PlayerInfo::setStatMod(Attributes::MATK, base); break; - case Sp::DEF: + case Sp::DEF1: PlayerInfo::setStatBase(Attributes::DEF, base); break; - case Sp::DEF_MOD: + case Sp::DEF2: PlayerInfo::setStatMod(Attributes::DEF, base); break; - case Sp::MDEF: + case Sp::MDEF1: PlayerInfo::setStatBase(Attributes::MDEF, base); break; - case Sp::MDEF_MOD: + case Sp::MDEF2: PlayerInfo::setStatMod(Attributes::MDEF, base); break; case Sp::HIT: PlayerInfo::setStatBase(Attributes::HIT, base); break; - case Sp::FLEE: + case Sp::FLEE1: PlayerInfo::setStatBase(Attributes::FLEE, base); break; - case Sp::FLEE_MOD: + case Sp::FLEE2: PlayerInfo::setStatMod(Attributes::FLEE, base); break; - case Sp::CRIT: + case Sp::CRITICAL: PlayerInfo::setStatBase(Attributes::CRIT, base); break; - case Sp::ATTACK_DELAY: + case Sp::ASPD: localPlayer->setAttackSpeed(base); PlayerInfo::setStatBase(Attributes::ATTACK_DELAY, base); PlayerInfo::setStatMod(Attributes::ATTACK_DELAY, 0); PlayerInfo::updateAttrs(); break; - case Sp::JOB: + case Sp::JOBLEVEL: PlayerInfo::setStatBase(Attributes::JOB, base); break; diff --git a/src/net/eathena/playerrecv.cpp b/src/net/eathena/playerrecv.cpp index 2f3f6294c..9b5c50c96 100644 --- a/src/net/eathena/playerrecv.cpp +++ b/src/net/eathena/playerrecv.cpp @@ -250,7 +250,7 @@ void PlayerRecv::processPlayerHeal(Net::MessageIn &msg) } localPlayer->addHpMessage(amount); } - else if (type == Sp::MP) + else if (type == Sp::SP) { localPlayer->addSpMessage(amount); } diff --git a/src/net/eathena/sp.h b/src/net/eathena/sp.h index 7342786be..f3f1c7e1d 100644 --- a/src/net/eathena/sp.h +++ b/src/net/eathena/sp.h @@ -27,50 +27,245 @@ namespace Sp { enum { - WALK_SPEED = 0, - EXP = 1, - JOB_EXP = 2, - KARMA = 3, - MANNER = 4, - HP = 5, - MAX_HP = 6, - MP = 7, - MAX_MP = 8, - CHAR_POINTS = 9, - LEVEL = 11, - SKILL_POINTS = 12, - STR = 13, - AGI = 14, - VIT = 15, - INT = 16, - DEX = 17, - LUK = 18, - MONEY = 20, - EXP_NEEDED = 22, - JOB_MOD = 23, - TOTAL_WEIGHT = 24, - MAX_WEIGHT = 25, - STR_NEEDED = 32, - AGI_NEEDED = 33, - VIT_NEEDED = 34, - INT_NEEDED = 35, - DEX_NEEDED = 36, - LUK_NEEDED = 37, - ATK = 41, - ATK_MOD = 42, - MATK = 43, - MATK_MOD = 44, - DEF = 45, - DEF_MOD = 46, - MDEF = 47, - MDEF_MOD = 48, - HIT = 49, - FLEE = 50, - FLEE_MOD = 51, - CRIT = 52, - ATTACK_DELAY = 53, - JOB = 55 + SPEED = 0, + BASEEXP = 1, + JOBEXP = 2, + KARMA = 3, + MANNER = 4, + HP = 5, + MAXHP = 6, + SP = 7, + MAXSP = 8, + STATUSPOINT = 9, + VAL10 = 10, + BASELEVEL = 11, + SKILLPOINT = 12, + STR = 13, + AGI = 14, + VIT = 15, + INT = 16, + DEX = 17, + LUK = 18, + CLASS = 19, + ZENY = 20, + SEX = 21, + NEXTBASEEXP = 22, + NEXTJOBEXP = 23, + WEIGHT = 24, + MAXWEIGHT = 25, + VAL26 = 26, + VAL27 = 27, + VAL28 = 28, + VAL29 = 29, + VAL30 = 30, + VAL31 = 31, + USTR = 32, + UAGI = 33, + UVIT = 34, + UINT = 35, + UDEX = 36, + ULUK = 37, + VAL38 = 38, + VAL39 = 39, + VAL40 = 40, + ATK1 = 41, + ATK2 = 42, + MATK1 = 43, + MATK2 = 44, + DEF1 = 45, + DEF2 = 46, + MDEF1 = 47, + MDEF2 = 48, + HIT = 49, + FLEE1 = 50, + FLEE2 = 51, + CRITICAL = 52, + ASPD = 53, + VAL54 = 54, + JOBLEVEL = 55, + UPPER = 56, + PARTNER = 57, + CART = 58, + FAME = 59, + UNBREAKABLE = 60, + + CARTINFO = 99, + + BASEJOB = 119, + BASECLASS = 120, + KILLERRID = 121, + KILLEDRID = 122, + SLOTCHANGE = 123, + CHARRENAME = 124, + MOD_EXP = 125, + MOD_DROP = 126, + MOD_DEATH = 127, + + SP_MERCFLEE = 165, + + MERCKILLS = 189, + MERCFAITH = 190, + + ATTACKRANGE = 1000, + ATKELE = 1001, + DEFELE = 1002, + CASTRATE = 1003, + MAXHPRATE = 1004, + MAXSPRATE = 1005, + SPRATE = 1006, + + ADDELE = 1007, + ADDRACE = 1008, + ADDSIZE = 1009, + SUBELE = 1010, + SUBRACE = 1011, + ADDEFF = 1012, + RESEFF = 1013, + BASE_ATK = 1014, + ASPD_RATE = 1015, + HP_RECOV_RATE = 1016, + RECOV_RATE = 1017, + SPEED_RATE = 1018, + CRITICAL_DEF = 1019, + NEAR_ATK_DEF = 1020, + LONG_ATK_DEF = 1021, + DOUBLE_RATE = 1022, + DOUBLE_ADD_RATE = 1023, + SKILL_HEAL = 1024, + MATK_RATE = 1025, + IGNORE_DEF_ELE = 1026, + IGNORE_DEF_RACE = 1027, + ATK_RATE = 1028, + SPEED_ADDRATE = 1029, + REGEN_RATE = 1030, + MAGIC_ATK_DEF = 1031, + MISC_ATK_DEF = 1032, + IGNORE_MDEF_ELE = 1033, + IGNORE_MDEF_RACE = 1034, + MAGIC_ADDELE = 1035, + MAGIC_ADDRACE = 1036, + MAGIC_ADDSIZE = 1037, + PERFECT_HIT_RATE = 1038, + PERFECT_HIT_ADD_RATE = 1039, + CRITICAL_RATE = 1040, + GET_ZENY_NUM = 1041, + ADD_GET_ZENY_NUM = 1042, + ADD_DAMAGE_CLASS = 1043, + ADD_MAGIC_DAMAGE_CLASS = 1044, + ADD_DEF_CLASS = 1045, + ADD_MDEF_CLASS = 1046, + ADD_MONSTER_DROP_ITEM = 1047, + DEF_RATIO_ATK_ELE = 1048, + DEF_RATIO_ATK_RACE = 1049, + UNBREAKABLE_GARMENT = 1050, + HIT_RATE = 1051, + FLEE_RATE = 1052, + FLEE2_RATE = 1053, + DEF_RATE = 1054, + DEF2_RATE = 1055, + MDEF_RATE = 1056, + MDEF2_RATE = 1057, + SPLASH_RANGE = 1058, + SPLASH_ADD_RANGE = 1059, + AUTOSPELL = 1060, + HP_DRAIN_RATE = 1061, + DRAIN_RATE = 1062, + SHORT_WEAPON_DAMAGE_RETURN = 1063, + LONG_WEAPON_DAMAGE_RETURN = 1064, + WEAPON_COMA_ELE = 1065, + WEAPON_COMA_RACE = 1066, + ADDEFF2 = 1067, + BREAK_WEAPON_RATE = 1068, + BREAK_ARMOR_RATE = 1069, + ADD_STEAL_RATE = 1070, + MAGIC_DAMAGE_RETURN = 1071, + + ALL_STATS = 1073, + AGI_VIT = 1074, + AGI_DEX_STR = 1075, + PERFECT_HIDE = 1076, + NO_KNOCKBACK = 1077, + CLASSCHANGE = 1078, + HP_DRAIN_VALUE = 1079, + DRAIN_VALUE = 1080, + WEAPON_ATK = 1081, + WEAPON_ATK_RATE = 1082, + DELAYRATE = 1083, + HP_DRAIN_RATE_RACE = 1084, + DRAIN_RATE_RACE = 1085, + IGNORE_MDEF_RATE = 1086, + IGNORE_DEF_RATE = 1087, + SKILL_HEAL2 = 1088, + ADDEFF_ONSKILL = 1089, + ADD_HEAL_RATE = 1090, + ADD_HEAL2_RATE = 1091, + HP_VANISH_RATE = 1092, + + RESTART_FULL_RECOVER = 2000, + NO_CASTCANCEL = 2001, + NO_SIZEFIX = 2002, + NO_MAGIC_DAMAGE = 2003, + NO_WEAPON_DAMAGE = 2004, + NO_GEMSTONE = 2005, + NO_CASTCANCEL2 = 2006, + NO_MISC_DAMAGE = 2007, + UNBREAKABLE_WEAPON = 2008, + UNBREAKABLE_ARMOR = 2009, + UNBREAKABLE_HELM = 2010, + UNBREAKABLE_SHIELD = 2011, + LONG_ATK_RATE = 2012, + + CRIT_ATK_RATE = 2013, + CRITICAL_ADDRACE = 2014, + NO_REGEN = 2015, + ADDEFF_WHENHIT = 2016, + AUTOSPELL_WHENHIT = 2017, + SKILL_ATK = 2018, + UNSTRIPABLE = 2019, + AUTOSPELL_ONSKILL = 2020, + GAIN_VALUE = 2021, + HP_REGEN_RATE = 2022, + HP_LOSS_RATE = 2023, + ADDRACE2 = 2024, + HP_GAIN_VALUE = 2025, + SUBSIZE = 2026, + HP_DRAIN_VALUE_RACE = 2027, + ADD_ITEM_HEAL_RATE = 2028, + DRAIN_VALUE_RACE = 2029, + EXP_ADDRACE = 2030, + GAIN_RACE = 2031, + SUBRACE2 = 2032, + UNBREAKABLE_SHOES = 2033, + UNSTRIPABLE_WEAPON = 2034, + UNSTRIPABLE_ARMOR = 2035, + UNSTRIPABLE_HELM = 2036, + UNSTRIPABLE_SHIELD = 2037, + INTRAVISION = 2038, + ADD_MONSTER_DROP_CHAINITEM = 2039, + LOSS_RATE = 2040, + ADD_SKILL_BLOW = 2041, + VANISH_RATE = 2042, + MAGIC_GAIN_VALUE = 2043, + MAGIC_HP_GAIN_VALUE = 2044, + ADD_CLASS_DROP_ITEM = 2045, + EMATK = 2046, + GAIN_RACE_ATTACK = 2047, + HP_GAIN_RACE_ATTACK = 2048, + SKILL_USE_RATE = 2049, + SKILL_COOLDOWN = 2050, + SKILL_FIXEDCAST = 2051, + SKILL_VARIABLECAST = 2052, + FIXCASTRATE = 2053, + VARCASTRATE = 2054, + SKILL_USE_SP = 2055, + MAGIC_ATK_ELE = 2056, + ADD_FIXEDCAST = 2057, + ADD_VARIABLECAST = 2058, + SET_DEF_RACE = 2059, + SET_MDEF_RACE = 2060, + RACE_TOLERANCE = 2061, + ADDMAXWEIGHT = 2062 }; } // namespace Sp -#endif // NET_EATHENA_SP_H +#endif // NET_EATHENA_H diff --git a/src/net/tmwa/playerhandler.cpp b/src/net/tmwa/playerhandler.cpp index 33481d85a..c34aca907 100644 --- a/src/net/tmwa/playerhandler.cpp +++ b/src/net/tmwa/playerhandler.cpp @@ -224,15 +224,15 @@ void PlayerHandler::setStat(Net::MessageIn &msg, { switch (type) { - case Sp::WALK_SPEED: + case Sp::SPEED: localPlayer->setWalkSpeed(base); PlayerInfo::setStatBase(Attributes::WALK_SPEED, base); PlayerInfo::setStatMod(Attributes::WALK_SPEED, 0); break; - case Sp::EXP: + case Sp::BASEEXP: PlayerInfo::setAttribute(Attributes::EXP, base); break; - case Sp::JOB_EXP: + case Sp::JOBEXP: PlayerInfo::setStatExperience(Attributes::JOB, base, PlayerInfo::getStatExperience(Attributes::JOB).second); break; @@ -257,7 +257,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg, } } break; - case Sp::MAX_HP: + case Sp::MAXHP: PlayerInfo::setAttribute(Attributes::MAX_HP, base); if (localPlayer->isInParty() && Party::getParty(1)) @@ -271,16 +271,16 @@ void PlayerHandler::setStat(Net::MessageIn &msg, } } break; - case Sp::MP: + case Sp::SP: PlayerInfo::setAttribute(Attributes::MP, base); break; - case Sp::MAX_MP: + case Sp::MAXSP: PlayerInfo::setAttribute(Attributes::MAX_MP, base); break; - case Sp::CHAR_POINTS: + case Sp::STATUSPOINT: PlayerInfo::setAttribute(Attributes::CHAR_POINTS, base); break; - case Sp::LEVEL: + case Sp::BASELEVEL: PlayerInfo::setAttribute(Attributes::LEVEL, base); if (localPlayer) { @@ -288,7 +288,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg, localPlayer->updateName(); } break; - case Sp::SKILL_POINTS: + case Sp::SKILLPOINT: PlayerInfo::setAttribute(Attributes::SKILL_POINTS, base); if (skillDialog) skillDialog->update(); @@ -311,7 +311,7 @@ void PlayerHandler::setStat(Net::MessageIn &msg, case Sp::LUK: setStatComplex(Attributes::LUK); break; - case Sp::MONEY: + case Sp::ZENY: { const int oldMoney = PlayerInfo::getAttribute(Attributes::MONEY); const int newMoney = base; @@ -329,83 +329,83 @@ void PlayerHandler::setStat(Net::MessageIn &msg, PlayerInfo::setAttribute(Attributes::MONEY, newMoney); break; } - case Sp::EXP_NEEDED: + case Sp::NEXTBASEEXP: PlayerInfo::setAttribute(Attributes::EXP_NEEDED, base); break; case Sp::JOB_MOD: PlayerInfo::setStatExperience(Attributes::JOB, PlayerInfo::getStatExperience(Attributes::JOB).first, base); break; - case Sp::TOTAL_WEIGHT: + case Sp::WEIGHT: PlayerInfo::setAttribute(Attributes::TOTAL_WEIGHT, base); break; - case Sp::MAX_WEIGHT: + case Sp::MAXWEIGHT: PlayerInfo::setAttribute(Attributes::MAX_WEIGHT, base); break; - case Sp::STR_NEEDED: + case Sp::USTR: statusWindow->setPointsNeeded(Attributes::STR, base); break; - case Sp::AGI_NEEDED: + case Sp::UAGI: statusWindow->setPointsNeeded(Attributes::AGI, base); break; - case Sp::VIT_NEEDED: + case Sp::UVIT: statusWindow->setPointsNeeded(Attributes::VIT, base); break; - case Sp::INT_NEEDED: + case Sp::UINT: statusWindow->setPointsNeeded(Attributes::INT, base); break; - case Sp::DEX_NEEDED: + case Sp::UDEX: statusWindow->setPointsNeeded(Attributes::DEX, base); break; - case Sp::LUK_NEEDED: + case Sp::ULUK: statusWindow->setPointsNeeded(Attributes::LUK, base); break; - case Sp::ATK: + case Sp::ATK1: PlayerInfo::setStatBase(Attributes::ATK, base); PlayerInfo::updateAttrs(); break; - case Sp::ATK_MOD: + case Sp::ATK2: PlayerInfo::setStatMod(Attributes::ATK, base); PlayerInfo::updateAttrs(); break; - case Sp::MATK: + case Sp::MATK1: PlayerInfo::setStatBase(Attributes::MATK, base); break; - case Sp::MATK_MOD: + case Sp::MATK2: PlayerInfo::setStatMod(Attributes::MATK, base); break; - case Sp::DEF: + case Sp::DEF1: PlayerInfo::setStatBase(Attributes::DEF, base); break; - case Sp::DEF_MOD: + case Sp::DEF2: PlayerInfo::setStatMod(Attributes::DEF, base); break; - case Sp::MDEF: + case Sp::MDEF1: PlayerInfo::setStatBase(Attributes::MDEF, base); break; - case Sp::MDEF_MOD: + case Sp::MDEF2: PlayerInfo::setStatMod(Attributes::MDEF, base); break; case Sp::HIT: PlayerInfo::setStatBase(Attributes::HIT, base); break; - case Sp::FLEE: + case Sp::FLEE1: PlayerInfo::setStatBase(Attributes::FLEE, base); break; - case Sp::FLEE_MOD: + case Sp::FLEE2: PlayerInfo::setStatMod(Attributes::FLEE, base); break; - case Sp::CRIT: + case Sp::CRITICAL: PlayerInfo::setStatBase(Attributes::CRIT, base); break; - case Sp::ATTACK_DELAY: + case Sp::ASPD: localPlayer->setAttackSpeed(base); PlayerInfo::setStatBase(Attributes::ATTACK_DELAY, base); PlayerInfo::setStatMod(Attributes::ATTACK_DELAY, 0); PlayerInfo::updateAttrs(); break; - case Sp::JOB: + case Sp::JOBLEVEL: PlayerInfo::setStatBase(Attributes::JOB, base); break; case Sp::GM_LEVEL: diff --git a/src/net/tmwa/sp.h b/src/net/tmwa/sp.h index 01a552ea5..f4116e1f1 100644 --- a/src/net/tmwa/sp.h +++ b/src/net/tmwa/sp.h @@ -27,49 +27,51 @@ namespace Sp { enum { - WALK_SPEED = 0, - EXP = 1, - JOB_EXP = 2, + SPEED = 0, + BASEEXP = 1, + JOBEXP = 2, KARMA = 3, MANNER = 4, HP = 5, - MAX_HP = 6, - MP = 7, - MAX_MP = 8, - CHAR_POINTS = 9, - LEVEL = 11, - SKILL_POINTS = 12, + MAXHP = 6, + SP = 7, + MAXSP = 8, + STATUSPOINT = 9, + BASELEVEL = 11, + SKILLPOINT = 12, STR = 13, AGI = 14, VIT = 15, INT = 16, DEX = 17, LUK = 18, - MONEY = 20, - EXP_NEEDED = 22, + CLASS = 19, + ZENY = 20, + SEX = 21, + NEXTBASEEXP = 22, JOB_MOD = 23, - TOTAL_WEIGHT = 24, - MAX_WEIGHT = 25, - STR_NEEDED = 32, - AGI_NEEDED = 33, - VIT_NEEDED = 34, - INT_NEEDED = 35, - DEX_NEEDED = 36, - LUK_NEEDED = 37, - ATK = 41, - ATK_MOD = 42, - MATK = 43, - MATK_MOD = 44, - DEF = 45, - DEF_MOD = 46, - MDEF = 47, - MDEF_MOD = 48, + WEIGHT = 24, + MAXWEIGHT = 25, + USTR = 32, + UAGI = 33, + UVIT = 34, + UINT = 35, + UDEX = 36, + ULUK = 37, + ATK1 = 41, + ATK2 = 42, + MATK1 = 43, + MATK2 = 44, + DEF1 = 45, + DEF2 = 46, + MDEF1 = 47, + MDEF2 = 48, HIT = 49, - FLEE = 50, - FLEE_MOD = 51, - CRIT = 52, - ATTACK_DELAY = 53, - JOB = 55, + FLEE1 = 50, + FLEE2 = 51, + CRITICAL = 52, + ASPD = 53, + JOBLEVEL = 55, GM_LEVEL = 500 }; -- cgit v1.2.3-60-g2f50