private void OnClickGuildMemberButton(Player.GuildInfo.Member member) { selectedMember = member; ShowMemberManager(); }
public static void GuildMessageArrived() { instance.HideWaitPanel(); Player.GuildInfo.Member tempPlayerMember = Game.GetPlayer().GetGuildInfo().members.Find(x => x.id == Game.GetPlayer().GetPlayerId()); if (tempPlayerMember != null) { instance.announcementSubmitButton.gameObject.SetActive(tempPlayerMember.rank.canChangeAnnouncement); instance.announcementText.interactable = tempPlayerMember.rank.canChangeAnnouncement; instance.infoSubmitButton.gameObject.SetActive(tempPlayerMember.rank.canChangeInfo); instance.infoPanelText.interactable = tempPlayerMember.rank.canChangeInfo; instance.addMemberButton.gameObject.SetActive(tempPlayerMember.rank.canMemberInvite); instance.rankManagerButton.gameObject.SetActive(tempPlayerMember.rank.canRankCreateRemove); instance.memberRankDropdown.gameObject.SetActive(tempPlayerMember.rank.canRankCreateRemove); instance.memberRemoveButton.gameObject.SetActive(tempPlayerMember.rank.canMemberRemove); } else { instance.announcementSubmitButton.gameObject.SetActive(false); instance.announcementText.interactable = false; instance.infoSubmitButton.gameObject.SetActive(false); instance.infoPanelText.interactable = false; instance.addMemberButton.gameObject.SetActive(false); instance.rankManagerButton.gameObject.SetActive(false); instance.memberRankDropdown.gameObject.SetActive(false); instance.memberRemoveButton.gameObject.SetActive(false); } instance.guildName.text = Game.GetPlayer().GetGuildInfo().name; for (int i = 0; i < instance.guildMemberButtonList.Count; i++) { DestroyImmediate(instance.guildMemberButtonList[i].gameObject); } instance.guildMemberButtonList.Clear(); for (int i = 0; i < Game.GetPlayer().GetGuildInfo().members.Count; i++) { Player.GuildInfo.Member tempMember = Game.GetPlayer().GetGuildInfo().members[i]; Transform tempButton = Instantiate(instance.characterButtonPrefab); tempButton.SetParent(instance.characterPanelContent); tempButton.GetComponent <Button>().onClick.AddListener(() => instance.OnClickGuildMemberButton(tempMember)); tempButton.Find("Name").GetComponent <Text>().text = tempMember.name; tempButton.Find("Rank").GetComponent <Text>().text = tempMember.rank.name; tempButton.Find("Location").GetComponent <Text>().text = "Unknown"; tempButton.Find("IsOnline").GetComponent <Image>().color = tempMember.isOnline ? Color.green : Color.red; tempButton.gameObject.SetActive(true); instance.guildMemberButtonList.Add(tempButton); } for (int i = 0; i < instance.guildRanksButtonList.Count; i++) { DestroyImmediate(instance.guildRanksButtonList[i].gameObject); } instance.guildRanksButtonList.Clear(); for (int i = 0; i < Game.GetPlayer().GetGuildInfo().ranks.Count; i++) { Player.GuildInfo.Rank tempRank = Game.GetPlayer().GetGuildInfo().ranks[i]; Transform tempButton = Instantiate(instance.rankButtonPrefab); tempButton.SetParent(instance.rankContent); tempButton.GetComponent <Button>().onClick.AddListener(() => instance.OnClickRankButton(tempRank)); tempButton.GetComponentInChildren <Text>().text = tempRank.name; tempButton.gameObject.SetActive(true); instance.guildRanksButtonList.Add(tempButton); } instance.infoPanelText.text = Game.GetPlayer().GetGuildInfo().info; instance.announcementText.text = Game.GetPlayer().GetGuildInfo().announcement; }
public static void Resolve(NetworkMessage.Type messageType, NetDataReader data) { switch (messageType) { case NetworkMessage.Type.server_loginAnswer: { NetworkMessage.LoginType loginAnswer = (NetworkMessage.LoginType)data.GetByte(); if (loginAnswer == NetworkMessage.LoginType.correct) { //Game.GetPlayer().SetPlayerId(data.GetInt()); LoginScreenUI.SetCharacterSelectionWaitingCount(data.GetByte()); return; } LoginScreenUI.ShowInfo(loginAnswer.ToString()); break; } case NetworkMessage.Type.server_characterLoginInfo: { int id = data.GetInt(); string name = data.GetString(data.GetByte()); Vector3 position = new Vector3(data.GetFloat(), data.GetFloat(), data.GetFloat()); float orientation = data.GetFloat(); int modelId = data.GetByte(); int index = Database.GetDBCharacterModelList().FindIndex(x => x.id == modelId); if (index == -1) { Debug.LogError("Cannot find modelId '" + modelId + "'"); index = 0; } Entity ent = Database.CreateEntity(); ent.DisableMovement(true); ent.SetId(id); ent.name = name; ent.SetPostStartAction(() => { GameObject obj = GameObject.Find("SpawnPoint"); ent.transform.SetParent(obj.transform); ent.transform.localPosition = Vector3.zero; ent.SetOrientation(obj.transform.eulerAngles.y); ent.GetVisualModule().AssignCharacterModelToEntity(Database.GetDBCharacterModelList()[index]); LoginScreenUI.AddCharacterSelectionEntity(ent); }); break; } case NetworkMessage.Type.server_requestMapLoading: { //load some map break; } case NetworkMessage.Type.server_createEntity: { int id = data.GetInt(); string name = data.GetString(data.GetByte()); Vector3 position = new Vector3(data.GetFloat(), data.GetFloat(), data.GetFloat()); float orientation = data.GetFloat(); int modelId = data.GetByte(); Vector3 userInput = new Vector3(data.GetFloat(), data.GetFloat(), data.GetFloat()); int index = Database.GetDBCharacterModelList().FindIndex(x => x.id == modelId); if (index == -1) { Debug.LogError("Cannot find modelId '" + modelId + "'"); index = 0; } Entity ent = Database.CreateEntity(); ent.SetId(id); ent.name = name; ent.SetPostStartAction(() => { ent.SetPosition(position); ent.SetOrientation(orientation); ent.GetMovementModule().SetRequestInputs(userInput); ent.GetVisualModule().AssignCharacterModelToEntity(Database.GetDBCharacterModelList()[index]); }); break; } case NetworkMessage.Type.server_removeEntity: { int entityId = data.GetInt(); Map tempMap = Game.GetMap(); if (tempMap == null) { return; } tempMap.RemoveEntity(entityId); break; } case NetworkMessage.Type.server_setControllable: { int controllableEntityId = data.GetInt(); bool isMainEntity = data.GetBool(); Map tempMap = Game.GetMap(); if (tempMap == null) { Network.AddEntityWaitingMessage(controllableEntityId, data); return; } Entity tempEntity = tempMap.GetEntity(controllableEntityId); if (tempEntity == null) { Network.AddEntityWaitingMessage(controllableEntityId, data); return; } PlayerCamera.instance.transform.position = tempEntity.transform.position; Game.GetPlayer().ControllableEntity = tempEntity; if (isMainEntity) { Game.GetPlayer().SetPlayerId(tempEntity.GetId()); } break; } case NetworkMessage.Type.client_movementSnapshot: { int entityId = data.GetInt(); if (Game.GetMap() == null) { return; } Entity entity = Game.GetMap().GetEntity(entityId); if (entity == null) { return; } int time = data.GetInt(); Vector3 position = new Vector3(data.GetFloat(), data.GetFloat(), data.GetFloat()); float rotation = data.GetFloat(); Vector3 inputs = new Vector3(data.GetSByte(), data.GetSByte(), data.GetSByte()); EntityMovement.MovementSnapshot snapshot = new EntityMovement.MovementSnapshot(time, entityId, position, rotation, inputs); entity.GetMovementModule().AddSnapshot(snapshot); break; } case NetworkMessage.Type.server_chatMessage: { ChatUI.MessageType tempChatMessageType = (ChatUI.MessageType)data.GetByte(); int senderId = data.GetInt(); string message = data.GetString(data.GetShort()); if (Game.GetMap() == null) { return; } ChatUI.ReceiveChatMessage(Game.GetMap().GetEntity(senderId), tempChatMessageType, message); break; } case NetworkMessage.Type.server_chatChannelInfo: { bool addChatChannel = data.GetBool(); string chatChannelName = data.GetString(data.GetByte()); if (addChatChannel) { ChatUI.AddChatChannel(chatChannelName); } else { ChatUI.RemoveChatChannel(chatChannelName); } break; } case NetworkMessage.Type.server_entityTeleport: { Vector3 position = new Vector3(data.GetFloat(), data.GetFloat(), data.GetFloat()); float rotation = data.GetFloat(); Game.GetPlayer().ControllableEntity.transform.position = position; Game.GetPlayer().ControllableEntity.GetMovementModule().SetRequestRotation(rotation); break; } case NetworkMessage.Type.server_inventoryItem: { int id = data.GetShort(); int count = data.GetByte(); Game.GetPlayer().SetItem(id, count); break; } case NetworkMessage.Type.server_guildInfo: { int steps = 0; while (!data.EndOfData && steps <= 10) { Player.GuildInfo.TimeInfo type = (Player.GuildInfo.TimeInfo)data.GetByte(); switch (type) { case Player.GuildInfo.TimeInfo.info: { Game.GetPlayer().GetGuildInfo().info = data.GetString(data.GetShort()); break; } case Player.GuildInfo.TimeInfo.announcement: { Game.GetPlayer().GetGuildInfo().announcement = data.GetString(data.GetShort()); break; } case Player.GuildInfo.TimeInfo.name: { Game.GetPlayer().GetGuildInfo().name = data.GetString(data.GetByte()); break; } case Player.GuildInfo.TimeInfo.members: { Player.GuildInfo.Member[] tempMembers = new Player.GuildInfo.Member[data.GetByte()]; for (int i = 0; i < tempMembers.Length; i++) { tempMembers[i] = new Player.GuildInfo.Member(); tempMembers[i].id = data.GetInt(); tempMembers[i].name = data.GetString(data.GetByte()); } Game.GetPlayer().GetGuildInfo().members = new List <Player.GuildInfo.Member>(tempMembers); break; } case Player.GuildInfo.TimeInfo.ranks: { Player.GuildInfo.Rank[] tempRanks = new Player.GuildInfo.Rank[data.GetByte()]; for (int i = 0; i < tempRanks.Length; i++) { tempRanks[i] = new Player.GuildInfo.Rank(); tempRanks[i].id = data.GetInt(); tempRanks[i].name = data.GetString(data.GetByte()); tempRanks[i].isMain = data.GetBool(); tempRanks[i].isBasic = data.GetBool(); tempRanks[i].canMemberInvite = data.GetBool(); tempRanks[i].canMemberRemove = data.GetBool(); tempRanks[i].canRankCreateRemove = data.GetBool(); tempRanks[i].canChangeInfo = data.GetBool(); tempRanks[i].canChangeAnnouncement = data.GetBool(); } Game.GetPlayer().GetGuildInfo().ranks = new List <Player.GuildInfo.Rank>(tempRanks); break; } case Player.GuildInfo.TimeInfo.max: { int memberCount = data.GetByte(); if (memberCount != Game.GetPlayer().GetGuildInfo().members.Count) { //todo error? } for (int i = 0; i < Game.GetPlayer().GetGuildInfo().members.Count; i++) { Game.GetPlayer().GetGuildInfo().members[i].isOnline = data.GetBool(); int rankId = data.GetInt(); Game.GetPlayer().GetGuildInfo().members[i].rank = Game.GetPlayer().GetGuildInfo().ranks.Find(x => x.id == rankId); } break; } default: { Debug.LogError("thefuck?"); break; } } steps++; } if (steps >= 10) { Debug.LogError("critical error happend in guildInfo Message. Maximum steps reached!"); } GuildUI.GuildMessageArrived(); break; } case NetworkMessage.Type.server_setGuild: { int currentId = Game.GetPlayer().GetGuildInfo().id; Game.GetPlayer().GetGuildInfo().id = data.GetInt(); if (Game.GetPlayer().GetGuildInfo().id == -1) { GuildUI.ShowGuild(false); } else if (Game.GetPlayer().GetGuildInfo().id != -1 && currentId == -1 && GuildUI.IsGuildVisible()) { GuildUI.ShowGuild(false); GuildUI.ShowGuild(true); } break; } case NetworkMessage.Type.server_guildListInfo: { Player.GuildInfo[] guildList = new Player.GuildInfo[data.GetShort()]; for (int i = 0; i < guildList.Length; i++) { guildList[i] = new Player.GuildInfo(); guildList[i].id = data.GetInt(); guildList[i].name = data.GetString(data.GetShort()); guildList[i].owner = data.GetString(data.GetByte()); } GuildUI.GuildListArrived(new List <Player.GuildInfo>(guildList)); break; } } }