/// <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 void OnCityWarTowerChange(stCityWarTowerChangeClanUserCmd_S msg) { DataManager.Manager <CityWarManager>().OnCityWarTowerChange(msg); }