diff options
Diffstat (limited to 'src/mmo')
-rw-r--r-- | src/mmo/clif.t.hpp | 18 | ||||
-rw-r--r-- | src/mmo/consts.hpp | 6 | ||||
-rw-r--r-- | src/mmo/enums.hpp | 46 | ||||
-rw-r--r-- | src/mmo/extract_enums.hpp | 3 | ||||
-rw-r--r-- | src/mmo/skill.t.hpp | 1 |
5 files changed, 66 insertions, 8 deletions
diff --git a/src/mmo/clif.t.hpp b/src/mmo/clif.t.hpp index 33a6f3c..f8350a7 100644 --- a/src/mmo/clif.t.hpp +++ b/src/mmo/clif.t.hpp @@ -153,6 +153,7 @@ enum class DamageType : uint8_t DOUBLED = 0x08, CRITICAL = 0x0a, FLEE2 = 0x0b, + DEADLY = 0x0c, }; enum class LOOK : uint8_t @@ -332,6 +333,12 @@ enum class SP : uint16_t DEAF = 70, + KILLS = 490, + CASTS = 491, + ITEMS_USED = 492, + TILES_WALKED = 493, + ATTACKS = 494, + // sent to client GM = 500, @@ -472,6 +479,17 @@ enum class SP : uint16_t MUTE_PARTY = 1084, MUTE_GUILD = 1085, AUTOMOD = 1086, + + SPEED_CAP = 1087, + + ALL_STATS = 1088, + AGI_VIT = 1089, + AGI_DEX_STR = 1090, + + DEADLY_STRIKE_RATE = 1091, + DEADLY_STRIKE_ADD_RATE = 1092, + + BASE_WEAPON_DELAY_ADJUST = 1093, }; constexpr diff --git a/src/mmo/consts.hpp b/src/mmo/consts.hpp index 5445186..d56facd 100644 --- a/src/mmo/consts.hpp +++ b/src/mmo/consts.hpp @@ -36,7 +36,9 @@ constexpr int MAX_MAP_PER_SERVER = 512; constexpr int MAX_INVENTORY = 100; constexpr int MAX_AMOUNT = 30000; constexpr int MAX_ZENY = 1000000000; // 1G zeny -constexpr int TRADE_MAX = 10; +constexpr int TRADE_MAX = 12; +// M+ 1.9.3.23 only supports 12 items in trade window it will make the trade with more but brings error messages for every item above 12. +// So I let it 12 for now until ManaVerse (with cuocos fix) is the only client. constexpr int GLOBAL_REG_NUM = 96; constexpr size_t ACCOUNT_REG_NUM = 16; @@ -44,7 +46,7 @@ constexpr size_t ACCOUNT_REG2_NUM = 16; constexpr interval_t DEFAULT_WALK_SPEED = 150_ms; constexpr interval_t MIN_WALK_SPEED = interval_t::zero(); constexpr interval_t MAX_WALK_SPEED = 1_s; -constexpr int MAX_STORAGE = 300; +constexpr int MAX_STORAGE = 500; constexpr int MAX_PARTY = 120; #define MIN_HAIR_STYLE battle_config.min_hair_style diff --git a/src/mmo/enums.hpp b/src/mmo/enums.hpp index 2564ec9..c4a1b17 100644 --- a/src/mmo/enums.hpp +++ b/src/mmo/enums.hpp @@ -99,14 +99,47 @@ constexpr ATTR ATTRs[6] = enum class ItemLook : uint16_t { - NONE = 0, - BLADE = 1, // or some other common weapons - SETZER_AND_SCYTHE = 3, - STAFF = 10, - BOW = 11, - COUNT = 17, + W_FIST, // 0 Fist + W_DAGGER, // 1 Dagger + W_1HSWORD, // 2 Sword + W_2HSWORD, // 3 TwoHandSword + W_1HSPEAR, // 4 Spear + W_2HSPEAR, // 5 TwoHandSpear + W_1HAXE, // 6 Axe + W_2HAXE, // 7 TwoHandAxe + W_MACE, // 8 Mace + W_2HMACE, // 9 TwoHandMace + W_STAFF, // 10 Rod + W_BOW, // 11 Bow + W_KNUCKLE, // 12 Knuckle + W_MUSICAL, // 13 Instrument + W_WHIP, // 14 Whip + W_BOOK, // 15 Book + W_KATAR, // 16 Katar + W_REVOLVER, // 17 Revolver + W_RIFLE, // 18 Rifle + W_GATLING, // 19 GatlingGun + W_SHOTGUN, // 20 Shotgun + W_GRENADE, // 21 GrenadeLauncher + W_HUUMA, // 22 FuumaShuriken + W_2HSTAFF, // 23 TwoHandRod + COUNT, }; +namespace e +{ +enum class ItemMode : uint8_t +{ + NONE = 0, + NO_DROP = 1, + NO_TRADE = 2, + NO_SELL_TO_NPC = 4, + NO_STORAGE = 8, +}; +ENUM_BITWISE_OPERATORS(ItemMode) +} +using e::ItemMode; + enum class SEX : uint8_t { FEMALE = 0, @@ -117,6 +150,7 @@ enum class SEX : uint8_t NEUTRAL = 3, __OTHER = 4, // used in ManaPlus only }; + inline char sex_to_char(SEX sex) { diff --git a/src/mmo/extract_enums.hpp b/src/mmo/extract_enums.hpp index 0e8ac4c..14e7b17 100644 --- a/src/mmo/extract_enums.hpp +++ b/src/mmo/extract_enums.hpp @@ -35,6 +35,7 @@ enum class EPOS : uint16_t; enum class Opt1 : uint16_t; enum class Opt2 : uint16_t; enum class Opt0 : uint16_t; +enum class ItemMode : uint8_t; inline bool impl_extract(XString str, EPOS *iv) { return extract_as_int(str, iv); } @@ -44,6 +45,8 @@ inline bool impl_extract(XString str, Opt2 *iv) { return extract_as_int(str, iv); } inline bool impl_extract(XString str, Opt0 *iv) { return extract_as_int(str, iv); } +inline +bool impl_extract(XString str, ItemMode *iv) { return extract_as_int(str, iv); } } // namespace e enum class ItemLook : uint16_t; diff --git a/src/mmo/skill.t.hpp b/src/mmo/skill.t.hpp index 1509852..782980c 100644 --- a/src/mmo/skill.t.hpp +++ b/src/mmo/skill.t.hpp @@ -59,6 +59,7 @@ enum class StatusChange : uint16_t SC_COOLDOWN_AR = 75, // Frillyar cooldown SC_COOLDOWN_ENCH = 76, // Enchanter cooldown SC_COOLDOWN_KOY = 77, // Koyntety cooldown + SC_COOLDOWN_UPMARMU = 78, // Upmarmu cooldown SC_POISON = 132, // bad; actually used |