public void InitElementSkill(int skillid) { Tab_CabalFellowElementSkill tabSkill = TableManager.GetCabalFellowElementSkillByID(skillid, 0); if (tabSkill == null) { return; } Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(skillid, 0); if (tabSkillEx == null) { return; } Tab_SkillBase tabBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (tabBase == null) { return; } m_TallentSkillId = GlobeVar.INVALID_ID; m_ElementSkillId = skillid; m_SkillIcon.spriteName = tabBase.Icon; //取消品质 //m_QualityPic.spriteName = FellowTool.GetChatFellowElementSkillQualityPic(skillid); m_TallentBgPic.gameObject.SetActive(false); // m_LevelLabel.text = FellowTool.GetFellowElementLevelText(skillid); }
public static AutoSelSkillItem CreateItem(GameObject grid, GameObject resItem, AutoFightLogic parent, int OwnIndex, int nSkillId, bool IsToggle) { Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); if (_skillEx != null) { Tab_SkillBase _skillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); if (_skillBase != null && _skillBase.PriorityAutoFight != -1) { GameObject newItem = Utils.BindObjToParent(resItem, grid, nSkillId.ToString()); if (null != newItem) { AutoSelSkillItem curItemComponent = newItem.GetComponent <AutoSelSkillItem>(); if (null != curItemComponent) { // curItemComponent.m_nSkillID = nSkillId; curItemComponent.m_AutoSkillSprite.spriteName = _skillBase.Icon; curItemComponent.m_AutoSkillToggle.value = IsToggle; curItemComponent.m_nOwnIndex = OwnIndex; return(curItemComponent); } } } } return(null); }
public void UpdateSkillBarInfo(int nSkillIndex) { m_nSkillIndex = nSkillIndex; Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (_mainPlayer == null) { return; } if (m_nSkillIndex > 0 && m_nSkillIndex < _mainPlayer.OwnSkillInfo.Length) { int nSkillId = _mainPlayer.OwnSkillInfo[m_nSkillIndex].SkillId; Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); if (_skillEx != null) { Tab_SkillBase _skillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); if (_skillBase != null) { m_IconSprite.spriteName = _skillBase.Icon; m_IconSprite.MakePixelPerfect(); m_IconSprite.gameObject.SetActive(true); } } } }
private int SeleSkillByPriority() { int nSelectSkillId = GetChangeStateNormalSkillID(); int nMaxPriority = -1; for (int ii = 0; ii < m_player.OwnSkillInfo.Length; ++ii) { int nCurrSkillId = m_player.OwnSkillInfo[ii].SkillId; Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(nCurrSkillId, 0); if (null != tabSkillEx) { Tab_SkillBase tabSkillBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (null != tabSkillBase) { if (1 == m_player.IsAutoSelSkillID(ii) || (-1 == m_player.IsAutoSelSkillID(ii) && 0 < tabSkillBase.PriorityAutoFight)) { if (m_player.CheckBeforUseSkill(nCurrSkillId, false) && CheckXpSkill(tabSkillBase) ) { int nCurrPriority = tabSkillBase.PriorityAutoFight; if (nCurrPriority > nMaxPriority) { nSelectSkillId = nCurrSkillId; nMaxPriority = nCurrPriority; } } } } } } return(nSelectSkillId); }
//获取当前变身状态下的普攻连续技的首段技能ID private int GetChangeStateNormalSkillID() { int nCurrentChangeState = m_player.GetCurrentChangeState(); for (int ii = 0; ii < m_player.OwnSkillInfo.Length; ++ii) { int nCurrSkillId = m_player.OwnSkillInfo[ii].SkillId; if (IsNormalSkill(nCurrSkillId)) { Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(nCurrSkillId, 0); if (null != tabSkillEx) { Tab_SkillBase tabSkillBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (null != tabSkillBase) { if (tabSkillBase.GetChangeModebyIndex(nCurrentChangeState) >= 0) { return(nCurrSkillId); } } } } } return(m_player.OwnSkillInfo[0].SkillId); }
int _getSkillIndexIdByActivieyId(int id) { Tab_SkillEx skillEx = TableManager.GetSkillExByID(id, 0); if (skillEx == null) { return(-1); } Tab_SkillBase skillBase = TableManager.GetSkillBaseByID(skillEx.BaseId, 0); if (skillBase == null) { return(-1); } Obj_MainPlayer rUser = Singleton <ObjManager> .Instance.MainPlayer; if (rUser == null) { return(-1); } for (int skillIndex = 0; skillIndex < rUser.OwnSkillInfo.Length; skillIndex++) { if (rUser.OwnSkillInfo[skillIndex].SkillId == skillEx.SkillExID) { return(skillIndex); } } return(-1); }
/// <summary> /// 打开选择学习技能书界面 /// </summary> /// <param name="go"></param> void OpenChooseSkillBookDialog(GameObject go) { Utils.CleanGrid(m_SkillChooseGrid); List <Tab_CabalFellowElementSkillBook> FellowSkillBookList = GameManager.gameManager.PlayerDataPool.BackPack.GetSkillLearnBooksByElementType(m_Fellow.ElementAttr); if (FellowSkillBookList.Count <= 0) { GUIData.AddNotifyData("#{11500}"); return; } //选择技能书界面 m_SkillChooseWindow.SetActive(true); int index = 0; //foreach (Tab_CabalFellowElementSkillBook book in GameManager.gameManager.PlayerDataPool.BackPack.GetSkillLearnBooksByElementType(m_Fellow.ElementAttr)) foreach (Tab_CabalFellowElementSkillBook book in FellowSkillBookList) { if (m_Fellow.IsHaveSkillId(book.SkillId)) { continue; } Tab_CabalFellowElementSkill tabSkill = TableManager.GetCabalFellowElementSkillByID(book.SkillId, 0); if (tabSkill == null) { continue; } Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(book.SkillId, 0); if (tabSkillEx == null) { continue; } Tab_SkillBase tabBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (tabBase == null) { continue; } string itemName = index < 10 ? "0" + index.ToString() : index.ToString(); GameObject SkillItem = Utils.BindObjToParent(m_SkillChooseItem, m_SkillChooseGrid, itemName); if (SkillItem != null && SkillItem.GetComponent <PartnerSkillChooseItemLogic>() != null) { SkillItem.GetComponent <PartnerSkillChooseItemLogic>().Init(book); } index += 1; } if (m_SkillChooseGrid.GetComponent <UIGrid>() != null) { m_SkillChooseGrid.GetComponent <UIGrid>().Reposition(); } if (PartnerFrameLogic.Instance().NewPlayerGuideFlag_Step == 4) { PartnerFrameLogic.Instance().NewPlayerGuide(5); } }
//显示技能名字 public static void ShowSkillName(int skillId, int senderId, string skillName = "") { Obj_Character skillSender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(senderId); if (skillSender == null) { LogModule.DebugLog("MainPlayer is Null:" + senderId); return; } Tab_SkillEx skillExInfo = TableManager.GetSkillExByID(skillId, 0); if (skillExInfo == null) { LogModule.DebugLog("SkillExinfo is Null: " + skillId); return; } int BaseSkillId = skillExInfo.BaseId; Tab_SkillBase skillBase = TableManager.GetSkillBaseByID(BaseSkillId, 0); if (skillBase == null) { LogModule.DebugLog("SkillBaseInfo is Null" + BaseSkillId); return; } //显示技能名字 if (skillName == "") { if ((skillBase.SkillClass & (int)SKILLCLASS.PASSIVITY) != 0) { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillBase.Name, false); } else { if (skillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || skillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillBase.Name); } else if (skillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME_NPC, skillBase.Name, false); } else { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillBase.Name, false); } } } else { skillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillName, false); } }
public void UpdateButtonInfo(int nSkillIndex) { m_nSkillIndex = nSkillIndex; Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (_mainPlayer == null) { return; } if (m_nSkillIndex >= 0 && m_nSkillIndex < _mainPlayer.OwnSkillInfo.Length) { int nSkillId = _mainPlayer.OwnSkillInfo[m_nSkillIndex].SkillId; Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); if (_skillEx != null) { Tab_SkillBase _skillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); if (_skillBase != null) { //师门技能显示自定义名字 if ((_skillBase.SkillClass & (int)SKILLCLASS.MASTERSKILL) != 0) { m_SkillNameLabel.text = GameManager.gameManager.PlayerDataPool.GetMasterSkillName(nSkillId); if (m_SkillNameLabel.text == "") { m_SkillNameLabel.text = _skillBase.Name; } } else { m_SkillNameLabel.text = _skillBase.Name; } m_nSkillID = nSkillId; m_nSkillBaseId = _skillEx.BaseId; m_SkillIconSprite.spriteName = _skillBase.Icon; m_SkillIconSprite.MakePixelPerfect(); m_SkillLevLabel.text = StrDictionary.GetClientDictionaryString("#{2162}", _skillEx.Level); //是否要显示升级提醒的角标 if (SkillRootLogic.IsCanLevelUpSkill(nSkillId) || SkillRootLogic.IsCanLevelUpMasterSkill(nSkillId)) { m_LevelTipsIcon.SetActive(true); } else { m_LevelTipsIcon.SetActive(false); } } } } }
//判定技能是否为普攻 private bool IsNormalSkill(int nSkillId) { Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(nSkillId, 0); if (null != tabSkillEx) { Tab_SkillBase tabSkillBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (null != tabSkillBase) { return(0 != (tabSkillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT)); } } return(false); }
void OnLoadPVPSkillItem(GameObject resItem, object param) { if (null == resItem) { LogModule.ErrorLog("load pvp skill item fail"); return; } Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; Utils.CleanGrid(m_PVPSkillListGrid); m_ItemInfo.Clear(); if (_mainPlayer) { m_ObjCurSkillInfo.SetActive(false); //普攻和XP不可升级 int nIndex = 0; for (int i = 0; i < _mainPlayer.OwnSkillInfo.Length; i++) { int nSkillId = _mainPlayer.OwnSkillInfo[i].SkillId; Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); if (_skillEx != null) { Tab_SkillBase _skillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); if (_skillBase != null && (_skillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) == 0 && (_skillBase.SkillClass & (int)SKILLCLASS.XP) == 0) { PVPSkillListItem _skillItem = PVPSkillListItem.CreateItem(m_PVPSkillListGrid, resItem, nIndex.ToString(), this, _skillBase.Name, "LV:" + _skillEx.Level.ToString(), nSkillId); if (_skillItem != null) { m_ItemInfo.Add(nIndex.ToString(), _skillItem); nIndex++; } } } } m_PVPSkillListGrid.GetComponent <UIGrid>().Reposition(); m_PVPSkillListGrid.GetComponent <UITopGrid>().Recenter(false); if (m_curItemIndexName == "" && m_ItemInfo.ContainsKey("0")) { ShowCurSkill(m_ItemInfo["0"]); } else if (m_ItemInfo.ContainsKey(m_curItemIndexName)) { ShowCurSkill(m_ItemInfo[m_curItemIndexName]); } } }
private bool CheckXpSkill(Tab_SkillBase tabSkillBase) { //玩家已经点击过了变身按钮 tween正在进行 if ((tabSkillBase.SkillClass & (int)SKILLCLASS.XP) != 0) { if (SkillBarLogic.Instance() != null) { if (SkillBarLogic.Instance().m_isXpBtnOpen) { return(false); } } } return(true); }
void InitElementSkill_Info(int skillid) { Tab_CabalFellowElementSkill tabSkill = TableManager.GetCabalFellowElementSkillByID(skillid, 0); if (tabSkill == null) { return; } Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(skillid, 0); if (tabSkillEx == null) { return; } Tab_SkillBase tabBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (tabBase == null) { return; } m_TallentSkillId = GlobeVar.INVALID_ID; m_ElementSkillId = skillid; Tab_CabalFellowElementSkill tabNextSkill = TableManager.GetCabalFellowElementSkillByID(tabSkill.NextSkillId, 0); if (tabNextSkill == null) { lblSkillLv.text = "MAX"; } sprSkillIcon.spriteName = tabBase.Icon; sprSkillIcon.gameObject.SetActive(true); lblSkillLv.text = FellowTool.GetFellowElementLevelText(skillid); lblSkillLv.transform.parent.gameObject.SetActive(true); lblSkillName.text = tabBase.Name; lblSkillDesc.text = tabBase.SkillIntro; objLock.SetActive(false); enhanceSkill.SetActive(true); UIEventListener.Get(enhanceSkill).onClick = ShowEnhanceDialog; if (PartnerFrameLogic.Instance() != null) { PartnerFrameLogic.Instance().UpdateDevelopRemindPoint(); } }
//获取连续技的后续技能ID private int GetNextContinueSkillId() { Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(CurUseSkillId, 0); if (null != tabSkillEx) { Tab_SkillBase tabSkillBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (null != tabSkillBase) { if (-1 != tabSkillEx.NextContinueSkillId && tabSkillEx.NextContinueSkillId != GetRepeatSkillFirstID(CurUseSkillId)) { return(tabSkillEx.NextContinueSkillId); } } } return(-1); }
public void UpdateNoStudyButtonInfo(int nSkillId) { Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); if (_skillEx != null) { Tab_SkillBase _skillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); if (_skillBase != null) { //师门技能显示自定义名字 if ((_skillBase.SkillClass & (int)SKILLCLASS.MASTERSKILL) != 0) { m_SkillNameLabel.text = String.Format("[FF0000]{0}", GameManager.gameManager.PlayerDataPool.GetMasterSkillName(nSkillId)); if (m_SkillNameLabel.text == "") { m_SkillNameLabel.text = String.Format("[FF0000]{0}", _skillBase.Name); } m_SkillLevLabel.text = ""; } else { m_SkillNameLabel.text = String.Format("[FF0000]{0}", _skillBase.Name); //显示可以激活的等级 for (int i = 1; i <= TableManager.GetSkillActive().Count; i++) { Tab_SkillActive _skillActiveInfo = TableManager.GetSkillActiveByID(i, 0); if (_skillActiveInfo != null) { if (_skillActiveInfo.SkillId == nSkillId) { m_SkillLevLabel.text = String.Format("[FF0000]{0}", StrDictionary.GetClientDictionaryString("#{2770}", _skillActiveInfo.Level)); break; } } } } m_SkillIconSprite.spriteName = _skillBase.Icon; m_SkillIconSprite.MakePixelPerfect(); m_nSkillIndex = -1; m_nSkillID = nSkillId; m_nSkillBaseId = _skillEx.BaseId; m_LevelTipsIcon.SetActive(false); } } }
//获取连续技的首段技能ID private int GetRepeatSkillFirstID(int nSkillId) { Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(nSkillId, 0); if (null != tabSkillEx) { Tab_SkillBase tabSkillBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (null != tabSkillBase) { if (0 < tabSkillEx.NextContinueSkillId) { if (tabSkillBase.FirstIndex < m_player.OwnSkillInfo.Length) { return(m_player.OwnSkillInfo[tabSkillBase.FirstIndex].SkillId); } } } } return(-1); }
private string _getSkillBaseIconName(int SkillActiveId) { //Tab_SkillActive skillActTab = TableManager.GetSkillActiveByID(SkillActiveId,0); //if(skillActTab == null ) // return ""; Tab_SkillEx skillEx = TableManager.GetSkillExByID(SkillActiveId, 0); if (skillEx == null) { return(""); } Tab_SkillBase skillBase = TableManager.GetSkillBaseByID(skillEx.BaseId, 0); // skillEx.BaseId if (skillBase == null) { return(""); } return(skillBase.Icon); }
public uint Execute(PacketDistributed ipacket) { GC_RET_USE_SKILL packet = (GC_RET_USE_SKILL)ipacket; if (null == packet) { return((uint)PACKET_EXE.PACKET_EXE_ERROR); } //enter your logic int nSkillId = packet.HasFixedSkillId ? packet.FixedSkillId : packet.SkillId; int nSenderId = packet.SenderId; int nTargetID = packet.TargetId; Obj_Character Sender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(nSenderId); if (Sender == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } if (Sender.SkillCore == null) { return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); } int nFailType = (int)SKILLUSEFAILTYPE.INVALID; if (packet.HasSkillfailType) { nFailType = packet.SkillfailType; } string szSkillName = ""; if (packet.HasSkillname) { szSkillName = packet.Skillname; } if (nFailType == (int)SKILLUSEFAILTYPE.DISTANCE) { if (Sender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { //服务器认定 距离不够 再往前走点 Obj_Character targetCharacter = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(nTargetID); if (targetCharacter) { Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); if (_skillEx != null) { if (Sender.SkillCore.IsUsingSkill) { Sender.SkillCore.BreakCurSkill(); } Singleton <ObjManager> .GetInstance().MainPlayer.CurUseSkillId = nSkillId; Singleton <ObjManager> .GetInstance().MainPlayer.MoveTo(targetCharacter.Position, targetCharacter.gameObject, _skillEx.Radius - 2.0f); } } } } else { //结婚相关特殊表现 if (nSkillId == GlobeVar.MARRY_SKILL_2) { Sender.SkillCore.BreakCurSkill(); Sender.FaceTo(new UnityEngine.Vector3(13.79419f, 0.9015087f, 30.36249f)); } //结婚相关特殊表现 if (nSkillId == GlobeVar.MARRY_SKILL_1) { Sender.SkillCore.BreakCurSkill(); Sender.FaceTo(new UnityEngine.Vector3(13.79419f, 0.9015087f, 4.068859f)); } if (szSkillName != "") { Sender.SkillCore.UseSkill(nSkillId, nSenderId, nTargetID, szSkillName); } else { Sender.SkillCore.UseSkill(nSkillId, nSenderId, nTargetID); } Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); } if (Sender is Obj_MainPlayer) { //if the main player in the state of changing mode int nImpactCount = GameManager.gameManager.PlayerDataPool.ClientImpactInfo.Count; Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .Instance.MainPlayer; Tab_SkillEx _skillEx = TableManager.GetSkillExByID(nSkillId, 0); Tab_SkillBase _skillBase = null; int nSkillIndex = -1; int nChangeState = -1; if (null != _mainPlayer) { for (int i = 0; i < _mainPlayer.OwnSkillInfo.Length; i++) { if (_mainPlayer.OwnSkillInfo[i].SkillId == nSkillId) { nSkillIndex = i; break; } } nChangeState = _mainPlayer.GetCurrentChangeState(); // added by mawenbin // 缓存玩家使用的技能,用于挂机连续技的判定 AI_PlayerCombat aiPlayerCombat = _mainPlayer.GetComponent <AI_PlayerCombat>(); if (null != aiPlayerCombat && Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER == Sender.ObjType) { aiPlayerCombat.CurUseSkillId = nSkillId; } } if (null != _skillEx) { _skillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); } if (null != _skillBase) { if (null != SkillBarLogic.Instance()) { //if the skill is xp skill and can put into skillbar if ((_skillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) == 0 && (_skillBase.SkillClass & (int)SKILLCLASS.XP) == 0 && (_skillBase.GetChangeModebyIndex(_mainPlayer.CurChangeState) > 0) && (_skillBase.SkillClass & (int)SKILLCLASS.PASSIVITY) == 0) { for (int i = 0; i < SkillBarLogic.Instance().MySkillBarInfo.Length; i++) { if (nSkillId == SkillBarLogic.Instance().MySkillBarInfo[i].CurSkillId) { SkillBarLogic.Instance().MySkillBarInfo[i].nPreSkillId = nSkillId; SkillBarLogic.Instance().MySkillBarInfo[i].fCurrentStartTime = Time.realtimeSinceStartup; SkillBarLogic.Instance().MySkillBarInfo[i].fCurDisabledStartTime = Time.realtimeSinceStartup; SkillBarLogic.Instance().MySkillBarInfo[i].nCurrentCDTime = _skillEx.NextSkillEffectTime / 1000.0f; SkillBarLogic.Instance().MySkillBarInfo[i].fRemainCDTime = _skillEx.NextSkillEffectTime / 1000.0f; SkillBarLogic.Instance().MySkillBarInfo[i].fDisabledRemTime = _skillEx.NextSkillDisabledTime / 1000.0f; SkillBarLogic.Instance().MySkillBarInfo[i].fCurDisabedTime = _skillEx.NextSkillDisabledTime / 1000.0f; SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount++; if (false == GameManager.gameManager.PlayerDataPool.CommonData.GetCommondFlag((int)USER_COMMONFLAG.CF_COMBO_FIRSTUSED)) { if (nSkillId == GlobeVar.SHUANGJIANSHI_SKILL1_COMBO1 || nSkillId == GlobeVar.SHUANGJIANSHI_SKILL1_COMBO2) { SkillBarLogic.Instance().MySkillBarInfo[i].nCurrentCDTime = 10; SkillBarLogic.Instance().MySkillBarInfo[i].fRemainCDTime = 10; } } SkillBarLogic.Instance().SetSkillBarInfoForNext(i, _skillEx.NextContinueSkillId); //第一个连续技能来了,要有提示 if (nSkillIndex != -1 && nSkillIndex == SkillBarLogic.Instance().MySkillBarInfo[i].SkillIndex) { if (null != ComboSkillTipLogic.Instance()) { System.Collections.Generic.List <string> iconList = SkillBarLogic.Instance().GetContinueSkillIcons(_skillBase); ComboSkillTipLogic.Instance().Show(i, iconList.Count, iconList); } } if (null != ComboSkillTipLogic.Instance()) { ComboSkillTipLogic.Instance().SetStep(i, SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount); } if (_skillBase.NextIndex == _skillBase.FirstIndex) { SkillBarLogic.Instance().MySkillBarInfo[i].isCompleted = true; SkillBarLogic.Instance().MySkillBarInfo[i].SkillCount = 0; } break; } } } } //if it is xpSkill and attackSkill if (((_skillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) != 0) && _skillBase.GetChangeModebyIndex(_mainPlayer.CurChangeState) >= 0 && SkillBarLogic.Instance()._AttackBarInfo != null) { SkillBarLogic.Instance()._AttackBarInfo.fCurrentStartTime = Time.realtimeSinceStartup; SkillBarLogic.Instance()._AttackBarInfo.fCurDisabledStartTime = Time.realtimeSinceStartup; SkillBarLogic.Instance()._AttackBarInfo.nCurrentCDTime = _skillEx.NextSkillEffectTime; SkillBarLogic.Instance()._AttackBarInfo.fRemainCDTime = _skillEx.NextSkillEffectTime; SkillBarLogic.Instance()._AttackBarInfo.fDisabledRemTime = _skillEx.NextSkillDisabledTime; SkillBarLogic.Instance()._AttackBarInfo.fCurDisabledTime = _skillEx.NextSkillDisabledTime; SkillBarLogic.Instance()._AttackBarInfo.nCurSkillId = _skillEx.NextContinueSkillId; } } } return((uint)PACKET_EXE.PACKET_EXE_CONTINUE); }
public void UpdateShenQiViewInfo() { ClearnInfo(); if (m_ShenQiItem == null) { return; } if (m_ShenQiItem.IsValid() == false) { return; } Tab_ShenQiInfo _ShenQiInfo = TableManager.GetShenQiInfoByID(m_ShenQiItem.DataID, 0); if (_ShenQiInfo == null) { return; } m_ShenQiSlot.InitInfo(ItemSlotLogic.SLOT_TYPE.TYPE_ITEM, m_ShenQiItem.DataID, ShowShenQiTipsInf); m_ShenQiNameLable.text = Utils.GetItemNameColor((int)m_ShenQiItem.GetQuality()) + m_ShenQiItem.GetName();//神器名字 //技能信息 int SkillInfIndex = (int)ShenQiDyData.SkillId; if (SkillInfIndex >= 0 && SkillInfIndex < m_ShenQiItem.DynamicData.Length) { Tab_SkillEx _skillEx = TableManager.GetSkillExByID(m_ShenQiItem.DynamicData[(int)ShenQiDyData.SkillId], 0); if (_skillEx != null) { Tab_SkillBase _SkillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); if (_SkillBase != null) { m_ShenQiSkillNameLable.text = _SkillBase.Name; m_ShenQiSkillLevLable.text = _skillEx.Level.ToString() + "/" + _ShenQiInfo.MaxSkillLev.ToString(); m_ShenQiSkillDecLable.text = _skillEx.SkillDesc; Tab_ShenQiSkillInfo _ShenQiSkillInfo = TableManager.GetShenQiSkillInfoByID(_skillEx.SkillExID, 0); if (_ShenQiSkillInfo != null) { int nSuiPianNum = _ShenQiSkillInfo.NeedItemNum; int nSuiPianOwnNum = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(_ShenQiSkillInfo.NeedItemId); if (nSuiPianNum <= nSuiPianOwnNum) { m_SheiQiSkillUpSuiPianLabel.text = "[32A100]" + nSuiPianNum; } else { m_SheiQiSkillUpSuiPianLabel.text = "[FF2222]" + nSuiPianNum; } if (_ShenQiSkillInfo.NextSkillId != -1) { m_ShowSkillInfoNextBt.SetActive(true); } } } } } //经验 元宝 经验 m_CoinNumLabel.text = Utils.ConvertLargeNumToString(GameManager.gameManager.PlayerDataPool.Money.GetMoney_Coin()); m_YBNumLable.text = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBao().ToString(); m_ExpNumLable.text = Utils.ConvertLargeNumToString(GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Exp); //属性条 for (int i = 0; i < (int)ShenQiInfo.MAXRANDATTRNUM; i++) { if (i + (int)ShenQiDyData.Attr1Info >= 0 && i + (int)ShenQiDyData.Attr1Info < m_ShenQiItem.DynamicData.Length) { int AttrRandData = m_ShenQiItem.DynamicData[i + (int)ShenQiDyData.Attr1Info]; if (AttrRandData > 0) { int AttrType = m_ShenQiItem.GetShenQiRandAttrType(AttrRandData); int AttrNum = m_ShenQiItem.GetShenQiRandAttrNum(AttrRandData); int AttrQuality = m_ShenQiItem.GetShenQiRandAttrQuality(AttrRandData); m_AttrTypeLable[i].text = Utils.GetItemNameColor(AttrQuality + 1) + Utils.GetAttrTypeString(AttrType); //if (1+_ShenQiInfo.ShenQiRefixPer>0 && _ShenQiInfo.ShenQiRefixPer>0) //{ // int nBaseAttr = (int) ((AttrNum*1.0f)/(1 + _ShenQiInfo.ShenQiRefixPer)); // int nFixAttr = (int) (AttrNum*_ShenQiInfo.ShenQiRefixPer); // m_AttrNumLable[i].text = Utils.GetItemNameColor(AttrQuality+1) + "+" + nBaseAttr.ToString() + "+" + nFixAttr.ToString(); //} //else { int nMaxNum = (int)(_ShenQiInfo.GetAttrMaxValuebyIndex(AttrType) * (1 + _ShenQiInfo.ShenQiRefixPer)); m_AttrNumLable[i].text = Utils.GetItemNameColor(AttrQuality + 1) + "+" + AttrNum + "[FF9933]" + StrDictionary.GetClientDictionaryString("#{5217}", nMaxNum); } m_AttrTypeLable[i].gameObject.SetActive(true); m_AttrNumLable[i].gameObject.SetActive(true); m_AttrToggle[i].gameObject.SetActive(true); } else { m_AttrTypeLable[i].gameObject.SetActive(false); m_AttrNumLable[i].gameObject.SetActive(false); m_AttrToggle[i].gameObject.SetActive(false); } } } m_CoinNeedLable.text = _ShenQiInfo.CoinCostMoney.ToString(); m_YBNeedLable.text = _ShenQiInfo.YBCostMoney.ToString(); m_ExpNeedLable.text = _ShenQiInfo.ExpCostNum.ToString(); m_ShenQiCombatValueLable.text = m_ShenQiItem.GetCombatValue_ForShenQi().ToString(); }
public void Init(int skillid, int index, int fellowlevel) { if (skillid == GlobeVar.INVALID_ID) { if (index < 0 || index >= Fellow.FELLOW_ELEMENTSKILL_LEVELNEED.Length) { return; } m_SkillIcon.gameObject.SetActive(false); //m_QualityPic.spriteName = "white-jinengkuang"; m_UnLockButton.SetActive(false); int LvValue = Fellow.FELLOW_ELEMENTSKILL_LEVELNEED[index]; m_Level.text = LvValue.ToString(); if (fellowlevel >= LvValue) { m_LockButton.SetActive(true); m_NoHoldSprite.SetActive(false); m_bValidSlot = true; m_bLocked = false; } else { m_LockButton.SetActive(false); m_NoHoldSprite.SetActive(true); m_bValidSlot = false; m_bLocked = true; } } else { Tab_CabalFellowElementSkill tabSkill = TableManager.GetCabalFellowElementSkillByID(skillid, 0); if (tabSkill == null) { return; } Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(skillid, 0); if (tabSkillEx == null) { return; } Tab_SkillBase tabBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (tabBase == null) { return; } m_SkillIcon.spriteName = tabBase.Icon; m_SkillIcon.gameObject.SetActive(true); Tab_CabalFellowElementSkill tabNextSkill = TableManager.GetCabalFellowElementSkillByID(tabSkill.NextSkillId, 0); if (tabNextSkill == null) { m_Level.text = "MAX"; } m_Level.text = FellowTool.GetFellowElementLevelText(skillid); m_LockButton.SetActive(true); m_UnLockButton.SetActive(false); m_NoHoldSprite.SetActive(false); m_bValidSlot = true; m_bLocked = false; } }
public void InitElementSkill_Info(int skillid) { Tab_CabalFellowElementSkill tabSkill = TableManager.GetCabalFellowElementSkillByID(skillid, 0); if (tabSkill == null) { return; } Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(skillid, 0); if (tabSkillEx == null) { return; } Tab_SkillBase tabBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (tabBase == null) { return; } m_TallentSkillId = GlobeVar.INVALID_ID; m_ElementSkillId = skillid; m_NameLabel.text = tabBase.Name; m_NameLabel.gameObject.SetActive(true); Tab_CabalFellowElementSkill tabNextSkill = TableManager.GetCabalFellowElementSkillByID(tabSkill.NextSkillId, 0); if (tabNextSkill == null) { m_ExpLabel.text = "MAX"; } else { m_ExpLabel.text = StrDictionary.GetClientDictionaryString("#{10321}", GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(tabNextSkill.NeedBookId), tabNextSkill.NeedBookCount); } m_ExpLabel.gameObject.SetActive(true); m_SkillIcon.spriteName = tabBase.Icon; m_SkillIcon.gameObject.SetActive(true); m_QualityPic.spriteName = FellowTool.GetFellowElementSkillQualityPic(skillid); m_LevelLabel.text = FellowTool.GetFellowElementLevelText(skillid); m_LevelLabel.gameObject.SetActive(true); m_FlagLabel.gameObject.SetActive(false); m_LockSprite.SetActive(false); if (m_LevelUpButton != null) { m_LevelUpButton.SetActive(tabSkill.NextSkillId != GlobeVar.INVALID_ID); } updateElementRemindPoint(skillid); if (PartnerFrameLogic.Instance() != null) { PartnerFrameLogic.Instance().UpdateDevelopRemindPoint(); } }
//====================================================== public bool IsCanAddAutoSkill(int skillId) { Tab_SkillEx SkillExinfo = TableManager.GetSkillExByID(skillId, 0); if (SkillExinfo == null) { return(false); } Tab_SkillBase SkillBase = TableManager.GetSkillBaseByID(SkillExinfo.BaseId, 0); if (SkillBase == null) { return(false); } // 4个 普通技能 if ((SkillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) == 0 && (SkillBase.SkillClass & (int)SKILLCLASS.CHANGEMODE) == 0 && (SkillBase.SkillClass & (int)SKILLCLASS.XP) == 0 && (SkillBase.SkillClass & (int)SKILLCLASS.PASSIVITY) == 0 ) { return(true); } //// 一二变区分 // first return(false); if (SkillBase.LevelUpIndex != GlobeVar.INVALID_ID && SkillBase.LevelUpIndex / 10 >= 1 && SkillBase.LevelUpIndex / 10 < 2) { //xp if ((SkillBase.SkillClass & (int)SKILLCLASS.XP) > 0) { return(true); } else if ((SkillBase.SkillClass & (int)SKILLCLASS.CHANGEMODE) > 0) { Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (PlayerPreferenceData.PVESkillIdCurUsing >= 0 && PlayerPreferenceData.PVESkillIdCurUsing < _mainPlayer.OwnSkillInfo.Length) { if (_mainPlayer.OwnSkillInfo[PlayerPreferenceData.PVESkillIdCurUsing].SkillId == skillId) { return(true); } } } } //second else if (SkillBase.LevelUpIndex != GlobeVar.INVALID_ID && SkillBase.LevelUpIndex / 10 >= 2) { //xp if ((SkillBase.SkillClass & (int)SKILLCLASS.XP) > 0) { return(true); } else if ((SkillBase.SkillClass & (int)SKILLCLASS.CHANGEMODE) > 0) { Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (PlayerPreferenceData.PVPSkillIdCurUsing >= 0 && PlayerPreferenceData.PVESkillIdCurUsing < _mainPlayer.OwnSkillInfo.Length) { if (_mainPlayer.OwnSkillInfo[PlayerPreferenceData.PVPSkillIdCurUsing].SkillId == skillId) { return(true); } } } } return(false); }
public override void UpdateAI() { base.UpdateAI(); if (m_player == null || m_player.Controller == null) { return; } if (m_player.IsDie()) { return; } if (m_player.Controller.CombatFlag == false) { return; } if (m_player.AutoComabat == false) { return; } //轻功状态下 不挂机 if (m_player.QingGongState) { return; } if (m_player.AcceleratedMotion != null && m_player.AcceleratedMotion.Going == true) { return; } //剧情播放中不挂机 if (m_player.IsInModelStory) { return; } // 跟随不挂机 if (false == m_player.IsTeamLeader() && m_player.IsInTeamFollow) { return; } if (Cutscene.CutsceneManager.Instance.IsPlayingMovieStory) { return; } //阻塞状态不挂机 if (Cutscene.CutsceneManager.Instance.BlockAutoBattle) { return; } //自动交接任务的寻路过程中不挂机 if (null != GameManager.gameManager.AutoSearch && true == GameManager.gameManager.AutoSearch.IsAutoSearching) { return; } //modify 普通攻击:可以连续按。在技能结束前可以再次释放不能直接return。 if (m_player.SkillCore.IsUsingSkill) { bool shouldReturn = true; if ((Time.time * 1000 - CurUseSkillStartTime) >= m_nNormalSkillInterval) { if (IsNormalSkill(CurUseSkillId)) { shouldReturn = false; } } if (shouldReturn) { return; } } #region UnUsed /* if (m_player.SkillCore.IsUsingSkill) * { * * return; * if (m_player.SkillCore.UsingSkillBaseInfo != null && m_player.SkillCore.UsingSkillExInfo !=null) * { * //正在使用祝融掌 则检测下当前目标是否还存在 不存在则重新选取目标 * //if (m_player.SkillCore.UsingSkillBaseInfo.Id ==(int)SKILLBASEID.ZLZ) * //{ * // if (m_player.SelectTarget ==null || m_player.SelectTarget.IsDie()) * // { * // Obj_Character _NewAttackCharacter = SeleCanAttackTar(m_player.SkillCore.UsingSkillExInfo.Radius); * // if (_NewAttackCharacter != null) * // { * // //设置新的选中目标 * // m_player.OnSelectTarget(_NewAttackCharacter.gameObject,false); * // m_player.MoveTo(_NewAttackCharacter.transform.position, _NewAttackCharacter.gameObject,1.0f); * // } * // } * //} * * //连续技特殊判定: * //1、判定玩家是否主动打断; * //2、不判定是否释放完成,一直尝试是否可释放; * if (IsPlayerBreakRepeatSkill()) * { * ClearPlayerBreakRepeatSkill(); * return; * } * //非连续技则等待一帧 * if (!IsUsingRepeatSkillWithNext()) * { * return; * } * } * } * else * { * if (m_fLastUseEndTime <=0.1f) * { * m_fLastUseEndTime = Time.time; * } * }*/ #endregion //留个缓冲时间 //if (Time.time -m_fLastUseEndTime <0.5f) //{ // return; //} //有轻功点了出现了 向轻功点移动 if (m_player.AutoMovetoQGPointId != -1) { //打断挂机状态 m_player.BreakAutoCombatState(); /*if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_YANZIWU) * { * //燕子坞轻功点移动 * m_player.AutoFightFlyInYanZiWu(); * }*/ m_player.AutoMovetoQGPointId = -1; return; } m_fLastUseEndTime = 0.0f; int skillId = SeleSkill(); if (skillId == -1) { return; } Tab_SkillEx skillExInfo = TableManager.GetSkillExByID(skillId, 0); if (skillExInfo == null) { return; } Tab_SkillBase skillBaseInfo = TableManager.GetSkillBaseByID(skillExInfo.BaseId, 0); if (skillBaseInfo == null) { return; } Obj_Character CanAttackCharacter = null; //如果当前选中的目标是敌对的了 则不需要再次选取目标 if (m_player.SelectTarget != null && m_player.SelectTarget.IsDie() == false) { if (Reputation.IsEnemy(m_player.SelectTarget) || Reputation.IsNeutral(m_player.SelectTarget)) { CanAttackCharacter = m_player.SelectTarget; } } float skillRadius = skillExInfo.Radius; if (CanAttackCharacter == null || (CanAttackCharacter != null && IsDisStartPointTooFar(skillRadius, CanAttackCharacter.Position)) ) { CanAttackCharacter = SeleCanAttackTar(skillRadius); } //是否有攻击目标 没有攻击目标就不要自动放技能了 if (CanAttackCharacter == null) { /* * if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_ZHENLONGQIJU) * { * Vector3 pos = new Vector3(18, m_player.gameObject.transform.position.y, 16); * m_player.MoveTo(pos, null, 0.0f); * * } * if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_YANGWANGGUMU) * { * Vector3 pos = new Vector3(20, m_player.gameObject.transform.position.y, 21); * m_player.MoveTo(pos, null, 0.0f); * } * * if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_YANZIWU) * { * m_player.AutoFightInYanziwu(); * } * if (GameManager.gameManager.RunningScene == (int)Games.GlobeDefine.GameDefine_Globe.SCENE_DEFINE.SCENE_FOURVILLAIN) * { * Singleton<ObjManager>.Instance.MainPlayer.AutoFightInFourVillain(); * } */ if (GameManager.gameManager.ActiveScene != null && GameManager.gameManager.ActiveScene.IsStoryCopyScene()) { if (Singleton <ObjManager> .GetInstance().MainPlayer != null) { if (Singleton <ObjManager> .GetInstance().MainPlayer.AutoComabat) { float x = 0.0f, y = 0.0f, z = 0.0f; if (GameManager.gameManager.ActiveScene.GetGuideDestination(ref x, ref z)) { y = GameManager.gameManager.ActiveScene.GetTerrainHeight(new Vector3(x, 0.0f, z)); Singleton <ObjManager> .GetInstance().MainPlayer.MoveTo(new Vector3(x, y, z), null, 0.0f); } } } } return; } //如果在野外场景攻击其它玩家return; if (CanAttackCharacter.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { if (GameManager.gameManager.ActiveScene.IsWildeScene()) { return; } } //设置为选中目标 m_player.OnSelectTarget(CanAttackCharacter.gameObject, false); //距离不过 先跑过去 float dis = Vector3.Distance(m_player.Position, CanAttackCharacter.Position); float diffDistance = dis - skillRadius; m_player.CurUseSkillId = skillId; //需要向目标移动 则想目标移动 if (diffDistance > 0 && skillBaseInfo.IsMoveToTarInAutoCombat == 1) { //move if (m_player.IsMoving == false && m_player.IsCanOperate_Move()) { m_player.MoveTo(CanAttackCharacter.Position, CanAttackCharacter.gameObject, skillRadius - 1.0f); return; } } m_player.UseSkillOpt(skillId, null); }
//释放技能 public void UseSkill(int skillId, int senderId, int targetId, string skillname = "") { if (m_bIsUsingSkill) { BreakCurSkill(); } m_fLastUseSkillTime = Time.time; m_SkillSender = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(senderId); if (m_SkillSender == null) { LogModule.DebugLog("MainPlayer is Null:" + senderId); return; } m_UsingSkillExInfo = TableManager.GetSkillExByID(skillId, 0); if (m_UsingSkillExInfo == null) { LogModule.DebugLog("SkillExinfo is Null: " + skillId); return; } int BaseSkillId = m_UsingSkillExInfo.BaseId; m_UsingSkillBaseInfo = TableManager.GetSkillBaseByID(BaseSkillId, 0); if (m_UsingSkillBaseInfo == null) { LogModule.DebugLog("SkillBaseInfo is Null" + BaseSkillId); return; } if (m_SkillSender.IsMoving)//可以攻击了且在移动 停止移动 { m_SkillSender.StopMove(); } //!!!使用的是旋风则 屏蔽旋转 //if (m_UsingSkillBaseInfo.Id ==(int)SKILLBASEID.XFZBASEID) //{ // m_SkillSender.EnableMovingRotation(false); //} if (m_UsingSkillBaseInfo.Id == (int)SKILLBASEID.RIDE_SKILLID) { GameManager.gameManager.SoundManager.PlaySoundEffect(244); } //如果有目标 朝向目标 Obj_Character _targetObjCharacter = Singleton <ObjManager> .GetInstance().FindObjCharacterInScene(targetId); if (_targetObjCharacter && _targetObjCharacter.ServerID != m_SkillSender.ServerID) { m_SkillSender.FaceTo(_targetObjCharacter.Position); } //如果有目标缓存一下目标位置 TargetData.Clear(); if (_targetObjCharacter != null) { TargetData._targetId = targetId; TargetData._targetPos = _targetObjCharacter.transform.position; TargetData._hasSet = true; } //开始播放动画 PlayAnimation(m_UsingSkillExInfo.SatrtMotionId); m_UsingSkillStartAni = m_UsingSkillExInfo.SatrtMotionId; //子弹播放 int nBulletNum = m_UsingSkillExInfo.getBulletEffectIDCount(); for (int i = 0; i < nBulletNum; i++) { int _nBulletId = m_UsingSkillExInfo.GetBulletEffectIDbyIndex(i); if (_nBulletId != -1) { if (_nBulletId == 93 || _nBulletId == 94 || _nBulletId == 95) //大理子弹 特殊处理下 { m_SkillSender.PlayEffect(_nBulletId); } else { BulletData bulletData = new BulletData(senderId, targetId); m_SkillSender.PlayEffect(_nBulletId, OnLoadBullet, bulletData); } } } //显示技能名字 if (m_UsingSkillBaseInfo.IsShowSkillName == 1 && m_SkillSender.ObjType != Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { if (skillname == "") { if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { m_SkillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, m_UsingSkillBaseInfo.Name); } else if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { m_SkillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME_NPC, m_UsingSkillBaseInfo.Name, false); } else { m_SkillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, m_UsingSkillBaseInfo.Name, false); } } else { m_SkillSender.ShowDamageBoard_SkillName(Games.GlobeDefine.GameDefine_Globe.DAMAGEBOARD_TYPE.SKILL_NAME, skillname, false); } } //主角的一些的 特殊处理 if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .GetInstance().MainPlayer; if (_mainPlayer) { // 使用XP技能,如果有新手指引就 关掉 if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.XP) != 0 && SkillBarLogic.Instance() && SkillBarLogic.Instance().NewPlayerGuide_Step == 1) { NewPlayerGuidLogic.CloseWindow(); } //当前释放的Xp技能成功了 if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.XP) != 0 && SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().m_isUseSkillClick = true; SkillBarLogic.Instance().OnClickXpShowBtn(); SkillBarLogic.Instance().TransformCon.TakeEffect(); } int nSkillIndx = _mainPlayer.GetSkillIndexById(skillId); int nChangeState = _mainPlayer.GetCurrentChangeState(); if (nSkillIndx >= 0 && nSkillIndx < _mainPlayer.OwnSkillInfo.Length) { //常规技能 if (m_UsingSkillBaseInfo.GetChangeModebyIndex(nChangeState) == 0) { Tab_CoolDownTime _coolDownTime = TableManager.GetCoolDownTimeByID(m_UsingSkillExInfo.CDTimeId, 0); //吟唱技不在这里加CD 吟唱技能生效后才走CD 服务器同步过来 if (_coolDownTime != null && m_UsingSkillBaseInfo.UseType != (int)SKILLUSETYPE.YINCHANG) { _mainPlayer.OwnSkillInfo[nSkillIndx].CDTime = _coolDownTime.CDTime; } //非连续技 增加公共CD int nPublicSkillCDId = (int)SKILLDEFINE.PUBLICCDID; Tab_CoolDownTime _publicCDTime = TableManager.GetCoolDownTimeByID(nPublicSkillCDId, 0); if (_publicCDTime != null && m_UsingSkillBaseInfo.HasPublicCd == 1) { _mainPlayer.SkillPublicTime = _publicCDTime.CDTime; } } } //如果是冲撞技能 if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.CrashMove) != 0) { Tab_CoolDownTime _coolDownTime = TableManager.GetCoolDownTimeByID(m_UsingSkillExInfo.CDTimeId, 0); _mainPlayer.CrashSkillCDTime = _coolDownTime.CDTime; //非连续技 增加公共CD int nPublicSkillCDId = (int)SKILLDEFINE.PUBLICCDID; Tab_CoolDownTime _publicCDTime = TableManager.GetCoolDownTimeByID(nPublicSkillCDId, 0); if (_publicCDTime != null && m_UsingSkillBaseInfo.HasPublicCd == 1) { _mainPlayer.SkillPublicTime = _publicCDTime.CDTime; } } if (CanShowSkillProgress(skillId)) { //如果是吟唱技则 显示引导条 if (m_UsingSkillBaseInfo.UseType == (int)SKILLUSETYPE.YINCHANG) { //吟唱时间为当前动作的长度 float fYinChangTime = m_UsingSkillExInfo.YinChangTime / 1000.0f;//转换成秒 //设置持续时间 if (SkillProgressLogic.Instance() != null) { SkillProgressLogic.Instance().PlaySkillProgress(SkillProgressLogic.ProgressModel.ORDERMODEL, fYinChangTime); } } else if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.DUTIAO) != 0) { //技能长度为当前引导条的长度 float fContiueTime = m_UsingSkillExInfo.SkillContinueTime / 1000.0f;//转换成秒 //设置持续时间 if (SkillProgressLogic.Instance() != null) { SkillProgressLogic.Instance().PlaySkillProgress(SkillProgressLogic.ProgressModel.REVERSEDMODE, fContiueTime); } } } if (m_SkillSender.Controller != null && m_SkillSender.Controller.CombatFlag) { _mainPlayer.AutoComabat = true; } //add by mawenbin //移植天龙3D TT15398 死亡复活*复活点自动寻路过程中释放六脉神剑立马被打断 //清除自动寻路 加个开关限制 if (GameManager.gameManager.PlayerDataPool.IsServerFlagOpen(SERVER_FLAGS_ENUM.FLAG_SKILLBREAKAUTOMOVE)) { if (null != GameManager.gameManager.AutoSearch && GameManager.gameManager.AutoSearch.IsAutoSearching) { GameManager.gameManager.AutoSearch.Stop(); } } } } //npc和主角自身放技能 可以自带震屏效果 if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_NPC) { //摄像机的 操作 CameraOpt(); } //测试用代码 if (m_UsingSkillExInfo.HasRangeWarning == 1 && m_SkillSender.ObjEffectController != null) { m_SkillSender.ObjEffectController.PlaySkillWarningEffect(skillId); } m_nLastSkillId = skillId; m_nLastSendId = senderId; m_nLastTargetId = targetId; m_bIsUsingSkill = true; }
//显示装备属性 public void ShowAttr(GameItem item, bool bUnEquiped = false) { ClearInfo(); //获得身上对应槽位的装备 int slotindex = item.GetEquipSlotIndex(); GameItem compareEquip = GameManager.gameManager.PlayerDataPool.EquipPack.GetItem(slotindex); Tab_EquipAttr line = TableManager.GetEquipAttrByID(item.DataID, 0); if (line != null) { int index = 0; //血上限 if (line.HP > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.HP, "HP"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAXHP); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)(line.HP * item.GetAttrFactorRefix())); m_AttrWhole[index].SetActive(true); //强化 SetEnchanceAndStarAttr(item, index, line.HP); ++index; } //血上限(百分比) if (line.HPPer > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.HPPer, "HPPer"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAXHP); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(line.HPPer * 100)); m_AttrWhole[index].SetActive(true); ++index; } //蓝上限 if (line.MP > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.MP, "MP"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAXMP); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)(line.MP * item.GetAttrFactorRefix())); m_AttrWhole[index].SetActive(true); //强化 SetEnchanceAndStarAttr(item, index, line.MP); ++index; } //蓝上限(百分比) if (line.MPPer > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.MPPer, "MPPer"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAXMP); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(line.MPPer * 100)); m_AttrWhole[index].SetActive(true); ++index; } //物理攻击 if (line.PhysicsAttack > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.PhysicsAttack, "PhysicsAttack"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.PYSATTACK); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)(line.PhysicsAttack * item.GetAttrFactorRefix())); m_AttrWhole[index].SetActive(true); //强化 SetEnchanceAndStarAttr(item, index, line.PhysicsAttack); ++index; } //物理攻击(百分比) if (line.PhysicsAttackPer > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.PhysicsAttackPer, "PhysicsAttackPer"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.PYSATTACK); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(line.PhysicsAttackPer * 100)); m_AttrWhole[index].SetActive(true); ++index; } //法术攻击 if (line.MagicAttack > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.MagicAttack, "MagicAttack"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAGATTACK); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)(line.MagicAttack * item.GetAttrFactorRefix())); m_AttrWhole[index].SetActive(true); //强化 SetEnchanceAndStarAttr(item, index, line.MagicAttack); ++index; } //法术攻击(百分比) if (line.MagicAttackPer > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.MagicAttackPer, "MagicAttackPer"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAGATTACK); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(line.MagicAttackPer * 100)); m_AttrWhole[index].SetActive(true); ++index; } //物理防御 if (line.PhysicsDefence > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.PhysicsDefence, "PhysicsDefence"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.PYSDEF); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)(line.PhysicsDefence * item.GetAttrFactorRefix())); m_AttrWhole[index].SetActive(true); //强化 SetEnchanceAndStarAttr(item, index, line.PhysicsDefence); ++index; } //物理防御(百分比) if (line.PhysicsDefencePer > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.PhysicsDefencePer, "PhysicsDefencePer"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.PYSDEF); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(line.PhysicsDefencePer * 100)); m_AttrWhole[index].SetActive(true); ++index; } //法术防御 if (line.MagicDefence > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.MagicDefence, "MagicDefence"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAGDEF); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)(line.MagicDefence * item.GetAttrFactorRefix())); m_AttrWhole[index].SetActive(true); //强化 SetEnchanceAndStarAttr(item, index, line.MagicDefence); ++index; } //法术防御(百分比) if (line.MagicDefencePer > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.MagicDefencePer, "MagicDefencePer"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString(COMBATATTE.MAGDEF); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(line.MagicDefencePer * 100)); m_AttrWhole[index].SetActive(true); ++index; } //攻击速度 if (line.AttackSpeed > 0 && index < m_Attr.Length && index >= 0) { //策划要求 隐藏装备攻速属性 //m_Attr[index].text = string.Format("{0}+{1}", ConvertAttrToString(COMBATATTE.ATTACKSPEED), line.AttackSpeed); //m_Attr[index].gameObject.SetActive(true); ////策划要求 攻速不受强化和打星影响 //++index; } //攻击速度(百分比) if (line.AttackSpeedPer > 0 && index < m_Attr.Length && index >= 0) { //策划要求 隐藏装备攻速属性 //m_Attr[index].text = string.Format("{0}+{1}%", ConvertAttrToString(COMBATATTE.ATTACKSPEED), line.AttackSpeedPer * 100); //m_Attr[index].gameObject.SetActive(true); //++index; } //全攻击 if (line.AllAttack > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.AllAttack, "AllAttack"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)1000); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)(line.AllAttack * item.GetAttrFactorRefix())); m_AttrWhole[index].SetActive(true); //强化 SetEnchanceAndStarAttr(item, index, line.AllAttack); ++index; } //全攻击(百分比) if (line.AllAttackPer > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.AllAttackPer, "AllAttackPer"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)1000); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(line.AllAttackPer * 100)); m_AttrWhole[index].SetActive(true); ++index; } //全防御 if (line.AllDefence > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.AllDefence, "AllDefence"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)1001); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)(line.AllDefence * item.GetAttrFactorRefix())); m_AttrWhole[index].SetActive(true); //强化 SetEnchanceAndStarAttr(item, index, line.AllDefence); ++index; } //全防御(百分比) if (line.AllDefencePer > 0 && index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, line.AllDefencePer, "AllDefencePer"); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)1001); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(line.AllDefencePer * 100)); m_AttrWhole[index].SetActive(true); ++index; } // delete cut lines //if (index >= 1) //{ // if ((index - 1) >= 0 && (index - 1) < m_CutLine.Length) // { // m_CutLine[index - 1].SetActive(true); // } //} //附加属性 for (int attrIndex = 0; attrIndex < line.getAddAttrTypeCount(); ++attrIndex) { int attrType = line.GetAddAttrTypebyIndex(attrIndex); float attrValue = line.GetAddAttrValuebyIndex(attrIndex); if ((attrType >= (int)COMBATATTE.MAXHP && attrType < (int)COMBATATTE.COMBATATTE_MAXNUM) || attrType == 1000 || attrType == 1001) { if (attrValue > 0) { if (index < m_Attr.Length && index >= 0) { //策划要求隐藏装备攻速属性 if (attrType == (int)COMBATATTE.ATTACKSPEED) { continue; } string strColor = GetAttrColor(bUnEquiped, compareEquip, attrValue, "AddAttr", attrIndex); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)attrType); m_AttrValue[index].text = strColor + string.Format("+{0}", (int)attrValue); m_AttrWhole[index].SetActive(true); if (attrType != (int)COMBATATTE.ATTACKSPEED) //策划要求 攻速不受强化和打星影响 { //强化 SetEnchanceAndStarAttr(item, index, attrValue, true); //策划要求 附加属性不受打星影响 } ++index; } } } } //附加属性(百分比) for (int attrIndex = 0; attrIndex < line.getAddAttrTypeCount(); ++attrIndex) { int attrType = line.GetAddAttrTypebyIndex(attrIndex); float attrPer = line.GetAddAttrPerbyIndex(attrIndex); if (attrType >= (int)COMBATATTE.MAXHP && attrType < (int)COMBATATTE.COMBATATTE_MAXNUM && attrPer > 0) { if (index < m_Attr.Length && index >= 0) { string strColor = GetAttrColor(bUnEquiped, compareEquip, attrPer, "AddAttrPer", attrIndex); m_Attr[index].text = strColor + ItemTool.ConvertAttrToString((COMBATATTE)attrIndex); m_AttrValue[index].text = strColor + string.Format("+{0}%", (int)(attrPer * 100)); m_AttrWhole[index].SetActive(true); ++index; } } } //神器属性 if (item != null && item.IsShenQiEquipMent()) { Tab_ShenQiInfo _ShenQiInfo = TableManager.GetShenQiInfoByID(item.DataID, 0); if (_ShenQiInfo != null) { // 技能信息 int SkillInfIndex = (int)ShenQiDyData.SkillId; if (SkillInfIndex >= 0 && SkillInfIndex < item.DynamicData.Length) { Tab_SkillEx _skillEx = TableManager.GetSkillExByID(item.DynamicData[(int)ShenQiDyData.SkillId], 0); if (_skillEx != null) { Tab_SkillBase _SkillBase = TableManager.GetSkillBaseByID(_skillEx.BaseId, 0); if (_SkillBase != null) { // delete cut lines //if (index >= 1 && index - 1 < m_CutLine.Length) //{ // m_CutLine[index - 1].SetActive(true); //} m_ShenQiSkillNameLable.text = _SkillBase.Name + "(" + _skillEx.Level + "/" + _ShenQiInfo.MaxSkillLev + ")"; m_ShenQiSkillDescLable.text = _skillEx.SkillDesc; m_ShenQiSkillName.SetActive(true); m_ShenQiSkillDesc.SetActive(true); } } } //属性条 int nLastAttrIndex = -1; for (int i = 0; i < (int)ShenQiInfo.MAXRANDATTRNUM && i < m_ShenQiAttrWhole.Length; i++) { if (i + (int)ShenQiDyData.Attr1Info >= 0 && i + (int)ShenQiDyData.Attr1Info < item.DynamicData.Length) { int AttrRandData = item.DynamicData[i + (int)ShenQiDyData.Attr1Info]; if (AttrRandData > 0) { int AttrType = item.GetShenQiRandAttrType(AttrRandData); int AttrNum = item.GetShenQiRandAttrNum(AttrRandData); int AttrQuality = item.GetShenQiRandAttrQuality(AttrRandData); m_ShenQiAttrName[i].text = Utils.GetItemNameColor(AttrQuality + 1) + Utils.GetAttrTypeString(AttrType); //if (1 + _ShenQiInfo.ShenQiRefixPer > 0 && _ShenQiInfo.ShenQiRefixPer > 0) //{ // int nBaseAttr = (int)((AttrNum * 1.0f) / (1 + _ShenQiInfo.ShenQiRefixPer)); // int nFixAttr = (int)(AttrNum * _ShenQiInfo.ShenQiRefixPer); // m_ShenQiAttrValue[i].text = Utils.GetItemNameColor(AttrQuality+1) + "+" + nBaseAttr.ToString() + "+" + nFixAttr.ToString(); //} //else { m_ShenQiAttrValue[i].text = Utils.GetItemNameColor(AttrQuality + 1) + "+" + AttrNum; } m_ShenQiAttrWhole[i].SetActive(true); nLastAttrIndex = i; } } } //分界线 // m_ShenQiSkillCutLine.SetActive(true); if (nLastAttrIndex >= 0 && nLastAttrIndex < m_ShenQiAttrCutLine.Length) { m_ShenQiAttrCutLine[nLastAttrIndex].SetActive(true); } //m_ShenQiCutLine2.SetActive(true); } } //m_Grid.Reposition(); //m_TopGrid.Recenter(true); m_Table.sorted = true; m_Table.hideInactive = true; m_Table.keepWithinPanel = true; m_Table.repositionNow = true; } }
void Init(string spriteName, GameObject destGameObject, NEWITEMTYPE type, int IntParam = GlobeVar.INVALID_ID, GameObject attachGameObject = null, string itemName = "", string strFuncName = "", string strDec = "") { _forShowWin(); m_destGameObject = destGameObject; m_AttachItem.SetActive(false); hasAttachSkill = false; if (type == NEWITEMTYPE.TYPE_SKILL) { Dictionary <int, List <Tab_SkillActive> > dicTab_SkillActive = TableManager.GetSkillActive(); foreach (KeyValuePair <int, List <Tab_SkillActive> > kv in dicTab_SkillActive) { Tab_SkillActive _skillActive = kv.Value[0]; //有附带技能 if (_skillActive.SkillId == IntParam && _skillActive.AttachSkillId != -1) { m_AttachItem.SetActive(true); m_NeedToShow = true; m_AttachItemIcon.atlas = SkillAtlas; Tab_SkillEx _tabSkillEx = TableManager.GetSkillExByID(_skillActive.AttachSkillId, 0); if (_tabSkillEx != null) { Tab_SkillBase _sttachSkillBase = TableManager.GetSkillBaseByID(_tabSkillEx.BaseId, 0); if (_sttachSkillBase != null) { hasAttachSkill = true; m_AttachItemIcon.spriteName = _sttachSkillBase.Icon; m_AttachItemIcon.MakePixelPerfect(); m_AttachNameLabel.text = _sttachSkillBase.Name; m_AttachDescLabel.text = _tabSkillEx.SkillDesc; m_AttachItemIcon.gameObject.transform.localScale = Vector3.one; } } } } if (hasAttachSkill) { m_MainItem.transform.localPosition = new Vector3(12, -84, 0); } m_ItemIcon.atlas = SkillAtlas; m_ItemIcon.spriteName = spriteName; //m_ItemIcon.MakePixelPerfect(); m_SprTitle.spriteName = "Newjineng";// new skill Tab_SkillEx tabSkillEx = TableManager.GetSkillExByID(IntParam, 0); if (tabSkillEx != null) { Tab_SkillBase _skillBase = TableManager.GetSkillBaseByID(tabSkillEx.BaseId, 0); if (_skillBase != null) { m_NameLabel.text = _skillBase.Name; m_DescLabel.text = tabSkillEx.SkillDesc; m_ItemIcon.gameObject.transform.localScale = Vector3.one; } } } else if (type == NEWITEMTYPE.TYPE_MENUBAR) { m_ItemIcon.atlas = MainMenuBarAtlas; m_ItemIcon.spriteName = spriteName; //m_ItemIcon.MakePixelPerfect(); m_ItemIcon.gameObject.transform.localScale = Vector3.one; m_SprTitle.spriteName = "Newxitong"; m_NameLabel.text = strFuncName; m_DescLabel.text = " " + strDec; m_ItemName.text = itemName; } else if (type == NEWITEMTYPE.TYPE_FUNCTION) { if (IntParam == m_openServerId) { _hideShowWin(); // 开服奖励的单独对待 OpenServer.fakeId = 67; OpenServer.destroyCallBack = () => { if (FunctionButtonLogic.Instance() != null) { FunctionButtonLogic.Instance().ShowTweenPosition(); } }; UIManager.ShowUI(UIInfo.OpenServer, (bSuccess, param) => { if (bSuccess && OpenServer.Instance() != null) { OpenServer.Instance().ShowRideDesc(); } }); } else { m_ItemIcon.atlas = MainUIAtlas; m_ItemIcon.spriteName = spriteName; m_ItemIcon.gameObject.SetActive(!string.IsNullOrEmpty(spriteName)); m_ItemIcon.MakePixelPerfect(); m_ItemIcon.gameObject.transform.localScale = Vector3.one; m_SprTitle.spriteName = "Newxitong"; m_NameLabel.text = strFuncName; m_DescLabel.text = " " + strDec; m_ItemName.text = itemName; } } else if (type == NEWITEMTYPE.TYPE_QINGGONG) { m_ItemIcon.atlas = SkillAtlas; m_ItemIcon.spriteName = spriteName; m_ItemIcon.MakePixelPerfect(); m_SprTitle.spriteName = "Newjineng";// new skill m_NameLabel.text = StrDictionary.GetClientDictionaryString("#{4584}"); m_DescLabel.text = " " + StrDictionary.GetClientDictionaryString("#{4586}"); m_ItemIcon.gameObject.transform.localScale = 0.7f * Vector3.one; } else if (type == NEWITEMTYPE.TYPE_FELLOW3DSHOW) { _hideShowWin(); // Transform parent = m_ItemIcon.transform.parent; m_ItemIcon.atlas = null; m_ItemIcon.transform.parent.FindChild("BGSprite").GetComponent <UISprite>().atlas = null; m_ItemIcon.transform.parent.FindChild("Sprite").GetComponent <UISprite>().atlas = null; OpenServer.fakeId = 79; OpenServer.destroyCallBack = () => { NewItemOnClick(); }; UIManager.ShowUI(UIInfo.OpenServer, (bSuccess, param) => { if (bSuccess && OpenServer.Instance() != null) { OpenServer.Instance().ShowFellowDesc(); } }); } m_ItemTween.Reset(); m_ItemTween.gameObject.SetActive(false); if (hasAttachSkill) { m_AttachItemTween.Reset(); if (attachGameObject != null) { m_AttachItemTween.to = m_AttachItemTween.gameObject.transform.parent.InverseTransformPoint(attachGameObject.transform.position); } } m_ItemType = type; m_IntParam = IntParam; }
private UInt64 m_MasterGuid; //师门GUID //根据数据初始化控件 public void Init(MasterPreviewInfo info, int nIndex) { //判断数据合法性 if (info.MasterGuid == GlobeVar.INVALID_GUID) { return; } m_MasterGuid = info.MasterGuid; //填充数据 if (null != m_MasterIndexLable) { m_MasterIndexLable.text = nIndex.ToString(); } if (null != m_MasterNameLabel) { m_MasterNameLabel.text = info.MasterName; } if (null != m_MasterChiefNameLabel) { m_MasterChiefNameLabel.text = info.MasterChiefName; } if (null != m_MasterTorchLabel) { m_MasterTorchLabel.text = info.MasterTorch.ToString(); } if (null != m_MasterMemberNumLabel) { m_MasterMemberNumLabel.text = info.MasterCurMemberNum.ToString(); } int SkillIndex = 0; if (info.MasterSkillId1 >= 0) { Tab_SkillEx lineSkillEx = TableManager.GetSkillExByID(info.MasterSkillId1, 0); if (lineSkillEx != null) { Tab_SkillBase lineSkillBase = TableManager.GetSkillBaseByID(lineSkillEx.BaseId, 0); if (lineSkillBase != null && SkillIndex >= 0 && SkillIndex < m_MasterSkillSprite.Length && null != m_MasterSkillSprite[SkillIndex]) { m_MasterSkillSprite[SkillIndex].gameObject.SetActive(true); m_MasterSkillSprite[SkillIndex].spriteName = lineSkillBase.Icon; SkillIndex = SkillIndex + 1; } } } if (info.MasterSkillId2 >= 0) { Tab_SkillEx lineSkillEx = TableManager.GetSkillExByID(info.MasterSkillId2, 0); if (lineSkillEx != null) { Tab_SkillBase lineSkillBase = TableManager.GetSkillBaseByID(lineSkillEx.BaseId, 0); if (lineSkillBase != null && SkillIndex >= 0 && SkillIndex < m_MasterSkillSprite.Length && null != m_MasterSkillSprite[SkillIndex]) { m_MasterSkillSprite[SkillIndex].gameObject.SetActive(true); m_MasterSkillSprite[SkillIndex].spriteName = lineSkillBase.Icon; SkillIndex = SkillIndex + 1; } } } if (info.MasterSkillId3 >= 0) { Tab_SkillEx lineSkillEx = TableManager.GetSkillExByID(info.MasterSkillId3, 0); if (lineSkillEx != null) { Tab_SkillBase lineSkillBase = TableManager.GetSkillBaseByID(lineSkillEx.BaseId, 0); if (lineSkillBase != null && SkillIndex >= 0 && SkillIndex < m_MasterSkillSprite.Length && null != m_MasterSkillSprite[SkillIndex]) { m_MasterSkillSprite[SkillIndex].gameObject.SetActive(true); m_MasterSkillSprite[SkillIndex].spriteName = lineSkillBase.Icon; SkillIndex = SkillIndex + 1; } } } for (; SkillIndex < 4; SkillIndex++) { if (SkillIndex >= 0 && SkillIndex < m_MasterSkillSprite.Length && null != m_MasterSkillSprite[SkillIndex]) { m_MasterSkillSprite[SkillIndex].gameObject.SetActive(false); } } }
// 三阶变身 //private int skillId7 = GlobeVar.INVALID_ID; // private int skillId8 = GlobeVar.INVALID_ID; private void initSkillFirst() { Obj_MainPlayer _mainPlayer = Singleton <ObjManager> .Instance.MainPlayer; if (_mainPlayer == null) { return; } int publicSkillIndex = 0; int xp1SkillChange = 4; int xp1SkillIndex = 5; int xp2SkillChange = 6; int xp2SkillIndex = 7; for (int i = 0; i < m_skillGameObj.Length; ++i) { m_skillGameObj[i].SetActive(false); } int skillId = GlobeVar.INVALID_ID; for (int i = 0; i < _mainPlayer.OwnSkillInfo.Length; ++i) { skillId = _mainPlayer.OwnSkillInfo[i].SkillId; if (skillId == GlobeVar.INVALID_ID) { continue; } Tab_SkillEx skillEx = TableManager.GetSkillExByID(skillId, 0); if (skillEx == null) { continue; } Tab_SkillBase skillBase = TableManager.GetSkillBaseByID(skillEx.BaseId, 0); // skillEx.BaseId if (skillBase == null) { continue; } // 4个 普通技能 if ((skillBase.SkillClass & (int)SKILLCLASS.AUTOREPEAT) == 0 && (skillBase.SkillClass & (int)SKILLCLASS.CHANGEMODE) == 0 && (skillBase.SkillClass & (int)SKILLCLASS.XP) == 0 && (skillBase.SkillClass & (int)SKILLCLASS.PASSIVITY) == 0 ) { if (publicSkillIndex < 4) { if (publicSkillIndex == 0) { skillId0 = skillId; } else if (publicSkillIndex == 1) { skillId1 = skillId; } else if (publicSkillIndex == 2) { skillId2 = skillId; } else if (publicSkillIndex == 3) { skillId3 = skillId; } m_skillSprite[publicSkillIndex].spriteName = _getSkillBaseIconName(skillId); m_skillGameObj[publicSkillIndex].SetActive(true); ++publicSkillIndex; } } //// 一二变区分 // first if (skillBase.LevelUpIndex != GlobeVar.INVALID_ID && skillBase.LevelUpIndex / 10 >= 1 && skillBase.LevelUpIndex / 10 < 2) { //xp if ((skillBase.SkillClass & (int)SKILLCLASS.XP) > 0) { m_skillSprite[xp1SkillChange].spriteName = _getSkillBaseIconName(skillId); m_skillGameObj[xp1SkillChange].SetActive(true); skillId4 = skillId; } else if ((skillBase.SkillClass & (int)SKILLCLASS.CHANGEMODE) > 0) { if (PlayerPreferenceData.PVESkillIdCurUsing == i) { m_skillSprite[xp1SkillIndex].spriteName = _getSkillBaseIconName(skillId); m_skillGameObj[xp1SkillIndex].SetActive(true); skillId5 = skillId; } } } //second else if (skillBase.LevelUpIndex != GlobeVar.INVALID_ID && skillBase.LevelUpIndex / 10 >= 2) { //xp if ((skillBase.SkillClass & (int)SKILLCLASS.XP) > 0) { m_skillSprite[xp2SkillChange].spriteName = _getSkillBaseIconName(skillId); m_skillGameObj[xp2SkillChange].SetActive(true); skillId6 = skillId; } else if ((skillBase.SkillClass & (int)SKILLCLASS.CHANGEMODE) > 0) { if (PlayerPreferenceData.PVPSkillIdCurUsing == i) { m_skillSprite[xp2SkillIndex].spriteName = _getSkillBaseIconName(skillId); m_skillGameObj[xp2SkillIndex].SetActive(true); skillId7 = skillId; } } } } }
void ShowSkillInfo() { //找出需要显示的技能id List <int> totalSkillList = new List <int>(); foreach (KeyValuePair <int, List <Tab_MasterSkill> > kvp in TableManager.GetMasterSkill()) { Tab_MasterSkill line = kvp.Value[0]; if (line != null) { if (line.Level == 1) { totalSkillList.Add(line.Id); } } } //当前师门已经学习的技能 Dictionary <int, string> masterSkillList = GameManager.gameManager.PlayerDataPool.MasterInfo.MasterSkillList; //当前个人已经激活的技能 List <int> ownSkillList = new List <int>(); OwnSkillData[] InfoArry = GameManager.gameManager.PlayerDataPool.OwnSkillInfo; for (int i = 0; i < InfoArry.Length; i++) { OwnSkillData info = InfoArry[i]; if (info.SkillId >= 0) { ownSkillList.Add(info.SkillId); } } //显示技能信息 for (int index = 0; index < SKILL_NUM && index < totalSkillList.Count; index++) { int skillid = totalSkillList[index]; //技能是否合法 Tab_SkillEx lineSkillEx = TableManager.GetSkillExByID(skillid, 0); if (lineSkillEx == null) { continue; } Tab_SkillBase lineSkillBase = TableManager.GetSkillBaseByID(lineSkillEx.BaseId, 0); if (lineSkillBase == null) { continue; } if (masterSkillList.ContainsKey(skillid)) { //师门已经学习的技能 int sameBaseSkillId = GetSameBaseSkill(ownSkillList, skillid); if (sameBaseSkillId >= 0) { //个人已经激活的技能 m_SkillID[index] = sameBaseSkillId; m_SkillActive[index] = true; m_SkillOwn[index] = true; m_SkillSprite[index].spriteName = lineSkillBase.Icon; m_SkillName[index].text = masterSkillList[skillid]; } else { //个人未激活的技能 m_SkillID[index] = skillid; m_SkillActive[index] = true; m_SkillOwn[index] = false; m_SkillSprite[index].spriteName = lineSkillBase.Icon; m_SkillName[index].text = masterSkillList[skillid]; } } else { int sameBaseSkillId = GetSameBaseSkill(ownSkillList, skillid); if (sameBaseSkillId >= 0) { m_SkillID[index] = sameBaseSkillId; m_SkillOwn[index] = true; } else { m_SkillID[index] = skillid; m_SkillOwn[index] = false; } //师门未学习的技能 m_SkillActive[index] = false; m_SkillSprite[index].spriteName = lineSkillBase.Icon; //m_SkillName[index].text = "未学习"; m_SkillName[index].text = StrDictionary.GetClientDictionaryString("#{2795}"); } } //隐藏按钮 m_SkillLearnBtn.gameObject.SetActive(false); m_SkillActiveBtn.gameObject.SetActive(false); m_SkillForgetBtn.gameObject.SetActive(false); m_SkillNameInputObject.gameObject.SetActive(false); //默认选中技能 OnClickSkill((m_CurSelectSkillIndex >= 0) ? m_CurSelectSkillIndex : 0); }
public void SkillFinsh() { if (m_nLastSkillId == -1 || m_bIsUsingSkill == false) { return; } //清除数据 m_bIsUsingSkill = false; m_fLastUseSkillTime = 0; m_nLastSkillId = -1; if (m_UsingSkillBaseInfo == null || m_UsingSkillExInfo == null || m_SkillSender == null) { return; } m_SkillSender.EnableMovingRotation(true); if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER || m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_OTHER_PLAYER) { Obj_OtherPlayer player = m_SkillSender as Obj_OtherPlayer; if (null != player) { player.UpdateVisualAfterSkill(); } if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.CrashMove) != 0) { Obj_MainPlayer _mainPlayer = (Obj_MainPlayer)player; _mainPlayer.IsFirstUseCrash = false; } } ////XP 阳关三叠 放完 恢复之前的视角 //if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.XP) != 0 || // m_UsingSkillBaseInfo.Id == (int)SKILLBASEID.YGSDID) //{ // CameraController camController = Singleton<ObjManager>.GetInstance().MainPlayer.GetComponent<CameraController>(); // if (camController != null) // { // if (m_OldCameraScan !=-1) // { // camController.m_Scale = m_OldCameraScan; // } // } //} for (int i = 0; i < m_UsingSkillBaseInfo.getIsNeedStopEffectIdCount(); i++) { int nIsNeedStopEffectId = m_UsingSkillBaseInfo.GetIsNeedStopEffectIdbyIndex(i); //如果需要在技能结束的时候 停止对应的特效 则停止 if (nIsNeedStopEffectId != -1) { m_SkillSender.StopEffect(nIsNeedStopEffectId); } } if (m_SkillSender.ObjType == Games.GlobeDefine.GameDefine_Globe.OBJ_TYPE.OBJ_MAIN_PLAYER) { Obj_MainPlayer player = m_SkillSender as Obj_MainPlayer; if (null != player) { player.SyncPosToServer(true); } if ((m_UsingSkillBaseInfo.SkillClass & (int)SKILLCLASS.XP) != 0 && SkillBarLogic.Instance() != null) { //SkillBarLogic.Instance().TransformCon.End(); } if (SkillBarLogic.Instance() != null) { SkillBarLogic.Instance().SetAttackBarCanUseNext(true); } } //清除数据 m_UsingSkillBaseInfo = null; m_UsingSkillExInfo = null; m_SkillSender = null; }