示例#1
0
        public void SetMyTeamSkillIcon(cmd_player_skill_state data)
        {
            int nUID         = (int)data.uOperator;
            int nRevliveTime = (int)data.nCoolTime / 1000;

            if (!LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable.ContainsKey(nUID))
            {
                return;
            }

            TeamRightInfo teamItem = LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable[nUID] as TeamRightInfo;

            m_wndView.SetMyTeamSkillIcon(nRevliveTime, teamItem.nSlotId, ref teamItem.bFirstLearnSkill);
        }
示例#2
0
        private void SetXpSkillFireEffect(cmd_creature_ShowPromptUI data)
        {
            int nUID = (int)data.uid;

            if (!LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable.ContainsKey(nUID))
            {
                return;
            }

            TeamRightInfo TeammateViewItem = LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable[nUID] as TeamRightInfo;

            if (data.nType > 0)
            {
                m_wndView.SetXpSkillFireEffect(TeammateViewItem.nSlotId);
            }
            else
            {
                m_wndView.DestoryXpSkillFireEffect(TeammateViewItem.nSlotId);
            }
        }
示例#3
0
        public void InitMyTeamRightToShow(IntPtr ptrParam, int nPtrLen)
        {
            IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen);
            cmd_count nCountdata          = helper.get <cmd_count>();
            int       nMySlotID           = 0;
            int       nOtherSlotID        = 0;
            int       nMainPlayerCamp     = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_CAMP);

            for (int i = 0; i < nCountdata.nCount; ++i)
            {
                cmd_entity_camp_palyer_uidinfo data = helper.get <cmd_entity_camp_palyer_uidinfo>();
                if (data.nCamp == nMainPlayerCamp)
                {
                    TeamRightInfo teamRightInfo = new TeamRightInfo();
                    teamRightInfo.nSlotId = nMySlotID;


                    LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable[(int)data.uUID] = teamRightInfo;
                    LogicDataCenter.teamRightWndDataManager.MyTeamEntityIdTable[nMySlotID] = (int)data.uUID;
                    int nLevelID = LogicDataCenter.recordTableDataManager.getHeroLvAcordPDBID(data.uPDBID);
                    m_wndView.SetMyTeamItemViewShow(nMySlotID, data.nHeroID, nLevelID);

                    bool bIsAI = data.nIsAI > 0 ? true : false;
                    m_wndView.SetMyTeamAICommandBtn(bIsAI, teamRightInfo.nSlotId);

                    nMySlotID++;
                }

                else
                {
                    TeamRightInfo teamRightInfo = new TeamRightInfo();
                    teamRightInfo.nSlotId = nOtherSlotID;

                    LogicDataCenter.teamRightWndDataManager.OtherTeamUIDTable[(int)data.uUID] = teamRightInfo;
                    int nLevelID = LogicDataCenter.recordTableDataManager.getHeroLvAcordPDBID(data.uPDBID);
                    m_wndView.SetOtherTeamItemViewShow(nOtherSlotID, data.nHeroID, nLevelID);
                    nOtherSlotID++;
                }
            }
        }
示例#4
0
        public void SetData()
        {
            int nMainPlayerCamp = LogicDataCenter.recordTableDataManager.GetMainPlayerCamp();
            int nHalfPlayerNum  = LogicDataCenter.recordTableDataManager.GetHalfPlayerCount();
            Dictionary <ulong, WarRecordTableDataManager.WarPersonInfo> dicPersonInfo = LogicDataCenter.recordTableDataManager.recordInfoArry;

            if (dicPersonInfo == null || dicPersonInfo.Count <= 0)
            {
                return;
            }

            defaultTeammateItem.gameObject.SetActive(false);
            foreach (KeyValuePair <ulong, WarRecordTableDataManager.WarPersonInfo> kvp in dicPersonInfo)
            {
                DataCenter.WarRecordTableDataManager.WarPersonInfo personInfo = kvp.Value;
                int nEntityUID = personInfo.nID;
                if (nEntityUID <= 0)
                {
                    // 若一开始没有uid的话,就先只是设置下英雄图片 等以后服务器完善再改
                    SetTeamSlotHeroIcon(personInfo, nMainPlayerCamp, nHalfPlayerNum);
                    continue;
                }

                if (LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable.ContainsKey(nEntityUID))
                {
                    continue;
                }

                if (LogicDataCenter.teamRightWndDataManager.OtherTeamUIDTable.ContainsKey(nEntityUID))
                {
                    continue;
                }

                if (personInfo.nCamp == nMainPlayerCamp)
                {
                    int nSlotId  = LogicDataCenter.recordTableDataManager.getIndexAcordPDBID(personInfo.uPDBID);
                    int nLevelID = LogicDataCenter.recordTableDataManager.getHeroLvAcordPDBID(personInfo.uPDBID);
                    TeammateViewItem teammateItem = GameObject.Instantiate <TeammateViewItem>(defaultTeammateItem);
                    teammateItem.gameObject.SetActive(true);
                    teammateItem.helpMeImage.gameObject.SetActive(false);
                    teammateItem.transform.SetParent(defaultTeammateItem.transform.parent, false);
                    m_dicMyTeam.Add(nSlotId, teammateItem);
                    Debug.LogWarningFormat("BattleWarTeammateWndView:SetData:{0},{1}", nSlotId, personInfo.uPDBID);
                    TeamRightInfo teamRightInfo = new TeamRightInfo();
                    teamRightInfo.nSlotId = nSlotId;
                    LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable[nEntityUID]   = teamRightInfo;
                    LogicDataCenter.teamRightWndDataManager.MyTeamEntityIdTable[nSlotId] = nEntityUID;
                    SetMyTeamItemViewShow(nSlotId, personInfo.nHeroId, nLevelID);
                }
            }

            int nTeamPlayerNum  = LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable.Count + LogicDataCenter.teamRightWndDataManager.OtherTeamUIDTable.Count;
            int nTotalPlayerNum = dicPersonInfo.Count;

            if (nTeamPlayerNum == nTotalPlayerNum && nTotalPlayerNum > 0)
            {
                // 所有的玩家信息初始化完成
                LogicDataCenter.recordTableDataManager.m_bUpdateTeamInfo = false;
            }

            if (nTeamPlayerNum > nTotalPlayerNum)
            {
                Debug.LogError("nTeamPlayerNum >= nTotalPlayerNum please to check");
            }
        }
示例#5
0
        //数值属性回调函数
        public void ResponseEntityNumPropEvent(EntityNumPropEventArgs e)
        {
            if (m_wndView == null)
            {
                return;
            }

            EntityView ev   = e.objev;
            int        nUID = e.data.nEntityID;

            bool isMyCamp = (ev.CampFlag == SPELL.CampFlag.CampFlag_Friend || ev.CampFlag == SPELL.CampFlag.CampFlag_Self);

            if (!isMyCamp)
            {
                return;
            }

            TeamRightInfo TeammateViewItem = LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable[nUID] as TeamRightInfo;

            if (TeammateViewItem == null)
            {
                return;
            }

            int nSlotId = TeammateViewItem.nSlotId;

            switch (e.data.nPropID)
            {
            case (int)ENTITY_PROPERTY.PROPERTY_HP:
            case (int)ENTITY_PROPERTY.PROPERTY_MAX_HP:
            {
                int nMaxHP = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_HP);
                int nHP    = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_HP);

                if (isMyCamp)
                {
                    m_wndView.SetMyTeamHPChange(nMaxHP, nHP, nSlotId);
                }
            }
            break;

            case (int)ENTITY_PROPERTY.PROPERTY_MP:
            case (int)ENTITY_PROPERTY.PROPERTY_MAX_MP:
            {
                int nMaxMP = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_MP);
                int nMP    = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MP);

                if (isMyCamp)
                {
                    m_wndView.SetMyTeamMPChange(nMaxMP, nMP, nSlotId);
                }
            }
            break;

            case (int)ENTITY_PROPERTY.PROPERTY_LEVEL:
            {
                int nlevel = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_LEVEL);
                Debug.LogWarning("Lv update," + ev.createinfo.szName + ":" + ev.createinfo.nLevel + "," + nlevel);

                if (isMyCamp)
                {
                    m_wndView.SetMyTeamLevelChange(nlevel, nSlotId);
                }
            }
            break;

            default:
                break;
            }
        }
示例#6
0
    private void OnAICommand()
    {
        int targetID = 0;

        if (raycast.targetID > 0)
        {
            EntityView evTarget       = EntityFactory.getEntityViewByID(raycast.targetID);
            EntityView evMainHeroView = EntityFactory.MainHeroView;
            if (evTarget != null && evTarget.IsValid)
            {
                if (evTarget.CampFlag == CampFlag.CampFlag_Friend && evTarget.Type == ENTITY_TYPE.TYPE_PLAYER_ROLE)
                {
                    // 1.发送服务器要(1)控制或(2)解除或   暂时没有该功能//(3)移交targetID的友方英雄单位
                    if (evTarget.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_AI_SCHEME_ID) > 0)
                    {
                        targetID = raycast.targetID;
                        if (!LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable.ContainsKey(targetID))
                        {
                            return;
                        }
                        TeamRightInfo teamRightInfo = LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable[targetID] as TeamRightInfo;

                        int       groundLightEffectID     = 0;
                        const int helpmeSignLightEffectID = 13;
                        const int dangerSignLightEffectID = 12;
                        if (LogicDataCenter.teamRightWndDataManager.BIsJoinFollow[teamRightInfo.nSlotId])
                        {
                            cmd_war_ai_command_break_follow data = new cmd_war_ai_command_break_follow();
                            data.uidTarget = targetID;
                            EntityEventHelper.Instance.SendCommand <cmd_war_ai_command_break_follow>(EntityFactory.MainHeroID, EntityLogicDef.ENTITY_CMD_AI_COMMAND_BREAK_FOLLOW, ref data);

                            groundLightEffectID = dangerSignLightEffectID;
                        }
                        else
                        {
                            cmd_war_ai_command_follow data = new cmd_war_ai_command_follow();
                            data.uidTarget = targetID;
                            EntityEventHelper.Instance.SendCommand <cmd_war_ai_command_follow>(EntityFactory.MainHeroID, EntityLogicDef.ENTITY_CMD_AI_COMMAND_FOLLOW, ref data);

                            groundLightEffectID = helpmeSignLightEffectID;
                        }
                        LogicDataCenter.teamRightWndDataManager.BIsJoinFollow[teamRightInfo.nSlotId] = !LogicDataCenter.teamRightWndDataManager.BIsJoinFollow[teamRightInfo.nSlotId];

                        // 添加地面光效
                        Vector3 pos = new Vector3();
                        if (MouseRaycastToGround(ref pos))
                        {
                            int        LayerMaskOnPos   = (1 << LayerMask.NameToLayer(Config.LayerDefault) | 1 << LayerMask.NameToLayer(Config.LayerBuilding));
                            Ray        PointToGroundRay = new Ray(pos + new Vector3(0, 0.5f, 0), new Vector3(0, -1, 0));
                            RaycastHit projectInfo;
                            Physics.Raycast(PointToGroundRay, out projectInfo, 100, LayerMaskOnPos);
                            pos = projectInfo.point;

                            LightEffectParam param = new LightEffectParam();
                            param.nSrcEntityID = evMainHeroView.ID;
                            param.sourcePos    = pos;
                            param.targetPos    = pos;
                            LightingEffectManager lem = evMainHeroView.LightingEffectManager;
                            if (lem != null && lem)
                            {
                                lem.AddLighting(groundLightEffectID, param);
                            }
                        }
                    }
                }
            }
        }
    }
示例#7
0
        // 更新玩家的TeamRight界面显示
        public void UpdateTeamRightViewToShow()
        {
            int nMainPlayerCamp = LogicDataCenter.recordTableDataManager.GetMainPlayerCamp();
            int nHalfPlayerNum  = LogicDataCenter.recordTableDataManager.GetHalfPlayerCount();
            Dictionary <ulong, WarRecordTableDataManager.WarPersonInfo> dicPersonInfo = LogicDataCenter.recordTableDataManager.recordInfoArry;

            if (dicPersonInfo == null || dicPersonInfo.Count <= 0)
            {
                return;
            }

            foreach (KeyValuePair <ulong, WarRecordTableDataManager.WarPersonInfo> kvp in dicPersonInfo)
            {
                DataCenter.WarRecordTableDataManager.WarPersonInfo personInfo = kvp.Value;
                int nEntityUID = personInfo.nID;
                if (nEntityUID <= 0)
                {
                    // 若一开始没有uid的话,就先只是设置下英雄图片 等以后服务器完善再改
                    SetTeamSlotHeroIcon(personInfo, nMainPlayerCamp, nHalfPlayerNum);
                    continue;
                }

                if (LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable.ContainsKey(nEntityUID))
                {
                    continue;
                }

                if (LogicDataCenter.teamRightWndDataManager.OtherTeamUIDTable.ContainsKey(nEntityUID))
                {
                    continue;
                }

                if (personInfo.nCamp == nMainPlayerCamp)
                {
                    TeamRightInfo teamRightInfo = new TeamRightInfo();
                    int           nSlotId       = LogicDataCenter.recordTableDataManager.getIndexAcordPDBID(personInfo.uPDBID);
                    int           nLevelID      = LogicDataCenter.recordTableDataManager.getHeroLvAcordPDBID(personInfo.uPDBID);
                    teamRightInfo.nSlotId = nSlotId;

                    LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable[nEntityUID]   = teamRightInfo;
                    LogicDataCenter.teamRightWndDataManager.MyTeamEntityIdTable[nSlotId] = nEntityUID;
                    m_wndView.SetMyTeamItemViewShow(nSlotId, personInfo.nHeroId, nLevelID);
                    m_wndView.SetMyTeamAICommandBtn(personInfo.bIsAI, nSlotId);
                }
                else
                {
                    TeamRightInfo teamRightInfo = new TeamRightInfo();

                    int nSlotId = nHalfPlayerNum * 2 - LogicDataCenter.recordTableDataManager.getIndexAcordPDBID(personInfo.uPDBID) - 1;
                    teamRightInfo.nSlotId = nSlotId;

                    LogicDataCenter.teamRightWndDataManager.OtherTeamUIDTable[nEntityUID] = teamRightInfo;
                    int nLevelID = LogicDataCenter.recordTableDataManager.getHeroLvAcordPDBID(personInfo.uPDBID);
                    m_wndView.SetOtherTeamItemViewShow(nSlotId, personInfo.nHeroId, nLevelID);
                }
            }

            int nTeamPlayerNum  = LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable.Count + LogicDataCenter.teamRightWndDataManager.OtherTeamUIDTable.Count;
            int nTotalPlayerNum = dicPersonInfo.Count;

            if (nTeamPlayerNum == nTotalPlayerNum && nTotalPlayerNum > 0)
            {
                // 所有的玩家信息初始化完成
                LogicDataCenter.recordTableDataManager.m_bUpdateTeamInfo = false;
            }

            if (nTeamPlayerNum > nTotalPlayerNum)
            {
                Debug.LogError("nTeamPlayerNum >= nTotalPlayerNum please to check");
            }
        }
示例#8
0
        //数值属性回调函数
        public void ResponseEntityNumPropEvent(EntityNumPropEventArgs e)
        {
            //int nMyCamp = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_CAMP);
            if (m_wndView == null)
            {
                return;
            }

            EntityView ev   = e.objev;
            int        nUID = e.data.nEntityID;

            bool isMyCamp = (ev.CampFlag == SPELL.CampFlag.CampFlag_Friend || ev.CampFlag == SPELL.CampFlag.CampFlag_Self);

            TeamRightInfo teamRightInfo = null;

            if (isMyCamp)
            {
                teamRightInfo = LogicDataCenter.teamRightWndDataManager.MyTeamUIDTable[nUID] as TeamRightInfo;
            }
            else
            {
                teamRightInfo = LogicDataCenter.teamRightWndDataManager.OtherTeamUIDTable[nUID] as TeamRightInfo;
            }

            if (teamRightInfo == null)
            {
                return;
            }

            int nSlotId = teamRightInfo.nSlotId;

            switch (e.data.nPropID)
            {
            case (int)ENTITY_PROPERTY.PROPERTY_HP:
            case (int)ENTITY_PROPERTY.PROPERTY_MAX_HP:
            {
                int nMaxHP = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_HP);
                int nHP    = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_HP);

                if (isMyCamp)
                {
                    m_wndView.SetMyTeamHPChange(nMaxHP, nHP, nSlotId);
                }
            }
            break;

            case (int)ENTITY_PROPERTY.PROPERTY_MP:
            case (int)ENTITY_PROPERTY.PROPERTY_MAX_MP:
            {
                int nMaxMP = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MAX_MP);
                int nMP    = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MP);

                if (isMyCamp)
                {
                    m_wndView.SetMyTeamMPChange(nMaxMP, nMP, nSlotId);
                }
            }
            break;

            case (int)ENTITY_PROPERTY.PROPERTY_LEVEL:
            {
                Debug.LogWarning("Lv update," + ev.createinfo.szName + ":" + ev.createinfo.nLevel);

                int nlevel = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_LEVEL);

                if (isMyCamp)
                {
                    m_wndView.SetMyTeamLevelChange(nlevel, nSlotId);
                }
                else
                {
                    m_wndView.SetOtherTeamLevelChagne(nlevel, nSlotId);
                }
            }
            break;

            case (int)ENTITY_PROPERTY.PROPERTY_AI_SCHEME_ID:
            {
                bool bIsAI = ev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_AI_SCHEME_ID) > 0 ? true : false;

                if (isMyCamp)
                {
                    m_wndView.SetMyTeamAICommandBtn(bIsAI, nSlotId);
                }
            }
            break;

            default:
                break;
            }
        }