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);
                    }
                }
            }
        }
Example #3
0
        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;
                }
            }
        }