private void HandleUpdateGuildAtClient(LiteNetLibMessageHandler messageHandler) { UpdateGuildMessage message = messageHandler.ReadMessage <UpdateGuildMessage>(); if (mapNetworkManager != null) { mapNetworkManager.OnUpdateGuild(message); } }
private void HandleUpdateGuildAtServer(LiteNetLibMessageHandler messageHandler) { long connectionId = messageHandler.connectionId; UpdateGuildMessage message = messageHandler.ReadMessage <UpdateGuildMessage>(); if (mapServerConnectionIds.Contains(connectionId)) { foreach (long mapServerConnectionId in mapServerConnectionIds) { if (mapServerConnectionId != connectionId) { ServerSendPacket(mapServerConnectionId, DeliveryMethod.ReliableOrdered, MMOMessageTypes.UpdateGuild, message); } } } }
private void HandleUpdateGuild(MessageHandlerData messageHandler) { long connectionId = messageHandler.ConnectionId; UpdateGuildMessage message = messageHandler.ReadMessage <UpdateGuildMessage>(); if (MapServerPeers.ContainsKey(connectionId)) { foreach (long mapServerConnectionId in MapServerPeers.Keys) { if (mapServerConnectionId != connectionId) { SendPacket(mapServerConnectionId, 0, DeliveryMethod.ReliableOrdered, MMOMessageTypes.UpdateGuild, (writer) => writer.PutValue(message)); } } } }
public void OnUpdateGuild(UpdateGuildMessage message) { BasePlayerCharacterEntity playerCharacterEntity; GuildData guild; if (ServerGuildHandlers.TryGetGuild(message.id, out guild)) { switch (message.type) { case UpdateGuildMessage.UpdateType.ChangeLeader: guild.SetLeader(message.characterId); ServerGuildHandlers.SetGuild(message.id, guild); if (ServerUserHandlers.TryGetPlayerCharacterById(message.characterId, out playerCharacterEntity)) { playerCharacterEntity.GuildRole = guild.GetMemberRole(playerCharacterEntity.Id); } ServerGameMessageHandlers.SendSetGuildLeaderToMembers(guild); break; case UpdateGuildMessage.UpdateType.SetGuildMessage: guild.guildMessage = message.guildMessage; ServerGuildHandlers.SetGuild(message.id, guild); ServerGameMessageHandlers.SendSetGuildMessageToMembers(guild); break; case UpdateGuildMessage.UpdateType.SetGuildRole: guild.SetRole(message.guildRole, message.roleName, message.canInvite, message.canKick, message.shareExpPercentage); ServerGuildHandlers.SetGuild(message.id, guild); foreach (string memberId in guild.GetMemberIds()) { if (ServerUserHandlers.TryGetPlayerCharacterById(memberId, out playerCharacterEntity)) { playerCharacterEntity.GuildRole = guild.GetMemberRole(playerCharacterEntity.Id); } } ServerGameMessageHandlers.SendSetGuildRoleToMembers(guild, message.guildRole, message.roleName, message.canInvite, message.canKick, message.shareExpPercentage); break; case UpdateGuildMessage.UpdateType.SetGuildMemberRole: guild.SetMemberRole(message.characterId, message.guildRole); ServerGuildHandlers.SetGuild(message.id, guild); if (ServerUserHandlers.TryGetPlayerCharacterById(message.characterId, out playerCharacterEntity)) { playerCharacterEntity.GuildRole = guild.GetMemberRole(playerCharacterEntity.Id); } ServerGameMessageHandlers.SendSetGuildMemberRoleToMembers(guild, message.characterId, message.guildRole); break; case UpdateGuildMessage.UpdateType.SetSkillLevel: guild.SetSkillLevel(message.dataId, message.level); ServerGuildHandlers.SetGuild(message.id, guild); ServerGameMessageHandlers.SendSetGuildSkillLevelToMembers(guild, message.dataId); break; case UpdateGuildMessage.UpdateType.SetGold: guild.gold = message.gold; ServerGuildHandlers.SetGuild(message.id, guild); ServerGameMessageHandlers.SendSetGuildGoldToMembers(guild); break; case UpdateGuildMessage.UpdateType.LevelExpSkillPoint: guild.level = message.level; guild.exp = message.exp; guild.skillPoint = message.skillPoint; ServerGuildHandlers.SetGuild(message.id, guild); ServerGameMessageHandlers.SendSetGuildLevelExpSkillPointToMembers(guild); break; case UpdateGuildMessage.UpdateType.Terminate: foreach (string memberId in guild.GetMemberIds()) { if (ServerUserHandlers.TryGetPlayerCharacterById(memberId, out playerCharacterEntity)) { playerCharacterEntity.ClearGuild(); ServerGameMessageHandlers.SendClearGuildData(playerCharacterEntity.ConnectionId, message.id); } } ServerGuildHandlers.RemoveGuild(message.id); break; } } }
public void OnUpdateGuild(UpdateGuildMessage message) { BasePlayerCharacterEntity playerCharacterEntity; GuildData guild; if (guilds.TryGetValue(message.id, out guild)) { switch (message.type) { case UpdateGuildMessage.UpdateType.ChangeLeader: guild.SetLeader(message.characterId); guilds[message.id] = guild; if (TryGetPlayerCharacterById(message.characterId, out playerCharacterEntity)) { playerCharacterEntity.GuildRole = guild.GetMemberRole(playerCharacterEntity.Id); } SendChangeGuildLeaderToClients(guild); break; case UpdateGuildMessage.UpdateType.SetGuildMessage: guild.guildMessage = message.guildMessage; guilds[message.id] = guild; SendSetGuildMessageToClients(guild); break; case UpdateGuildMessage.UpdateType.SetGuildRole: guild.SetRole(message.guildRole, message.roleName, message.canInvite, message.canKick, message.shareExpPercentage); guilds[message.id] = guild; foreach (var memberId in guild.GetMemberIds()) { if (playerCharactersById.TryGetValue(memberId, out playerCharacterEntity)) { playerCharacterEntity.GuildRole = guild.GetMemberRole(playerCharacterEntity.Id); } } SendSetGuildRoleToClients(guild, message.guildRole, message.roleName, message.canInvite, message.canKick, message.shareExpPercentage); break; case UpdateGuildMessage.UpdateType.SetGuildMemberRole: guild.SetMemberRole(message.characterId, message.guildRole); guilds[message.id] = guild; if (TryGetPlayerCharacterById(message.characterId, out playerCharacterEntity)) { playerCharacterEntity.GuildRole = guild.GetMemberRole(playerCharacterEntity.Id); } SendSetGuildMemberRoleToClients(guild, message.characterId, message.guildRole); break; case UpdateGuildMessage.UpdateType.SetSkillLevel: guild.SetSkillLevel(message.dataId, message.level); guilds[message.id] = guild; SendSetGuildSkillLevelToClients(guild, message.dataId); break; case UpdateGuildMessage.UpdateType.LevelExpSkillPoint: guild.level = message.level; guild.exp = message.exp; guild.skillPoint = message.skillPoint; guilds[message.id] = guild; SendGuildLevelExpSkillPointToClients(guild); break; case UpdateGuildMessage.UpdateType.Terminate: foreach (var memberId in guild.GetMemberIds()) { if (playerCharactersById.TryGetValue(memberId, out playerCharacterEntity)) { playerCharacterEntity.ClearGuild(); SendGuildTerminateToClient(playerCharacterEntity.ConnectionId, message.id); } } guilds.Remove(message.id); break; } } }