/// <summary>
		/// Creates a Guard Inventory from an Inventory Template
		/// </summary>
		/// <param name="template"></param>
		public GameNPCInventory(GameNpcInventoryTemplate template)
		{
			foreach (InventoryItem item in template.AllItems)
			{
				AddItem((eInventorySlot)item.SlotPosition, GameInventoryItem.Create(item));
			}
		}
Beispiel #2
0
		/// <summary>
		/// Add equipment to the teleporter.
		/// </summary>
		/// <returns></returns>
		public override bool AddToWorld()
		{
			GameNpcInventoryTemplate template = new GameNpcInventoryTemplate();
			template.AddNPCEquipment(eInventorySlot.Cloak, 57, 66);
			template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1005, 86);
			template.AddNPCEquipment(eInventorySlot.LegsArmor, 140, 6);
			template.AddNPCEquipment(eInventorySlot.ArmsArmor, 141, 6);
			template.AddNPCEquipment(eInventorySlot.HandsArmor, 142, 6);
			template.AddNPCEquipment(eInventorySlot.FeetArmor, 143, 6);
			template.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 1166);
			Inventory = template.CloseTemplate();

			SwitchWeapon(GameLiving.eActiveWeaponSlot.TwoHanded);
			return base.AddToWorld();
		}
Beispiel #3
0
        public override bool AddToWorld()
        {
            GameNpcInventoryTemplate template = new GameNpcInventoryTemplate();
			switch (Realm)
			{
				case eRealm.Albion: 
					template.AddNPCEquipment(eInventorySlot.TorsoArmor, 2230); break;
				case eRealm.Midgard:
					template.AddNPCEquipment(eInventorySlot.TorsoArmor, 2232);
					template.AddNPCEquipment(eInventorySlot.ArmsArmor, 2233);
					template.AddNPCEquipment(eInventorySlot.LegsArmor, 2234);
					template.AddNPCEquipment(eInventorySlot.HandsArmor, 2235);
					template.AddNPCEquipment(eInventorySlot.FeetArmor, 2236);
					break;
				case eRealm.Hibernia:
					template.AddNPCEquipment(eInventorySlot.TorsoArmor, 2231); ; break;
			}

            Inventory = template.CloseTemplate();
            Flags = eFlags.PEACE;	// Peace flag.
            return base.AddToWorld();
        }
Beispiel #4
0
		/// <summary>
		/// Load equipment for the pet.
		/// </summary>
		/// <param name="templateID">Equipment Template ID.</param>
		/// <returns>True on success, else false.</returns>
		private bool LoadEquipmentTemplate(String templateID)
		{
			if (templateID.Length > 0)
			{
				GameNpcInventoryTemplate inventoryTemplate = new GameNpcInventoryTemplate();
				if (inventoryTemplate.LoadFromDatabase(templateID))
				{
					Inventory = new GameNPCInventory(inventoryTemplate);
					InventoryItem item;
					if ((item = Inventory.GetItem(eInventorySlot.TwoHandWeapon)) != null)
					{
						item.DPS_AF = (int)(Level * 3.3);
						item.SPD_ABS = 50;
						switch (templateID)
						{
							case "abomination_fiery_sword":
							case "abomination_flaming_mace":
								item.ProcSpellID = (int)Procs.Heat;
								break;
							case "abomination_icy_sword":
							case "abomination_frozen_mace":
								item.ProcSpellID = (int)Procs.Cold;
								break;
							case "abomination_poisonous_sword":
							case "abomination_venomous_mace":
								item.ProcSpellID = (int)Procs.Poison;
								break;
						}
						SwitchWeapon(eActiveWeaponSlot.TwoHanded);
					}
					else
					{
						if ((item = Inventory.GetItem(eInventorySlot.RightHandWeapon)) != null)
						{
							item.DPS_AF = (int)(Level * 3.3);
							item.SPD_ABS = 37;
						}
						if ((item = Inventory.GetItem(eInventorySlot.LeftHandWeapon)) != null)
						{
							item.DPS_AF = (int)(Level * 3.3);
							item.SPD_ABS = 37;
						}
						SwitchWeapon(eActiveWeaponSlot.Standard);
					}
				}
				foreach (GamePlayer player in GetPlayersInRadius(WorldMgr.VISIBILITY_DISTANCE))
				{
					if (player == null) continue;
					player.Out.SendLivingEquipmentUpdate(this);
				}
				return true;
			}
			return false;
		}
		/// <summary>
		/// Load a NPC template onto this NPC
		/// </summary>
		/// <param name="template"></param>
		public virtual void LoadTemplate(INpcTemplate template)
		{
			if (template == null)
				return;

			var m_templatedInventory = new List<string>();
			this.TranslationId = template.TranslationId;
			this.Name = template.Name;
			this.Suffix = template.Suffix;
			this.GuildName = template.GuildName;
			this.ExamineArticle = template.ExamineArticle;
			this.MessageArticle = template.MessageArticle;
			
			#region Models, Sizes, Levels, Gender
			// Grav: this.Model/Size/Level accessors are triggering SendUpdate()
			// so i must use them, and not directly use private variables
			ushort choosenModel = 1;
			var splitModel = template.Model.SplitCSV(true);
			ushort.TryParse(splitModel[Util.Random(0,splitModel.Count-1)], out choosenModel);
			this.Model = choosenModel;
			
			// Graveen: template.Gender is 0,1 or 2 for respectively eGender.Neutral("it"), eGender.Male ("he"), 
			// eGender.Female ("she"). Any other value is randomly choosing a gender for current GameNPC
			int choosenGender = template.Gender>2?Util.Random(0,2):template.Gender;

			switch (choosenGender)
			{
				default	:
				case 0	: this.Gender = eGender.Neutral; break;
				case 1	: this.Gender = eGender.Male; break;
				case 2	: this.Gender = eGender.Female; break;			
			}
			
			byte choosenSize = 50;
			if (!Util.IsEmpty(template.Size))
			{
				var split = template.Size.SplitCSV(true);
				byte.TryParse(split[Util.Random(0,split.Count-1)], out choosenSize);
			}
			this.Size = choosenSize;
			
			byte choosenLevel = 1;
			if (!Util.IsEmpty(template.Level))
			{
				var split = template.Level.SplitCSV(true);
				byte.TryParse(split[Util.Random(0,split.Count-1)], out choosenLevel);
			}
			this.Level = choosenLevel;
			#endregion

			#region Stats
			// Stats
			if (template.Strength==0)
			{
				this.AutoSetStats();
			}
			else
			{
				this.Constitution = (short)template.Constitution;
				this.Dexterity = (short)template.Dexterity;
				this.Strength = (short)template.Strength;
				this.Quickness = (short)template.Quickness;
				this.Intelligence = (short)template.Intelligence;
				this.Piety = (short)template.Piety;
				this.Empathy = (short)template.Empathy;
				this.Charisma = (short)template.Charisma;
			}
			#endregion

			#region Misc Stats
			this.MaxDistance = template.MaxDistance;
			this.TetherRange = template.TetherRange;
			this.Race = (short)template.Race;
			this.BodyType = (ushort)template.BodyType;
			this.MaxSpeedBase = template.MaxSpeed;
			this.Flags = (eFlags)template.Flags;
			this.MeleeDamageType = template.MeleeDamageType;
			this.ParryChance = template.ParryChance;
			this.EvadeChance = template.EvadeChance;
			this.BlockChance = template.BlockChance;
			this.LeftHandSwingChance = template.LeftHandSwingChance;
			#endregion

			#region Inventory
			//Ok lets start loading the npc equipment - only if there is a value!
			if (!Util.IsEmpty(template.Inventory))
			{
				bool equipHasItems = false;
				GameNpcInventoryTemplate equip = new GameNpcInventoryTemplate();
				//First let's try to reach the npcequipment table and load that!
				//We use a ';' split to allow npctemplates to support more than one equipmentIDs
				var equipIDs = template.Inventory.SplitCSV();
				if (!template.Inventory.Contains(":"))
				{

					foreach (string str in equipIDs)
					{
						m_templatedInventory.Add(str);
					}

					string equipid = "";

					if (m_templatedInventory.Count > 0)
					{
						if (m_templatedInventory.Count == 1)
							equipid = template.Inventory;
						else
							equipid = m_templatedInventory[Util.Random(m_templatedInventory.Count - 1)];
					}
					if (equip.LoadFromDatabase(equipid))
						equipHasItems = true;
				}

				#region Legacy Equipment Code
				//Nope, nothing in the npcequipment table, lets do the crappy parsing
				//This is legacy code
				if (!equipHasItems && template.Inventory.Contains(":"))
				{
					//Temp list to store our models
					List<int> tempModels = new List<int>();

					//Let's go through all of our ';' seperated slots
					foreach (string str in equipIDs)
					{
						tempModels.Clear();
						//Split the equipment into slot and model(s)
						string[] slotXModels = str.Split(':');
						//It should only be two in length SLOT : MODELS
						if (slotXModels.Length == 2)
						{
							int slot;
							//Let's try to get our slot
							if (Int32.TryParse(slotXModels[0], out slot))
							{
								//Now lets go through and add all the models to the list
								string[] models = slotXModels[1].Split('|');
								foreach (string strModel in models)
								{
									//We'll add it to the list if we successfully parse it!
									int model;
									if (Int32.TryParse(strModel, out model))
										tempModels.Add(model);
								}

								//If we found some models let's randomly pick one and add it the equipment
								if (tempModels.Count > 0)
									equipHasItems |= equip.AddNPCEquipment((eInventorySlot)slot, tempModels[Util.Random(tempModels.Count - 1)]);
							}
						}
					}
				}
				#endregion

				//We added some items - let's make it the new inventory
				if (equipHasItems)
				{
					this.Inventory = new GameNPCInventory(equip);
					if (this.Inventory.GetItem(eInventorySlot.DistanceWeapon) != null)
						this.SwitchWeapon(eActiveWeaponSlot.Distance);
				}
				
				if (template.VisibleActiveWeaponSlot > 0)
					this.VisibleActiveWeaponSlots = template.VisibleActiveWeaponSlot;
			}
			#endregion
			
			if (template.Spells != null) this.Spells = template.Spells;
			if (template.Styles != null) this.Styles = template.Styles;
			if (template.Abilities != null)
			{
				lock (m_lockAbilities)
				{
					foreach (Ability ab in template.Abilities)
						m_abilities[ab.KeyName] = ab;
				}
			}
			BuffBonusCategory4[(int)eStat.STR] += template.Strength;
			BuffBonusCategory4[(int)eStat.DEX] += template.Dexterity;
			BuffBonusCategory4[(int)eStat.CON] += template.Constitution;
			BuffBonusCategory4[(int)eStat.QUI] += template.Quickness;
			BuffBonusCategory4[(int)eStat.INT] += template.Intelligence;
			BuffBonusCategory4[(int)eStat.PIE] += template.Piety;
			BuffBonusCategory4[(int)eStat.EMP] += template.Empathy;
			BuffBonusCategory4[(int)eStat.CHR] += template.Charisma;

			m_ownBrain = new StandardMobBrain
			{
				Body = this,
				AggroLevel = template.AggroLevel,
				AggroRange = template.AggroRange
			};
			this.NPCTemplate = template as NpcTemplate;
		}
		/// <summary>
		/// Loads the equipment template of this npc
		/// </summary>
		/// <param name="equipmentTemplateID">The template id</param>
		public virtual void LoadEquipmentTemplateFromDatabase(string equipmentTemplateID)
		{
			EquipmentTemplateID = equipmentTemplateID;
			if (EquipmentTemplateID != null && EquipmentTemplateID.Length > 0)
			{
				GameNpcInventoryTemplate template = new GameNpcInventoryTemplate();
				if (template.LoadFromDatabase(EquipmentTemplateID))
				{
					m_inventory = template.CloseTemplate();
				}
				else
				{
					//if (log.IsDebugEnabled)
					//{
					//    //log.Warn("Error loading NPC inventory: InventoryID="+EquipmentTemplateID+", NPC name="+Name+".");
					//}
				}
				if (Inventory != null)
				{
					//if the distance slot isnt empty we use that
					//Seems to always
					if (Inventory.GetItem(eInventorySlot.DistanceWeapon) != null)
						SwitchWeapon(eActiveWeaponSlot.Distance);
					else
					{
						InventoryItem twohand = Inventory.GetItem(eInventorySlot.TwoHandWeapon);
						InventoryItem onehand = Inventory.GetItem(eInventorySlot.RightHandWeapon);

						if (twohand != null && onehand != null)
							//Let's add some random chance
							SwitchWeapon(Util.Chance(50) ? eActiveWeaponSlot.TwoHanded : eActiveWeaponSlot.Standard);
						else if (twohand != null)
							//Hmm our right hand weapon may have been null
							SwitchWeapon(eActiveWeaponSlot.TwoHanded);
						else if (onehand != null)
							//Hmm twohand was null lets default down here
							SwitchWeapon(eActiveWeaponSlot.Standard);
					}
				}
			}
		}
Beispiel #7
0
		public virtual void SetInventoryTemplate()
		{
			var template = new GameNpcInventoryTemplate();
			switch (Realm)
			{
				case eRealm.Albion:
					{
						Model = 92;
						template.AddNPCEquipment(eInventorySlot.RightHandWeapon, 310, 81);
						template.AddNPCEquipment(eInventorySlot.FeetArmor, 1301);
						template.AddNPCEquipment(eInventorySlot.LegsArmor, 1312);

						if (Util.Chance(50))
						{
							template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1005, 67);
						}
						else
						{
							template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1313);
						}

						template.AddNPCEquipment(eInventorySlot.Cloak, 669, 65);
					}
					break;
				case eRealm.Midgard:
					{
						Model = 156;
						template.AddNPCEquipment(eInventorySlot.RightHandWeapon, 321, 81);
						template.AddNPCEquipment(eInventorySlot.FeetArmor, 1301);
						template.AddNPCEquipment(eInventorySlot.LegsArmor, 1303);

						if (Util.Chance(50))
						{
							template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1300);
						}
						else
						{
							template.AddNPCEquipment(eInventorySlot.TorsoArmor, 993);
						}

						template.AddNPCEquipment(eInventorySlot.Cloak, 669, 51);
					}
					break;
				case eRealm.Hibernia:
					{
						Model = 335;
						template.AddNPCEquipment(eInventorySlot.RightHandWeapon, 457, 81);
						template.AddNPCEquipment(eInventorySlot.FeetArmor, 1333);

						if (Util.Chance(50))
						{
							template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1336);
						}
						else
						{
							template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1008);
						}

						template.AddNPCEquipment(eInventorySlot.Cloak, 669);
					}
					break;
			}

			Inventory = template.CloseTemplate();
		}
Beispiel #8
0
		/// <summary>
		/// Method to load all the templates into memory
		/// </summary>
		public static void LoadTemplates()
		{
			#region Albion
            #region Archer
            if (!Albion_Archer.LoadFromDatabase("albion_archer"))
            {
                Albion_Archer.AddNPCEquipment(eInventorySlot.Cloak, 3800);
                Albion_Archer.AddNPCEquipment(eInventorySlot.TorsoArmor, 728);
                Albion_Archer.AddNPCEquipment(eInventorySlot.LegsArmor, 663);
                Albion_Archer.AddNPCEquipment(eInventorySlot.ArmsArmor, 664);
                Albion_Archer.AddNPCEquipment(eInventorySlot.HandsArmor, 665);
                Albion_Archer.AddNPCEquipment(eInventorySlot.FeetArmor, 666);
                Albion_Archer.AddNPCEquipment(eInventorySlot.DistanceWeapon, 849);
                Albion_Archer.AddNPCEquipment(eInventorySlot.RightHandWeapon, 653);
                Albion_Archer.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 59);
                Albion_Archer = Albion_Archer.CloseTemplate();
                Albion_Archer.GetItem(eInventorySlot.DistanceWeapon).Hand = (int)eHandFlag.Two;
                Albion_Archer.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
            }
            #endregion
            #region Caster
            if (!Albion_Caster.LoadFromDatabase("albion_caster"))
            {
                Albion_Caster.AddNPCEquipment(eInventorySlot.Cloak, 3800);
                Albion_Caster.AddNPCEquipment(eInventorySlot.TorsoArmor, 58);
                Albion_Caster.AddNPCEquipment(eInventorySlot.HandsArmor, 142);
                Albion_Caster.AddNPCEquipment(eInventorySlot.FeetArmor, 143);
                Albion_Caster.AddNPCEquipment(eInventorySlot.RightHandWeapon, 13);
                Albion_Caster.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 1170);
                Albion_Caster = Albion_Caster.CloseTemplate();
                Albion_Caster.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Fighter
            if (!Albion_Fighter.LoadFromDatabase("albion_fighter"))
            {
                Albion_Fighter.AddNPCEquipment(eInventorySlot.Cloak, 3800); 
                Albion_Fighter.AddNPCEquipment(eInventorySlot.TorsoArmor, 662);
                Albion_Fighter.AddNPCEquipment(eInventorySlot.LegsArmor, 663);
                Albion_Fighter.AddNPCEquipment(eInventorySlot.ArmsArmor, 664);
                Albion_Fighter.AddNPCEquipment(eInventorySlot.HandsArmor, 665);
                Albion_Fighter.AddNPCEquipment(eInventorySlot.FeetArmor, 666);
                Albion_Fighter.AddNPCEquipment(eInventorySlot.HeadArmor, 95);
                Albion_Fighter.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 60);
                Albion_Fighter.AddNPCEquipment(eInventorySlot.RightHandWeapon, 10);
                Albion_Fighter.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 649);
                Albion_Fighter = Albion_Fighter.CloseTemplate();
                Albion_Fighter.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
                Albion_Fighter.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Lord
            if (!Albion_Lord.LoadFromDatabase("albion_lord"))
            {
                Albion_Lord.AddNPCEquipment(eInventorySlot.Cloak, 3800); //676
                Albion_Lord.AddNPCEquipment(eInventorySlot.TorsoArmor, 662);
                Albion_Lord.AddNPCEquipment(eInventorySlot.LegsArmor, 663);
                Albion_Lord.AddNPCEquipment(eInventorySlot.ArmsArmor, 664);
                Albion_Lord.AddNPCEquipment(eInventorySlot.HandsArmor, 665);
                Albion_Lord.AddNPCEquipment(eInventorySlot.FeetArmor, 666);
                Albion_Lord.AddNPCEquipment(eInventorySlot.HeadArmor, 95);
                Albion_Lord.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 60);
                Albion_Lord.AddNPCEquipment(eInventorySlot.RightHandWeapon, 10);
                Albion_Lord.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 649);
                Albion_Lord.AddNPCEquipment(eInventorySlot.DistanceWeapon, 132);
                Albion_Lord = Albion_Lord.CloseTemplate();
                Albion_Lord.GetItem(eInventorySlot.DistanceWeapon).Hand = (int)eHandFlag.Two;
                Albion_Lord.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
                Albion_Lord.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Healer
            if (!Albion_Healer.LoadFromDatabase("albion_healer"))
            {
                Albion_Healer.AddNPCEquipment(eInventorySlot.Cloak, 3800);
                Albion_Healer.AddNPCEquipment(eInventorySlot.TorsoArmor, 713);
                Albion_Healer.AddNPCEquipment(eInventorySlot.LegsArmor, 663);
                Albion_Healer.AddNPCEquipment(eInventorySlot.ArmsArmor, 664);
                Albion_Healer.AddNPCEquipment(eInventorySlot.HandsArmor, 665);
                Albion_Healer.AddNPCEquipment(eInventorySlot.FeetArmor, 666);
                Albion_Healer.AddNPCEquipment(eInventorySlot.HeadArmor, 94);
                Albion_Healer.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 61);
                Albion_Healer.AddNPCEquipment(eInventorySlot.RightHandWeapon, 3282);
                Albion_Healer = Albion_Healer.CloseTemplate();
                Albion_Fighter.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
            }
            #endregion
            #region Stealther
            if (!Albion_Stealther.LoadFromDatabase("albion_stealther"))
            {
                Albion_Stealther.AddNPCEquipment(eInventorySlot.Cloak, 3800);
                Albion_Stealther.AddNPCEquipment(eInventorySlot.TorsoArmor, 792);
                Albion_Stealther.AddNPCEquipment(eInventorySlot.LegsArmor, 663);
                Albion_Stealther.AddNPCEquipment(eInventorySlot.ArmsArmor, 664);
                Albion_Stealther.AddNPCEquipment(eInventorySlot.HandsArmor, 665);
                Albion_Stealther.AddNPCEquipment(eInventorySlot.FeetArmor, 666);
                Albion_Stealther.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 653);
                Albion_Stealther.AddNPCEquipment(eInventorySlot.RightHandWeapon, 653);
                Albion_Stealther.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 653);
                Albion_Stealther = Albion_Stealther.CloseTemplate();
                Albion_Stealther.GetItem(eInventorySlot.LeftHandWeapon).Hand = (int)eHandFlag.Left;
                Albion_Stealther.GetItem(eInventorySlot.LeftHandWeapon).SlotPosition = Slot.LEFTHAND;
            }
            #endregion
            #region PK
            //portal keep
			Albion_FighterPK.LoadFromDatabase("alb_fighter_pk");
			Albion_ArcherPK.LoadFromDatabase("alb_archer_pk");
			Albion_CasterPK.LoadFromDatabase("alb_caster_pk");
			#endregion
			#endregion
			#region Midgard
            #region Archer
            if (!Midgard_Archer.LoadFromDatabase("midgard_archer"))
            {
                Midgard_Archer.AddNPCEquipment(eInventorySlot.Cloak, 3801);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.TorsoArmor, 668);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.LegsArmor, 2943);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.ArmsArmor, 2944);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.HandsArmor, 2945);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.FeetArmor, 2946);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.HeadArmor, 2874);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.DistanceWeapon, 1037);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 328);
                Midgard_Archer.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 59);
                Midgard_Archer = Midgard_Archer.CloseTemplate();
                Midgard_Archer.GetItem(eInventorySlot.DistanceWeapon).Hand = (int)eHandFlag.Two;
                Midgard_Archer.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
                Midgard_Archer.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
            }
            #endregion
            #region Caster
            if (!Midgard_Caster.LoadFromDatabase("midgard_caster"))
            {
                Midgard_Caster.AddNPCEquipment(eInventorySlot.Cloak, 3801); 
                Midgard_Caster.AddNPCEquipment(eInventorySlot.TorsoArmor, 98);
                Midgard_Caster.AddNPCEquipment(eInventorySlot.HandsArmor, 142);
                Midgard_Caster.AddNPCEquipment(eInventorySlot.FeetArmor, 143);
                Midgard_Caster.AddNPCEquipment(eInventorySlot.RightHandWeapon, 13);
                Midgard_Caster.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 566);
                Midgard_Caster = Midgard_Caster.CloseTemplate();
                Midgard_Caster.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Fighter
            if (!Midgard_Fighter.LoadFromDatabase("midgard_fighter"))
            {
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.Cloak, 3801); 
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.TorsoArmor, 668);
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.LegsArmor, 2943);
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.ArmsArmor, 2944);
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.HandsArmor, 2945);
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.FeetArmor, 2946);
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.HeadArmor, 2874);
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 60);
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.RightHandWeapon, 313);
                Midgard_Fighter.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 572);
                Midgard_Fighter = Midgard_Fighter.CloseTemplate();
                Midgard_Fighter.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
                Midgard_Fighter.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Lord
            if (!Midgard_Lord.LoadFromDatabase("midgard_lord"))
            {
                Midgard_Lord.AddNPCEquipment(eInventorySlot.Cloak, 3801);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.TorsoArmor, 668);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.LegsArmor, 2943);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.ArmsArmor, 2944);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.HandsArmor, 2945);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.FeetArmor, 2946);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.HeadArmor, 2874);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 60);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.RightHandWeapon, 313);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 572);
                Midgard_Lord.AddNPCEquipment(eInventorySlot.DistanceWeapon, 564);
                Midgard_Lord = Midgard_Lord.CloseTemplate();
                Midgard_Lord.GetItem(eInventorySlot.DistanceWeapon).Hand = (int)eHandFlag.Two;
                Midgard_Lord.GetItem(eInventorySlot.DistanceWeapon).Object_Type = (int)eObjectType.Longbow;
                Midgard_Lord.GetItem(eInventorySlot.DistanceWeapon).SlotPosition = Slot.RANGED;
                Midgard_Lord.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
                Midgard_Lord.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Healer
            if (!Midgard_Healer.LoadFromDatabase("midgard_healer"))
            {
                Midgard_Healer.AddNPCEquipment(eInventorySlot.Cloak, 3801); 
                Midgard_Healer.AddNPCEquipment(eInventorySlot.TorsoArmor, 668);
                Midgard_Healer.AddNPCEquipment(eInventorySlot.LegsArmor, 2943);
                Midgard_Healer.AddNPCEquipment(eInventorySlot.ArmsArmor, 2944);
                Midgard_Healer.AddNPCEquipment(eInventorySlot.HandsArmor, 2945);
                Midgard_Healer.AddNPCEquipment(eInventorySlot.FeetArmor, 2946);
                Midgard_Healer.AddNPCEquipment(eInventorySlot.HeadArmor, 2874);
                Midgard_Healer.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 59);
                Midgard_Healer.AddNPCEquipment(eInventorySlot.RightHandWeapon, 3335);
                Midgard_Healer.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 3336);
                Midgard_Healer = Midgard_Healer.CloseTemplate();
                Midgard_Healer.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
            }
            #endregion
            #region Hastener
            if (!Midgard_Hastener.LoadFromDatabase("midgard_hastener"))
            {
                Midgard_Hastener.AddNPCEquipment(eInventorySlot.Cloak, 443, 43);
                Midgard_Hastener.AddNPCEquipment(eInventorySlot.TorsoArmor, 230);
                Midgard_Hastener.AddNPCEquipment(eInventorySlot.HandsArmor, 233);
                Midgard_Hastener.AddNPCEquipment(eInventorySlot.FeetArmor, 234);
                Midgard_Hastener.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 228);
                Midgard_Hastener = Midgard_Hastener.CloseTemplate();
                Midgard_Hastener.GetItem(eInventorySlot.LeftHandWeapon).Hand = (int)eHandFlag.Left;
                Midgard_Hastener.GetItem(eInventorySlot.LeftHandWeapon).SlotPosition = Slot.LEFTHAND;
            }
            #endregion
            #region Stealther
            if (!Midgard_Stealther.LoadFromDatabase("midgard_stealther"))
            {
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.Cloak, 3801); 
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.TorsoArmor, 668);
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.LegsArmor, 2943);
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.ArmsArmor, 2944);
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.HandsArmor, 2945);
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.FeetArmor, 2946);
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.HeadArmor, 335);
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 573);
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.RightHandWeapon, 573);
                Midgard_Stealther.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 577);
                Midgard_Stealther = Midgard_Stealther.CloseTemplate();
                Midgard_Stealther.GetItem(eInventorySlot.LeftHandWeapon).Hand = (int)eHandFlag.Left;
                Albion_Stealther.GetItem(eInventorySlot.LeftHandWeapon).SlotPosition = Slot.LEFTHAND;
            }
            #endregion
			#region PK
			Midgard_FighterPK.LoadFromDatabase("mid_fighter_pk");
			Midgard_ArcherPK.LoadFromDatabase("mid_archer_pk");
			Midgard_CasterPK.LoadFromDatabase("mid_caster_pk");
			#endregion
			#endregion
			#region Hibernia
            #region Archer
            if (!Hibernia_Archer.LoadFromDatabase("hibernia_archer"))
            {
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.Cloak, 3802);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.TorsoArmor, 667);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.LegsArmor, 989);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.ArmsArmor, 990);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.HandsArmor, 991);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.FeetArmor, 992);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.HeadArmor, 1207);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.DistanceWeapon, 919);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.RightHandWeapon, 643);
                Hibernia_Archer.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 643);
                Hibernia_Archer = Hibernia_Archer.CloseTemplate();
                Hibernia_Archer.GetItem(eInventorySlot.DistanceWeapon).Hand = (int)eHandFlag.Two;
                Hibernia_Archer.GetItem(eInventorySlot.DistanceWeapon).Object_Type = (int)eObjectType.RecurvedBow;
                Hibernia_Archer.GetItem(eInventorySlot.DistanceWeapon).SlotPosition = Slot.RANGED;
                Hibernia_Archer.GetItem(eInventorySlot.LeftHandWeapon).Hand = (int)eHandFlag.Left;
            }
            #endregion
            #region Caster
            if (!Hibernia_Caster.LoadFromDatabase("hibernia_caster"))
            {
                Hibernia_Caster.AddNPCEquipment(eInventorySlot.Cloak, 3802);
                Hibernia_Caster.AddNPCEquipment(eInventorySlot.TorsoArmor, 97);
                Hibernia_Caster.AddNPCEquipment(eInventorySlot.HandsArmor, 142);
                Hibernia_Caster.AddNPCEquipment(eInventorySlot.FeetArmor, 143);
                Hibernia_Caster.AddNPCEquipment(eInventorySlot.RightHandWeapon, 13);
                Hibernia_Caster.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 1176);
                Hibernia_Caster = Hibernia_Caster.CloseTemplate();
                Hibernia_Caster.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Fighter
            if (!Hibernia_Fighter.LoadFromDatabase("hibernia_fighter"))
            {
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.Cloak, 3802);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.TorsoArmor, 667);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.LegsArmor, 989);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.ArmsArmor, 990);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.HandsArmor, 991);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.FeetArmor, 992);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.HeadArmor, 1207);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 79);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.RightHandWeapon, 897);
                Hibernia_Fighter.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 476);
                Hibernia_Fighter = Hibernia_Fighter.CloseTemplate();
                Hibernia_Fighter.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
                Hibernia_Fighter.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Lord
            if (!Hibernia_Lord.LoadFromDatabase("hibernia_lord"))
            {
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.Cloak, 3802); 
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.TorsoArmor, 667);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.LegsArmor, 989);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.ArmsArmor, 990);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.HandsArmor, 991);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.FeetArmor, 992);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.HeadArmor, 1207);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 79);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.RightHandWeapon, 897);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 476);
                Hibernia_Lord.AddNPCEquipment(eInventorySlot.DistanceWeapon, 471);
                Hibernia_Lord.GetItem(eInventorySlot.DistanceWeapon).Hand = (int)eHandFlag.Two;
                Hibernia_Lord.GetItem(eInventorySlot.DistanceWeapon).Object_Type = (int)eObjectType.CompositeBow;
                Hibernia_Lord.GetItem(eInventorySlot.DistanceWeapon).SlotPosition = Slot.RANGED;
                Hibernia_Lord.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
                Hibernia_Lord.GetItem(eInventorySlot.TwoHandWeapon).Hand = (int)eHandFlag.Two;
            }
            #endregion
            #region Healer
            if (!Hibernia_Healer.LoadFromDatabase("hibernia_healer"))
            {
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.Cloak, 3802);
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.TorsoArmor, 667);
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.LegsArmor, 989);
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.ArmsArmor, 990);
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.HandsArmor, 991);
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.FeetArmor, 992);
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.HeadArmor, 1207);
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 59);
                Hibernia_Healer.AddNPCEquipment(eInventorySlot.RightHandWeapon, 3247);
                Hibernia_Healer = Hibernia_Healer.CloseTemplate();
                Hibernia_Healer.GetItem(eInventorySlot.LeftHandWeapon).Object_Type = (int)eObjectType.Shield;
            }
            #endregion
            #region Stealther
            if (!Hibernia_Stealther.LoadFromDatabase("hibernia_stealther"))
            {
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.Cloak, 3802);
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.TorsoArmor, 667);
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.LegsArmor, 989);
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.ArmsArmor, 990);
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.HandsArmor, 991);
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.FeetArmor, 992);
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.LeftHandWeapon, 2685);
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.RightHandWeapon, 2685);
                Hibernia_Stealther.AddNPCEquipment(eInventorySlot.TwoHandWeapon, 2687);
                Hibernia_Stealther = Hibernia_Stealther.CloseTemplate();
                Hibernia_Stealther.GetItem(eInventorySlot.LeftHandWeapon).Hand = (int)eHandFlag.Left;
                Albion_Stealther.GetItem(eInventorySlot.LeftHandWeapon).SlotPosition = Slot.LEFTHAND;
            }
            #endregion
            #region PK
			Hibernia_FighterPK.LoadFromDatabase("hib_fighter_pk");
			Hibernia_ArcherPK.LoadFromDatabase("hib_archer_pk");
			Hibernia_CasterPK.LoadFromDatabase("hib_caster_pk");
			#endregion
			#endregion
		}
		/// <summary>
		/// Static constructor
		/// </summary>
		static GameNpcInventoryTemplate()
		{
			GameNpcInventoryTemplate temp = new GameNpcInventoryTemplate().CloseTemplate();
			Thread.MemoryBarrier();
			EmptyTemplate = temp;
		}
		/// <summary>
		/// Creates a copy of the GameNpcInventoryTemplate.
		/// </summary>
		/// <returns>Open copy of this template</returns>
		public GameNpcInventoryTemplate CloneTemplate()
		{
			lock (m_items)
			{
				var clone = new GameNpcInventoryTemplate();
				clone.m_changedSlots = new List<eInventorySlot>(m_changedSlots);
				clone.m_changesCounter = m_changesCounter;

				foreach (var de in m_items)
				{
					InventoryItem oldItem = de.Value;

					InventoryItem item = new GameInventoryItem();
					item.Template = new ItemTemplate();
					item.Template.Id_nb = oldItem.Id_nb;
					item.Model = oldItem.Model;
					item.Color = oldItem.Color;
					item.Effect = oldItem.Effect;
					item.Extension = oldItem.Extension;
					item.SlotPosition = oldItem.SlotPosition;
					clone.m_items.Add(de.Key, item);
				}

				clone.m_isClosed = false;

				return clone;
			}
		}
Beispiel #11
0
 public DecoySpellHandler(GameLiving caster, Spell spell, SpellLine line)
     : base(caster, spell, line)
 {
     Random m_rnd = new Random();
     decoy = new GameDecoy();
     //Fill the object variables
     decoy.CurrentRegion = caster.CurrentRegion;
     decoy.Heading = (ushort)((caster.Heading + 2048) % 4096);
     decoy.Level = 50;
     decoy.Realm = caster.Realm;
     decoy.X = caster.X;
     decoy.Y = caster.Y;
     decoy.Z = caster.Z;
     string TemplateId = "";
     switch (caster.Realm)
     {
         case eRealm.Albion:
             decoy.Name = "Avalonian Unicorn Knight";
             decoy.Model = (ushort)m_rnd.Next(61, 68);
             TemplateId = "e3ead77b-22a7-4b7d-a415-92a29295dcf7";
             break;
         case eRealm.Midgard:
             decoy.Name = "Kobold Elding Herra";
             decoy.Model = (ushort)m_rnd.Next(169, 184);
             TemplateId = "ee137bff-e83d-4423-8305-8defa2cbcd7a";
             break;
         case eRealm.Hibernia:
             decoy.Name = "Elf Gilded Spear";
             decoy.Model = (ushort)m_rnd.Next(334, 349);
             TemplateId = "a4c798a2-186a-4bda-99ff-ccef228cb745";
             break;
     }
     GameNpcInventoryTemplate load = new GameNpcInventoryTemplate();
     if (load.LoadFromDatabase(TemplateId))
     {
         decoy.EquipmentTemplateID = TemplateId;
         decoy.Inventory = load;
         decoy.BroadcastLivingEquipmentUpdate();
     }
     decoy.CurrentSpeed = 0;
     decoy.GuildName = "";
 }
Beispiel #12
0
        public override bool AddToWorld()
        {
            var template = new GameNpcInventoryTemplate();
            switch (Realm)
            {
                case eRealm.Albion:
                    {
                        Model = 92;
                        template.AddNPCEquipment(eInventorySlot.RightHandWeapon, 310, 81);
                        template.AddNPCEquipment(eInventorySlot.FeetArmor, 1301);
                        template.AddNPCEquipment(eInventorySlot.LegsArmor, 1312);

                        if (Util.Chance(50))
                        {
                            template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1005, 67);
                        }
                        else
                        {
                            template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1313);
                        }

                        template.AddNPCEquipment(eInventorySlot.Cloak, 669, 65);
                    }
                    break;
                case eRealm.Midgard:
                    {
                        Model = 156;
                        template.AddNPCEquipment(eInventorySlot.RightHandWeapon, 321, 81);
                        template.AddNPCEquipment(eInventorySlot.FeetArmor, 1301);
                        template.AddNPCEquipment(eInventorySlot.LegsArmor, 1303);

                        if (Util.Chance(50))
                        {
                            template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1300);
                        }
                        else
                        {
                            template.AddNPCEquipment(eInventorySlot.TorsoArmor, 993);
                        }

                        template.AddNPCEquipment(eInventorySlot.Cloak, 669, 51);
                    }
                    break;
                case eRealm.Hibernia:
                    {
                        Model = 335;
                        template.AddNPCEquipment(eInventorySlot.RightHandWeapon, 457, 81);
                        template.AddNPCEquipment(eInventorySlot.FeetArmor, 1333);

                        if (Util.Chance(50))
                        {
                            template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1336);
                        }
                        else
                        {
                            template.AddNPCEquipment(eInventorySlot.TorsoArmor, 1008);
                        }

                        template.AddNPCEquipment(eInventorySlot.Cloak, 669);
                    }
                    break;
            }

            Inventory = template.CloseTemplate();
            base.AddToWorld();

            House house = HouseMgr.GetHouse(HouseNumber);
            house.ConsignmentMerchant = this;
            SetEmblem();

            // verify if OwnerLot is correct 
            var itemcon = GameServer.Database.SelectObjects<InventoryItem>("OwnerID = '" + house.OwnerID + "' AND SlotPosition >= 1500 AND SlotPosition <= 1599");
            if (itemcon.Count > 0)
            {
                for (int i = 0; i < itemcon.Count; i++)
                {
                    itemcon[i].OwnerLot = ((ushort)HouseNumber);
                    GameServer.Database.SaveObject(itemcon[i]);
                }
            }

            return true;
        }
Beispiel #13
0
		/// <summary>
		/// Changes the commander's weapon to the specified type
        /// by WHRIA
		/// </summary>
		/// <param name="slot"></param>
		/// <param name="aSlot"></param>
		/// <param name="weaponType"></param>
		protected void CommanderSwitchWeapon(eInventorySlot slot, eActiveWeaponSlot aSlot, string weaponType)
		{
            string templateID = string.Format("BD_Commander_{0}_{1}", slot.ToString(), weaponType);

            GameNpcInventoryTemplate inventoryTemplate = new GameNpcInventoryTemplate();
            if (inventoryTemplate.LoadFromDatabase(templateID))
            {
                Inventory = new GameNPCInventory(inventoryTemplate);
                if (Inventory.AllItems.Count == 0)
                {
                    if (log.IsErrorEnabled)
                        log.Error(string.Format("Unable to find Bonedancer item: {0}", templateID));
                    return;
                }
            }
            else
            {
                if (log.IsErrorEnabled)
                    log.Error(string.Format("Unable to find Bonedancer item: {0}", templateID));
                return;
            }

            SwitchWeapon(aSlot);
            AddStatsToWeapon();

            InventoryItem item_left;
            InventoryItem item_right;
            InventoryItem item_two;
            if (Inventory != null)
            {
                item_left = Inventory.GetItem(eInventorySlot.LeftHandWeapon);
                item_right = Inventory.GetItem(eInventorySlot.RightHandWeapon);
                item_two = Inventory.GetItem(eInventorySlot.TwoHandWeapon);

                switch (weaponType)
                {
                    case "one_handed_sword":
                        if (item_right != null)
                            item_right.Type_Damage = (int)eDamageType.Slash;
                        break;
                    case "two_handed_sword":
                        if (item_two != null)
                            item_right.Type_Damage = (int)eDamageType.Slash;
                        break;
                    case "one_handed_hammer":
                        if (item_right != null)
                            item_right.Type_Damage = (int)eDamageType.Crush;
                        break;
                    case "two_handed_hammer":
                        if (item_two != null)
                            item_right.Type_Damage = (int)eDamageType.Crush;
                        break;
                    case "one_handed_axe":
                        if (item_right != null)
                            item_right.Type_Damage = (int)eDamageType.Thrust;
                        break;
                    case "two_handed_axe":
                        if (item_two != null)
                            item_right.Type_Damage = (int)eDamageType.Thrust;
                        break;
                }
            }
            
            BroadcastLivingEquipmentUpdate();
		}