public override bool AddToWorld() { int color = Util.Random(0, 86); GameNpcInventoryTemplate template = new GameNpcInventoryTemplate(); template.AddNPCEquipment(eInventorySlot.TorsoArmor, 746, color, 0, 3); template.AddNPCEquipment(eInventorySlot.FeetArmor, 750, color, 0, 3); template.AddNPCEquipment(eInventorySlot.HandsArmor, 749, color, 0, 3); template.AddNPCEquipment(eInventorySlot.LegsArmor, 747, color); template.AddNPCEquipment(eInventorySlot.ArmsArmor, 748, color); template.AddNPCEquipment(eInventorySlot.HeadArmor, 1290); template.AddNPCEquipment(eInventorySlot.RightHandWeapon, 2684); Inventory = template.CloseTemplate(); Name = "Mystic Legendaries"; GuildName = "Matter Weapons"; Model = 1642; Size = 50; Level = 50; RespawnInterval = 2000; MaxSpeedBase = 0; Realm = 0; Flags |= eFlags.PEACE; TradeItems = new MerchantTradeItems("LegendaryMatterWeapons"); return(base.AddToWorld()); }
public override bool AddToWorld() { int color = Util.Random(0, 86); GameNpcInventoryTemplate template = new GameNpcInventoryTemplate(); template.AddNPCEquipment(eInventorySlot.Cloak, 3800); template.AddNPCEquipment(eInventorySlot.TorsoArmor, 2928); template.AddNPCEquipment(eInventorySlot.LegsArmor, 2929); template.AddNPCEquipment(eInventorySlot.ArmsArmor, 2930); template.AddNPCEquipment(eInventorySlot.HandsArmor, 2931); template.AddNPCEquipment(eInventorySlot.FeetArmor, 2932); Inventory = template.CloseTemplate(); Level = 60; Name = "Labyrinth Weapons"; GuildName = "Alb Merchant"; Model = 33; Size = 54; RespawnInterval = 2000; MaxSpeedBase = 0; Realm = 0; TradeItems = new MerchantTradeItems("AlbLabWeaps"); return(base.AddToWorld()); }
public override bool AddToWorld() { Level = 60; Name = "Dragon Merchant"; GuildName = ""; Model = 1903; MaxSpeedBase = 0; Realm = 0; TradeItems = new MerchantTradeItems("dragon_merchant"); return base.AddToWorld(); }
public override bool AddToWorld() { Level = 60; Name = "Dragon Merchant"; GuildName = ""; Model = 1903; MaxSpeedBase = 0; Realm = 0; TradeItems = new MerchantTradeItems("dragon_merchant"); return(base.AddToWorld()); }
private static void LoadItemLists() { AlbionLotMarkerItems = new MerchantTradeItems("housing_alb_lotmarker"); MidgardLotMarkerItems = new MerchantTradeItems("housing_mid_lotmarker"); HiberniaLotMarkerItems = new MerchantTradeItems("housing_hib_lotmarker"); CustomLotMarkerItems = new MerchantTradeItems("housing_custom_lotmarker"); IndoorMenuItems = new MerchantTradeItems("housing_indoor_menu"); IndoorShopItems = new MerchantTradeItems("housing_indoor_shop"); OutdoorMenuItems = new MerchantTradeItems("housing_outdoor_menu"); OutdoorShopItems = new MerchantTradeItems("housing_outdoor_shop"); IndoorNPCShopItems = new MerchantTradeItems("housing_indoor_npc"); IndoorVaultShopItems = new MerchantTradeItems("housing_indoor_vault"); IndoorCraftShopItems = new MerchantTradeItems("housing_indoor_craft"); IndoorBindstoneShopItems = new MerchantTradeItems("housing_indoor_bindstone"); }
public override bool AddToWorld() { int color = Util.Random(0, 86); GameNpcInventoryTemplate template = new GameNpcInventoryTemplate(); template.AddNPCEquipment(eInventorySlot.Cloak, 3802); template.AddNPCEquipment(eInventorySlot.TorsoArmor, 3390); template.AddNPCEquipment(eInventorySlot.LegsArmor, 3391); template.AddNPCEquipment(eInventorySlot.ArmsArmor, 3392); template.AddNPCEquipment(eInventorySlot.HandsArmor, 3393); template.AddNPCEquipment(eInventorySlot.FeetArmor, 3394); Inventory = template.CloseTemplate(); RespawnInterval = 2000; MaxSpeedBase = 0; Flags |= eFlags.PEACE; TradeItems = new MerchantTradeItems("HiberniaDragonItems"); return(base.AddToWorld()); }
public override bool AddToWorld() { int color = Util.Random(0, 86); GameNpcInventoryTemplate template = new GameNpcInventoryTemplate(); template.AddNPCEquipment(eInventorySlot.Cloak, 3800); template.AddNPCEquipment(eInventorySlot.TorsoArmor, 2928); template.AddNPCEquipment(eInventorySlot.LegsArmor, 2929); template.AddNPCEquipment(eInventorySlot.ArmsArmor, 2930); template.AddNPCEquipment(eInventorySlot.HandsArmor, 2931); template.AddNPCEquipment(eInventorySlot.FeetArmor, 2932); Inventory = template.CloseTemplate(); Level = 60; Name = "Labyrinth Weapons"; GuildName = "Alb Merchant"; Model = 33; Size = 54; RespawnInterval = 2000; MaxSpeedBase = 0; Realm = 0; TradeItems = new MerchantTradeItems("AlbLabWeaps"); return base.AddToWorld(); }
/// <summary> /// 1125d+ Merchant window /// </summary> public override void SendMerchantWindow(MerchantTradeItems tradeItemsList, eMerchantWindowType windowType) { if (tradeItemsList != null) { for (byte page = 0; page < MerchantTradeItems.MAX_PAGES_IN_TRADEWINDOWS; page++) { IDictionary itemsInPage = tradeItemsList.GetItemsInPage((int)page); if (itemsInPage == null || itemsInPage.Count == 0) { continue; } using (GSTCPPacketOut pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.MerchantWindow))) { pak.WriteByte((byte)itemsInPage.Count); //Item count on this page pak.WriteByte((byte)windowType); pak.WriteByte((byte)page); //Page number //pak.WriteByte(0x00); //Unused // testing for (ushort i = 0; i < MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS; i++) { if (!itemsInPage.Contains((int)i)) { continue; } var item = (ItemTemplate)itemsInPage[(int)i]; if (item != null) { pak.WriteByte((byte)i); //Item index on page pak.WriteByte((byte)item.Level); // some objects use this for count int value1; int value2; switch (item.Object_Type) { case (int)eObjectType.Arrow: case (int)eObjectType.Bolt: case (int)eObjectType.Poison: case (int)eObjectType.GenericItem: { value1 = item.PackSize; value2 = value1 * item.Weight; break; } case (int)eObjectType.Thrown: { value1 = item.DPS_AF; value2 = item.PackSize; break; } case (int)eObjectType.Shield: { value1 = item.Type_Damage; value2 = item.Weight; break; } case (int)eObjectType.GardenObject: { value1 = 0; value2 = item.Weight; break; } default: { value1 = item.DPS_AF; value2 = item.Weight; break; } } pak.WriteByte((byte)value1); pak.WriteByte((byte)item.SPD_ABS); if (item.Object_Type == (int)eObjectType.GardenObject) { pak.WriteByte((byte)(item.DPS_AF)); } else { pak.WriteByte((byte)(item.Hand << 6)); } pak.WriteByte((byte)((item.Type_Damage << 6) | item.Object_Type)); //1 if item cannot be used by your class (greyed out) if (m_gameClient.Player != null && m_gameClient.Player.HasAbilityToUseItem(item)) { pak.WriteByte(0x01); // these maybe switched in 1125 earlier revs } else { pak.WriteByte(0x00); // these maybe switched in 1125 earlier revs } pak.WriteShortLowEndian((ushort)value2); pak.WriteIntLowEndian((uint)item.Price); pak.WriteShortLowEndian((ushort)item.Model); pak.WritePascalStringIntLE(item.Name); } else { if (log.IsErrorEnabled) { log.Error("Merchant item template '" + ((MerchantItem)itemsInPage[page * MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS + i]).ItemTemplateID + "' not found, abort!!!"); } return; } } SendTCP(pak); } } } else { using (GSTCPPacketOut pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.MerchantWindow))) { pak.WriteByte(0); //Item count on this page pak.WriteByte((byte)windowType); //Unknown 0x00 pak.WriteByte(0); //Page number pak.WriteByte(0x00); //Unused SendTCP(pak); } } }
public void SendMerchantWindow(MerchantTradeItems itemlist, eMerchantWindowType windowType) { }
public override bool Interact(GamePlayer player) { TradeItems = new MerchantTradeItems("dragon_merchant"); player.Out.SendMerchantWindow(TradeItems, eMerchantWindowType.Normal); return(true); }
public virtual void SendMerchantWindow(MerchantTradeItems tradeItemsList, eMerchantWindowType windowType) { GSTCPPacketOut pak; if (tradeItemsList != null) { for (int page = 0; page < MerchantTradeItems.MAX_PAGES_IN_TRADEWINDOWS; page++) { IDictionary itemsInPage = tradeItemsList.GetItemsInPage(page); if (itemsInPage == null || itemsInPage.Count == 0) continue; using (pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.MerchantWindow))) { pak.WriteByte((byte) itemsInPage.Count); //Item count on this page pak.WriteByte((byte) windowType); pak.WriteByte((byte) page); //Page number pak.WriteByte(0x00); //Unused for (int i = 0; i < MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS; i++) { if (!itemsInPage.Contains(i)) continue; var item = (ItemTemplate) itemsInPage[i]; if (item != null) { pak.WriteByte((byte) i); //Item index on page pak.WriteByte((byte) item.Level); // some objects use this for count int value1; int value2; switch (item.Object_Type) { case (int) eObjectType.Arrow: case (int) eObjectType.Bolt: case (int) eObjectType.Poison: case (int) eObjectType.GenericItem: { value1 = item.PackSize; value2 = value1*item.Weight; break; } case (int) eObjectType.Thrown: { value1 = item.DPS_AF; value2 = item.PackSize; break; } case (int) eObjectType.Shield: { value1 = item.Type_Damage; value2 = item.Weight; break; } case (int) eObjectType.GardenObject: { value1 = 0; value2 = item.Weight; break; } default: { value1 = item.DPS_AF; value2 = item.Weight; break; } } pak.WriteByte((byte) value1); pak.WriteByte((byte) item.SPD_ABS); if (item.Object_Type == (int) eObjectType.GardenObject) pak.WriteByte((byte) (item.DPS_AF)); else pak.WriteByte((byte) (item.Hand << 6)); pak.WriteByte((byte) ((item.Type_Damage << 6) | item.Object_Type)); //1 if item cannot be used by your class (greyed out) if (m_gameClient.Player != null && m_gameClient.Player.HasAbilityToUseItem(item)) pak.WriteByte(0x00); else pak.WriteByte(0x01); pak.WriteShort((ushort) value2); //Item Price pak.WriteInt((uint) item.Price); pak.WriteShort((ushort) item.Model); pak.WritePascalString(item.Name); } else { if (log.IsErrorEnabled) log.Error("Merchant item template '" + ((MerchantItem) itemsInPage[page*MerchantTradeItems.MAX_ITEM_IN_TRADEWINDOWS + i]).ItemTemplateID + "' not found, abort!!!"); return; } } SendTCP(pak); } } } else { using (pak = new GSTCPPacketOut(GetPacketCode(eServerPackets.MerchantWindow))) { pak.WriteByte(0); //Item count on this page pak.WriteByte((byte) windowType); //Unknown 0x00 pak.WriteByte(0); //Page number pak.WriteByte(0x00); //Unused SendTCP(pak); } } }
public override bool Interact(GamePlayer player) { TradeItems = new MerchantTradeItems("dragon_merchant"); player.Out.SendMerchantWindow(TradeItems, eMerchantWindowType.Normal); return true; }