diff --git a/.idea/.idea.perfect-world-unity/.idea/.gitignore b/.idea/.idea.perfect-world-unity/.idea/.gitignore new file mode 100644 index 0000000000..7848fc99cd --- /dev/null +++ b/.idea/.idea.perfect-world-unity/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/modules.xml +/contentModel.xml +/.idea.perfect-world-unity.iml +/projectSettingsUpdater.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.perfect-world-unity/.idea/vcs.xml b/.idea/.idea.perfect-world-unity/.idea/vcs.xml new file mode 100644 index 0000000000..35eb1ddfbb --- /dev/null +++ b/.idea/.idea.perfect-world-unity/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Assets/PerfectWorld/Prefab/GameController.prefab b/Assets/PerfectWorld/Prefab/GameController.prefab index 84e1df02bc..ab17eb1e7a 100644 --- a/Assets/PerfectWorld/Prefab/GameController.prefab +++ b/Assets/PerfectWorld/Prefab/GameController.prefab @@ -9,8 +9,8 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2780428059708698453} - - component: {fileID: 4062305846887961480} - component: {fileID: 1890210201668811196} + - component: {fileID: 6919949516443544071} m_Layer: 0 m_Name: GameController m_TagString: Untagged @@ -33,27 +33,6 @@ Transform: m_Children: [] m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!114 &4062305846887961480 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 6950113420985123515} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 839d10a1a7b2c4a44a99e77558b12d02, type: 3} - m_Name: - m_EditorClassIdentifier: - characterPrefab: {fileID: 6513559496054861882, guid: 1f80fef119a826b4a826baf52a8f92d7, type: 3} - monsterPrefab: {fileID: 2542060226037108388, guid: 244942d3fb9382846b82581ce24fbf4e, type: 3} - npcServerPrefab: {fileID: -5899287755522118344, guid: 9bd42cdc18b3d624db35707155fc50de, type: 3} - cinemachineCamera: {fileID: 0} - _testVfxPrefab: {fileID: 2282869967233380084, guid: 88e840e5dac12ed4383d994c7fadfef1, type: 3} - SelectingVfxPrefab: {fileID: 6894650530511576330, guid: 412301bece3ebe640b2da0e18c5f4028, type: 3} - freeLookCam: {fileID: 0} - rotateSpeedX: 300 - rotateSpeedY: 2 --- !u!114 &1890210201668811196 MonoBehaviour: m_ObjectHideFlags: 0 @@ -70,3 +49,23 @@ MonoBehaviour: uiPrefabs: [] npsUI: {fileID: 0} currentTargetNPCID: 0 +--- !u!114 &6919949516443544071 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6950113420985123515} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5de219a5b9756ae4ebf01e2919b92cde, type: 3} + m_Name: + m_EditorClassIdentifier: + characterPrefab: {fileID: 6513559496054861882, guid: 1f80fef119a826b4a826baf52a8f92d7, type: 3} + monsterPrefab: {fileID: 2542060226037108388, guid: 244942d3fb9382846b82581ce24fbf4e, type: 3} + npcServerPrefab: {fileID: -5899287755522118344, guid: 9bd42cdc18b3d624db35707155fc50de, type: 3} + cinemachineCamera: {fileID: 0} + _testVfxPrefab: {fileID: 0} + freeLookCam: {fileID: 0} + rotateSpeedX: 300 + rotateSpeedY: 2 diff --git a/Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs b/Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs index 948e25d22c..82dd10aa56 100644 --- a/Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs +++ b/Assets/PerfectWorld/Scripts/Common/AutoInitializer.cs @@ -12,6 +12,7 @@ namespace BrewMonster private void Awake() { Initialize(); + SkillStubs.Init(); DontDestroyOnLoad(gameObject); } diff --git a/Assets/PerfectWorld/Scripts/Common/DataProcess/elementdataman.cs b/Assets/PerfectWorld/Scripts/Common/DataProcess/elementdataman.cs index af29d073f1..9f5690121a 100644 --- a/Assets/PerfectWorld/Scripts/Common/DataProcess/elementdataman.cs +++ b/Assets/PerfectWorld/Scripts/Common/DataProcess/elementdataman.cs @@ -600,13 +600,11 @@ namespace ModelRenderer.Scripts.GameData add_id_index(ID_SPACE.ID_SPACE_ESSENCE, item.id, DATA_TYPE.DT_WEAPON_SUB_TYPE); add_id_data(ID_SPACE.ID_SPACE_ESSENCE, item.id, item); } - foreach (var item in npc_essence_array) { add_id_index(ID_SPACE.ID_SPACE_ESSENCE, item.id, DATA_TYPE.DT_NPC_ESSENCE); add_id_data(ID_SPACE.ID_SPACE_ESSENCE, item.id, item); } - foreach (var item in weapon_essence_array) { add_id_index(ID_SPACE.ID_SPACE_ESSENCE, item.id, DATA_TYPE.DT_WEAPON_ESSENCE); @@ -1519,7 +1517,16 @@ namespace ModelRenderer.Scripts.GameData return 0; } - + public T GetDataTypeMap(ID_SPACE type) where T : class + { + object result = type switch + { + ID_SPACE.ID_SPACE_ESSENCE => essence_id_data_type_map, + _ => null + }; + + return result as T; + } void add_id_data(ID_SPACE idSpace, uint id, object data) { @@ -1641,7 +1648,42 @@ namespace ModelRenderer.Scripts.GameData } return DATA_TYPE.DT_INVALID; } + public object[] GetAllDataTypeWithType(ID_SPACE idspace,DATA_TYPE dataType ) + { + List results = new List(); + switch (idspace) + { + case ID_SPACE.ID_SPACE_ESSENCE: + foreach (var kvp in essence_id_data_type_map) + { + if (kvp.Value == dataType) + { + if (essence_id_data_map.TryGetValue(kvp.Key, out var data)) + { + results.Add(data); + } + } + } + break; + + // Optionally add other cases if you have other *_id_data_type_map dictionaries + // case ID_SPACE.ID_SPACE_CONFIG: + // foreach (var kvp in config_id_data_type_map) + // { + // if (kvp.Value == dataType) + // { + // if (config_id_data_map.TryGetValue(kvp.Key, out var data)) + // { + // results.Add(data); + // } + // } + // } + // break; + } + + return results.ToArray(); + } public object get_data_ptr(uint id, ID_SPACE idspace, ref DATA_TYPE dataType) { object data = null; diff --git a/Assets/PerfectWorld/Scripts/Common/EC_StringTab.cs b/Assets/PerfectWorld/Scripts/Common/EC_StringTab.cs deleted file mode 100644 index 1ac8e27d3a..0000000000 --- a/Assets/PerfectWorld/Scripts/Common/EC_StringTab.cs +++ /dev/null @@ -1,162 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using ModelRenderer.Scripts.Common; - -namespace BrewMonster.Common -{ - public class CECStringTab - { - - private Dictionary m_AStrTab = new Dictionary(); - private Dictionary m_WStrTab = new Dictionary(); - - protected bool m_bInit = false; - protected bool m_bUnicode = false; - - public bool IsInitialized() => m_bInit; - - public void Clear() - { - m_AStrTab.Clear(); - m_WStrTab.Clear(); - m_bInit = false; - m_bUnicode = false; - } - - public bool Init(string szFile, bool bUnicode) - { - bool bRet = false; - - if (bUnicode) - { - bRet = LoadWideStrings(szFile); - } - - if (!bRet) - { - BMLogger.LogError($"EC_StringTab::Init: {szFile} File load failed"); - return false; - } - - m_bInit = true; - return true; - } - - private bool LoadWideStrings(string szFile) - { - AWScriptFile ScriptFile = new AWScriptFile(); - if (!ScriptFile.Open(szFile)) return false; - - bool bIndex = false; - bool bFileEnd = true; - - // Read configs - while (ScriptFile.GetNextToken(true)) - { - string tokenStr = ByteToStringUtils.UshortArrayToUnicodeString(ScriptFile.m_szToken); - if (ByteToStringUtils.UshortArrayToUnicodeString(ScriptFile.m_szToken).StartsWith("#_index")) - bIndex = true; - else if (ByteToStringUtils.UshortArrayToUnicodeString(ScriptFile.m_szToken).StartsWith("#_begin")) - { - bFileEnd = false; - break; - } - } - - if (bFileEnd) - { - ScriptFile.Close(); - return true; - } - - if (bIndex) - { - // Every string has a preset index - while (ScriptFile.PeekNextToken(true)) - { - int n = ScriptFile.GetNextTokenAsInt(true); - ScriptFile.GetNextToken(false); - - string pstr = ByteToStringUtils.UshortArrayToUnicodeString(ScriptFile.m_szToken); - if (string.IsNullOrEmpty(pstr)) - { - ScriptFile.Close(); - BMLogger.LogError($"EC_StringTab::LoadWideStrings: {szFile} Not enough memory"); - return false; - } - - if (!m_WStrTab.TryAdd(n, pstr)) - { - BMLogger.LogError($"EC_StringTab::LoadWideStrings: {szFile} Failed to add string to dictionary"); - return false; - } - } - } - else - { - int iCnt = 0; - - // Read strings sequently - while (ScriptFile.GetNextToken(true)) - { - string pstr = ByteToStringUtils.UshortArrayToUnicodeString(ScriptFile.m_szToken); - if (string.IsNullOrEmpty(pstr)) - { - ScriptFile.Close(); - BMLogger.LogError($"EC_StringTab::LoadWideStrings: {szFile} Not enough memory"); - return false; - } - - if (!m_WStrTab.TryAdd(iCnt++, pstr)) - { - BMLogger.LogError($"EC_StringTab::LoadWideStrings: {szFile} Failed to add string to dictionary"); - return false; - } - } - } - - ScriptFile.Close(); - - return true; - } - - /// - /// Get a string by index from the Unicode string table - /// - /// The index of the string to retrieve - /// The string at the given index, or null if not found - public string GetString(int index) - { - if (m_WStrTab.TryGetValue(index, out string result)) - { - return result; - } - return null; - } - - /// - /// Get a string by index from the ANSI string table - /// - /// The index of the string to retrieve - /// The string at the given index, or null if not found - public string GetANSIString(int index) - { - if (m_AStrTab.TryGetValue(index, out string result)) - { - return result; - } - return null; - } - - /// - /// Check if a string exists at the given index - /// - /// The index to check - /// True if a string exists at the index - public bool HasString(int index) - { - return m_WStrTab.ContainsKey(index) || m_AStrTab.ContainsKey(index); - } - } -} \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Common/EC_StringTab.cs.meta b/Assets/PerfectWorld/Scripts/Common/EC_StringTab.cs.meta deleted file mode 100644 index 672eb34c76..0000000000 --- a/Assets/PerfectWorld/Scripts/Common/EC_StringTab.cs.meta +++ /dev/null @@ -1,2 +0,0 @@ -fileFormatVersion: 2 -guid: b95d268e43a5da14f9cf8e1ed98bfd73 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Common/ListExtensions.cs b/Assets/PerfectWorld/Scripts/Common/ListExtensions.cs new file mode 100644 index 0000000000..d0f9c93ce9 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Common/ListExtensions.cs @@ -0,0 +1,18 @@ +using System.Collections.Generic; +using UnityEngine; + +namespace BrewMonster +{ + public static class ListExtensions + { + public static int UniquelyAdd(this List list, T item) + { + int index = list.IndexOf(item); + if (index >= 0) + return index; + + list.Add(item); + return list.Count - 1; + } + } +} diff --git a/Assets/PerfectWorld/Scripts/Common/ListExtensions.cs.meta b/Assets/PerfectWorld/Scripts/Common/ListExtensions.cs.meta new file mode 100644 index 0000000000..c75dcf3739 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Common/ListExtensions.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: db1eed55761115545b7046325b4ab7f7 \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Common/Singleton.cs b/Assets/PerfectWorld/Scripts/Common/Singleton.cs new file mode 100644 index 0000000000..5712814448 --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Common/Singleton.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BrewMonster.Assets.PerfectWorld.Scripts.Common +{ + public abstract class Singleton where T : class, new() + { + private static readonly Lazy _instance = new Lazy(() => new T()); + public static T Instance => _instance.Value; + + // Protected constructor prevents external instantiation + protected Singleton() + { + if (_instance.IsValueCreated) + throw new InvalidOperationException($"Singleton<{typeof(T).Name}> already created!"); + } + } +} diff --git a/Assets/PerfectWorld/Scripts/Common/Singleton.cs.meta b/Assets/PerfectWorld/Scripts/Common/Singleton.cs.meta new file mode 100644 index 0000000000..4830be10fc --- /dev/null +++ b/Assets/PerfectWorld/Scripts/Common/Singleton.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 6034e7cce8bae674c88f8d3de26c06aa \ No newline at end of file diff --git a/Assets/PerfectWorld/Scripts/Common/StringTabTest.cs b/Assets/PerfectWorld/Scripts/Common/StringTabTest.cs index 3babe721d3..a6829515de 100644 --- a/Assets/PerfectWorld/Scripts/Common/StringTabTest.cs +++ b/Assets/PerfectWorld/Scripts/Common/StringTabTest.cs @@ -14,7 +14,7 @@ namespace BrewMonster.Common { m_pStringTab = new CECStringTab(); } - m_pStringTab.Clear(); + //m_pStringTab.Clear(); string path = Path.Combine(Application.streamingAssetsPath, "configs/skillstr.txt"); m_pStringTab.Init(path, true); } @@ -27,7 +27,7 @@ namespace BrewMonster.Common m_pStringTab = new CECStringTab(); } - m_pStringTab.Clear(); + //m_pStringTab.Clear(); string path = Path.Combine(Application.streamingAssetsPath, "configs/item_desc.txt"); m_pStringTab.Init(path, true); } @@ -40,7 +40,7 @@ namespace BrewMonster.Common m_pStringTab = new CECStringTab(); } - m_pStringTab.Clear(); + //m_pStringTab.Clear(); string path = Path.Combine(Application.streamingAssetsPath, "configs/fixed_msg.txt"); m_pStringTab.Init(path, true); } diff --git a/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs b/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs index a974d8aa54..f75f9958eb 100644 --- a/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs +++ b/Assets/PerfectWorld/Scripts/GameData/ExpTypes.cs @@ -10,15 +10,16 @@ namespace BrewMonster { public const int NUM_WEAPON_TYPE = 14; } + public class ElementDataConstants { - public const int ELEMENTDATA_NUM_PROFESSION = 12; // Number of professions - public const int ELEMENTDATA_NUM_POKER_TYPE = 6; // Number of poker types - public const int ELEMENTDATA_NUM_POKER_RANK = 5; // Number of poker quality ranks - public const int ELEMENTDATA_MAX_POKER_LEVEL = 100; // Maximum poker level - public const int ELEMENTDATA_MAX_UNIVERSAL_TOKEN_USAGE = 32; // Maximum universal token usage formats - public const int ELEMENTDATA_MAX_ENGRAVE_ADDON_COUNT = 3; // Maximum number of engrave add-ons - public const int ELEMENTDATA_MAX_INHERIT_ADDON_COUNT = 5; // Maximum number of inherit add-ons + public const int ELEMENTDATA_NUM_PROFESSION = 12; // Number of professions + public const int ELEMENTDATA_NUM_POKER_TYPE = 6; // Number of poker types + public const int ELEMENTDATA_NUM_POKER_RANK = 5; // Number of poker quality ranks + public const int ELEMENTDATA_MAX_POKER_LEVEL = 100; // Maximum poker level + public const int ELEMENTDATA_MAX_UNIVERSAL_TOKEN_USAGE = 32; // Maximum universal token usage formats + public const int ELEMENTDATA_MAX_ENGRAVE_ADDON_COUNT = 3; // Maximum number of engrave add-ons + public const int ELEMENTDATA_MAX_INHERIT_ADDON_COUNT = 5; // Maximum number of inherit add-ons } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -30,9 +31,9 @@ namespace BrewMonster public ushort[] name; // Name public int num_params; // Number of parameters - public int param1; // Parameter 1 - public int param2; // Parameter 2 - public int param3; // Parameter 3 + public int param1; // Parameter 1 + public int param2; // Parameter 2 + public int param3; // Parameter 3 } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -59,12 +60,12 @@ namespace BrewMonster public byte[] file_hitsfx; // Hit sound effect file path public float probability_fastest; // Attack frequency probability: Fastest -0.1 - public float probability_fast; // Attack frequency probability: Fast -0.05 - public float probability_normal; // Attack frequency probability: Normal 0 - public float probability_slow; // Attack frequency probability: Slow +0.05 + public float probability_fast; // Attack frequency probability: Fast -0.05 + public float probability_normal; // Attack frequency probability: Normal 0 + public float probability_slow; // Attack frequency probability: Slow +0.05 public float probability_slowest; // Attack frequency probability: Slowest +0.1 - public float attack_speed; // Attack speed (cooldown time), unit: seconds + public float attack_speed; // Attack speed (cooldown time), unit: seconds public float attack_short_range; // Minimum attack range, for melee weapons = 0.0 public uint action_type; // Action type for attack animation @@ -102,9 +103,9 @@ namespace BrewMonster public struct WEAPON_ESSENCE { // Basic information - public uint id; // Weapon ID + public uint id; // Weapon ID public uint id_major_type; // Major type ID - public uint id_sub_type; // Sub-type ID + public uint id_sub_type; // Sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // Weapon name, max 15 characters @@ -131,17 +132,18 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path + public string FileIcon => ByteToStringUtils.ByteArrayToCP936String(file_icon); // Equipment requirements public int require_strength; // Required strength - public int require_agility; // Required agility - public int require_energy; // Required energy - public int require_tili; // Required tili + public int require_agility; // Required agility + public int require_energy; // Required energy + public int require_tili; // Required tili public uint character_combo_id; // Class combo ID mask - public int require_level; // Required level + public int require_level; // Required level public int require_reputation; // Required reputation // Weapon attributes @@ -149,16 +151,16 @@ namespace BrewMonster public int fixed_props; // Fixed properties (0~3) - public int damage_low; // Minimum physical damage + public int damage_low; // Minimum physical damage public int damage_high_min; // Minimum of maximum physical damage range public int damage_high_max; // Maximum of maximum physical damage range - public int magic_damage_low; // Minimum magic damage + public int magic_damage_low; // Minimum magic damage public int magic_damage_high_min; // Minimum of maximum magic damage range public int magic_damage_high_max; // Maximum of maximum magic damage range - public float attack_range; // Attack range - public uint short_range_mode; // Range mode: 0-Long, 1-Short, 2-Both + public float attack_range; // Attack range + public uint short_range_mode; // Range mode: 0-Long, 1-Short, 2-Both public int durability_min; // Minimum durability public int durability_max; // Maximum durability @@ -167,7 +169,7 @@ namespace BrewMonster public int material_need; // Required material for upgrade // Money - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price public int repairfee; // Repair fee @@ -189,12 +191,12 @@ namespace BrewMonster public float probability_addon_num3; // Probability of 3 addons public float probability_addon_num4; // Probability of 4 addons public float probability_addon_num5; // Probability of 5 addons - public float probability_unique; // Probability of unique addon + public float probability_unique; // Probability of unique addon [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct AddonInfo { - public uint id_addon; // Addon ID + public uint id_addon; // Addon ID public float probability_addon; // Addon probability } @@ -204,7 +206,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct RandInfo { - public uint id_rand; // Random attribute ID + public uint id_rand; // Random attribute ID public float probability_rand; // Random attribute probability } @@ -214,7 +216,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct UniqueInfo { - public uint id_unique; // Unique attribute ID + public uint id_unique; // Unique attribute ID public float probability_unique; // Unique attribute probability } @@ -225,18 +227,18 @@ namespace BrewMonster public int durability_drop_max; // Maximum durability when dropped // Decomposition - public int decompose_price; // Decomposition price - public int decompose_time; // Decomposition time - public uint element_id; // Element ID from decomposition - public int element_num; // Element number from decomposition + public int decompose_price; // Decomposition price + public int decompose_time; // Decomposition time + public uint element_id; // Element ID from decomposition + public int element_num; // Element number from decomposition - public uint id_drop_after_damaged; // ID to drop after damage - public int num_drop_after_damaged; // Number to drop after damage + public uint id_drop_after_damaged; // ID to drop after damage + public int num_drop_after_damaged; // Number to drop after damage // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type public override string ToString() { @@ -271,9 +273,9 @@ namespace BrewMonster public struct ARMOR_ESSENCE { // Basic information - public uint id; // Armor ID + public uint id; // Armor ID public uint id_major_type; // Major type ID - public uint id_sub_type; // Sub-type ID + public uint id_sub_type; // Sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // Armor name, max 15 characters @@ -302,38 +304,38 @@ namespace BrewMonster // Equipment requirements public int require_strength; // Required strength - public int require_agility; // Required agility - public int require_energy; // Required energy - public int require_tili; // Required tili + public int require_agility; // Required agility + public int require_energy; // Required energy + public int require_tili; // Required tili public uint character_combo_id; // Class combo ID mask - public int require_level; // Required level + public int require_level; // Required level public int require_reputation; // Required reputation public int fixed_props; // Fixed properties (0~3) // Defense attributes - public int defence_low; // Minimum physical defense + public int defence_low; // Minimum physical defense public int defence_high; // Maximum physical defense [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct MagicDefence { - public int low; // Minimum magic defense + public int low; // Minimum magic defense public int high; // Maximum magic defense } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] public MagicDefence[] magic_defences; // Magic defenses for 5 elements - public int mp_enhance_low; // Minimum MP enhancement + public int mp_enhance_low; // Minimum MP enhancement public int mp_enhance_high; // Maximum MP enhancement - public int hp_enhance_low; // Minimum HP enhancement + public int hp_enhance_low; // Minimum HP enhancement public int hp_enhance_high; // Maximum HP enhancement - public int armor_enhance_low; // Minimum armor enhancement + public int armor_enhance_low; // Minimum armor enhancement public int armor_enhance_high; // Maximum armor enhancement public int durability_min; // Minimum durability @@ -343,7 +345,7 @@ namespace BrewMonster public int material_need; // Required material for upgrade // Money - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price public int repairfee; // Repair fee @@ -372,7 +374,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct AddonInfo { - public uint id_addon; // Addon ID + public uint id_addon; // Addon ID public float probability_addon; // Addon probability } @@ -382,7 +384,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct RandInfo { - public uint id_rand; // Random attribute ID + public uint id_rand; // Random attribute ID public float probability_rand; // Random attribute probability } @@ -393,21 +395,21 @@ namespace BrewMonster public int durability_drop_max; // Maximum durability when dropped // Decomposition - public int decompose_price; // Decomposition price - public int decompose_time; // Decomposition time - public uint element_id; // Element ID from decomposition - public int element_num; // Element number from decomposition + public int decompose_price; // Decomposition price + public int decompose_time; // Decomposition time + public uint element_id; // Element ID from decomposition + public int element_num; // Element number from decomposition - public uint id_drop_after_damaged; // ID to drop after damage - public int num_drop_after_damaged; // Number to drop after damage + public uint id_drop_after_damaged; // ID to drop after damage + public int num_drop_after_damaged; // Number to drop after damage - public uint id_hair; // Hair model ID + public uint id_hair; // Hair model ID public uint id_hair_texture; // Hair texture ID // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type public uint force_all_magic_defences; // Force all magic defenses } @@ -436,9 +438,9 @@ namespace BrewMonster public struct DECORATION_ESSENCE { // Basic information - public uint id; // Decoration ID + public uint id; // Decoration ID public uint id_major_type; // Major type ID - public uint id_sub_type; // Sub-type ID + public uint id_sub_type; // Sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // Decoration name, max 15 characters @@ -457,38 +459,38 @@ namespace BrewMonster // Equipment requirements public int require_strength; // Required strength - public int require_agility; // Required agility - public int require_energy; // Required energy - public int require_tili; // Required tili + public int require_agility; // Required agility + public int require_energy; // Required energy + public int require_tili; // Required tili public uint character_combo_id; // Class combo ID mask - public int require_level; // Required level + public int require_level; // Required level public int require_reputation; // Required reputation public int fixed_props; // Fixed properties (0~3) // Attributes - public int damage_low; // Minimum physical damage + public int damage_low; // Minimum physical damage public int damage_high; // Maximum physical damage - public int magic_damage_low; // Minimum magic damage + public int magic_damage_low; // Minimum magic damage public int magic_damage_high; // Maximum magic damage - public int defence_low; // Minimum physical defense + public int defence_low; // Minimum physical defense public int defence_high; // Maximum physical defense [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct MagicDefence { - public int low; // Minimum magic defense + public int low; // Minimum magic defense public int high; // Maximum magic defense } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] public MagicDefence[] magic_defences; // Magic defenses for 5 elements - public int armor_enhance_low; // Minimum armor enhancement + public int armor_enhance_low; // Minimum armor enhancement public int armor_enhance_high; // Maximum armor enhancement public int durability_min; // Minimum durability @@ -498,7 +500,7 @@ namespace BrewMonster public int material_need; // Required material for upgrade // Money - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price public int repairfee; // Repair fee @@ -513,7 +515,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct AddonInfo { - public uint id_addon; // Addon ID + public uint id_addon; // Addon ID public float probability_addon; // Addon probability } @@ -523,7 +525,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct RandInfo { - public uint id_rand; // Random attribute ID + public uint id_rand; // Random attribute ID public float probability_rand; // Random attribute probability } @@ -534,18 +536,18 @@ namespace BrewMonster public int durability_drop_max; // Maximum durability when dropped // Decomposition - public int decompose_price; // Decomposition price - public int decompose_time; // Decomposition time - public uint element_id; // Element ID from decomposition - public int element_num; // Element number from decomposition + public int decompose_price; // Decomposition price + public int decompose_time; // Decomposition time + public uint element_id; // Element ID from decomposition + public int element_num; // Element number from decomposition - public uint id_drop_after_damaged; // ID to drop after damage - public int num_drop_after_damaged; // Number to drop after damage + public uint id_drop_after_damaged; // ID to drop after damage + public int num_drop_after_damaged; // Number to drop after damage // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -615,18 +617,18 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct ListItem { - public uint id; // List item ID + public uint id; // List item ID public float probability; // List item probability } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public ListItem[] list; // Item list - public int price; // Base price - public int shop_price; // Shop price - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int price; // Base price + public int shop_price; // Shop price + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -655,7 +657,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct POKER_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_sub_type; // Sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -678,23 +680,23 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 2)] public int[] require_control_point; // Required control points - public int rank; // Rank + public int rank; // Rank public int max_level; // Maximum level - public int hp; // Initial HP - public int damage; // Initial physical damage + public int hp; // Initial HP + public int damage; // Initial physical damage public int magic_damage; // Initial magic damage - public int defence; // Initial defense + public int defence; // Initial defense [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] public int[] magic_defence; // Initial magic defense public int vigour; // Initial vigor - public int inc_hp; // HP increase per level - public int inc_damage; // Physical damage increase per level + public int inc_hp; // HP increase per level + public int inc_damage; // Physical damage increase per level public int inc_magic_damage; // Magic damage increase per level - public int inc_defence; // Defense increase per level + public int inc_defence; // Defense increase per level [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] public int[] inc_magic_defence; // Magic defense increase per level @@ -708,11 +710,11 @@ namespace BrewMonster public int show_order; // Display order - public int price; // Base price - public int shop_price; // Shop price - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int price; // Base price + public int shop_price; // Shop price + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -739,9 +741,9 @@ namespace BrewMonster public struct FASHION_ESSENCE { // Basic information - public uint id; // Fashion ID + public uint id; // Fashion ID public uint id_major_type; // Major type ID - public uint id_sub_type; // Sub-type ID + public uint id_sub_type; // Sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // Fashion name, max 15 characters @@ -771,19 +773,19 @@ namespace BrewMonster public int require_dye_count; // Required dye count // Money - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Gender public int gender; // Usable gender: 0-Male, 1-Female - public uint id_hair; // Hair model ID + public uint id_hair; // Hair model ID public uint id_hair_texture; // Hair texture ID // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public byte[] wear_action; // Wear action @@ -797,7 +799,7 @@ namespace BrewMonster public byte[] file_model_left; // Left-hand model file path public uint character_combo_id; // Class combo ID mask - public uint action_type; // Action type + public uint action_type; // Action type public uint combined_switch; // Combined switch @@ -835,9 +837,9 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct MEDICINE_ESSENCE { - public uint id; // Medicine ID + public uint id; // Medicine ID public uint id_major_type; // Medicine major type ID - public uint id_sub_type; // Medicine sub-type ID + public uint id_sub_type; // Medicine sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // Medicine name, max 15 characters @@ -849,20 +851,20 @@ namespace BrewMonster public byte[] file_icon; // Icon file path public int require_level; // Required level - public int cool_time; // Cooldown time (seconds) + public int cool_time; // Cooldown time (seconds) public int hp_add_total; // Total HP recovery amount - public int hp_add_time; // HP recovery duration in seconds + public int hp_add_time; // HP recovery duration in seconds public int mp_add_total; // Total MP recovery amount - public int mp_add_time; // MP recovery duration in seconds + public int mp_add_time; // MP recovery duration in seconds - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -882,16 +884,16 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] public uint[] id_addons; // 10 addon IDs - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price - public uint id_drop_after_damaged; // ID to drop after damage - public int num_drop_after_damaged; // Number to drop after damage + public uint id_drop_after_damaged; // ID to drop after damage + public int num_drop_after_damaged; // Number to drop after damage // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -910,13 +912,13 @@ namespace BrewMonster public int id_icon_set; // Icon set ID - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -933,17 +935,17 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int total_hp; // Total HP recovery + public int total_hp; // Total HP recovery public float trigger_amount; // Trigger HP threshold - public int cool_time; // Cooldown time (seconds) + public int cool_time; // Cooldown time (seconds) - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -960,17 +962,17 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int total_mp; // Total MP recovery + public int total_mp; // Total MP recovery public float trigger_amount; // Trigger MP threshold - public int cool_time; // Cooldown time (seconds) + public int cool_time; // Cooldown time (seconds) - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -987,16 +989,16 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public uint require_force; // Required force - public int reputation_add; // Reputation addition - public int reputation_increase_ratio; // Reputation increase ratio (percentage) + public uint require_force; // Required force + public int reputation_add; // Reputation addition + public int reputation_increase_ratio; // Reputation increase ratio (percentage) - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1016,13 +1018,13 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] public int[] id_skill; // Skill IDs - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1046,9 +1048,9 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct MATERIAL_ESSENCE { - public uint id; // Material ID + public uint id; // Material ID public uint id_major_type; // Material major type ID - public uint id_sub_type; // Material sub-type ID + public uint id_sub_type; // Material sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // Material name, max 15 characters @@ -1059,19 +1061,19 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Decomposition - public int decompose_price; // Decomposition price - public int decompose_time; // Decomposition time - public uint element_id; // Element ID from decomposition - public int element_num; // Element number from decomposition + public int decompose_price; // Decomposition price + public int decompose_time; // Decomposition time + public uint element_id; // Element ID from decomposition + public int element_num; // Element number from decomposition // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1092,23 +1094,23 @@ namespace BrewMonster public ushort[] desc; // Description public float ext_reserved_prob; // Extended reserved probability - public float ext_succeed_prob; // Extended success probability + public float ext_succeed_prob; // Extended success probability public uint fail_reserve_level; // Failure reserve level [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)] public float[] fail_ext_succeed_prob; // Extended success probability on failure by level - public uint binding_only; // Only bind to one equipment - public int require_level_max; // Maximum required item level + public uint binding_only; // Only bind to one equipment + public int require_level_max; // Maximum required item level - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1127,13 +1129,13 @@ namespace BrewMonster public int double_exp_time; // Double experience time (seconds) - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1157,13 +1159,13 @@ namespace BrewMonster public float v_min; // Minimum value public float v_max; // Maximum value - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type public uint usage; // Usage: 0-Normal dye for fashion, 1-Ink for signature } @@ -1182,13 +1184,13 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1203,7 +1205,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct DAMAGERUNE_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_sub_type; // Damage rune sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -1217,7 +1219,7 @@ namespace BrewMonster public uint damage_type; // Damage type (0-Physical, 1-Magical) - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price public int require_weapon_level_min; // Minimum required weapon level @@ -1226,9 +1228,9 @@ namespace BrewMonster public int damage_increased; // Damage increase amount // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1243,7 +1245,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct ARMORRUNE_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_sub_type; // Armor rune sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -1263,19 +1265,19 @@ namespace BrewMonster public uint damage_type; // Damage type (0-Physical, 1-Magical) - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price public int require_player_level_min; // Minimum required player level public int require_player_level_max; // Maximum required player level public float damage_reduce_percent; // Damage reduction percentage - public int damage_reduce_time; // Damage reduction duration + public int damage_reduce_time; // Damage reduction duration // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1290,7 +1292,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct SKILLTOME_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_sub_type; // Skill tome sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -1302,13 +1304,13 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1327,13 +1329,13 @@ namespace BrewMonster public uint id_token_shop; // Corresponding shop - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1355,13 +1357,13 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = ElementDataConstants.ELEMENTDATA_MAX_UNIVERSAL_TOKEN_USAGE)] public int[] config_id; // Configuration IDs - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price // Other info - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } public enum UNIVERSAL_TOKEN_COMBINED_SWITCH @@ -1392,8 +1394,10 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] // Using the constant value from FashionSuiteItemIndex.FASHION_SUITE_NUM - public uint[] list; // Item ID list + [MarshalAs(UnmanagedType.ByValArray, + SizeConst = 6)] + // Using the constant value from FashionSuiteItemIndex.FASHION_SUITE_NUM + public uint[] list; // Item ID list public int show_order; // Display order } @@ -1410,7 +1414,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct FACTION_BUILDING_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_sub_type; // Faction building sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -1431,7 +1435,7 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] public int[] material; // Required materials - public int base_time; // Base construction time + public int base_time; // Base construction time public int delta_time; // Additional time per level public int controller_id0; // Controller ID 0 @@ -1455,12 +1459,12 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] public int[] material_count; // Material counts - public int price; // Base price + public int price; // Base price public int shop_price; // Shop price - public int pile_num_max; // Maximum stack size - public uint has_guid; // Whether has GUID: 0-No, 1-Yes - public uint proc_type; // Processing type + public int pile_num_max; // Maximum stack size + public uint has_guid; // Whether has GUID: 0-No, 1-Yes + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1483,14 +1487,14 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int level; // Flying sword level + public int level; // Flying sword level public int require_player_level_min; // Minimum player level required - public float speed_increase_min; // Minimum speed increase - public float speed_increase_max; // Maximum speed increase + public float speed_increase_min; // Minimum speed increase + public float speed_increase_max; // Maximum speed increase public float speed_rush_increase_min; // Minimum rush speed increase public float speed_rush_increase_max; // Maximum rush speed increase @@ -1501,27 +1505,28 @@ namespace BrewMonster public uint fly_mode; // Flying mode: 0-Flying sword, 1-Dragon, 2-Flying vehicle - public uint character_combo_id; // Character combo ID, each bit position: 0-Warrior, 1-Mage, 2-Priest, 3-?, 4-?, 5-?, 6-?, 7-?, 8-?, 9-? + public uint + character_combo_id; // Character combo ID, each bit position: 0-Warrior, 1-Mage, 2-Priest, 3-?, 4-?, 5-?, 6-?, 7-?, 8-?, 9-? - public uint id_drop_after_damaged; // Drop item ID after damage - public int num_drop_after_damaged; // Number of items dropped after damage + public uint id_drop_after_damaged; // Drop item ID after damage + public int num_drop_after_damaged; // Number of items dropped after damage public int max_improve_level; // Max improvement level [StructLayout(LayoutKind.Sequential, Pack = 1)] public struct IMPROVE_CONFIG { - public uint require_item_num; // Required item count - public float speed_increase; // Speed increase + public uint require_item_num; // Required item count + public float speed_increase; // Speed increase public float speed_rush_increase; // Rush speed increase } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] public IMPROVE_CONFIG[] improve_config; // Improvement config array - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1541,18 +1546,18 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int require_player_level_min; // Minimum player level required - public float speed_increase; // Speed increase + public int require_player_level_min; // Minimum player level required + public float speed_increase; // Speed increase - public int mp_launch; // MP required to launch + public int mp_launch; // MP required to launch public int mp_per_second; // MP consumed per second - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1571,12 +1576,12 @@ namespace BrewMonster public float use_time; // Use time (seconds) - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1593,12 +1598,12 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1617,12 +1622,12 @@ namespace BrewMonster public float use_time; // Use time (seconds) - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1639,15 +1644,15 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public float use_time; // Use time (seconds) - public int cool_time; // Cooldown time (milliseconds) + public float use_time; // Use time (seconds) + public int cool_time; // Cooldown time (milliseconds) - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1666,12 +1671,12 @@ namespace BrewMonster public int level; // Element stone level - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1688,12 +1693,12 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1707,9 +1712,9 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } [StructLayout(LayoutKind.Sequential, Pack = 1)] @@ -1726,12 +1731,12 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // Icon file path - public int price; // Price + public int price; // Price public int shop_price; // Shop price - public int pile_num_max; // Max stack count - public uint has_guid; // Whether item has GUID - public uint proc_type; // Processing type + public int pile_num_max; // Max stack count + public uint has_guid; // Whether item has GUID + public uint proc_type; // Processing type } public struct TASKDICE_ESSENCE @@ -1750,18 +1755,18 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct TaskList { - public uint id; // task id + public uint id; // task id public float probability; // probability } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] public TaskList[] task_lists; - public uint use_on_pick; // true or false - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type - public int no_use_in_combat; // can't use in combat flag: 1-yes, 0-no + public uint use_on_pick; // true or false + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type + public int no_use_in_combat; // can't use in combat flag: 1-yes, 0-no } public struct TOSSMATTER_ESSENCE @@ -1790,22 +1795,22 @@ namespace BrewMonster public byte[] file_hitsfx; // hit sound effect file public int require_strength; // strength requirement - public int require_agility; // agility requirement - public int require_level; // level requirement + public int require_agility; // agility requirement + public int require_level; // level requirement - public int damage_low; // lower damage value + public int damage_low; // lower damage value public int damage_high_min; // high damage min value public int damage_high_max; // high damage max value - public float use_time; // use time (seconds) + public float use_time; // use time (seconds) public float attack_range; // attack range - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct PROJECTILE_TYPE @@ -1818,7 +1823,7 @@ namespace BrewMonster public struct PROJECTILE_ESSENCE { - public uint id; // ID + public uint id; // ID public uint type; // projectile type [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -1845,10 +1850,10 @@ namespace BrewMonster public int require_weapon_level_min; // minimum weapon level required public int require_weapon_level_max; // maximum weapon level required - public int damage_enhance; // damage enhancement + public int damage_enhance; // damage enhancement public int damage_scale_enhance; // damage scale enhancement - public int price; // price + public int price; // price public int shop_price; // shop price public uint id_addon0; // addon ID 0 @@ -1856,9 +1861,9 @@ namespace BrewMonster public uint id_addon2; // addon ID 2 public uint id_addon3; // addon ID 3 - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct QUIVER_SUB_TYPE @@ -1871,7 +1876,7 @@ namespace BrewMonster public struct QUIVER_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_sub_type; // sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -1884,8 +1889,8 @@ namespace BrewMonster public byte[] file_icon; // icon file path public uint id_projectile; // contained projectile type - public int num_min; // minimum number - public int num_max; // maximum number + public int num_min; // minimum number + public int num_max; // maximum number } public struct STONE_SUB_TYPE @@ -1898,7 +1903,7 @@ namespace BrewMonster public struct STONE_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_sub_type; // stone sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -1913,13 +1918,13 @@ namespace BrewMonster public int level; // level public int color; // color (0-7) - public int price; // price + public int price; // price public int shop_price; // shop price - public int install_price; // installation price + public int install_price; // installation price public int uninstall_price; // uninstallation price - public uint id_addon_damage; // damage addon ID + public uint id_addon_damage; // damage addon ID public uint id_addon_defence; // defence addon ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] @@ -1928,9 +1933,9 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] public ushort[] armor_desc; // armor description - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct FACETICKET_MAJOR_TYPE @@ -1951,9 +1956,9 @@ namespace BrewMonster public struct FACETICKET_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_major_type; // major type ID - public uint id_sub_type; // sub-type ID + public uint id_sub_type; // sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // name, max 15 chars @@ -1971,12 +1976,12 @@ namespace BrewMonster public uint unsymmetrical; // asymmetrical flag - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct FACEPILL_MAJOR_TYPE @@ -1997,9 +2002,9 @@ namespace BrewMonster public struct FACEPILL_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_major_type; // major type ID - public uint id_sub_type; // sub-type ID + public uint id_sub_type; // sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // name, max 15 chars @@ -2024,14 +2029,14 @@ namespace BrewMonster } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 24)] // ELEMENTDATA_NUM_PROFESSION * 2 - public PllfFile[] pllfiles; // profession files + public PllfFile[] pllfiles; // profession files - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct GM_GENERATOR_TYPE @@ -2044,7 +2049,7 @@ namespace BrewMonster public struct GM_GENERATOR_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_type; // type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -2058,9 +2063,9 @@ namespace BrewMonster public uint id_object; // object ID - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct PET_EGG_ESSENCE @@ -2078,30 +2083,30 @@ namespace BrewMonster public int id_pet; // pet ID - public int money_hatched; // hatching fee + public int money_hatched; // hatching fee public int money_restored; // restoration fee public int honor_point; // initial honor points - public int level; // initial level - public int exp; // initial experience + public int level; // initial level + public int exp; // initial experience public int skill_point; // initial skill points [StructLayout(LayoutKind.Sequential)] public struct PetSkill { public int id_skill; // skill ID - public int level; // skill level + public int level; // skill level } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public PetSkill[] skills; // initial skills - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct PET_FOOD_ESSENCE @@ -2120,16 +2125,16 @@ namespace BrewMonster public int level; // level public int hornor; // honor points - public int exp; // experience points + public int exp; // experience points public int food_type; // food type mask - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct PET_FACETICKET_ESSENCE @@ -2145,12 +2150,12 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon file path - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct FIREWORKS_ESSENCE @@ -2173,12 +2178,12 @@ namespace BrewMonster public int time_to_fire; // burning time (seconds) - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct WAR_TANKCALLIN_ESSENCE @@ -2194,12 +2199,12 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon file path - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct SKILLMATTER_ESSENCE @@ -2217,15 +2222,15 @@ namespace BrewMonster public int level_required; // level requirement - public int id_skill; // skill ID + public int id_skill; // skill ID public int level_skill; // skill level - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct INC_SKILL_ABILITY_ESSENCE @@ -2241,16 +2246,16 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon file path - public int id_skill; // skill ID - public int level_required; // skill level prerequisite - public float inc_ratio; // increase ratio + public int id_skill; // skill ID + public int level_required; // skill level prerequisite + public float inc_ratio; // increase ratio - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct WEDDING_BOOKCARD_ESSENCE @@ -2266,16 +2271,16 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon file path - public int year; // booking year + public int year; // booking year public int month; // booking month - public int day; // booking day + public int day; // booking day - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct WEDDING_INVITECARD_ESSENCE @@ -2291,12 +2296,12 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon file path - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct SHARPENER_ESSENCE @@ -2323,12 +2328,12 @@ namespace BrewMonster public int gfx_index; // effect index (0~15) - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct CONGREGATE_ESSENCE @@ -2349,22 +2354,22 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Area { - public int id; // map ID - public int require_level; // level requirement - public int require_reply_level; // response level requirement - public int require_reply_level2; // additional response level requirement + public int id; // map ID + public int require_level; // level requirement + public int require_reply_level; // response level requirement + public int require_reply_level2; // additional response level requirement public int require_reply_reincarnation_times; // reincarnation requirement } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] public Area[] area; // area information - public int price; // price + public int price; // price public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct MONSTER_SPIRIT_ESSENCE @@ -2380,15 +2385,15 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon file path - public int type; // type + public int type; // type public int level; // level public int power; // power - public int price; // price - public int shop_price; // shop price - public int pile_num_max; // max stack count - public uint has_guid; // has GUID flag: 0-no, 1-yes - public uint proc_type; // processing type + public int price; // price + public int shop_price; // shop price + public int pile_num_max; // max stack count + public uint has_guid; // has GUID flag: 0-no, 1-yes + public uint proc_type; // processing type } public struct RECIPE_MAJOR_TYPE @@ -2409,23 +2414,23 @@ namespace BrewMonster public struct RECIPE_ESSENCE { - public uint id; // recipe ID + public uint id; // recipe ID public uint id_major_type; // major type ID - public uint id_sub_type; // sub-type ID + public uint id_sub_type; // sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // name, max 15 chars public int recipe_level; // recipe level - public uint id_skill; // required skill ID - public int skill_level; // required skill level - public int bind_type; // binding type + public uint id_skill; // required skill ID + public int skill_level; // required skill level + public int bind_type; // binding type [StructLayout(LayoutKind.Sequential)] public struct Target { - public uint id_to_make; // ID of the item to make + public uint id_to_make; // ID of the item to make public float probability; // success probability } @@ -2433,30 +2438,30 @@ namespace BrewMonster public Target[] targets; // targets to make public float fail_probability; // fail probability - public int num_to_make; // number of items to make at once, default 1 - public int price; // price - public float duration; // duration to make: time in seconds + public int num_to_make; // number of items to make at once, default 1 + public int price; // price + public float duration; // duration to make: time in seconds - public int exp; // experience earned per craft + public int exp; // experience earned per craft public int skillpoint; // skill points earned per craft [StructLayout(LayoutKind.Sequential)] public struct Material { - public uint id; // material ID - public int num; // material count + public uint id; // material ID + public int num; // material count } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public Material[] materials; // required materials - public uint id_upgrade_equip; // equipment ID to upgrade - public float upgrade_rate; // upgrade rate, default 1, range 0.01-2 + public uint id_upgrade_equip; // equipment ID to upgrade + public float upgrade_rate; // upgrade rate, default 1, range 0.01-2 public uint proc_type; // processing type - public uint character_combo_id; // profession combo ID, 0 means no restriction - public float engrave_upgrade_rate; // engrave upgrade rate, default 1, range 0.01-10 + public uint character_combo_id; // profession combo ID, 0 means no restriction + public float engrave_upgrade_rate; // engrave upgrade rate, default 1, range 0.01-10 public float addon_inherit_fee_rate; // addon inheritance fee rate, range 0.01~2 } @@ -2478,9 +2483,9 @@ namespace BrewMonster public struct ENGRAVE_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_major_type; // major type ID - public uint id_sub_type; // sub-type ID + public uint id_sub_type; // sub-type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // name, max 15 chars @@ -2500,20 +2505,20 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Material { - public uint id; // material ID - public int num; // material count + public uint id; // material ID + public int num; // material count } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] public Material[] materials; // required materials [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] // ELEMENTDATA_MAX_ENGRAVE_ADDON_COUNT+1 - public float[] probability_addon_num; // addon count probability % + public float[] probability_addon_num; // addon count probability % [StructLayout(LayoutKind.Sequential)] public struct Addon { - public uint id; // addon ID + public uint id; // addon ID public float probability; // probability of this addon } @@ -2531,16 +2536,16 @@ namespace BrewMonster public struct RANDPROP_ESSENCE { - public uint id; // random property ID + public uint id; // random property ID public uint id_type; // type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // name, max 15 chars - public uint id_skill; // required skill ID - public int skill_level; // required skill level + public uint id_skill; // required skill ID + public int skill_level; // required skill level - public int money; // price + public int money; // price public int duration; // duration [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -2549,8 +2554,8 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Material { - public uint id; // material ID - public int num; // material count + public uint id; // material ID + public int num; // material count } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] @@ -2567,7 +2572,7 @@ namespace BrewMonster public struct STONE_CHANGE_RECIPE { - public uint id; // ID + public uint id; // ID public uint id_type; // type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -2581,8 +2586,8 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Material { - public uint id; // material ID - public int num; // material count + public uint id; // material ID + public int num; // material count } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] @@ -2597,9 +2602,9 @@ namespace BrewMonster public ushort[] name; // name, max 15 chars public int num_params; // number of parameters - public int param1; // parameter 1 - public int param2; // parameter 2 - public int param3; // parameter 3 + public int param1; // parameter 1 + public int param2; // parameter 2 + public int param3; // parameter 3 } public struct MONSTER_TYPE @@ -2612,7 +2617,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Addon { - public uint id_addon; // addon ID + public uint id_addon; // addon ID public float probability_addon; // probability of this addon } @@ -2622,7 +2627,7 @@ namespace BrewMonster public struct MONSTER_ESSENCE { - public uint id; // monster ID + public uint id; // monster ID public uint id_type; // type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -2634,7 +2639,7 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] public ushort[] desc; // description - public uint faction; // faction + public uint faction; // faction public uint monster_faction; // monster faction [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] @@ -2654,11 +2659,11 @@ namespace BrewMonster public uint role_in_war; // role in war - public int level; // level - public int show_level; // display level + public int level; // level + public int show_level; // display level public uint id_pet_egg_captured; // pet egg ID when captured - public int life; // life value + public int life; // life value public int defence; // defense value [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] @@ -2666,18 +2671,18 @@ namespace BrewMonster public uint immune_type; // immunity types (mask) - public int exp; // experience + public int exp; // experience public int skillpoint; // skill points public int money_average; // average money - public int money_var; // money variation + public int money_var; // money variation public uint short_range_mode; // short range attack mode: 1-short range, 0-long range public int sight_range; // sight range public int attack; // attack value - public int armor; // armor value + public int armor; // armor value public int damage_min; // minimum damage public int damage_max; // maximum damage @@ -2698,8 +2703,8 @@ namespace BrewMonster public int magic_damage_min; // minimum magic damage public int magic_damage_max; // maximum magic damage - public uint id_skill; // skill ID - public int skill_level; // skill level + public uint id_skill; // skill ID + public int skill_level; // skill level public int hp_regenerate; // HP regeneration rate per second @@ -2709,15 +2714,15 @@ namespace BrewMonster public uint monster_faction_can_help; // faction that can provide help public float aggro_range; // aggro range - public float aggro_time; // aggro time + public float aggro_time; // aggro time public uint inhabit_type; // inhabit type public uint patroll_mode; // patrol mode - public uint stand_mode; // standing mode + public uint stand_mode; // standing mode public float walk_speed; // walking speed - public float run_speed; // running speed - public float fly_speed; // flying speed + public float run_speed; // running speed + public float fly_speed; // flying speed public float swim_speed; // swimming speed public int attack_degree; // attack degree @@ -2728,7 +2733,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct AggroStrategy { - public uint id; // strategy ID + public uint id; // strategy ID public float probability; // probability } @@ -2738,8 +2743,8 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct SkillProb { - public uint id_skill; // skill ID - public int level; // skill level + public uint id_skill; // skill ID + public int level; // skill level public float probability; // probability } @@ -2758,7 +2763,7 @@ namespace BrewMonster public struct MonsterSkill { public uint id_skill; // skill ID - public int level; // skill level + public int level; // skill level } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -2768,47 +2773,47 @@ namespace BrewMonster public float probability_drop_num1; // probability of dropping 1 item public float probability_drop_num2; // probability of dropping 2 items public float probability_drop_num3; // probability of dropping 3 items - public int drop_times; // drop times (1-10) - public int drop_protected; // drop protected + public int drop_times; // drop times (1-10) + public int drop_protected; // drop protected [StructLayout(LayoutKind.Sequential)] public struct DropMatter { - public uint id; // drop item ID + public uint id; // drop item ID public float probability; // probability } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public DropMatter[] drop_matters; // droppable items - public uint highest_frequency; // highest frequency - public int no_accept_player_buff; // no accept player buff + public uint highest_frequency; // highest frequency + public int no_accept_player_buff; // no accept player buff - public int invisible_lvl; // invisible level + public int invisible_lvl; // invisible level public int uninvisible_lvl; // uninvisible level - public int no_auto_fight; // no auto fight flag - public int fixed_direction; // fixed direction flag - public uint id_building; // related building + public int no_auto_fight; // no auto fight flag + public int fixed_direction; // fixed direction flag + public uint id_building; // related building public uint combined_switch; // combined switch - public int hp_adjust_common_value; // HP adjustment common value + public int hp_adjust_common_value; // HP adjustment common value public int defence_adjust_common_value; // defense adjustment common value - public int attack_adjust_common_value; // attack adjustment common value + public int attack_adjust_common_value; // attack adjustment common value - public float max_move_range; // maximum movement range - public uint drop_for_no_profit_time; // drop for no profit time + public float max_move_range; // maximum movement range + public uint drop_for_no_profit_time; // drop for no profit time - public int drop_mine_condition_flag; // drop mine condition flag - public float drop_mine_probability; // drop mine probability + public int drop_mine_condition_flag; // drop mine condition flag + public float drop_mine_probability; // drop mine probability [StructLayout(LayoutKind.Sequential)] public struct DropMine { - public uint id; // mine ID + public uint id; // mine ID public float probability; // probability - public int life; // life duration (seconds) + public int life; // life duration (seconds) } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] @@ -2826,9 +2831,9 @@ namespace BrewMonster public enum MONSTER_COMBINED_SWITCH { MCS_SUMMONER_ATTACK_ONLY = 0x00000001, // Only attack summoner - MCS_FORBID_SELECTION = 0x00000002, // Forbid selection - MCS_HIDE_IMMUNE = 0x00000004, // Hide immune status - MCS_RECORD_DPS_RANK = 0x00000008, // Record DPS rank + MCS_FORBID_SELECTION = 0x00000002, // Forbid selection + MCS_HIDE_IMMUNE = 0x00000004, // Hide immune status + MCS_RECORD_DPS_RANK = 0x00000008, // Record DPS rank } public struct PET_TYPE @@ -2842,7 +2847,7 @@ namespace BrewMonster // Pet essence structure public struct PET_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_type; // Type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -2856,7 +2861,7 @@ namespace BrewMonster public uint character_combo_id; // character combo id - public int level_max; // max level + public int level_max; // max level public int level_require; // required level public uint pet_snd_type; // pet sound type @@ -2896,25 +2901,25 @@ namespace BrewMonster public float magic_defence_c; // magic defense coefficient C public float magic_defence_d; // magic defense coefficient D - public float mp_a; // mp coefficient A - public float mp_gen_a; // mp generation coefficient A - public float attack_degree_a; // attack degree coefficient A + public float mp_a; // mp coefficient A + public float mp_gen_a; // mp generation coefficient A + public float attack_degree_a; // attack degree coefficient A public float defence_degree_a; // defense degree coefficient A // Fixed values - public float size; // size + public float size; // size public float damage_delay; // damage response delay time public float attack_range; // attack distance public float attack_speed; // attack speed - public int sight_range; // sight range + public int sight_range; // sight range public uint food_mask; // food type mask public uint inhabit_type; // habitat type - public uint stand_mode; // standing mode + public uint stand_mode; // standing mode public uint plant_group; // plant group - public int group_limit; // plant group limit + public int group_limit; // plant group limit public uint immune_type; // immunity type mask @@ -2922,14 +2927,14 @@ namespace BrewMonster public int require_dye_count; // required dye count public uint id_pet_egg_evolved; // evolved pet egg ID - public int cost_index; // cost index + public int cost_index; // cost index - public int hp_inherit_max_rate; // hp inheritance max rate (0~100) - public int attack_inherit_max_rate; // attack inheritance max rate (0~100) - public int defence_inherit_max_rate; // defense inheritance max rate (0~100) - public int attack_level_inherit_max_rate; // attack level inheritance max rate (0~100) + public int hp_inherit_max_rate; // hp inheritance max rate (0~100) + public int attack_inherit_max_rate; // attack inheritance max rate (0~100) + public int defence_inherit_max_rate; // defense inheritance max rate (0~100) + public int attack_level_inherit_max_rate; // attack level inheritance max rate (0~100) public int defence_level_inherit_max_rate; // defense level inheritance max rate (0~100) - public int specific_skill; // specific skill + public int specific_skill; // specific skill [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_gfx_short; // short effect file path @@ -2943,8 +2948,8 @@ namespace BrewMonster { PCS_USE_MASTER_MODEL = 0x00000001, // Use master model PCS_FORBID_SELECTION = 0x00000002, // Forbid selection - PCS_HIDE_IMMUNE = 0x00000004, // Hide immune in header - PCS_HIDE_NAME = 0x00000008, // Hide name in header + PCS_HIDE_IMMUNE = 0x00000004, // Hide immune in header + PCS_HIDE_NAME = 0x00000008, // Hide name in header } // Goblin essence @@ -2982,14 +2987,14 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon4; // state 4 icon path - public float exp_factor; // experience factor - public int init_strength; // initial strength - public int init_agility; // initial agility - public int init_energy; // initial energy - public int init_tili; // initial tili - public int max_refine_lvl; // max refine level + public float exp_factor; // experience factor + public int init_strength; // initial strength + public int init_agility; // initial agility + public int init_energy; // initial energy + public int init_tili; // initial tili + public int max_refine_lvl; // max refine level - public int price; // price + public int price; // price public int shop_price; // shop price public int default_skill1; // default skill 1 @@ -2999,7 +3004,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct RandProp { - public int rand_num; // random number + public int rand_num; // random number public float rand_rate; // random rate } @@ -3028,7 +3033,7 @@ namespace BrewMonster // Goblin equipment essence public struct GOBLIN_EQUIP_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_type; // Type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] @@ -3040,17 +3045,17 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon file - public int equip_type; // equipment type, 0-armor, 1-weapon, 2-shield, 3-hat + public int equip_type; // equipment type, 0-armor, 1-weapon, 2-shield, 3-hat public int req_goblin_level; // required goblin level - public int strength; // strength - public int agility; // agility - public int energy; // energy - public int tili; // tili + public int strength; // strength + public int agility; // agility + public int energy; // energy + public int tili; // tili [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] public int[] magic; // magic attributes - public int price; // price + public int price; // price public int shop_price; // shop price // Stack info @@ -3077,10 +3082,10 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon path - public uint exp; // experience points - public int level; // level + public uint exp; // experience points + public int level; // level - public int price; // price + public int price; // price public int shop_price; // shop price // Stack info @@ -3111,11 +3116,11 @@ namespace BrewMonster public byte[] file_icon; // icon path public uint num_sell_item; // number of items to sell - public uint num_buy_item; // number of items to buy + public uint num_buy_item; // number of items to buy public uint max_name_length; // max name length - public int price; // price + public int price; // price public int shop_price; // shop price // Stack info @@ -3152,12 +3157,12 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] public int[] area_id; // area IDs for use - public uint id_skill; // skill ID - public int skill_level; // skill level + public uint id_skill; // skill ID + public int skill_level; // skill level public int use_in_combat; // usable in combat, 1-yes, 0-no - public int price; // price - public int shop_price; // shop price + public int price; // price + public int shop_price; // shop price // Stack info public int pile_num_max; // max stack number @@ -3176,12 +3181,12 @@ namespace BrewMonster public int[] target_id_for_pop; // target IDs for popup display, 0 means none public uint target_faction; // target faction filter - public int require_level; // required level + public int require_level; // required level } public enum TARGET_ITEM_COMBINED_SWITCH { - TICS_CAN_POP = 0x00000001, // Can popup display for use + TICS_CAN_POP = 0x00000001, // Can popup display for use TICS_TARGET_MY_FACTION_OBJECT = 0x00000002, // Only target objects in my faction } @@ -3199,7 +3204,7 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_icon; // icon path - public int price; // price + public int price; // price public int shop_price; // shop price // Stack info @@ -3234,9 +3239,9 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct SellGood { - public uint id; // item ID - public int contrib_cost; // contribution cost - public int force_contribution_cost; // force contribution cost + public uint id; // item ID + public int contrib_cost; // contribution cost + public int force_contribution_cost; // force contribution cost } [StructLayout(LayoutKind.Sequential)] @@ -3247,8 +3252,8 @@ namespace BrewMonster public int require_contrib; // required contribution - public uint require_force; // required force - public int require_force_reputation; // required force reputation + public uint require_force; // required force + public int require_force_reputation; // required force reputation [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public SellGood[] goods; // goods list @@ -3318,13 +3323,13 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // name, max 15 characters - public uint storage_id; // storage ID - public uint storage_open_item; // storage open item - public uint storage_refresh_item; // storage refresh item - public int storage_refresh_per_day; // storage refresh per day - public int storage_refresh_count_min; // min count of items refreshed each time - public int storage_refresh_count_max; // max count of items refreshed each time - public int storage_deliver_per_day; // storage deliveries per day, 0-255 + public uint storage_id; // storage ID + public uint storage_open_item; // storage open item + public uint storage_refresh_item; // storage refresh item + public int storage_refresh_per_day; // storage refresh per day + public int storage_refresh_count_min; // min count of items refreshed each time + public int storage_refresh_count_max; // max count of items refreshed each time + public int storage_deliver_per_day; // storage deliveries per day, 0-255 [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public uint[] id_tasks; // task list @@ -3355,8 +3360,8 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct TaskMatter { - public uint id_matter; // matter ID - public int num_matter; // number of matter + public uint id_matter; // matter ID + public int num_matter; // number of matter } [StructLayout(LayoutKind.Sequential)] @@ -3410,8 +3415,8 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Target { - public int idTarget; // target ID - public int fee; // fee + public int idTarget; // target ID + public int fee; // fee public int required_level; // required level } @@ -3432,7 +3437,7 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Route { - public uint id; // route ID + public uint id; // route ID public uint fee; // fee } @@ -3471,7 +3476,9 @@ namespace BrewMonster public ushort[] name; // name, max 15 characters public uint id_make_skill; // make skill ID - public int produce_type; // production type, 0-normal, 1-synthesis, 2-decomposition, 3-item making, 4-preset making, 5-special making + + public int + produce_type; // production type, 0-normal, 1-synthesis, 2-decomposition, 3-item making, 4-preset making, 5-special making [StructLayout(LayoutKind.Sequential)] public struct Page @@ -3520,11 +3527,11 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct BuildInfo { - public int id_in_build; // ID in build - public int id_buildup; // build up ID + public int id_in_build; // ID in build + public int id_buildup; // build up ID public int id_object_need; // required object - public int time_use; // time to use - public int fee; // fee + public int time_use; // time to use + public int fee; // fee } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] @@ -3544,9 +3551,9 @@ namespace BrewMonster { public int id_object_need; // required object public int strength_delta; // strength change - public int agility_delta; // agility change - public int vital_delta; // vital change - public int energy_delta; // energy change + public int agility_delta; // agility change + public int vital_delta; // vital change + public int energy_delta; // energy change } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 15)] @@ -3562,7 +3569,7 @@ namespace BrewMonster public ushort[] name; // name, max 15 characters public int id_object_need; // required object - public int price; // required money + public int price; // required money } // NPC Pet Learn Skill Service @@ -3588,7 +3595,7 @@ namespace BrewMonster public ushort[] name; // name, max 15 characters public int id_object_need; // required object - public int price; // required money + public int price; // required money } // NPC Equipment Bind Service @@ -3609,7 +3616,7 @@ namespace BrewMonster public enum ITEM_BIND_TYPE { - ITEM_BIND_DEFAULT = 0x0, // Default binding + ITEM_BIND_DEFAULT = 0x0, // Default binding ITEM_BIND_WEBTRADE = 0x1, // Web trade binding } @@ -3622,7 +3629,7 @@ namespace BrewMonster public ushort[] name; // name, max 15 characters public int id_object_need; // required object - public int price; // required money + public int price; // required money } // NPC Equipment Undestroy Service @@ -3634,7 +3641,7 @@ namespace BrewMonster public ushort[] name; // name, max 15 characters public int id_object_need; // required object - public int price; // required money + public int price; // required money } // NPC Engrave Service @@ -3703,18 +3710,25 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // name, max 15 characters - public string Name { get { return ByteToStringUtils.UshortArrayToUnicodeString(name); } } + public string Name + { + get { return ByteToStringUtils.UshortArrayToUnicodeString(name); } + } public uint id_type; // NPC type, select from NPC_TYPE public float refresh_time; // refresh time - public uint attack_rule; // attack rule: 0-cannot be attacked, 1-can be attacked in combat mode, 2-can be attacked in action mode + public uint + attack_rule; // attack rule: 0-cannot be attacked, 1-can be attacked in combat mode, 2-can be attacked in action mode [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] public byte[] file_model; // model path - public string FileModel { get { return ByteToStringUtils.ByteArrayToCP936String(file_model); } } + public string FileModel + { + get { return ByteToStringUtils.ByteArrayToCP936String(file_model); } + } public float tax_rate; // tax rate, default 0.05 @@ -3723,48 +3737,51 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)] public ushort[] hello_msg; // greeting message - public string HelloMsg { get { return ByteToStringUtils.UshortArrayToUnicodeString(hello_msg); } } + public string HelloMsg + { + get { return ByteToStringUtils.UshortArrayToUnicodeString(hello_msg); } + } public uint id_to_discover; // discovery ID public uint domain_related; // domain related: 0-no, 1-yes // Service list - public uint id_talk_service; // talk service ID - public uint id_sell_service; // sell service ID - public uint id_buy_service; // buy service ID - public uint id_repair_service; // repair service ID - public uint id_install_service; // install service ID - public uint id_uninstall_service; // uninstall service ID - public uint id_task_out_service; // task out service ID - public uint id_task_in_service; // task in service ID - public uint id_task_matter_service; // task matter service ID - public uint id_skill_service; // skill service ID - public uint id_heal_service; // heal service ID - public uint id_transmit_service; // transmit service ID - public uint id_transport_service; // transport service ID - public uint id_proxy_service; // proxy service ID - public uint id_storage_service; // storage service ID - public uint id_make_service; // make service ID - public uint id_decompose_service; // decompose service ID - public uint id_identify_service; // identify service ID + public uint id_talk_service; // talk service ID + public uint id_sell_service; // sell service ID + public uint id_buy_service; // buy service ID + public uint id_repair_service; // repair service ID + public uint id_install_service; // install service ID + public uint id_uninstall_service; // uninstall service ID + public uint id_task_out_service; // task out service ID + public uint id_task_in_service; // task in service ID + public uint id_task_matter_service; // task matter service ID + public uint id_skill_service; // skill service ID + public uint id_heal_service; // heal service ID + public uint id_transmit_service; // transmit service ID + public uint id_transport_service; // transport service ID + public uint id_proxy_service; // proxy service ID + public uint id_storage_service; // storage service ID + public uint id_make_service; // make service ID + public uint id_decompose_service; // decompose service ID + public uint id_identify_service; // identify service ID public uint id_war_towerbuild_service; // war tower build service ID - public uint id_resetprop_service; // reset property service ID - public uint id_petname_service; // pet name service ID - public uint id_petlearnskill_service; // pet learn skill service ID + public uint id_resetprop_service; // reset property service ID + public uint id_petname_service; // pet name service ID + public uint id_petlearnskill_service; // pet learn skill service ID public uint id_petforgetskill_service; // pet forget skill service ID - public uint id_equipbind_service; // equipment bind service ID - public uint id_equipdestroy_service; // equipment destroy service ID + public uint id_equipbind_service; // equipment bind service ID + public uint id_equipdestroy_service; // equipment destroy service ID public uint id_equipundestroy_service; // equipment undestroy service ID - public uint id_goblin_skill_service; // goblin skill service ID - public uint combined_services; // combined services mask - public uint id_mine; // mine ID - public uint no_collision; // no collision with NPC - public uint id_engrave_service; // engrave service ID - public uint id_randprop_service; // random property service ID - public uint combined_services2; // combined services mask 2 - public uint id_force_service; // force service ID - public uint combined_switch; // combined switch, see NPC_COMBINED_SWITCH + public uint id_goblin_skill_service; // goblin skill service ID + public uint combined_services; // combined services mask + public uint id_mine; // mine ID + public uint no_collision; // no collision with NPC + public uint id_engrave_service; // engrave service ID + public uint id_randprop_service; // random property service ID + public uint combined_services2; // combined services mask 2 + public uint id_force_service; // force service ID + public uint combined_switch; // combined switch, see NPC_COMBINED_SWITCH } public enum NPC_COMBINED_SWITCH @@ -3784,20 +3801,20 @@ namespace BrewMonster // Mine Essence public struct MINE_ESSENCE { - public uint id; // ID + public uint id; // ID public uint id_type; // Type ID [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] public ushort[] name; // name, max 15 characters - public uint level; // level - public uint level_required; // required level + public uint level; // level + public uint level_required; // required level public uint id_equipment_required; // required equipment - public uint eliminate_tool; // eliminate tool (true or false) - public uint time_min; // minimum time (seconds) - public uint time_max; // maximum time (seconds) + public uint eliminate_tool; // eliminate tool (true or false) + public uint time_min; // minimum time (seconds) + public uint time_max; // maximum time (seconds) - public int exp; // experience gained per mining + public int exp; // experience gained per mining public int skillpoint; // skill points gained per mining [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)] @@ -3806,20 +3823,20 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Material { - public uint id; // material ID + public uint id; // material ID public float probability; // probability (sum = 1) - public int life; // life time (seconds) + public int life; // life time (seconds) } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 16)] public Material[] materials; // materials - public int num1; // material count 1 + public int num1; // material count 1 public float probability1; // probability 1 - public int num2; // material count 2 + public int num2; // material count 2 public float probability2; // probability 2 - public uint task_in; // required task ID + public uint task_in; // required task ID public uint task_out; // completed task ID public uint uninterruptable; // uninterruptable flag @@ -3827,10 +3844,10 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct NpcGen { - public uint id_monster; // monster ID - public int num; // monster count - public float radius; // spawn radius - public int life_time; // life time (seconds) + public uint id_monster; // monster ID + public int num; // monster count + public float radius; // spawn radius + public int life_time; // life time (seconds) } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] @@ -3839,9 +3856,9 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct Aggro { - public uint monster_faction; // monster faction - public float radius; // radius - public int num; // count + public uint monster_faction; // monster faction + public float radius; // radius + public int num; // count } [MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)] @@ -3851,13 +3868,13 @@ namespace BrewMonster public uint combined_switch; // combined switch, see MINE_COMBINED_SWITCH - public int max_gatherer; // max simultaneous gatherers - public int mine_type; // mine type (0: default, 1: mine type) - public float gather_dist; // gather distance + public int max_gatherer; // max simultaneous gatherers + public int mine_type; // mine type (0: default, 1: mine type) + public float gather_dist; // gather distance public float material_gain_ratio; // material gain ratio public uint gather_start_action_config; // gather start action config ID - public uint gather_loop_action_config; // gather loop action config ID + public uint gather_loop_action_config; // gather loop action config ID } public enum MINE_COMBINED_SWITCH @@ -3872,7 +3889,10 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)] public ushort[] text; // talk text, max 63 characters - public string Text { get { return ByteToStringUtils.UshortArrayToCP936String(text); } } + public string Text + { + get { return ByteToStringUtils.UshortArrayToCP936String(text); } + } [StructLayout(LayoutKind.Sequential)] public struct option @@ -3882,7 +3902,10 @@ namespace BrewMonster [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)] public ushort[] text; // option text, max 63 characters - public string Text { get { return ByteToStringUtils.UshortArrayToUnicodeString(text); } } + public string Text + { + get { return ByteToStringUtils.UshortArrayToUnicodeString(text); } + } public uint param; // option parameter } @@ -3890,14 +3913,14 @@ namespace BrewMonster [StructLayout(LayoutKind.Sequential)] public struct window { - public int id; // window ID, starts from 1 + public int id; // window ID, starts from 1 public int id_parent; // parent window ID, -1 means no parent - public int talk_text_len; // talk text length - public ushort[] talk_text; // talk text pointer + public int talk_text_len; // talk text length + public ushort[] talk_text; // talk text pointer - public int num_option; // number of options - public option[] options; // options pointer + public int num_option; // number of options + public option[] options; // options pointer public void Read(FileStream file) { @@ -3910,11 +3933,11 @@ namespace BrewMonster options = AAssit.ReadArrayFromBinary