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; }
/// <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); } }
/// <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); } }
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); //} } }
/// <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); }
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); } } } }
/// <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); }
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); } } }