public async Task <IActionResult> PutPetItem(int id, PetItem petItem) { if (id != petItem.Id) { return(BadRequest()); } _context.Entry(petItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PetItemExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <PetItem> > PostPetItem(PetItem petItem) { _context.PetItems.Add(petItem); await _context.SaveChangesAsync(); return(CreatedAtAction("GetPetItem", new { id = petItem.Id }, petItem)); }
public Params(PetItem item) { for (int i = 0; i < (int)Param.Count; i++) { param[i] = item.GetParam((Param)i); } }
private static PetItem CreatePetItem(XmlNode petNode) { PetItem petItem = new PetItem(); petItem.SetBase(GetBaseItem(petNode)); petItem.itemType = BaseItem.ItemType.PET; return(petItem); }
public void GivePet(PetItem petInfo) { //if (Name == "ossimc82" || Name == "C453") //{ Pet = new Pet(Manager, petInfo, this); Pet.Move(X, Y); Owner.EnterWorld(Pet); //} }
public Pet(RealmManager manager, PetItem petData, Player playerOwner) : base(manager, (ushort)petData.Type, true, true) { rand = new Random(); PlayerOwner = playerOwner; Info = petData; try { if (petData.InstanceId != -1) { FirstPetLevel = new PetLevel(AbilityType.First, Utils.GetEnumByName <Ability>(Utils.GetEnumName <Ability>(petData.Abilities[0].Type)), petData.Abilities[0].Points, petData.Abilities[0].Power, this); SecondPetLevel = new PetLevel(AbilityType.Second, Utils.GetEnumByName <Ability>(Utils.GetEnumName <Ability>(petData.Abilities[1].Type)), petData.Abilities[1].Points, petData.Abilities[1].Power, this); ThirdPetLevel = new PetLevel(AbilityType.Third, Utils.GetEnumByName <Ability>(Utils.GetEnumName <Ability>(petData.Abilities[2].Type)), petData.Abilities[2].Points, petData.Abilities[2].Power, this); if (playerOwner != null) { using (Database db = new Database()) Size = db.GetPetSize(Convert.ToInt32(PlayerOwner.AccountId), petData.InstanceId); } else { Size = 0; } if (Size == 0) { Size = manager.GameData.TypeToPet[(ushort)petData.Type].Size; } PetRarity = (Rarity)petData.Rarity; PetFamily = manager.GameData.TypeToPet[(ushort)petData.Type].PetFamily; MaximumLevel = petData.MaxAbilityPower; UpdateNeeded = true; } Skin = petData.SkinName; SkinId = petData.Skin; PetId = petData.InstanceId; IsPet = true; } catch (Exception e) { PlayerOwner?.SendError( $"An error ocurred while loading your pet data, please report this to an Admin: {e.Message}"); } }
// Token: 0x0600284E RID: 10318 RVA: 0x00446448 File Offset: 0x00444648 public int CompareTo(PetItem obj) { if (obj.ItemID > this.ItemID) { return(-1); } if (obj.ItemID < this.ItemID) { return(1); } return(0); }
void Update() { Player player = Utils.ClientLocalPlayer(); if (!player) { return; } // use collider point(s) to also work with big entities if (player.target != null && player.target is Npc && Utils.ClosestDistance(player.collider, player.target.collider) <= player.interactionRange) { Npc npc = (Npc)player.target; // revive if (itemIndex != -1 && itemIndex < player.inventory.Count && player.inventory[itemIndex].amount > 0 && player.inventory[itemIndex].item.data is PetItem) { ItemSlot slot = player.inventory[itemIndex]; PetItem itemData = (PetItem)slot.item.data; if (itemData.petPrefab != null) { itemSlot.GetComponent <Image>().color = Color.white; itemSlot.GetComponent <Image>().sprite = slot.item.image; itemSlot.GetComponent <UIShowToolTip>().enabled = true; itemSlot.GetComponent <UIShowToolTip>().text = slot.ToolTip(); costsText.text = itemData.petPrefab.revivePrice.ToString(); reviveButton.interactable = slot.item.petHealth == 0 && player.gold >= itemData.petPrefab.revivePrice; reviveButton.onClick.SetListener(() => { player.CmdNpcRevivePet(itemIndex); itemIndex = -1; }); } } else { itemSlot.GetComponent <Image>().color = Color.clear; itemSlot.GetComponent <Image>().sprite = null; itemSlot.GetComponent <UIShowToolTip>().enabled = false; costsText.text = "0"; reviveButton.interactable = false; } } else { panel.SetActive(false); // hide } // addon system hooks Utils.InvokeMany(typeof(UINpcPetRevive), this, "Update_"); }
public Pet(RealmManager manager, PetItem petData, Player playerOwner) : base(manager, (ushort)petData.Type, true, true) { rand = new Random(); PlayerOwner = playerOwner; Info = petData; try { if (petData.InstanceId != -1) { FirstPetLevel = new PetLevel(AbilityType.First, Utils.GetEnumByName <Ability>(Utils.GetEnumName <Ability>(petData.Abilities[0].Type)), petData.Abilities[0].Points, petData.Abilities[0].Power, this); SecondPetLevel = new PetLevel(AbilityType.Second, Utils.GetEnumByName <Ability>(Utils.GetEnumName <Ability>(petData.Abilities[1].Type)), petData.Abilities[1].Points, petData.Abilities[1].Power, this); ThirdPetLevel = new PetLevel(AbilityType.Third, Utils.GetEnumByName <Ability>(Utils.GetEnumName <Ability>(petData.Abilities[2].Type)), petData.Abilities[2].Points, petData.Abilities[2].Power, this); Size = manager.GameData.TypeToPet[(ushort)petData.Type].Size; PetRarity = (Rarity)petData.Rarity; PetFamily = manager.GameData.TypeToPet[(ushort)petData.Type].PetFamily; MaximumLevel = petData.MaxAbilityPower; UpdateNeeded = true; } Skin = petData.SkinName; SkinId = petData.Skin; PetId = petData.InstanceId; IsPet = true; if (PetRarity == Rarity.Divine) //Change size if wanted. { Size = 70; } } catch (Exception e) { if (PlayerOwner != null) { PlayerOwner.SendError( String.Format( "An error ocurred while loading your pet data, please report this to an Admin: {0}", e.Message)); } } }
void Update() { Player player = Player.localPlayer; // use collider point(s) to also work with big entities if (player != null && player.Target != null && player.Target is Npc && Utility.Utility.ClosestDistance(player.collider, player.Target.collider) <= player.interactionRange) { Npc npc = (Npc)player.Target; // revive if (itemIndex != -1 && itemIndex < player.inventory.Count && player.inventory[itemIndex].amount > 0 && player.inventory[itemIndex].item.Data is PetItem) { ItemSlot slot = player.inventory[itemIndex]; PetItem itemData = (PetItem)slot.item.Data; if (itemData.summonPrefab != null) { itemSlot.GetComponent <Image>().color = Color.white; itemSlot.GetComponent <Image>().sprite = slot.item.Image; itemSlot.GetComponent <UIShowToolTip>().enabled = true; itemSlot.GetComponent <UIShowToolTip>().text = slot.ToolTip(); itemSlot.dragable = true; costsText.text = itemData.revivePrice.ToString(); reviveButton.interactable = slot.item.summonedHealth == 0 && player.Money >= itemData.revivePrice; reviveButton.onClick.SetListener(() => { player.CmdNpcReviveSummonable(itemIndex); itemIndex = -1; }); } } else { itemSlot.GetComponent <Image>().color = Color.clear; itemSlot.GetComponent <Image>().sprite = null; itemSlot.GetComponent <UIShowToolTip>().enabled = false; itemSlot.dragable = false; costsText.text = "0"; reviveButton.interactable = false; } } else { panel.SetActive(false); } }
// Token: 0x06002B7A RID: 11130 RVA: 0x0047E074 File Offset: 0x0047C274 public override bool CheckItemRule(ushort id) { if (this.Type == UIItemFilter.ItemFilterType.ItemID) { DataManager instance = DataManager.Instance; StoreTbl recordByKey = instance.StoreData.GetRecordByKey(id); return(recordByKey.AddDiamondBuy != 0 && recordByKey.Filter != 2 && recordByKey.ItemID == this.FilterItemID); } if (this.Type == UIItemFilter.ItemFilterType.Experience && (this.SubType == UIItemFilter._SubType.Pet || this.SubType == UIItemFilter._SubType.PetFormDetail)) { ushort num = 0; PetItem petItem = PetManager.Instance.FindItemData(id, ref num); return(petItem != null && (petItem.EquipKind - 1 == 5 && (petItem.PropertiesInfo[0].Propertieskey == 5 || petItem.PropertiesInfo[0].Propertieskey == 6))); } return(true); }
public void Setup(PetItem item) { this.item = item; this.Params = new Params(item); MaxHP = this.Params[Param.HP]; MaxMP = this.Params[Param.MP]; this.Race = item.Familiar.Race; this.Attributes = new Attributes(item.Familiar.Attribute); this.Level = item.level; level.text = $"Lv.{Level}"; hpText.text = $"{Params[Param.HP]}/{MaxHP}"; Setup(item.id); character.sprite = Resources.LoadAll <Sprite>($"Familiar/{item.Familiar.Image}/face")[0]; side = Side.Player; }
public Pet(RealmManager manager, PetItem petData, Player playerOwner) : base(manager, (ushort)petData.Type, true, true) { rand = new Random(); PlayerOwner = playerOwner; Info = petData; try { if (petData.InstanceId != -1) { FirstPetLevel = new PetLevel(AbilityType.First, Utils.GetEnumByName<Ability>(Utils.GetEnumName<Ability>(petData.Abilities[0].Type)), petData.Abilities[0].Points, petData.Abilities[0].Power, this); SecondPetLevel = new PetLevel(AbilityType.Second, Utils.GetEnumByName<Ability>(Utils.GetEnumName<Ability>(petData.Abilities[1].Type)), petData.Abilities[1].Points, petData.Abilities[1].Power, this); ThirdPetLevel = new PetLevel(AbilityType.Third, Utils.GetEnumByName<Ability>(Utils.GetEnumName<Ability>(petData.Abilities[2].Type)), petData.Abilities[2].Points, petData.Abilities[2].Power, this); Size = manager.GameData.TypeToPet[(ushort)petData.Type].Size; PetRarity = (Rarity)petData.Rarity; PetFamily = manager.GameData.TypeToPet[(ushort)petData.Type].PetFamily; MaximumLevel = petData.MaxAbilityPower; UpdateNeeded = true; } Skin = petData.SkinName; SkinId = petData.Skin; PetId = petData.InstanceId; IsPet = true; } catch (Exception e) { if (PlayerOwner != null) PlayerOwner.SendError( String.Format( "An error ocurred while loading your pet data, please report this to an Admin: {0}", e.Message)); } }
public List <BaseItem> GetAllItemsInNpcBag(byte bag, int npcId) { DbParameter bagIdParameter = _db.CreateParameter(DbNames.GETALLNPCITEMSBYBAGID_BAGID_PARAMETER, bag); bagIdParameter.DbType = DbType.Byte; DbParameter characterIdParameter = _db.CreateParameter(DbNames.GETALLNPCITEMSBYBAGID_NPCID_PARAMETER, npcId); characterIdParameter.DbType = DbType.Int32; List <BaseItem> items = new List <BaseItem>(); _db.Open(); DbDataReader reader = _db.ExcecuteReader(DbNames.GETALLNPCITEMSBYBAGID_STOREDPROC, CommandType.StoredProcedure, bagIdParameter, characterIdParameter); int ordinalITEM_REFERENCEID = reader.GetOrdinal(DbNames.ITEM_REFID); int ordinalITEM_BTYPE = reader.GetOrdinal(DbNames.ITEM_BTYPE); int ordinalITEM_BKIND = reader.GetOrdinal(DbNames.ITEM_BKIND); int ordinalITEM_VISUALID = reader.GetOrdinal(DbNames.ITEM_VISUALID); int ordinalITEM_CLASS = reader.GetOrdinal(DbNames.ITEM_CLASS); int ordinalITEM_AMOUNT = reader.GetOrdinal(DbNames.ITEM_AMOUNT); int ordinalITEM_PRICE = reader.GetOrdinal(DbNames.ITEM_PRICE); int ordinalITEM_LEVEL = reader.GetOrdinal(DbNames.ITEM_LEVEL); int ordinalITEM_DEX = reader.GetOrdinal(DbNames.ITEM_DEX); int ordinalITEM_STR = reader.GetOrdinal(DbNames.ITEM_STR); int ordinalITEM_STA = reader.GetOrdinal(DbNames.ITEM_STA); int ordinalITEM_ENE = reader.GetOrdinal(DbNames.ITEM_ENE); int ordinalITEM_DURABILITY = reader.GetOrdinal(DbNames.ITEM_DURABILITY); int ordinalITEM_DAMAGE = reader.GetOrdinal(DbNames.ITEM_DAMAGE); int ordinalITEM_DEFENCE = reader.GetOrdinal(DbNames.ITEM_DEFENCE); int ordinalITEM_ATTACKRATING = reader.GetOrdinal(DbNames.ITEM_ATTACKRATING); int ordinalITEM_ATTACKSPEED = reader.GetOrdinal(DbNames.ITEM_ATTACKSPEED); int ordinalITEM_ATTACKRANGE = reader.GetOrdinal(DbNames.ITEM_ATTACKRANGE); int ordinalITEM_INCMAXLIFE = reader.GetOrdinal(DbNames.ITEM_INCMAXLIFE); int ordinalITEM_INCMAXMANA = reader.GetOrdinal(DbNames.ITEM_INCMAXMANA); int ordinalITEM_LIFEREGEN = reader.GetOrdinal(DbNames.ITEM_LIFEREGEN); int ordinalITEM_MANAREGEN = reader.GetOrdinal(DbNames.ITEM_MANAREGEN); int ordinalITEM_CRITICAL = reader.GetOrdinal(DbNames.ITEM_CRITICAL); int ordinalITEM_TOMAPID = reader.GetOrdinal(DbNames.ITEM_TOMAPID); int ordinalITEM_IMBUERATE = reader.GetOrdinal(DbNames.ITEM_IMBUERATE); int ordinalITEM_IMBUEINCREASE = reader.GetOrdinal(DbNames.ITEM_IMBUEINCREASE); int ordinalITEM_BOOKSKILLID = reader.GetOrdinal(DbNames.ITEM_BOOKSKILLID); int ordinalITEM_BOOKSKILLLEVEL = reader.GetOrdinal(DbNames.ITEM_BOOKSKILLLEVEL); int ordinalITEM_BOOKSKILLDATA = reader.GetOrdinal(DbNames.ITEM_BOOKSKILLDATA); int ordinalITEM_MAXPOLISHTRIES = reader.GetOrdinal(DbNames.ITEM_MAXPOLISHTRIES); int ordinalITEM_MAXIMBUETRIES = reader.GetOrdinal(DbNames.ITEM_MAXIMBUES); int ordinalITEM_DAMAGEABSORB = reader.GetOrdinal(DbNames.ITEM_DAMAGEABSORB); int ordinalITEM_DEFENSEABSORB = reader.GetOrdinal(DbNames.ITEM_DEFENSEABSORB); int ordinalITEM_ATTACKRATINGABSORB = reader.GetOrdinal(DbNames.ITEM_ATTACKRATINGABSORB); int ordinalITEM_LIFEABSORB = reader.GetOrdinal(DbNames.ITEM_LIFEABSORB); int ordinalITEM_BAG = reader.GetOrdinal(DbNames.ITEM_BAG); int ordinalITEM_SLOT = reader.GetOrdinal(DbNames.ITEM_SLOT); int ordinalITEM_SIZEX = reader.GetOrdinal(DbNames.ITEM_SIZEX); int ordinalITEM_SIZEY = reader.GetOrdinal(DbNames.ITEM_SIZEY); while (reader.Read()) { BaseItem b = null; int BType = reader.GetByte(ordinalITEM_BTYPE); int BKind = reader.GetByte(ordinalITEM_BKIND); if (BType == (byte)bType.Weapon || BType == (byte)bType.Clothes || BType == (byte)bType.Hat || BType == (byte)bType.Necklace || BType == (byte)bType.Ring || BType == (byte)bType.Shoes || BType == (byte)bType.Cape || BType == (byte)bType.Mirror) { if (BKind == (byte)bKindWeapons.Sword && BType == (byte)bType.Weapon) { b = new Sword(); } if (BKind == (byte)bKindWeapons.Blade && BType == (byte)bType.Weapon) { b = new Blade(); } if (BKind == (byte)bKindWeapons.Fan && BType == (byte)bType.Weapon) { b = new Fan(); } if (BKind == (byte)bKindWeapons.Brush && BType == (byte)bType.Weapon) { b = new Brush(); } if (BKind == (byte)bKindWeapons.Claw && BType == (byte)bType.Weapon) { b = new Claw(); } if (BKind == (byte)bKindWeapons.Axe && BType == (byte)bType.Weapon) { b = new Axe(); } if (BKind == (byte)bKindWeapons.Talon && BType == (byte)bType.Weapon) { b = new Talon(); } if (BKind == (byte)bKindWeapons.Tonfa && BType == (byte)bType.Weapon) { b = new Tonfa(); } if (BKind == (byte)bKindWeapons.Hammer && BType == (byte)bType.Weapon) { b = new Hammer(); } if (BKind == (byte)bKindArmors.SwordMan && BType == (byte)bType.Clothes) { b = new Clothes(); } if (BKind == (byte)bKindArmors.Mage && BType == (byte)bType.Clothes) { b = new Dress(); } if (BKind == (byte)bKindArmors.Warrior && BType == (byte)bType.Clothes) { b = new Armor(); } if (BKind == (byte)bKindArmors.GhostFighter && BType == (byte)bType.Clothes) { b = new LeatherClothes(); } if (BKind == (byte)bKindHats.SwordMan && BType == (byte)bType.Hat) { b = new Hood(); } if (BKind == (byte)bKindHats.Mage && BType == (byte)bType.Hat) { b = new Tiara(); } if (BKind == (byte)bKindHats.Warrior && BType == (byte)bType.Hat) { b = new Helmet(); } if (BKind == (byte)bKindHats.GhostFighter && BType == (byte)bType.Hat) { b = new Hat(); } if (BKind == (byte)bKindHats.SwordMan && BType == (byte)bType.Shoes) { b = new SmBoots(); } if (BKind == (byte)bKindHats.Mage && BType == (byte)bType.Shoes) { b = new MageBoots(); } if (BKind == (byte)bKindHats.Warrior && BType == (byte)bType.Shoes) { b = new WarriorShoes(); } if (BKind == (byte)bKindHats.GhostFighter && BType == (byte)bType.Shoes) { b = new GhostFighterShoes(); } if (BKind == 0 && BType == (byte)bType.Ring) { b = new Ring(); } if (BKind == 0 && BType == (byte)bType.Necklace) { b = new Necklace(); } if (BType == (byte)bType.Cape) { b = new Cape(); Cape c = b as Cape; c.MaxPolishImbueTries = reader.GetInt16(ordinalITEM_MAXPOLISHTRIES); } if (BType == (byte)bType.Mirror) { // bkind 4 = mirror, 0 = jar b = new Mirror(); Mirror m = b as Mirror; m.LifeAbsorb = reader.GetInt16(ordinalITEM_LIFEABSORB); m.DamageAbsorb = reader.GetInt16(ordinalITEM_DAMAGEABSORB); m.DefenseAbsorb = reader.GetInt16(ordinalITEM_DEFENSEABSORB); m.AttackRatingAbsorb = reader.GetInt16(ordinalITEM_ATTACKRATINGABSORB); } Equipment e = b as Equipment; e.RequiredLevel = reader.GetInt16(ordinalITEM_LEVEL); e.RequiredDexterity = reader.GetInt16(ordinalITEM_DEX); e.RequiredStrength = reader.GetInt16(ordinalITEM_STR); e.RequiredStamina = reader.GetInt16(ordinalITEM_STA); e.RequiredEnergy = reader.GetInt16(ordinalITEM_ENE); e.Durability = reader.GetInt32(ordinalITEM_DURABILITY); e.MaxDurability = e.Durability; e.Damage = reader.GetInt32(ordinalITEM_DAMAGE); e.Defence = reader.GetInt32(ordinalITEM_DEFENCE); e.AttackRating = reader.GetInt32(ordinalITEM_ATTACKRATING); e.AttackSpeed = reader.GetInt16(ordinalITEM_ATTACKSPEED); e.AttackRange = reader.GetInt16(ordinalITEM_ATTACKRANGE); e.IncMaxLife = reader.GetInt16(ordinalITEM_INCMAXLIFE); e.IncMaxMana = reader.GetInt16(ordinalITEM_INCMAXMANA); e.IncLifeRegen = reader.GetInt16(ordinalITEM_LIFEREGEN); e.IncManaRegen = reader.GetInt16(ordinalITEM_MANAREGEN); e.Critical = reader.GetInt16(ordinalITEM_CRITICAL); e.MaxImbueTries = reader.GetByte(ordinalITEM_MAXIMBUETRIES); } if (BType == (byte)bType.ImbueItem) { if (BKind == (byte)bKindStones.Black) { b = new Black(); } if (BKind == (byte)bKindStones.White) { b = new White(); } if (BKind == (byte)bKindStones.Red) { b = new Red(); } if (BKind == (byte)bKindStones.Dragon) { b = new Dragon(); } if (BKind == (byte)bKindStones.RbItem) { b = new RbHoleItem(); } ImbueItem im = b as ImbueItem; im.ImbueChance = reader.GetInt16(ordinalITEM_IMBUERATE); im.IncreaseValue = reader.GetInt16(ordinalITEM_IMBUEINCREASE); } if (BType == (byte)bType.Potion) { if (BKind == (byte)bKindPotions.Normal) { b = new Potion(); } if (BKind == (byte)bKindPotions.Elixir) { b = new Elixir(); } PotionItem pot = b as PotionItem; pot.HealHp = reader.GetInt16(ordinalITEM_INCMAXLIFE); pot.HealMana = reader.GetInt16(ordinalITEM_INCMAXMANA); } if (BType == (byte)bType.Book) { if (BKind == (byte)bKindBooks.SoftBook) { b = new SoftBook(); } if (BKind == (byte)bKindBooks.HardBook) { b = new HardBook(); } if (BKind == (byte)bKindBooks.RebirdBook) { b = new RebirthBook(); } if (BKind == (byte)bKindBooks.FourthBook) { b = new FourthBook(); } if (BKind == (byte)bKindBooks.FeSkillBook) { b = new FeSkillBook(); } if (BKind == (byte)bKindBooks.FeBook) { b = new FiveElementBook(); } if (BKind == (byte)bKindBooks.FocusBook) { b = new FocusBook(); } BookItem book = b as BookItem; book.RequiredClass = reader.GetByte(ordinalITEM_CLASS); book.RequiredLevel = reader.GetInt16(ordinalITEM_LEVEL); book.SkillID = reader.GetInt32(ordinalITEM_BOOKSKILLID); book.SkillLevel = reader.GetByte(ordinalITEM_BOOKSKILLLEVEL); book.SkillData = reader.GetInt32(ordinalITEM_BOOKSKILLDATA); } if (BType == (byte)bType.Bead) { if (BKind == (byte)bKindBeads.Normal) { b = new Bead(); } BeadItem bead = b as BeadItem; bead.ToMapID = reader.GetInt32(ordinalITEM_TOMAPID); } if (BType == (byte)bType.StoreTag) { b = new StoreTag(); StoreTag tag = b as StoreTag; tag.TimeLeft = (short)reader.GetInt32(ordinalITEM_DURABILITY); tag.TimeMax = tag.TimeLeft; } if (BType == (byte)bType.PetItem) { if (BKind == (byte)bKindPetItems.Taming) { b = new TameItem(); } if (BKind == (byte)bKindPetItems.Food) { b = new PetFood(); } if (BKind == (byte)bKindPetItems.Potion) { b = new PetPotion(); } if (BKind == (byte)bKindPetItems.Resurect) { b = new PetResurrectItem(); } PetItem p = b as PetItem; p.TameChance = reader.GetInt16(ordinalITEM_IMBUERATE); p.DecreaseWildness = reader.GetInt16(ordinalITEM_IMBUEINCREASE); p.HealLife = reader.GetInt16(ordinalITEM_INCMAXLIFE); } b.ReferenceID = reader.GetInt16(ordinalITEM_REFERENCEID); b.VisualID = reader.GetInt16(ordinalITEM_VISUALID); b.Bag = reader.GetByte(ordinalITEM_BAG); b.Slot = reader.GetByte(ordinalITEM_SLOT); b.bType = reader.GetByte(ordinalITEM_BTYPE); b.bKind = reader.GetByte(ordinalITEM_BKIND); b.RequiredClass = reader.GetByte(ordinalITEM_CLASS); b.Amount = reader.GetInt16(ordinalITEM_AMOUNT); b.SizeX = reader.GetByte(ordinalITEM_SIZEX); b.SizeY = reader.GetByte(ordinalITEM_SIZEY); b.Price = reader.GetInt32(ordinalITEM_PRICE); items.Add(b); } reader.Close(); _db.Close(); return(items); }
public override void OnUserSay(RoomUser RoomUser, string string_0) { RoomUser Pet = base.GetRoomUser(); //TODO: Pet Commands :D if (Pet.RoomBot.RoomUser_0 == null) { if (string_0.ToLower().Equals(Pet.PetData.Name.ToLower())) { Pet.method_9(Rotation.GetRotation(Pet.X, Pet.Y, RoomUser.X, RoomUser.Y)); } else { if (string_0.ToLower().StartsWith(Pet.PetData.Name.ToLower() + " ") && RoomUser.GetClient().GetHabbo().Username.ToLower() == base.GetRoomUser().PetData.OwnerName.ToLower()) { string key = string_0.Substring(Pet.PetData.Name.ToLower().Length + 1); if ((Pet.PetData.Energy >= 10 && this.method_4() < 6) || Pet.PetData.Level >= 15) { Pet.Statusses.Clear(); if (!Essential.GetGame().GetRoleManager().dictionary_5.ContainsKey(key)) { string[] array = new string[] { EssentialEnvironment.GetExternalText("pet_response_confused1"), EssentialEnvironment.GetExternalText("pet_response_confused2"), EssentialEnvironment.GetExternalText("pet_response_confused3"), EssentialEnvironment.GetExternalText("pet_response_confused4"), EssentialEnvironment.GetExternalText("pet_response_confused5"), EssentialEnvironment.GetExternalText("pet_response_confused6"), EssentialEnvironment.GetExternalText("pet_response_confused7") }; Random random = new Random(); Pet.HandleSpeech(null, array[random.Next(0, array.Length - 1)], false); } else { switch (Essential.GetGame().GetRoleManager().dictionary_5[key]) { case 0: // Remove Status RemovePetStatus(); this.SpeechTimer = 0; this.ActionTimer = 0; this.FollowType = FollowType.None; // Add Status Pet.Statusses.Add("sit", TextHandling.GetString(Pet.double_0)); break; case 1: this.ActionTimer = 25; this.FollowType = FollowType.None; // Remove Status RemovePetStatus(); Pet.PetData.AddExpirience(10, -10); // Give XP // Add Status Pet.Statusses.Add("sit", TextHandling.GetString(Pet.double_0)); break; case 2: this.ActionTimer = 30; this.FollowType = FollowType.None; // Remove Status RemovePetStatus(); Pet.PetData.AddExpirience(10, -10); // Give XP // Add Status Pet.Statusses.Add("lay", TextHandling.GetString(Pet.double_0)); break; case 3: this.ActionTimer = 30; this.FollowType = FollowType.None; RemovePetStatus(); int NewX = RoomUser.X; int NewY = RoomUser.Y; #region Rotation if (RoomUser.BodyRotation == 4) { NewY = RoomUser.Y + 1; } else if (RoomUser.BodyRotation == 0) { NewY = RoomUser.Y - 1; } else if (RoomUser.BodyRotation == 6) { NewX = RoomUser.X - 1; } else if (RoomUser.BodyRotation == 2) { NewX = RoomUser.X + 1; } else if (RoomUser.BodyRotation == 3) { NewX = RoomUser.X + 1; NewY = RoomUser.Y + 1; } else if (RoomUser.BodyRotation == 1) { NewX = RoomUser.X + 1; NewY = RoomUser.Y - 1; } else if (RoomUser.BodyRotation == 7) { NewX = RoomUser.X - 1; NewY = RoomUser.Y - 1; } else if (RoomUser.BodyRotation == 5) { NewX = RoomUser.X - 1; NewY = RoomUser.Y + 1; } #endregion Pet.PetData.AddExpirience(11, -10); // Give XP Pet.MoveTo(NewX, NewY); break; case 4: this.ActionTimer = 10; this.FollowType = FollowType.None; //Remove Status RemovePetStatus(); Pet.PetData.AddExpirience(15, -13); // Give XP Pet.Statusses.Add("beg", TextHandling.GetString(Pet.double_0)); break; case 5: this.ActionTimer = 30; this.FollowType = FollowType.None; // Remove Status RemovePetStatus(); // Add Status Pet.Statusses.Add("ded", TextHandling.GetString(Pet.double_0)); Pet.PetData.AddExpirience(20, -18); // Give XP break; case 6: this.ActionTimer = 120; this.FollowType = FollowType.None; // Remove Status RemovePetStatus(); // Add Status Pet.Statusses.Add("sit", TextHandling.GetString(Pet.double_0)); Pet.PetData.AddExpirience(20, -18); // Give XP Pet.MoveTo(Pet.X, Pet.Y); break; case 7: this.ActionTimer = 120; this.FollowType = FollowType.Normal; this.FollowUser = RoomUser; Pet.PetData.AddExpirience(30, -30); // Give XP this.PetFollowUser(RoomUser, Pet, FollowType.Normal); break; case 8: //Stand break; case 9: this.ActionTimer = 5; this.FollowType = FollowType.None; // Remove Status RemovePetStatus(); // Add Status Pet.Statusses.Add("jmp", TextHandling.GetString(Pet.double_0)); Pet.PetData.AddExpirience(35, -30); // Give XP break; case 10: // Remove Status RemovePetStatus(); Pet.PetData.AddExpirience(35, -30); // Give XP this.SpeechTimer = 2; this.FollowType = FollowType.None; break; case 11: //Play break; case 12: // Remove Status RemovePetStatus(); Pet.PetData.AddExpirience(35, -30); // Give XP this.SpeechTimer = 120; this.FollowType = FollowType.None; break; case 13: //Nest Pesä this.ActionTimer = 30; List <RoomItem> Nests = new List <RoomItem>(); foreach (RoomItem PetItem in this.GetRoomUser().GetRoom().Hashtable_0.Values) { if (PetItem.GetBaseItem().InteractionType.ToLower() == "pet_nest") { Nests.Add(PetItem); } } if (Nests.Count == 0) { return; } int PetNX = Nests[new Random().Next(0, Nests.Count - 1)].GetX; int PetNY = Nests[new Random().Next(0, Nests.Count - 1)].Int32_1; Pet.MoveTo(PetNX, PetNY); Nests.Clear(); Nests = null; Pet.PetData.AddExpirience(15, -10); // Give XP break; case 14: //Drink this.ActionTimer = 30; List <RoomItem> Drinks = new List <RoomItem>(); foreach (RoomItem PetItem in this.GetRoomUser().GetRoom().Hashtable_0.Values) { if (PetItem.GetBaseItem().InteractionType.ToLower() == "pet_drink") { Drinks.Add(PetItem); } } if (Drinks.Count == 0) { return; } int PetDX = Drinks[new Random().Next(0, Drinks.Count - 1)].GetX; int PetDY = Drinks[new Random().Next(0, Drinks.Count - 1)].Int32_1; Pet.MoveTo(PetDX, PetDY); Drinks.Clear(); Drinks = null; Pet.PetData.AddExpirience(25, -10); // Give XP break; case 15: this.ActionTimer = 120; this.FollowType = FollowType.Left; this.FollowUser = RoomUser; Pet.PetData.AddExpirience(35, -30); // Give XP this.PetFollowUser(RoomUser, Pet, FollowType.Left); break; case 16: this.FollowType = FollowType.Right; this.FollowUser = RoomUser; Pet.PetData.AddExpirience(35, -30); // Give XP this.PetFollowUser(RoomUser, Pet, FollowType.Right); break; case 17: //Play football break; case 24: //Move forwar break; case 25: //Turn left break; case 26: //Turn right break; case 43: //Eat break; } } } else { string[] array2 = new string[] { EssentialEnvironment.GetExternalText("pet_response_sleeping1"), EssentialEnvironment.GetExternalText("pet_response_sleeping2"), EssentialEnvironment.GetExternalText("pet_response_sleeping3"), EssentialEnvironment.GetExternalText("pet_response_sleeping4"), EssentialEnvironment.GetExternalText("pet_response_sleeping5") }; string[] array3 = new string[] { EssentialEnvironment.GetExternalText("pet_response_refusal1"), EssentialEnvironment.GetExternalText("pet_response_refusal2"), EssentialEnvironment.GetExternalText("pet_response_refusal3"), EssentialEnvironment.GetExternalText("pet_response_refusal4"), EssentialEnvironment.GetExternalText("pet_response_refusal5") }; Pet.int_10 = Pet.int_12; Pet.int_11 = Pet.int_13; Pet.Statusses.Clear(); if (Pet.PetData.Energy < 10) { Random random2 = new Random(); Pet.HandleSpeech(null, array2[random2.Next(0, array2.Length - 1)], false); if (Pet.PetData.Type != 13u) { Pet.Statusses.Add("lay", Pet.double_0.ToString()); } else { Pet.Statusses.Add("lay", (Pet.double_0 - 1.0).ToString()); } this.SpeechTimer = 25; this.ActionTimer = 20; base.GetRoomUser().PetData.PetEnergy(25); } else { Random random2 = new Random(); Pet.HandleSpeech(null, array3[random2.Next(0, array3.Length - 1)], false); } } Pet.UpdateNeeded = true; } } } }
public void GivePet(PetItem petInfo) { Pet = new Pet(Manager, petInfo, this); Pet.Move(X, Y); Owner.EnterWorld(Pet); }
// Token: 0x06000590 RID: 1424 RVA: 0x00078510 File Offset: 0x00076710 public int PetBagCompare(ushort x, ushort y) { PetItem itemData = PetManager.Instance.GetItemData((int)x); PetItem itemData2 = PetManager.Instance.GetItemData((int)y); if (itemData != null && itemData2 == null) { return(-1); } if (itemData == null && itemData2 != null) { return(1); } if (itemData == null && itemData2 == null) { return(0); } byte b = itemData.EquipKind; byte b2 = itemData2.EquipKind; if (b == 0) { b = 29; } else if (b <= 30) { b -= 1; } else if (b <= 30) { b -= 6; } if (b2 == 0) { b2 = 29; } else if (b2 <= 30) { b2 -= 1; } else if (b2 <= 30) { b2 -= 6; } if (b < b2) { return(-1); } if (b > b2) { return(1); } EItemType eitemType = (EItemType)b; if (eitemType != EItemType.EIT_Consumables) { if (eitemType != EItemType.EIT_CaseByCase) { if (eitemType != EItemType.EIT_MaterialTreasureBox) { if (eitemType == EItemType.EIT_EnhanceStone) { if (itemData.Quantity < itemData2.Quantity) { return(1); } if (itemData.Quantity > itemData2.Quantity) { return(-1); } } } else { if (itemData.SyntheticParts[0].SyntheticItem < itemData2.SyntheticParts[0].SyntheticItem) { return(1); } if (itemData.SyntheticParts[0].SyntheticItem > itemData2.SyntheticParts[0].SyntheticItem) { return(-1); } if (itemData.Color < itemData2.Color) { return(1); } if (itemData.Color > itemData2.Color) { return(-1); } if (itemData.ItemID < itemData2.ItemID) { return(1); } if (itemData.ItemID > itemData2.ItemID) { return(-1); } } } else { if (itemData.PropertiesInfo[0].Propertieskey < itemData2.PropertiesInfo[0].Propertieskey) { return(-1); } if (itemData.PropertiesInfo[0].Propertieskey > itemData2.PropertiesInfo[0].Propertieskey) { return(1); } if (itemData.Color < itemData2.Color) { return(-1); } if (itemData.Color > itemData2.Color) { return(1); } } } else { if (itemData.PropertiesInfo[0].PropertiesValue < itemData2.PropertiesInfo[0].PropertiesValue) { return(-1); } if (itemData.PropertiesInfo[0].PropertiesValue > itemData2.PropertiesInfo[0].PropertiesValue) { return(1); } } if (itemData.ItemID < itemData2.ItemID) { return(-1); } if (itemData.ItemID > itemData2.ItemID) { return(1); } return(0); }
public void CreatePet(Account acc, PetItem item) { MySqlCommand cmd = CreateQuery(); cmd.CommandText = "SELECT COUNT(petId) FROM pets WHERE petId=@petId AND accId=@accId;"; cmd.Parameters.AddWithValue("@accId", acc.AccountId); cmd.Parameters.AddWithValue("@petId", item.InstanceId); if ((int)(long)cmd.ExecuteScalar() == 0) { //Not finished yet. cmd = CreateQuery(); cmd.CommandText = @"INSERT INTO pets(accId, petId, objType, skinName, skin, rarity, maxLevel, abilities, levels, xp) VALUES(@accId, @petId, @objType, @skinName, @skin, @rarity, @maxLevel, @abilities, @levels, @xp);"; cmd.Parameters.AddWithValue("@accId", acc.AccountId); cmd.Parameters.AddWithValue("@petId", item.InstanceId); cmd.Parameters.AddWithValue("@objType", item.Type); cmd.Parameters.AddWithValue("@skinName", item.SkinName); cmd.Parameters.AddWithValue("@skin", item.Skin); cmd.Parameters.AddWithValue("@rarity", item.Rarity); cmd.Parameters.AddWithValue("@maxLevel", item.MaxAbilityPower); cmd.Parameters.AddWithValue("@abilities", String.Format("{0}, {1}, {2}", item.Abilities[0].Type, item.Abilities[1].Type, item.Abilities[2].Type)); cmd.Parameters.AddWithValue("@levels", String.Format("{0}, {1}, {2}", item.Abilities[0].Power, item.Abilities[1].Power, item.Abilities[2].Power)); cmd.Parameters.AddWithValue("@xp", String.Format("{0}, {1}, {2}", item.Abilities[0].Points, item.Abilities[1].Points, item.Abilities[2].Points)); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine(ex); } } }
public static async void Create(RealmManager manager, Player player, Item egg) { await manager.Database.DoActionAsync(db => { PetStruct petStruct = GetPetStruct(manager, egg.Family, (Rarity)egg.Rarity); PetSkin skin = manager.GameData.IdToPetSkin[petStruct.DefaultSkin]; PetItem item = new PetItem { InstanceId = db.GetNextPetId(player.AccountId), Rarity = (int)egg.Rarity, Family = egg.Family.ToString(), SkinName = skin.DisplayId, Skin = skin.ObjectType, Type = petStruct.ObjectType, Abilities = GetPetAbilites(egg, petStruct), }; switch (item.Rarity) { case 1: item.MaxAbilityPower = 50; item.Abilities[0].Power = 30; item.Abilities[0].Points = 2080; item.Abilities[1].Power = 11; item.Abilities[1].Points = 290; item.Abilities[2].Power = 0; item.Abilities[2].Points = 0; break; case 2: item.MaxAbilityPower = 70; item.Abilities[0].Power = 50; item.Abilities[0].Points = 10607; item.Abilities[1].Power = 30; item.Abilities[1].Points = 2080; item.Abilities[2].Power = 0; item.Abilities[2].Points = 0; break; case 3: item.MaxAbilityPower = 90; item.Abilities[0].Power = 70; item.Abilities[0].Points = 50355; item.Abilities[1].Power = 50; item.Abilities[1].Points = 10607; item.Abilities[2].Power = 30; item.Abilities[2].Points = 2080; break; case 4: item.MaxAbilityPower = 100; item.Abilities[0].Power = 90; item.Abilities[0].Points = 235610; item.Abilities[1].Power = 70; item.Abilities[1].Points = 50354; item.Abilities[2].Power = 50; item.Abilities[2].Points = 10607; break; default: item.MaxAbilityPower = 30; item.Abilities[0].Power = 1; item.Abilities[0].Points = 0; item.Abilities[1].Power = 0; item.Abilities[1].Points = 0; item.Abilities[2].Power = 0; item.Abilities[2].Points = 0; break; } Pet pet = new Pet(manager, item, null); int x; int y; Random rand = new Random((int)DateTime.Now.Ticks); do { x = rand.Next(0, player.Owner.Map.Width); y = rand.Next(0, player.Owner.Map.Height); } while (player.Owner.Map[x, y].Region != TileRegion.Spawn); pet.Move(x + 0.5f, y + 0.5f); db.CreatePet(player.Client.Account, item); player.Owner.EnterWorld(pet); player.Client.SendPacket(new HatchEggPacket { PetName = skin.DisplayId, PetSkinId = skin.ObjectType }); player.Client.SendPacket(new UpdatePacket { Tiles = new UpdatePacket.TileData[0], NewObjects = new ObjectDef[1] { pet.ToDefinition() }, RemovedObjectIds = new int[0] }); }); }
public static void Create(RealmManager manager, Player player, Item egg) { manager.Database.AddDatabaseOperation(db => { PetStruct petStruct = GetPetStruct(manager, egg.Family, (Rarity)egg.Rarity); PetSkin skin = manager.GameData.IdToPetSkin[petStruct.DefaultSkin]; PetItem item = new PetItem { InstanceId = db.GetNextPetId(player.AccountId), Rarity = (int)egg.Rarity, SkinName = skin.DisplayId, Skin = skin.ObjectType, Type = petStruct.ObjectType, Abilities = GetPetAbilites(egg, petStruct), }; switch (item.Rarity) { case 1: item.MaxAbilityPower = 50; item.Abilities[0].Power = 30; item.Abilities[0].Points = 2080; item.Abilities[1].Power = 11; item.Abilities[1].Points = 290; item.Abilities[2].Power = 1; item.Abilities[2].Points = 0; break; case 2: item.MaxAbilityPower = 70; item.Abilities[0].Power = 50; item.Abilities[0].Points = 10607; item.Abilities[1].Power = 30; item.Abilities[1].Points = 2080; item.Abilities[2].Power = 1; item.Abilities[2].Points = 0; break; case 3: item.MaxAbilityPower = 90; item.Abilities[0].Power = 70; item.Abilities[0].Points = 50355; item.Abilities[1].Power = 50; item.Abilities[1].Points = 10607; item.Abilities[2].Power = 30; item.Abilities[2].Points = 2080; break; case 4: item.MaxAbilityPower = 100; item.Abilities[0].Power = 90; item.Abilities[0].Points = 235610; item.Abilities[1].Power = 70; item.Abilities[1].Points = 50354; item.Abilities[2].Power = 50; item.Abilities[2].Points = 10607; break; default: item.MaxAbilityPower = 30; item.Abilities[0].Power = 1; item.Abilities[0].Points = 0; item.Abilities[1].Power = 1; item.Abilities[1].Points = 0; item.Abilities[2].Power = 1; item.Abilities[2].Points = 0; break; } Pet pet = new Pet(manager, item, null); int x; int y; Random rand = new Random((int)DateTime.Now.Ticks); do { x = rand.Next(0, player.Owner.Map.Width); y = rand.Next(0, player.Owner.Map.Height); } while (player.Owner.Map[x, y].Region != TileRegion.Spawn); pet.Move(x + 0.5f, y + 0.5f); db.CreatePet(player.Client.Account, item); player.Owner.EnterWorld(pet); player.Client.SendPacket(new HatchPetMessagePacket { PetName = skin.DisplayId, PetSkin = skin.ObjectType }); player.Client.SendPacket(new UpdatePacket { Tiles = new UpdatePacket.TileData[0], NewObjects = new ObjectDef[1] { pet.ToDefinition() }, RemovedObjectIds = new int[0] }); }); }
public void CreatePet(Account acc, PetItem item) { XmlData data = new XmlData(); var cmd = CreateQuery(); cmd.CommandText = "SELECT COUNT(petId) FROM pets WHERE petId=@petId AND accId=@accId;"; cmd.Parameters.AddWithValue("@accId", acc.AccountId); cmd.Parameters.AddWithValue("@petId", item.InstanceId); if ((int)(long)cmd.ExecuteScalar() == 0) { Family? _family = Family.Unknown; var _pskin = 0; cmd = CreateQuery(); cmd.CommandText = @"INSERT INTO pets(accId, petId, objType, skinName, skin, family, rarity, maxLevel, abilities, levels, xp) VALUES(@accId, @petId, @objType, @skinName, @skin, @family, @rarity, @maxLevel, @abilities, @levels, @xp);"; cmd.Parameters.AddWithValue("@accId", acc.AccountId); cmd.Parameters.AddWithValue("@petId", item.InstanceId); cmd.Parameters.AddWithValue("@objType", item.Type); cmd.Parameters.AddWithValue("@skinName", item.SkinName); cmd.Parameters.AddWithValue("@skin", item.Skin); foreach (KeyValuePair<ushort, Item> items in data.Items) { if (items.Value.ObjectType == item.InstanceId) _family = items.Value.Family; } cmd.Parameters.AddWithValue("@family", _family); cmd.Parameters.AddWithValue("@rarity", item.Rarity); cmd.Parameters.AddWithValue("@maxLevel", item.MaxAbilityPower); cmd.Parameters.AddWithValue("@abilities", String.Format("{0}, {1}, {2}", item.Abilities[0].Type, item.Abilities[1].Type, item.Abilities[2].Type)); cmd.Parameters.AddWithValue("@levels", String.Format("{0}, {1}, {2}", item.Abilities[0].Power, item.Abilities[1].Power, item.Abilities[2].Power)); cmd.Parameters.AddWithValue("@xp", String.Format("{0}, {1}, {2}", item.Abilities[0].Points, item.Abilities[1].Points, item.Abilities[2].Points)); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine(ex); } } }