示例#1
0
        static bool DeleteCharAccessories(uint charId)
        {
            try
            {
                SpellRecord.DeleteAll("OwnerId = " + charId);
                AuraRecord.DeleteAll("OwnerId = " + charId);
                ItemRecord.DeleteAll("OwnerId = " + charId);
                SkillRecord.DeleteAll("OwnerId = " + charId);
                SpecProfile.DeleteAll("CharacterId = " + charId);
                ReputationRecord.DeleteAll("OwnerId = " + charId);
                QuestRecord.DeleteAll("OwnerId = " + charId);
                SummonedPetRecord.DeleteAll("OwnerLowId = " + charId);
                PermanentPetRecord.DeleteAll("OwnerLowId = " + charId);

                MailMgr.ReturnValueMailFor(charId);
                MailMessage.DeleteAll("ReceiverId = " + charId);

                RelationMgr.Instance.RemoveRelations(charId);
                InstanceMgr.RemoveLog(charId);
                GroupMgr.Instance.RemoveOfflineCharacter(charId);
                AchievementRecord.DeleteAll("CharacterId = " + charId);
                AchievementProgressRecord.DeleteAll("CharacterId = " + charId);

                return(true);
            }
            catch (Exception ex)
            {
                LogUtil.ErrorException(ex, "Failed to delete character with Id: " + charId);

                return(false);
            }
        }
示例#2
0
        public void GiveReward(Character character)
        {
            // Wrong gender
            if (character.Gender != Gender && Gender != GenderType.Neutral)
            {
                return;
            }

            if (character.FactionGroup == FactionGroup.Alliance && AllianceTitle != 0)
            {
                character.SetTitle(AllianceTitle, false);
            }
            else if (character.FactionGroup == FactionGroup.Horde && HordeTitle != 0)
            {
                character.SetTitle(HordeTitle, false);
            }

            if (Item != 0)
            {
                var mailMessage = new MailMessage(Subjects.Localize(character.Locale), Bodies.Localize(character.Locale))
                {
                    ReceiverId        = character.EntityId.Low,
                    DeliveryTime      = DateTime.Now,
                    SendTime          = DateTime.Now,
                    ExpireTime        = DateTime.Now.AddMonths(1),
                    MessageStationary = MailStationary.Normal
                };
                mailMessage.AddItem(Item);
                MailMgr.SendMail(mailMessage);
            }
        }
示例#3
0
        public void GiveReward(Character character)
        {
            if (character.Gender != this.Gender && this.Gender != GenderType.Neutral)
            {
                return;
            }
            if (character.FactionGroup == FactionGroup.Alliance && this.AllianceTitle != TitleId.None)
            {
                character.SetTitle(this.AllianceTitle, false);
            }
            else if (character.FactionGroup == FactionGroup.Horde && this.HordeTitle != TitleId.None)
            {
                character.SetTitle(this.HordeTitle, false);
            }
            if (this.Item == (Asda2ItemId)0)
            {
                return;
            }
            MailMessage letter =
                new MailMessage(this.Subjects.Localize(character.Locale), this.Bodies.Localize(character.Locale))
            {
                ReceiverId        = character.EntityId.Low,
                DeliveryTime      = DateTime.Now,
                SendTime          = DateTime.Now,
                ExpireTime        = DateTime.Now.AddMonths(1),
                MessageStationary = MailStationary.Normal
            };

            letter.AddItem(this.Item);
            MailMgr.SendMail(letter);
        }
示例#4
0
            public override void Process(CmdTrigger <RealmServerCmdArgs> trigger)
            {
                var text = trigger.Text;
                var mod  = text.NextModifiers();

                var items = new List <ItemRecord>();
                var cod   = 0u;
                var money = 0u;

                if (mod.Contains("i"))
                {
                    var itemId   = trigger.Text.NextEnum(ItemId.None);
                    var template = ItemMgr.GetTemplate(itemId);
                    if (template == null)
                    {
                        trigger.Reply("Invalid ItemId.");
                        return;
                    }
                    var item = ItemRecord.CreateRecord(template);
                    items.Add(item);
                    item.SaveLater();
                }

                if (mod.Contains("c"))
                {
                    cod = text.NextUInt();
                }

                var recipientName = trigger.Text.NextWord();

                if (recipientName.Length == 0)
                {
                    trigger.Reply("Could not send mail - Unknown Recipient: " + recipientName);
                    return;
                }
                var subject = trigger.Text.NextWord(",");
                var msg     = trigger.Text.Remainder;

                var err = MailMgr.SendMail(recipientName, subject, msg, MailStationary.GM, items, money, cod, trigger.Args.User);

                if (err == MailError.OK)
                {
                    trigger.Reply("Done.");
                }
                else
                {
                    trigger.Reply("Could not send mail: " + err);
                }
            }
示例#5
0
            public override void Process(CmdTrigger <RealmServerCmdArgs> trigger)
            {
                StringStream      text           = trigger.Text;
                string            str            = text.NextModifiers();
                List <ItemRecord> itemRecordList = new List <ItemRecord>();
                uint cod   = 0;
                uint money = 0;

                if (str.Contains("i"))
                {
                    ItemTemplate template = ItemMgr.GetTemplate(trigger.Text.NextEnum(Asda2ItemId.None));
                    if (template == null)
                    {
                        trigger.Reply("Invalid ItemId.");
                        return;
                    }

                    ItemRecord record = ItemRecord.CreateRecord(template);
                    itemRecordList.Add(record);
                    record.SaveLater();
                }

                if (str.Contains("c"))
                {
                    cod = text.NextUInt();
                }
                string recipientName = trigger.Text.NextWord();

                if (recipientName.Length == 0)
                {
                    trigger.Reply("Could not send mail - Unknown Recipient: " + recipientName);
                }
                else
                {
                    string    subject   = trigger.Text.NextWord(",");
                    string    remainder = trigger.Text.Remainder;
                    MailError mailError = MailMgr.SendMail(recipientName, subject, remainder, MailStationary.GM,
                                                           itemRecordList, money, cod, trigger.Args.User);
                    if (mailError == MailError.OK)
                    {
                        trigger.Reply("Done.");
                    }
                    else
                    {
                        trigger.Reply("Could not send mail: " + mailError);
                    }
                }
            }
示例#6
0
        private static bool DeleteCharAccessories(uint charId)
        {
            try
            {
                ActiveRecordBase <SpellRecord> .DeleteAll("OwnerId = " + (object)charId);

                ActiveRecordBase <AuraRecord> .DeleteAll("OwnerId = " + (object)charId);

                ActiveRecordBase <ItemRecord> .DeleteAll("OwnerId = " + (object)charId);

                ActiveRecordBase <SkillRecord> .DeleteAll("OwnerId = " + (object)charId);

                ActiveRecordBase <SpecProfile> .DeleteAll("CharacterId = " + (object)charId);

                ActiveRecordBase <ReputationRecord> .DeleteAll("OwnerId = " + (object)charId);

                ActiveRecordBase <QuestRecord> .DeleteAll("OwnerId = " + (object)charId);

                ActiveRecordBase <SummonedPetRecord> .DeleteAll("OwnerLowId = " + (object)charId);

                ActiveRecordBase <PermanentPetRecord> .DeleteAll("OwnerLowId = " + (object)charId);

                MailMgr.ReturnValueMailFor(charId);
                ActiveRecordBase <MailMessage> .DeleteAll("ReceiverId = " + (object)charId);

                Singleton <RelationMgr> .Instance.RemoveRelations(charId);

                InstanceMgr.RemoveLog(charId);
                Singleton <GroupMgr> .Instance.RemoveOfflineCharacter(charId);

                ActiveRecordBase <AchievementRecord> .DeleteAll("CharacterId = " + (object)charId);

                ActiveRecordBase <AchievementProgressRecord> .DeleteAll("CharacterId = " + (object)charId);

                return(true);
            }
            catch (Exception ex)
            {
                LogUtil.ErrorException(ex, "Failed to delete character with Id: " + (object)charId, new object[0]);
                return(false);
            }
        }