summaryrefslogtreecommitdiff
path: root/src/mmo
diff options
context:
space:
mode:
Diffstat (limited to 'src/mmo')
-rw-r--r--src/mmo/clif.t.hpp18
-rw-r--r--src/mmo/consts.hpp6
-rw-r--r--src/mmo/enums.hpp46
-rw-r--r--src/mmo/extract_enums.hpp3
-rw-r--r--src/mmo/skill.t.hpp1
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