InitAllSkillsOfCurProf done

This commit is contained in:
VDH
2025-11-05 17:55:50 +07:00
parent eaf1a4ba2d
commit 0ad91a5e1d
19 changed files with 1260 additions and 122 deletions
@@ -12,6 +12,7 @@ namespace BrewMonster
private void Awake()
{
Initialize();
SkillStubs.Init();
DontDestroyOnLoad(gameObject);
}
@@ -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,12 +1517,11 @@ namespace ModelRenderer.Scripts.GameData
return 0;
}
public T GetMap<T>(ID_SPACE type) where T : class
public T GetDataTypeMap<T>(ID_SPACE type) where T : class
{
object result = type switch
{
ID_SPACE.ID_SPACE_ESSENCE => essence_index_id_map,
ID_SPACE.ID_SPACE_CONFIG => config_id_data_map,
ID_SPACE.ID_SPACE_ESSENCE => essence_id_data_type_map,
_ => null
};
@@ -1651,7 +1648,42 @@ namespace ModelRenderer.Scripts.GameData
}
return DATA_TYPE.DT_INVALID;
}
public object[] GetAllDataTypeWithType(ID_SPACE idspace,DATA_TYPE dataType )
{
List<object> results = new List<object>();
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;
@@ -82,13 +82,13 @@ namespace BrewMonster.Common
if (string.IsNullOrEmpty(pstr))
{
ScriptFile.Close();
BMLogger.LogError($"EC_StringTab::LoadWideStrings: {szFile} Not enough memory");
BMLogger.LogWarning($"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");
BMLogger.LogWarning($"EC_StringTab::LoadWideStrings: {szFile} Failed to add string to dictionary");
return false;
}
}
@@ -487,4 +487,16 @@ namespace PerfectWorld.Scripts.Managers
}
}
}
public struct EC_PLAYERLOADRESULT
{
public uint dwValidMask;
public CECModel pPlayerModel;
public int iShape;
public CECModel pDummyModel;
public CECModel pPetModel;
/* CECFace pFaceModel;
A3DShader pBodyShaders[3];*/
public CECModel pFlyNviagteModel;
//CECPlayer::EquipsLoadResult EquipResult;
};
}
+1 -1
View File
@@ -797,7 +797,7 @@ public class CECNPC : CECObject
if (model == null) {
model = GameObject.CreatePrimitive(PrimitiveType.Capsule);
BMLogger.LogError($" CECNPC.QueueLoadNPCModel model == null szModelFile= {szModelFile} ");
BMLogger.LogWarning($" CECNPC.QueueLoadNPCModel model == null szModelFile= {szModelFile} ");
}
var monsterModel = Instantiate(model, transform);
@@ -25,17 +25,6 @@ public class NPCBuilder : MonoSingleton<NPCBuilder>
private Dictionary<string, GameObject> modelNPCDic;
private void Awake()
{
if (modelNPCList == null || modelNPCList.Count == 0)
{
Debug.LogError("[NPCBuilder] modelNPCList rỗng ? hãy quét l?i prefab! " + transform.gameObject.name);
}
modelNPCDic = modelNPCList
.GroupBy(obj => obj.name)
.ToDictionary(g => g.Key, g => g.First());
}
public GameObject GetModelByPath(string path)
{
@@ -7,7 +7,7 @@ using System.Runtime.InteropServices;
namespace BrewMonster.Scripts.Skills
{
class CECHostSkillModel
public class CECHostSkillModel
{
public static CECHostSkillModel instance;
public static CECHostSkillModel Instance
@@ -222,20 +222,10 @@ namespace BrewMonster.Scripts.Skills
{
DATA_TYPE dt = DATA_TYPE.DT_NPC_ESSENCE;
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
var map = pDB.GetMap<Dictionary<uint, DATA_TYPE>>(ID_SPACE.ID_SPACE_ESSENCE);
uint id;
foreach (var item in map)
var map = pDB.GetAllDataTypeWithType(ID_SPACE.ID_SPACE_ESSENCE, dt);
foreach (var obj in map)
{
if (item.Value == dt)
{
id = item.Key;
}
else
{
continue;
}
NPC_ESSENCE npcEssence = (NPC_ESSENCE)pDB.get_data_ptr(id, ID_SPACE.ID_SPACE_ESSENCE, ref dt);
NPC_ESSENCE npcEssence = (NPC_ESSENCE)obj;
if (npcEssence.id_skill_service != 0 &&
(npcEssence.combined_switch & (uint)NPC_COMBINED_SWITCH.NCS_IGNORE_DISTANCE_CHECK) != 0)
{
@@ -270,20 +260,10 @@ namespace BrewMonster.Scripts.Skills
elementdataman pDB = ElementDataManProvider.GetElementDataMan();
DATA_TYPE dt = DATA_TYPE.DT_NPC_ESSENCE;
// uint id = pDB.get_id_with_data_type(ID_SPACE.ID_SPACE_ESSENCE, dt);
var map = pDB.GetMap<Dictionary<uint, DATA_TYPE>>(ID_SPACE.ID_SPACE_ESSENCE);
uint id;
foreach (var item in map)
var map = pDB.GetAllDataTypeWithType(ID_SPACE.ID_SPACE_ESSENCE, dt);
foreach (var obj in map)
{
if (item.Value == dt)
{
id = item.Key;
}
else
{
continue;
}
NPC_ESSENCE npcEssence = (NPC_ESSENCE)pDB.get_data_ptr(id, ID_SPACE.ID_SPACE_ESSENCE, ref dt);
NPC_ESSENCE npcEssence = (NPC_ESSENCE)obj;
if (npcEssence.id_skill_service != 0 &&
(npcEssence.combined_switch & (uint)NPC_COMBINED_SWITCH.NCS_IGNORE_DISTANCE_CHECK) != 0)
{
@@ -297,7 +277,7 @@ namespace BrewMonster.Scripts.Skills
if (skillId != 0 &&
CECComboSkillState.Instance.GetInherentSkillByID(skillId) == null)
{
npcSkills.Add(skillId);
npcSkills.Add(skillId);
}
}
}
@@ -356,7 +336,22 @@ namespace BrewMonster.Scripts.Skills
private void Release()
{
throw new System.NotImplementedException();
m_allProfSkills.Clear();
// Dọn sạch tất cả dictionary / map
m_allProfSkills.Clear();
m_allRankProfSkills.Clear();
m_evilRootMap.Clear();
m_godRootMap.Clear();
m_baseRootMap.Clear();
m_treeHeightMap.Clear();
m_allProfNPCs.Clear();
m_curServiceSkills.Clear();
m_skillLearnNPCNID = 0;
m_bInitialized = false;
}
}
@@ -0,0 +1,190 @@
using System.Runtime.InteropServices;
using UnityEngine;
namespace BrewMonster
{
public class PlayerInfo { }
public struct ComboArg
{
public const int MAX_COMBO_ARG = 3;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = MAX_COMBO_ARG)]
public int[] arg;
public int GetValue(uint index)
{
if (arg == null)
arg = new int[MAX_COMBO_ARG];
return index < MAX_COMBO_ARG ? arg[index] : 0;
}
public void SetValue(uint index, int value)
{
if (arg == null)
arg = new int[MAX_COMBO_ARG];
if (index < MAX_COMBO_ARG)
arg[index] = value;
}
}
public class PlayerWrapper
{
public float range;
public float pray_range_plus;
public int elf_level;
public ComboArg comboarg;
private PlayerInfo object_;
public PlayerWrapper()
{
range = 0;
pray_range_plus = 0;
elf_level = 0;
comboarg = new ComboArg { arg = new int[ComboArg.MAX_COMBO_ARG] };
}
public PlayerWrapper(PlayerInfo o)
{
range = 0;
pray_range_plus = 0;
elf_level = 0;
object_ = o;
comboarg = new ComboArg { arg = new int[ComboArg.MAX_COMBO_ARG] };
}
public int GetLevel() { return 50; }
public void SetRange(float r) { range = r; }
public void SetPrayrangeplus(float p) { pray_range_plus = p; }
public int GetMP()
{
return 10000;
}
public int GetMp()
{
return 0;
}
public int GetSp()
{
return 10000;
}
public bool IsRiding()
{
return false;
}
public bool IsUsingWeapon(int weapon)
{
return true;
}
public bool HasSkillBook(uint id)
{
return true;
}
public bool SetDecsp(int sp)
{
return true;
}
public bool SetDistance(float d)
{
return true;
}
public float GetWeapondistance()
{
return -1;
}
public bool SetDecmp(int m)
{
return true;
}
public bool SetPray(bool value)
{
return true;
}
public bool SetInform(bool value)
{
return true;
}
public bool SetPerform(bool value)
{
return true;
}
public bool SetDamage(int value)
{
return true;
}
public int GetPerform()
{
return 1;
}
public int GetDamage()
{
return 1;
}
public float GetRange()
{
return range;
}
public float GetPrayrangeplus()
{
return pray_range_plus;
}
public bool SetCheckbook(int i) { return true; }
public int GetCheckbook() { return 0; }
public bool SetCheckmoney(int m) { return true; }
public int GetCheckmoney() { return 0; }
public bool SetUsebook(int i) { return true; }
public int GetUsebook() { return 0; }
public bool SetUsemoney(int m) { return true; }
public int GetUsemoney() { return 0; }
public void SetElflevel(int iLevel) { elf_level = iLevel; }
public int GetElflevel() { return elf_level; }
public ref ComboArg GetComboarg() { return ref comboarg; }
public int GetForm() { return 0; }
}
public class TargetWrapper
{
public int id;
public TargetWrapper(int i)
{
id = i;
}
public bool IsValid() { return -1 != id; }
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 04cb4df0f3d12eb45a583da23d83ad5d
@@ -0,0 +1,526 @@
using BrewMonster.Scripts.Skills;
using UnityEngine;
namespace BrewMonster
{
public static class SkillStubs
{
public static void Init() { int i = 0; }
// Skill stub declarations
public static Skill1Stub __stub_Skill1Stub = new Skill1Stub();
/*public static Skill2Stub __stub_Skill2Stub = new Skill2Stub();
public static Skill3Stub __stub_Skill3Stub = new Skill3Stub();
public static Skill4Stub __stub_Skill4Stub = new Skill4Stub();
public static Skill5Stub __stub_Skill5Stub = new Skill5Stub();
public static Skill6Stub __stub_Skill6Stub = new Skill6Stub();
public static Skill54Stub __stub_Skill54Stub = new Skill54Stub();
public static Skill55Stub __stub_Skill55Stub = new Skill55Stub();
public static Skill56Stub __stub_Skill56Stub = new Skill56Stub();
public static Skill57Stub __stub_Skill57Stub = new Skill57Stub();
public static Skill58Stub __stub_Skill58Stub = new Skill58Stub();
public static Skill59Stub __stub_Skill59Stub = new Skill59Stub();
public static Skill60Stub __stub_Skill60Stub = new Skill60Stub();
public static Skill61Stub __stub_Skill61Stub = new Skill61Stub();
public static Skill62Stub __stub_Skill62Stub = new Skill62Stub();
public static Skill63Stub __stub_Skill63Stub = new Skill63Stub();
public static Skill64Stub __stub_Skill64Stub = new Skill64Stub();
public static Skill65Stub __stub_Skill65Stub = new Skill65Stub();
public static Skill66Stub __stub_Skill66Stub = new Skill66Stub();
public static Skill67Stub __stub_Skill67Stub = new Skill67Stub();
public static Skill68Stub __stub_Skill68Stub = new Skill68Stub();
public static Skill69Stub __stub_Skill69Stub = new Skill69Stub();
public static Skill70Stub __stub_Skill70Stub = new Skill70Stub();
public static Skill71Stub __stub_Skill71Stub = new Skill71Stub();
public static Skill72Stub __stub_Skill72Stub = new Skill72Stub();
public static Skill73Stub __stub_Skill73Stub = new Skill73Stub();
public static Skill74Stub __stub_Skill74Stub = new Skill74Stub();
public static Skill75Stub __stub_Skill75Stub = new Skill75Stub();
public static Skill76Stub __stub_Skill76Stub = new Skill76Stub();
public static Skill77Stub __stub_Skill77Stub = new Skill77Stub();
public static Skill78Stub __stub_Skill78Stub = new Skill78Stub();
public static Skill79Stub __stub_Skill79Stub = new Skill79Stub();
public static Skill80Stub __stub_Skill80Stub = new Skill80Stub();
public static Skill176Stub __stub_Skill176Stub = new Skill176Stub();
public static Skill177Stub __stub_Skill177Stub = new Skill177Stub();
public static Skill178Stub __stub_Skill178Stub = new Skill178Stub();
public static Skill179Stub __stub_Skill179Stub = new Skill179Stub();
public static Skill187Stub __stub_Skill187Stub = new Skill187Stub();
public static Skill226Stub __stub_Skill226Stub = new Skill226Stub();
public static Skill227Stub __stub_Skill227Stub = new Skill227Stub();
public static Skill362Stub __stub_Skill362Stub = new Skill362Stub();
public static Skill363Stub __stub_Skill363Stub = new Skill363Stub();
public static Skill374Stub __stub_Skill374Stub = new Skill374Stub();
public static Skill375Stub __stub_Skill375Stub = new Skill375Stub();
public static Skill376Stub __stub_Skill376Stub = new Skill376Stub();
public static Skill377Stub __stub_Skill377Stub = new Skill377Stub();
public static Skill378Stub __stub_Skill378Stub = new Skill378Stub();
public static Skill379Stub __stub_Skill379Stub = new Skill379Stub();
public static Skill380Stub __stub_Skill380Stub = new Skill380Stub();
public static Skill381Stub __stub_Skill381Stub = new Skill381Stub();
public static Skill382Stub __stub_Skill382Stub = new Skill382Stub();
public static Skill383Stub __stub_Skill383Stub = new Skill383Stub();
public static Skill384Stub __stub_Skill384Stub = new Skill384Stub();
public static Skill385Stub __stub_Skill385Stub = new Skill385Stub();
public static Skill386Stub __stub_Skill386Stub = new Skill386Stub();
public static Skill387Stub __stub_Skill387Stub = new Skill387Stub();
public static Skill388Stub __stub_Skill388Stub = new Skill388Stub();
public static Skill389Stub __stub_Skill389Stub = new Skill389Stub();
public static Skill390Stub __stub_Skill390Stub = new Skill390Stub();
public static Skill391Stub __stub_Skill391Stub = new Skill391Stub();
public static Skill392Stub __stub_Skill392Stub = new Skill392Stub();
public static Skill393Stub __stub_Skill393Stub = new Skill393Stub();
public static Skill394Stub __stub_Skill394Stub = new Skill394Stub();
public static Skill395Stub __stub_Skill395Stub = new Skill395Stub();
public static Skill396Stub __stub_Skill396Stub = new Skill396Stub();
public static Skill397Stub __stub_Skill397Stub = new Skill397Stub();
public static Skill398Stub __stub_Skill398Stub = new Skill398Stub();
public static Skill399Stub __stub_Skill399Stub = new Skill399Stub();
public static Skill400Stub __stub_Skill400Stub = new Skill400Stub();
public static Skill401Stub __stub_Skill401Stub = new Skill401Stub();
public static Skill402Stub __stub_Skill402Stub = new Skill402Stub();
public static Skill403Stub __stub_Skill403Stub = new Skill403Stub();
public static Skill404Stub __stub_Skill404Stub = new Skill404Stub();
public static Skill405Stub __stub_Skill405Stub = new Skill405Stub();
public static Skill406Stub __stub_Skill406Stub = new Skill406Stub();
public static Skill407Stub __stub_Skill407Stub = new Skill407Stub();
public static Skill408Stub __stub_Skill408Stub = new Skill408Stub();
public static Skill409Stub __stub_Skill409Stub = new Skill409Stub();
public static Skill410Stub __stub_Skill410Stub = new Skill410Stub();
public static Skill411Stub __stub_Skill411Stub = new Skill411Stub();
public static Skill412Stub __stub_Skill412Stub = new Skill412Stub();
public static Skill413Stub __stub_Skill413Stub = new Skill413Stub();
public static Skill414Stub __stub_Skill414Stub = new Skill414Stub();
public static Skill415Stub __stub_Skill415Stub = new Skill415Stub();
public static Skill416Stub __stub_Skill416Stub = new Skill416Stub();
public static Skill417Stub __stub_Skill417Stub = new Skill417Stub();
public static Skill418Stub __stub_Skill418Stub = new Skill418Stub();
public static Skill419Stub __stub_Skill419Stub = new Skill419Stub();
public static Skill420Stub __stub_Skill420Stub = new Skill420Stub();
public static Skill421Stub __stub_Skill421Stub = new Skill421Stub();
public static Skill422Stub __stub_Skill422Stub = new Skill422Stub();
public static Skill423Stub __stub_Skill423Stub = new Skill423Stub();
public static Skill424Stub __stub_Skill424Stub = new Skill424Stub();
public static Skill425Stub __stub_Skill425Stub = new Skill425Stub();
public static Skill426Stub __stub_Skill426Stub = new Skill426Stub();
public static Skill427Stub __stub_Skill427Stub = new Skill427Stub();
public static Skill428Stub __stub_Skill428Stub = new Skill428Stub();
public static Skill429Stub __stub_Skill429Stub = new Skill429Stub();
public static Skill430Stub __stub_Skill430Stub = new Skill430Stub();
public static Skill431Stub __stub_Skill431Stub = new Skill431Stub();
public static Skill432Stub __stub_Skill432Stub = new Skill432Stub();
public static Skill433Stub __stub_Skill433Stub = new Skill433Stub();
public static Skill434Stub __stub_Skill434Stub = new Skill434Stub();
public static Skill435Stub __stub_Skill435Stub = new Skill435Stub();
public static Skill436Stub __stub_Skill436Stub = new Skill436Stub();
public static Skill437Stub __stub_Skill437Stub = new Skill437Stub();
public static Skill438Stub __stub_Skill438Stub = new Skill438Stub();
public static Skill439Stub __stub_Skill439Stub = new Skill439Stub();
public static Skill896Stub __stub_Skill896Stub = new Skill896Stub();
public static Skill897Stub __stub_Skill897Stub = new Skill897Stub();
public static Skill898Stub __stub_Skill898Stub = new Skill898Stub();
public static Skill899Stub __stub_Skill899Stub = new Skill899Stub();
public static Skill900Stub __stub_Skill900Stub = new Skill900Stub();
public static Skill923Stub __stub_Skill923Stub = new Skill923Stub();
public static Skill924Stub __stub_Skill924Stub = new Skill924Stub();
public static Skill1195Stub __stub_Skill1195Stub = new Skill1195Stub();
public static Skill1815Stub __stub_Skill1815Stub = new Skill1815Stub();
public static Skill1816Stub __stub_Skill1816Stub = new Skill1816Stub();
public static Skill1817Stub __stub_Skill1817Stub = new Skill1817Stub();
public static Skill1818Stub __stub_Skill1818Stub = new Skill1818Stub();
public static Skill1819Stub __stub_Skill1819Stub = new Skill1819Stub();
public static Skill1868Stub __stub_Skill1868Stub = new Skill1868Stub();
public static Skill1871Stub __stub_Skill1871Stub = new Skill1871Stub();
public static Skill1872Stub __stub_Skill1872Stub = new Skill1872Stub();
public static Skill2206Stub __stub_Skill2206Stub = new Skill2206Stub();
public static Skill2207Stub __stub_Skill2207Stub = new Skill2207Stub();
public static Skill2208Stub __stub_Skill2208Stub = new Skill2208Stub();
public static Skill2209Stub __stub_Skill2209Stub = new Skill2209Stub();
public static Skill2210Stub __stub_Skill2210Stub = new Skill2210Stub();
public static Skill2211Stub __stub_Skill2211Stub = new Skill2211Stub();
public static Skill2352Stub __stub_Skill2352Stub = new Skill2352Stub();
public static Skill2367Stub __stub_Skill2367Stub = new Skill2367Stub();
public static Skill2368Stub __stub_Skill2368Stub = new Skill2368Stub();
public static Skill2369Stub __stub_Skill2369Stub = new Skill2369Stub();
public static Skill2370Stub __stub_Skill2370Stub = new Skill2370Stub();
public static Skill2371Stub __stub_Skill2371Stub = new Skill2371Stub();
public static Skill2372Stub __stub_Skill2372Stub = new Skill2372Stub();
public static Skill2373Stub __stub_Skill2373Stub = new Skill2373Stub();
public static Skill2374Stub __stub_Skill2374Stub = new Skill2374Stub();
public static Skill2375Stub __stub_Skill2375Stub = new Skill2375Stub();
public static Skill7Stub __stub_Skill7Stub = new Skill7Stub();
public static Skill8Stub __stub_Skill8Stub = new Skill8Stub();
public static Skill9Stub __stub_Skill9Stub = new Skill9Stub();
public static Skill10Stub __stub_Skill10Stub = new Skill10Stub();
public static Skill53Stub __stub_Skill53Stub = new Skill53Stub();
public static Skill81Stub __stub_Skill81Stub = new Skill81Stub();
public static Skill84Stub __stub_Skill84Stub = new Skill84Stub();
public static Skill85Stub __stub_Skill85Stub = new Skill85Stub();
public static Skill86Stub __stub_Skill86Stub = new Skill86Stub();
public static Skill87Stub __stub_Skill87Stub = new Skill87Stub();
public static Skill88Stub __stub_Skill88Stub = new Skill88Stub();
public static Skill89Stub __stub_Skill89Stub = new Skill89Stub();
public static Skill90Stub __stub_Skill90Stub = new Skill90Stub();
public static Skill91Stub __stub_Skill91Stub = new Skill91Stub();
public static Skill92Stub __stub_Skill92Stub = new Skill92Stub();
public static Skill93Stub __stub_Skill93Stub = new Skill93Stub();
public static Skill94Stub __stub_Skill94Stub = new Skill94Stub();
public static Skill95Stub __stub_Skill95Stub = new Skill95Stub();
public static Skill96Stub __stub_Skill96Stub = new Skill96Stub();
public static Skill97Stub __stub_Skill97Stub = new Skill97Stub();
public static Skill98Stub __stub_Skill98Stub = new Skill98Stub();
public static Skill99Stub __stub_Skill99Stub = new Skill99Stub();
public static Skill100Stub __stub_Skill100Stub = new Skill100Stub();
public static Skill101Stub __stub_Skill101Stub = new Skill101Stub();
public static Skill180Stub __stub_Skill180Stub = new Skill180Stub();
public static Skill181Stub __stub_Skill181Stub = new Skill181Stub();
public static Skill182Stub __stub_Skill182Stub = new Skill182Stub();
public static Skill183Stub __stub_Skill183Stub = new Skill183Stub();
public static Skill184Stub __stub_Skill184Stub = new Skill184Stub();
public static Skill228Stub __stub_Skill228Stub = new Skill228Stub();
public static Skill229Stub __stub_Skill229Stub = new Skill229Stub();
public static Skill364Stub __stub_Skill364Stub = new Skill364Stub();
public static Skill365Stub __stub_Skill365Stub = new Skill365Stub();
public static Skill440Stub __stub_Skill440Stub = new Skill440Stub();
public static Skill441Stub __stub_Skill441Stub = new Skill441Stub();
public static Skill442Stub __stub_Skill442Stub = new Skill442Stub();
public static Skill443Stub __stub_Skill443Stub = new Skill443Stub();
public static Skill444Stub __stub_Skill444Stub = new Skill444Stub();
public static Skill445Stub __stub_Skill445Stub = new Skill445Stub();
public static Skill446Stub __stub_Skill446Stub = new Skill446Stub();
public static Skill447Stub __stub_Skill447Stub = new Skill447Stub();
public static Skill448Stub __stub_Skill448Stub = new Skill448Stub();
public static Skill449Stub __stub_Skill449Stub = new Skill449Stub();
public static Skill450Stub __stub_Skill450Stub = new Skill450Stub();
public static Skill451Stub __stub_Skill451Stub = new Skill451Stub();
public static Skill452Stub __stub_Skill452Stub = new Skill452Stub();
public static Skill453Stub __stub_Skill453Stub = new Skill453Stub();
public static Skill454Stub __stub_Skill454Stub = new Skill454Stub();
public static Skill455Stub __stub_Skill455Stub = new Skill455Stub();
public static Skill456Stub __stub_Skill456Stub = new Skill456Stub();
public static Skill457Stub __stub_Skill457Stub = new Skill457Stub();
public static Skill458Stub __stub_Skill458Stub = new Skill458Stub();
public static Skill459Stub __stub_Skill459Stub = new Skill459Stub();
public static Skill460Stub __stub_Skill460Stub = new Skill460Stub();
public static Skill461Stub __stub_Skill461Stub = new Skill461Stub();
public static Skill462Stub __stub_Skill462Stub = new Skill462Stub();
public static Skill463Stub __stub_Skill463Stub = new Skill463Stub();
public static Skill464Stub __stub_Skill464Stub = new Skill464Stub();
public static Skill465Stub __stub_Skill465Stub = new Skill465Stub();
public static Skill466Stub __stub_Skill466Stub = new Skill466Stub();
public static Skill467Stub __stub_Skill467Stub = new Skill467Stub();
public static Skill468Stub __stub_Skill468Stub = new Skill468Stub();
public static Skill469Stub __stub_Skill469Stub = new Skill469Stub();
public static Skill470Stub __stub_Skill470Stub = new Skill470Stub();
public static Skill471Stub __stub_Skill471Stub = new Skill471Stub();
public static Skill472Stub __stub_Skill472Stub = new Skill472Stub();
public static Skill473Stub __stub_Skill473Stub = new Skill473Stub();
public static Skill474Stub __stub_Skill474Stub = new Skill474Stub();
public static Skill475Stub __stub_Skill475Stub = new Skill475Stub();
public static Skill476Stub __stub_Skill476Stub = new Skill476Stub();
public static Skill477Stub __stub_Skill477Stub = new Skill477Stub();
public static Skill478Stub __stub_Skill478Stub = new Skill478Stub();
public static Skill479Stub __stub_Skill479Stub = new Skill479Stub();
public static Skill480Stub __stub_Skill480Stub = new Skill480Stub();
public static Skill481Stub __stub_Skill481Stub = new Skill481Stub();
public static Skill482Stub __stub_Skill482Stub = new Skill482Stub();
public static Skill483Stub __stub_Skill483Stub = new Skill483Stub();
public static Skill484Stub __stub_Skill484Stub = new Skill484Stub();
public static Skill485Stub __stub_Skill485Stub = new Skill485Stub();
public static Skill486Stub __stub_Skill486Stub = new Skill486Stub();
public static Skill487Stub __stub_Skill487Stub = new Skill487Stub();
public static Skill488Stub __stub_Skill488Stub = new Skill488Stub();
public static Skill489Stub __stub_Skill489Stub = new Skill489Stub();
public static Skill490Stub __stub_Skill490Stub = new Skill490Stub();
public static Skill491Stub __stub_Skill491Stub = new Skill491Stub();
public static Skill901Stub __stub_Skill901Stub = new Skill901Stub();
public static Skill902Stub __stub_Skill902Stub = new Skill902Stub();
public static Skill903Stub __stub_Skill903Stub = new Skill903Stub();
public static Skill904Stub __stub_Skill904Stub = new Skill904Stub();
public static Skill905Stub __stub_Skill905Stub = new Skill905Stub();
public static Skill925Stub __stub_Skill925Stub = new Skill925Stub();
public static Skill926Stub __stub_Skill926Stub = new Skill926Stub();
public static Skill1805Stub __stub_Skill1805Stub = new Skill1805Stub();
public static Skill1806Stub __stub_Skill1806Stub = new Skill1806Stub();
public static Skill1807Stub __stub_Skill1807Stub = new Skill1807Stub();
public static Skill1808Stub __stub_Skill1808Stub = new Skill1808Stub();
public static Skill1809Stub __stub_Skill1809Stub = new Skill1809Stub();
public static Skill1864Stub __stub_Skill1864Stub = new Skill1864Stub();
public static Skill1865Stub __stub_Skill1865Stub = new Skill1865Stub();
public static Skill1873Stub __stub_Skill1873Stub = new Skill1873Stub();
public static Skill1874Stub __stub_Skill1874Stub = new Skill1874Stub();
public static Skill1951Stub __stub_Skill1951Stub = new Skill1951Stub();
public static Skill2254Stub __stub_Skill2254Stub = new Skill2254Stub();
public static Skill2255Stub __stub_Skill2255Stub = new Skill2255Stub();
public static Skill2256Stub __stub_Skill2256Stub = new Skill2256Stub();
public static Skill2257Stub __stub_Skill2257Stub = new Skill2257Stub();
public static Skill2258Stub __stub_Skill2258Stub = new Skill2258Stub();
public static Skill2259Stub __stub_Skill2259Stub = new Skill2259Stub();
public static Skill2260Stub __stub_Skill2260Stub = new Skill2260Stub();
public static Skill2261Stub __stub_Skill2261Stub = new Skill2261Stub();
public static Skill2262Stub __stub_Skill2262Stub = new Skill2262Stub();
public static Skill2263Stub __stub_Skill2263Stub = new Skill2263Stub();
public static Skill2264Stub __stub_Skill2264Stub = new Skill2264Stub();
public static Skill2265Stub __stub_Skill2265Stub = new Skill2265Stub();
public static Skill2452Stub __stub_Skill2452Stub = new Skill2452Stub();
public static Skill2453Stub __stub_Skill2453Stub = new Skill2453Stub();*/
#if SKILL_SERVER
public static Skill1 __stub_Skill1 = new Skill1();
public static Skill2 __stub_Skill2 = new Skill2();
public static Skill3 __stub_Skill3 = new Skill3();
public static Skill4 __stub_Skill4 = new Skill4();
public static Skill5 __stub_Skill5 = new Skill5();
public static Skill6 __stub_Skill6 = new Skill6();
public static Skill54 __stub_Skill54 = new Skill54();
public static Skill55 __stub_Skill55 = new Skill55();
public static Skill56 __stub_Skill56 = new Skill56();
public static Skill57 __stub_Skill57 = new Skill57();
public static Skill58 __stub_Skill58 = new Skill58();
public static Skill59 __stub_Skill59 = new Skill59();
public static Skill60 __stub_Skill60 = new Skill60();
public static Skill61 __stub_Skill61 = new Skill61();
public static Skill62 __stub_Skill62 = new Skill62();
public static Skill63 __stub_Skill63 = new Skill63();
public static Skill64 __stub_Skill64 = new Skill64();
public static Skill65 __stub_Skill65 = new Skill65();
public static Skill66 __stub_Skill66 = new Skill66();
public static Skill67 __stub_Skill67 = new Skill67();
public static Skill68 __stub_Skill68 = new Skill68();
public static Skill69 __stub_Skill69 = new Skill69();
public static Skill70 __stub_Skill70 = new Skill70();
public static Skill71 __stub_Skill71 = new Skill71();
public static Skill72 __stub_Skill72 = new Skill72();
public static Skill73 __stub_Skill73 = new Skill73();
public static Skill74 __stub_Skill74 = new Skill74();
public static Skill75 __stub_Skill75 = new Skill75();
public static Skill76 __stub_Skill76 = new Skill76();
public static Skill77 __stub_Skill77 = new Skill77();
public static Skill78 __stub_Skill78 = new Skill78();
public static Skill79 __stub_Skill79 = new Skill79();
public static Skill80 __stub_Skill80 = new Skill80();
public static Skill176 __stub_Skill176 = new Skill176();
public static Skill177 __stub_Skill177 = new Skill177();
public static Skill178 __stub_Skill178 = new Skill178();
public static Skill179 __stub_Skill179 = new Skill179();
public static Skill187 __stub_Skill187 = new Skill187();
public static Skill226 __stub_Skill226 = new Skill226();
public static Skill227 __stub_Skill227 = new Skill227();
public static Skill362 __stub_Skill362 = new Skill362();
public static Skill363 __stub_Skill363 = new Skill363();
public static Skill374 __stub_Skill374 = new Skill374();
public static Skill375 __stub_Skill375 = new Skill375();
public static Skill376 __stub_Skill376 = new Skill376();
public static Skill377 __stub_Skill377 = new Skill377();
public static Skill378 __stub_Skill378 = new Skill378();
public static Skill379 __stub_Skill379 = new Skill379();
public static Skill380 __stub_Skill380 = new Skill380();
public static Skill381 __stub_Skill381 = new Skill381();
public static Skill382 __stub_Skill382 = new Skill382();
public static Skill383 __stub_Skill383 = new Skill383();
public static Skill384 __stub_Skill384 = new Skill384();
public static Skill385 __stub_Skill385 = new Skill385();
public static Skill386 __stub_Skill386 = new Skill386();
public static Skill387 __stub_Skill387 = new Skill387();
public static Skill388 __stub_Skill388 = new Skill388();
public static Skill389 __stub_Skill389 = new Skill389();
public static Skill390 __stub_Skill390 = new Skill390();
public static Skill391 __stub_Skill391 = new Skill391();
public static Skill392 __stub_Skill392 = new Skill392();
public static Skill393 __stub_Skill393 = new Skill393();
public static Skill394 __stub_Skill394 = new Skill394();
public static Skill395 __stub_Skill395 = new Skill395();
public static Skill396 __stub_Skill396 = new Skill396();
public static Skill397 __stub_Skill397 = new Skill397();
public static Skill398 __stub_Skill398 = new Skill398();
public static Skill399 __stub_Skill399 = new Skill399();
public static Skill400 __stub_Skill400 = new Skill400();
public static Skill401 __stub_Skill401 = new Skill401();
public static Skill402 __stub_Skill402 = new Skill402();
public static Skill403 __stub_Skill403 = new Skill403();
public static Skill404 __stub_Skill404 = new Skill404();
public static Skill405 __stub_Skill405 = new Skill405();
public static Skill406 __stub_Skill406 = new Skill406();
public static Skill407 __stub_Skill407 = new Skill407();
public static Skill408 __stub_Skill408 = new Skill408();
public static Skill409 __stub_Skill409 = new Skill409();
public static Skill410 __stub_Skill410 = new Skill410();
public static Skill411 __stub_Skill411 = new Skill411();
public static Skill412 __stub_Skill412 = new Skill412();
public static Skill413 __stub_Skill413 = new Skill413();
public static Skill414 __stub_Skill414 = new Skill414();
public static Skill415 __stub_Skill415 = new Skill415();
public static Skill416 __stub_Skill416 = new Skill416();
public static Skill417 __stub_Skill417 = new Skill417();
public static Skill418 __stub_Skill418 = new Skill418();
public static Skill419 __stub_Skill419 = new Skill419();
public static Skill420 __stub_Skill420 = new Skill420();
public static Skill421 __stub_Skill421 = new Skill421();
public static Skill422 __stub_Skill422 = new Skill422();
public static Skill423 __stub_Skill423 = new Skill423();
public static Skill424 __stub_Skill424 = new Skill424();
public static Skill425 __stub_Skill425 = new Skill425();
public static Skill426 __stub_Skill426 = new Skill426();
public static Skill427 __stub_Skill427 = new Skill427();
public static Skill428 __stub_Skill428 = new Skill428();
public static Skill429 __stub_Skill429 = new Skill429();
public static Skill430 __stub_Skill430 = new Skill430();
public static Skill431 __stub_Skill431 = new Skill431();
public static Skill432 __stub_Skill432 = new Skill432();
public static Skill433 __stub_Skill433 = new Skill433();
public static Skill434 __stub_Skill434 = new Skill434();
public static Skill435 __stub_Skill435 = new Skill435();
public static Skill436 __stub_Skill436 = new Skill436();
public static Skill437 __stub_Skill437 = new Skill437();
public static Skill438 __stub_Skill438 = new Skill438();
public static Skill439 __stub_Skill439 = new Skill439();
public static Skill896 __stub_Skill896 = new Skill896();
public static Skill897 __stub_Skill897 = new Skill897();
public static Skill898 __stub_Skill898 = new Skill898();
public static Skill899 __stub_Skill899 = new Skill899();
public static Skill900 __stub_Skill900 = new Skill900();
public static Skill923 __stub_Skill923 = new Skill923();
public static Skill924 __stub_Skill924 = new Skill924();
public static Skill1195 __stub_Skill1195 = new Skill1195();
public static Skill1815 __stub_Skill1815 = new Skill1815();
public static Skill1816 __stub_Skill1816 = new Skill1816();
public static Skill1817 __stub_Skill1817 = new Skill1817();
public static Skill1818 __stub_Skill1818 = new Skill1818();
public static Skill1819 __stub_Skill1819 = new Skill1819();
public static Skill1868 __stub_Skill1868 = new Skill1868();
public static Skill1871 __stub_Skill1871 = new Skill1871();
public static Skill1872 __stub_Skill1872 = new Skill1872();
public static Skill2206 __stub_Skill2206 = new Skill2206();
public static Skill2207 __stub_Skill2207 = new Skill2207();
public static Skill2208 __stub_Skill2208 = new Skill2208();
public static Skill2209 __stub_Skill2209 = new Skill2209();
public static Skill2210 __stub_Skill2210 = new Skill2210();
public static Skill2211 __stub_Skill2211 = new Skill2211();
public static Skill2352 __stub_Skill2352 = new Skill2352();
public static Skill2367 __stub_Skill2367 = new Skill2367();
public static Skill2368 __stub_Skill2368 = new Skill2368();
public static Skill2369 __stub_Skill2369 = new Skill2369();
public static Skill2370 __stub_Skill2370 = new Skill2370();
public static Skill2371 __stub_Skill2371 = new Skill2371();
public static Skill2372 __stub_Skill2372 = new Skill2372();
public static Skill2373 __stub_Skill2373 = new Skill2373();
public static Skill2374 __stub_Skill2374 = new Skill2374();
public static Skill2375 __stub_Skill2375 = new Skill2375();
public static Skill7 __stub_Skill7 = new Skill7();
public static Skill8 __stub_Skill8 = new Skill8();
public static Skill9 __stub_Skill9 = new Skill9();
public static Skill10 __stub_Skill10 = new Skill10();
public static Skill53 __stub_Skill53 = new Skill53();
public static Skill81 __stub_Skill81 = new Skill81();
public static Skill84 __stub_Skill84 = new Skill84();
public static Skill85 __stub_Skill85 = new Skill85();
public static Skill86 __stub_Skill86 = new Skill86();
public static Skill87 __stub_Skill87 = new Skill87();
public static Skill88 __stub_Skill88 = new Skill88();
public static Skill89 __stub_Skill89 = new Skill89();
public static Skill90 __stub_Skill90 = new Skill90();
public static Skill91 __stub_Skill91 = new Skill91();
public static Skill92 __stub_Skill92 = new Skill92();
public static Skill93 __stub_Skill93 = new Skill93();
public static Skill94 __stub_Skill94 = new Skill94();
public static Skill95 __stub_Skill95 = new Skill95();
public static Skill96 __stub_Skill96 = new Skill96();
public static Skill97 __stub_Skill97 = new Skill97();
public static Skill98 __stub_Skill98 = new Skill98();
public static Skill99 __stub_Skill99 = new Skill99();
public static Skill100 __stub_Skill100 = new Skill100();
public static Skill101 __stub_Skill101 = new Skill101();
public static Skill180 __stub_Skill180 = new Skill180();
public static Skill181 __stub_Skill181 = new Skill181();
public static Skill182 __stub_Skill182 = new Skill182();
public static Skill183 __stub_Skill183 = new Skill183();
public static Skill184 __stub_Skill184 = new Skill184();
public static Skill228 __stub_Skill228 = new Skill228();
public static Skill229 __stub_Skill229 = new Skill229();
public static Skill364 __stub_Skill364 = new Skill364();
public static Skill365 __stub_Skill365 = new Skill365();
public static Skill440 __stub_Skill440 = new Skill440();
public static Skill441 __stub_Skill441 = new Skill441();
public static Skill442 __stub_Skill442 = new Skill442();
public static Skill443 __stub_Skill443 = new Skill443();
public static Skill444 __stub_Skill444 = new Skill444();
public static Skill445 __stub_Skill445 = new Skill445();
public static Skill446 __stub_Skill446 = new Skill446();
public static Skill447 __stub_Skill447 = new Skill447();
public static Skill448 __stub_Skill448 = new Skill448();
public static Skill449 __stub_Skill449 = new Skill449();
public static Skill450 __stub_Skill450 = new Skill450();
public static Skill451 __stub_Skill451 = new Skill451();
public static Skill452 __stub_Skill452 = new Skill452();
public static Skill453 __stub_Skill453 = new Skill453();
public static Skill454 __stub_Skill454 = new Skill454();
public static Skill455 __stub_Skill455 = new Skill455();
public static Skill456 __stub_Skill456 = new Skill456();
public static Skill457 __stub_Skill457 = new Skill457();
public static Skill458 __stub_Skill458 = new Skill458();
public static Skill459 __stub_Skill459 = new Skill459();
public static Skill460 __stub_Skill460 = new Skill460();
public static Skill461 __stub_Skill461 = new Skill461();
public static Skill462 __stub_Skill462 = new Skill462();
public static Skill463 __stub_Skill463 = new Skill463();
public static Skill464 __stub_Skill464 = new Skill464();
public static Skill465 __stub_Skill465 = new Skill465();
public static Skill466 __stub_Skill466 = new Skill466();
public static Skill467 __stub_Skill467 = new Skill467();
public static Skill468 __stub_Skill468 = new Skill468();
public static Skill469 __stub_Skill469 = new Skill469();
public static Skill470 __stub_Skill470 = new Skill470();
public static Skill471 __stub_Skill471 = new Skill471();
public static Skill472 __stub_Skill472 = new Skill472();
public static Skill473 __stub_Skill473 = new Skill473();
public static Skill474 __stub_Skill474 = new Skill474();
public static Skill475 __stub_Skill475 = new Skill475();
public static Skill476 __stub_Skill476 = new Skill476();
public static Skill477 __stub_Skill477 = new Skill477();
public static Skill478 __stub_Skill478 = new Skill478();
public static Skill479 __stub_Skill479 = new Skill479();
public static Skill480 __stub_Skill480 = new Skill480();
public static Skill481 __stub_Skill481 = new Skill481();
public static Skill482 __stub_Skill482 = new Skill482();
public static Skill483 __stub_Skill483 = new Skill483();
public static Skill484 __stub_Skill484 = new Skill484();
public static Skill485 __stub_Skill485 = new Skill485();
public static Skill486 __stub_Skill486 = new Skill486();
public static Skill487 __stub_Skill487 = new Skill487();
public static Skill488 __stub_Skill488 = new Skill488();
public static Skill489 __stub_Skill489 = new Skill489();
public static Skill490 __stub_Skill490 = new Skill490();
public static Skill491 __stub_Skill491 = new Skill491();
public static Skill901 __stub_Skill901 = new Skill901();
public static Skill902 __stub_Skill902 = new Skill902();
public static Skill903 __stub_Skill903 = new Skill903();
public static Skill904 __stub_Skill904 = new Skill904();
public static Skill905 __stub_Skill905 = new Skill905();
public static Skill925 __stub_Skill925 = new Skill925();
public static Skill926 __stub_Skill926 = new Skill926();
public static Skill1805 __stub_Skill1805 = new Skill1805();
public static Skill1806 __stub_Skill1806 = new Skill1806();
public static Skill1807 __stub_Skill1807 = new Skill1807();
public static Skill1808 __stub_Skill1808 = new Skill1808();
public static Skill1809 __stub_Skill1809 = new Skill1809();
public static Skill1864 __stub_Skill1864 = new Skill1864();
public static Skill1865 __stub_Skill1865 = new Skill1865();
public static Skill1873 __stub_Skill1873 = new Skill1873();
public static Skill1874 __stub_Skill1874 = new Skill1874();
public static Skill1951 __stub_Skill1951 = new Skill1951();
public static Skill2254 __stub_Skill2254 = new Skill2254();
public static Skill2255 __stub_Skill2255 = new Skill2255();
public static Skill2256 __stub_Skill2256 = new Skill2256();
public static Skill2257 __stub_Skill2257 = new Skill2257();
public static Skill2258 __stub_Skill2258 = new Skill2258();
public static Skill2259 __stub_Skill2259 = new Skill2259();
public static Skill2260 __stub_Skill2260 = new Skill2260();
public static Skill2261 __stub_Skill2261 = new Skill2261();
public static Skill2262 __stub_Skill2262 = new Skill2262();
public static Skill2263 __stub_Skill2263 = new Skill2263();
public static Skill2264 __stub_Skill2264 = new Skill2264();
public static Skill2265 __stub_Skill2265 = new Skill2265();
public static Skill2452 __stub_Skill2452 = new Skill2452();
public static Skill2453 __stub_Skill2453 = new Skill2453();
#endif
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: de0c956f1778a204c99aab11791923eb
+52 -29
View File
@@ -6,7 +6,7 @@ namespace BrewMonster.Scripts.Skills
public class Range
{
/// <summary>0=point 1=line 2=self sphere 3=target sphere 4=cone 5=self</summary>
public char type; // 0 1 2 3Ŀ 4Բ׶ 5
public byte type; // 0 1 2 3Ŀ 4Բ׶ 5
public bool IsPoint() { return type == 0; }
public bool IsLine() { return type == 1; }
@@ -15,38 +15,47 @@ namespace BrewMonster.Scripts.Skills
public bool IsSector() { return type == 4; }
public bool IsSelf() { return type == 5; }
public bool NoTarget() { return type == 2 || type == 5; }
}
// ռλ // Placeholder Skill class
public class Skill : ElementSkill
{
protected SkillStub stub;
// protected PlayerWrapper player;
protected SkillStub stub;
protected PlayerWrapper player;
protected uint id;
protected uint id;
protected uint level;
Skill(uint i, SkillStub s)
{
id = i;
Skill(uint i, SkillStub s)
{
id = i;
stub = s;
}
public static Skill Create(uint id, int n)
public static Skill Create(uint id, int n)
{
SkillStub stub = SkillStub.GetStub(id);
if(stub == null)
SkillStub stub = SkillStub.GetStub(id);
if (stub == null)
return null;
Skill skill = new Skill(id, stub);
int max = skill.GetMaxLevel();
if(n>max)
if (n > max)
skill.SetLevel(max);
else
skill.SetLevel(n);
return skill;
}
public int GetLevel() { return (int)level; }
public PlayerWrapper GetPlayer()
{
return player;
}
public override int GetCls()
{
return stub.GetCls();
}
}
public abstract class SkillStub
{
public const int MIN_LEVEL = 1;
@@ -55,9 +64,9 @@ namespace BrewMonster.Scripts.Skills
// Base info
public uint id; // Ψһֱʶ // Unique identifier
public int cls; // ְҵ // Class/Profession
public ushort[] name; // // Skill name
public byte[] nativename; // // Native name
public byte[] icon; // ͼ // Skill icon
public string name; // // Skill name
public string nativename; // // Native name
public string icon; // ͼ // Skill icon
public int max_level; // 󼶱? // Maximum level
public byte type; // ? 1 2 3ٻ 4 5 // Skill type: 1-Normal 2-Special 3-Partner 4-Mount 5-Other
@@ -88,33 +97,47 @@ namespace BrewMonster.Scripts.Skills
public bool restrict_change; // ǷԱ // Whether can transform
public bool restrict_attach; // ǷԸ // Whether can possess
public bool auto_attack; // ʹúǷԶ // Whether to auto attack after use
public char time_type; // ˲ // Instant cast type
public char long_range;
public char posdouble; // λѡ // Position selection
public byte time_type; // ˲ // Instant cast type
public byte long_range;
public byte posdouble; // λѡ // Position selection
public int clslimit; // ְҵ // Class restriction
public int commoncooldown; // ȴmask bit0-4 ȴ0-4 bit5-9 Ʒȴ0-4
// Common cooldown mask bit0-4 skill cooldown 0-4 bit5-9 item cooldown 0-4
// Common cooldown mask bit0-4 skill cooldown 0-4 bit5-9 item cooldown 0-4
public int commoncooldowntime; // ȴʱλ // Cooldown time in milliseconds
public int itemcost; // ͷʱƷ >0Ч // Item cost when casting, effective if >0
// // Combo related
public int combosk_preskill;
public int combosk_preskill;
public int combosk_interval;
public int combosk_nobreak;
public byte[] effect;
public byte[] aerial_effect;
public string effect;
public string aerial_effect;
public Range range;
public bool has_stateattack;
public List<int> restrict_weapons;
public static Dictionary<uint, SkillStub> map;
public List<int> restrict_weapons = new List<int>();
public static Dictionary<uint, SkillStub> map = new Dictionary<uint, SkillStub>();
public static Dictionary<uint, SkillStub> GetMap() => map;
public static Dictionary<uint, List<uint>> inheritSkillMap = new();
public SkillStub(uint i)
{
id = i;
is_inherent = (false);
is_movingcast = (false);
itemcost = (0);
combosk_preskill = (0);
combosk_interval = (0);
combosk_nobreak = (0);
if (GetStub(id) == null)
{
GetMap().Add(id, this);
}
}
public static List<uint> GetInherentSkillList(uint cls)
{
return inheritSkillMap[cls];
@@ -149,8 +172,8 @@ namespace BrewMonster.Scripts.Skills
// ΪC++תĽӿ // The following methods are converted from C++
public uint GetId() { return id; }
public int GetCls() { return cls; }
public ushort[] GetName() { return name; }
public byte[] GetIcon() { return icon; }
public string GetName() { return name; }
public string GetIcon() { return icon; }
public int GetMaxLevel() { return max_level; }
public Range GetRange() { return range; }
public int GetItemCost() { return itemcost; }
@@ -171,7 +194,7 @@ namespace BrewMonster.Scripts.Skills
public virtual bool CheckHpCondition(int hp, int max_hp) { return true; }
public virtual bool CheckComboSkExtraCondition(Skill skill) { return true; }
public virtual int GetIntroduction(Skill skill, ushort[] descBuffer, int descBufferLen, ushort[] titleBuffer) { return 0; }
// ЧԼ // Validate weapon restriction
public bool ValidWeapon(int weapon)
{
@@ -0,0 +1,309 @@
#define SKILL_CLIENT
using BrewMonster.Scripts.Skills;
using System.Text;
using UnityEngine;
using static BrewMonster.PET_EVOLVE_CONFIG;
namespace BrewMonster
{
#if SKILL_SERVER
public class Skill1 : Skill
{
public const int SKILL_ID = 1;
public Skill1() : base(SKILL_ID)
{
}
}
#endif
public class Skill1Stub : SkillStub
{
// Static arrays for skill requirements
private static readonly int[] RequiredLevelArray = { 0, 5, 10, 15, 20, 25, 30, 35, 40, 45 };
private static readonly int[] RequiredSpArray = { 0, 300, 1200, 2800, 5200, 8400, 12800, 18600, 26300, 36500 };
private static readonly int[] RequiredMoneyArray = { 0, 30, 130, 280, 480, 730, 1180, 1630, 2080, 2580 };
#if SKILL_SERVER
public class State1 : SkillStub.State
{
public int GetTime(Skill skill)
{
return 400;
}
public bool Quit(Skill skill)
{
return false;
}
public bool Loop(Skill skill)
{
return false;
}
public bool Bypass(Skill skill)
{
return false;
}
public void Calculate(Skill skill)
{
skill.GetPlayer().SetDecmp(0.2f * (-5 + 7 * skill.GetLevel()));
skill.GetPlayer().SetPray(1);
}
public bool Interrupt(Skill skill)
{
return false;
}
public bool Cancel(Skill skill)
{
return true;
}
public bool Skip(Skill skill)
{
return false;
}
}
#endif
#if SKILL_SERVER
public class State2 : SkillStub.State
{
public int GetTime(Skill skill)
{
return 700;
}
public bool Quit(Skill skill)
{
return false;
}
public bool Loop(Skill skill)
{
return false;
}
public bool Bypass(Skill skill)
{
return false;
}
public void Calculate(Skill skill)
{
skill.GetPlayer().SetDecmp(0.8f * (-5 + 7 * skill.GetLevel()));
skill.SetPlus(1.9f * skill.GetLevel() * skill.GetLevel() + 64 * skill.GetLevel() + 36.7f);
skill.SetRatio(0);
skill.SetDamage(skill.GetAttack());
skill.GetPlayer().SetPerform(1);
}
public bool Interrupt(Skill skill)
{
return false;
}
public bool Cancel(Skill skill)
{
return false;
}
public bool Skip(Skill skill)
{
return false;
}
}
#endif
#if SKILL_SERVER
public class State3 : SkillStub.State
{
public int GetTime(Skill skill)
{
return 0;
}
public bool Quit(Skill skill)
{
return false;
}
public bool Loop(Skill skill)
{
return false;
}
public bool Bypass(Skill skill)
{
return false;
}
public void Calculate(Skill skill)
{
}
public bool Interrupt(Skill skill)
{
return false;
}
public bool Cancel(Skill skill)
{
return false;
}
public bool Skip(Skill skill)
{
return false;
}
}
#endif
public Skill1Stub() : base(1)
{
cls = 0;
name = "";
nativename = "";
icon = ".dds";
max_level = 10;
type = 1;
apcost = 0;
arrowcost = 0;
apgain = 10;
attr = 1;
rank = 0;
eventflag = 0;
posdouble = 0;
clslimit = 0;
time_type = 0;
showorder = 1101;
allow_land = true;
allow_air = true;
allow_water = true;
allow_ride = false;
auto_attack = true;
long_range = 0;
restrict_corpse = 0;
allow_forms = 1;
restrict_weapons.Add(0);
restrict_weapons.Add(1);
restrict_weapons.Add(182);
restrict_weapons.Add(5);
restrict_weapons.Add(292);
restrict_weapons.Add(9);
effect = ".sgc";
range = new Range();
range.type = 0;
doenchant = 0;
dobless = 0;
commoncooldown = 0;
commoncooldowntime = 0;
#if SKILL_SERVER
statestub.Add(new State1());
statestub.Add(new State2());
statestub.Add(new State3());
#endif
}
~Skill1Stub()
{
}
public float GetMpcost(Skill skill)
{
return (float)(-5 + 7 * skill.GetLevel());
}
public int GetExecutetime(Skill skill)
{
return 700;
}
public int GetCoolingtime(Skill skill)
{
return 3000;
}
public int GetRequiredLevel(Skill skill)
{
return RequiredLevelArray[skill.GetLevel() - 1];
}
public int GetRequiredSp(Skill skill)
{
return RequiredSpArray[skill.GetLevel() - 1];
}
public int GetRequiredMoney(Skill skill)
{
return RequiredMoneyArray[skill.GetLevel() - 1];
}
public float GetRadius(Skill skill)
{
return 0f;
}
public float GetAttackdistance(Skill skill)
{
return 0f;
}
public float GetAngle(Skill skill)
{
return (float)(1 - 0.0111111 * 0);
}
public float GetPraydistance(Skill skill)
{
return (float)skill.GetPlayer().GetRange();
}
#if SKILL_CLIENT
public int GetIntroduction(Skill skill, StringBuilder buffer, int length, string format)
{
string result = string.Format(format,
skill.GetLevel(),
-5 + 7 * skill.GetLevel(),
1.9 * skill.GetLevel() * skill.GetLevel() + 64 * skill.GetLevel() + 36.7);
if (result.Length < length)
{
buffer.Append(result);
return result.Length;
}
return 0;
}
#endif
#if SKILL_SERVER
public int GetEnmity(Skill skill)
{
return 0;
}
public bool TakeEffect(Skill skill)
{
return true;
}
public float GetEffectdistance(Skill skill)
{
return 13.3f;
}
public int GetAttackspeed(Skill skill)
{
return 3;
}
public float GetHitrate(Skill skill)
{
return (float)(1.2 + 0.05 * skill.GetLevel());
}
#endif
}
}
@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: d0031361f3c360648b74e192f6aa04f7
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b7685a162030cafe46182d3dd6e0f23ba90796a2d72493060343a268535d3630
size 33045827
oid sha256:a2f2874de75b6144fd921c9dd6aebe4328a5014a23ca4d2f40e2ae722233aa4c
size 33045353
+2 -2
View File
@@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6dac5f0e4751a89a031bf1a86b9494891fd913ef5efb1605a27f95f6e81652e3
size 533673959
oid sha256:3df77e654f3a5255269e6a12859be0c185eef6bba1246f1f593148e2112d50c5
size 533674545
+94 -37
View File
@@ -4,6 +4,7 @@ using BrewMonster.Network;
using BrewMonster.Scripts;
using BrewMonster.Scripts.Managers;
using BrewMonster.Scripts.Player;
using BrewMonster.Scripts.Skills;
using CSNetwork;
using CSNetwork.Common;
using CSNetwork.GPDataType;
@@ -34,34 +35,38 @@ public class CECHostPlayer : CECPlayer
[SerializeField] private Button btnJump;
[SerializeField] private Button btnRun;
PlayerStateMachine _playerStateMachine;
PlayerMoveState _moveState;
PlayerIdleState _idleState;
private PlayerStateMachine _playerStateMachine;
private PlayerMoveState _moveState;
private PlayerIdleState _idleState;
public CECHostMove m_MoveCtrl;
CECHPWorkMan m_pWorkMan; // Host work manager
uint m_dwLIES; // Logic-influence extend states
FACTION_FORTRESS_ENTER m_fortressEnter; // ½øÈë»ùµØÐÅÏ¢
PVPINFO m_pvp; // pvp information
bool m_bInSanctuary = false; // true, player is in sanctuary
int m_idFaction = 0; // ID of player's faction
private CECHPWorkMan m_pWorkMan; // Host work manager
private uint m_dwLIES; // Logic-influence extend states
private FACTION_FORTRESS_ENTER m_fortressEnter; // ½øÈë»ùµØÐÅÏ¢
private PVPINFO m_pvp; // pvp information
private bool m_bInSanctuary = false; // true, player is in sanctuary
private int m_idFaction = 0; // ID of player's faction
public bool m_bPrepareFight = false; // true, prepare to fight
int m_iJumpCount = 0;
bool m_bJumpInWater = false;
private int m_iJumpCount = 0;
private bool m_bJumpInWater = false;
public A3DVECTOR3 m_vVelocity; // Velocity
List<CECObject> m_aTabSels = new List<CECObject>();
private int m_iRoleCreateTime;
private int m_iRoleLastLoginTime; // Role last login time
private int m_iAccountTotalCash;
private List<CECObject> m_aTabSels = new List<CECObject>();
float playerSpeed = 5.0f;
float jumpHeight = 1.5f;
float gravityValue = -9.81f;
StateAnim stateAnim = StateAnim.Idle;
Vector3 playerVelocity;
bool isGrounded = false;
bool isRun = false;
Vector3 m_vLastSevPos;
private float playerSpeed = 5.0f;
private float jumpHeight = 1.5f;
private float gravityValue = -9.81f;
private StateAnim stateAnim = StateAnim.Idle;
private Vector3 playerVelocity;
private bool isGrounded = false;
private bool isRun = false;
private Vector3 m_vLastSevPos;
public CDR_INFO m_CDRInfo;
public GNDINFO m_GndInfo;
int m_idUCSelTarget; // Uncertificately selected object's ID
private int m_idUCSelTarget; // Uncertificately selected object's ID
public float m_fVertSpeed = 0f;
// ====== Ground cast config ======
@@ -103,9 +108,56 @@ public class CECHostPlayer : CECPlayer
}
}
public void LoadResources()
public bool LoadResources()
{
RoleInfo RoleInfo = UnityGameSession.Instance.GetRoleInfo();
m_iProfession = RoleInfo.occupation;
m_iGender = RoleInfo.gender;
m_iRoleCreateTime = RoleInfo.create_time;
m_iRoleLastLoginTime = RoleInfo.lastlogin_time;
m_iAccountTotalCash = RoleInfo.cash_add;
if (!LoadPlayerSkeleton(true))
{
BMLogger.LogError("HoangDev CECHostPlayer::LoadResources, Failed to load skeleton");
return false;
}
return true;
}
private bool LoadPlayerSkeleton(bool bAtOnce)
{
EC_PLAYERLOADRESULT Ret = default;
if (bAtOnce /*|| !IsLoadThreadReady()*/)
{
// Under normal circumstances, only HostPlayer can reach here
/* if (!LoadPlayerModel(m_iProfession, m_iGender, m_CustomizeData.bodyID, aEquips, szPetPath, Ret, false, false))
{
a_LogOutput(1, "CECPlayer::Init, failed to call LoadPlayerModel() !");
return false;
}*/
SetPlayerLoadedResult(Ret);
/* if (IsShapeChanged() && !QueueLoadDummyModel(m_iShape, true))
{
// ignore the dummy model loading failure
a_LogOutput(1, "CECPlayer::Init, failed to call QueueLoadDummyModel() !");
}*/
}
return true;
}
private bool SetPlayerLoadedResult(EC_PLAYERLOADRESULT ret)
{
OnAllResourceReady();
return true;
}
private void OnAllResourceReady()
{
CECHostSkillModel.Instance.Initialize();
}
private void Start()
@@ -576,21 +628,21 @@ public class CECHostPlayer : CECPlayer
// Add item to inventory
EC_Inventory.SetItem(byPackage, bySlot, newItem);
//Debug.Log($"[Inventory] Successfully added item {tid} to package {byPackage}, slot {bySlot} with count {iAmount}");
//Debug.Log($"[Inventory] Successfully added item {tid} to package {byPackage}, slot {bySlot} with count {iAmount}");
// Trigger UI refresh if an EC_InventoryUI is present in scene
var ui = GameObject.FindFirstObjectByType<EC_InventoryUI>();
if (ui != null)
{
ui.RefreshAll();
// Trigger UI refresh if an EC_InventoryUI is present in scene
var ui = GameObject.FindFirstObjectByType<EC_InventoryUI>();
if (ui != null)
{
ui.RefreshAll();
}
}
else
{
Debug.LogWarning("[Inventory] PICKUP_ITEM: Invalid data length");
}
break;
}
else
{
Debug.LogWarning("[Inventory] PICKUP_ITEM: Invalid data length");
}
break;
}
}
}
public void OnMsgHstItemOperation(ECMSG Msg)
@@ -870,7 +922,7 @@ public class CECHostPlayer : CECPlayer
{
BMLogger.LogError("HostPlayer InitCharacter no CharacterController");
}
//if (role.name != null && role.name.ByteArray != null)
//{
// roleName = Encoding.UTF8.GetString(role.name.ByteArray, 0, role.name.Length);
@@ -902,6 +954,8 @@ public class CECHostPlayer : CECPlayer
m_CDRInfo.vExtent = EC_Utility.ToVector3(m_aabbServer.Extents);
// Create work manager
m_pWorkMan = new CECHPWorkMan(this);
LoadResources();
if (m_pWorkMan == null)
{
return;
@@ -1698,7 +1752,10 @@ public class CECHostPlayer : CECPlayer
return bRet;
}
public int GetProfession()
{
return m_iProfession;
}
public void SetSelectedTarget(int id)
{
m_idSelTarget = id;
@@ -1782,7 +1839,7 @@ public struct NPCINFO
public int MaxHealth; // Attacking properties
public int IDNPC; // Attacking properties
public NPCINFO(string name, int currentHealth, int maxHealth,int idnpc)
public NPCINFO(string name, int currentHealth, int maxHealth, int idnpc)
{
Name = name;
CurrentHealth = currentHealth;
-1
View File
@@ -66,7 +66,6 @@ public class GameController : MonoBehaviour
hostPlayer.InitCharacter(info);
cinemachineCamera.Follow = hostPlayer.transform;
cinemachineCamera.ForceCameraPosition(hostPlayer.transform.position, Quaternion.identity);
CinemachineTouchOrbit.Instance.SetOrbitTarget(hostPlayer.transform);
//Vector3 pos = new Vector3(info.pos.x, info.pos.y, info.pos.z);
//Vector3 posCam = pos;
//posCam.z -= 10f;
+2 -3
View File
@@ -32,16 +32,15 @@ public class PlayerVisual : MonoBehaviour
namedAnimancer = GetComponentInChildren<NamedAnimancerComponent>();
if (namedAnimancer == null)
{
BrewMonster.BMLogger.LogError("InitPlayerEventDoneHandler animancer == null");
BrewMonster.BMLogger.LogWarning("InitPlayerEventDoneHandler animancer == null");
return;
}
var player = GetComponentInParent<CECPlayer>();
if (player == null)
{
BrewMonster.BMLogger.LogError("player == null");
BrewMonster.BMLogger.LogWarning("player == null");
return;
}
BrewMonster.BMLogger.LogError("HoangDev: player:"+ player);
_playerInfo = player.GetPlayInfo();
id = _playerInfo.cid;