internal void Init(ItemGrade grade, WeaponType type) { InitType(type); //무기 타입 초기화 과정 InitGrade(grade); //무기 등급 초기화 과정 weaponForPlayer = DW.WeaponGenerator.GetWeapon(type, grade, transform); weaponForPlayer.gameObject.SetActive(false); }
public void OnSelectedUpgradeType() { if (_userItem == null) { return; } _upgradeRow = (ItemGrade)(cboUpgradeType.items.IndexOf(cboUpgradeType.value) + 1); ShowInfoUpgradeItem(); ShowInfoItemEquip(); }
//type Gun/ShotGun으로 제한됨, 사거리/탄약 수/관통력 반환 public static (int, int, int) GetWeaponExtensionStat(WeaponType type, ItemGrade grade) { int index = (int)type - 2; if (index < 0) { throw new System.Exception("지정한 WeaponType은 해당 Stat을 사용하지 않습니다."); } return(weaponRange[index, (int)grade], weaponAmmo[index, (int)grade], weaponMultiHit[index, (int)grade]); }
public ItemInfo(int itemID, string itemName, string itemDescription, ItemType itemType, int gWeight, int jWeight, ItemGrade itemGrade, Sprite sprite) { this.itemID = itemID; this.itemName = itemName; this.itemDescription = itemDescription; this.itemType = itemType; this.gWeight = gWeight; this.jWeight = jWeight; this.itemGrade = itemGrade; this.itemIcon = sprite; }
public GameObject PopRandomItemByGrade(ItemGrade itemGrade) { List <GameObject> itemList = _equipObjectLists[(int)itemGrade]; if (itemList.Count == 0) { Debug.Log($"{itemGrade} Item List is empty"); return(null); } return(PopRandomItemInList(itemList)); }
public ItemInfo(ItemInfo iteminfo) { this.itemID = iteminfo.itemID; this.itemName = iteminfo.itemName; this.itemDescription = iteminfo.itemDescription; this.itemType = iteminfo.itemType; this.gWeight = iteminfo.gWeight; this.jWeight = iteminfo.jWeight; this.itemGrade = iteminfo.itemGrade; this.itemSprtie = iteminfo.itemSprtie; this.itemIcon = iteminfo.itemIcon; }
public JsonResult saveItemGrade(ItemGrade ItemGrade, int companyId) { try { new hdlItemGrade().save(ItemGrade, Convert.ToString(Session["User"]), companyId); } catch (Exception ex) { Response.StatusCode = 500; Content(JsonConvert.SerializeObject(new { error = ex.Message })); } return(getAllItemGradeCompany(ItemGrade.CompanyCode)); }
public JsonResult deleteItemGrade(ItemGrade ItemGrade) { try { new hdlItemGrade().delete(ItemGrade); } catch (Exception ex) { Response.StatusCode = 500; Content(JsonConvert.SerializeObject(new { error = ex.Message })); } return(getAllItemGradeCompany(ItemGrade.CompanyCode)); }
public void Load(S.ObjectItem info) { Name = info.Name; NameColour = info.NameColour; BodyLibrary = Libraries.FloorItems; CurrentLocation = info.Location; MapLocation = info.Location; GameScene.Scene.MapControl.AddObject(this); DrawFrame = info.Image; Size = BodyLibrary.GetTrueSize(DrawFrame); DrawY = CurrentLocation.Y; Grade = info.Grade; }
public static Weapon GetWeapon(WeaponType type, ItemGrade grade, Transform par) { //type, grade의 무기를 par의 자식오브젝트로 생성해주는 스태틱 함수 //무기 오브젝트 생성 GameObject weaponObj = new GameObject("WeaponEuipped"); GameObject meshObj = null; Weapon weapon = null; weaponObj.transform.SetParent(par, false); weaponObj.SetActive(false); //무기 오브젝트 비활성화 //무기 타입에 따른 처리 switch (type) { case WeaponType.Gun: weapon = weaponObj.AddComponent <Gun>(); meshObj = Resources.Load <GameObject>("DroppedWeapon/GunMesh"); break; case WeaponType.Shotgun: weapon = weaponObj.AddComponent <ShotGun>(); meshObj = Resources.Load <GameObject>("DroppedWeapon/ShotGunMesh"); break; case WeaponType.Sword: weapon = weaponObj.AddComponent <Sword>(); meshObj = Resources.Load <GameObject>("DroppedWeapon/SwordMesh"); break; case WeaponType.Longsword: weapon = weaponObj.AddComponent <LongSword>(); meshObj = Resources.Load <GameObject>("DroppedWeapon/LongSwordMesh"); break; } Object.Instantiate(meshObj, weaponObj.transform, false); weaponObj.transform.localScale = new Vector3(3, 3, 3); //무기 등급에 따른 처리 weapon.Init(grade); //오브젝트 활성화 후 반환 weaponObj.SetActive(true); return(weapon); }
public void SetItem(UserItem userItem) { _roleItem = userItem; ItemGrade itemGrade = (ItemGrade)userItem.Grade; Debug.Log("SetItem " + userItem.Grade + " " + itemGrade); Color color = Helper.ItemColor[userItem.Grade]; Border.color = color; texture.mainTexture = Helper.LoadTextureForEquipItem(userItem.ItemId); lblInfor.text = string.Format("[{0}]{1}\nLvl: {2}[-]\n", Helper.ColorToHex(color), userItem.Name, Helper.GetLevelItem(userItem.GameItem.Level)); lblAttribute.text = ""; foreach (ItemAttrib att in _roleItem.Attribs) { lblAttribute.text += string.Format("[00F099]{0}[-]: {1}\n", att.Attrib.ToString(), att.Value); } }
void AllowMerge() { if (savedItems.Count <= 1) { mergeButton.interactable = false; return; } ItemGrade gradeItem1 = savedItems[0].grade; for (int i = 1; i < savedItems.Count; i++) { if (savedItems[i].grade != gradeItem1) { mergeButton.interactable = false; return; } } mergeButton.interactable = true; }
public GameObject DropRandomItem(int stage) { Debug.Log("Drop Random Item"); float chanceSum = 0f; float[] chanceList = new float[4]; chanceSum += DropItemChanceInStages[stage].Normal; chanceList[0] = chanceSum; chanceSum += DropItemChanceInStages[stage].Special; chanceList[1] = chanceSum; chanceSum += DropItemChanceInStages[stage].Rare; chanceList[2] = chanceSum; chanceSum += DropItemChanceInStages[stage].Unique; chanceList[3] = chanceSum; // 랜덤한 리스트 선택 ItemGrade itemGrade = ItemGrade.Normal; float randomChance = UnityEngine.Random.Range(0f, 1f); if (randomChance < chanceList[0]) { itemGrade = ItemGrade.Normal; } else if (randomChance < chanceList[1]) { itemGrade = ItemGrade.Special; } else if (randomChance < chanceList[2]) { itemGrade = ItemGrade.Rare; } else if (randomChance < chanceList[3]) { itemGrade = ItemGrade.Unique; } // 확률 합이 1이 안 넘을 경우, 아이템을 드랍하지 않음 // 드랍 테이블이 빈 경우 처리 방안 필요 return(PopRandomItemByGrade(itemGrade)); }
public void delete(ItemGrade ItemGrade) { try { var context = new SmsMisDB(); //context.ItemGrade.Attach(ItemGrade); var entry = context.Entry(ItemGrade); if (entry != null) { entry.State = EntityState.Deleted; context.SaveChanges(); } } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { //throw SmsMis.Models.Console.Common.ExceptionTranslater.translate(ex); throw ex; } catch (Exception ex) { //throw SmsMis.Models.Console.Common.ExceptionTranslater.translate(ex); throw ex; } }
private void InitGrade(ItemGrade grade) { wlight = GetComponentInChildren <Light>(); particle = GetComponentInChildren <ParticleSystem>(); ParticleSystem.MainModule Pmain = particle.main; switch (grade) { case ItemGrade.Common: wlight.color = new Color(1f, 1f, 1f); Pmain.startColor = new Color(1f, 1f, 1f); break; case ItemGrade.Rare: wlight.color = new Color(0.25f, 0.5f, 1f); Pmain.startColor = new Color(0.25f, 0.5f, 1f); break; case ItemGrade.Unique: wlight.color = new Color(1f, 1f, 1f); Pmain.startColor = new Color(1f, 0.75f, 0.125f); break; } //light와 particle의 color 교체 }
public void save(ItemGrade ItemGrade, string userId, int CompanyCode) { try { using (var context = new SmsMisDB()) { var entry = context.Entry(ItemGrade); if (entry != null) { ItemGrade.AddDateTime = DateTime.Now; ItemGrade.AddByUserId = userId; if (ItemGrade.GradeCode == 0) { ItemGrade.GradeCode = Functions.getNextPk("ItemGrade", "ItemGrade.GradeCode", " WHERE ItemGrade.CompanyCode = " + ItemGrade.CompanyCode); entry.State = EntityState.Added; } else { entry.State = EntityState.Modified; } context.SaveChanges(); } } } catch (System.Data.Entity.Validation.DbEntityValidationException ex) { //throw ex; } catch (Exception ex) { // throw ex; } }
void Button_Click(object sender, EventArgs e) { if (sender == NextButton) { SelectedGrade++; if (SelectedGrade >= GradeStrings.Length) SelectedGrade = GradeStrings.Length - 1; } if (sender == PrevButton) { SelectedGrade--; if (SelectedGrade <= 0) SelectedGrade = 0; } GradeLabel.Text = GradeStrings[SelectedGrade]; GradeType = (ItemGrade)((byte)SelectedGrade); GradeLabel.ForeColour = GradeNameColor(GradeType); }
public void Show(ItemGrade grade) { if (Visible) return; Visible = true; GradeType = grade; RefreshGradeFilter(); }
public void SearchAuction(string itemName, bool isExactNameMatch = false, int page = 1, ItemGrade itemGrade = ItemGrade.All, AuctionCategory category = AuctionCategory.Off, int minPriceInCopper = 0, int maxPriceInCopper = 0, int minLevel = 0, int maxLevel = 0) { string searchQuery = string.Format("X2Auction:SearchAuctionArticle({0}, {1}, {2}, {3}, {4}, {5}, \"{6}\", \"{7}\", \"{8}\")", page, minLevel, maxLevel, (int)itemGrade, (int)category, isExactNameMatch.ToString().ToLower(), itemName, minPriceInCopper, maxPriceInCopper); System.Windows.Forms.MessageBox.Show(searchQuery); ArcheAPI.Instance.Lua.Execute(new Action(() => { ArcheAPI.Instance.Lua.ExecuteLuaScript(ArcheAPI.Instance.Lua.auctionLuaState, searchQuery, (uint)Encoding.UTF8.GetByteCount(searchQuery), "SearchQuery"); })); }
public ItemInfo(BinaryReader reader, int version = int.MaxValue, int Customversion = int.MaxValue) { Index = reader.ReadInt32(); Name = reader.ReadString(); Type = (ItemType)reader.ReadByte(); Grade = (ItemGrade)reader.ReadByte(); RequiredType = (RequiredType)reader.ReadByte(); RequiredClass = (RequiredClass)reader.ReadByte(); RequiredGender = (RequiredGender)reader.ReadByte(); Set = (ItemSet)reader.ReadByte(); Shape = reader.ReadInt16(); Weight = reader.ReadByte(); Light = reader.ReadByte(); RequiredAmount = reader.ReadByte(); Image = reader.ReadUInt16(); Durability = reader.ReadUInt16(); StackSize = reader.ReadUInt32(); Price = reader.ReadUInt32(); MinAC = reader.ReadByte(); MaxAC = reader.ReadByte(); MinMAC = reader.ReadByte(); MaxMAC = reader.ReadByte(); MinDC = reader.ReadByte(); MaxDC = reader.ReadByte(); MinMC = reader.ReadByte(); MaxMC = reader.ReadByte(); MinSC = reader.ReadByte(); MaxSC = reader.ReadByte(); HP = reader.ReadUInt16(); MP = reader.ReadUInt16(); Accuracy = reader.ReadByte(); Agility = reader.ReadByte(); Luck = reader.ReadSByte(); AttackSpeed = reader.ReadSByte(); StartItem = reader.ReadBoolean(); BagWeight = reader.ReadByte(); HandWeight = reader.ReadByte(); WearWeight = reader.ReadByte(); Effect = reader.ReadByte(); Strong = reader.ReadByte(); MagicResist = reader.ReadByte(); PoisonResist = reader.ReadByte(); HealthRecovery = reader.ReadByte(); SpellRecovery = reader.ReadByte(); PoisonRecovery = reader.ReadByte(); HPrate = reader.ReadByte(); MPrate = reader.ReadByte(); CriticalRate = reader.ReadByte(); CriticalDamage = reader.ReadByte(); byte bools = reader.ReadByte(); NeedIdentify = (bools & 0x01) == 0x01; ShowGroupPickup = (bools & 0x02) == 0x02; ClassBased = (bools & 0x04) == 0x04; LevelBased = (bools & 0x08) == 0x08; CanMine = (bools & 0x10) == 0x10; if (version >= 77) { GlobalDropNotify = (bools & 0x20) == 0x20; } MaxAcRate = reader.ReadByte(); MaxMacRate = reader.ReadByte(); Holy = reader.ReadByte(); Freezing = reader.ReadByte(); PoisonAttack = reader.ReadByte(); Bind = (BindMode)reader.ReadInt16(); Reflect = reader.ReadByte(); HpDrainRate = reader.ReadByte(); Unique = (SpecialItemMode)reader.ReadInt16(); RandomStatsId = reader.ReadByte(); CanFastRun = reader.ReadBoolean(); CanAwakening = reader.ReadBoolean(); bool isTooltip = reader.ReadBoolean(); if (isTooltip) { ToolTip = reader.ReadString(); } if (version < 70) //before db version 70 all specialitems had wedding rings disabled, after that it became a server option { if ((Type == ItemType.Ring) && (Unique != SpecialItemMode.None)) { Bind |= BindMode.NoWeddingRing; } } }
public static async System.Threading.Tasks.Task <List <BdoItemModel> > ScrapeItemLinksAsync(List <string> links) { var materials = new List <BdoItemModel>(); var htmlDocument = new HtmlDocument(); foreach (var materialLink in links) { Console.WriteLine($"Scraping from {materialLink}"); var cookie = new CookieContainer(); HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(materialLink); httpWebRequest.CookieContainer = cookie; httpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3"; httpWebRequest.Referer = MaterialItemsUrl; httpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"; httpWebRequest.Method = "GET"; httpWebRequest.AllowAutoRedirect = true; var response = await httpWebRequest.GetResponseAsync(); var outputString = string.Empty; using (Stream stream = response.GetResponseStream()) { using (StreamReader reader = new StreamReader(stream)) { outputString = reader.ReadToEnd(); } } htmlDocument.LoadHtml(outputString); var item = new BdoItemModel(); HtmlNode itemBox = htmlDocument.DocumentNode.SelectSingleNode("//div[@class='outer item_info']"); //Item id int itemId = 0; var idTD = itemBox.Descendants("td") .Where(e => e.InnerText.StartsWith("ID: ")); Int32.TryParse(Regex.Match(idTD.First().InnerText, @"\d+").Value, out itemId); item.Id = itemId; //Item Name var nameElem = itemBox.Descendants("span").Where(n => n.GetAttributeValue("id", "") == "item_name").FirstOrDefault(); var name = nameElem?.Descendants("b").FirstOrDefault().InnerText; if (name != null) { item.Name = name; } //Item Grade ItemGrade cacheItemGrade = ItemGrade.White; var gradeString = nameElem.GetClasses().ToList()[1].Replace("item_grade_", ""); Enum.TryParse(gradeString, out cacheItemGrade); item.Grade = cacheItemGrade; //Item Weight string weight = "0 LT"; var weightElem = itemBox.Descendants("td").Where(t => t.InnerText.Contains("Weight: ")).FirstOrDefault(); string weightElemString = weightElem.InnerText; if (weightElem != null) { weight = weightElemString.Substring (weightElemString.LastIndexOf("Weight: ") + 8, weightElemString.Length - weightElemString.LastIndexOf("LT") + 3); } item.Weight = weight; //Item Img var itemImg = itemBox.Descendants("img").Where(r => r.GetAttributeValue("class", "") == "item_icon") .FirstOrDefault().GetAttributeValue("src", string.Empty); item.Img = $"https://{response.ResponseUri.Host}{itemImg}"; //Item Category var itemCategory = itemBox.Descendants("span") .Where(n => n.GetAttributeValue("class", string.Empty) == "category_text") .FirstOrDefault(); if (itemCategory != null) { item.Category = itemCategory.InnerText; } //Item Description var itemDescriptionElem = itemBox.Descendants("td").Where(n => n.InnerText.Contains("Description")).FirstOrDefault(); if (itemDescriptionElem != null) { item.Description = itemDescriptionElem.InnerText;//Replace with innerHtml for colored text markups if (item.Description.Contains("Knowledge:")) { var knowledgeNode = itemDescriptionElem.Descendants("a") .FirstOrDefault(e => e.GetAttributeValue("data-id", "").StartsWith("theme--")); if (knowledgeNode != null) { item.Knowledge = knowledgeNode.GetAttributeValue("data-id", ""); } } var sellOrMarket = "Sell price: "; if (!item.Description.Contains(sellOrMarket)) { sellOrMarket = "Market Price: "; } if (item.Description.Contains("Buy price:")) { string sellBuyPrice = string.Empty; if (item.Description.Contains("Repair price")) { int buyI = item.Description.IndexOf("Buy price:"); sellBuyPrice = item.Description.Substring(buyI, item.Description.IndexOf("Repair price:") - buyI); } else { sellBuyPrice = item.Description.Substring(item.Description.IndexOf("Buy price:")); } var buyPrice = sellBuyPrice.Substring(0, sellBuyPrice.IndexOf(sellOrMarket)); item.BuyPrice = buyPrice.Replace("Buy price: ", ""); var sellprice = sellBuyPrice.Substring(sellBuyPrice.IndexOf(sellOrMarket)); item.SellPrice = sellprice.Replace(sellOrMarket, ""); } else { item.SellPrice = "0"; item.BuyPrice = "0"; } } materials.Add(item); Console.WriteLine($"Finished Scraping {materialLink}"); } return(materials); }
//Get Method 사용 방법 : 첫번째 매개변수는 Weapon 종류 지정(Enum WeaponType), 두번째 매개변수는 Weapon 등급 지정(Enum ItemGrade) //매개변수 type과 grade로 지정한 무기의 기본 정보 : 공격 시 공격력/공격 쿨타임 반환 public static (int, float) GetWeaponStat(WeaponType type, ItemGrade grade) { return(weaponAtk[(int)type, (int)grade], weaponCooldown[(int)type, (int)grade]); }
//Get Method 사용 방법 : 첫번째 매개변수는 Armor 종류 지정(Enum ArmorType), 두번째 매개변수는 Armor 등급 지정(Enum ItemGrade) //매개변수 type과 grade로 지정한 방어구의 기본 정보 : 최대체력 증가량/방어력 증가량/이동속도 증가량 을 반환한다. public static (int, int, float) GetArmorStat(ArmorType type, ItemGrade grade) { return(bonusHp[(int)type, (int)grade], bonusArmor[(int)type, (int)grade], bonusSpeed[(int)type, (int)grade]); }
public Color GradeNameColor(ItemGrade grade) { switch (grade) { case ItemGrade.Common: return Color.Yellow; case ItemGrade.Rare: return Color.DeepSkyBlue; case ItemGrade.Legendary: return Color.DarkOrange; case ItemGrade.Mythical: return Color.Plum; default: return Color.Yellow; } }
public ItemInfo(BinaryReader reader, int version = int.MaxValue, int customVersion = int.MaxValue) { Index = reader.ReadInt32(); Name = reader.ReadString(); Type = (ItemType)reader.ReadByte(); Grade = (ItemGrade)reader.ReadByte(); RequiredType = (RequiredType)reader.ReadByte(); RequiredClass = (RequiredClass)reader.ReadByte(); RequiredGender = (RequiredGender)reader.ReadByte(); Set = (ItemSet)reader.ReadByte(); Shape = reader.ReadInt16(); Weight = reader.ReadByte(); Light = reader.ReadByte(); RequiredAmount = reader.ReadByte(); Image = reader.ReadUInt16(); Durability = reader.ReadUInt16(); if (version <= 84) { StackSize = (ushort)reader.ReadUInt32(); } else { StackSize = reader.ReadUInt16(); } Price = reader.ReadUInt32(); if (version <= 84) { Stats = new Stats(); Stats[Stat.MinAC] = reader.ReadByte(); Stats[Stat.MaxAC] = reader.ReadByte(); Stats[Stat.MinMAC] = reader.ReadByte(); Stats[Stat.MaxMAC] = reader.ReadByte(); Stats[Stat.MinDC] = reader.ReadByte(); Stats[Stat.MaxDC] = reader.ReadByte(); Stats[Stat.MinMC] = reader.ReadByte(); Stats[Stat.MaxMC] = reader.ReadByte(); Stats[Stat.MinSC] = reader.ReadByte(); Stats[Stat.MaxSC] = reader.ReadByte(); Stats[Stat.HP] = reader.ReadUInt16(); Stats[Stat.MP] = reader.ReadUInt16(); Stats[Stat.Accuracy] = reader.ReadByte(); Stats[Stat.Agility] = reader.ReadByte(); Stats[Stat.Luck] = reader.ReadSByte(); Stats[Stat.AttackSpeed] = reader.ReadSByte(); } StartItem = reader.ReadBoolean(); if (version <= 84) { Stats[Stat.BagWeight] = reader.ReadByte(); Stats[Stat.HandWeight] = reader.ReadByte(); Stats[Stat.WearWeight] = reader.ReadByte(); } Effect = reader.ReadByte(); if (version <= 84) { Stats[Stat.Strong] = reader.ReadByte(); Stats[Stat.MagicResist] = reader.ReadByte(); Stats[Stat.PoisonResist] = reader.ReadByte(); Stats[Stat.HealthRecovery] = reader.ReadByte(); Stats[Stat.SpellRecovery] = reader.ReadByte(); Stats[Stat.PoisonRecovery] = reader.ReadByte(); Stats[Stat.HPRatePercent] = reader.ReadByte(); Stats[Stat.MPRatePercent] = reader.ReadByte(); Stats[Stat.CriticalRate] = reader.ReadByte(); Stats[Stat.CriticalDamage] = reader.ReadByte(); } byte bools = reader.ReadByte(); NeedIdentify = (bools & 0x01) == 0x01; ShowGroupPickup = (bools & 0x02) == 0x02; ClassBased = (bools & 0x04) == 0x04; LevelBased = (bools & 0x08) == 0x08; CanMine = (bools & 0x10) == 0x10; if (version >= 77) { GlobalDropNotify = (bools & 0x20) == 0x20; } if (version <= 84) { Stats[Stat.MaxACRatePercent] = reader.ReadByte(); Stats[Stat.MaxMACRatePercent] = reader.ReadByte(); Stats[Stat.Holy] = reader.ReadByte(); Stats[Stat.Freezing] = reader.ReadByte(); Stats[Stat.PoisonAttack] = reader.ReadByte(); } Bind = (BindMode)reader.ReadInt16(); if (version <= 84) { Stats[Stat.Reflect] = reader.ReadByte(); Stats[Stat.HPDrainRatePercent] = reader.ReadByte(); } Unique = (SpecialItemMode)reader.ReadInt16(); RandomStatsId = reader.ReadByte(); CanFastRun = reader.ReadBoolean(); CanAwakening = reader.ReadBoolean(); if (version > 83) { Slots = reader.ReadByte(); } if (version > 84) { Stats = new Stats(reader); } bool isTooltip = reader.ReadBoolean(); if (isTooltip) { ToolTip = reader.ReadString(); } if (version < 70) //before db version 70 all specialitems had wedding rings disabled, after that it became a server option { if ((Type == ItemType.Ring) && (Unique != SpecialItemMode.None)) { Bind |= BindMode.NoWeddingRing; } } }
public ItemInfo(BinaryReader reader, int version = int.MaxValue, int Customversion = int.MaxValue) { Index = reader.ReadInt32(); Name = reader.ReadString(); Type = (ItemType) reader.ReadByte(); if (version >= 40) Grade = (ItemGrade)reader.ReadByte(); RequiredType = (RequiredType) reader.ReadByte(); RequiredClass = (RequiredClass) reader.ReadByte(); RequiredGender = (RequiredGender) reader.ReadByte(); if(version >= 17) Set = (ItemSet)reader.ReadByte(); Shape = version >= 30 ? reader.ReadInt16() : reader.ReadSByte(); Weight = reader.ReadByte(); Light = reader.ReadByte(); RequiredAmount = reader.ReadByte(); Image = reader.ReadUInt16(); Durability = reader.ReadUInt16(); StackSize = reader.ReadUInt32(); Price = reader.ReadUInt32(); MinAC = reader.ReadByte(); MaxAC = reader.ReadByte(); MinMAC = reader.ReadByte(); MaxMAC = reader.ReadByte(); MinDC = reader.ReadByte(); MaxDC = reader.ReadByte(); MinMC = reader.ReadByte(); MaxMC = reader.ReadByte(); MinSC = reader.ReadByte(); MaxSC = reader.ReadByte(); if (version < 25) { HP = reader.ReadByte(); MP = reader.ReadByte(); } else { HP = reader.ReadUInt16(); MP = reader.ReadUInt16(); } Accuracy = reader.ReadByte(); Agility = reader.ReadByte(); Luck = reader.ReadSByte(); AttackSpeed = reader.ReadSByte(); StartItem = reader.ReadBoolean(); BagWeight = reader.ReadByte(); HandWeight = reader.ReadByte(); WearWeight = reader.ReadByte(); if (version >= 9) Effect = reader.ReadByte(); if (version >= 20) { Strong = reader.ReadByte(); MagicResist = reader.ReadByte(); PoisonResist = reader.ReadByte(); HealthRecovery = reader.ReadByte(); SpellRecovery = reader.ReadByte(); PoisonRecovery = reader.ReadByte(); HPrate = reader.ReadByte(); MPrate = reader.ReadByte(); CriticalRate = reader.ReadByte(); CriticalDamage = reader.ReadByte(); byte bools = reader.ReadByte(); NeedIdentify = (bools & 0x01) == 0x01; ShowGroupPickup = (bools & 0x02) == 0x02; ClassBased = (bools & 0x04) == 0x04; LevelBased = (bools & 0x08) == 0x08; CanMine = (bools & 0x10) == 0x10; MaxAcRate = reader.ReadByte(); MaxMacRate = reader.ReadByte(); Holy = reader.ReadByte(); Freezing = reader.ReadByte(); PoisonAttack = reader.ReadByte(); if (version < 55) { Bind = (BindMode)reader.ReadByte(); } else { Bind = (BindMode)reader.ReadInt16(); } } if (version >= 21) { Reflect = reader.ReadByte(); HpDrainRate = reader.ReadByte(); Unique = (SpecialItemMode)reader.ReadInt16(); } if (version >= 24) { RandomStatsId = reader.ReadByte(); } else { RandomStatsId = 255; if ((Type == ItemType.Weapon) || (Type == ItemType.Armour) || (Type == ItemType.Helmet) || (Type == ItemType.Necklace) || (Type == ItemType.Bracelet) || (Type == ItemType.Ring) || (Type == ItemType.Mount)) RandomStatsId = (byte)Type; if ((Type == ItemType.Belt) || (Type == ItemType.Boots)) RandomStatsId = 7; } if (version >= 40) CanFastRun = reader.ReadBoolean(); if (version >= 41) { CanAwakening = reader.ReadBoolean(); bool isTooltip = reader.ReadBoolean(); if (isTooltip) ToolTip = reader.ReadString(); } }
public override void Init(ItemGrade grade) { base.Init(grade); }