コード例 #1
0
        public override void Process(Level level)
        {
            var alliance = ObjectManager.GetAlliance(level.GetPlayerAvatar().GetAllianceId());

            if (alliance != null)
            {
                alliance.SetAllianceDescription(m_vAllianceDescription);
                alliance.SetAllianceBadgeData(m_vAllianceBadgeData);
                alliance.SetAllianceType(m_vAllianceType);
                alliance.SetRequiredScore(m_vRequiredScore);
                alliance.SetWarFrequency(m_vWarFrequency);
                alliance.SetAllianceOrigin(m_vAllianceOrigin);
                alliance.SetWarAndFriendlytStatus(m_vWarAndFriendlyStatus);

                var avatar           = level.GetPlayerAvatar();
                var allianceId       = avatar.GetAllianceId();
                var eventStreamEntry = new AllianceEventStreamEntry();
                eventStreamEntry.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                eventStreamEntry.SetSender(avatar);
                eventStreamEntry.SetEventType(10);
                eventStreamEntry.SetAvatarId(avatar.GetId());
                eventStreamEntry.SetAvatarName(avatar.GetAvatarName());
                eventStreamEntry.SetSenderId(avatar.GetId());
                eventStreamEntry.SetSenderName(avatar.GetAvatarName());
                alliance.AddChatMessage(eventStreamEntry);

                var edit = new AllianceSettingChangedCommand();
                edit.SetAlliance(alliance);
                edit.SetPlayer(level);

                var availableServerCommandMessage = new AvailableServerCommandMessage(level.GetClient());
                availableServerCommandMessage.SetCommandId(6);
                availableServerCommandMessage.SetCommand(edit);
                availableServerCommandMessage.Send();

                Parallel.ForEach(alliance.GetAllianceMembers(), op =>
                {
                    var user = ResourcesManager.GetPlayer(op.GetAvatarId());
                    if (ResourcesManager.IsPlayerOnline(user))
                    {
                        var p = new AllianceStreamEntryMessage(user.GetClient());
                        p.SetStreamEntry(eventStreamEntry);
                        p.Send();
                    }
                });

                var clan = DatabaseManager.Single().Save(alliance);
                clan.Wait();
            }
        }
コード例 #2
0
        public override async void Process(Level level)
        {
            try
            {
                Alliance alliance = await ObjectManager.GetAlliance(level.GetPlayerAvatar().GetAllianceId());

                if (alliance != null)
                {
                    if (m_vAllianceDescription.Length < 259 || m_vAllianceDescription.Length < 0)
                    {
                        if (m_vAllianceBadgeData < 1 || m_vAllianceBadgeData < 10000000000)
                        {
                            if (m_vAllianceType < 0 || m_vAllianceType < 10)
                            {
                                if (m_vRequiredScore < 0 || m_vRequiredScore < 4201)
                                {
                                    if (m_vWarFrequency < 0 || m_vWarFrequency < 10)
                                    {
                                        if (m_vAllianceOrigin < 0 || m_vAllianceOrigin < 42000000)
                                        {
                                            if (m_vWarAndFriendlyStatus < 0 || m_vWarAndFriendlyStatus < 5)
                                            {
                                                alliance.SetAllianceDescription(m_vAllianceDescription);
                                                alliance.SetAllianceBadgeData(m_vAllianceBadgeData);
                                                alliance.SetAllianceType(m_vAllianceType);
                                                alliance.SetRequiredScore(m_vRequiredScore);
                                                alliance.SetWarFrequency(m_vWarFrequency);
                                                alliance.SetAllianceOrigin(m_vAllianceOrigin);
                                                alliance.SetWarAndFriendlytStatus(m_vWarAndFriendlyStatus);

                                                ClientAvatar             avatar           = level.GetPlayerAvatar();
                                                long                     allianceId       = avatar.GetAllianceId();
                                                AllianceEventStreamEntry eventStreamEntry = new AllianceEventStreamEntry();
                                                eventStreamEntry.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                                                eventStreamEntry.SetSender(avatar);
                                                eventStreamEntry.SetEventType(10);
                                                eventStreamEntry.SetAvatarId(avatar.GetId());
                                                eventStreamEntry.SetAvatarName(avatar.GetAvatarName());
                                                eventStreamEntry.SetSenderId(avatar.GetId());
                                                eventStreamEntry.SetSenderName(avatar.GetAvatarName());
                                                alliance.AddChatMessage(eventStreamEntry);

                                                AllianceSettingChangedCommand edit = new AllianceSettingChangedCommand();
                                                edit.SetAlliance(alliance);
                                                edit.SetPlayer(level);

                                                AvailableServerCommandMessage availableServerCommandMessage = new AvailableServerCommandMessage(level.GetClient());
                                                availableServerCommandMessage.SetCommandId(6);
                                                availableServerCommandMessage.SetCommand(edit);
                                                PacketProcessor.Send(availableServerCommandMessage);

                                                foreach (AllianceMemberEntry op in alliance.GetAllianceMembers())
                                                {
                                                    Level user = await ResourcesManager.GetPlayer(op.GetAvatarId());

                                                    if (ResourcesManager.IsPlayerOnline(user))
                                                    {
                                                        AllianceStreamEntryMessage p = new AllianceStreamEntryMessage(user.GetClient());
                                                        p.SetStreamEntry(eventStreamEntry);
                                                        PacketProcessor.Send(p);
                                                    }
                                                }

                                                DatabaseManager.Single().Save(alliance);
                                            }
                                            else
                                            {
                                                ResourcesManager.DisconnectClient(Client);
                                            }
                                        }
                                        else
                                        {
                                            ResourcesManager.DisconnectClient(Client);
                                        }
                                    }
                                    else
                                    {
                                        ResourcesManager.DisconnectClient(Client);
                                    }
                                }
                                else
                                {
                                    ResourcesManager.DisconnectClient(Client);
                                }
                            }
                            else
                            {
                                ResourcesManager.DisconnectClient(Client);
                            }
                        }
                        else
                        {
                            ResourcesManager.DisconnectClient(Client);
                        }
                    }
                    else
                    {
                        ResourcesManager.DisconnectClient(Client);
                    }
                }
            } catch (Exception) { }
        }
コード例 #3
0
        internal override async void Process()
        {
            try
            {
                Alliance alliance = ObjectManager.GetAlliance(this.Device.Player.Avatar.AllianceId);
                if (alliance != null)
                {
                    if (m_vAllianceDescription.Length < 259 || m_vAllianceDescription.Length < 0)
                    {
                        alliance.m_vAllianceDescription = m_vAllianceDescription;
                        alliance.m_vAllianceBadgeData   = m_vAllianceBadgeData;
                        alliance.m_vAllianceType        = m_vAllianceType;
                        alliance.m_vRequiredScore       = m_vRequiredScore;
                        alliance.m_vWarFrequency        = m_vWarFrequency;
                        alliance.m_vAllianceOrigin      = m_vAllianceOrigin;
                        alliance.SetWarAndFriendlytStatus(m_vWarAndFriendlyStatus);

                        ClientAvatar             avatar           = this.Device.Player.Avatar;
                        long                     allianceId       = avatar.AllianceId;
                        AllianceEventStreamEntry eventStreamEntry =
                            new AllianceEventStreamEntry
                        {
                            ID =
                                (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))
                                .TotalSeconds
                        };
                        eventStreamEntry.SetSender(avatar);
                        eventStreamEntry.EventType = 10;
                        eventStreamEntry.SetSender(avatar);
                        alliance.AddChatMessage(eventStreamEntry);

                        AllianceSettingChangedCommand edit = new AllianceSettingChangedCommand(this.Device);
                        edit.SetAlliance(alliance);
                        edit.SetPlayer(this.Device.Player);

                        new AvailableServerCommandMessage(this.Device, edit.Handle()).Send();

                        foreach (AllianceMemberEntry op in alliance.GetAllianceMembers())
                        {
                            Level user = await ResourcesManager.GetPlayer(op.AvatarId);

                            if (ResourcesManager.IsPlayerOnline(user))
                            {
                                new AllianceStreamEntryMessage(user.Client)
                                {
                                    StreamEntry = eventStreamEntry
                                }.Send();
                            }
                        }

                        Resources.DatabaseManager.Save(alliance);
                    }
                    else
                    {
                        ResourcesManager.DisconnectClient(Device);
                    }
                }
                else
                {
                    ResourcesManager.DisconnectClient(Device);
                }
            }
            catch
            {
                //Exception
            }
        }
コード例 #4
0
        public override void Process(Level level)
        {
            EditClanSettingsMessage clanSettingsMessage = this;

            try
            {
                Alliance alliance = ObjectManager.GetAlliance(level.GetPlayerAvatar().GetAllianceId());
                if (alliance != null)
                {
                    if (clanSettingsMessage.m_vAllianceDescription.Length < 259 || clanSettingsMessage.m_vAllianceDescription.Length < 0)
                    {
                        if (clanSettingsMessage.m_vAllianceBadgeData < 1 || (long)clanSettingsMessage.m_vAllianceBadgeData < 10000000000L)
                        {
                            if (clanSettingsMessage.m_vAllianceType < 0 || clanSettingsMessage.m_vAllianceType < 10)
                            {
                                if (clanSettingsMessage.m_vRequiredScore < 0 || clanSettingsMessage.m_vRequiredScore < 4201)
                                {
                                    if (clanSettingsMessage.m_vWarFrequency < 0 || clanSettingsMessage.m_vWarFrequency < 10)
                                    {
                                        if (clanSettingsMessage.m_vAllianceOrigin < 0 || clanSettingsMessage.m_vAllianceOrigin < 42000000)
                                        {
                                            if ((int)clanSettingsMessage.m_vWarAndFriendlyStatus < 0 || (int)clanSettingsMessage.m_vWarAndFriendlyStatus < 5)
                                            {
                                                alliance.SetAllianceDescription(m_vAllianceDescription);
                                                alliance.SetAllianceBadgeData(m_vAllianceBadgeData);
                                                alliance.SetAllianceType(m_vAllianceType);
                                                alliance.SetRequiredScore(m_vRequiredScore);
                                                alliance.SetWarFrequency(m_vWarFrequency);
                                                alliance.SetAllianceOrigin(m_vAllianceOrigin);
                                                alliance.SetWarAndFriendlytStatus(m_vWarAndFriendlyStatus);
                                                ClientAvatar avatar = level.GetPlayerAvatar();
                                                avatar.GetAllianceId();
                                                AllianceEventStreamEntry eventStreamEntry = new AllianceEventStreamEntry();
                                                eventStreamEntry.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                                                eventStreamEntry.SetSender(avatar);
                                                eventStreamEntry.SetEventType(10);
                                                eventStreamEntry.SetAvatarId(avatar.GetId());
                                                eventStreamEntry.SetAvatarName(avatar.GetAvatarName());
                                                eventStreamEntry.SetSenderId(avatar.GetId());
                                                eventStreamEntry.SetSenderName(avatar.GetAvatarName());
                                                alliance.AddChatMessage(eventStreamEntry);
                                                AllianceSettingChangedCommand Command = new AllianceSettingChangedCommand();
                                                Command.SetAlliance(alliance);
                                                Command.SetPlayer(level);
                                                var availableServerCommandMessage = new AvailableServerCommandMessage(level.GetClient());
                                                availableServerCommandMessage.SetCommandId(6);
                                                availableServerCommandMessage.SetCommand(Command);
                                                availableServerCommandMessage.Send();
                                                foreach (AllianceMemberEntry allianceMember in alliance.GetAllianceMembers())
                                                {
                                                    Level player = ResourcesManager.GetPlayer(allianceMember.GetAvatarId(), false);
                                                    if (ResourcesManager.IsPlayerOnline(player))
                                                    {
                                                        var p = new AllianceStreamEntryMessage(player.GetClient());
                                                        AllianceEventStreamEntry eventStreamEntry1 = eventStreamEntry;
                                                        p.SetStreamEntry(eventStreamEntry1);
                                                        p.Send();
                                                    }
                                                }
                                                List <AllianceMemberEntry> .Enumerator enumerator = new List <AllianceMemberEntry> .Enumerator();

                                                DatabaseManager.Instance.Save(alliance);
                                                eventStreamEntry = (AllianceEventStreamEntry)null;
                                            }
                                            else
                                            {
                                                ResourcesManager.DisconnectClient(clanSettingsMessage.Client);
                                            }
                                        }
                                        else
                                        {
                                            ResourcesManager.DisconnectClient(clanSettingsMessage.Client);
                                        }
                                    }
                                    else
                                    {
                                        ResourcesManager.DisconnectClient(clanSettingsMessage.Client);
                                    }
                                }
                                else
                                {
                                    ResourcesManager.DisconnectClient(clanSettingsMessage.Client);
                                }
                            }
                            else
                            {
                                ResourcesManager.DisconnectClient(clanSettingsMessage.Client);
                            }
                        }
                        else
                        {
                            ResourcesManager.DisconnectClient(clanSettingsMessage.Client);
                        }
                    }
                    else
                    {
                        ResourcesManager.DisconnectClient(clanSettingsMessage.Client);
                    }
                }
                alliance = (Alliance)null;
            }
            catch (Exception ex)
            {
            }
        }