private IEnumerator ShowObjectives() { int count = 0; int max = gameStats.objectList.Count; int moneyCount = 0; moneyText.text = "$" + moneyCount.ToString(); while (count < max) { if (!skipPress) { yield return(new WaitForSecondsRealtime(0.075f)); SoundRequest.RequestSound("Punch"); } // Spawn next object in list LootObject lo = gameStats.objectList[count]; Instantiate(ImageFromID(lo.ID), grid); moneyCount += lo.price; moneyText.text = "$" + moneyCount.ToString(); count++; } skipPress = true; }
private void OnChanged_InventoryState() { if (m_CurLootObject && InventoryController.Instance.IsClosed) { m_CurLootObject = null; } }
private void CheckDesiccateAetheria(ref LootObject IoItemAetheria) { try { IoItemAetheria.IOR = IOResult.dessicate; return; }catch(Exception ex){LogError(ex);} }
void _GeneratePrefabLoot() { GameObject myPrefab; myPrefab = Resources.Load("Prefabs/Collectible/Loot") as GameObject; LootObject = Instantiate(myPrefab, GetComponent <Transform>().position + new Vector3(0, 0.5f, 0), Quaternion.identity); LootObject.GetComponent <SpriteRenderer>().sprite = _GenerateLootSprite(); }
public void Process(ref LootObject Loot) { var Item = Roll(); if (Item != null) { Loot.Items.Add(new LootItem(ref Item)); } }
private void CheckManaItem(ref LootObject IOItemMana) { try { if(GISettings.LootByMana == 0){return;} if(Core.WorldFilter.GetInventory().Where(x => x.ObjectClass == ObjectClass.ManaStone && x.Values(LongValueKey.IconOutline) == 0).Count() == 0){return;} if(IOItemMana.LValue(LongValueKey.CurrentMana) > GISettings.LootByMana) { IOItemMana.IOR = IOResult.manatank; } } catch(Exception ex){LogError(ex);} }
private void CheckManaItem(ref LootObject IOItemMana) { try { if(mGeneralSettings.GearInspectorSettings.LootByMana == 0){return;} if(mCurrentInventory.EmptyManaStonesCount == 0 || mCurrentInventory.EmptyManaStonesCount <= LOHash.Where(x => x.IOR == IOResult.manatank).Count()){return;} if(IOItemMana.Values(ALongValueKeys.CurrentMana) > mGeneralSettings.GearInspectorSettings.LootByMana) { IOItemMana.IOR = IOResult.manatank; } } catch(Exception ex){LogError(ex);} }
void Start() { if (!isServer) { return; } foreach (LootObject spawner in spawns) { if (spawner.mainLoot == true) { current = spawner; lootcount++; var loot = (GameObject)Instantiate(current.lootPrefab, current.pos, current.rot); NetworkServer.Spawn(loot); } } do { allLimit = true; foreach (LootObject spawner in spawns) { if (spawner.limitReached == false) { allLimit = false; } } if (allLimit == true) { return; } ChoosePosition(); var enemy = (GameObject)Instantiate(current.lootPrefab, current.pos, current.rot); lootcount++; for (int i = 0; i < spawnList.Length; i++) { if (spawnList[i] == null) { spawnList[i] = enemy; } } NetworkServer.Spawn(enemy); } while (lootcount <= max_loot); }
public void Process(ref LootObject Loot, byte GroupID) { if (GroupID > 0) { if (Groups.ContainsKey(GroupID)) { Groups[GroupID].Process(ref Loot); } return; } checked { int num = Items.Count - 1; for (int i = 0; i <= num; i++) { if (!Items[i].Roll()) { continue; } if (Items[i].MinCountOrRef < 0) { LootTemplate Referenced = WorldServiceLocator._WS_Loot.LootTemplates_Reference.GetLoot(-Items[i].MinCountOrRef); if (Referenced != null) { int maxCount = Items[i].MaxCount; for (int j = 1; j <= maxCount; j++) { Referenced.Process(ref Loot, Items[i].Group); } } } else { List <LootItem> items = Loot.Items; List <LootStoreItem> items2; int index; LootStoreItem Item = (items2 = Items)[index = i]; LootItem item = new LootItem(ref Item); items2[index] = Item; items.Add(item); } } foreach (KeyValuePair <byte, LootGroup> group in Groups) { group.Value.Process(ref Loot); } } }
void ChoosePosition() { newspawn = spawns[Random.Range(0, spawns.Length)]; if (newspawn.spawnLimit != 0) { if (newspawn.limitReached) { ChoosePosition(); } } newspawn.currentCount += 1; current = newspawn; }
private bool Try_OpenLootContainer(LootObject lootObject) { if (InventoryController.Instance.IsClosed) { bool hasOpened = InventoryController.Instance.SetState.Try(ET.InventoryState.Loot); if (hasOpened) { m_CurLootObject = lootObject; m_ItemContainer.Setup(lootObject.ItemHolders); return(true); } } return(false); }
//drop to the ground, can wait for pick public void StartPickup() { if (_pickupFlag) { return; } _pickupFlag = true; _moveFlag = false; //for particle objects, prevent from born too early //if (!_lootObj.activeSelf) { _lootObj.transform.parent = LootManager.Instance.LootRoot; _lootObj.transform.localPosition = _moveTransform.position; _lootObj.SetActive(true); } ShowShadow(true); LootObject lootObject = _lootObj.GetComponent <LootObject>(); lootObject.LootId = _lootId; lootObject.LootCount = _lootCount; GameObject particle = GameObject.Instantiate(_lootParticlePrefab, _thisTransform.position, Quaternion.identity) as GameObject; particle.transform.parent = LootManager.Instance.LootRoot; particle.transform.localPosition = _moveTransform.position; lootObject.PartcileEffect = particle; lootObject.StartPickup(_lifeTime); Destroy(_moveObj); Destroy(gameObject); }
private void TrophyHashCheckItem(ref LootObject IOItem) { try { string IsTrophyName = String.Empty; if(mTrophyHash.Contains(@IOItem.Name)){IsTrophyName = @IOItem.Name;} else { foreach(string name in mTrophyStartsWithHash) { if(@IOItem.Name.StartsWith(@name)){IsTrophyName = @name; break;} } } if(IsTrophyName == String.Empty){return;} int LootMax = mTrophyLootMaxDictionary[IsTrophyName]; if(LootMax == 0) { IOItem.IOR = IOResult.trophy; return; } else if(LootMax > 0) { if(AetherObjects.InventoryCountByName(@IOItem.Name) < LootMax) { IOItem.IOR = IOResult.trophy; } else{IOItem.IOR = IOResult.nomatch;} return; } else if(LootMax == -1) { string Name = @IOItem.Name; if(LOHash.Any(x => @x.Name == @Name && x.IOR == IOResult.trophy)) { IOItem.IOR = IOResult.nomatch; return; } IOItem.IOR = IOResult.trophy; return; } } catch(Exception ex){LogError(ex);} return; }
private void CheckRulesItem(ref LootObject IOItemWithIDReference) { //Irq: Note to self: Cloak IDs....cloaks w/spells are 352 = 1; cloaks w/absorb are 352=2 try { LootObject IOItemWithID = IOItemWithIDReference; List<ItemRule> AppliesToListMatches = (from appliesto in mSearchListHolder.ItemRulesHash.Where(x => x.enabled) where (appliesto.RuleAppliesTo & IOItemWithID.Values(ALongValueKeys.Category)) == IOItemWithID.Values(ALongValueKeys.Category) select appliesto).ToList(); if(AppliesToListMatches.Count == 0) {return;} List<ItemRule> SlotListMatches = (from slots in AppliesToListMatches where slots.RuleSlots == 0 || (IOItemWithID.Values(ALongValueKeys.EquipableSlots) & slots.RuleSlots) != 0 select slots).ToList(); if(SlotListMatches.Count == 0) {return;} List<ItemRule> SetMatches = (from sets in SlotListMatches where sets.RuleArmorSet.Count == 0 || sets.RuleArmorSet.Contains((int)IOItemWithID.Values(ALongValueKeys.ArmorSet)) select sets).ToList(); if(SetMatches.Count == 0) {return;} List<ItemRule> PropertyListMatches = (from properties in SetMatches where (properties.RuleArcaneLore == -1 || IOItemWithID.Values(ALongValueKeys.LoreRequirement) <= properties.RuleArcaneLore) && (properties.RuleWork == -1 || IOItemWithID.Values(ALongValueKeys.Workmanship) <= properties.RuleWork) && (properties.RuleWieldLevel == -1 || (IOItemWithID.Values(ALongValueKeys.WieldReqType) != 7 && IOItemWithID.Values(ALongValueKeys.WieldReqType2) != 7) || (IOItemWithID.Values(ALongValueKeys.WieldReqType) == 7 && IOItemWithID.Values(ALongValueKeys.WieldReqValue) <= properties.RuleWieldLevel) || (IOItemWithID.Values(ALongValueKeys.WieldReqType2) == 7 && IOItemWithID.Values(ALongValueKeys.WieldReqValue2) <= properties.RuleWieldLevel)) select properties).ToList(); if(PropertyListMatches.Count == 0) {return;} List<ItemRule> AdvancedMatches = (from advancedmatches in PropertyListMatches where !advancedmatches.AdvSettings || MatchAdvanced(advancedmatches, IOItemWithID) select advancedmatches).ToList(); if(AdvancedMatches.Count == 0){return;} List<ItemRule> ArmorTypeMatches = (from armormatch in AdvancedMatches where armormatch.RuleArmorTypes.Count == 0 || armormatch.RuleArmorTypes.Contains(IOItemWithID.ArmorType) select armormatch).ToList(); List<ItemRule> PaletteMatches = (from palmatch in ArmorTypeMatches where palmatch.Palattes.Sum() == 0 || palmatch.Palattes.Count == 0 || CompareLists(palmatch.Palattes, IOItemWithID.Palettes) || CheckContains(palmatch.Palattes, IOItemWithID.Palettes) select palmatch).ToList(); List<ItemRule> SpellListMatches = (from spellmatches in PaletteMatches where spellmatches.RuleSpellNumber == -1 || spellmatches.RuleSpells.Count == 0 || IOItemWithID.SpellsOnItem.Intersect(spellmatches.RuleSpells).Count() >= spellmatches.RuleSpellNumber select spellmatches).ToList(); if(SpellListMatches.Count == 0) {return;} switch(IOItemWithID.ObjectClass) { case AObjectClass.Gem: if(!IOItemWithID.Aetheriacheck) {return;} List<ItemRule> reducedaetheriamatches = (from ruls in SpellListMatches where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore) orderby ruls.RulePriority select ruls).ToList(); if(reducedaetheriamatches.Count > 0) { IOItemWithID.IOR = IOResult.rule; IOItemWithID.MatchingItemRule = reducedaetheriamatches.First(); return; } else { return; } case AObjectClass.Jewelry: //Jewelry doesn't have gear scores at this time. List<ItemRule> reducedjewelrymatches = (from ruls in SpellListMatches where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore) orderby ruls.RulePriority select ruls).ToList(); if(reducedjewelrymatches.Count > 0) { IOItemWithID.IOR = IOResult.rule; IOItemWithID.MatchingItemRule = reducedjewelrymatches.First(); return; } else { return; } case AObjectClass.Armor: List<ItemRule> reducedarmormatches = (from ruls in SpellListMatches where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore) orderby ruls.RulePriority select ruls).ToList(); if(reducedarmormatches.Count > 0) { IOItemWithID.IOR = IOResult.rule; IOItemWithID.MatchingItemRule = reducedarmormatches.First(); return; } else { return; } case AObjectClass.Clothing: if(IOItemWithID.Values(ALongValueKeys.EquipableSlots) == 0x8000000) { List<ItemRule> reducedcloakmatches = (from ruls in SpellListMatches where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore) orderby ruls.RulePriority select ruls).ToList(); if(reducedcloakmatches.Count > 0) { IOItemWithID.IOR = IOResult.rule; IOItemWithID.MatchingItemRule = reducedcloakmatches.First(); return; } else { return; } } else if(IOItemWithID.Values(ALongValueKeys.ArmorLevel) > 0) { List<ItemRule> reducedarmorclothmatches = (from ruls in SpellListMatches where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore) orderby ruls.RulePriority select ruls).ToList(); if(reducedarmorclothmatches.Count > 0) { IOItemWithID.IOR = IOResult.rule; IOItemWithID.MatchingItemRule = reducedarmorclothmatches.First(); return; } else { return; } } else { List<ItemRule> reducedclothingmatches = (from ruls in SpellListMatches where (ruls.GearScore == -1 || IOItemWithID.GetGearScore() >= ruls.GearScore) orderby ruls.RulePriority select ruls).ToList(); if(reducedclothingmatches.Count > 0) { IOItemWithID.IOR = IOResult.rule; IOItemWithID.MatchingItemRule = reducedclothingmatches.First(); return; } else { return; } } case AObjectClass.MeleeWeapon: case AObjectClass.MissileWeapon: case AObjectClass.WandStaffOrb: List<ItemRule> reducedweaponmatches = (from ruls in SpellListMatches where IOItemWithID.GetGearScore() >= ruls.GearScore && (ruls.RuleDamageTypes == 0 || (ruls.RuleDamageTypes & IOItemWithID.DamageType) == IOItemWithID.DamageType) && (ruls.RuleWieldSkill == 0 || (IOItemWithID.Values(ALongValueKeys.WieldReqType) == 7 && ruls.RuleWieldSkill == 0) || ruls.RuleWieldSkill == IOItemWithID.Values(ALongValueKeys.WieldReqAttribute)) && (ruls.RuleMastery == 0 || IOItemWithID.WeaponMasteryCategory == ruls.RuleMastery) && (!ruls.WieldRequirements.Any(x => x.WieldEnabled) || ruls.WieldRequirements.Any(x => x.WieldEnabled && IOItemWithID.Values(ALongValueKeys.WieldReqValue) == x.WieldReqValue) || (ruls.WieldRequirements.Any(x => x.WieldEnabled && x.WieldReqValue == 0) && (IOItemWithID.Values(ALongValueKeys.WieldReqType) == 0 || IOItemWithID.Values(ALongValueKeys.WieldReqType) == 7))) orderby ruls.RulePriority select ruls).ToList(); if(reducedweaponmatches.Count > 0) { IOItemWithID.IOR = IOResult.rule; IOItemWithID.MatchingItemRule = reducedweaponmatches.First(); return; } else { return; } case AObjectClass.Misc: if(IOItemWithID.Name.Contains("Essence")) { List<ItemRule> reducedessencematches = (from ruls in SpellListMatches where IOItemWithID.GetGearScore() >= ruls.GearScore && ruls.RuleWieldSkill == 54 && (ruls.RuleMastery == 0 || IOItemWithID.WeaponMasteryCategory == ruls.RuleMastery) && (ruls.RuleDamageTypes == 0 || (ruls.RuleDamageTypes & IOItemWithID.DamageType) == IOItemWithID.DamageType) && (!ruls.WieldRequirements.Any(x => x.WieldEnabled) || ruls.WieldRequirements.Any(x => x.WieldEnabled && IOItemWithID.Values(ALongValueKeys.SummoningSkill) == x.WieldReqValue)) orderby ruls.RulePriority select ruls).ToList(); if(reducedessencematches.Count() > 0) { IOItemWithID.IOR = IOResult.rule; IOItemWithID.MatchingItemRule = reducedessencematches.First(); return; } else { return; } } else { return; } default: return; } } catch(Exception ex) {LogError(ex);} }
private void LootByContainer(int ContainerId) { try { LootObject container = new LootObject(Core.WorldFilter[ContainerId]); if(container.Name.Contains(Core.CharacterFilter.Name)){return;} //TODO: Protect permitted corpses. if(container.Name.Contains("Chest") || container.Name.Contains("Vault") || container.Name.Contains("Reliquary") || container.ObjectClass == ObjectClass.Corpse) { foreach(WorldObject wo in Core.WorldFilter.GetByContainer(container.Id)) { if(!LOList.Any(x => x.Id == wo.Id)) { LootObject lo = new LootObject(wo); LOList.Add(lo); SeparateItemsToID(lo.Id); } } } }catch(Exception ex){LogError(ex);} }
// Item Tracker ID functions begin here private void CheckSalvageItem(ref LootObject IOItemSalvage) { try { LootObject IoItemSalvageMirror = IOItemSalvage; if(IOItemSalvage.DValue(DoubleValueKey.SalvageWorkmanship) > 0) { var salvagerulecheck = from allrules in SalvageRulesList where (allrules.material == IoItemSalvageMirror.LValue(LongValueKey.Material)) && (IoItemSalvageMirror.DValue(DoubleValueKey.SalvageWorkmanship) >= allrules.minwork) && (IoItemSalvageMirror.DValue(DoubleValueKey.SalvageWorkmanship) <= (allrules.maxwork +0.99)) select allrules; if(salvagerulecheck.Count() > 0) { IOItemSalvage.IOR = IOResult.salvage; IOItemSalvage.rulename = salvagerulecheck.First().ruleid; } } if(IOItemSalvage.Aetheriacheck && GISettings.AutoDessicate) { IOItemSalvage.IOR = IOResult.dessicate; } }catch(Exception ex){LogError(ex);} }
private void ManualCheckItemForMatches(LootObject IOItem) { try { if(IOItem.Id == LastReportGUID) {return;} else{LastReportGUID = IOItem.Id;} if(IOItem.ObjectClass == ObjectClass.Scroll){CheckUnknownScrolls(ref IOItem);} if(IOItem.IOR == IOResult.unknown){CheckRare(ref IOItem);} if(IOItem.IOR == IOResult.unknown) {TrophyListCheckItem(ref IOItem);} if(IOItem.HasIdData && IOItem.IOR == IOResult.unknown){CheckRulesItem(ref IOItem);} if(IOItem.IOR == IOResult.unknown && GISettings.IdentifySalvage) {CheckSalvageItem(ref IOItem);} if(IOItem.IOR == IOResult.unknown) {CheckManaItem(ref IOItem);} if(IOItem.IOR == IOResult.unknown) {CheckValueItem(ref IOItem);} if(IOItem.IOR == IOResult.unknown) {IOItem.IOR = IOResult.nomatch;} if(GISettings.GSStrings) {ReportStringToChat(IOItem.GSReportString());} if(GISettings.AlincoStrings){ReportStringToChat(IOItem.LinkString());} }catch(Exception ex){LogError(ex);} }
private void LootByContainer() { try { AetherObject container = AetherObjects.Collection[Core.Actions.OpenedContainer]; if(container.Name.Contains(AetherCharacter.CharStats.Name)){return;} if(PermittedCorpsesList.Count > 0){if(PermittedCorpsesList.Any(x => container.Name.Contains(x))){return;}} if(container.Name.Contains("Chest") || container.Name.Contains("Vault") || container.Name.Contains("Reliquary") || container.ObjectClass == AObjectClass.Corpse) { foreach(AetherObject ao in AetherObjects.GetByObjectContainer(container.Id)) { if(!LOHash.Any(x => x.Id == ao.Id)) { LootObject lo = new LootObject(ao); LOHash.Add(lo); IdentifyItem(lo.Id); } } } }catch(Exception ex){LogError(ex);} }
private void UpdateItemHud() { try { if(ItemHudView == null) {return;} ItemHudInspectorList.ClearRows(); ItemHudUstList.ClearRows(); for(int i = LOList.Count - 1; i >= 0; i--) { LOListAcessor = LOList[i]; if(LOListAcessor.InspectList) { ItemHudListRow = ItemHudInspectorList.AddRow(); ((HudPictureBox)ItemHudListRow[0]).Image = LOListAcessor.Icon + 0x6000000; if(GISettings.RenderMini){((HudStaticText)ItemHudListRow[1]).Text = LOListAcessor.MiniIORString();} else{((HudStaticText)ItemHudListRow[1]).Text = LOListAcessor.IORString() + LOListAcessor.Name;} ((HudStaticText)ItemHudListRow[1]).FontHeight = nitemFontHeight; if(LOListAcessor.IOR == IOResult.trophy) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.Wheat;} if(LOListAcessor.IOR == IOResult.salvage) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.PaleVioletRed;} if(LOListAcessor.IOR == IOResult.val) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.PaleGoldenrod;} if(LOListAcessor.IOR == IOResult.spell) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.Lavender;} if(LOListAcessor.IOR == IOResult.rule) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.LightGreen;} if(LOListAcessor.IOR == IOResult.rare) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.HotPink;} if(LOListAcessor.IOR == IOResult.manatank) {((HudStaticText)ItemHudListRow[1]).TextColor = Color.CornflowerBlue;} ((HudPictureBox)ItemHudListRow[2]).Image = GearGraphics.RemoveCircle; ((HudStaticText)ItemHudListRow[3]).Text = LOListAcessor.Id.ToString(); } if(LOListAcessor.ProcessList) { ItemHudListRow = ItemHudUstList.AddRow(); if(LOListAcessor.FoundryProcess == FoundryActionTypes.Salvage) {((HudPictureBox)ItemHudListRow[0]).Image = GearGraphics.ItemUstIcon;} else if(LOListAcessor.FoundryProcess == FoundryActionTypes.Desiccate) {((HudPictureBox)ItemHudListRow[0]).Image = GearGraphics.ItemDesiccantIcon;} else if(LOListAcessor.FoundryProcess == FoundryActionTypes.ManaStone) {((HudPictureBox)ItemHudListRow[0]).Image = GearGraphics.ItemManaStoneIcon;} else {((HudPictureBox)ItemHudListRow[0]).Image = LOListAcessor.Icon;} if(GISettings.RenderMini) {((HudStaticText)ItemHudListRow[1]).Text = LOListAcessor.MiniIORString();} else{((HudStaticText)ItemHudListRow[1]).Text = LOListAcessor.IORString() + LOListAcessor.Name;} ((HudStaticText)ItemHudListRow[1]).FontHeight = nmenuFontHeight; ((HudPictureBox)ItemHudListRow[2]).Image = GearGraphics.RemoveCircle; ((HudStaticText)ItemHudListRow[3]).Text = LOListAcessor.Id.ToString(); } } }catch(Exception ex){LogError(ex);} }
static int SortByID(LootObject lhs, LootObject rhs) { return(lhs.ID.CompareTo(rhs.ID)); }
private void ButlerHudList_Click(object sender, int row, int col) { try { ButlerRow = ButlerHudList[row]; int ItemGuid = Convert.ToInt32(((HudStaticText)ButlerRow[6]).Text); LootObject lo = new LootObject(Core.WorldFilter[ItemGuid]); if(col == 0) { Host.Actions.SelectItem(lo.Id); } if(col == 1) { try { if(GISettings.GSStrings){HudToChat(lo.GSReportString(), 2);} if(GISettings.AlincoStrings){HudToChat(lo.LinkString(),2);} }catch{} } if(col == 2) { Core.Actions.MoveItem(lo.Id, Core.CharacterFilter.Id, 0, false); } if(col == 3) { if(lo.LValue(LongValueKey.Unknown10) == 8) { if(!lo.Name.Contains("Mana Stone") || !lo.Name.Contains("Dessicant")) { Host.Actions.UseItem(lo.Id, 1); } } else { Host.Actions.UseItem(lo.Id, 0); } } if(col == 4) { if(Core.WorldFilter[Core.Actions.CurrentSelection].ObjectClass == ObjectClass.Npc || Core.WorldFilter[Core.Actions.CurrentSelection].ObjectClass == ObjectClass.Player) { if(lo.LValue(LongValueKey.EquippedSlots) > 0 || lo.LValue(LongValueKey.Unknown10) == 56) { WriteToChat("Unequip the item first."); } else { Host.Actions.GiveItem(lo.Id, Host.Actions.CurrentSelection); } } else { WriteToChat("First select an NPC, Player, or yourself."); } } if(col == 5) { if(bButlerTradeOpen) { Core.Actions.TradeAdd(lo.Id); } else if(Core.WorldFilter.OpenVendor.MerchantId != 0) { if(lo.LValue(LongValueKey.EquippedSlots) > 0 || lo.LValue(LongValueKey.Unknown10) == 56) { WriteToChat("Unequip the item first."); } else { Core.Actions.VendorAddSellList(lo.Id); } } } } catch (Exception ex) { LogError(ex); } return; }
private void TrophyListCheckItem(ref LootObject IOItem) { try { string namecheck = IOItem.Name; List<XElement> matches; var exact = from XTrophies in mSortedTrophiesList where XTrophies.Element("checked").Value == "true" && XTrophies.Element("isexact").Value == "true" select XTrophies; matches = (from exTrophies in exact where (string)@exTrophies.Element("key").Value == @namecheck select exTrophies).ToList(); if(IOItem.ObjectClass == ObjectClass.Scroll) { if(matches.Count() == 0){return;} } if(matches.Count() == 0) { var notexacttrophies = from XTrophies in mSortedTrophiesList where XTrophies.Element("checked").Value == "true" && XTrophies.Element("isexact").Value == "false" select XTrophies; matches = (from nxTrophies in notexacttrophies where @namecheck.ToLower().Contains((string)@nxTrophies.Element("key").Value.ToLower()) select nxTrophies).ToList(); } if(matches.Count() > 0) { int LootMaxCheck; if(!Int32.TryParse(matches.First().Element("Guid").Value, out LootMaxCheck)) {LootMaxCheck = 0;} int InventoryCount = 0; if(Convert.ToBoolean(matches.First().Element("isexact").Value)) { var inventorymatches = Core.WorldFilter.GetInventory().Where(x => x.Name == (string)@matches.First().Element("key").Value); if(inventorymatches.Count() == 0) { InventoryCount = 0; } else foreach(WorldObject inv in inventorymatches) { if(!inv.LongKeys.Contains((int)LongValueKey.StackCount)){InventoryCount++;} else{InventoryCount += inv.Values(LongValueKey.StackCount);} } } else { var inventorymatches = Core.WorldFilter.GetInventory().Where(x => x.Name.Contains((string)@matches.First().Element("key").Value)); if(inventorymatches.Count() == 0) { InventoryCount = 0; } else foreach(WorldObject inv in inventorymatches) { if(!inv.LongKeys.Contains((int)LongValueKey.StackCount)){InventoryCount++;} else{InventoryCount += inv.Values(LongValueKey.StackCount);} } } if(LootMaxCheck > 0 && InventoryCount >= LootMaxCheck) { return; } IOItem.IOR = IOResult.trophy; } } catch(Exception ex){LogError(ex);} return; }
private void CheckUnknownScrolls(ref LootObject IOScroll) { try { if(!GISettings.CheckForL7Scrolls) {IOScroll.IOR = IOResult.nomatch; return;} spellinfo scrollspell = SpellIndex[IOScroll.Spell(0)]; if(scrollspell.spelllevel != 7) {IOScroll.IOR = IOResult.nomatch; return;} switch(scrollspell.spellschool) { case "item enchantment": if(ScrollCheck.Item) { if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; case "creature enchantment": if(ScrollCheck.Creature) { if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; case "life magic": if(ScrollCheck.Life) { if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; case "void magic": if(ScrollCheck.Void) { if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; case "war magic": if(ScrollCheck.War) { if(!Core.CharacterFilter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; } } catch(Exception ex){LogError(ex); IOScroll.IOR = IOResult.nomatch; return;} }
private void CheckSalvageItem(ref LootObject IOItemSalvage) { try { int Material = (int)IOItemSalvage.Values(ALongValueKeys.Material); double SalvageWork = IOItemSalvage.Values(ADoubleValueKeys.SalvageWorkmanship); if(IOItemSalvage.Values(ADoubleValueKeys.SalvageWorkmanship) > 0) { if(!SalvageMatDictionary.ContainsKey(Material)) {return;} SalvageRule SalvageRuleMatch = SalvageMatDictionary[Material].Where(x => SalvageWork >= x.minwork && SalvageWork <= x.maxwork +0.99).FirstOrDefault(); if(SalvageRuleMatch != null) { IOItemSalvage.IOR = IOResult.salvage; IOItemSalvage.MatchingSalvageRule = SalvageRuleMatch; } } }catch(Exception ex){LogError(ex);} }
private void CheckUnknownScrolls(ref LootObject IOScroll) { try { if(!mGeneralSettings.GearInspectorSettings.CheckForL7Scrolls) {IOScroll.IOR = IOResult.nomatch; return;} spellinfo scrollspell = tDataTable.SpellIndex[IOScroll.SpellsOnItem.First()]; if(scrollspell.spelllevel != 7) {IOScroll.IOR = IOResult.nomatch; return;} switch(scrollspell.spellschool) { case "item enchantment": if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.ItemEnchantment)) { if(!AetherCharacter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; case "creature enchantment": if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.CreatureEnchantment)) { if(!AetherCharacter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; case "life magic": if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.LifeMagic)) { if(!AetherCharacter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; case "void magic": if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.VoidMagic)) { if(!AetherCharacter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; case "war magic": if(AetherCharacter.IsSkillTrainedOrSpec(ASkillKeyValues.WarMagic)) { if(!AetherCharacter.IsSpellKnown(scrollspell.spellid)) { IOScroll.IOR = IOResult.spell; return; } else { IOScroll.IOR = IOResult.nomatch; return; } } return; } } catch(Exception ex){LogError(ex); IOScroll.IOR = IOResult.nomatch; return;} }
private void ManualCheckItemForMatches(LootObject IOItem) { try { if(IOItem.Id == LastReportGUID) {return;} else{LastReportGUID = IOItem.Id;} if(IOItem.ObjectClass == AObjectClass.Scroll){CheckUnknownScrolls(ref IOItem);} if(IOItem.IOR == IOResult.unknown){CheckRare(ref IOItem);} if(IOItem.IOR == IOResult.unknown) {TrophyHashCheckItem(ref IOItem);} if(IOItem.HasIdData && IOItem.IOR == IOResult.unknown){CheckRulesItem(ref IOItem);} if(IOItem.IOR == IOResult.unknown && mGeneralSettings.FoundrySettings.AutoDessicateJunkLootAetheria && IOItem.Aetheriacheck) {CheckDesiccateAetheria(ref IOItem);} if(IOItem.IOR == IOResult.unknown && mGeneralSettings.GearInspectorSettings.IdentifySalvage) {CheckSalvageItem(ref IOItem);} if(IOItem.IOR == IOResult.unknown) {CheckManaItem(ref IOItem);} if(IOItem.IOR == IOResult.unknown) {CheckValueItem(ref IOItem);} if(IOItem.IOR == IOResult.unknown) {IOItem.IOR = IOResult.nomatch;} if(mGeneralSettings.GearInspectorSettings.GSStrings) {ReportStringToChat(IOItem.GSReportString());} if(mGeneralSettings.GearInspectorSettings.AlincoStrings){ReportStringToChat(IOItem.LinkString());} }catch(Exception ex){LogError(ex);} }
private void CheckValueItem(ref LootObject IOItemVal) { try { if(mGeneralSettings.GearInspectorSettings.LootByValue == 0){return;} if(IOItemVal.Value >= mGeneralSettings.GearInspectorSettings.LootByValue) { if(mGeneralSettings.GearInspectorSettings.SalvageHighValue) { IOItemVal.IOR = IOResult.salvage; IOItemVal.MatchingItemRule = new ItemRule(); IOItemVal.MatchingItemRule.RuleName = "Salvage Value"; } else { IOItemVal.IOR = IOResult.val; } } } catch(Exception ex){LogError(ex);} }
private void CheckRare(ref LootObject IOItemRare) { try { if(IOItemRare.Values(ALongValueKeys.RareId) > 0) { IOItemRare.IOR = IOResult.rare; } }catch(Exception ex){LogError(ex);} }
private void ValetSuitPiecesList_Click(object sender, int row, int col) { try { HudList.HudListRowAccessor ValetRow = ValetSuitPiecesList[row]; int ItemId = Convert.ToInt32(((HudStaticText)ValetRow[4]).Text); if(col == 0) { Core.Actions.SelectItem(ItemId); } if(col == 1) { int priorityindex = mValetSuit.SuitPieces.FindIndex(x => x.ItemId == ItemId); mValetSuit.SuitPieces[priorityindex].Priority++; if(mValetSuit.SuitPieces[priorityindex].Priority > 9) { mValetSuit.SuitPieces[priorityindex].Priority = 1; } } if(col == 2) { LootObject tLootObj = new LootObject(AetherObjects.Collection[ItemId]); if(mGeneralSettings.GearInspectorSettings.GSStrings){HudToChat(tLootObj.GSReportString(),2);} if(mGeneralSettings.GearInspectorSettings.AlincoStrings){HudToChat(tLootObj.LinkString(),2);} } if(col == 3) { int RemoveIndex = mValetSuit.SuitPieces.FindIndex(x => x.ItemId == ItemId); mValetSuit.SuitPieces.RemoveAt(RemoveIndex); if(mValetSuit.SuitPieces.Count == 0) { mCharacterSettings.ValetSuitList.RemoveAll(x => x.TicketStub == mValetSuit.TicketStub); } if(mCharacterSettings.ValetSuitList.Count > 0) { mValetSuit = mCharacterSettings.ValetSuitList.First(); } else { mValetSuit = null; } } UpdateValetHud(); }catch(Exception ex){LogError(ex);} }
private void CheckValueItem(ref LootObject IOItemVal) { try { if(GISettings.LootByValue == 0){return;} if(IOItemVal.LValue(LongValueKey.Value) >= GISettings.LootByValue) { if(GISettings.SalvageHighValue) { IOItemVal.IOR = IOResult.salvage; IOItemVal.rulename = "Value"; } else { IOItemVal.IOR = IOResult.val; } } } catch(Exception ex){LogError(ex);} }
private bool MatchAdvanced(ItemRule rule, LootObject item) { bool result = false; bool[] tumbler = {false,false,false,false,false}; List<int> ands = new List<int>(); try { for(int i = 0; i < rule.Advanced.Count; i ++) { if(rule.Advanced[i].keylink == 1) {ands.Add(i);} if(rule.Advanced[i].keytype == 0) { switch(rule.Advanced[i].keycompare) { case 0: if(item.Values((ADoubleValueKeys)rule.Advanced[i].key) == rule.Advanced[i].keyvalue) {tumbler[i] = true;} break; case 1: if(item.Values((ADoubleValueKeys)rule.Advanced[i].key) != rule.Advanced[i].keyvalue) {tumbler[i] = true;} break; case 2: if(item.Values((ADoubleValueKeys)rule.Advanced[i].key) >= rule.Advanced[i].keyvalue) {tumbler[i] = true;} break; case 3: if(item.Values((ADoubleValueKeys)rule.Advanced[i].key) <= rule.Advanced[i].keyvalue) {tumbler[i] = true;} break; } } else if(rule.Advanced[i].keytype == 1) { switch(rule.Advanced[i].keycompare) { case 0: if(item.Values((ALongValueKeys)rule.Advanced[i].key) == rule.Advanced[i].keyvalue) {tumbler[i] = true;} break; case 1: if(item.Values((ALongValueKeys)rule.Advanced[i].key) != rule.Advanced[i].keyvalue) {tumbler[i] = true;} break; case 2: if(item.Values((ALongValueKeys)rule.Advanced[i].key) >= rule.Advanced[i].keyvalue) {tumbler[i] = true;} break; case 3: if(item.Values((ALongValueKeys)rule.Advanced[i].key) <= rule.Advanced[i].keyvalue) {tumbler[i] = true;} break; } } } switch(rule.Advanced.Count) { case 1: //2 ^ 0 == 1 if(tumbler[0]) {result = true;} break; case 2: //2 ^ 1 == 2 if(rule.Advanced[0].keylink == 1) { if(tumbler[0] && tumbler[1]) {result = true;} } else if(rule.Advanced[0].keylink == 2) { if(tumbler[0] || tumbler[1]) {result = true;} } break; case 3: //2 ^ 2 == 4 if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1) { if(tumbler[0] && tumbler[1] && tumbler[2]) {result = true;} } else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2) { if((tumbler[0] && tumbler[1]) || tumbler[2]) {result = true;} } else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1) { if(tumbler[0] || (tumbler[1] && tumbler[2])) {result = true;} } else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2) { if(tumbler[0] || tumbler[1] || tumbler[2]) {result = true;} } break; case 4: //2 ^ 3 == 8 if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1) { if(tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3]) {result = true;} } else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2) { if((tumbler[0] && tumbler[1] && tumbler[2]) || tumbler[3]) {result = true;} } else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1) { if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3])) {result = true;} } else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1) { if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3])) {result = true;} } else if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2) { if((tumbler[0] && tumbler[1]) || tumbler[2] || tumbler[3]) {result = true;} } else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1) { if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3])) {result = true;} } else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2) { if(tumbler[0] || tumbler[1] || tumbler[2] || tumbler[3]) {result = true;} } else if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2) { if(tumbler[0] || (tumbler[1] && tumbler[2]) || tumbler[3]) {result = true;} } break; case 5: //2 ^ 4 == 16 // 0 Or if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1) { if(tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3] && tumbler[4]) {result = true;} } // 1 Or if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2) { if((tumbler[0] && tumbler[1] && tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;} } if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1) { if((tumbler[0] && tumbler[1] && tumbler[2]) || (tumbler[3] && tumbler[4])) {result = true;} } if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1) { if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3] && tumbler[4])) {result = true;} } if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1) { if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3] && tumbler[4])) {result = true;} } // 2 Or if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2) { if((tumbler[0] && tumbler[1] && tumbler[2]) || tumbler[3] || tumbler[4]) {result = true;} } if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1) { if((tumbler[0] && tumbler[1]) || tumbler[2] || (tumbler[3] && tumbler[4])) {result = true;} } if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 1) { if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3] && tumbler[4])) {result = true;} } if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2) { if((tumbler[0] && tumbler[1]) || (tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;} } if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1) { if(tumbler[0] || (tumbler[1] && tumbler[2]) || (tumbler[3] && tumbler[4])) {result = true;} } if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2) { if(tumbler[0] || (tumbler[1] && tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;} } // 3 Or if(rule.Advanced[0].keylink == 1 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2) { if((tumbler[0] && tumbler[1]) || tumbler[2] || tumbler[3] || tumbler[4]) {result = true;} } if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 1 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2) { if(tumbler[0] || (tumbler[1] && tumbler[2]) || tumbler[3] || tumbler[4]) {result = true;} } if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 1) { if(tumbler[0] || tumbler[1] || tumbler[2] || (tumbler[3] && tumbler[4])) {result = true;} } if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 1 && rule.Advanced[3].keylink == 2) { if(tumbler[0] || tumbler[1] || (tumbler[2] && tumbler[3]) || tumbler[4]) {result = true;} } // 4 Or if(rule.Advanced[0].keylink == 2 && rule.Advanced[1].keylink == 2 && rule.Advanced[2].keylink == 2 && rule.Advanced[3].keylink == 2) { if(tumbler[0] || tumbler[1] || tumbler[2] || tumbler[3] || tumbler[4]) {result = true;} } break; } }catch(Exception ex){LogError(ex);} return result; }
private void SendVTIOtoCallBack(LootObject VTIO) { try { if(WaitingVTIOs.Count == 0) { Core.RenderFrame -= DoesVTIOHaveID; return; } }catch(Exception ex){LogError(ex);} }
private void btnReportPalettes_Hit(object sender, EventArgs e) { try { lblCurrentPalette0.Text = String.Empty; lblCurrentPalette1.Text = String.Empty; lblCurrentPalette2.Text = String.Empty; lblCurrentPalette3.Text = String.Empty; lblCurrentPalette4.Text = String.Empty; lblCurrentPalette5.Text = String.Empty; lblCurrentPalette.Text = "C. Sel. Pals."; if(Core.Actions.CurrentSelection == 0) { WriteToChat("First select an item to report."); } AetherObject ao = AetherObjects.Collection[Core.Actions.CurrentSelection]; LootObject lo = new LootObject(ao); WriteToChat("Item Name: " + lo.Name); if(tDataTable.ArmorIndex.Any(x => x.ID == lo.ArmorType)) { WriteToChat("Armor Type: " + tDataTable.ArmorIndex.Find(x => x.ID == lo.ArmorType).name); lblCurrentPalette.Text = tDataTable.ArmorIndex.Find(x => x.ID == lo.ArmorType).name; } else { WriteToChat("Item Type: " + lo.ObjectClass.ToString()); lblCurrentPalette.Text = lo.ObjectClass.ToString(); } for(int i = 0; i < ao.Palettes.Count; i++) { if(i == 0) { lblCurrentPalette0.Text = ao.Palettes[i].ToString(); WriteToChat("Palette 0: " + ao.Palettes[i]); } if(i == 1) { lblCurrentPalette1.Text = ao.Palettes[1].ToString(); WriteToChat("Palette 1: " + ao.Palettes[1]); } if(i == 2) { lblCurrentPalette2.Text = ao.Palettes[2].ToString(); WriteToChat("Palette 2: " + ao.Palettes[2]); } if(i == 3) { lblCurrentPalette3.Text = ao.Palettes[3].ToString(); WriteToChat("Palette 3: " + ao.Palettes[3]); } if(i == 4) { lblCurrentPalette4.Text = ao.Palettes[4].ToString(); WriteToChat("Palette 4: " + ao.Palettes[4]); } if(i == 5) { lblCurrentPalette5.Text = ao.Palettes[5].ToString(); WriteToChat("Palette 5: " + ao.Palettes[5]); } } }catch(Exception ex){LogError(ex);} }
public int VTLinkDecision(int id, int reserved1, int reserved2) { try { //If VT shoots in a corpse ID, check if it has a rare on it. If so, Loot, if not, skip. if(reserved2 == 1) { if(CorpseTrackingList.Any(x => x.IOR == IOResult.corpsewithrare) && reserved1 == CorpseTrackingList.Find(x => x.IOR == IOResult.corpsewithrare).Id) { return 1; } else { return 0; } } try { if(LOList.Any(x => x.Id == id && x.InspectList)) { switch(LOList.Find(x => x.Id == id).IOR) { case IOResult.rule: case IOResult.manatank: case IOResult.rare: case IOResult.spell: case IOResult.trophy: case IOResult.dessicate: return 1; case IOResult.salvage: return 2; case IOResult.val: if(GISettings.SalvageHighValue) {return 2;} else{return 1;} default: return 0; } } }catch(Exception ex){LogError(ex);} LootObject VTIO = new LootObject(Core.WorldFilter[id]); if(!VTIO.HasIdData) { Core.RenderFrame += DoesVTIOHaveID; WaitingVTIOs.Add(VTIO); SendVTIOtoCallBack(VTIO); } CheckRulesItem(ref VTIO); if(VTIO.IOR == IOResult.unknown) {CheckRare(ref VTIO);} if(VTIO.ObjectClass == ObjectClass.Scroll){CheckUnknownScrolls(ref VTIO);} if(VTIO.IOR == IOResult.unknown) {TrophyListCheckItem(ref VTIO);} if(VTIO.IOR == IOResult.unknown && GISettings.IdentifySalvage) {CheckSalvageItem(ref VTIO);} if(VTIO.IOR == IOResult.unknown) {CheckManaItem(ref VTIO);} if(VTIO.IOR == IOResult.unknown) {CheckValueItem(ref VTIO);} if(VTIO.IOR == IOResult.unknown) {VTIO.IOR = IOResult.nomatch;} switch(VTIO.IOR) { case IOResult.rule: case IOResult.manatank: case IOResult.rare: case IOResult.spell: case IOResult.trophy: case IOResult.dessicate: return 1; case IOResult.salvage: return 2; case IOResult.val: return 1; default: return 0; } }catch(Exception ex){LogError(ex); return 0;} }
private void ButlerHudList_Click(object sender, int row, int col) { try { ButlerRow = ButlerHudList[row]; int ItemGuid = Convert.ToInt32(((HudStaticText)ButlerRow[6]).Text); LootObject lo = new LootObject(AetherObjects.Collection[ItemGuid]); if(col == 0) { Host.Actions.SelectItem(lo.Id); } if(col == 1) { if(mGeneralSettings.EnabledHudSettings.bGearInspectorEnabled) { Core.Actions.SelectItem(lo.Id); Core.Actions.RequestId(lo.Id); } else { if(mGeneralSettings.GearInspectorSettings.GSStrings){HudToChat(lo.GSReportString(),2);} if(mGeneralSettings.GearInspectorSettings.AlincoStrings){HudToChat(lo.LinkString(),2);} } } if(col == 2) { Core.Actions.MoveItem(lo.Id, AetherCharacter.CharStats.Id, 0, false); } if(col == 3 && !mButlerFilters.storage) { if(Core.Actions.OpenedContainer == 0 || AetherObjects.Collection[Core.Actions.OpenedContainer].Name != "Storage") { WriteToChat("No storage container opened."); } else { Foundry_LoadAction(FoundryActionTypes.AddToStorage, lo.Id); } } if(col == 4 && !mButlerFilters.storage) { if(AetherObjects.Collection[Core.Actions.CurrentSelection].ObjectClass == AObjectClass.Npc || AetherObjects.Collection[Core.Actions.CurrentSelection].ObjectClass == AObjectClass.Player) { if(lo.Values(ALongValueKeys.EquippedSlots) > 0 || lo.Values(ALongValueKeys.Unknown10) == 56) { WriteToChat("Unequip the item first."); } else { Host.Actions.GiveItem(lo.Id, Host.Actions.CurrentSelection); } } else { WriteToChat("First select an NPC, Player, or yourself."); } } if(col == 5 && !mButlerFilters.storage) { if(AetherTrade.TradeWindow.InTrade) { Core.Actions.TradeAdd(lo.Id); } else if(AetherTrade.VendorId != 0) { if(lo.Values(ALongValueKeys.EquippedSlots) > 0 || lo.Values(ALongValueKeys.Unknown10) == 56) { WriteToChat("Unequip the item first."); } else { Core.Actions.VendorAddSellList(lo.Id); } } } } catch (Exception ex) { LogError(ex); } }
private void ValetSuitPiecesList_Click(object sender, int row, int col) { try { ValetRow = ValetSuitPiecesList[row]; if(col == 0) { Core.Actions.SelectItem(Convert.ToInt32(((HudStaticText)ValetRow[3]).Text)); } if(col == 1) { LootObject tLootObj = new LootObject(Core.WorldFilter[Convert.ToInt32(((HudStaticText)ValetRow[3]).Text)]); if(GISettings.GSStrings){tLootObj.GSReportString();} if(GISettings.AlincoStrings){tLootObj.LinkString();} } if(col == 2) { GearButlerSettings.ValetSuitList[ValetCurrentSuit].SuitPieces.RemoveAll(x => x.ItemId == Convert.ToInt32(((HudStaticText)ValetRow[3]).Text)); if(GearButlerSettings.ValetSuitList[ValetCurrentSuit].SuitPieces.Count == 0) { GearButlerSettings.ValetSuitList.RemoveAll(x => x.TicketStub == ValetCurrentSuit); } if(GearButlerSettings.ValetSuitList.Count > 0 && !GearButlerSettings.ValetSuitList.Any(x => x.TicketStub == ValetCurrentSuit)) { ValetCurrentSuit = GearButlerSettings.ValetSuitList.First().TicketStub; } else { ValetCurrentSuit = 0; } } UpdateValetHud(); }catch(Exception ex){LogError(ex);} }
public int VTLinkDecision(int id, int reserved1, int reserved2) { try { //If VT shoots in a corpse ID, check if it has a rare on it. If so, Loot, if not, skip. if(reserved2 == 1) { if(CorpseTrackingList.Any(x => x.IOR == IOResult.corpsewithrare) && reserved1 == CorpseTrackingList.Where(x => x.IOR == IOResult.corpsewithrare).First().Id) { return 1; } else { return 0; } } try { LootObject lo = LOHash.Where(x => x.Id == id && x.InspectList).FirstOrDefault(); if(lo != null) { switch(lo.IOR) { case IOResult.rule: case IOResult.rare: case IOResult.spell: case IOResult.trophy: case IOResult.dessicate: return 1; case IOResult.salvage: return 2; case IOResult.val: if(mGeneralSettings.GearInspectorSettings.SalvageHighValue) {return 2;} else{return 1;} default: return 0; } } }catch(Exception ex){LogError(ex);} LootObject VTIO = new LootObject(AetherObjects.Collection[id]); if(!VTIO.HasIdData) { Core.RenderFrame += DoesVTIOHaveID; WaitingVTIOs.Add(VTIO); SendVTIOtoCallBack(VTIO); } CheckRulesItem(ref VTIO); if(VTIO.IOR == IOResult.unknown) {CheckRare(ref VTIO);} if(VTIO.ObjectClass == AObjectClass.Scroll){CheckUnknownScrolls(ref VTIO);} if(VTIO.IOR == IOResult.unknown) {TrophyHashCheckItem(ref VTIO);} if(VTIO.IOR == IOResult.unknown && mGeneralSettings.FoundrySettings.AutoDessicateJunkLootAetheria && VTIO.Aetheriacheck) {CheckDesiccateAetheria(ref VTIO);} if(VTIO.IOR == IOResult.unknown && mGeneralSettings.GearInspectorSettings.IdentifySalvage) {CheckSalvageItem(ref VTIO);} if(VTIO.IOR == IOResult.unknown) {CheckManaItem(ref VTIO);} if(VTIO.IOR == IOResult.unknown) {CheckValueItem(ref VTIO);} if(VTIO.IOR == IOResult.unknown) {VTIO.IOR = IOResult.nomatch;} switch(VTIO.IOR) { case IOResult.rule: case IOResult.rare: case IOResult.spell: case IOResult.trophy: case IOResult.dessicate: return 1; case IOResult.salvage: return 2; case IOResult.val: return 1; default: return 0; } }catch(Exception ex){LogError(ex); return 0;} }
//else if (n < m ) //{ // try{ // { GearFoundry.PluginCore.WriteToChat("Inventory remaining to be ID'd: " + s); } // m = n; // // string mname = null; // InventoryProcess = DateTime.Now; // if (mWaitingForID.Count > 0) // { // //if (binventoryWaitingEnabled) // //{ // // for (int i = 0; i < n; i++) // // { // // mname = mWaitingForID[i].Name; // // GearFoundry.PluginCore.WriteToChat(mname); // // } // //} // mDoWait(); // } // } // catch (Exception ex) { LogError(ex); } //} // } // catch (Exception ex) { LogError(ex); } //} //DateTime InventoryProcess = DateTime.MinValue; // public void mDoWait() //{ // try // { // Core.RenderFrame += new EventHandler<EventArgs>(RenderFrame_processInventory); // } // catch (Exception ex) { LogError(ex); } //} //public void RenderFrame_processInventory(object sender, EventArgs e) //{ // try // { // if ((DateTime.Now - InventoryProcess).TotalSeconds > 10) // { // for (int n = 0; n < mWaitingForID.Count; n++) // { // try // { // if (mWaitingForID[n] != null && mWaitingForID[n].HasIdData) // { // Core.RenderFrame -= new EventHandler<EventArgs>(RenderFrame_processInventory); // ProcessDataInventory(); // mIsFinished(); // } // } // catch (Exception ex) { } // } // } // } // catch (Exception ex) { LogError(ex); } //} //This is routine that puts the data of an obj into the inventory file xml private void ProcessDataInventory() { for (int n = 0; n < mWaitingForID.Count; n++) { try { if (mWaitingForID[n] != null && mWaitingForID[n].HasIdData) { currentobj = mWaitingForID[n]; mWaitingForID.Remove(mWaitingForID[n]); objClassName = currentobj.ObjectClass.ToString(); objName = currentobj.Name; objID = currentobj.Id; objIcon = currentobj.Icon; LootObject whatsmygearscore = new LootObject(currentobj); objGearScore = whatsmygearscore.GearScore; long objDesc = currentobj.Values(LongValueKey.DescriptionFormat); long objMat = currentobj.Values(LongValueKey.Material); long objCatType = (int)currentobj.Values(LongValueKey.Category); long objAtt = (int)currentobj.Values(LongValueKey.Attuned); long objBnd = (int)currentobj.Values(LongValueKey.Bonded); long objToonLevel = (long)currentobj.Values((LongValueKey)NewLongKeys.WieldReqValue2); long objLore = (int)currentobj.Values(LongValueKey.LoreRequirement); long objAl = (int)currentobj.Values(LongValueKey.ArmorLevel); long objType = (int)currentobj.Values(LongValueKey.Type); long objTinks = (int)currentobj.Values(LongValueKey.NumberTimesTinkered); long objWork = (int)currentobj.Values(LongValueKey.Workmanship); long objSet = (int)currentobj.Values(LongValueKey.ArmorSet); long objCovers = currentobj.Values(LongValueKey.Coverage); long objEqSlot = currentobj.Values(LongValueKey.EquipableSlots); long objCleaveType = (int)currentobj.Values(LongValueKey.CleaveType); long objElemDmg = (int)currentobj.Values(LongValueKey.ElementalDmgBonus); long objEmbue = (int)currentobj.Values(LongValueKey.Imbued); long objSlayer = (int)currentobj.Values(LongValueKey.SlayerSpecies); long objWieldAttrInt = (int)currentobj.Values(LongValueKey.WieldReqAttribute); long objWieldType = (int)currentobj.Values(LongValueKey.WieldReqType); long objWieldValue = (int)currentobj.Values(LongValueKey.WieldReqValue); long objDamage = (int)currentobj.Values(LongValueKey.DamageType); long objMissType = (int)currentobj.Values(LongValueKey.MissileType); long objSkillLevReq = (int)currentobj.Values(LongValueKey.SkillLevelReq); double objElemvsMons = currentobj.Values(DoubleValueKey.ElementalDamageVersusMonsters); double objMelD = currentobj.Values(DoubleValueKey.MeleeDefenseBonus); double objMagicD = currentobj.Values(DoubleValueKey.MagicDBonus); double objManaC = currentobj.Values(DoubleValueKey.ManaCBonus); double objMissileD = currentobj.Values(DoubleValueKey.MissileDBonus); double objSalvWork = currentobj.Values(DoubleValueKey.SalvageWorkmanship); double objAttack = currentobj.Values(DoubleValueKey.AttackBonus); double objDamageBonus = currentobj.Values(DoubleValueKey.DamageBonus); double objAcid = currentobj.Values(DoubleValueKey.AcidProt); double objLight = currentobj.Values(DoubleValueKey.LightningProt); double objFire = currentobj.Values(DoubleValueKey.FireProt); double objCold = currentobj.Values(DoubleValueKey.ColdProt); double objBludg = currentobj.Values(DoubleValueKey.BludgeonProt); double objSlash = currentobj.Values(DoubleValueKey.SlashProt); double objPierce = currentobj.Values(DoubleValueKey.PierceProt); long objMastery = currentobj.Values(LongValueKey.ActivationReqSkillId); long objMaxDamage = currentobj.Values(LongValueKey.MaxDamage); double objVariance = currentobj.Values(DoubleValueKey.Variance); objSpellXml = GoGetSpells(currentobj); long objMagicDam = currentobj.Values(LongValueKey.WandElemDmgType); long objRareID = currentobj.Values(LongValueKey.RareId); long objBurden = currentobj.Values(LongValueKey.Burden); long objStackCount = currentobj.Values(LongValueKey.StackCount); long objModel = currentobj.Values(LongValueKey.Model); long iconUnderlay = currentobj.Values(LongValueKey.IconUnderlay); long iconOverlay = currentobj.Values(LongValueKey.IconUnderlay); long iconOutline = currentobj.Values(LongValueKey.IconOutline); long objFlags = currentobj.Values(LongValueKey.Flags); long objCreateFlag1 = currentobj.Values(LongValueKey.CreateFlags1); long objCreateFlag2 = currentobj.Values(LongValueKey.CreateFlags2); long objUnknown10 = currentobj.Values(LongValueKey.Unknown10); long objUnknown100000 = currentobj.Values(LongValueKey.Unknown100000); long objUnknown800000 = currentobj.Values(LongValueKey.Unknown800000); long objUnknown8000000 = currentobj.Values(LongValueKey.Unknown8000000); long objUsageMask = currentobj.Values(LongValueKey.UsageMask); long objEnchant = currentobj.Values(LongValueKey.Unenchantable); long objColor = currentobj.Values(LongValueKey.Model); xdocToonInventory.Element("Objs").Add(new XElement("Obj", new XElement("ObjName", objName), new XElement("ObjID", objID), new XElement("ToonName", toonName), new XElement("ObjIcon", objIcon), new XElement("GearScore",objGearScore), new XElement("ObjClass", objClassName), new XElement("ObjDesc", objDesc), new XElement("ObjMaterial", objMat), new XElement("ObjAl", objAl), new XElement("ObjSet", objSet), new XElement("ObjCovers", objCovers), new XElement("ObjEqSlot", objEqSlot), new XElement("ObjToonLevel", objToonLevel), new XElement("ObjLoreReq", objLore), new XElement("ObjSkillLevReq", objSkillLevReq), new XElement("ObjWork", objWork), new XElement("ObjTink", objTinks), new XElement("ObjCatType", objCatType), new XElement("ObjCleaveType", objCleaveType), new XElement("ObjMissType", objMissType), new XElement("ObjType", objType), new XElement("ObjElemDmg", objElemDmg), new XElement("ObjAtt", objAtt), new XElement("ObjBnd", objBnd), new XElement("ObjEmbue", objEmbue), new XElement("ObjSlayer", objSlayer), new XElement("ObjWieldAttr", objWieldAttrInt), new XElement("ObjWieldType", objWieldType), new XElement("ObjWieldValue", objWieldValue), new XElement("ObjDamage", objDamage), new XElement("ObjElemvsMons", objElemvsMons), new XElement("ObjMelD", objMelD), new XElement("ObjMagicD", objMagicD), new XElement("ObjManaC", objManaC), new XElement("ObjMissileD", objMissileD), new XElement("ObjSalvWork", objSalvWork), new XElement("ObjAttack", objAttack), new XElement("ObjDamageBonus", objDamageBonus), new XElement("ObjMaxDamage", objMaxDamage), new XElement("ObjVariance", objVariance), new XElement("ObjMastery", objMastery), new XElement("ObjSpellXml", objSpellXml), new XElement("ObjMagicDamage", objMagicDam), new XElement("ObjBurden", objBurden), new XElement("ObjStackCount", objStackCount), new XElement("ObjAcid", objAcid), new XElement("ObjLight", objLight), new XElement("ObjFire", objFire), new XElement("ObjCold", objCold), new XElement("ObjBludg", objBludg), new XElement("ObjSlash", objSlash), new XElement("ObjPierce", objPierce), new XElement("ObjRareID", objRareID), new XElement("IconOverlay", iconOverlay), new XElement("IconOutline", iconOutline), new XElement("IconUnderlay", iconUnderlay), new XElement("ObjFlags", objFlags), new XElement("ObjCreateFlag1", objCreateFlag1), new XElement("ObjCreateFlag2", objCreateFlag2), new XElement("ObjUnknown10", objEnchant), new XElement("ObjUnknown100000", objColor), new XElement("ObjUnknown800000", objUnknown800000), new XElement("ObjUnknown8000000", objUnknown8000000), new XElement("ObjUsageMask", objUsageMask))); currentobj = null; objClassName = null; objName = null; objDesc = 0; objID = 0; objIcon = 0; objGearScore = 0; objColor = 0; objAl = 0; objSet = 0; objMat = 0; objCovers = 0; objToonLevel = 0; objLore = 0; objSkillLevReq = 0; objTinks = 0; objWork = 0; objCatType = 0; objCleaveType = 0; objMissType = 0; objType = 0; objElemDmg = 0; objMastery = 0; objAtt = 0; objBnd = 0; objEmbue = 0; objSlayer = 0; objWieldAttrInt = 0; objWieldType = 0; objWieldValue = 0; objDamage = 0; objElemvsMons = 0; objMelD = 0; objMagicD = 0; objManaC = 0; objMissileD = 0; objSalvWork = 0; objAttack = 0; objDamageBonus = 0; objEqSlot = 0; objVariance = 0; objMaxDamage = 0; objSpellXml = null; objMagicDam = 0; objRareID = 0; objBurden = 0; objStackCount = 0; objAcid = 0; objLight = 0; objFire = 0; objCold = 0; objBludg = 0; objSlash = 0; objPierce = 0; objModel = 0; iconOverlay = 0; iconUnderlay = 0; iconOutline = 0; objFlags = 0; objCreateFlag1 = 0; objCreateFlag2 = 0; objUnknown10 = 0; objUnknown100000 = 0; objUnknown800000 = 0; objUnknown8000000 = 0; objUsageMask = 0; } } // end of try catch (Exception ex) { LogError(ex); } } // end of for if (mWaitingForID.Count == 0) { mIsFinished(); } else if (mWaitingForID.Count < 4) { WriteToChat("Inventory waiting to be id'd: " + mWaitingForID.Count.ToString()); } else if (mWaitingForID.Count % 25 == 0) { WriteToChat("Inventory waiting to be id'd: " + mWaitingForID.Count.ToString()); } }