public override void LoadTable(string _path) { try{ XmlElement root = GetXmlRootElement(_path); XmlNodeList nodes = root.ChildNodes; Tbl_Action_Record record = null; foreach(XmlNode node in nodes) { record = new Tbl_Action_Record((XmlElement)node, Tbl_Action_Record.eType.Monster); if( true == m_ResourceTable.ContainsKey( record.Index)) Debug.LogError( "Duplicated index(" + record.Index + ")"); m_ResourceTable.Add(record.Index, record); string _class = record.ClassName; if(m_ddicAction.ContainsKey(_class) == false) m_ddicAction.Add(_class, new Dictionary<string, Tbl_Action_Record>()); if( true == m_ddicAction[ _class].ContainsKey( record.ActionName)) { Debug.LogError( "Duplicated key : record.Index = " + record.Index + ", record.ActionName = " + record.ActionName); continue; } m_ddicAction[_class].Add(record.ActionName, record); // Debug.Log("Loading ActionListList table : Class:" + _class + ", action:" + act); if(m_ddicActionAnim.ContainsKey(_class) == false) m_ddicActionAnim.Add(_class, new Dictionary<string, Tbl_Action_Animation>()); // try{ if(record.ReadyAnimation != null && m_ddicActionAnim[_class].ContainsKey(record.ReadyAnimation.FileName) == false) m_ddicActionAnim[_class].Add(record.ReadyAnimation.FileName, record.ReadyAnimation); if(record.HitAnimation != null && m_ddicActionAnim[_class].ContainsKey(record.HitAnimation.FileName) == false) m_ddicActionAnim[_class].Add(record.HitAnimation.FileName, record.HitAnimation); if(record.FinishAnimation != null && m_ddicActionAnim[_class].ContainsKey(record.FinishAnimation.FileName) == false) m_ddicActionAnim[_class].Add(record.FinishAnimation.FileName, record.FinishAnimation); // } // catch // { // if(record.ReadyAnimation != null) // Debug.LogError("record.ReadyAnimation=" + record.ReadyAnimation.FileName); // if(record.HitAnimation != null) // Debug.LogError("record.HitAnimation=" + record.HitAnimation.FileName); // if(record.FinishAnimation != null) // Debug.LogError("record.FinishAnimation=" + record.FinishAnimation.FileName); // } } } catch(System.Exception e) { Debug.LogError(e); } }
public void SetAction(Tbl_Action_Record _action) { // if(m_Action != null && m_Action.ActionName == "BattleIdle" && // _action != null && _action.HitAnimation != null) // { // Debug.LogError("ElementProcessor::SetAction: m_Action = " + m_Action + ", _action = " + _action); // } m_Action = _action; }
// public Tbl_Action_Effect(float _timing, string _fileName, eLinkType _linkType, eLoopType _loopType, float _loopDuration, float _startSize) // { // m_Timing = _timing * 0.001f; // m_FileName = _fileName; // m_LinkType = _linkType; // m_LoopType = _loopType; // m_LoopDuration = _loopDuration; // m_StartSize = _startSize; // } public Tbl_Action_Effect(Tbl_Action_Record _action, float _timing, string _fileName, eLinkType _linkType, eLoopType _loopType, float _loopDuration, bool _positionFix, float _startSize) { m_Action = _action; m_Timing = _timing * 0.001f; m_FileName = _fileName; m_LinkType = _linkType; m_LoopType = _loopType; m_LoopDuration = _loopDuration; m_PositionFix = _positionFix; m_StartSize = _startSize; }
public override void LoadTable(string _path) { // try{ XmlElement root = GetXmlRootElement(_path); XmlNodeList nodes = root.ChildNodes; foreach(XmlNode node in nodes) { Tbl_Action_Record record = new Tbl_Action_Record((XmlElement)node, Tbl_Action_Record.eType.Pet); m_ResourceTable.Add(record.Index, record); string _class = record.ClassName; // act if(m_ddicAction.ContainsKey(_class) == false) m_ddicAction.Add(_class, new Dictionary<string, Tbl_Action_Record>()); m_ddicAction[_class].Add(record.ActionName, record); // anim if(m_ddicAnimation.ContainsKey(_class) == false) m_ddicAnimation.Add(_class, new Dictionary<string, Tbl_Action_Animation>()); if( record.ReadyAnimation != null) { if( m_ddicAnimation[_class].ContainsKey(record.ReadyAnimation.FileName) == false) m_ddicAnimation[_class].Add(record.ReadyAnimation.FileName, record.ReadyAnimation); } if( record.HitAnimation != null) { if( m_ddicAnimation[_class].ContainsKey(record.HitAnimation.FileName) == false) m_ddicAnimation[_class].Add(record.HitAnimation.FileName, record.HitAnimation); } if( record.FinishAnimation != null) { if( m_ddicAnimation[_class].ContainsKey(record.FinishAnimation.FileName) == false) m_ddicAnimation[_class].Add(record.FinishAnimation.FileName, record.FinishAnimation); } } // } // catch(System.Exception e) // { // Debug.LogError(e); // } }
public void ShowNumberPanel(GameObject go, int nDamage, eDAMAGETYPE eDamageType, Tbl_Action_Record actionRecord, bool isEnemy) { if( eDAMAGETYPE.eDAMAGETYPE_DODGE == eDamageType || eDAMAGETYPE.eDAMAGETYPE_REGIST == eDamageType || eDAMAGETYPE.eDAMAGETYPE_MISS == eDamageType) { ShowNumberPanel( go, nDamage, eDamageType, isEnemy); return; } if( null == actionRecord) return; if( null == actionRecord.HitAnimation) return; if( null == actionRecord.HitAnimation.hitInfo) return; Tbl_Action_HitInfo hitInfo = actionRecord.HitAnimation.hitInfo; if( eValueLookType.Duration == hitInfo.HitValueLookType) { stDamageDuration stData = new stDamageDuration(); stData._go = go; stData._eDamageType = eDamageType; stData._bEnemy = isEnemy; int nDamageOnce = nDamage / (int)hitInfo.HitValueLookCount; int nDamageBuf = (int)( (float)nDamageOnce * 0.07f); int nTotalDamage = 0; float fTimeGab = hitInfo.HitValueLookDuration / ( hitInfo.HitValueLookCount * 1000); for( int i = 0; i < hitInfo.HitValueLookCount; i++) { if( i > 0 && eDAMAGETYPE.eDAMAGETYPE_CRITICAL == stData._eDamageType) stData._eDamageType = eDAMAGETYPE.eDAMAGETYPE_NORMAL; if( i == ( hitInfo.HitValueLookCount - 1)) stData._nDamage = nDamage - nTotalDamage; else { stData._nDamage = ( i * nDamageBuf) + nDamageOnce; nTotalDamage += stData._nDamage; } stData._fTime = Time.time + ( fTimeGab * i); m_listDamageDuration.Add( stData); } } else ShowNumberPanel( go, nDamage, eDamageType, isEnemy); }
public Msg_Player_Skill_Ready( Tbl_Skill_Record _record, eGENDER _gender, int _step/* = 1 */, AsBaseEntity _pickedEntity, Vector3 _picked, Vector3 _head, Vector3 _center, Vector3 _tail, Vector3 _dir, eClockWise _cw) { m_MessageType = eMessageType.PLAYER_SKILL_READY; pickedEntity_ = _pickedEntity; picked_ = _picked; head_ = _head; center_ = _center; tail_ = _tail; direction_ = _dir; skillRecord_ = _record; if( skillRecord_ != null) { skillLv_ = SkillBook.Instance.GetSkillLevel( skillRecord_); skillLvRecord_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( skillLv_, skillRecord_.Index, _step); int actionIdx = -1; if( _gender == eGENDER.eGENDER_MALE) { if( cw_ == eClockWise.CW) actionIdx = skillLvRecord_.SkillAction_Index; else actionIdx = skillLvRecord_.SkillActionCCW_Index; } else if( _gender == eGENDER.eGENDER_FEMALE) { if( cw_ == eClockWise.CW) actionIdx = skillLvRecord_.SkillAction_Index_Female; else actionIdx = skillLvRecord_.SkillActionCCW_Index_Female; } actionRecord_ = AsTableManager.Instance.GetTbl_Action_Record( actionIdx); if( skillLvRecord_ != null || actionRecord_ != null) { constructSucceed_ = true; return; } } }
//constructor public Msg_Player_Skill_Ready( eCLASS _class, eSKILL_TYPE _type, eCommand_Type _command, eGENDER _gender, AsBaseEntity _pickedEntity, Vector3 _picked, Vector3 _head, Vector3 _center, Vector3 _tail, Vector3 _dir, eClockWise _cw) { m_MessageType = eMessageType.PLAYER_SKILL_READY; pickedEntity_ = _pickedEntity; picked_ = _picked; head_ = _head; center_ = _center; tail_ = _tail; direction_ = _dir; cw_ = _cw; switch( _type) { case eSKILL_TYPE.Base: skillRecord_ = AsTableManager.Instance.GetRandomBaseSkill( _class); break; case eSKILL_TYPE.Command: skillRecord_ = SkillBook.Instance.GetLearnedCommandSkill( _command); break; default: Debug.LogError( "Msg_Player_Skill_Ready::Msg_Player_Skill_Ready(): [class]" + _class + ",[type]" + _type + ",[command]" + _command + ",[head_]" + _head + ",[center_]" + _center + ",[tail_]" + _tail + ",[direction]" + direction_); break; } if( skillRecord_ != null) { skillLv_ = SkillBook.Instance.GetSkillLevel( skillRecord_); skillLvRecord_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( skillLv_, skillRecord_.Index); int actionIdx = -1; if( _gender == eGENDER.eGENDER_MALE) { if( cw_ == eClockWise.CW) actionIdx = skillLvRecord_.SkillAction_Index; else actionIdx = skillLvRecord_.SkillActionCCW_Index; } else if( _gender == eGENDER.eGENDER_FEMALE) { if( cw_ == eClockWise.CW) actionIdx = skillLvRecord_.SkillAction_Index_Female; else actionIdx = skillLvRecord_.SkillActionCCW_Index_Female; } actionRecord_ = AsTableManager.Instance.GetTbl_Action_Record( actionIdx); if( skillLvRecord_ != null || actionRecord_ != null) { constructSucceed_ = true; return; } } }
public Msg_Player_Skill_Ready( int _skillIdx, int _skillLv, eGENDER _gender) { m_MessageType = eMessageType.PLAYER_SKILL_READY; head_ = Vector3.zero; center_ = Vector3.zero; tail_ = Vector3.zero; direction_ = Vector3.zero; skillRecord_ = AsTableManager.Instance.GetTbl_Skill_Record( _skillIdx); skillLvRecord_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( _skillLv, _skillIdx); int actionIdx = -1; if( _gender == eGENDER.eGENDER_MALE) actionIdx = skillLvRecord_.SkillAction_Index; else if( _gender == eGENDER.eGENDER_FEMALE) actionIdx = skillLvRecord_.SkillAction_Index_Female; actionRecord_ = AsTableManager.Instance.GetTbl_Action_Record( actionIdx); constructSucceed_ = true; }
public override void LoadTable(string _path) { string className = "class is not set"; string actionName = "action is not set"; try{ XmlElement root = GetXmlRootElement(_path); XmlNodeList nodes = root.ChildNodes; foreach(XmlNode node in nodes) { Tbl_Action_Record record = new Tbl_Action_Record((XmlElement)node, Tbl_Action_Record.eType.User); m_ResourceTable.Add(record.Index, record); eCLASS _class = record.Class; if(m_dddicAction.ContainsKey(_class) == false) m_dddicAction.Add(_class, new Dictionary<eGENDER, Dictionary<string, Tbl_Action_Record>>()); if(m_dddicAction[_class].ContainsKey(record.Gender) == false) m_dddicAction[_class].Add(record.Gender, new Dictionary<string, Tbl_Action_Record>()); className = _class.ToString(); actionName = record.ActionName; m_dddicAction[_class][record.Gender].Add(record.ActionName, record); // Debug.Log("Loading ActionListList table : Class:" + _class + ", action:" + act); if(m_dddicActionAnim.ContainsKey(_class) == false) m_dddicActionAnim.Add(_class, new Dictionary<eGENDER, Dictionary<string, Tbl_Action_Animation>>()); if(m_dddicActionAnim[_class].ContainsKey(record.Gender) == false) m_dddicActionAnim[_class].Add(record.Gender, new Dictionary<string, Tbl_Action_Animation>()); if(record.ReadyAnimation != null && m_dddicActionAnim[_class][record.Gender].ContainsKey(record.ReadyAnimation.FileName) == false) m_dddicActionAnim[_class][record.Gender].Add(record.ReadyAnimation.FileName, record.ReadyAnimation); if(record.HitAnimation != null && m_dddicActionAnim[_class][record.Gender].ContainsKey(record.HitAnimation.FileName) == false) m_dddicActionAnim[_class][record.Gender].Add(record.HitAnimation.FileName, record.HitAnimation); if(record.FinishAnimation != null && m_dddicActionAnim[_class][record.Gender].ContainsKey(record.FinishAnimation.FileName) == false) m_dddicActionAnim[_class][record.Gender].Add(record.FinishAnimation.FileName, record.FinishAnimation); } } catch(System.Exception e) { Debug.LogError("Tbl_ActionList_Table::LoadTable: same named data is found. className = " + className + ", actionName = " + actionName); } }
public Msg_NpcAttackChar1( AS_SC_NPC_ATTACK_CHAR_1 _info) { m_MessageType = eMessageType.NPC_ATTACK_CHAR1; npcId_ = _info.nNpcIdx; sessionId_ = _info.nSessionIdx; charUniqKey_ = _info.nCharUniqKey; hpCur_ = _info.nHpCur; attacker_ = AsEntityManager.Instance.GetNpcEntityBySessionId( npcId_); skillLv_ = AsTableManager.Instance.GetTbl_MonsterSkillLevel_Record( _info.nMonsterSkillLevelTableIdx); skill_ = AsTableManager.Instance.GetTbl_MonsterSkill_Record( skillLv_.Skill_GroupIndex); action_ = AsTableManager.Instance.GetTbl_MonsterAction_Record( skillLv_.SkillAction_Index); casting_ = _info.bCasting; castingMilliSec_ = _info.nCastingMilliSec; ready_ = _info.bReady; if( true == casting_) Debug.Log( "true == casting_"); foreach( AS_SC_NPC_ATTACK_CHAR_2 attack2 in _info.bodyChar) { bodyChar_.Add( new Msg_NpcAttackChar2( this, attack2)); } foreach( AS_SC_NPC_ATTACK_CHAR_3 attack3 in _info.bodyNpc) { bodyNpc_.Add( new Msg_NpcAttackChar3( this, attack3)); } }
public Msg_OtherCharAttackNpc_Ready( Msg_OtherCharAttackNpc1 _msg)//, float _animSpeed) { try { m_MessageType = eMessageType.OTHER_CHAR_ATTACK_READY; attack_ = _msg; skill_ = AsTableManager.Instance.GetTbl_Skill_Record( attack_.skillTableIdx_); skillLv_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( attack_.skillLevel_, attack_.skillTableIdx_, attack_.chargeStep_); action_ = AsTableManager.Instance.GetTbl_Action_Record( _msg.actionTableIdx_); animSpeed_ = 1f; if( animSpeed_ == 0f) { Debug.LogError( "Msg_OtherCharAttackNpc_Ready::constructor: animSpeed_ is set as 0. instead set animSpeed_ 1f"); animSpeed_ = 1f; } } catch { Debug.Log( "Msg_OtherCharAttackNpc_Ready:constructor: error occured"); } }
public Msg_OtherCharAttackNpc1( Msg_OtherCharSkillStance _stance) { sessionId_ = _stance.sessionIdx_; charUniqKey_ = _stance.charUniqKey_; npcIdx_ = new int[TargetDecider.MAX_SKILL_TARGET]; mainCharUniqKey_ = new uint[TargetDecider.MAX_SKILL_TARGET]; skillTableIdx_ = _stance.stanceSkill_; skillLevel_ = _stance.stanceLevel_; ready_ = true; skillLv_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( skillLevel_, skillTableIdx_); skill_ = AsTableManager.Instance.GetTbl_Skill_Record( skillLv_.Skill_GroupIndex); action_ = AsTableManager.Instance.GetTbl_Action_Record( skillLv_.SkillAction_Index); actionTableIdx_ = action_.Index; }
// public bool instantSkill_; // public Msg_OtherCharAttackNpc1( AS_SC_CHAR_ATTACK_NPC_1 _info) // { // Msg_OtherCharAttackNpc1( _info, false); // } // public Msg_OtherCharAttackNpc1( AS_SC_CHAR_ATTACK_NPC_1 _info, bool _instantSkill) public Msg_OtherCharAttackNpc1( AS_SC_CHAR_ATTACK_NPC_1 _info) { m_MessageType = eMessageType.CHAR_ATTACK_NPC1; sessionId_ = _info.nSessionIdx; charUniqKey_ = _info.nCharUniqKey; npcIdx_ = _info.nNpcIdx; mainCharUniqKey_ = _info.nMainCharUniqKey; targeting_ = _info.sTargeting; direction_ = _info.sDirection; skillTableIdx_ = _info.nSkillTableIdx; skillLevel_ = _info.nSkillLevel; actionTableIdx_ = _info.nActionTableIdx; chargeStep_ = _info.nChargeStep; casting_ = _info.bCasting; ready_ = _info.bReady; hpCur_ = _info.nHpCur; hpHeal_ = _info.nHpHeal; if( _info.nChargeStep == 0) skillLv_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( _info.nSkillLevel, _info.nSkillTableIdx); else skillLv_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( _info.nSkillLevel, _info.nSkillTableIdx, _info.nChargeStep); attacker_ = AsEntityManager.Instance.GetUserEntityByUniqueId( charUniqKey_); skill_ = AsTableManager.Instance.GetTbl_Skill_Record( skillLv_.Skill_GroupIndex); action_ = AsTableManager.Instance.GetTbl_Action_Record( skillLv_.SkillAction_Index); npcCnt_ = _info.nNpcCnt; charCnt_ = _info.nCharCnt; bool IsMine = AsUserInfo.Instance.GetCurrentUserEntity().UniqueId == charUniqKey_ ? true : false; foreach( AS_SC_CHAR_ATTACK_NPC_2 attack2 in _info.bodyNpc) { npcBody_.Add( new Msg_OtherCharAttackNpc2( this, attack2, charUniqKey_)); } foreach( AS_SC_CHAR_ATTACK_NPC_3 attack3 in _info.bodyChar) { charBody_.Add( new Msg_OtherCharAttackNpc3( this, attack3)); } if( ready_ == false) { if( IsMine == true) QuestMessageBroadCaster.BrocastQuest( QuestMessages.QM_USE_SKILL, new AchUseSkill( _info.nSkillTableIdx, 1)); int count = 0; foreach ( AS_SC_CHAR_ATTACK_NPC_2 attack2 in _info.bodyNpc) { AsNpcEntity monEntity = AsEntityManager.Instance.GetNpcEntityBySessionId( attack2.nNpcIdx); if( monEntity != null) { if( IsMine == true) { int monId = monEntity.GetProperty<int>( eComponentProperty.MONSTER_ID); int monKindID = monEntity.GetProperty<int>( eComponentProperty.MONSTER_KIND_ID); QuestMessageBroadCaster.BrocastQuest( QuestMessages.QM_USE_SKILL_TO_MONSTER, new AchUseSkillToMonster( _info.nSkillTableIdx, monId, 1)); QuestMessageBroadCaster.BrocastQuest( QuestMessages.QM_USE_SKILL_TO_MONSTER_KIND, new AchUseSkillToMonsterKind( _info.nSkillTableIdx, monKindID, 1)); } } else Debug.LogWarning( "MonsterEntity is null " + count); count++; } } }
public Msg_Pet_Skill_Ready( sPETSKILL _petSkill) { m_MessageType = eMessageType.PET_SKILL_READY; playerPet_ = true; skillRecord_ = AsTableManager.Instance.GetTbl_Skill_Record( _petSkill.nSkillTableIdx); skillLvRecord_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( _petSkill.nLevel, _petSkill.nSkillTableIdx); actionRecord_ = AsTableManager.Instance.GetPetActionRecord( skillLvRecord_.SkillAction_Index); }
public Msg_Pet_Skill_Ready( body_SC_PET_SKILL_USE _use) { m_MessageType = eMessageType.PET_SKILL_READY; playerPet_ = false; skillRecord_ = AsTableManager.Instance.GetTbl_Skill_Record( _use.nSkillTableIdx); skillLvRecord_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( _use.nSkillLevel, _use.nSkillTableIdx); actionRecord_ = AsTableManager.Instance.GetPetActionRecord( skillLvRecord_.SkillAction_Index); }
public Msg_Player_Skill_Ready( ItemData _data, int _slot, eGENDER _gender) { m_MessageType = eMessageType.PLAYER_SKILL_READY; head_ = Vector3.zero; center_ = Vector3.zero; tail_ = Vector3.zero; direction_ = Vector3.zero; skillRecord_ = AsTableManager.Instance.GetTbl_Skill_Record( _data.itemSkill); skillLv_ = _data.itemSkillLevel; skillLvRecord_ = AsTableManager.Instance.GetTbl_SkillLevel_Record( skillLv_, _data.itemSkill); int actionIdx = -1; if( _gender == eGENDER.eGENDER_MALE) actionIdx = skillLvRecord_.SkillAction_Index; else if( _gender == eGENDER.eGENDER_FEMALE) actionIdx = skillLvRecord_.SkillAction_Index_Female; actionRecord_ = AsTableManager.Instance.GetTbl_Action_Record( actionIdx); if( actionRecord_.HitAnimation != null && actionRecord_.HitAnimation.FileName == "NonAnimation") constructSucceed_ = false; else constructSucceed_ = true; itemSlot_ = _slot; }
public Msg_NpcAttackChar_Hit( Msg_NpcAttackChar1 _attack, Tbl_Action_Record _action, Tbl_MonsterSkillLevel_Record _skill) { m_MessageType = eMessageType.NPC_ATTACK_HIT; attack_ = _attack; action_ = _action; skill_ = _skill; }
public Msg_NpcAttackChar_Finish( Msg_NpcAttackChar1 _attack, Tbl_Action_Record _action, Tbl_MonsterSkillLevel_Record _skill)//, Msg_NpcMoveIndicate _move) { m_MessageType = eMessageType.NPC_ATTACK_FINISH; attack_ = _attack; action_ = _action; skill_ = _skill; }
public void SetAction( Tbl_Action_Record _record) { m_ElementProcessor.SetAction( _record); }
public Msg_Player_Skill_Ready( Msg_Player_Skill_Ready _ready, Tbl_Action_Record _action) { skillRecord_ = _ready.skillRecord; skillLv_ = _ready.skillLv_; skillLvRecord_ = _ready.skillLvRecord; actionRecord_ = _action;//IMPORTANT pickedEntity_ = _ready.pickedEntity; head_ = _ready.head; center_ = _ready.center; tail_ = _ready.tail; direction_ = _ready.direction; cw_ = _ready.cw; constructSucceed_ = true; }