示例#1
0
        public void InitFollowFx()
        {
            if (m_attacker == null)
            {
                DestroyFx();
                return;
            }
            bStart      = true;
            bDestory    = false;
            m_targetObj = m_attacker.GetTargetGameObject();
            ISkillPart skillPart = m_attacker.GetSkillPart();

            if (skillPart != null)
            {
                m_SkillTarget = skillPart.GetSkillTarget();

                table.SkillDatabase db = GameTableManager.Instance.GetTableItem <table.SkillDatabase>((uint)m_skillId, 1);
                if (db != null)
                {
                    if (db.flyspeed != 0)
                    {
                        m_speed = db.flyspeed * 1.0f / 100;
                    }
                }
            }

            // m_targetNode = m_attacker.GetTargetHitNode();
            m_startTime = Time.time;
            castPos     = m_attacker.GetTargetHitNodePos(m_SkillTarget, targetHitNode);
            float dis = GetVectorDistance(transform.position, castPos);

            totalTime = dis / m_speed;
        }
示例#2
0
    public void AddSkillCD(uint skillid, int cd)
    {
        if (m_dictskill == null)
        {
            Client.IPlayer    player      = Client.ClientGlobal.Instance().MainPlayer;
            Client.ISkillPart m_skillPart = player.GetPart(Client.EntityPart.Skill) as Client.ISkillPart;
            m_dictskill = m_skillPart.GetCurSkills();
        }
        table.SkillDatabase skillTable = null;
        if (m_dictskill.ContainsKey(skillid))
        {
            skillTable = m_dictskill[skillid];
        }
        if (skillTable == null)
        {
            skillTable = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(skillid);
        }

        if (skillTable != null)
        {
            if (!m_dictSkillCD.ContainsKey(skillid))
            {
                m_dictSkillCD.Add(skillid, new SkillCDInfo());
                cdkeys.Add(skillid);
            }
            if (cd == -1)
            {
                m_dictSkillCD[skillid].totalTime = skillTable.dwIntervalTime;
            }
            else
            {
                m_dictSkillCD[skillid].totalTime = cd;
            }
            m_dictSkillCD[skillid].skillid  = (int)skillid;
            m_dictSkillCD[skillid].currTime = m_dictSkillCD[skillid].totalTime;
        }
        else
        {
            table.RideSkillDes rideskill = GameTableManager.Instance.GetTableItem <table.RideSkillDes>(skillid);
            if (rideskill == null)
            {
                return;
            }
            if (!m_dictSkillCD.ContainsKey(skillid))
            {
                m_dictSkillCD.Add(skillid, new SkillCDInfo());
                cdkeys.Add(skillid);
            }
            m_dictSkillCD[skillid].totalTime = rideskill.skillCD;
            m_dictSkillCD[skillid].skillid   = (int)skillid;
            m_dictSkillCD[skillid].currTime  = rideskill.skillCD;
        }
    }
示例#3
0
 public void Play(ISkillAttacker attacker)
 {
     m_fCurrentTime = 0.0f;
     m_Atttacker    = attacker;
     m_bAlive       = true;
     bStop          = false;
     bPlayFinish    = false;
     SetPlayEffectInitPos(attacker);
     CurSkillID = attacker.GetCurSkillId();
     table.SkillDatabase db = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(CurSkillID, 1);
     if (db != null)
     {
         m_uSkillLen = db.skillLength;
     }
 }
示例#4
0
    void OnShowUI()
    {
        if (m_data == null)
        {
            return;
        }
        m_labelName.gameObject.SetActive(false);
        m_spriteIcon.gameObject.SetActive(true);

        if (m_data.skillType == 1)
        {
            table.SkillDatabase skilldata = GameTableManager.Instance.GetTableItem <table.SkillDatabase>((uint)m_data.skillid);
            if (skilldata != null)
            {
                UIManager.GetTextureAsyn(skilldata.iconPath, ref m_playerAvataCASD, () =>
                {
                    if (null != m_spriteIcon)
                    {
                        m_spriteIcon.mainTexture = null;
                    }
                }, m_spriteIcon);
            }
        }
        else if (m_data.skillType == 2)
        {
            table.RideSkillDes rideSkill = GameTableManager.Instance.GetTableItem <table.RideSkillDes>((uint)m_data.skillid);
            if (rideSkill != null)
            {
                UIManager.GetTextureAsyn(rideSkill.skillIcon, ref m_playerAvataCASD, () =>
                {
                    if (null != m_spriteIcon)
                    {
                        m_spriteIcon.mainTexture = null;
                    }
                }, m_spriteIcon);
            }
        }
    }
示例#5
0
    //public void AddSkillCD(uint skillid)
    //{
    //    if (m_dictskill == null)
    //    {
    //        Client.IPlayer player = Client.ClientGlobal.Instance().MainPlayer;
    //        Client.ISkillPart m_skillPart = player.GetPart(Client.EntityPart.Skill) as Client.ISkillPart;
    //        m_dictskill = m_skillPart.GetCurSkills();
    //    }
    //    table.SkillDatabase skillTable = null;
    //    if (m_dictskill.ContainsKey(skillid))
    //    {
    //        skillTable =  m_dictskill[skillid];
    //    }
    //    if (skillTable == null)
    //    {
    //        skillTable = GameTableManager.Instance.GetTableItem<table.SkillDatabase>(skillid);
    //    }

    //    if (skillTable != null)
    //    {
    //        if (!m_dictSkillCD.ContainsKey(skillid))
    //        {
    //            m_dictSkillCD.Add(skillid, new SkillCDInfo());
    //            cdkeys.Add(skillid);
    //        }
    //        m_dictSkillCD[skillid].totalTime = skillTable.dwIntervalTime;
    //        m_dictSkillCD[skillid].skillid = (int)skillid;
    //        m_dictSkillCD[skillid].currTime = skillTable.dwIntervalTime;
    //    }
    //    else
    //    {
    //        table.RideSkillDes rideskill = GameTableManager.Instance.GetTableItem<table.RideSkillDes>(skillid);
    //        if (rideskill == null)
    //        {
    //            return;
    //        }
    //        if (!m_dictSkillCD.ContainsKey(skillid))
    //        {
    //            m_dictSkillCD.Add(skillid, new SkillCDInfo());
    //            cdkeys.Add(skillid);
    //        }
    //        m_dictSkillCD[skillid].totalTime = rideskill.skillCD;
    //        m_dictSkillCD[skillid].skillid = (int)skillid;
    //        m_dictSkillCD[skillid].currTime = rideskill.skillCD;
    //    }
    //}

    public void AddCommonSkillCD(uint skillid)
    {
        if (m_dictskill == null)
        {
            Client.IPlayer    player      = Client.ClientGlobal.Instance().MainPlayer;
            Client.ISkillPart m_skillPart = player.GetPart(Client.EntityPart.Skill) as Client.ISkillPart;
            m_dictskill = m_skillPart.GetCurSkills();
        }
        table.SkillDatabase skillTable = null;
        if (m_dictskill.ContainsKey(skillid))
        {
            skillTable = m_dictskill[skillid];

            if (!m_dictSkillCD.ContainsKey(skillid))
            {
                m_dictSkillCD.Add(skillid, new SkillCDInfo());
                cdkeys.Add(skillid);
            }
            m_dictSkillCD[skillid].totalTime = skillTable.dwCommonCDTime;
            m_dictSkillCD[skillid].skillid   = (int)skillid;
            m_dictSkillCD[skillid].currTime  = skillTable.dwCommonCDTime;
        }
    }
示例#6
0
        public override void Play(ISkillAttacker attacker, SkillEffect se)
        {
            m_ef = se;
            Transform attacker_node = attacker.GetRoot();

            if (attacker_node == null)
            {
                return;
            }


            PlaceFxNodeProp prop = m_NodeProp as PlaceFxNodeProp;

            if (prop == null)
            {
                return;
            }
            // Engine.Utility.Log.Error("play PlaceFxNodeProp {0}", prop.fx_name);
            string stateName  = prop.nodeState;
            int    stateIndex = 0;

            if (!string.IsNullOrEmpty(stateName))
            {
                Client.SkillState state = SkillSystem.GetSkillStateByString(stateName);
                stateIndex = (int)state - 1;
            }
            if (stateIndex < 0)
            {
                stateIndex = 0;
            }
            Vector3 pos = attacker_node.TransformPoint(prop.position);
            //Vector3 vscale = attacker_node.localScale * prop.scale;
            Vector3 vscale = Vector3.one * prop.scale;
            Vector3 angles = attacker_node.eulerAngles;

            angles += prop.rotation;

            if (prop.by_target)
            {
                pos = se.GetPlayEffectInitPos() + prop.position;
            }
            int level = 0;

            if (attacker != null)
            {
                if (attacker.GetSkillPart() != null)
                {
                    level = attacker.GetSkillPart().FxLevel;
                }
            }
            m_uEffectID = helper.ReqPlayFx(prop.fx_name, pos, angles, vscale, level);
            m_startTime = Time.time;
            uint skillID = se.CurSkillID;

            m_curDb = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(skillID, 1);
            if (m_curDb != null)
            {
                if (stateIndex >= 0)
                {
                    if (!string.IsNullOrEmpty(m_curDb.skillEffectTime))
                    {
                        string[] timeArray = SkillSystem.GetTimeArrayByString(m_curDb.skillEffectTime);
                        if (stateIndex < timeArray.Length)
                        {
                            uint time = 1000;
                            if (uint.TryParse(timeArray[stateIndex], out time))
                            {
                                m_uEffectLen = time;
                            }
                        }
                    }
                }
            }
            //  m_bRmove = false;

            IEffect ef = GetEffectByID(m_uEffectID);

            if (ef != null)
            {
                Transform trans = ef.GetNodeTransForm();
                if (trans == null)
                {
                    return;
                }
                m_placeHandle = trans.gameObject.GetComponent <PlaceFxHandle>();
                if (m_placeHandle == null)
                {
                    m_placeHandle = trans.gameObject.AddComponent <PlaceFxHandle>();
                }
            }
            m_placeHandle.m_attacker  = attacker;
            m_placeHandle.m_len       = m_uEffectLen;
            m_placeHandle.m_effectid  = m_uEffectID;
            m_placeHandle.m_placeNode = this;
            m_placeHandle.InitPlaceFx();
        }
示例#7
0
    /// <summary>
    /// 格子刷新回调
    /// </summary>
    /// <param name="grid"></param>
    /// <param name="index"></param>
    private void OnUpdateUIGrid(UIGridBase grid, int index)
    {
        if (grid is UIClanTaskGrid)
        {
            if (null != m_list_taskInfos && m_list_taskInfos.Count > index)
            {
                uint           id           = m_list_taskInfos[index];
                UIClanTaskGrid clanTaskGrid = grid as UIClanTaskGrid;
                clanTaskGrid.SetGridData(m_mgr.GetClanQuestInfo(id));
            }
            else
            {
                Engine.Utility.Log.Error("ClanTask OnUpdateUIGrid error");
            }
        }
        else if (grid is UIClanApplyGrid)
        {
            UIClanApplyGrid caGrid = grid as UIClanApplyGrid;
            if (null != caGrid && null != m_list_applyUserIds && m_list_applyUserIds.Count > index)
            {
                caGrid.SetGridData(m_mgr.GetClanApplyUserInfo(m_list_applyUserIds[index]));
            }
        }
        else if (grid is UIClanDonateGrid)
        {
            UIClanDonateGrid cdGrid = grid as UIClanDonateGrid;
            if (null != cdGrid && null != m_list_donateDatas && m_list_donateDatas.Count > index)
            {
                ClanDefine.LocalClanDonateDB cdDB
                    = m_mgr.GetLocalDonateDB(m_list_donateDatas[index]);
                cdGrid.RegisterDonateAction(DoDonate);
                if (null != cdDB)
                {
                    cdGrid.SetGridData(cdDB);
                }
            }
        }
        else if (grid is UIClanMemberGrid)
        {
            UIClanMemberGrid cmGrid = grid as UIClanMemberGrid;
            //ClanDefine.LocalClanInfo clanInfo = ClanInfo;
            if (null != cmGrid && index < m_list_memberdatas.Count)
            {
                cmGrid.SetGridData(m_list_memberdatas[index]);
                cmGrid.SetHightLight((m_uint_selectmemberid == m_list_memberdatas[index]) ? true : false);
                cmGrid.SetBackGround(index);
            }
        }
        else if (grid is UIClanSkillGrid)
        {
            UIClanSkillGrid csGrid = grid as UIClanSkillGrid;
            if (null != csGrid && null != m_list_clanSkillIds && m_list_clanSkillIds.Count > index)
            {
                uint skillId = m_list_clanSkillIds[index];
                csGrid.SetGridData(m_list_clanSkillIds[index]);
                table.SkillDatabase skillDB = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(skillId, 1);
                if (null != skillDB)
                {
                    bool select = (m_uint_SelectSkillId == skillId) ? true : false;

                    uint lv1    = 0;
                    uint lv2    = 0;
                    bool isLock = false;
                    if (IsSkillMode(ClanSkillMode.Learn))
                    {
                        lv1    = m_mgr.GetClanSkillLearnLv(skillId);
                        lv2    = m_mgr.GetClanSkillDevLv(skillId);
                        isLock = (lv1 >= lv2);
                    }
                    else if (IsSkillMode(ClanSkillMode.Dev))
                    {
                        lv1 = m_mgr.GetClanSkillDevLv(skillId);
                        lv2 = skillDB.dwMaxLevel;
                    }

                    csGrid.SetInfo(skillDB.strName
                                   , string.Format("{0}/{1}", lv1, lv2)
                                   , skillDB.iconPath
                                   , select, isLock);
                }
            }
        }
        else if (grid is UIClanHonorGrid)
        {
            UIClanHonorGrid cdGrid = grid as UIClanHonorGrid;
            if (null != cdGrid && null != m_list_honorInfos && m_list_honorInfos.Count > index)
            {
                cdGrid.SetGridData(m_list_honorInfos[index]);
            }
        }
        else if (grid is UIClanDecareWaRivalryGrid)
        {
            UIClanDecareWaRivalryGrid dwg = grid as UIClanDecareWaRivalryGrid;
            if (null != m_lst_Rivalry && m_lst_Rivalry.Count > index)
            {
                dwg.SetGridData(m_mgr.GetClanRivalryInfo(m_lst_Rivalry[index]));
            }
        }
        else if (grid is UIClanDeclareWarGrid)
        {
            UIClanDeclareWarGrid dwg = grid as UIClanDeclareWarGrid;
            if (null != m_lst_Rivalry && m_lst_Rivalry.Count > index)
            {
                dwg.SetGridData(m_mgr.GetClanRivalryInfo(m_lst_Rivalry[index]));
                dwg.SetIndex(index);
            }
        }
        else if (grid is UIClanTabGrid)
        {
            UIClanTabGrid tab = grid as UIClanTabGrid;
            tab.SetGridData(index);
            tab.SetName(m_list_tabContents[index]);
            if (index == 0 && previous == null)
            {
                previous = tab;
                tab.SetHightLight(true);
            }
        }
    }
示例#8
0
    /// <summary>
    /// 更新技能信息
    /// </summary>
    private void UpdateSkill()
    {
        if (!IsInitMode(ClanPanelMode.Skill))
        {
            return;
        }

        TextManager tmgr = DataManager.Manager <TextManager>();

        if (null != m_ctor_SkillScrollView)
        {
            m_ctor_SkillScrollView.UpdateActiveGridData();
        }
        bool isLearn = IsSkillMode(ClanSkillMode.Learn);

        //当前等级
        uint curLv = isLearn ? m_mgr.GetClanSkillLearnLv(m_uint_SelectSkillId)
            : m_mgr.GetClanSkillDevLv(m_uint_SelectSkillId);

        table.SkillDatabase skDBCur
            = GameTableManager.Instance.GetTableItem <table.SkillDatabase>(m_uint_SelectSkillId, (int)curLv);
        //技能最大等级
        uint maxLv = (null != skDBCur) ? skDBCur.dwMaxLevel : 1;
        //最大等级
        uint limitLv = isLearn ? m_mgr.GetClanSkillDevLv(m_uint_SelectSkillId)
            : ((null != skDBCur) ? skDBCur.dwMaxLevel : 0);
        bool isMaxLv = (curLv == maxLv);

        table.SkillDatabase skDBNext
            = (!isMaxLv) ? GameTableManager.Instance.GetTableItem <table.SkillDatabase>(m_uint_SelectSkillId, (int)curLv + 1) : null;
        //名称
        if (null != m_label_SkillName)
        {
            m_label_SkillName.text = (null != skDBCur) ? skDBCur.strName : "";
        }

        //等级
        if (null != m_label_SkillLv)
        {
            m_label_SkillLv.text = tmgr.GetLocalFormatText(LocalTextType.Local_TXT_FM_Lv, "", curLv);
        }

        //技能效果
        if (null != m_label_SkillEffectCur)
        {
            m_label_SkillEffectCur.text = (null != skDBCur) ? skDBCur.strDesc : "";
        }
        //技能下一级效果
        if (null != m_label_SkillEffectNext)
        {
            if (m_label_SkillEffectNext.gameObject.activeSelf == isMaxLv)
            {
                m_label_SkillEffectNext.gameObject.SetActive(!isMaxLv);
            }
            if (!isMaxLv)
            {
                m_label_SkillEffectNext.text = ColorManager.GetColorString(ColorType.Green
                                                                           , (null != skDBNext) ? skDBNext.strDesc : "");
            }
        }
        //tips
        if (null != m_label_SkillTips)
        {
            string tips = "";
            if (isMaxLv)
            {
                tips = ColorManager.GetColorString(ColorType.Red, tmgr.GetLocalText(LocalTextType.Local_TXT_UpgradeMax));
            }
            else
            {
                string name = (isLearn) ? tmgr.GetLocalText(LocalTextType.Local_TXT_Learn)
                    : tmgr.GetLocalText(LocalTextType.Local_TXT_Dev);
                string who = (isLearn) ? tmgr.GetLocalText(LocalTextType.Local_TXT_Person)
                    : tmgr.GetLocalText(LocalTextType.Local_TXT_Clan);
                table.ClanSkillDataBase sdbNext =
                    GameTableManager.Instance.GetTableItem <table.ClanSkillDataBase>(m_uint_SelectSkillId, (int)curLv + 1);
                ColorType cType = ColorType.Green;
                if ((isLearn && null != skDBNext && DataManager.Instance.PlayerLv < skDBNext.dwNeedLevel) ||
                    (!isLearn && null != sdbNext && null != ClanInfo && ClanInfo.Lv < sdbNext.needClanLv))
                {
                    cType = ColorType.Red;
                }
                uint lvuint = 0;
                if (isLearn)
                {
                    lvuint = (null != skDBNext) ? skDBNext.dwNeedLevel : 0;
                }
                else
                {
                    lvuint = (null != sdbNext) ? sdbNext.needClanLv : 0;
                }
                string lvStr = ColorManager.GetColorString(cType, tmgr.GetLocalFormatText(LocalTextType.Local_TXT_FM_Lv, who, lvuint));

                tips = tmgr.GetLocalFormatText(LocalTextType.Local_TXT_NextLvNeed, name, lvStr);
            }
            m_label_SkillTips.text = tips;
        }

        if (null != m_trans_Cost && m_trans_Cost.gameObject.activeSelf == isMaxLv)
        {
            m_trans_Cost.gameObject.SetActive(!isMaxLv);
        }
        if (!isMaxLv)
        {
            //消耗
            if (null != m_trans_SkillCost1 && null != m_trans_SkillCost2)
            {
                UICurrencyGrid cGrid1 = null;
                UICurrencyGrid cGrid2 = null;
                cGrid1 = m_trans_SkillCost1.GetComponent <UICurrencyGrid>();
                cGrid2 = m_trans_SkillCost2.GetComponent <UICurrencyGrid>();
                UICurrencyGrid.UICurrencyGridData d1 =
                    new UICurrencyGrid.UICurrencyGridData(ClanDefine.CONST_ICON_ZG_NAME, 0);
                UICurrencyGrid.UICurrencyGridData d2 =
                    new UICurrencyGrid.UICurrencyGridData(ClanDefine.CONST_ICON_ZG_NAME, 0);
                if (isLearn)
                {
                    d1 = new UICurrencyGrid.UICurrencyGridData(
                        MallDefine.GetCurrencyIconNameByType(GameCmd.MoneyType.MoneyType_Gold), skDBNext.dwMoney);
                    d2 = new UICurrencyGrid.UICurrencyGridData(
                        MallDefine.GetCurrencyIconNameByType(GameCmd.MoneyType.MoneyType_Reputation), skDBNext.dwNeedSW);

                    m_trans_SkillCost2.gameObject.SetActive(true);

                    m_label_SkillRemainNum.text = UserData.Reputation.ToString();
                    UIManager.GetAtlasAsyn(MallDefine.GetCurrencyIconNameByType(GameCmd.MoneyType.MoneyType_Reputation), ref m_priceAsynSeed, () =>
                    {
                        if (null != m_sprite_SkillRemainIcon)
                        {
                            m_sprite_SkillRemainIcon.atlas = null;
                        }
                    }, m_sprite_SkillRemainIcon);
                }
                else
                {
                    table.ClanSkillDataBase cskdbNext
                        = GameTableManager.Instance.GetTableItem <table.ClanSkillDataBase>(m_uint_SelectSkillId, (int)curLv + 1);
                    if (null != cskdbNext)
                    {
                        d1 = new UICurrencyGrid.UICurrencyGridData(ClanDefine.CONST_ICON_ZJ_NAME, cskdbNext.coseZJ);
                        //d2 = new UICurrencyGrid.UICurrencyGridData(ClanDefine.CONST_ICON_ZJ_NAME, cskdbNext.coseZJ);
                    }
                    m_trans_SkillCost2.gameObject.SetActive(false);
                    m_label_SkillRemainNum.text = DataManager.Manager <ClanManger>().ClanInfo.Money.ToString();

                    UIManager.GetAtlasAsyn(ClanDefine.CONST_ICON_ZJ_NAME, ref m_priceAsynSeed, () =>
                    {
                        if (null != m_sprite_SkillRemainIcon)
                        {
                            m_sprite_SkillRemainIcon.atlas = null;
                        }
                    }, m_sprite_SkillRemainIcon);
                }
                if (null != cGrid1)
                {
                    cGrid1.SetGridData(d1);
                }
                if (null != cGrid2)
                {
                    cGrid2.SetGridData(d2);
                }

                bool canSee = IsSkillMode(ClanSkillMode.Learn);
                if (null != m_btn_BtnLearn && m_btn_BtnLearn.gameObject.activeSelf != canSee)
                {
                    m_btn_BtnLearn.gameObject.SetActive(canSee);
                }
                canSee = !canSee;
                if (null != m_btn_BtnDev && m_btn_BtnDev.gameObject.activeSelf != canSee)
                {
                    m_btn_BtnDev.gameObject.SetActive(canSee);
                }
            }
        }
    }