public override void GetPacketDataString(TextWriter text, bool flagsDescription)
 {
     text.Write("\n\tcount:{0,-2} page:{1} pages:{2} unk1:0x{3:X2}", itemCount, page, maxPages, unk1);
     if (itemCount > 0)
     {
         for (int i = 0; i < itemCount; i++)
         {
             MerchantItem item = items[i];
             text.Write("\n\tindex:{0,-2} level:{1,-2} value1:{2,-3} value2:{3,-3} hand:0x{4:X2} damageAndObjectType:0x{5:X2} canUse:{6} weigh:{7,-4} condition:{8,3} durability:{9,3} quality:{10,3} bonus:{11,2} model:0x{12:X4} color:0x{13:X4} effect:0x{14:X4} lot:0x{15:X4} price:{16,-9} name:\"{17}\"",
                        item.index,
                        item.level,
                        item.value1,
                        item.value2,
                        item.hand,
                        item.damageAndObjectType,
                        item.canUse,
                        item.weight / 10f,
                        item.condition,
                        item.durability,
                        item.quality,
                        item.bonus,
                        item.model,
                        item.color,
                        item.effect,
                        item.lot,
                        item.price,
                        item.name);
             if (flagsDescription)
             {
                 text.Write(" ({0})", (StoC_0x02_InventoryUpdate.eObjectType)(item.damageAndObjectType & 0x3F));
             }
         }
     }
 }
示例#2
0
        public bool BuyItem(int itemGuid, uint quantity)
        {
            MerchantItem merchantItem = this.Merchant.Bag.FirstOrDefault((MerchantItem x) => x.Guid == itemGuid);
            bool         result;

            if (merchantItem == null || quantity == 0u || !this.CanBuy(merchantItem, quantity))
            {
                this.Character.Client.Send(new ExchangeErrorMessage(8));
                result = false;
            }
            else
            {
                this.Merchant.Bag.RemoveItem(merchantItem, quantity, true);
                BasePlayerItem item = Singleton <ItemManager> .Instance.CreatePlayerItem(this.Character, merchantItem.Template, quantity, merchantItem.Effects);

                this.Character.Inventory.AddItem(item);
                BasicHandler.SendTextInformationMessage(this.Character.Client, TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 21, new object[]
                {
                    quantity,
                    merchantItem.Template.Id
                });
                this.Character.Inventory.SubKamas((int)(merchantItem.Price * quantity));
                BasicHandler.SendTextInformationMessage(this.Character.Client, TextInformationTypeEnum.TEXT_INFORMATION_MESSAGE, 46, new object[]
                {
                    (int)(merchantItem.Price * quantity)
                });
                this.Merchant.KamasEarned += merchantItem.Price * quantity;
                this.Character.Client.Send(new ExchangeBuyOkMessage());
                result = true;
            }
            return(result);
        }
        private void AddItem()
        {
            var search = new ItemSearchForm(_items);

            search.SelectClicked += async(o, args) =>
            {
                if (!(o is ItemTemplate item))
                {
                    return;
                }

                var slot = 0;
                if (_merchantItems != null && _merchantItems.Count(x => x.PageNumber == _page) > 0)
                {
                    slot = _merchantItems.Where(x => x.PageNumber == _page).Max(x => x.SlotPosition) + 1;
                }
                else
                {
                    _merchantItems = new List <MerchantItem>();
                }

                var merchantItem = new MerchantItem
                {
                    ItemTemplateID = item.Id_nb,
                    PageNumber     = _page,
                    SlotPosition   = slot
                };
                _merchantItems.Add(merchantItem);

                await Save();
            };

            search.ShowDialog(this);
        }
 public static void HandleExchangeObjectModifyPricedMessage(WorldClient client, ExchangeObjectModifyPricedMessage message)
 {
     if (!client.Character.IsBusy() && message.price > 0)
     {
         MerchantItem merchantItem = client.Character.MerchantBag.TryGetItem((int)message.objectUID);
         if (merchantItem != null)
         {
             merchantItem.Price = (uint)message.price;
             if ((long)message.quantity == (long)((ulong)merchantItem.Stack) || message.quantity == 0)
             {
                 InventoryHandler.SendExchangeShopStockMovementUpdatedMessage(client, merchantItem);
             }
             else
             {
                 if ((long)message.quantity < (long)((ulong)merchantItem.Stack))
                 {
                     client.Character.MerchantBag.MoveToInventory(merchantItem, (uint)((ulong)merchantItem.Stack - (ulong)((long)message.quantity)));
                 }
                 else
                 {
                     BasePlayerItem basePlayerItem = client.Character.Inventory.TryGetItem(merchantItem.Template);
                     if (basePlayerItem != null)
                     {
                         client.Character.Inventory.MoveToMerchantBag(basePlayerItem, (uint)((long)message.quantity - (long)((ulong)merchantItem.Stack)), (uint)message.price);
                     }
                 }
             }
         }
     }
 }
示例#5
0
        /// <summary>
        /// </summary>
        /// <param name="json"></param>
        /// <returns></returns>
        public object Get(string json)
        {
            var dic = json.ToObject <Dictionary <string, string> >();

            //前端传值需注意大小写 userId为必传项
            dic.TryGetValue("userId", out var userId);
            if (userId.IsNullOrEmpty())
            {
                return(null);
            }

            var userGradeList = Ioc.Resolve <IAutoConfigService>().GetList <UserGradeConfig>();
            var userRights    = Ioc.Resolve <IUserRightsService>().GetList(u => u.UserId == u.UserId.ToInt64());
            var merchantList  = new List <MerchantItem>();

            foreach (var item in userGradeList)
            {
                var userRight = userRights.FirstOrDefault(u => u.GradeId == item.Id);
                if (userRight == null)
                {
                    userRight = new UserRights();
                    userRight.TotalUseCount = 0;
                }

                var temp = new MerchantItem
                {
                    Count     = userRight.TotalUseCount,
                    GradeName = item.Name
                };
                merchantList.Add(temp);
            }

            return(merchantList);
        }
示例#6
0
 public void InitiliseSuppliers(IEnumerable <LiveSupplier> suppliers)
 {
     foreach (LiveSupplier liveSupplier in suppliers)
     {
         if (!Supliers.Any(s => s.Name.Equals(liveSupplier.Name)))
         {
             Supliers.Add(liveSupplier);
         }
         var availableItems = liveSupplier.InventoryItems();
         Database.ExtendCategories(availableItems.Select(i => i.Category));
         foreach (IInventoryItem availableItem in availableItems)
         {
             if (Database.HasItem(availableItem.Name, availableItem.Category))
             {
                 Database.ModifyStockValue(availableItem.Name, availableItem.Category, availableItem.Stock);
                 if (!Database.DoesItemHaveFailoverSupplier(availableItem.Name, availableItem.Category))
                 {
                     Database.SetFailoverSupplierForItem(availableItem.Name, availableItem.Category, new Supplier(liveSupplier.Name));
                 }
             }
             else
             {
                 MerchantItem newItem = new MerchantItem(availableItem.Name, availableItem.Category, availableItem.Stock, availableItem.Price)
                 {
                     PreferredSupplier = new Supplier(liveSupplier.Name)
                 };
                 Database.AddItem(newItem);
             }
         }
     }
 }
示例#7
0
        /// <summary>
        /// 获取商户列表
        /// </summary>
        public void GetMerchantList()
        {
            var mid         = GetInt("mid");
            var orderby     = GetInt("orderby");
            var orderbytype = GetInt("orderbytype");
            var start       = GetInt("start");
            var limit       = GetInt("limit");

            var merresult     = MerchantHelper.GetMerchantList(mid, orderby, orderbytype, start * limit, limit);
            var mertyperesult = MerchantTypeHelper.GetList();

            var data   = new List <MerchantItem>();
            var idlist = merresult.Results.Select(o => o.Id).ToList();
            var users  = AccountHelper.GetUserList(Utility.GetWhereSql(idlist));

            foreach (var merchant in merresult.Results)
            {
                var merchantitem = new MerchantItem();
                merchantitem.Id        = merchant.Id;
                merchantitem.UserCount = merchant.UserCount;
                var user = users.Results.FirstOrDefault(o => o.Id == merchant.Id);
                if (user == null)
                {
                    ReturnErrorMsg("数据出错");
                    return;
                }
                merchantitem.Money = user.Money;
                var mertype = mertyperesult.FirstOrDefault(o => o.Id == merchant.Mid);
                if (mertype == null)
                {
                    ReturnErrorMsg("数据出错");
                    return;
                }
                merchantitem.Cname      = mertype.Name;
                merchantitem.CreateTime = merchant.CreateTime;
                merchantitem.DevName    = merchant.DevName;
                merchantitem.Name       = merchant.Name;
                merchantitem.LogoUrl    = merchant.LogoUrl;

                data.Add(merchantitem);
            }
            var jt = new JsonTransfer();

            jt.Add("list", data);
            jt.Add("totalcount", merresult.TotalCount);

            Response.Write(jt.ToJson());
            Response.End();
        }
示例#8
0
        public override void GetPacketDataString(TextWriter text, bool flagsDescription)
        {
            text.Write("\n\tcount:{0,-2} windowType:{1}({4}) page:{2} unk1:{3}", itemCount, windowType, page, unk1, (eMerchantWindowType)windowType);

            for (int i = 0; i < itemCount; i++)
            {
                MerchantItem item = items[i];
                text.Write("\n\tindex:{0,-2} level:{1,-2} value1:{2,-3} value2:{3,-3} hand:0x{4:X2} damageType:0x{5:X2} objectType:0x{6:X2} canUse:{7} weight:{8,-4} price:{9,-8} model:0x{10:X4} name:\"{11}\"",
                           item.index, item.level, item.value1, item.value2, item.hand, item.damageType, item.objectType, item.canUse, item.weight, item.price, item.model, item.name);
                if (flagsDescription)
                {
                    text.Write(" ({0})", (StoC_0x02_InventoryUpdate.eObjectType)item.objectType);
                }
            }
        }
 public static void HandleExchangeObjectMoveMessage(WorldClient client, ExchangeObjectMoveMessage message)
 {
     if (client.Character.IsTrading())
     {
         client.Character.Trader.MoveItem((int)message.objectUID, message.quantity);
     }
     else
     {
         if (client.Character.IsInMerchantDialog() && message.quantity <= 0)
         {
             MerchantItem merchantItem = client.Character.MerchantBag.TryGetItem((int)message.objectUID);
             if (merchantItem != null && client.Character.MerchantBag.MoveToInventory(merchantItem))
             {
                 client.Send(new ExchangeShopStockMovementRemovedMessage(message.objectUID));
             }
         }
     }
 }
        /// <summary>
        /// Initializes the packet. All data parsing must be done here.
        /// </summary>
        public override void Init()
        {
            Position = 0;

            itemCount = (sbyte)ReadByte();
            page      = ReadByte();
            maxPages  = ReadByte();
            unk1      = ReadByte();
            if (itemCount > 0)
            {
                items = new MerchantItem[itemCount];

                for (int i = 0; i < itemCount; i++)
                {
                    MerchantItem item = new MerchantItem();

                    item.index  = ReadByte();
                    item.level  = ReadByte();
                    item.value1 = ReadByte();                     // DPS_AF
                    item.value2 = ReadByte();                     // SPD_ABS
                    item.hand   = ReadByte();
                    item.damageAndObjectType = ReadByte();        // Hand + ObjectType ?
                    item.canUse     = ReadByte();
                    item.weight     = ReadShort();
                    item.condition  = ReadByte();
                    item.durability = ReadByte();
                    item.quality    = ReadByte();
                    item.bonus      = ReadByte();
                    item.model      = ReadShort();
                    item.color      = ReadShort();
                    item.effect     = ReadShort();
                    item.lot        = ReadShort();
                    item.price      = ReadInt();
                    item.name       = ReadPascalString();               // max length = 0x2F ?

                    items[i] = item;
                }
            }
        }
示例#11
0
        /// <summary>
        /// Initializes the packet. All data parsing must be done here.
        /// </summary>
        public override void Init()
        {
            Position = 0;

            itemCount  = ReadByte();             // 0x00
            windowType = ReadByte();             // 0x01
            page       = ReadByte();             // 0x02
            unk1       = ReadByte();             // 0x03

            items = new MerchantItem[itemCount];

            for (int i = 0; i < itemCount; i++)
            {
                MerchantItem item = new MerchantItem();

                item.index  = ReadByte();
                item.level  = ReadByte();
                item.value1 = ReadByte();
                item.value2 = ReadByte();
                item.hand   = ReadByte();               // >>6 to get hand
                item.damageAndObjectType = ReadByte();
                if (windowType < (byte)eMerchantWindowType.HouseStore)
                {
                    item.damageType = (byte)(item.damageAndObjectType >> 6);
                    item.objectType = (byte)(item.damageAndObjectType & 0x3F);
                }
                else
                {
                    item.objectType = item.damageAndObjectType;
                }
                item.canUse = ReadByte();
                item.weight = ReadShort();
                item.price  = ReadInt();
                item.model  = ReadShort();
                item.name   = ReadPascalString();

                items[i] = item;
            }
        }
示例#12
0
        public void MPT_Redundancy_AddNewAggt_StringEntity()
        {
            var repo = RF.Concrete <HouseMerchantRepository>();

            using (RF.TransactionScope(repo))
            {
                var r = new HouseMerchant {
                    Name = "A1"
                };
                var c = new MerchantItem();

                r.MerchantItemList.Add(c);
                Assert.AreEqual(c.RD_MerchantName, r.Name);

                r.Id = Guid.NewGuid().ToString();
                Assert.AreEqual(c.RD_MerchantName, r.Name);

                Save(r);

                r = repo.GetById(r.Id);
                Assert.AreEqual(r.MerchantItemList[0].RD_MerchantName, r.Name);
            }
        }
示例#13
0
        public void Load()
        {
            _templates = new Dictionary <uint, NpcTemplate>();
            _goods     = new Dictionary <uint, MerchantGoods>();

            using (var connection = SQLite.CreateConnection())
            {
                _log.Info("Loading npc templates...");
                using (var command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT * from npcs";
                    command.Prepare();
                    using (var sqliteDataReader = command.ExecuteReader())
                        using (var reader = new SQLiteWrapperReader(sqliteDataReader))
                        {
                            while (reader.Read())
                            {
                                var template = new NpcTemplate();
                                template.Id                                = reader.GetUInt32("id");
                                template.Name                              = reader.GetString("name");
                                template.CharRaceId                        = reader.GetInt32("char_race_id");
                                template.NpcGradeId                        = (NpcGradeType)reader.GetByte("npc_grade_id");
                                template.NpcKindId                         = (NpcKindType)reader.GetByte("npc_kind_id");
                                template.Level                             = reader.GetByte("level");
                                template.NpcTemplateId                     = (NpcTemplateType)reader.GetByte("npc_template_id");
                                template.ModelId                           = reader.GetUInt32("model_id");
                                template.FactionId                         = reader.GetUInt32("faction_id");
                                template.SkillTrainer                      = reader.GetBoolean("skill_trainer", true);
                                template.AiFileId                          = reader.GetInt32("ai_file_id");
                                template.Merchant                          = reader.GetBoolean("merchant", true);
                                template.NpcNicknameId                     = reader.GetInt32("npc_nickname_id");
                                template.Auctioneer                        = reader.GetBoolean("auctioneer", true);
                                template.ShowNameTag                       = reader.GetBoolean("show_name_tag", true);
                                template.VisibleToCreatorOnly              = reader.GetBoolean("visible_to_creator_only", true);
                                template.NoExp                             = reader.GetBoolean("no_exp", true);
                                template.PetItemId                         = reader.GetInt32("pet_item_id", 0);
                                template.BaseSkillId                       = reader.GetInt32("base_skill_id");
                                template.TrackFriendship                   = reader.GetBoolean("track_friendship", true);
                                template.Priest                            = reader.GetBoolean("priest", true);
                                template.NpcTedencyId                      = reader.GetInt32("npc_tendency_id", 0);
                                template.Blacksmith                        = reader.GetBoolean("blacksmith", true);
                                template.Teleporter                        = reader.GetBoolean("teleporter", true);
                                template.Opacity                           = reader.GetFloat("opacity");
                                template.AbilityChanger                    = reader.GetBoolean("ability_changer", true);
                                template.Scale                             = reader.GetFloat("scale");
                                template.SightRangeScale                   = reader.GetFloat("sight_range_scale");
                                template.SightFovScale                     = reader.GetFloat("sight_fov_scale");
                                template.MilestoneId                       = reader.GetInt32("milestone_id", 0);
                                template.AttackStartRangeScale             = reader.GetFloat("attack_start_range_scale");
                                template.Aggression                        = reader.GetBoolean("aggression", true);
                                template.ExpMultiplier                     = reader.GetFloat("exp_multiplier");
                                template.ExpAdder                          = reader.GetInt32("exp_adder");
                                template.Stabler                           = reader.GetBoolean("stabler", true);
                                template.AcceptAggroLink                   = reader.GetBoolean("accept_aggro_link", true);
                                template.RecrutingBattlefieldId            = reader.GetInt32("recruiting_battle_field_id");
                                template.ReturnDistance                    = reader.GetFloat("return_distance");
                                template.NpcAiParamId                      = reader.GetInt32("npc_ai_param_id");
                                template.NonPushableByActor                = reader.GetBoolean("non_pushable_by_actor", true);
                                template.Banker                            = reader.GetBoolean("banker", true);
                                template.AggroLinkSpecialRuleId            = reader.GetInt32("aggro_link_special_rule_id");
                                template.AggroLinkHelpDist                 = reader.GetFloat("aggro_link_help_dist");
                                template.AggroLinkSightCheck               = reader.GetBoolean("aggro_link_sight_check", true);
                                template.Expedition                        = reader.GetBoolean("expedition", true);
                                template.HonorPoint                        = reader.GetInt32("honor_point");
                                template.Trader                            = reader.GetBoolean("trader", true);
                                template.AggroLinkSpecialGuard             = reader.GetBoolean("aggro_link_special_guard", true);
                                template.AggroLinkSpecialIgnoreNpcAttacker =
                                    reader.GetBoolean("aggro_link_special_ignore_npc_attacker", true);
                                template.AbsoluteReturnDistance = reader.GetFloat("absolute_return_distance");
                                template.Repairman                  = reader.GetBoolean("repairman", true);
                                template.ActivateAiAlways           = reader.GetBoolean("activate_ai_always", true);
                                template.Specialty                  = reader.GetBoolean("specialty", true);
                                template.UseRangeMod                = reader.GetBoolean("use_range_mod", true);
                                template.NpcPostureSetId            = reader.GetInt32("npc_posture_set_id");
                                template.MateEquipSlotPackId        = reader.GetInt32("mate_equip_slot_pack_id", 0);
                                template.MateKindId                 = reader.GetInt32("mate_kind_id", 0);
                                template.EngageCombatGiveQuestId    = reader.GetInt32("engage_combat_give_quest_id", 0);
                                template.NoApplyTotalCustom         = reader.GetBoolean("no_apply_total_custom", true);
                                template.BaseSkillStrafe            = reader.GetBoolean("base_skill_strafe", true);
                                template.BaseSkillDelay             = reader.GetFloat("base_skill_delay");
                                template.NpcInteractionSetId        = reader.GetInt32("npc_interaction_set_id", 0);
                                template.UseAbuserList              = reader.GetBoolean("use_abuser_list", true);
                                template.ReturnWhenEnterHousingArea =
                                    reader.GetBoolean("return_when_enter_housing_area", true);
                                template.LookConverter      = reader.GetBoolean("look_converter", true);
                                template.UseDDCMSMountSkill = reader.GetBoolean("use_ddcms_mount_skill", true);
                                template.CrowdEffect        = reader.GetBoolean("crowd_effect", true);

                                var bodyPack      = reader.GetInt32("equip_bodies_id", 0);
                                var clothPack     = reader.GetInt32("equip_cloths_id", 0);
                                var weaponPack    = reader.GetInt32("equip_weapons_id", 0);
                                var totalCustomId = reader.GetInt32("total_custom_id", 0);
                                if (clothPack > 0)
                                {
                                    using (var command2 = connection.CreateCommand())
                                    {
                                        command2.CommandText = "SELECT * FROM equip_pack_cloths WHERE id=@id";
                                        command2.Prepare();
                                        command2.Parameters.AddWithValue("id", clothPack);
                                        using (var sqliteReader2 = command2.ExecuteReader())
                                            using (var reader2 = new SQLiteWrapperReader(sqliteReader2))
                                            {
                                                while (reader2.Read())
                                                {
                                                    template.Items.Headgear         = reader2.GetUInt32("headgear_id");
                                                    template.Items.HeadgearGrade    = reader2.GetByte("headgear_grade_id");
                                                    template.Items.Necklace         = reader2.GetUInt32("necklace_id");
                                                    template.Items.NecklaceGrade    = reader2.GetByte("necklace_grade_id");
                                                    template.Items.Shirt            = reader2.GetUInt32("shirt_id");
                                                    template.Items.ShirtGrade       = reader2.GetByte("shirt_grade_id");
                                                    template.Items.Belt             = reader2.GetUInt32("belt_id");
                                                    template.Items.BeltGrade        = reader2.GetByte("belt_grade_id");
                                                    template.Items.Pants            = reader2.GetUInt32("pants_id");
                                                    template.Items.PantsGrade       = reader2.GetByte("pants_grade_id");
                                                    template.Items.Gloves           = reader2.GetUInt32("glove_id");
                                                    template.Items.GlovesGrade      = reader2.GetByte("glove_grade_id");
                                                    template.Items.Shoes            = reader2.GetUInt32("shoes_id");
                                                    template.Items.ShoesGrade       = reader2.GetByte("shoes_grade_id");
                                                    template.Items.Bracelet         = reader2.GetUInt32("bracelet_id");
                                                    template.Items.BraceletGrade    = reader2.GetByte("bracelet_grade_id");
                                                    template.Items.Back             = reader2.GetUInt32("back_id");
                                                    template.Items.BackGrade        = reader2.GetByte("back_grade_id");
                                                    template.Items.Cosplay          = reader2.GetUInt32("cosplay_id");
                                                    template.Items.CosplayGrade     = reader2.GetByte("cosplay_grade_id");
                                                    template.Items.Undershirts      = reader2.GetUInt32("undershirt_id");
                                                    template.Items.UndershirtsGrade = reader2.GetByte("undershirt_grade_id");
                                                    template.Items.Underpants       = reader2.GetUInt32("underpants_id");
                                                    template.Items.UnderpantsGrade  = reader2.GetByte("underpants_grade_id");
                                                }
                                            }
                                    }
                                }

                                if (weaponPack > 0)
                                {
                                    using (var command2 = connection.CreateCommand())
                                    {
                                        command2.CommandText = "SELECT * FROM equip_pack_weapons WHERE id=@id";
                                        command2.Prepare();
                                        command2.Parameters.AddWithValue("id", weaponPack);
                                        using (var sqliteReader2 = command2.ExecuteReader())
                                            using (var reader2 = new SQLiteWrapperReader(sqliteReader2))
                                            {
                                                while (reader2.Read())
                                                {
                                                    template.Items.Mainhand      = reader2.GetUInt32("mainhand_id");
                                                    template.Items.MainhandGrade = reader2.GetByte("mainhand_grade_id");
                                                    template.Items.Offhand       = reader2.GetUInt32("offhand_id");
                                                    template.Items.OffhandGrade  = reader2.GetByte("offhand_grade_id");
                                                    template.Items.Ranged        = reader2.GetUInt32("ranged_id");
                                                    template.Items.RangedGrade   = reader2.GetByte("ranged_grade_id");
                                                    template.Items.Musical       = reader2.GetUInt32("musical_id");
                                                    template.Items.MusicalGrade  = reader2.GetByte("musical_grade_id");
                                                }
                                            }
                                    }
                                }

                                if (totalCustomId > 0)
                                {
                                    using (var command2 = connection.CreateCommand())
                                    {
                                        command2.CommandText = "SELECT * FROM total_character_customs WHERE id=@id";
                                        command2.Prepare();
                                        command2.Parameters.AddWithValue("id", totalCustomId);
                                        using (var sqliteReader2 = command2.ExecuteReader())
                                            using (var reader2 = new SQLiteWrapperReader(sqliteReader2))
                                            {
                                                while (reader2.Read())
                                                {
                                                    template.HairId = reader2.GetUInt32("hair_id");

                                                    template.ModelParams = new UnitCustomModelParams(UnitCustomModelType.Face);
                                                    template.ModelParams
                                                    .SetHairColorId(reader2.GetUInt32("hair_color_id"))
                                                    .SetSkinColorId(reader2.GetUInt32("skin_color_id"));

                                                    template.ModelParams.Face.MovableDecalAssetId =
                                                        reader2.GetUInt32("face_movable_decal_asset_id");
                                                    template.ModelParams.Face.MovableDecalScale =
                                                        reader2.GetFloat("face_movable_decal_scale");
                                                    template.ModelParams.Face.MovableDecalRotate =
                                                        reader2.GetFloat("face_movable_decal_rotate");
                                                    template.ModelParams.Face.MovableDecalMoveX =
                                                        reader2.GetInt16("face_movable_decal_move_x");
                                                    template.ModelParams.Face.MovableDecalMoveY =
                                                        reader2.GetInt16("face_movable_decal_move_y");

                                                    template.ModelParams.Face.SetFixedDecalAsset(0,
                                                                                                 reader2.GetUInt32("face_fixed_decal_asset_0_id"),
                                                                                                 reader2.GetFloat("face_fixed_decal_asset_0_weight"));
                                                    template.ModelParams.Face.SetFixedDecalAsset(1,
                                                                                                 reader2.GetUInt32("face_fixed_decal_asset_1_id"),
                                                                                                 reader2.GetFloat("face_fixed_decal_asset_1_weight"));
                                                    template.ModelParams.Face.SetFixedDecalAsset(2,
                                                                                                 reader2.GetUInt32("face_fixed_decal_asset_2_id"),
                                                                                                 reader2.GetFloat("face_fixed_decal_asset_2_weight"));
                                                    template.ModelParams.Face.SetFixedDecalAsset(3,
                                                                                                 reader2.GetUInt32("face_fixed_decal_asset_3_id"),
                                                                                                 reader2.GetFloat("face_fixed_decal_asset_3_weight"));

                                                    template.ModelParams.Face.DiffuseMapId =
                                                        reader2.GetUInt32("face_diffuse_map_id");
                                                    template.ModelParams.Face.NormalMapId =
                                                        reader2.GetUInt32("face_normal_map_id");
                                                    template.ModelParams.Face.EyelashMapId =
                                                        reader2.GetUInt32("face_eyelash_map_id");
                                                    template.ModelParams.Face.LipColor       = reader2.GetUInt32("lip_color");
                                                    template.ModelParams.Face.LeftPupilColor =
                                                        reader2.GetUInt32("left_pupil_color");
                                                    template.ModelParams.Face.RightPupilColor =
                                                        reader2.GetUInt32("right_pupil_color");
                                                    template.ModelParams.Face.EyebrowColor = reader2.GetUInt32("eyebrow_color");
                                                    reader2.GetBytes("modifier", 0, template.ModelParams.Face.Modifier, 0, 128);
                                                    template.ModelParams.Face.MovableDecalWeight =
                                                        reader2.GetFloat("face_movable_decal_weight");
                                                    template.ModelParams.Face.NormalMapWeight =
                                                        reader2.GetFloat("face_normal_map_weight");
                                                    template.ModelParams.Face.DecoColor = reader2.GetUInt32("deco_color");
                                                }
                                            }
                                    }
                                }
                                else
                                {
                                    template.ModelParams = new UnitCustomModelParams(UnitCustomModelType.Skin);
                                }

                                if (template.NpcPostureSetId > 0)
                                {
                                    using (var command2 = connection.CreateCommand())
                                    {
                                        command2.CommandText = "SELECT * FROM npc_postures WHERE npc_posture_set_id=@id";
                                        command2.Prepare();
                                        command2.Parameters.AddWithValue("id", template.NpcPostureSetId);
                                        using (var sqliteReader2 = command2.ExecuteReader())
                                            using (var reader2 = new SQLiteWrapperReader(sqliteReader2))
                                            {
                                                if (reader2.Read())
                                                {
                                                    template.AnimActionId = reader2.GetUInt32("anim_action_id");
                                                }
                                            }
                                    }
                                }

                                using (var command2 = connection.CreateCommand())
                                {
                                    command2.CommandText = "SELECT * FROM item_body_parts WHERE model_id = @model_id";
                                    command2.Prepare();
                                    command2.Parameters.AddWithValue("model_id", template.ModelId);
                                    using (var sqliteReader2 = command2.ExecuteReader())
                                        using (var reader2 = new SQLiteWrapperReader(sqliteReader2))
                                        {
                                            while (reader2.Read())
                                            {
                                                var itemId = reader2.GetUInt32("item_id", 0);
                                                var slot   = reader2.GetInt32("slot_type_id") - 23;
                                                template.BodyItems[slot] = itemId;
                                            }
                                        }
                                }

                                if (template.CharRaceId > 0)
                                {
                                    using (var command2 = connection.CreateCommand())
                                    {
                                        command2.CommandText =
                                            "SELECT char_race_id, char_gender_id FROM characters WHERE model_id = @model_id";
                                        command2.Prepare();
                                        command2.Parameters.AddWithValue("model_id", template.ModelId);
                                        using (var sqliteReader2 = command2.ExecuteReader())
                                            using (var reader2 = new SQLiteWrapperReader(sqliteReader2))
                                            {
                                                if (reader2.Read())
                                                {
                                                    template.Race   = reader2.GetByte("char_race_id");
                                                    template.Gender = reader2.GetByte("char_gender_id");
                                                }
                                            }
                                    }
                                }

                                _templates.Add(template.Id, template);
                            }
                        }
                }

                using (var command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT * FROM unit_modifiers WHERE owner_type='Npc'";
                    command.Prepare();
                    using (var sqliteDataReader = command.ExecuteReader())
                        using (var reader = new SQLiteWrapperReader(sqliteDataReader))
                        {
                            while (reader.Read())
                            {
                                var npcId = reader.GetUInt32("owner_id");
                                if (!_templates.ContainsKey(npcId))
                                {
                                    continue;
                                }
                                var npc      = _templates[npcId];
                                var template = new BonusTemplate();
                                template.Attribute        = (UnitAttribute)reader.GetByte("unit_attribute_id");
                                template.ModifierType     = (UnitModifierType)reader.GetByte("unit_modifier_type_id");
                                template.Value            = reader.GetInt32("value");
                                template.LinearLevelBonus = reader.GetInt32("linear_level_bonus");
                                npc.Bonuses.Add(template);
                            }
                        }
                }

                using (var command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT * FROM npc_initial_buffs";
                    command.Prepare();
                    using (var reader = new SQLiteWrapperReader(command.ExecuteReader()))
                    {
                        while (reader.Read())
                        {
                            var id     = reader.GetUInt32("npc_id");
                            var buffId = reader.GetUInt32("buff_id");
                            if (!_templates.ContainsKey(id))
                            {
                                continue;
                            }
                            var template = _templates[id];
                            template.Buffs.Add(buffId);
                        }
                    }
                }

                using (var command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT * FROM merchants";
                    command.Prepare();
                    using (var reader = new SQLiteWrapperReader(command.ExecuteReader()))
                    {
                        while (reader.Read())
                        {
                            var id = reader.GetUInt32("npc_id");
                            if (!_templates.ContainsKey(id))
                            {
                                continue;
                            }
                            var template = _templates[id];
                            template.MerchantPackId = reader.GetUInt32("merchant_pack_id");
                        }
                    }
                }

                _log.Info("Loaded {0} npc templates", _templates.Count);
                _log.Info("Loading merchant packs...");
                using (var command = connection.CreateCommand())
                {
                    command.CommandText = "SELECT * FROM merchant_goods";
                    command.Prepare();
                    using (var reader = new SQLiteWrapperReader(command.ExecuteReader()))
                    {
                        while (reader.Read())
                        {
                            var id       = reader.GetUInt32("merchant_pack_id");
                            var template = new MerchantItem();
                            template.Id    = reader.GetUInt32("item_id");
                            template.Grade = reader.GetByte("grade_id");
                            if (!_goods.ContainsKey(id))
                            {
                                _goods.Add(id, new MerchantGoods(id));
                            }
                            _goods[id].Items.Add(template.Id, template);
                        }
                    }
                }

                _log.Info("Loaded {0} merchant packs", _goods.Count);
            }
        }
示例#14
0
 public bool CanBuy(MerchantItem item, int amount) => Character.Inventory.Kamas >= item.Price * amount || !Merchant.CanBeSee(Character);
示例#15
0
 public static void OnServerStartup(DOLEvent e, object sender, EventArgs args)
 {
     ItemTemplate[] buffMerch = (ItemTemplate[])GameServer.Database.SelectObjects<ItemTemplate>("PackageID like '" + GameServer.Database.Escape("BPBuffTokens") + "' ORDER by Item_Type");
     MerchantItem m_item = null;
     int pagenumber = 0;
     int slotposition = 0;
     m_item = (MerchantItem)GameServer.Database.SelectObject<MerchantItem>("ItemListID='BPBuffTokens'");
     if (m_item == null)
     {
         foreach (ItemTemplate item in buffMerch)
         {
             m_item = new MerchantItem();
             m_item.ItemListID = "BPBuffTokens";
             m_item.ItemTemplateID = item.Id_nb;
             m_item.PageNumber = pagenumber;
             m_item.SlotPosition = slotposition;
             m_item.AllowAdd = true;
             GameServer.Database.AddObject(m_item);
             if (slotposition == 29)
             {
                 slotposition = 0;
                 pagenumber += 1;
             }
             else
             {
                 slotposition += 1;
             }
         }
     }
 }
        /// <summary>
        /// Initializes the packet. All data parsing must be done here.
        /// </summary>
        public override void Init()
        {
            Position = 0;

            itemCount = (sbyte)ReadByte();
            page = ReadByte();
            maxPages = ReadByte();
            unk1 = ReadByte();
            if (itemCount > 0)
            {
                items = new MerchantItem[itemCount];

                for (int i = 0; i < itemCount; i++)
                {
                    MerchantItem item = new MerchantItem();

                    item.index = ReadByte();
                    item.level = ReadByte();
                    item.value1 = ReadByte(); // DPS_AF
                    item.value2 = ReadByte(); // SPD_ABS
                    item.hand = ReadByte();
                    item.damageAndObjectType = ReadByte(); // Hand + ObjectType ?
                    item.canUse = ReadByte();
                    item.weight = ReadShort();
                    item.condition = ReadByte();
                    item.durability = ReadByte();
                    item.quality = ReadByte();
                    item.bonus = ReadByte();
                    item.model = ReadShort();
                    item.color = ReadShort();
                    item.effect = ReadShort();
                    item.lot = ReadShort();
                    item.price = ReadInt();
                    item.name = ReadPascalString(); // max length = 0x2F ?

                    items[i] = item;
                }
            }
        }
示例#17
0
 public MItem(MerchantItem item)
 {
     Index  = item.Index + 1;
     Name   = item.Name.ToLower();
     ItemId = item.ItemId;
 }
示例#18
0
 public void Add(MerchantItem entity)
 {
     base.Add(entity);
 }
 public static void SendExchangeShopStockMovementUpdatedMessage(IPacketReceiver client, MerchantItem item)
 {
     client.Send(new ExchangeShopStockMovementUpdatedMessage(item.GetObjectItemToSell()));
 }
示例#20
0
        public static void OnServerStartup(DOLEvent e, object sender, EventArgs args)
        {
            ItemTemplate item = null;

            // Albion Weapons

            #region benthic_glaive

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_glaive");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_glaive";
                item.Name = "Benthic Glaive";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 52;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.PolearmWeapon;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1936;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_glaive

            #region benthic_rapier

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_rapier");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_rapier";
                item.Name = "Benthic Rapier";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 39;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.ThrustWeapon;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 18;
                item.Model = 1960;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_rapier

            #region benthic_falchion

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_falchion");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_falchion";
                item.Name = "Benthic Falchion";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 40;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.SlashingWeapon;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 19;
                item.Model = 1948;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_falchion

            #region benthic_long_bow

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_long_bow");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_long_bow";
                item.Name = "Benthic Long Bow";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 52;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Longbow;
                item.Item_Type = (int)eInventorySlot.DistanceWeapon;
                item.Weight = 10;
                item.Model = 1912;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllArcherySkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_long_bow

            #region benthic_stiletto

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_stiletto");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_stiletto";
                item.Name = "Benthic Stiletto";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 33;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.ThrustWeapon;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 1956;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_stiletto

            #region benthic_war_pick

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_war_pick");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_war_pick";
                item.Name = "Benthic War Pick";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 53;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.TwoHandedWeapon;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1900;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_war_pick

            #region benthic_pick_flail

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_pick_flail");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_pick_flail";
                item.Name = "Benthic Pick Flail";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 36;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Flexible;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 1928;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_pick_flail

            #region benthic_coffin_mace

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_coffin_mace");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_coffin_mace";
                item.Name = "Benthic Coffin Mace";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 34;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.CrushingWeapon;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 1920;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_coffin_mace

            #region benthic_great_sword

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_great_sword");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_great_sword";
                item.Name = "Benthic Great Sword";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 51;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.TwoHandedWeapon;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1904;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_great_sword

            #region benthic_magus_staff

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_magus_staff");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_magus_staff";
                item.Name = "Benthic Magus Staff";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 30;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Staff;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 40;
                item.Model = 1968;
                item.Bonus1 = 30;
                item.Bonus2 = 10;
                item.Bonus3 = 10;
                item.Bonus4 = 50;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.AllFocusLevels;
                item.Bonus5Type = (int)eProperty.AllMagicSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.Charges = 10;
                item.MaxCharges = 10;
                item.SpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_magus_staff

            #region benthic_bishops_mace

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_bishops_mace");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_bishops_mace";
                item.Name = "Benthic Bishops Mace";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 38;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.CrushingWeapon;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 1916;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_bishops_mace

            #region benthic_great_hammer

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_great_hammer");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_great_hammer";
                item.Name = "Benthic Great Hammer";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 55;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.TwoHandedWeapon;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1896;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_great_hammer

            #region benthic_quarterstaff

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_quarterstaff");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_quarterstaff";
                item.Name = "Benthic Quarterstaff";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 42;
                item.Hand = 1;
                item.Type_Damage = (int)eDamageType.Crush;
                item.Object_Type = (int)eObjectType.Staff;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1952;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_quarterstaff

            #region benthic_spiked_flail

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_spiked_flail");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_spiked_flail";
                item.Name = "Benthic Spiked Flail";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 39;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Flexible;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 30;
                item.Model = 1924;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_spiked_flail

            #region benthic_military_fork

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_military_fork");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_military_fork";
                item.Name = "Benthic Military Fork";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 57;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.PolearmWeapon;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1932;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_military_fork

            #region benthic_lucerne_hammer

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_lucerne_hammer");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_lucerne_hammer";
                item.Name = "Benthic Lucerne Hammer";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 56;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.PolearmWeapon;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1940;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Albion;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_lucerne_hammer

            // Midgard Weapons

            #region benthic_war_axe

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_war_axe");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_war_axe";
                item.Name = "Benthic War Axe";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 26;
                item.Hand = 2;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Axe;
                item.Item_Type = (int)eInventorySlot.LeftHandWeapon;
                item.Weight = 10;
                item.Model = 2032;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;
                item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_war_axe

            #region benthic_battleaxe

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_battleaxe");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_battleaxe";
                item.Name = "Benthic Battleaxe";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 55;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Axe;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 2052;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_battleaxe

            #region benthic_moon_claw

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_moon_claw");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_moon_claw";
                item.Name = "Benthic Moon Claw";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 38;
                item.Hand = 2;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.HandToHand;
                item.Item_Type = (int)eInventorySlot.LeftHandWeapon;
                item.Weight = 10;
                item.Model = 2024;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_moon_claw

            #region benthic_great_club

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_great_club");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_great_club";
                item.Name = "Benthic Great Club";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 54;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Hammer;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 2056;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_great_club

            #region benthic_war_hammer

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_war_hammer");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_war_hammer";
                item.Name = "Benthic War Hammer";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 36;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Hammer;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 2044;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_war_hammer

            #region benthic_fang_greave

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_fang_greave");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_fang_greave";
                item.Name = "Benthic Fang Greave";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 40;
                item.Hand = 2;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.HandToHand;
                item.Item_Type = (int)eInventorySlot.LeftHandWeapon;
                item.Weight = 10;
                item.Model = 2028;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_fang_greave

            #region benthic_long_sword2

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_long_sword2");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_long_sword2";
                item.Name = "Benthic Long Sword";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 40;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Sword;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 2036;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_long_sword2

            #region benthic_great_sword3

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_great_sword3");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_great_sword3";
                item.Name = "Benthic Great Sword";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 53;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Sword;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 2060;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_great_sword3

            #region benthic_hooked_spear

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_hooked_spear");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_hooked_spear";
                item.Name = "Benthic Hooked Spear";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 51;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Spear;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 2048;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_hooked_spear

            #region benthic_magus_staff2

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_magus_staff2");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_magus_staff2";
                item.Name = "Benthic Magus Staff";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 45;
                item.Hand = 3;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Staff;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1968;
                item.Bonus = 35;
                item.Bonus1 = 30;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 50;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.AllFocusLevels;
                item.Bonus5Type = (int)eProperty.AllMagicSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_magus_staff2

            #region benthic_magus_staff3

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_magus_staff3");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_magus_staff3";
                item.Name = "Benthic Magus Staff";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 30;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Staff;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 40;
                item.Model = 2068;
                item.Bonus1 = 30;
                item.Bonus2 = 10;
                item.Bonus3 = 10;
                item.Bonus4 = 50;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.AllFocusLevels;
                item.Bonus5Type = (int)eProperty.AllMagicSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.Charges = 10;
                item.MaxCharges = 10;
                item.SpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_magus_staff3

            #region benthic_battle_hammer

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_battle_hammer");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_battle_hammer";
                item.Name = "Benthic Battle Hammer";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 33;
                item.Hand = 2;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Hammer;
                item.Item_Type = (int)eInventorySlot.LeftHandWeapon;
                item.Weight = 10;
                item.Model = 2044;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_battle_hammer

            #region benthic_composite_bow

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_composite_bow");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_composite_bow";
                item.Name = "Benthic Composite Bow";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 45;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.CompositeBow;
                item.Item_Type = (int)eInventorySlot.DistanceWeapon;
                item.Weight = 10;
                item.Model = 2064;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllArcherySkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_composite_bow

            #region benthic_double_bladed_axe

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_double_bladed_axe");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_double_bladed_axe";
                item.Name = "Benthic Double Bladed Axe";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 37;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Axe;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 2040;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Midgard;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_double_bladed_axe

            // Hibernia Weapons

            #region benthic_adze

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_adze");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_adze";
                item.Name = "Benthic Adze";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 33;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Piercing;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 2012;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_adze

            #region benthic_hammer

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_hammer");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_hammer";
                item.Name = "Benthic Hammer";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 34;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Blunt;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 1992;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_hammer

            #region benthic_war_adze

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_war_adze");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_war_adze";
                item.Name = "Benthic War Adze";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 39;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Piercing;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 24;
                item.Model = 2016;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_war_adze

            #region benthic_long_sword

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_long_sword");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_long_sword";
                item.Name = "Benthic Long Sword";
                item.Level = 51;
                item.Durability = 500000;
                item.MaxDurability = 500000;
                item.Condition = 500000;
                item.MaxCondition = 500000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 37;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Blades;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Color = 45;
                item.Weight = 10;
                item.Model = 1972;
                item.Bonus = 35;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_long_sword

            #region benthic_war_scythe

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_war_scythe");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_war_scythe";
                item.Name = "Benthic War Scythe";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 55;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Scythe;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 2004;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_war_scythe

            #region benthic_battle_adze

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_battle_adze");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_battle_adze";
                item.Name = "Benthic Battle Adze";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 33;
                item.Hand = 2;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Piercing;
                item.Item_Type = (int)eInventorySlot.LeftHandWeapon;
                item.Weight = 24;
                item.Model = 2016;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_battle_adze

            #region benthic_dire_hammer

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_dire_hammer");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_dire_hammer";
                item.Name = "Benthic Dire Hammer";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 42;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Blunt;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 1988;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_dire_hammer

            #region benthic_recurve_bow

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_recurve_bow");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_recurve_bow";
                item.Name = "Benthic Recurve Bow";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 52;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.RecurvedBow;
                item.Item_Type = (int)eInventorySlot.DistanceWeapon;
                item.Weight = 10;
                item.Model = 1996;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Dexterity;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllArcherySkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_recurve_bow

            #region benthic_short_sword

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_short_sword");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_short_sword";
                item.Name = "Benthic Short Sword";
                item.Level = 51;
                item.Durability = 500000;
                item.MaxDurability = 500000;
                item.Condition = 500000;
                item.MaxCondition = 500000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 33;
                item.Hand = 2;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Blades;
                item.Item_Type = (int)eInventorySlot.LeftHandWeapon;
                item.Color = 45;
                item.Weight = 10;
                item.Model = 1944;
                item.Bonus = 35;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_short_sword

            #region benthic_battle_spear

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_battle_spear");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_battle_spear";
                item.Name = "Benthic Battle Spear";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 56;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Spear;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 2008;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_battle_spear

            #region benthic_great_sword2

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_great_sword2");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_great_sword2";
                item.Name = "Benthic Great Sword";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 55;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.LargeWeapons;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1984;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_great_sword2

            #region benthic_short_sword2

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_short_sword2");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_short_sword2";
                item.Name = "Benthic Short Sword";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 32;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.Blades;
                item.Item_Type = (int)eInventorySlot.RightHandWeapon;
                item.Weight = 10;
                item.Model = 1976;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_short_sword2

            #region benthic_great_hammer2

            item = (ItemTemplate)GameServer.Database.FindObjectByKey<ItemTemplate>("benthic_great_hammer2");
            if (item == null)
            {
                item = new ItemTemplate();
                item.Id_nb = "benthic_great_hammer2";
                item.Name = "Benthic Great Hammer";
                item.Level = 51;
                item.Durability = 100;
                item.MaxDurability = 100;
                item.Condition = 50000;
                item.MaxCondition = 50000;
                item.Quality = 100;
                item.DPS_AF = 165;
                item.SPD_ABS = 51;
                item.Hand = 1;
                item.Type_Damage = 11;
                item.Object_Type = (int)eObjectType.LargeWeapons;
                item.Item_Type = (int)eInventorySlot.TwoHandWeapon;
                item.Weight = 10;
                item.Model = 1980;
                item.Bonus1 = 28;
                item.Bonus2 = 8;
                item.Bonus3 = 8;
                item.Bonus4 = 10;
                item.Bonus5 = 2;
                item.Bonus1Type = (int)eProperty.Strength;
                item.Bonus2Type = (int)eProperty.Resist_Heat;
                item.Bonus3Type = (int)eProperty.Resist_Cold;
                item.Bonus4Type = (int)eProperty.ArmorFactor;
                item.Bonus5Type = (int)eProperty.AllMeleeWeaponSkills;
                item.IsPickable = true;
                item.IsDropable = true;item.IsTradable = true;
                item.Price = 5000;
                item.MaxCount = 1;
                item.PackSize = 1;
                item.ProcSpellID = 32050;
                item.Realm = (int)eRealm.Hibernia;

                GameServer.Database.AddObject(item);
                if (log.IsDebugEnabled)
                    log.Debug("Added " + item.Id_nb);
            }
            item = null;

            #endregion benthic_great_hammer2

            MerchantItem m_item = null;
            m_item = (MerchantItem)GameServer.Database.SelectObject<MerchantItem>("ItemListID='LegendaryColdWeapons'");
            if (m_item == null)
            {
                #region Merchant Items

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_rapier";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_falchion";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_stiletto";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_pick_flail";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_coffin_mace";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_bishops_mace";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_spiked_flail";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_glaive";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_war_pick";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_great_sword";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 9;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_magus_staff";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_great_hammer";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_quarterstaff";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_military_fork";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 13;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_lucerne_hammer";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 14;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_long_bow";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 15;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_war_hammer";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_long_sword2";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_double_bladed_axe";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_war_axe";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_moon_claw";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_fang_greave";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_battle_hammer";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_battleaxe";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_great_club";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_great_sword3";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 9;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_hooked_spear";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_magus_staff2";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_magus_staff3";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_composite_bow";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 13;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_adze";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_hammer";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_war_adze";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_long_sword";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_dire_hammer";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_short_sword2";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_battle_adze";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_short_sword";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_war_scythe";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_battle_spear";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 9;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_great_sword2";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_great_hammer2";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                m_item = new MerchantItem();
                m_item.ItemListID = "LegendaryColdWeapons";
                m_item.ItemTemplateID = "benthic_recurve_bow";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);
                item = null;

                #endregion Merchant Items
            }
            item = null;
        }
示例#21
0
            public static void OnServerStartup(DOLEvent e, object sender, EventArgs args)
            {
                MerchantItem m_item = null;
                m_item = (MerchantItem)GameServer.Database.SelectObject<MerchantItem> ("ItemListID='AlbLabWeaps'");
                if (m_item == null)
                {
                #region Merchant Items

                #region Page 1 Alb
                // main hand weapons

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Foremans_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Ifocezases_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Indignation_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Indy_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Outrage_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Reformation_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Revenge_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Swines_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Technomancer_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                // Lefthand weapons

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Aegbarol_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Anger_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Crusher_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Danger_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 13;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Saztsohs_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 14;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Moment_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 15;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Torture_Lab_Alb";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 16;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                // Shields

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Buckler_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 18;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Buckler_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 19;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 21;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Infused_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 22;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Infused_Guard_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 23;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Protector_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 25;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Infused_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 26;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                #endregion Page 1 alb

                #region Page 2 Alb

                // 2 Handed

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Anguish_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Aolmos_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Dark_Guard_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "War_Spear_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Domos_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Fear_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Hate_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Iapetuss_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Kulgahs_Rod_Lab";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Martello_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 9;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Mnevis_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Murder_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Smash_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Spite_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 13;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Technomancer_Pick_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 13;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                #endregion page 2 alb

                #region Page 3 Alb

                // Bows
                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Eouss_Crossbow_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Eouss_Short_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Eous's Long Bow";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Perfected_Lab_Alb";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Remorseless_Lab_Alb";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                // Harp

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Uruo_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                // Staffs

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Disenchanted_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Nok_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Noks_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Punisher_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 13;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Succor_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 14;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "AlbLabWeaps";
                m_item.ItemTemplateID = "Pelgars_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 15;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                #endregion Page 3 Alb

                #endregion Merchant Items
                }
            }
示例#22
0
            public static void OnServerStartup(DOLEvent e, object sender, EventArgs args)
            {
                MerchantItem m_item = null;
                m_item = (MerchantItem)GameServer.Database.SelectObject<MerchantItem>( "ItemListID='HibLabWeaps'");
                if (m_item == null)
                {

                #region Hibernia Merchant Items

                // Main Hand, Lefthand, Shields
                #region Page 1 Hib

                // Main hand weapons
                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Anguish_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Crusher_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Foremans_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Mnevis_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Technomancer_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                // Weapons that can be used in left hand
                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Aegbarol_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Anger_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Danger_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Fear_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 9;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Saztsohs_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Smash_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Moment_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Torture_Lab_Hib";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 13;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                // Shields

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Buckler_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 15;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Buckler_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 16;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 18;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Infused_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 19;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Infused_Guard_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 20;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Protector_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 22;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Infused_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 23;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                #endregion Page 1 Hib

                // 2 Handed Weapons
                #region Page 2 Hib

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Aolmos_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Dark_Guard_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "War_Spear_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Domos_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Hatred_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Iapetuss_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Kulgahs_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Martello_Lab_Alb";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Murder_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Outrage_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 9;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Smash_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Spite_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Technomancer_Scythe_Lab_Hib";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                #endregion Page 2 Hib

                // Staffs / Bows / Harp
                #region Page 3 Hib

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Eouss_Recurved_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Perfected_Lab_Hib";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Remorseless_Lab_Hib";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Pelgars_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "HibLabWeaps";
                m_item.ItemTemplateID = "Uruo_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                #endregion Page 3 Hib

                #endregion Hibernia Merchant Items

                }
            }
示例#23
0
 void ShowPurchaseWindow(MerchantItem mItem)
 {
     confirmBoxRect = new Rect((Screen.width - 200) / 2, (Screen.height - 75) / 2, 150, 100);
     mState = MerchantState.Purchase;
     selectedItem = mItem;
     AtavismUiSystem.AddFrame("MerchantDialog", uiRect);
 }
示例#24
0
	public static void OnServerStartup(DOLEvent e, object sender, EventArgs args)
	{
		ItemTemplate[] buffMerch = GameServer.Database.SelectObjects<ItemTemplate>("`PackageID` LIKE @PackageID", new QueryParameter("@PackageID", "BPBuffTokens")).OrderBy(it => it.Item_Type).ToArray();
		MerchantItem m_item = null;
		int pagenumber = 0;
		int slotposition = 0;
		m_item = GameServer.Database.SelectObjects<MerchantItem>("`ItemListID` = @ItemListID", new QueryParameter("@ItemListID", "BPBuffTokens")).FirstOrDefault();
		if (m_item == null)
		{
			foreach (ItemTemplate item in buffMerch)
			{
				m_item = new MerchantItem();
				m_item.ItemListID = "BPBuffTokens";
				m_item.ItemTemplateID = item.Id_nb;
				m_item.PageNumber = pagenumber;
				m_item.SlotPosition = slotposition;
				m_item.AllowAdd = true;
				GameServer.Database.AddObject(m_item);
				if (slotposition == 29)
				{
					slotposition = 0;
					pagenumber += 1;
				}
				else
				{
					slotposition += 1;
				}
			}
		}
	}
示例#25
0
 public int IndexOf(MerchantItem entity)
 {
     return base.IndexOf(entity);
 }
示例#26
0
 public bool Remove(MerchantItem entity)
 {
     return base.Remove(entity);
 }
示例#27
0
 public bool Contains(MerchantItem entity)
 {
     return base.Contains(entity);
 }
示例#28
0
        private static void CheckMerchantItems(string merchantid, string[] itemids)
        {
            IList<MerchantItem> merchantitems = GameServer.Database.SelectObjects<MerchantItem>("ItemListID=\'" + GameServer.Database.Escape(merchantid) + "\'");

            int slot = 0;
            foreach (string itemid in itemids)
            {
                bool found = false;
                foreach (MerchantItem dbitem in merchantitems)
                {
                    if (dbitem.ItemTemplateID == itemid)
                    {
                        found = true;
                        break;
                    }
                }
                if (!found)
                {
                    var newitem = new MerchantItem
                                    {
                                        ItemListID = merchantid,
                                        ItemTemplateID = itemid,
                                        SlotPosition = (slot % 30),
                                        PageNumber = (slot / 30)
                                    };

                    GameServer.Database.AddObject(newitem);
                }
                slot += 1;
            }
        }
 public static void SendExchangeShopStockMovementRemovedMessage(IPacketReceiver client, MerchantItem item)
 {
     client.Send(new ExchangeShopStockMovementRemovedMessage((uint)item.Guid));
 }
示例#30
0
    void _HandleMerchantList(Dictionary<string, object> props)
    {
        merchantItems.Clear();
        NpcId = (OID)props["npcOid"];

        int numItems = (int)props["numItems"];
        for (int i = 0; i < numItems; i++) {
            MerchantItem merchantItem = new MerchantItem();
            merchantItem.itemID = (int)props ["item_" + i + "ID"];
            merchantItem.count = (int)props ["item_" + i + "Count"];
            merchantItem.cost = (int)props ["item_" + i + "Cost"];
            merchantItem.purchaseCurrency = (int)props ["item_" + i + "Currency"];
            merchantItems.Add(merchantItem);
        }

        // dispatch a ui event to tell the rest of the system
        string[] args = new string[1];
        AtavismEventSystem.DispatchEvent ("MERCHANT_UPDATE", args);
    }
        /// <summary>
        /// Initializes the packet. All data parsing must be done here.
        /// </summary>
        public override void Init()
        {
            Position = 0;

            itemCount = ReadByte();  // 0x00
            windowType = ReadByte(); // 0x01
            page = ReadByte();       // 0x02
            unk1 = ReadByte();       // 0x03

            items = new MerchantItem[itemCount];

            for (int i = 0; i < itemCount; i++)
            {
                MerchantItem item = new MerchantItem();

                item.index = ReadByte();
                item.level = ReadByte();
                item.value1 = ReadByte();
                item.value2 = ReadByte();
                item.hand = ReadByte(); // >>6 to get hand
                item.damageAndObjectType = ReadByte();
                if (windowType < (byte)eMerchantWindowType.HouseStore)
                {
                    item.damageType = (byte)(item.damageAndObjectType >> 6);
                    item.objectType = (byte)(item.damageAndObjectType & 0x3F);
                }
                else
                {
                    item.objectType = item.damageAndObjectType;
                }
                item.canUse = ReadByte();
                item.weight = ReadShort();
                item.price = ReadInt();
                item.model = ReadShort();
                item.name = ReadPascalString();

                items[i] = item;
            }
        }
示例#32
0
            public static void OnServerStartup(DOLEvent e, object sender, EventArgs args)
            {
                MerchantItem m_item = null;
                m_item = (MerchantItem)GameServer.Database.SelectObject<MerchantItem>( "ItemListID='MidLabWeaps'");
                if (m_item == null)
                {
                #region Midgard Merchant Items

                // Main Hand Weapons, Lhand weapons and Shields

                #region Page 1 Mid
                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Anger_Axe_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Anguish_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Crusher_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Danger_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Foremans_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Indy_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Mnevis_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Murder_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Revenge_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Technomancer_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 9;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Moment_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 10;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                // Weapons that can used in LeftHand

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Aegbarol_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Anger_LeftAxe_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 13;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Hatred_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 14;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Kulgahs_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 15;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Smash_Lab_Mid";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 16;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "The_One_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 17;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                // Shields

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Buckler_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 19;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Buckler_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 20;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 22;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Infused_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 23;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Infused_Guard_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 24;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Protector_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 26;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Infused_Aegis_Lab";
                m_item.PageNumber = 0;
                m_item.SlotPosition = 27;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                #endregion Page 1 Mid

                // 2 Handed Weapons

                #region Page 2 Mid

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Aolmos_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Dark_Guard_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "War_Spear_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Domos_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 3;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Fear_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Iapetuss_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 5;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Martello_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Outrage_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 7;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Smash_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 8;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Spite_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 9;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Technomancer_Great_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 11;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Torture_Lab_Mid";
                m_item.PageNumber = 1;
                m_item.SlotPosition = 12;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                #endregion Page 2 Mid

                // Staffs / Bows / Throwing weapon

                #region Page 3 Mid

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Eouss_Composite_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 0;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Perfected_Lab_Mid";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 1;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Remorseless_Lab_Mid";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 2;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                m_item = new MerchantItem();
                m_item.ItemListID = "MidLabWeaps";
                m_item.ItemTemplateID = "Pelgars_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 4;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                /* Delete this line if you want to add Throwing weapons to the merchant!
                m_item = new MerchantItem();
                m_item.ItemListID = "Throwing_Lab_Mid";
                m_item.ItemTemplateID = "Pelgars_Lab";
                m_item.PageNumber = 2;
                m_item.SlotPosition = 6;
                //m_item.AutoSave = true;
                GameServer.Database.AddObject(m_item);

                */
                // Delete this line too!

                #endregion Page 3 Mid

                #endregion Midgard Labyrinth Weapons
                }
            }
示例#33
0
		public void OnCommand(GameClient client, string[] args)
		{
			if (args.Length == 1)
			{
				DisplaySyntax(client);
				return;
			}

			string param = "";
			if (args.Length > 2)
				param = String.Join(" ", args, 2, args.Length - 2);

			GameMerchant targetMerchant = null;
			if (client.Player.TargetObject != null && client.Player.TargetObject is GameMerchant)
				targetMerchant = (GameMerchant)client.Player.TargetObject;

			if (args[1].ToLower() != "create" && targetMerchant == null)
			{
				DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
				return;
			}

			switch (args[1].ToLower())
			{
				#region Create
				case "create":
					{
						string theType = "DOL.GS.GameMerchant";
						if (args.Length > 2)
							theType = args[2];

						//Create a new merchant
						GameMerchant merchant = null;
						foreach (Assembly script in ScriptMgr.GameServerScripts)
						{
							try
							{
								client.Out.SendDebugMessage(script.FullName);
								merchant = (GameMerchant)script.CreateInstance(theType, false);
								if (merchant != null)
									break;
							}
							catch (Exception e)
							{
								client.Out.SendMessage(e.ToString(), eChatType.CT_System, eChatLoc.CL_PopupWindow);
							}
						}
						if (merchant == null)
						{
							DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.ErrorCreateInstance", theType));
							return;
						}
						//Fill the object variables
						merchant.X = client.Player.X;
						merchant.Y = client.Player.Y;
						merchant.Z = client.Player.Z;
						merchant.CurrentRegion = client.Player.CurrentRegion;
						merchant.Heading = client.Player.Heading;
						merchant.Level = 1;
						merchant.Realm = client.Player.Realm;
						merchant.Name = LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "GMCommands.Merchant.NewName");
						merchant.Model = 9;
						//Fill the living variables
						merchant.CurrentSpeed = 0;
						merchant.MaxSpeedBase = 200;
						merchant.GuildName = LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "GMCommands.Merchant.NewGuildName");
						merchant.Size = 50;
						merchant.AddToWorld();
						merchant.SaveIntoDatabase();
						DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Create.Created", merchant.ObjectID));
						break;
					}
				#endregion Create
				#region Info
				case "info":
					{
						if (args.Length == 2)
						{
							if (targetMerchant.TradeItems == null)
								DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Info.ArtListIsEmpty"));
							else
							{
								DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Info.ArtList", targetMerchant.TradeItems.ItemsListID));
							}
						}
						break;
					}
				#endregion Info
				#region Save
				case "save":
					{
						targetMerchant.SaveIntoDatabase();
						DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Save.SavedInDB"));
						break;
					}
				#endregion Save
				#region SaveList
				case "savelist":
					{
						string currentID = targetMerchant.TradeItems.ItemsListID;

						var itemList = GameServer.Database.SelectObjects<MerchantItem>("`ItemListID` = @ItemListID", new QueryParameter("@ItemListID", currentID));
						foreach (MerchantItem merchantItem in itemList)
						{
							MerchantItem item = new MerchantItem();
							item.ItemListID = GameServer.Database.Escape(args[2]);
							item.ItemTemplateID = merchantItem.ItemTemplateID;
							item.PageNumber = merchantItem.PageNumber;
							item.SlotPosition = merchantItem.SlotPosition;
							GameServer.Database.AddObject(item);
						}

						DisplayMessage(client, "New MerchantItems list saved as '" + GameServer.Database.Escape(args[2]) + "'");

						break;
					}
				#endregion SaveList
				#region Remove
				case "remove":
					{
						targetMerchant.DeleteFromDatabase();
						targetMerchant.Delete();
						DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Remove.RemovedFromDB"));
						break;
					}
				#endregion Remove
				#region Sell
				case "sell":
					{
						switch (args[2].ToLower())
						{
							#region Add
							case "add":
								{
									if (args.Length == 4)
									{
										try
										{
											string templateID = args[3];
											targetMerchant.TradeItems = new MerchantTradeItems(templateID);
											targetMerchant.SaveIntoDatabase();
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Sell.Add.Loaded"));
										}
										catch (Exception)
										{
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
											return;
										}
									}
									break;
								}
							#endregion Add
							#region Remove
							case "remove":
								{
									if (args.Length == 3)
									{
										targetMerchant.TradeItems = null;
										targetMerchant.SaveIntoDatabase();
										DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Sell.Remove.Removed"));
									}
									break;
								}
							#endregion Remove
							#region Default
							default:
								{
									DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
									return;
								}
							#endregion Default
						}
						break;
					}
				#endregion Sell
				#region Articles
				case "articles":
					{
						if (args.Length < 3)
						{
							DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
							return;
						}

						switch (args[2].ToLower())
						{
							#region Add
							case "add":
								{
									if (args.Length <= 6)
									{
										try
										{
											string templateID = args[3];
											int page = Convert.ToInt32(args[4]);
											eMerchantWindowSlot slot = eMerchantWindowSlot.FirstEmptyInPage;

											if (targetMerchant.TradeItems == null)
											{
												DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.ListNoFound"));
												return;
											}

											ItemTemplate template = GameServer.Database.FindObjectByKey<ItemTemplate>(templateID);
											if (template == null)
											{
												DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Add.ItemTemplateNoFound", templateID));
												return;
											}

											if (args.Length == 6)
											{
												slot = (eMerchantWindowSlot)Convert.ToInt32(args[5]);
											}

											slot = targetMerchant.TradeItems.GetValidSlot(page, slot);
											if (slot == eMerchantWindowSlot.Invalid)
											{
												DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Add.PageAndSlotInvalid", page, (MerchantTradeItems.MAX_PAGES_IN_TRADEWINDOWS - 1), slot, (MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS - 1)));
												return;
											}

											MerchantItem item = GameServer.Database.SelectObjects<MerchantItem>("`ItemListID` = @ItemListID AND `PageNumber` = @PageNumber AND `SlotPosition` = @SlotPosition",
											                                                                   new [] { new QueryParameter("@ItemListID", targetMerchant.TradeItems.ItemsListID), new QueryParameter("@PageNumber", page), new QueryParameter("@SlotPosition", slot) } ).FirstOrDefault();
											if (item == null)
											{
												item = new MerchantItem();
												item.ItemListID = targetMerchant.TradeItems.ItemsListID;
												item.ItemTemplateID = templateID;
												item.SlotPosition = (int)slot;
												item.PageNumber = page;

												GameServer.Database.AddObject(item);
											}
											else
											{
												item.ItemTemplateID = templateID;
												GameServer.Database.SaveObject(item);
											}
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Add.ItemAdded"));
										}
										catch (Exception)
										{
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
											return;
										}
									}
									else
									{
										DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
									}
									break;
								}
							#endregion Add
							#region Remove
							case "remove":
								{
									if (args.Length == 5)
									{
										try
										{
											int page = Convert.ToInt32(args[3]);
											int slot = Convert.ToInt32(args[4]);

											if (page < 0 || page >= MerchantTradeItems.MAX_PAGES_IN_TRADEWINDOWS)
											{
												DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Remove.PageInvalid", page, (MerchantTradeItems.MAX_PAGES_IN_TRADEWINDOWS - 1)));
												return;
											}

											if (slot < 0 || slot >= MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS)
											{
												DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Remove.SlotInvalid", slot, (MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS - 1)));
												return;
											}

											if (targetMerchant.TradeItems == null)
											{
												DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.ListNoFound"));
												return;
											}

											MerchantItem item = GameServer.Database.SelectObjects<MerchantItem>("`ItemListID` = @ItemListID AND `PageNumber` = @PageNumber AND `SlotPosition` = @SlotPosition",
											                                                                   new [] { new QueryParameter("@ItemListID", targetMerchant.TradeItems.ItemsListID), new QueryParameter("@PageNumber", page), new QueryParameter("@SlotPosition", slot) } ).FirstOrDefault();
											if (item == null)
											{
												DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Remove.SlotInPageIsAEmpty", slot, page));
												return;
											}
											GameServer.Database.DeleteObject(item);
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Remove.SlotInPageCleaned", slot, page));

										}
										catch (Exception)
										{
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
											return;
										}
									}
									else
									{
										DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
									}
									break;
								}
							#endregion Remove
							#region Delete
							case "delete":
								{
									if (args.Length == 3)
									{
										try
										{
											if (targetMerchant.TradeItems == null)
											{
												DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.ListNoFound"));
												return;
											}
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Delete.DeletingListTemp"));

											var merchantitems = GameServer.Database.SelectObjects<MerchantItem>("`ItemListID` = @ItemListID", new QueryParameter("@ItemListID", targetMerchant.TradeItems.ItemsListID));
											if (merchantitems.Count > 0)
											{
												GameServer.Database.DeleteObject(merchantitems);
											}
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Delete.ListDeleted"));
										}
										catch (Exception)
										{
											DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
											return;
										}
									}
									break;
								}
							#endregion Delete
							#region Default
							default:
								{
									DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
									return;
								}
							#endregion Default
						}
						break;
					}
				#endregion Articles
				#region Type
				case "type":
					{
						string theType = param;
						if (args.Length > 2)
							theType = args[2];

						//Create a new merchant
						GameMerchant merchant = null;
						foreach (Assembly script in ScriptMgr.GameServerScripts)
						{
							try
							{
								client.Out.SendDebugMessage(script.FullName);
								merchant = (GameMerchant)script.CreateInstance(theType, false);
								if (merchant != null)
									break;
							}
							catch (Exception e)
							{
								client.Out.SendMessage(e.ToString(), eChatType.CT_System, eChatLoc.CL_PopupWindow);
							}
						}
						if (merchant == null)
						{
							DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.ErrorCreateInstance", theType));
							return;
						}
						//Fill the object variables
						merchant.X = targetMerchant.X;
						merchant.Y = targetMerchant.Y;
						merchant.Z = targetMerchant.Z;
						merchant.CurrentRegion = targetMerchant.CurrentRegion;
						merchant.Heading = targetMerchant.Heading;
						merchant.Level = targetMerchant.Level;
						merchant.Realm = targetMerchant.Realm;
						merchant.Name = targetMerchant.Name;
						merchant.Model = targetMerchant.Model;
						//Fill the living variables
						merchant.CurrentSpeed = targetMerchant.CurrentSpeed; ;
						merchant.MaxSpeedBase = targetMerchant.MaxSpeedBase; ;
						merchant.GuildName = targetMerchant.GuildName;
						merchant.Size = targetMerchant.Size;
						merchant.Inventory = targetMerchant.Inventory;
						merchant.EquipmentTemplateID = targetMerchant.EquipmentTemplateID;
						merchant.TradeItems = targetMerchant.TradeItems;
						merchant.AddToWorld();
						merchant.SaveIntoDatabase();
						targetMerchant.Delete();
						targetMerchant.DeleteFromDatabase();
						DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Type.Changed", param));
						break;
					}
				#endregion Type
			}
		}
示例#34
0
 public bool CanBuy(MerchantItem item, uint amount)
 {
     return((long)this.Character.Inventory.Kamas >= (long)((ulong)(item.Price * amount)) || !this.Merchant.CanBeSee(this.Character));
 }
示例#35
0
        public void OnCommand(GameClient client, string[] args)
        {
            if (args.Length == 1)
            {
                DisplaySyntax(client);
                return;
            }

            string param = "";

            if (args.Length > 2)
            {
                param = String.Join(" ", args, 2, args.Length - 2);
            }

            GameMerchant targetMerchant = null;

            if (client.Player.TargetObject != null && client.Player.TargetObject is GameMerchant)
            {
                targetMerchant = (GameMerchant)client.Player.TargetObject;
            }

            if (args[1].ToLower() != "create" && targetMerchant == null)
            {
                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                return;
            }

            switch (args[1].ToLower())
            {
                #region Create
            case "create":
            {
                string theType = "DOL.GS.GameMerchant";
                if (args.Length > 2)
                {
                    theType = args[2];
                }

                //Create a new merchant
                GameMerchant merchant = null;
                ArrayList    asms     = new ArrayList(ScriptMgr.Scripts);
                asms.Add(typeof(GameServer).Assembly);
                foreach (Assembly script in asms)
                {
                    try
                    {
                        client.Out.SendDebugMessage(script.FullName);
                        merchant = (GameMerchant)script.CreateInstance(theType, false);
                        if (merchant != null)
                        {
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        client.Out.SendMessage(e.ToString(), eChatType.CT_System, eChatLoc.CL_PopupWindow);
                    }
                }
                if (merchant == null)
                {
                    DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.ErrorCreateInstance", theType));
                    return;
                }
                //Fill the object variables
                merchant.X             = client.Player.X;
                merchant.Y             = client.Player.Y;
                merchant.Z             = client.Player.Z;
                merchant.CurrentRegion = client.Player.CurrentRegion;
                merchant.Heading       = client.Player.Heading;
                merchant.Level         = 1;
                merchant.Realm         = client.Player.Realm;
                merchant.Name          = LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "GMCommands.Merchant.NewName");
                merchant.Model         = 9;
                //Fill the living variables
                merchant.CurrentSpeed = 0;
                merchant.MaxSpeedBase = 200;
                merchant.GuildName    = LanguageMgr.GetTranslation(ServerProperties.Properties.SERV_LANGUAGE, "GMCommands.Merchant.NewGuildName");
                merchant.Size         = 50;
                merchant.AddToWorld();
                merchant.SaveIntoDatabase();
                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Create.Created", merchant.ObjectID));
                break;
            }

                #endregion Create
                #region Info
            case "info":
            {
                if (args.Length == 2)
                {
                    if (targetMerchant.TradeItems == null)
                    {
                        DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Info.ArtListIsEmpty"));
                    }
                    else
                    {
                        DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Info.ArtList", targetMerchant.TradeItems.ItemsListID));
                    }
                }
                break;
            }

                #endregion Info
                #region Save
            case "save":
            {
                targetMerchant.SaveIntoDatabase();
                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Save.SavedInDB"));
                break;
            }

                #endregion Save
                #region SaveList
            case "savelist":
            {
                string currentID = targetMerchant.TradeItems.ItemsListID;

                var itemList = GameServer.Database.SelectObjects <MerchantItem>("ItemListID = '" + currentID + "'");
                foreach (MerchantItem merchantItem in itemList)
                {
                    MerchantItem item = new MerchantItem();
                    item.ItemListID     = GameServer.Database.Escape(args[2]);
                    item.ItemTemplateID = merchantItem.ItemTemplateID;
                    item.PageNumber     = merchantItem.PageNumber;
                    item.SlotPosition   = merchantItem.SlotPosition;
                    GameServer.Database.AddObject(item);
                }

                DisplayMessage(client, "New MerchantItems list saved as '" + GameServer.Database.Escape(args[2]) + "'");

                break;
            }

                #endregion SaveList
                #region Remove
            case "remove":
            {
                targetMerchant.DeleteFromDatabase();
                targetMerchant.Delete();
                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Remove.RemovedFromDB"));
                break;
            }

                #endregion Remove
                #region Sell
            case "sell":
            {
                switch (args[2].ToLower())
                {
                    #region Add
                case "add":
                {
                    if (args.Length == 4)
                    {
                        try
                        {
                            string templateID = args[3];
                            targetMerchant.TradeItems = new MerchantTradeItems(templateID);
                            targetMerchant.SaveIntoDatabase();
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Sell.Add.Loaded"));
                        }
                        catch (Exception)
                        {
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                            return;
                        }
                    }
                    break;
                }

                    #endregion Add
                    #region Remove
                case "remove":
                {
                    if (args.Length == 3)
                    {
                        targetMerchant.TradeItems = null;
                        targetMerchant.SaveIntoDatabase();
                        DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Sell.Remove.Removed"));
                    }
                    break;
                }

                    #endregion Remove
                    #region Default
                default:
                {
                    DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                    return;
                }
                    #endregion Default
                }
                break;
            }

                #endregion Sell
                #region Articles
            case "articles":
            {
                if (args.Length < 3)
                {
                    DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                    return;
                }

                switch (args[2].ToLower())
                {
                    #region Add
                case "add":
                {
                    if (args.Length <= 6)
                    {
                        try
                        {
                            string templateID        = args[3];
                            int    page              = Convert.ToInt32(args[4]);
                            eMerchantWindowSlot slot = eMerchantWindowSlot.FirstEmptyInPage;

                            if (targetMerchant.TradeItems == null)
                            {
                                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.ListNoFound"));
                                return;
                            }

                            ItemTemplate template = GameServer.Database.FindObjectByKey <ItemTemplate>(templateID);
                            if (template == null)
                            {
                                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Add.ItemTemplateNoFound", templateID));
                                return;
                            }

                            if (args.Length == 6)
                            {
                                slot = (eMerchantWindowSlot)Convert.ToInt32(args[5]);
                            }

                            slot = targetMerchant.TradeItems.GetValidSlot(page, slot);
                            if (slot == eMerchantWindowSlot.Invalid)
                            {
                                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Add.PageAndSlotInvalid", page, (MerchantTradeItems.MAX_PAGES_IN_TRADEWINDOWS - 1), slot, (MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS - 1)));
                                return;
                            }

                            MerchantItem item = GameServer.Database.SelectObject <MerchantItem>("ItemListID = '" + GameServer.Database.Escape(targetMerchant.TradeItems.ItemsListID) + "' AND PageNumber = '" + page + "' AND SlotPosition = '" + slot + "'");
                            if (item == null)
                            {
                                item                = new MerchantItem();
                                item.ItemListID     = targetMerchant.TradeItems.ItemsListID;
                                item.ItemTemplateID = templateID;
                                item.SlotPosition   = (int)slot;
                                item.PageNumber     = page;

                                GameServer.Database.AddObject(item);
                            }
                            else
                            {
                                item.ItemTemplateID = templateID;
                                GameServer.Database.SaveObject(item);
                            }
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Add.ItemAdded"));
                        }
                        catch (Exception)
                        {
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                            return;
                        }
                    }
                    else
                    {
                        DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                    }
                    break;
                }

                    #endregion Add
                    #region Remove
                case "remove":
                {
                    if (args.Length == 5)
                    {
                        try
                        {
                            int page = Convert.ToInt32(args[3]);
                            int slot = Convert.ToInt32(args[4]);

                            if (page < 0 || page >= MerchantTradeItems.MAX_PAGES_IN_TRADEWINDOWS)
                            {
                                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Remove.PageInvalid", page, (MerchantTradeItems.MAX_PAGES_IN_TRADEWINDOWS - 1)));
                                return;
                            }

                            if (slot < 0 || slot >= MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS)
                            {
                                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Remove.SlotInvalid", slot, (MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS - 1)));
                                return;
                            }

                            if (targetMerchant.TradeItems == null)
                            {
                                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.ListNoFound"));
                                return;
                            }

                            MerchantItem item = GameServer.Database.SelectObject <MerchantItem>("ItemListID = '" + GameServer.Database.Escape(targetMerchant.TradeItems.ItemsListID) + "' AND PageNumber = '" + page + "' AND SlotPosition = '" + slot + "'");
                            if (item == null)
                            {
                                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Remove.SlotInPageIsAEmpty", slot, page));
                                return;
                            }
                            GameServer.Database.DeleteObject(item);
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Remove.SlotInPageCleaned", slot, page));
                        }
                        catch (Exception)
                        {
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                            return;
                        }
                    }
                    else
                    {
                        DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                    }
                    break;
                }

                    #endregion Remove
                    #region Delete
                case "delete":
                {
                    if (args.Length == 3)
                    {
                        try
                        {
                            if (targetMerchant.TradeItems == null)
                            {
                                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.ListNoFound"));
                                return;
                            }
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Delete.DeletingListTemp"));

                            var merchantitems = GameServer.Database.SelectObjects <MerchantItem>("ItemsListID = '" + GameServer.Database.Escape(targetMerchant.TradeItems.ItemsListID) + "'");
                            if (merchantitems.Count > 0)
                            {
                                foreach (MerchantItem item in merchantitems)
                                {
                                    GameServer.Database.DeleteObject(item);
                                }
                            }
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Articles.Delete.ListDeleted"));
                        }
                        catch (Exception)
                        {
                            DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                            return;
                        }
                    }
                    break;
                }

                    #endregion Delete
                    #region Default
                default:
                {
                    DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.CommandOverview"));
                    return;
                }
                    #endregion Default
                }
                break;
            }

                #endregion Articles
                #region Type
            case "type":
            {
                string theType = param;
                if (args.Length > 2)
                {
                    theType = args[2];
                }

                //Create a new merchant
                GameMerchant merchant = null;
                ArrayList    asms     = new ArrayList(ScriptMgr.Scripts);
                asms.Add(typeof(GameServer).Assembly);
                foreach (Assembly script in asms)
                {
                    try
                    {
                        client.Out.SendDebugMessage(script.FullName);
                        merchant = (GameMerchant)script.CreateInstance(theType, false);
                        if (merchant != null)
                        {
                            break;
                        }
                    }
                    catch (Exception e)
                    {
                        client.Out.SendMessage(e.ToString(), eChatType.CT_System, eChatLoc.CL_PopupWindow);
                    }
                }
                if (merchant == null)
                {
                    DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.ErrorCreateInstance", theType));
                    return;
                }
                //Fill the object variables
                merchant.X             = targetMerchant.X;
                merchant.Y             = targetMerchant.Y;
                merchant.Z             = targetMerchant.Z;
                merchant.CurrentRegion = targetMerchant.CurrentRegion;
                merchant.Heading       = targetMerchant.Heading;
                merchant.Level         = targetMerchant.Level;
                merchant.Realm         = targetMerchant.Realm;
                merchant.Name          = targetMerchant.Name;
                merchant.Model         = targetMerchant.Model;
                //Fill the living variables
                merchant.CurrentSpeed        = targetMerchant.CurrentSpeed;;
                merchant.MaxSpeedBase        = targetMerchant.MaxSpeedBase;;
                merchant.GuildName           = targetMerchant.GuildName;
                merchant.Size                = targetMerchant.Size;
                merchant.Inventory           = targetMerchant.Inventory;
                merchant.EquipmentTemplateID = targetMerchant.EquipmentTemplateID;
                merchant.TradeItems          = targetMerchant.TradeItems;
                merchant.AddToWorld();
                merchant.SaveIntoDatabase();
                targetMerchant.Delete();
                targetMerchant.DeleteFromDatabase();
                DisplayMessage(client, LanguageMgr.GetTranslation(client.Account.Language, "GMCommands.Merchant.Type.Changed", param));
                break;
            }
                #endregion Type
            }
        }
示例#36
0
 public void Insert(int index, MerchantItem entity)
 {
     base.Insert(index, entity);
 }