Example #1
0
    ColorType GetClanNameColor(IEntity entity)
    {
        ColorType nameColor = ColorType.JSXT_Clan;

        if (DataManager.Manager <ClanManger>().ClanInfo != null)
        {
            uint clanid = 0;
            if (entity.GetEntityType() == EntityType.EntityType_NPC)
            {
                CityWarTotem cityWarTotemInfo = null;
                if (DataManager.Manager <CityWarManager>().GetCityWarTotemClanName((uint)entity.GetProp((int)Client.EntityProp.BaseID), out cityWarTotemInfo))
                {
                    clanid = cityWarTotemInfo.clanId;
                }
            }
            else if (entity.GetEntityType() == EntityType.EntityType_Player)
            {
                uint clanIdLow  = (uint)entity.GetProp((int)CreatureProp.ClanIdLow);
                uint clanIdHigh = (uint)entity.GetProp((int)CreatureProp.ClanIdHigh);
                clanid = (clanIdHigh << 16) | clanIdLow;

                //clanid = (uint)entity.GetProp((int)Client.CreatureProp.ClanId);
            }

            if (clanid == DataManager.Manager <ClanManger>().ClanInfo.Id)
            {
                nameColor = ColorType.JSXT_Clan;
            }
            else if (DataManager.Manager <ClanManger>().GetClanRivalryInfo((uint)clanid) != null)
            {
                nameColor = ColorType.JSXT_Enemy_Red;
            }
        }
        return(nameColor);
    }
    public override void SetGridData(object data)
    {
        base.SetGridData(data);

        OnAwake();

        this.m_cityWarTotem = data as CityWarTotem;
    }
Example #3
0
    /// <summary>
    /// 跟新城战信息
    /// </summary>
    /// <param name="cmd"></param>
    public void OnCityWarInfo(GameCmd.stCityWarInfoClanUserCmd_S cmd)
    {
        m_cityWarRank    = cmd.rank;
        m_lstCityWarHero = cmd.heros;

        m_lstCityWarTotem.Clear();
        for (int i = 0; i < cmd.towers.Count; i++)
        {
            CityWarTotem cityWarTotem = new CityWarTotem();

            cityWarTotem.clanId   = cmd.towers[i].clan_id;
            cityWarTotem.hp       = (uint)cmd.towers[i].hp;
            cityWarTotem.iconName = GetTotemIconName(i);

            //图腾位置
            List <uint> pointXYList = GameTableManager.Instance.GetGlobalConfigList <uint>(CONST_COTYWARTOTEMPOS_NAME, (i + 1).ToString());
            if (pointXYList != null)
            {
                if (pointXYList.Count == 2)
                {
                    cityWarTotem.pos = new UnityEngine.Vector2((float)pointXYList[0], (float)pointXYList[1]);
                }
                else
                {
                    Engine.Utility.Log.Error("全局配置表配置错误!!!!!!");
                }
            }

            //图腾NPC
            List <uint> totemNpcIdList = GameTableManager.Instance.GetGlobalConfigList <uint>(CONST_COTYWARTOTEM_NAME, (i + 1).ToString());
            if (cmd.towers[i].clan_id != 0)                                        //非中立
            {
                int clanIndex = m_lstCityWarClanId.IndexOf(cmd.towers[i].clan_id); //由第几个阵营 获得当前图腾的npc
                cityWarTotem.npcBaseId = totemNpcIdList[clanIndex];
                string clanName = clanIndex < m_lstCityWarClanName.Count ? m_lstCityWarClanName[clanIndex] : "";
                cityWarTotem.clanName = clanName;
            }
            else                                                                   //中立
            {
                cityWarTotem.npcBaseId = totemNpcIdList[totemNpcIdList.Count - 1]; //最后一个默认为中立的npc
                cityWarTotem.clanName  = string.Empty;
            }

            m_lstCityWarTotem.Add(cityWarTotem);
        }

        if (DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.CityWarPanel))
        {
            DataManager.Manager <UIPanelManager>().SendMsg(PanelID.CityWarPanel, UIMsgID.eCityWarInfoUpdate, null);
        }

        if (DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.CityWarFightingPanel))
        {
            DataManager.Manager <UIPanelManager>().SendMsg(PanelID.CityWarFightingPanel, UIMsgID.eCityWarInfoUpdate, null);
        }
    }
Example #4
0
    /// <summary>
    /// 城战基本信息 进入副本时下发一次
    /// </summary>
    /// <param name="cmd"></param>
    public void OnCityWarBaseInfo(GameCmd.stCityWarBaseInfoClanUserCmd_S cmd)
    {
        m_bEnterCityWar = true;//

        m_lstCityWarClanId      = cmd.clans_id;
        m_lstCityWarClanName    = cmd.clans_name;
        m_lstCityWarTotemBaseId = cmd.towers_base_id;
        m_lstCityWarTotemClanId = cmd.tower_clan_id;

        //图腾
        m_lstCityWarTotem = new List <CityWarTotem>();
        for (int i = 0; i < m_lstCityWarTotemBaseId.Count; i++)
        {
            CityWarTotem cityWarTotem = new CityWarTotem();
            cityWarTotem.npcBaseId = m_lstCityWarTotemBaseId[i];
            cityWarTotem.clanId    = m_lstCityWarTotemClanId[i];

            m_lstCityWarTotem.Add(cityWarTotem);

            //设置实体clanID;
            IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem();
            if (es != null)
            {
                INPC npc = es.FindNPCByBaseId((int)cityWarTotem.npcBaseId);
                if (npc != null)
                {
                    uint clanId     = cityWarTotem.clanId;
                    int  clanIdLow  = (int)(clanId & 0x0000ffff);
                    int  clanIdHigh = (int)(clanId >> 16);
                    npc.SetProp((int)Client.CreatureProp.ClanIdLow, clanIdLow);
                    npc.SetProp((int)Client.CreatureProp.ClanIdHigh, clanIdHigh);

                    //npc.SetProp((int)Client.CreatureProp.ClanId, (int)cityWarTotem.clanId);
                }
            }
        }

        //氏族名称
        for (int i = 0; i < m_lstCityWarTotem.Count; i++)
        {
            if (m_lstCityWarTotem[i].clanId == 0)
            {
                continue;
            }

            int    clanIndex = m_lstCityWarClanId.IndexOf(m_lstCityWarTotem[i].clanId);
            string clanName  = clanIndex < m_lstCityWarClanName.Count ? m_lstCityWarClanName[clanIndex] : "";
            m_lstCityWarTotem[i].clanName = clanName;
        }

        if (DataManager.Manager <UIPanelManager>().IsShowPanel(PanelID.CityWarFightingPanel))
        {
            DataManager.Manager <UIPanelManager>().SendMsg(PanelID.CityWarFightingPanel, UIMsgID.eCityWarInfoUpdate, null);
        }
    }
Example #5
0
    void DoGameEvent(int eventID, object param)
    {
        if (eventID == (int)GameEventID.ENTITYSYSTEM_CREATEENTITY)
        {
            if (m_bEnterCityWar == false)
            {
                return;
            }

            Client.stCreateEntity npcEntity = (Client.stCreateEntity)param;

            IEntitySystem es = ClientGlobal.Instance().GetEntitySystem();
            if (es == null)
            {
                return;
            }

            IEntity npc = es.FindEntity(npcEntity.uid);
            if (npc == null)
            {
                return;
            }

            int npcBaseId = npc.GetProp((int)EntityProp.BaseID);

            // 1、设置城战图腾氏族ID
            CityWarTotem cityWarTotem = m_lstCityWarTotem.Find((d) => { return(d.npcBaseId == npcBaseId); });
            if (cityWarTotem != null)
            {
                //npc.SetProp((int)Client.CreatureProp.ClanId, (int)cityWarTotem.clanId);

                uint clanId     = cityWarTotem.clanId;
                int  clanIdLow  = (int)(clanId & 0x0000ffff);
                int  clanIdHigh = (int)(clanId >> 16);
                npc.SetProp((int)Client.CreatureProp.ClanIdLow, clanIdLow);
                npc.SetProp((int)Client.CreatureProp.ClanIdHigh, clanIdHigh);
            }

            // 2、采集物
            table.NpcDataBase npctable = GameTableManager.Instance.GetTableItem <table.NpcDataBase>((uint)npcBaseId);
            if (npctable != null && npctable.dwType == (uint)GameCmd.enumNpcType.NPC_TYPE_COLLECT_PLANT)//采集物
            {
                CampNpcOnTrigger callback = new CampNpcOnTrigger();
                npc.SetCallback(callback);
            }

            // 城战打印
            //UnityEngine.Debug.LogError("------npctable.dwID = " + npcBaseId);
            //List<CityWarTotem> list = DataManager.Manager<CityWarManager>().CityWarTotemList;
            //for (int i = 0; i < list.Count; i++)
            //{
            //    UnityEngine.Debug.LogError(">>>>>>totemNpcId = " + list[i].totemNpcId + " clanId = " + list[i].clanId);
            //}
        }
    }
Example #6
0
    /// <summary>
    /// 图腾改变状态时 发客户端
    /// </summary>
    /// <param name="cmd"></param>
    public void OnCityWarTowerChange(stCityWarTowerChangeClanUserCmd_S cmd)
    {
        //图腾NPC
        List <uint> totemNpcIdList = GameTableManager.Instance.GetGlobalConfigList <uint>(CONST_COTYWARTOTEM_NAME, (cmd.tower_idx).ToString());

        if (totemNpcIdList == null)
        {
            return;
        }

        if (cmd.tower_idx - 1 > m_lstCityWarTotem.Count)
        {
            return;
        }

        CityWarTotem cityWarTotem = m_lstCityWarTotem[(int)cmd.tower_idx - 1];

        //图腾氏族ID
        cityWarTotem.clanId = cmd.clan_id;
        //图腾npc ID
        if (cmd.clan_id != 0)
        {
            int clanIndex = m_lstCityWarClanId.IndexOf(cmd.clan_id);
            cityWarTotem.npcBaseId = totemNpcIdList[clanIndex];          //图腾对应的npc
            string clanName = clanIndex < m_lstCityWarClanName.Count ? m_lstCityWarClanName[clanIndex] : "";
            cityWarTotem.clanName = clanName;
        }
        else
        {
            cityWarTotem.npcBaseId = totemNpcIdList[totemNpcIdList.Count - 1];  //最后一个默认为中立的npc
            cityWarTotem.clanName  = string.Empty;
        }

        //设置实体clanID;
        IEntitySystem es = Client.ClientGlobal.Instance().GetEntitySystem();

        if (es != null)
        {
            INPC npc = es.FindNPCByBaseId((int)cityWarTotem.npcBaseId);
            if (npc != null)
            {
                uint clanId     = cityWarTotem.clanId;
                int  clanIdLow  = (int)(clanId & 0x0000ffff);
                int  clanIdHigh = (int)(clanId >> 16);
                npc.SetProp((int)Client.CreatureProp.ClanIdLow, clanIdLow);
                npc.SetProp((int)Client.CreatureProp.ClanIdHigh, clanIdHigh);

                //npc.SetProp((int)Client.CreatureProp.ClanId, (int)cityWarTotem.clanId);
            }
        }

        EventEngine.Instance().DispatchEvent((int)GameEventID.CITYWARTOTEMCLANNAMECHANGE, cityWarTotem.npcBaseId);
    }
Example #7
0
    public static void GetRoleBarClanName(IEntity entity, Action <string, int> nameBackDlg, int getNameSeed)
    {
        if (entity == null)
        {
            Engine.Utility.Log.Error("AddClanName entity is null");
        }
        EntityType entityType = entity.GetEntityType();

        if (entityType == EntityType.EntityType_Player)
        {
            uint clanIdLow  = (uint)entity.GetProp((int)CreatureProp.ClanIdLow);
            uint clanIdHigh = (uint)entity.GetProp((int)CreatureProp.ClanIdHigh);
            uint clanId     = (clanIdHigh << 16) | clanIdLow;

            //int clanId = entity.GetProp((int)Client.CreatureProp.ClanId);
            if (clanId != 0)
            {
                DataManager.Manager <ClanManger>().GetClanName((uint)clanId, (namedata) =>
                {
                    string winerCityName = string.Empty;
                    string name          = string.Empty;
                    if (DataManager.Manager <CityWarManager>().GetWinerOfCityWarCityName((uint)clanId, out winerCityName))
                    {
                        //name = winerCityName +  namedata.ClanName ;
                        name = string.Format("{0}【{1}】", winerCityName, namedata.ClanName);
                    }
                    else
                    {
                        //name = namedata.ClanName;
                        name = string.Format("【{0}】", namedata.ClanName);
                    }
                    if (null != nameBackDlg)
                    {
                        nameBackDlg.Invoke(name, getNameSeed);
                    }
                });
            }
        }
        else if (entity.GetEntityType() == EntityType.EntityType_NPC)
        {
            CityWarTotem cityWarTotemInfo = null;
            if (DataManager.Manager <CityWarManager>().GetCityWarTotemClanName(
                    (uint)entity.GetProp((int)Client.EntityProp.BaseID), out cityWarTotemInfo))
            {
                if (null != nameBackDlg)
                {
                    nameBackDlg.Invoke(cityWarTotemInfo.clanName, getNameSeed);
                }
            }
        }
    }
Example #8
0
    /// <summary>
    /// 获取图腾氏族名称
    /// </summary>
    /// <param name="npcBaseId">图腾npcId</param>
    /// <param name="clanName"></param>
    /// <returns></returns>
    public bool GetCityWarTotemClanName(uint npcBaseId, out CityWarTotem cityWarTotemInfo)
    {
        cityWarTotemInfo = null;
        if (m_bEnterCityWar == false)
        {
            return(false);
        }

        CityWarTotem cityWarTotem = m_lstCityWarTotem.Find((data) => { return(data.npcBaseId == npcBaseId); });

        if (cityWarTotem != null)
        {
            if (cityWarTotem.clanId == 0)
            {
                return(false);
            }

            cityWarTotemInfo = cityWarTotem;

            return(true);
        }
        return(false);
    }
Example #9
0
    void RefreshClanName(Client.IEntity entity, RoleStateBar bar)
    {
        if (entity == null)
        {
            Engine.Utility.Log.Error("AddClanName entity is null");
            return;
        }
        if (bar == null)
        {
            Engine.Utility.Log.Error("AddClanName bar is null");
            return;
        }

        EntityType entityType = entity.GetEntityType();

        if (entityType == EntityType.EntityType_Player)
        {
            uint clanIdLow  = (uint)entity.GetProp((int)CreatureProp.ClanIdLow);
            uint clanIdHigh = (uint)entity.GetProp((int)CreatureProp.ClanIdHigh);
            uint clanId     = (clanIdHigh << 16) | clanIdLow;

            //int clanId = entity.GetProp((int)Client.CreatureProp.ClanId);
            if (clanId != 0)
            {
                DataManager.Manager <ClanManger>().GetClanName((uint)clanId, (namedata) =>
                {
                    string winerCityName = string.Empty;
                    string name          = string.Empty;
                    if (DataManager.Manager <CityWarManager>().GetWinerOfCityWarCityName((uint)clanId, out winerCityName))
                    {
                        //name = namedata.ClanName + winerCityName;
                        name = string.Format("{0}【{1}】", winerCityName, namedata.ClanName);
                    }
                    else
                    {
                        //name = namedata.ClanName;
                        name = string.Format("【{0}】", namedata.ClanName);
                    }

                    bool visible = m_bPlayerClanNameVisible;
                    if (entity.GetUID() == Client.ClientGlobal.Instance().MainPlayer.GetUID())
                    {
                        visible = true;
                    }
                    HeadTipData data = new HeadTipData(entity, HeadTipType.Clan, visible);
                    data.value       = name;
                    bar.UpdateWidget(data);
                });
            }
            else
            {
                bar.SetWidgetState(HeadTipType.Clan, false);
            }
        }
        else if (entity.GetEntityType() == EntityType.EntityType_NPC)
        {
            CityWarTotem cityWarTotemInfo = null;
            if (DataManager.Manager <CityWarManager>().GetCityWarTotemClanName((uint)entity.GetProp((int)Client.EntityProp.BaseID), out cityWarTotemInfo))
            {
                HeadTipData data = new HeadTipData(entity, HeadTipType.Clan, m_bPlayerClanNameVisible);
                data.value = cityWarTotemInfo.clanName;
                bar.UpdateWidget(data);
            }
            else
            {
                bar.SetWidgetState(HeadTipType.Clan, false);
            }
        }
    }