static public sdSkillTree createSkillTree(sdGameActor _gameActor, int job) { if (_gameActor == null || _gameActor.logicTSM == null) { return(null); } sdSkillTree tree = new sdSkillTree(); Hashtable allskill = sdConfDataMgr.Instance().m_vecJobSkillInfo[job]; foreach (DictionaryEntry de in allskill) { Hashtable skill = de.Value as Hashtable; int id = (int)de.Key; int iPassive = (int)skill["byIsPassive"]; string name = skill["strName"] as string; tree.Add(new sdSkill(name, iPassive == 1, id)); } tree.InitAllSkill(_gameActor); tree.PostInitAllSkill(_gameActor); return(tree); }
// 鍔犺浇鎶鑳藉姩鐢昏〃aa // 1.琚?姩Action琛╝a // 2.鎶鑳戒俊鎭?〃aa // 3.鎶鑳紸ction琛╝a protected void CreateSkill_Action(ulong ulTemplateID) { { sdBaseState kPassiveDeathState = new sdBaseState(); kPassiveDeathState.id = 100; kPassiveDeathState.info = "death01"; kPassiveDeathState.name = "death01"; kPassiveDeathState.bPassive = true; sdBaseState kPassiveIdleState = new sdBaseState(); kPassiveIdleState.id = 101; kPassiveIdleState.info = "idle01"; kPassiveIdleState.name = "idle01"; kPassiveIdleState.bPassive = true; sdBaseState kPassiveKnockState = new sdBaseState(); kPassiveKnockState.id = 102; kPassiveKnockState.info = "death01"; kPassiveKnockState.name = "death01"; kPassiveKnockState.bPassive = true; sdBaseState kPassiveWalkState = new sdBaseState(); kPassiveWalkState.id = 103; kPassiveWalkState.info = "walk01"; kPassiveWalkState.name = "walk01"; kPassiveWalkState.bPassive = true; sdBaseState kPassiveStunState = new sdBaseState(); kPassiveStunState.id = 104; kPassiveStunState.info = "stun01"; kPassiveStunState.name = "stun01"; kPassiveStunState.bPassive = true; logicTSM.AddActionState(kPassiveDeathState); logicTSM.AddActionState(kPassiveIdleState); logicTSM.AddActionState(kPassiveKnockState); logicTSM.AddActionState(kPassiveWalkState); logicTSM.AddActionState(kPassiveStunState); } skillTree = new sdSkillTree(); // 鏅?氭敾鍑绘妧鑳絘a { int iDfSkillId = (int)Property["DfSkill"]; Hashtable kSkillInfo = sdConfDataMgr.Instance().m_MonsterSkillInfo[iDfSkillId] as Hashtable; Hashtable kSkillAction = sdConfDataMgr.Instance().m_MonsterSkillAction[iDfSkillId] as Hashtable; if (kSkillInfo != null) { int iTemplateId = (int)kSkillInfo["dwTemplateID"]; int iPassive = (int)kSkillInfo["byIsPassive"]; string name = kSkillInfo["strName"] as string; sdSkill kSkill = new sdSkill(name, iPassive == 1, iTemplateId); skillTree.Add(kSkill); kSkill.skillProperty = kSkillInfo; if (kSkillAction != null) { sdBaseState kState = kSkill.AddAction(iDfSkillId, kSkillAction); logicTSM.AddActionState(kState); kState.SetInfo(kSkillAction, this); } } } // 瀹犵墿澶ф嫑aa if (GetActorType() == ActorType.AT_Pet) { int iSpSkillId = (int)Property["SpSkill"]; Hashtable kSkillInfo = sdConfDataMgr.Instance().m_MonsterSkillInfo[iSpSkillId] as Hashtable; Hashtable kSkillAction = sdConfDataMgr.Instance().m_MonsterSkillAction[iSpSkillId] as Hashtable; if (kSkillInfo != null) { int iTemplateId = (int)kSkillInfo["dwTemplateID"]; int iPassive = (int)kSkillInfo["byIsPassive"]; string name = kSkillInfo["strName"] as string; sdSkill kSkill = new sdSkill(name, iPassive == 1, iSpSkillId); skillTree.Add(kSkill); kSkill.skillProperty = kSkillInfo; if (kSkillAction != null) { sdBaseState kState = kSkill.AddAction(iSpSkillId, kSkillAction); logicTSM.AddActionState(kState); kState.SetInfo(kSkillAction, this); } } } // 瀹犵墿鍜屾?墿瑙﹀彂鎶鑳絘a { int iSkillNum = 10; if (GetActorType() == ActorType.AT_Pet) { iSkillNum = 4; } for (int iIndex = 1; iIndex <= iSkillNum; ++iIndex) { string kSkillKey = "Skill" + iIndex.ToString(); int iSkillId = (int)Property[kSkillKey]; if (iSkillId > 0) { Hashtable kSkillInfo = sdConfDataMgr.Instance().m_MonsterSkillInfo[iSkillId] as Hashtable; Hashtable kSkillAction = sdConfDataMgr.Instance().m_MonsterSkillAction[iSkillId] as Hashtable; if (kSkillInfo != null) { int iTemplateId = (int)kSkillInfo["dwTemplateID"]; int iPassive = (int)kSkillInfo["byIsPassive"]; string name = kSkillInfo["strName"] as string; sdSkill kSkill = new sdSkill(name, iPassive == 1, iSkillId); skillTree.Add(kSkill); kSkill.skillProperty = kSkillInfo; if (kSkillAction != null) { sdBaseState kState = kSkill.AddAction(iSkillId, kSkillAction); logicTSM.AddActionState(kState); kState.SetInfo(kSkillAction, this); } } } } } }