init
This commit is contained in:
@@ -0,0 +1,305 @@
|
||||
v2.5.2
|
||||
*Cleaned up some code
|
||||
*The rows in the materials list in the queue will now respond to clicks like normal item links.
|
||||
*The quantity box in the profession frame will now highlight all of the text when you click into it.
|
||||
*Changed how subclasses are programmatically expanded to fix various issues with crafting costs disappearing when they are collapsed.
|
||||
|
||||
v2.5.1
|
||||
*Added new "/tsm restock_help" slash command which will tell you why an item is not being queued.
|
||||
|
||||
v2.5
|
||||
*Added mats require to craft an item to Crafting's tooltip.
|
||||
*Removed some old, unnecessary ItemTracker checks.
|
||||
*Added module API for getting Crafting frame status.
|
||||
*Fixed the frame strata of the queue frame to match the main profession frame.
|
||||
*Added events to the restock queue.
|
||||
*Added code to clean up crafts which are no longer known.
|
||||
*Added some extra checks to profession window code to prevent lua errors.
|
||||
|
||||
v2.4.6
|
||||
*Changed tooltip description for min profit.
|
||||
|
||||
v2.4.5
|
||||
*Fixed quantity display issue with gathering mail items.
|
||||
*Added module APIs for addQueue,removeQueue,getQueue,getCDCrafts
|
||||
|
||||
v2.4.4
|
||||
*Fixed bug with invalid craft value method warning.
|
||||
|
||||
v2.4.3
|
||||
*Rearranged the materials section in the profession frame.
|
||||
*Added TradeSkillMaster_ItemTracker as a dependency.
|
||||
|
||||
v2.4.2
|
||||
*Fixed race condition between the queue and profession scanning code.
|
||||
|
||||
v2.4.1
|
||||
*Updating group tree creation API call.
|
||||
|
||||
v2.4
|
||||
*Button for switching between Crafting and default profession UI's is now more obvious.
|
||||
*Improved how the current craft reagent list is populated.
|
||||
*Fixed error from special characters being used in the crafts/mats tab filters.
|
||||
*Using new movable frame TSMAPI function for gather and profession frames.
|
||||
*Removed '/tsm gatherreset' and '/tsm profreset' as they are now combined with '/tsm freset'.
|
||||
*Added mail tasks for destroyable items bought from the AH.
|
||||
*Added an option to enable even stacks when searching for millable / prospectable items with gathering.
|
||||
|
||||
v2.3.1
|
||||
*Added /tsm gatherreset to reset gathering frame position
|
||||
|
||||
v2.3
|
||||
*Added caching to the retrieval of mat item links to greatly speed up opening of professions.
|
||||
*Fixed gathering shopping search if no auctions found for item (prints to chat).
|
||||
*Fixed an error with manually clicking gathering item for shopping search and no auctions found.
|
||||
*Fixed incorrect mailing task quantiies.
|
||||
*Added checkbox to gathering window to disable destroying search at AH
|
||||
|
||||
v2.2.3
|
||||
*Fixed bug with localization.
|
||||
|
||||
v2.2.2
|
||||
*Fixed a bug with syncing professions as a result of the 5.4 changes to tradeskill links.
|
||||
|
||||
v2.2.1
|
||||
*Fixed bug with enchants incorrectly showing more than 1 being made per craft due to Blizzard bug.
|
||||
|
||||
v2.2
|
||||
*Gathering will now provide additional options for vendor-bought items besides the vendor.
|
||||
*Changed how gathering sources show quantity.
|
||||
*Vendor tasks will now exclude what the crafter already has in their inventory.
|
||||
*Fixed various bugs related to gathering.
|
||||
*Fixed bug with tracking soulbound items
|
||||
*Added soulbound mats to gathering tasks on crafter only.
|
||||
*Fixed bug with enchant vellum button.
|
||||
*Gathering from the AH will now automatically switch to the next item when the current one is finished.
|
||||
*Added destroying tasks to gathering.
|
||||
*The position of the gathering frame is now saved.
|
||||
*Updated TOC for patch 5.4.
|
||||
|
||||
v2.1.2
|
||||
*Moved operation management to new tab.
|
||||
|
||||
v2.1.1
|
||||
*Fixed error with leveling untracked professions.
|
||||
*Reverted change to how professions are scanned.
|
||||
*Fixed bug with gathering from the AH.
|
||||
|
||||
v2.1
|
||||
*Operations will now be properly sorted alphabetically.
|
||||
*Changed "Materials" icon in /tsm window to "Crafting" and added new "Crafts" tab within.
|
||||
*Added visual indicator for crafts which make more than one item.
|
||||
*Added Pandaren cooking skill info.
|
||||
*Sped up the inventory lookup code which will result in significantly less laggy Crafting interfaces.
|
||||
*Updated scrolling tables.
|
||||
*Added option for setting the scale of the Crafting window.
|
||||
*Made the Crafting window resizable.
|
||||
*The Crafting window will now remember its status including position, size, and queue opened/closed.
|
||||
*Redid the layout of the gathering frame.
|
||||
*Made the selection frame for gathering smarter and more automatic.
|
||||
*Fixed some 5.4 PTR errors with dividing by zero.
|
||||
*Crafting will no longer allow using "crafting" as part of a craft value price source (mat prices unaffected).
|
||||
*Added "TSM" button to the top of the profession window for toggling between Crafting and default profession windows.
|
||||
*Added "All" row to the top of the list of crafts for the current profession.
|
||||
*Added icons next to material links in the profession frame.
|
||||
*Daily cooldowns will now be displayed as hours/min remaining.
|
||||
*Crafting will now ignore guild professions.
|
||||
*Gathering will now count down when buying from the AH in destroy mode.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v2.0.4
|
||||
*Fixed bug with spirit of harmonies in bags not being counted.
|
||||
|
||||
v2.0.3
|
||||
*Bug fix with clearing all custom mat prices.
|
||||
|
||||
v2.0.2
|
||||
*Gather will display a warning when the user tries to use it without TSM_ItemTracker active.
|
||||
|
||||
v2.0.1
|
||||
*Removed max price for AH searches through gathering.
|
||||
|
||||
v2.0
|
||||
*First 2.0 Version!
|
||||
\\
|
||||
|
||||
v1.2
|
||||
*Updated for patch 5.2.
|
||||
*Crafting can now use mail tracking data from ItemTracker.
|
||||
*Fixed a bug with TSM not showing MoP professions.
|
||||
*Added new MoP enchants.
|
||||
*Updated vendor trades and vendor items for MoP.
|
||||
*Fixed double-click queuing to be more intuitive.
|
||||
*Fixed a bug with estimated total cost / profit with crafts which make more than 1 item.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v1.1
|
||||
*Added options for a secondary price source and for using the lower of two price sources.
|
||||
*Added more vendor items.
|
||||
*Crafting will now take into account how many each cast of a craft will make when queueing.
|
||||
*Fixed a bug with crafts not showing in the Crafting window.
|
||||
*The groups of crafts will now be updated when a rescan is performed.
|
||||
*Crafting will now take advantage of some of the new TSM APIs in v1.1 of TSM.
|
||||
*Fixed a bug with professions not being scanned correctly on non-english clients.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v1.0
|
||||
*First Release Version!
|
||||
|
||||
|
||||
|
||||
**Beta Versions:**
|
||||
|
||||
v0.3.5
|
||||
*Fixed a bug with closing and re-opening the craft management window causing weird behavior.
|
||||
*Disabled crafts will no longer be queued as intermediate crafts.
|
||||
*Fixed a bug where intermediate crafts were being queued even if they were unprofitable.
|
||||
*Added a minimum ilvl option at the profession level for the restock queue.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.3.4
|
||||
*Fixed a minor bug with the materials page.
|
||||
*Fixed a bug with the "characters to include" dropdown wasn't saving / updating correctly.
|
||||
*Added the ability to use cross faction inventory data from datastore.
|
||||
*Added options for having the on-hand queue ignore items you can buy from a vendor.
|
||||
*Many other minor fixes and improvements.
|
||||
|
||||
v0.3.3
|
||||
*Updated TOC for patch 4.2.
|
||||
|
||||
v0.3.2
|
||||
*Crafts with a CD should no longer be automatically added to the queue as intermediate crafts.
|
||||
*Added a bunch of support code for some upcoming changes to the Shopping for crafting mats feature.
|
||||
|
||||
v0.3.1
|
||||
*Reorganized the options to hopefully be more intuitive.
|
||||
*Removed a few out-dated options.
|
||||
*Completely re-did the craft queue to make intermediate crafts more obvious and make the whole intermediate craft process more transparent.
|
||||
*Fixed the bug where the Craft Next button was being disabled incorrectly.
|
||||
*Changed the colors of the craft queue to all be slightly lighter (ie the red is now more of an orange).
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.3
|
||||
*Completely redesigned the "Materials" page using a scrolling table.
|
||||
*Added a new "Material Cost Options" window which is accessible by clicking on one of the rows in the "Materials" page.
|
||||
*The material cost source will now show up in the Craft Management Window.
|
||||
*Changed the misleading "Market Value" label in the queuing part (top left) of the Craft Management Window to "Crafted Item Value".
|
||||
*Added some code to cleanup the saved variables file a bit.
|
||||
*Fixed a bug with chaos orbs and other BOP mats not being tracked correctly.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.12
|
||||
*Fixed a bug with the "Characters to Include" dropdown not saving / displaying correctly.
|
||||
*Fixed a bug with the "Additional Item Settings" button wrapping to a second line.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.11
|
||||
*Fixed an error that pops up when the user is not using DataStore or Gathering.
|
||||
*Items that are both crafts and mats should now have their crafting costs correctly exported to Auctioning.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.10
|
||||
*Eternals can now be split / created just like essences and splitting / combining works for all professions not just Enchanting.
|
||||
*Changed code to get auction count info from Gathering instead of AuctionDB when Gathering is selected.
|
||||
|
||||
v0.2.9
|
||||
*Added support for getting price data from The Undermine Journal.
|
||||
*Fixed a bunch of bugs related to crafts not being added or showing up under the wrong profession.
|
||||
*Updated the TOC for patch 4.1.
|
||||
|
||||
v0.2.8
|
||||
*Fixed some bugs with Inscription crafts not showing / being grouped incorrectly.
|
||||
*Fixed a bug where profession scans where timing out.
|
||||
*Added some new groups to Inscription and regrouped a few items.
|
||||
*Added a "Clear Tradeskill Filters" button to the craft management window (below the cost / profit estimates) that will be shown when a filter is set or a category is collapsed in the profession window and thus items are being hidden from the craft queue.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.7
|
||||
*Added a percent next to the profit in the craft management window that shows % profit.
|
||||
*Added an options to turn off the new % column in the options.
|
||||
*The title of each of the queuing columns (top left part) in the craft management window can be clicked to sort by that column.
|
||||
*Fixed a bug with creating a new profile causing issues.
|
||||
*Added an option to display crafting info in item tooltips.
|
||||
*Fixed a bug with inscription crafts not showing up correctly when sorted by ink for some users.
|
||||
|
||||
v0.2.6
|
||||
*Added profession icons to the left side of the Craft Management Window for quick and easy switching between professions.
|
||||
*Fixed a bug with the "double click queue" setting not saving / changing correctly.
|
||||
*Every single tradeskill that produces an item (ie not Inscription Research / profess-specific enchants) will be added to Crafting. Anything that wasn't previously in Crafting will show up in the "Other" group.
|
||||
*Added an option for enabling / disabling new crafts by default.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.5
|
||||
*Cleaned up the settings GUI code.
|
||||
*Added a few missing crafts (mostly engineering).
|
||||
*Crafts with cooldowns will no longer be automatically queued with the restock / on-hand queue or queued as intermediate crafts.
|
||||
|
||||
v0.2.4
|
||||
*Added APIs for controling the craft queue (documented at the bottom of the TradeSkillMaster_Crafting.lua file).
|
||||
*Fixed a bug with seen count filters not working.
|
||||
*Fixed a bug with opening smelting causing an error.
|
||||
*Fixed a bug with non-enabled crafts being queued as intermediate crafts.
|
||||
*On-Hand queue should no longer queue things with a negative profit.
|
||||
*Added folded obsidium and grinding stones crafts to blacksmithing.
|
||||
*Added inks as crafts for inscription.
|
||||
*Crafts where at least one (but not all) of the queued quantity can be made will now show up in blue in the craft queue and be craftable by the "Craft Next" button.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.3
|
||||
*Added 4.0.6 enchants.
|
||||
*Added an option for using Auctioning fallback as market value when none of an item are on the AH.
|
||||
*You can now use Auctionator as a source of mat / crafted item prices.
|
||||
*Added options to control sorting of crafts in main TSM window.
|
||||
*Added total cost / profit text to the Craft Management Window.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.2
|
||||
*Updated with new recipes from 4.0.6.
|
||||
*Fixed an issue with leather not showing under leatherworking.
|
||||
*Fixed a bunch of issues with the Craft Next button disabling / enabling incorrectly.
|
||||
*Cleaned up a lot of the code which should result in a drastic decrease in processing when loading / using the Craft Management Window.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.1
|
||||
*Using datastore for alt data can now get data from multiple accounts.
|
||||
*Fixed a bug with the "Open Profession" button not working on non-english realms.
|
||||
*Alchemy should no longer freeze the game client when skyflare diamond is enabled.
|
||||
*Few other minor bug fixes and improvements.
|
||||
|
||||
v0.2
|
||||
*Profession scanning should no longer cause the game to lag.
|
||||
*Equipped items and bags are no longer included in the number in player's bags.
|
||||
*When removing an override from a mat cost, the cost will be recalcuated correctly.
|
||||
*Fixed a bug with intermediate crafts not queuing up correctly.
|
||||
*Added a button for forcing a profession scan.
|
||||
*Added frame to overlay profession window during scanning.
|
||||
*Crafts which create more than 1 of the craft item per craft will now have their profits calculated correctly.
|
||||
*Added option for only creating Auctioning groups for enabled crafts.
|
||||
*Many other minor bug fixes and changes.
|
||||
|
||||
v0.1.4
|
||||
*Fixed a bug with the restock queue when set to a % min profit.
|
||||
*Fixed the localizations file to work properly on non-english clients.
|
||||
*Added a way to quickly and easily add crafted items to Auctioning groups. This can be found next to the "Enable/Disable All" buttons in the main TSM window.
|
||||
|
||||
v0.1.3
|
||||
*Profile tab should now work properly.
|
||||
*Incrased max value for "Minimum Profit (in gold)" slider.
|
||||
*Optimized and throttled profession scans more.
|
||||
*Added additional crafts.
|
||||
*Optimized queuing part of craft management window.
|
||||
*Added "All" category to queuing part of craft management window.
|
||||
*Put in some per-profession options / overrides.
|
||||
*Many other minor improvements and bug fixes.
|
||||
|
||||
v0.1.2
|
||||
*Crafting now properly prices vendor bought items and should no longer export them to Shopping.
|
||||
*Crafting should no work on non-english clients.
|
||||
*Including items on the AH is now enabled by default.
|
||||
*Many minor bug fixes.
|
||||
|
||||
v0.1.1
|
||||
*The first time crafts are added, they will be set to be enabled to help first time users.
|
||||
|
||||
v0.1
|
||||
*First Commit Version
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
All rights are reserved unless explicitly stated below. The "license
|
||||
holder" is the manager of this project, Sapu94 (sapu94@gmail.com).
|
||||
|
||||
Exceptions:
|
||||
1) The use of this addon in accordance with all applicable terms set by
|
||||
Blizzard Entertainment for addon use and game play is permitted.
|
||||
2) Modifications for personal use or submission to license holder are
|
||||
permitted. Modified versions of the works, derivative works, modified
|
||||
sections of the works, and instructions for how to modify the works are
|
||||
all prohibited unless the express consent of the license holder is
|
||||
granted.
|
||||
|
||||
Comments:
|
||||
1) Permission to use sections of the works in your own work is very
|
||||
likely to be granted upon contacting the license holder.
|
||||
2) The right to distribute the works is reserved by the license holder.
|
||||
In no way or form may a person other than the license holder distribute
|
||||
the works.
|
||||
3) Please contact the license holder if you have any questions at all
|
||||
regarding this license at the following email address: sapu94@gmail.com
|
||||
@@ -0,0 +1,155 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/tradeskillmaster_crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - deDE
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "deDE")
|
||||
if not L then return end
|
||||
|
||||
L["All"] = "Alle"
|
||||
L["Are you sure you want to reset all material prices to the default value?"] = "Wirklich alle Materialpreise auf den Standardwert zurücksetzen?"
|
||||
L["Ask Later"] = "Später nachfragen" -- Needs review
|
||||
L["Auction House"] = "Auktionshaus"
|
||||
L["Available Sources"] = "Verfügbare Quellen" -- Needs review
|
||||
L["Buy Vendor Items"] = "Gegenstände vom Händler kaufen" -- Needs review
|
||||
L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = "Charaktere (Taschen/Bank/AH/Post), die ignoriert werden:" -- Needs review
|
||||
L["Clear Filters"] = "Filter zurücksetzen" -- Needs review
|
||||
L["Clear Queue"] = "Warteschlange leeren"
|
||||
-- L["Click Start Gathering"] = ""
|
||||
L["Collect Mail"] = "Post einsammeln" -- Needs review
|
||||
L["Cost"] = "Kosten"
|
||||
-- L["Could not get link for profession."] = ""
|
||||
L["Crafting Cost"] = "Herstellungskosten" -- Needs review
|
||||
-- L["Crafting Material Cost"] = ""
|
||||
L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = "Herstellungsprozesse enthalten Einstellungen, um die Gegenstände einer Gruppe aufzufüllen. Gib den Namen des neuen Prozesses in die Box unten ein und drücke 'Enter', um einen neuen Herstellungsprozess zu erzeugen." -- Needs review
|
||||
-- L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = ""
|
||||
L["Craft Next"] = "Nächstes herstellen"
|
||||
-- L["Craft Price Method"] = ""
|
||||
-- L["Craft Queue"] = ""
|
||||
L["Create Profession Groups"] = "Berufsgruppen erstellen" -- Needs review
|
||||
L["Custom Price"] = "Benutzerdefinierter Preis" -- Needs review
|
||||
L["Custom Price for this item."] = "Benutzerdefinierter Preis für diesen Gegenstand." -- Needs review
|
||||
L["Custom Price per Item"] = "Benutzerdefinierter Preis pro Gegenstand" -- Needs review
|
||||
-- L["Default Craft Price Method"] = ""
|
||||
-- L["Default Material Cost Method"] = ""
|
||||
L["Default Price"] = "Standardpreis" -- Needs review
|
||||
-- L["Default Price Settings"] = ""
|
||||
-- L["Enchant Vellum"] = ""
|
||||
L["Error creating operation. Operation with name '%s' already exists."] = "Fehler beim Erstellen des Prozesses. Ein Prozess mit Namen '%s' existiert bereits." -- Needs review
|
||||
L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = [=[Vorrausichtliche Kosten: %s
|
||||
Vorrausichtlicher Profit: %s]=] -- Needs review
|
||||
-- L["Exclude Crafts with a Cooldown from Craft Cost"] = ""
|
||||
L["Filters >>"] = "Filter >>" -- Needs review
|
||||
-- L["First select a crafter"] = ""
|
||||
L["Gather"] = "Sammeln" -- Needs review
|
||||
-- L["Gather All Professions by Default if Only One Crafter"] = ""
|
||||
L["Gathering"] = "Sammeln"
|
||||
-- L["Gathering Crafting Mats"] = ""
|
||||
-- L["Gather Items"] = ""
|
||||
L["General"] = "Allgemein"
|
||||
L["General Settings"] = "Allgemeine Einstellungen"
|
||||
L["Give the new operation a name. A descriptive name will help you find this operation later."] = "Name für den neuen Prozess. Ein beschreibender Name hilft später beim Finden des Prozesses." -- Needs review
|
||||
L["Guilds (Guild Banks) to Ignore:"] = "Gilden (Gildenbanken), die ignoriert werden:" -- Needs review
|
||||
L["Here you can view and adjust how Crafting is calculating the price for this material."] = "Hier können Sie einsehen und anpassen wie \"Crafting\" die Preise für dieses Material kalkuliert."
|
||||
L["<< Hide Queue"] = "<< Warteschlange verstecken" -- Needs review
|
||||
-- L["If checked, Crafting will never try and craft inks as intermediate crafts."] = ""
|
||||
-- L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = ""
|
||||
-- L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = ""
|
||||
L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = "Wenn ausgewählt, werden die Herstellungskosten eines Gegenstandes im Tooltip angezeigt"
|
||||
-- L["If checked, the material cost of items will be shown in the tooltip for the item."] = ""
|
||||
-- L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = ""
|
||||
L["Inventory Settings"] = "Inventareinstellungen"
|
||||
L["Item Name"] = "Gegenstandsname"
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = "Gegenstände werden nur zur Warteschlange hinzufügt, falls die hinzuzufügende Menge größer als diese Zahl ist. Dies ist beispielsweise praktisch, um die Herstellung einzelner Gegenstände zu vermeiden."
|
||||
L["Item Value"] = "Wert des Gegenstands" -- Needs review
|
||||
-- L["Left-Click|r to add this craft to the queue."] = ""
|
||||
-- L["Link"] = ""
|
||||
-- L["Mailing Craft Mats to %s"] = ""
|
||||
-- L["Mail Items"] = ""
|
||||
-- L["Mat Cost"] = ""
|
||||
L["Material Cost Options"] = "Materialkosten - Optionen"
|
||||
-- L["Material Name"] = ""
|
||||
L["Materials:"] = "Materialien:" -- Needs review
|
||||
L["Mat Price"] = "Materialpreis"
|
||||
L["Max Restock Quantity"] = "Maximale herzustellende Menge"
|
||||
L["Minimum Profit"] = "Mindest-Profit" -- Needs review
|
||||
L["Min Restock Quantity"] = "Minimal herzustellende menge"
|
||||
L["Name"] = "Name"
|
||||
L["Need"] = "Benötigt"
|
||||
-- L["Needed Mats at Current Source"] = ""
|
||||
-- L["Never Queue Inks as Sub-Craftings"] = ""
|
||||
L["New Operation"] = "Neuer Prozess" -- Needs review
|
||||
-- L["<None>"] = ""
|
||||
-- L["No Thanks"] = ""
|
||||
-- L["Nothing To Gather"] = ""
|
||||
-- L["Nothing to Mail"] = ""
|
||||
-- L["Now select your profession(s)"] = ""
|
||||
L["Number Owned"] = "Anzahl in Besitz"
|
||||
-- L["Opens the Crafting window to the first profession."] = ""
|
||||
L["Operation Name"] = "Prozessname" -- Needs review
|
||||
L["Operations"] = "Prozesse" -- Needs review
|
||||
L["Options"] = "Einstellungen"
|
||||
-- L["Override Default Craft Price Method"] = ""
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = "Vom Sofortkaufpreis abzuziehende % bei Berechnung des Profits (5% decken die AH Kosten)."
|
||||
-- L["Please switch to the Shopping Tab to perform the gathering search."] = ""
|
||||
L["Price:"] = "Preis:"
|
||||
L["Price Settings"] = "Preiseinstellungen"
|
||||
-- L["Price Source Filter"] = ""
|
||||
-- L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = ""
|
||||
-- L["Profession Filter"] = ""
|
||||
L["Professions"] = "Berufe" -- Needs review
|
||||
-- L["Professions Used In"] = ""
|
||||
L["Profit"] = "Profit"
|
||||
L["Profit Deduction"] = "Profit abzug"
|
||||
-- L["Profit (Total Profit):"] = ""
|
||||
L["Queue"] = "Warteschlange" -- Needs review
|
||||
-- L["Relationships"] = ""
|
||||
-- L["Reset All Custom Prices to Default"] = ""
|
||||
-- L["Reset all Custom Prices to Default Price Source."] = ""
|
||||
-- L["Resets the material price for this item to the defualt value."] = ""
|
||||
-- L["Reset to Default"] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with a min profit."] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with no min profit."] = ""
|
||||
-- L["Restock Quantity Settings"] = ""
|
||||
-- L["Restock Selected Groups"] = ""
|
||||
-- L["Restock Settings"] = ""
|
||||
-- L["Right-Click|r to subtract this craft from the queue."] = ""
|
||||
-- L["%s Avail"] = ""
|
||||
-- L["Search"] = ""
|
||||
-- L["Search for Mats"] = ""
|
||||
-- L["Select Crafter"] = ""
|
||||
-- L["Select one of your characters' professions to browse."] = ""
|
||||
-- L["Set Minimum Profit"] = ""
|
||||
-- L["Shift-Left-Click|r to queue all you can craft."] = ""
|
||||
-- L["Shift-Right-Click|r to remove all from queue."] = ""
|
||||
L["Show Crafting Cost in Tooltip"] = "Zeige Herstellungskosten im Tooltip"
|
||||
-- L["Show Default Profession Frame"] = ""
|
||||
-- L["Show Material Cost in Tooltip"] = ""
|
||||
L["Show Queue >>"] = "Warteschlange anzeigen >>" -- Needs review
|
||||
L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = "'%s' ist eine ungültiger Prozess! Min restock %d ist höher als max restock %d." -- Needs review
|
||||
L["%s (%s profit)"] = "%s (Profit: %s)" -- Needs review
|
||||
L["Stage %d"] = "Schritt %d" -- Needs review
|
||||
-- L["Start Gathering"] = ""
|
||||
-- L["Stop Gathering"] = ""
|
||||
-- L["This is the default method Crafting will use for determining craft prices."] = ""
|
||||
-- L["This is the default method Crafting will use for determining material cost."] = ""
|
||||
L["Total"] = "Summe"
|
||||
L["TSM Groups"] = "TSM-Gruppen" -- Needs review
|
||||
L["Vendor"] = "NPC-Händler"
|
||||
L["Visit Bank"] = "Bank besuchen"
|
||||
L["Visit Guild Bank"] = "Gildenbank besuchen"
|
||||
L["Visit Vendor"] = "Händler besuchen" -- Needs review
|
||||
L["Warning: The min restock quantity must be lower than the max restock quantity."] = "Warnung: Die minimale Wiederauffüllungsmenge muss kleiner sein als die maximale."
|
||||
L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = "Wenn Sie oft genug auf den \"Restock Queue\" (Warteschlange aufstocken) Kopf drücken, wird jedes Teil in die Warteschlange gesetzt, sodass Sie die maximale (herstellbare) Anzahl vorrätig haben. Zum Beispiel: Wenn Sie 2 mal Item x vorrätig haben und Sie setzten den Wert auf 4, werden 2 weitere der Herstellungsliste hinzugefügt."
|
||||
L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = "Möchtest du das TSM automatisch eine Guppe für diesen Beruf erstellt?" -- Needs review
|
||||
L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = "Auf eine der Reihen in der unteren Tabelle klicken, um die Preisberechnung für ein Material anzuzeigen und zu ändern." -- Needs review
|
||||
@@ -0,0 +1,178 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://www.curse.com/addons/wow/TradeSkillMaster_Crafting --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - enUS
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkill-Master/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "enUS", true)
|
||||
if not L then return end
|
||||
|
||||
L["%s (%s profit)"] = true
|
||||
L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = true
|
||||
L["<< Hide Queue"] = true
|
||||
L["<None>"] = true
|
||||
L["AH"] = true
|
||||
L["All"] = true
|
||||
L["Are you sure you want to reset all material prices to the default value?"] = true
|
||||
L["Ask Later"] = true
|
||||
L["Auction House"] = true
|
||||
L["Available Sources"] = true
|
||||
L["Bags"] = true
|
||||
L["Buy Vendor Items"] = true
|
||||
L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = true
|
||||
L["Clear Filters"] = true
|
||||
L["Clear Queue"] = true
|
||||
L["Click Start Gathering"] = true
|
||||
L["Collect Mail"] = true
|
||||
L["Cost"] = true
|
||||
L["Could not get link for profession."] = true
|
||||
L["Craft Name"] = true
|
||||
L["Craft Next"] = true
|
||||
L["Craft Value Method"] = true
|
||||
L["Craft Queue"] = true
|
||||
L["Crafter"] = true
|
||||
L["Crafts"] = true
|
||||
L["Crafting Cost"] = true
|
||||
L["Crafting Material Cost"] = true
|
||||
L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = true
|
||||
L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure a profit of at least 10g or 10% of the craft cost, whichever is highest."] = true
|
||||
L["Create Profession Groups"] = true
|
||||
L["Created profession group for %s."] = true
|
||||
L["Current Source"] = true
|
||||
L["Custom Price for this item."] = true
|
||||
L["Custom Price per Item"] = true
|
||||
L["Custom Price"] = true
|
||||
L["Default Craft Value Method"] = true
|
||||
L["Default Material Cost Method"] = true
|
||||
L["Default Price Settings"] = true
|
||||
L["Default Price"] = true
|
||||
L["Destroying"] = true
|
||||
L["Disenchant"] = true
|
||||
L[" Disable Destroying Search"] = true
|
||||
L["Enchant Vellum"] = true
|
||||
L["Error creating operation. Operation with name '%s' already exists."] = true
|
||||
L["Estimated Cost: %s\nEstimated Profit: %s"] = true
|
||||
L["Exclude Crafts with a Cooldown from Craft Cost"] = true
|
||||
L["Even Stacks"] = true
|
||||
L["Filters >>"] = true
|
||||
L["First select a crafter"] = true
|
||||
L["Gather All Professions by Default if Only One Crafter"] = true
|
||||
L["Gather Items"] = true
|
||||
L["Gather"] = true
|
||||
L["Gathering Crafting Mats"] = true
|
||||
L["Gathering"] = true
|
||||
L["General Settings"] = true
|
||||
L["General"] = true
|
||||
L["Give the new operation a name. A descriptive name will help you find this operation later."] = true
|
||||
L["Guilds (Guild Banks) to Ignore:"] = true
|
||||
L["Have Mats"] = true
|
||||
L["Here you can view and adjust how Crafting is calculating the price for this material."] = true
|
||||
L["If checked, Crafting will never try and craft inks as intermediate crafts."] = true
|
||||
L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = true
|
||||
L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = true
|
||||
L["If checked, only crafts which you can craft with items in your bags (ignoring vendor items) will be shown below."] = true
|
||||
L["If checked, only a normal AH search will be performed"] = true
|
||||
L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = true
|
||||
L["If checked, the material cost of items will be shown in the tooltip for the item."] = true
|
||||
L["If checked, the mats needed to craft an item and their prices will be shown in item tooltips."] = true
|
||||
L["If checked, the AH destroying search will only look for even stacks"] = true
|
||||
L["Inventory Settings"] = true
|
||||
L["Item Name"] = true
|
||||
L["Item Value"] = true
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = true
|
||||
L["Left-Click|r to add this craft to the queue."] = true
|
||||
L["Link"] = true
|
||||
L["List Mats in Tooltip"] = true
|
||||
L["Mail Items"] = true
|
||||
L["Mailing Craft Mats to %s"] = true
|
||||
L["Management"] = true
|
||||
L["Mat Cost"] = true
|
||||
L["Mat Price"] = true
|
||||
L["Material Cost Options"] = true
|
||||
L["Material Name"] = true
|
||||
L["Materials"] = true
|
||||
L["Materials:"] = true
|
||||
L["Max Restock Quantity"] = true
|
||||
L["Milling"] = true
|
||||
L["Min Restock Quantity"] = true
|
||||
L["Minimum Profit"] = true
|
||||
L["Name"] = true
|
||||
L["Need"] = true
|
||||
L["Never Queue Inks as Sub-Craftings"] = true
|
||||
L["New Operation"] = true
|
||||
L["No Thanks"] = true
|
||||
L["Nothing To Gather"] = true
|
||||
L["Nothing to Mail"] = true
|
||||
L["Now select your profession(s)"] = true
|
||||
L["Number Owned"] = true
|
||||
L["Opens the Crafting window to the first profession."] = true
|
||||
L["Operation Name"] = true
|
||||
L["Operations"] = true
|
||||
L["Options"] = true
|
||||
L["Override Default Craft Value Method"] = true
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = true
|
||||
L["Please switch to the Shopping Tab to perform the gathering search."] = true
|
||||
L["Price Settings"] = true
|
||||
L["Price Source Filter"] = true
|
||||
L["Price:"] = true
|
||||
L["Profession Filter"] = true
|
||||
L["Profession Frame Scale"] = true
|
||||
L["Profession data not found for %s on %s. Logging into this player and opening the profession may solve this issue."] = true
|
||||
L["Professions Used In"] = true
|
||||
L["Professions"] = true
|
||||
L["Profit (Total Profit):"] = true
|
||||
L["Profit Deduction"] = true
|
||||
L["Profit"] = true
|
||||
L["Prospect"] = true
|
||||
L["Queue"] = true
|
||||
L["Queue Increment"] = true
|
||||
L["Relationships"] = true
|
||||
L["Reset All Custom Prices to Default"] = true
|
||||
L["Reset all Custom Prices to Default Price Source."] = true
|
||||
L["Reset to Default"] = true
|
||||
L["Resets the material price for this item to the defualt value."] = true
|
||||
L["Restock Quantity Settings"] = true
|
||||
L["Restock Selected Groups"] = true
|
||||
L["Restock Settings"] = true
|
||||
L["Restocking to a max of %d (min of %d) with a min profit."] = true
|
||||
L["Restocking to a max of %d (min of %d) with no min profit."] = true
|
||||
L["Right-Click|r to subtract this craft from the queue."] = true
|
||||
L["Search for Mats"] = true
|
||||
L["Search"] = true
|
||||
L["Select one of your characters' professions to browse."] = true
|
||||
L["Set Minimum Profit"] = true
|
||||
L["Shift-Left-Click|r to queue all you can craft."] = true
|
||||
L["Shift-Right-Click|r to remove all from queue."] = true
|
||||
L["Show Crafting Cost in Tooltip"] = true
|
||||
L["Show Material Cost in Tooltip"] = true
|
||||
L["Show Queue >>"] = true
|
||||
L["Stage %d"] = true
|
||||
L["Start Gathering"] = true
|
||||
L["Stop Gathering"] = true
|
||||
L["The scale of the profession frame."] = true
|
||||
L["Transform"] = true
|
||||
L["TSM Groups"] = true
|
||||
L["This is the default method Crafting will use for determining the value of crafted items."] = true
|
||||
L["This is the default method Crafting will use for determining material cost."] = true
|
||||
L["This slider sets the quantity to add/remove from the queue when left/right clicking on a row below."] = true
|
||||
L["Total"] = true
|
||||
L["Total"] = true
|
||||
L["Vendor"] = true
|
||||
L["Visit Bank"] = true
|
||||
L["Visit Guild Bank"] = true
|
||||
L["Visit Vendor"] = true
|
||||
L["Warning: The min restock quantity must be lower than the max restock quantity."] = true
|
||||
L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = true
|
||||
L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = true
|
||||
L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = true
|
||||
L["You can left/right click on a row to add/remove a craft from the crafting queue."] = true
|
||||
L["Your craft value method for '%s' was invalid so it has been returned to the default. Details: %s"] = true
|
||||
L["Your default craft value method was invalid so it has been returned to the default. Details: %s"] = true
|
||||
@@ -0,0 +1,154 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/tradeskillmaster_crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - esES
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "esES")
|
||||
if not L then return end
|
||||
|
||||
L["All"] = "Todo"
|
||||
-- L["Are you sure you want to reset all material prices to the default value?"] = ""
|
||||
-- L["Ask Later"] = ""
|
||||
L["Auction House"] = "Casa de Subastas "
|
||||
-- L["Available Sources"] = ""
|
||||
-- L["Buy Vendor Items"] = ""
|
||||
-- L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = ""
|
||||
-- L["Clear Filters"] = ""
|
||||
L["Clear Queue"] = "Borrar Cola"
|
||||
-- L["Click Start Gathering"] = ""
|
||||
-- L["Collect Mail"] = ""
|
||||
-- L["Cost"] = ""
|
||||
-- L["Could not get link for profession."] = ""
|
||||
-- L["Crafting Cost"] = ""
|
||||
-- L["Crafting Material Cost"] = ""
|
||||
-- L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = ""
|
||||
-- L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = ""
|
||||
L["Craft Next"] = "Fabricar Siguiente" -- Needs review
|
||||
-- L["Craft Price Method"] = ""
|
||||
-- L["Craft Queue"] = ""
|
||||
-- L["Create Profession Groups"] = ""
|
||||
-- L["Custom Price"] = ""
|
||||
-- L["Custom Price for this item."] = ""
|
||||
-- L["Custom Price per Item"] = ""
|
||||
-- L["Default Craft Price Method"] = ""
|
||||
-- L["Default Material Cost Method"] = ""
|
||||
-- L["Default Price"] = ""
|
||||
-- L["Default Price Settings"] = ""
|
||||
-- L["Enchant Vellum"] = ""
|
||||
-- L["Error creating operation. Operation with name '%s' already exists."] = ""
|
||||
--[==[ L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = "" ]==]
|
||||
-- L["Exclude Crafts with a Cooldown from Craft Cost"] = ""
|
||||
-- L["Filters >>"] = ""
|
||||
-- L["First select a crafter"] = ""
|
||||
-- L["Gather"] = ""
|
||||
-- L["Gather All Professions by Default if Only One Crafter"] = ""
|
||||
-- L["Gathering"] = ""
|
||||
-- L["Gathering Crafting Mats"] = ""
|
||||
-- L["Gather Items"] = ""
|
||||
-- L["General"] = ""
|
||||
-- L["General Settings"] = ""
|
||||
-- L["Give the new operation a name. A descriptive name will help you find this operation later."] = ""
|
||||
-- L["Guilds (Guild Banks) to Ignore:"] = ""
|
||||
-- L["Here you can view and adjust how Crafting is calculating the price for this material."] = ""
|
||||
-- L["<< Hide Queue"] = ""
|
||||
-- L["If checked, Crafting will never try and craft inks as intermediate crafts."] = ""
|
||||
-- L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = ""
|
||||
-- L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = ""
|
||||
-- L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = ""
|
||||
-- L["If checked, the material cost of items will be shown in the tooltip for the item."] = ""
|
||||
-- L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = ""
|
||||
L["Inventory Settings"] = "Opciones de Inventario"
|
||||
-- L["Item Name"] = ""
|
||||
-- L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = ""
|
||||
-- L["Item Value"] = ""
|
||||
-- L["Left-Click|r to add this craft to the queue."] = ""
|
||||
-- L["Link"] = ""
|
||||
-- L["Mailing Craft Mats to %s"] = ""
|
||||
-- L["Mail Items"] = ""
|
||||
-- L["Mat Cost"] = ""
|
||||
-- L["Material Cost Options"] = ""
|
||||
-- L["Material Name"] = ""
|
||||
-- L["Materials:"] = ""
|
||||
-- L["Mat Price"] = ""
|
||||
L["Max Restock Quantity"] = "Max Restock"
|
||||
-- L["Minimum Profit"] = ""
|
||||
L["Min Restock Quantity"] = "Min Restock"
|
||||
L["Name"] = "Nombre"
|
||||
L["Need"] = "Necesitas "
|
||||
-- L["Needed Mats at Current Source"] = ""
|
||||
-- L["Never Queue Inks as Sub-Craftings"] = ""
|
||||
-- L["New Operation"] = ""
|
||||
-- L["<None>"] = ""
|
||||
-- L["No Thanks"] = ""
|
||||
-- L["Nothing To Gather"] = ""
|
||||
-- L["Nothing to Mail"] = ""
|
||||
-- L["Now select your profession(s)"] = ""
|
||||
-- L["Number Owned"] = ""
|
||||
-- L["Opens the Crafting window to the first profession."] = ""
|
||||
-- L["Operation Name"] = ""
|
||||
-- L["Operations"] = ""
|
||||
-- L["Options"] = ""
|
||||
-- L["Override Default Craft Price Method"] = ""
|
||||
-- L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = ""
|
||||
-- L["Please switch to the Shopping Tab to perform the gathering search."] = ""
|
||||
-- L["Price:"] = ""
|
||||
L["Price Settings"] = "Opciones de Precio:"
|
||||
-- L["Price Source Filter"] = ""
|
||||
-- L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = ""
|
||||
-- L["Profession Filter"] = ""
|
||||
-- L["Professions"] = ""
|
||||
-- L["Professions Used In"] = ""
|
||||
L["Profit"] = "Beneficio"
|
||||
L["Profit Deduction"] = "Beneficio deducido" -- Needs review
|
||||
-- L["Profit (Total Profit):"] = ""
|
||||
-- L["Queue"] = ""
|
||||
-- L["Relationships"] = ""
|
||||
-- L["Reset All Custom Prices to Default"] = ""
|
||||
-- L["Reset all Custom Prices to Default Price Source."] = ""
|
||||
-- L["Resets the material price for this item to the defualt value."] = ""
|
||||
-- L["Reset to Default"] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with a min profit."] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with no min profit."] = ""
|
||||
-- L["Restock Quantity Settings"] = ""
|
||||
-- L["Restock Selected Groups"] = ""
|
||||
-- L["Restock Settings"] = ""
|
||||
-- L["Right-Click|r to subtract this craft from the queue."] = ""
|
||||
-- L["%s Avail"] = ""
|
||||
-- L["Search"] = ""
|
||||
-- L["Search for Mats"] = ""
|
||||
-- L["Select Crafter"] = ""
|
||||
-- L["Select one of your characters' professions to browse."] = ""
|
||||
-- L["Set Minimum Profit"] = ""
|
||||
-- L["Shift-Left-Click|r to queue all you can craft."] = ""
|
||||
-- L["Shift-Right-Click|r to remove all from queue."] = ""
|
||||
-- L["Show Crafting Cost in Tooltip"] = ""
|
||||
-- L["Show Default Profession Frame"] = ""
|
||||
-- L["Show Material Cost in Tooltip"] = ""
|
||||
-- L["Show Queue >>"] = ""
|
||||
-- L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = ""
|
||||
-- L["%s (%s profit)"] = ""
|
||||
-- L["Stage %d"] = ""
|
||||
-- L["Start Gathering"] = ""
|
||||
-- L["Stop Gathering"] = ""
|
||||
-- L["This is the default method Crafting will use for determining craft prices."] = ""
|
||||
-- L["This is the default method Crafting will use for determining material cost."] = ""
|
||||
L["Total"] = "Total" -- Needs review
|
||||
-- L["TSM Groups"] = ""
|
||||
-- L["Vendor"] = ""
|
||||
-- L["Visit Bank"] = ""
|
||||
-- L["Visit Guild Bank"] = ""
|
||||
-- L["Visit Vendor"] = ""
|
||||
-- L["Warning: The min restock quantity must be lower than the max restock quantity."] = ""
|
||||
-- L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = ""
|
||||
-- L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = ""
|
||||
-- L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = ""
|
||||
@@ -0,0 +1,154 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/tradeskillmaster_crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - esMX
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "esMX")
|
||||
if not L then return end
|
||||
|
||||
-- L["All"] = ""
|
||||
-- L["Are you sure you want to reset all material prices to the default value?"] = ""
|
||||
-- L["Ask Later"] = ""
|
||||
-- L["Auction House"] = ""
|
||||
-- L["Available Sources"] = ""
|
||||
-- L["Buy Vendor Items"] = ""
|
||||
-- L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = ""
|
||||
-- L["Clear Filters"] = ""
|
||||
L["Clear Queue"] = "Limpiar cola."
|
||||
-- L["Click Start Gathering"] = ""
|
||||
-- L["Collect Mail"] = ""
|
||||
-- L["Cost"] = ""
|
||||
-- L["Could not get link for profession."] = ""
|
||||
-- L["Crafting Cost"] = ""
|
||||
-- L["Crafting Material Cost"] = ""
|
||||
-- L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = ""
|
||||
-- L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = ""
|
||||
L["Craft Next"] = "Crear siguiente"
|
||||
-- L["Craft Price Method"] = ""
|
||||
-- L["Craft Queue"] = ""
|
||||
-- L["Create Profession Groups"] = ""
|
||||
-- L["Custom Price"] = ""
|
||||
-- L["Custom Price for this item."] = ""
|
||||
-- L["Custom Price per Item"] = ""
|
||||
-- L["Default Craft Price Method"] = ""
|
||||
-- L["Default Material Cost Method"] = ""
|
||||
-- L["Default Price"] = ""
|
||||
-- L["Default Price Settings"] = ""
|
||||
-- L["Enchant Vellum"] = ""
|
||||
-- L["Error creating operation. Operation with name '%s' already exists."] = ""
|
||||
--[==[ L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = "" ]==]
|
||||
-- L["Exclude Crafts with a Cooldown from Craft Cost"] = ""
|
||||
-- L["Filters >>"] = ""
|
||||
-- L["First select a crafter"] = ""
|
||||
-- L["Gather"] = ""
|
||||
-- L["Gather All Professions by Default if Only One Crafter"] = ""
|
||||
L["Gathering"] = "Recolección"
|
||||
-- L["Gathering Crafting Mats"] = ""
|
||||
-- L["Gather Items"] = ""
|
||||
L["General"] = "General"
|
||||
-- L["General Settings"] = ""
|
||||
-- L["Give the new operation a name. A descriptive name will help you find this operation later."] = ""
|
||||
-- L["Guilds (Guild Banks) to Ignore:"] = ""
|
||||
-- L["Here you can view and adjust how Crafting is calculating the price for this material."] = ""
|
||||
-- L["<< Hide Queue"] = ""
|
||||
-- L["If checked, Crafting will never try and craft inks as intermediate crafts."] = ""
|
||||
-- L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = ""
|
||||
-- L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = ""
|
||||
-- L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = ""
|
||||
-- L["If checked, the material cost of items will be shown in the tooltip for the item."] = ""
|
||||
-- L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = ""
|
||||
L["Inventory Settings"] = "Configuración de Inventario"
|
||||
-- L["Item Name"] = ""
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = "Los objetos se agregaran a la cola solo si el número agregado es mayor que este número. Esto es utíl si no quieres molestarte en crear objetos en singular por ejemplo. " -- Needs review
|
||||
-- L["Item Value"] = ""
|
||||
-- L["Left-Click|r to add this craft to the queue."] = ""
|
||||
-- L["Link"] = ""
|
||||
-- L["Mailing Craft Mats to %s"] = ""
|
||||
-- L["Mail Items"] = ""
|
||||
-- L["Mat Cost"] = ""
|
||||
-- L["Material Cost Options"] = ""
|
||||
-- L["Material Name"] = ""
|
||||
-- L["Materials:"] = ""
|
||||
-- L["Mat Price"] = ""
|
||||
L["Max Restock Quantity"] = "Cantidad de Reposición maxima"
|
||||
-- L["Minimum Profit"] = ""
|
||||
L["Min Restock Quantity"] = "Cantidad de Reposición mínima"
|
||||
L["Name"] = "Nombre"
|
||||
L["Need"] = "Necesidad"
|
||||
-- L["Needed Mats at Current Source"] = ""
|
||||
-- L["Never Queue Inks as Sub-Craftings"] = ""
|
||||
-- L["New Operation"] = ""
|
||||
-- L["<None>"] = ""
|
||||
-- L["No Thanks"] = ""
|
||||
-- L["Nothing To Gather"] = ""
|
||||
-- L["Nothing to Mail"] = ""
|
||||
-- L["Now select your profession(s)"] = ""
|
||||
-- L["Number Owned"] = ""
|
||||
-- L["Opens the Crafting window to the first profession."] = ""
|
||||
-- L["Operation Name"] = ""
|
||||
-- L["Operations"] = ""
|
||||
-- L["Options"] = ""
|
||||
-- L["Override Default Craft Price Method"] = ""
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = "Porcentaje a extraer del precio "
|
||||
-- L["Please switch to the Shopping Tab to perform the gathering search."] = ""
|
||||
-- L["Price:"] = ""
|
||||
L["Price Settings"] = "Configuración de precios"
|
||||
-- L["Price Source Filter"] = ""
|
||||
-- L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = ""
|
||||
-- L["Profession Filter"] = ""
|
||||
-- L["Professions"] = ""
|
||||
-- L["Professions Used In"] = ""
|
||||
L["Profit"] = "Ganancia"
|
||||
L["Profit Deduction"] = "Deducción de ganancia"
|
||||
-- L["Profit (Total Profit):"] = ""
|
||||
-- L["Queue"] = ""
|
||||
-- L["Relationships"] = ""
|
||||
-- L["Reset All Custom Prices to Default"] = ""
|
||||
-- L["Reset all Custom Prices to Default Price Source."] = ""
|
||||
-- L["Resets the material price for this item to the defualt value."] = ""
|
||||
-- L["Reset to Default"] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with a min profit."] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with no min profit."] = ""
|
||||
-- L["Restock Quantity Settings"] = ""
|
||||
-- L["Restock Selected Groups"] = ""
|
||||
-- L["Restock Settings"] = ""
|
||||
-- L["Right-Click|r to subtract this craft from the queue."] = ""
|
||||
-- L["%s Avail"] = ""
|
||||
-- L["Search"] = ""
|
||||
-- L["Search for Mats"] = ""
|
||||
-- L["Select Crafter"] = ""
|
||||
-- L["Select one of your characters' professions to browse."] = ""
|
||||
-- L["Set Minimum Profit"] = ""
|
||||
-- L["Shift-Left-Click|r to queue all you can craft."] = ""
|
||||
-- L["Shift-Right-Click|r to remove all from queue."] = ""
|
||||
-- L["Show Crafting Cost in Tooltip"] = ""
|
||||
-- L["Show Default Profession Frame"] = ""
|
||||
-- L["Show Material Cost in Tooltip"] = ""
|
||||
-- L["Show Queue >>"] = ""
|
||||
-- L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = ""
|
||||
-- L["%s (%s profit)"] = ""
|
||||
-- L["Stage %d"] = ""
|
||||
-- L["Start Gathering"] = ""
|
||||
-- L["Stop Gathering"] = ""
|
||||
-- L["This is the default method Crafting will use for determining craft prices."] = ""
|
||||
-- L["This is the default method Crafting will use for determining material cost."] = ""
|
||||
L["Total"] = "Total"
|
||||
-- L["TSM Groups"] = ""
|
||||
-- L["Vendor"] = ""
|
||||
-- L["Visit Bank"] = ""
|
||||
-- L["Visit Guild Bank"] = ""
|
||||
-- L["Visit Vendor"] = ""
|
||||
-- L["Warning: The min restock quantity must be lower than the max restock quantity."] = ""
|
||||
-- L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = ""
|
||||
-- L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = ""
|
||||
-- L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = ""
|
||||
@@ -0,0 +1,154 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/tradeskillmaster_crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - frFR
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "frFR")
|
||||
if not L then return end
|
||||
|
||||
L["All"] = "Tous"
|
||||
-- L["Are you sure you want to reset all material prices to the default value?"] = ""
|
||||
-- L["Ask Later"] = ""
|
||||
L["Auction House"] = "Hôtel des ventes"
|
||||
-- L["Available Sources"] = ""
|
||||
-- L["Buy Vendor Items"] = ""
|
||||
-- L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = ""
|
||||
-- L["Clear Filters"] = ""
|
||||
L["Clear Queue"] = "Vider la file d'attente"
|
||||
-- L["Click Start Gathering"] = ""
|
||||
-- L["Collect Mail"] = ""
|
||||
L["Cost"] = "Coût"
|
||||
-- L["Could not get link for profession."] = ""
|
||||
-- L["Crafting Cost"] = ""
|
||||
-- L["Crafting Material Cost"] = ""
|
||||
-- L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = ""
|
||||
-- L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = ""
|
||||
L["Craft Next"] = "Craft suivant"
|
||||
-- L["Craft Price Method"] = ""
|
||||
-- L["Craft Queue"] = ""
|
||||
-- L["Create Profession Groups"] = ""
|
||||
-- L["Custom Price"] = ""
|
||||
-- L["Custom Price for this item."] = ""
|
||||
-- L["Custom Price per Item"] = ""
|
||||
-- L["Default Craft Price Method"] = ""
|
||||
-- L["Default Material Cost Method"] = ""
|
||||
-- L["Default Price"] = ""
|
||||
-- L["Default Price Settings"] = ""
|
||||
-- L["Enchant Vellum"] = ""
|
||||
-- L["Error creating operation. Operation with name '%s' already exists."] = ""
|
||||
--[==[ L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = "" ]==]
|
||||
-- L["Exclude Crafts with a Cooldown from Craft Cost"] = ""
|
||||
-- L["Filters >>"] = ""
|
||||
-- L["First select a crafter"] = ""
|
||||
-- L["Gather"] = ""
|
||||
-- L["Gather All Professions by Default if Only One Crafter"] = ""
|
||||
L["Gathering"] = "Gathering"
|
||||
-- L["Gathering Crafting Mats"] = ""
|
||||
-- L["Gather Items"] = ""
|
||||
L["General"] = "Général"
|
||||
L["General Settings"] = "Paramètres généraux"
|
||||
-- L["Give the new operation a name. A descriptive name will help you find this operation later."] = ""
|
||||
-- L["Guilds (Guild Banks) to Ignore:"] = ""
|
||||
-- L["Here you can view and adjust how Crafting is calculating the price for this material."] = ""
|
||||
-- L["<< Hide Queue"] = ""
|
||||
-- L["If checked, Crafting will never try and craft inks as intermediate crafts."] = ""
|
||||
-- L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = ""
|
||||
-- L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = ""
|
||||
L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = "Si coché, le coût de craft d'un objet sera indiqué dans son tooltip."
|
||||
-- L["If checked, the material cost of items will be shown in the tooltip for the item."] = ""
|
||||
-- L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = ""
|
||||
L["Inventory Settings"] = "Paramètres de l'inventaire"
|
||||
-- L["Item Name"] = ""
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = "Les objets seront ajoutés à la file d’attente seulement si le nombre à ajouter est plus grand que ce nombre. C'est utile si vous ne voulez pas vous embêter à fabriquer des objets en 1 seul exemplaire par exemple." -- Needs review
|
||||
-- L["Item Value"] = ""
|
||||
-- L["Left-Click|r to add this craft to the queue."] = ""
|
||||
-- L["Link"] = ""
|
||||
-- L["Mailing Craft Mats to %s"] = ""
|
||||
-- L["Mail Items"] = ""
|
||||
-- L["Mat Cost"] = ""
|
||||
-- L["Material Cost Options"] = ""
|
||||
-- L["Material Name"] = ""
|
||||
-- L["Materials:"] = ""
|
||||
-- L["Mat Price"] = ""
|
||||
L["Max Restock Quantity"] = "Quantité Max à réapprovisionner"
|
||||
-- L["Minimum Profit"] = ""
|
||||
L["Min Restock Quantity"] = "Quantité Min à réapprovisionner"
|
||||
L["Name"] = "Nom"
|
||||
L["Need"] = "Besoin"
|
||||
-- L["Needed Mats at Current Source"] = ""
|
||||
-- L["Never Queue Inks as Sub-Craftings"] = ""
|
||||
-- L["New Operation"] = ""
|
||||
-- L["<None>"] = ""
|
||||
-- L["No Thanks"] = ""
|
||||
-- L["Nothing To Gather"] = ""
|
||||
-- L["Nothing to Mail"] = ""
|
||||
-- L["Now select your profession(s)"] = ""
|
||||
-- L["Number Owned"] = ""
|
||||
-- L["Opens the Crafting window to the first profession."] = ""
|
||||
-- L["Operation Name"] = ""
|
||||
-- L["Operations"] = ""
|
||||
L["Options"] = "Options"
|
||||
-- L["Override Default Craft Price Method"] = ""
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = "Pourcentage à retirer du prix d'achat lors du calcul du profit (5% compensera la commission de l'HV)"
|
||||
-- L["Please switch to the Shopping Tab to perform the gathering search."] = ""
|
||||
-- L["Price:"] = ""
|
||||
L["Price Settings"] = "Paramètres des Prix"
|
||||
-- L["Price Source Filter"] = ""
|
||||
-- L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = ""
|
||||
-- L["Profession Filter"] = ""
|
||||
-- L["Professions"] = ""
|
||||
-- L["Professions Used In"] = ""
|
||||
L["Profit"] = "Bénéfice"
|
||||
L["Profit Deduction"] = "Déduction du Bénéfice"
|
||||
-- L["Profit (Total Profit):"] = ""
|
||||
-- L["Queue"] = ""
|
||||
-- L["Relationships"] = ""
|
||||
-- L["Reset All Custom Prices to Default"] = ""
|
||||
-- L["Reset all Custom Prices to Default Price Source."] = ""
|
||||
-- L["Resets the material price for this item to the defualt value."] = ""
|
||||
-- L["Reset to Default"] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with a min profit."] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with no min profit."] = ""
|
||||
-- L["Restock Quantity Settings"] = ""
|
||||
-- L["Restock Selected Groups"] = ""
|
||||
-- L["Restock Settings"] = ""
|
||||
-- L["Right-Click|r to subtract this craft from the queue."] = ""
|
||||
-- L["%s Avail"] = ""
|
||||
-- L["Search"] = ""
|
||||
-- L["Search for Mats"] = ""
|
||||
-- L["Select Crafter"] = ""
|
||||
-- L["Select one of your characters' professions to browse."] = ""
|
||||
-- L["Set Minimum Profit"] = ""
|
||||
-- L["Shift-Left-Click|r to queue all you can craft."] = ""
|
||||
-- L["Shift-Right-Click|r to remove all from queue."] = ""
|
||||
L["Show Crafting Cost in Tooltip"] = "Voir le coût du craft dans le tooltip"
|
||||
-- L["Show Default Profession Frame"] = ""
|
||||
-- L["Show Material Cost in Tooltip"] = ""
|
||||
-- L["Show Queue >>"] = ""
|
||||
-- L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = ""
|
||||
-- L["%s (%s profit)"] = ""
|
||||
-- L["Stage %d"] = ""
|
||||
-- L["Start Gathering"] = ""
|
||||
-- L["Stop Gathering"] = ""
|
||||
-- L["This is the default method Crafting will use for determining craft prices."] = ""
|
||||
-- L["This is the default method Crafting will use for determining material cost."] = ""
|
||||
L["Total"] = "Total"
|
||||
-- L["TSM Groups"] = ""
|
||||
-- L["Vendor"] = ""
|
||||
-- L["Visit Bank"] = ""
|
||||
-- L["Visit Guild Bank"] = ""
|
||||
-- L["Visit Vendor"] = ""
|
||||
L["Warning: The min restock quantity must be lower than the max restock quantity."] = "Attention: La quantité minimum de réapprovisionnement doit être inférieure à la quantité maximum de réapprovisionnement."
|
||||
L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = "Lorsque vous cliquez sur le bouton \"Réapprovisionnement\" chacun des craft sera ajouté à la file d'attente pour que vous ayez la quantité Max à réapprovisionner dans vos sacs. Exemple: Si vous avez 2x l'objet Y sur vous, et que vous avez choisi 5 comme quantité Max à réapprovisionner, l'objet Y sera ajouté 3x dans la file d'attente."
|
||||
-- L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = ""
|
||||
-- L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = ""
|
||||
@@ -0,0 +1,154 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/tradeskillmaster_crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - koKR
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "koKR")
|
||||
if not L then return end
|
||||
|
||||
L["All"] = "모두"
|
||||
L["Are you sure you want to reset all material prices to the default value?"] = "정말로 모든 재료 가격을 기본값으로 재설정하시겠습니까?" -- Needs review
|
||||
L["Ask Later"] = "나중에" -- Needs review
|
||||
L["Auction House"] = "경매장"
|
||||
L["Available Sources"] = "가능한 출처" -- Needs review
|
||||
L["Buy Vendor Items"] = "상인 아이템 구매" -- Needs review
|
||||
L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = "캐릭터 (가방/은행/경매장/우편) 무시:" -- Needs review
|
||||
L["Clear Filters"] = "필터 지우기" -- Needs review
|
||||
L["Clear Queue"] = "대기열 지우기" -- Needs review
|
||||
L["Click Start Gathering"] = "클릭 수집 시작" -- Needs review
|
||||
L["Collect Mail"] = "우편 수집" -- Needs review
|
||||
L["Cost"] = "비용"
|
||||
L["Could not get link for profession."] = "전문기술의 링크를 얻을 수 없습니다." -- Needs review
|
||||
L["Crafting Cost"] = "제작 비용"
|
||||
L["Crafting Material Cost"] = "제작 재료 비용" -- Needs review
|
||||
L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = "제작 작업은 그룹 아이템의 재보충과 관련된 설정을 포함하고 있습니다. 아래 상자에 새 작업 이름을 입력하고 '엔터'를 치면 새 제작 작업이 생성됩니다." -- Needs review
|
||||
L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = "여기서 지정한 값 보다 낮은 수익을 발생하는 아이템은 대기열에 등록되지 않습니다. 예를 들면, 'max(10g, 10% crafting)'는 최소한 10g 와 10% 수익을 보장합니다." -- Needs review
|
||||
L["Craft Next"] = "다음 제작"
|
||||
L["Craft Price Method"] = "제작 가격 방식" -- Needs review
|
||||
L["Craft Queue"] = "제작 대기열" -- Needs review
|
||||
L["Create Profession Groups"] = "전문기술 그룹 생성" -- Needs review
|
||||
L["Custom Price"] = "사용자 가격" -- Needs review
|
||||
L["Custom Price for this item."] = "이 아이템의 사용자 가격" -- Needs review
|
||||
L["Custom Price per Item"] = "아이템별 사용자 가격" -- Needs review
|
||||
L["Default Craft Price Method"] = "기본 제작 가격 방식" -- Needs review
|
||||
L["Default Material Cost Method"] = "기본 재료 비용 방식" -- Needs review
|
||||
L["Default Price"] = "기본 가격" -- Needs review
|
||||
L["Default Price Settings"] = "기본 가격 설정" -- Needs review
|
||||
L["Enchant Vellum"] = "마법부여 피지" -- Needs review
|
||||
L["Error creating operation. Operation with name '%s' already exists."] = "작업 생성 중 오류가 발생했습니다. 작업 이름 '%s'이(가) 이미 존재합니다." -- Needs review
|
||||
L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = "예상 비용: %s\\n예상 수익: %s" -- Needs review
|
||||
L["Exclude Crafts with a Cooldown from Craft Cost"] = "쿨다운을 가진 제작은 제작 비용에서 제외" -- Needs review
|
||||
L["Filters >>"] = "필터 >>" -- Needs review
|
||||
L["First select a crafter"] = "제작자를 선택하세요." -- Needs review
|
||||
L["Gather"] = "수집" -- Needs review
|
||||
L["Gather All Professions by Default if Only One Crafter"] = "제작자가 한 명이면 기본으로 모든 전문기술을 수집" -- Needs review
|
||||
L["Gathering"] = "수집" -- Needs review
|
||||
L["Gathering Crafting Mats"] = "제작 재료 수집" -- Needs review
|
||||
L["Gather Items"] = "아이템 수집" -- Needs review
|
||||
L["General"] = "일반" -- Needs review
|
||||
L["General Settings"] = "일반 설정"
|
||||
L["Give the new operation a name. A descriptive name will help you find this operation later."] = "새 작업의 이름을 지정하세요. 설명이 포함된 이름은 나중에 이 작업을 찾는 데 도움이 됩니다." -- Needs review
|
||||
L["Guilds (Guild Banks) to Ignore:"] = "길드 (길드 은행) 무시:" -- Needs review
|
||||
L["Here you can view and adjust how Crafting is calculating the price for this material."] = "여기서 재료 가격의 계산 방식을 확인하고 조절할 수 있습니다."
|
||||
L["<< Hide Queue"] = "<< 대기열 감추기" -- Needs review
|
||||
L["If checked, Crafting will never try and craft inks as intermediate crafts."] = "선택하면, 잉크는 중간 제작을 시도하지 않습니다." -- Needs review
|
||||
L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = "선택하면, 아이템을 제작하는 방법이 하나 이상이라면, 최저 제작 비용의 계산할 때 일일 쿨다운을 가진 제작 기술은 제외시킵니다." -- Needs review
|
||||
L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = "선택하면, 제작 대기열를 클릭하는 제작자가 한 명이라면 모든 전문기술의 재료를 수집합니다." -- Needs review
|
||||
L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = "선택하면, 제작 비용이 아이템의 툴팁에 표시됩니다."
|
||||
L["If checked, the material cost of items will be shown in the tooltip for the item."] = "선택하면, 재료 비용이 아이템의 툴팁에 표시됩니다." -- Needs review
|
||||
L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = "선택하면, TSM 제작 프레임이 열릴(전문기술 창을 열 때 ) 때 기본 전문기술 UI도 함께 열립니다." -- Needs review
|
||||
L["Inventory Settings"] = "인벤토리 설정"
|
||||
L["Item Name"] = "아이템 이름"
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = "추가되는 수량이 아래 수량보다 큰 경우만 아이템이 대기열에 추가됩니다. 제작 수량이 한 개 이상인 아이템만을 제작하기 원할 때 유용합니다." -- Needs review
|
||||
L["Item Value"] = "아이템 가치"
|
||||
L["Left-Click|r to add this craft to the queue."] = "Left-Click|r 대기열에 추가합니다." -- Needs review
|
||||
L["Link"] = "링크" -- Needs review
|
||||
L["Mailing Craft Mats to %s"] = "제작 재료를 %s에게 발송" -- Needs review
|
||||
L["Mail Items"] = "아이템 발송" -- Needs review
|
||||
L["Mat Cost"] = "재료 비용" -- Needs review
|
||||
L["Material Cost Options"] = "재료 비용 옵션"
|
||||
L["Material Name"] = "재료 이름" -- Needs review
|
||||
L["Materials:"] = "재료:" -- Needs review
|
||||
L["Mat Price"] = "재료 가격"
|
||||
L["Max Restock Quantity"] = "최대 수량"
|
||||
L["Minimum Profit"] = "최소 수익" -- Needs review
|
||||
L["Min Restock Quantity"] = "최소 수량"
|
||||
L["Name"] = "이름"
|
||||
L["Need"] = "필요"
|
||||
L["Needed Mats at Current Source"] = "현재 출처의 재료 필요" -- Needs review
|
||||
L["Never Queue Inks as Sub-Craftings"] = "잉크는 하위 제작 대기열 등록 안 함" -- Needs review
|
||||
L["New Operation"] = "새 작업" -- Needs review
|
||||
L["<None>"] = "<없음>"
|
||||
L["No Thanks"] = "아니요" -- Needs review
|
||||
L["Nothing To Gather"] = "수집할 아이템 없음" -- Needs review
|
||||
L["Nothing to Mail"] = "발송할 아이템 없음" -- Needs review
|
||||
L["Now select your profession(s)"] = "전문 직업 선택" -- Needs review
|
||||
L["Number Owned"] = "소유 개수"
|
||||
L["Opens the Crafting window to the first profession."] = "첫 전문기술 창을 엽니다." -- Needs review
|
||||
L["Operation Name"] = "작업 이름" -- Needs review
|
||||
L["Operations"] = "작업" -- Needs review
|
||||
L["Options"] = "옵션"
|
||||
L["Override Default Craft Price Method"] = "기본 제작 가격 방식 오버라이드" -- Needs review
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = "수익을 계산할 때 구매가에서 뺄 비율 (경매장 수수료 5%의 손실 보상)"
|
||||
L["Please switch to the Shopping Tab to perform the gathering search."] = "수집 검색을 수행하려면 쇼핑 탭으로 전환하세요." -- Needs review
|
||||
L["Price:"] = "가격:"
|
||||
L["Price Settings"] = "가격 설정"
|
||||
L["Price Source Filter"] = "가격 출처 필터" -- Needs review
|
||||
L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = "전문 직업 %s 데이터를 %s에게서 찾을 수 없습니다. 해당 캐릭터로 로그인한 후 전문기술 창을 열면 문제를 해결할 수 있습니다." -- Needs review
|
||||
L["Profession Filter"] = "전문기술 필터" -- Needs review
|
||||
L["Professions"] = "전문기술" -- Needs review
|
||||
L["Professions Used In"] = "사용 전문기술" -- Needs review
|
||||
L["Profit"] = "수익"
|
||||
L["Profit Deduction"] = "수익 공제" -- Needs review
|
||||
L["Profit (Total Profit):"] = "수익 (총수익):" -- Needs review
|
||||
L["Queue"] = "대기열" -- Needs review
|
||||
L["Relationships"] = "관계" -- Needs review
|
||||
L["Reset All Custom Prices to Default"] = "모든 사용자 가격을 기본으로 재설정" -- Needs review
|
||||
L["Reset all Custom Prices to Default Price Source."] = "모든 사용자 가격을 기본 가격 출처로 재설정" -- Needs review
|
||||
L["Resets the material price for this item to the defualt value."] = "이 아이템의 재료 가격을 기본 가격으로 재설정합니다." -- Needs review
|
||||
L["Reset to Default"] = "기본으로 재설정" -- Needs review
|
||||
L["Restocking to a max of %d (min of %d) with a min profit."] = "최소 수익으로 최대 %d (최소 %d) 재보충" -- Needs review
|
||||
L["Restocking to a max of %d (min of %d) with no min profit."] = "최소 수익 없이 최대 %d (최소 %d) 재보충" -- Needs review
|
||||
L["Restock Quantity Settings"] = "재보충 수량 설정" -- Needs review
|
||||
L["Restock Selected Groups"] = "선택된 그룹 재보충" -- Needs review
|
||||
L["Restock Settings"] = "재보충 설정" -- Needs review
|
||||
L["Right-Click|r to subtract this craft from the queue."] = "Right-Click|r 대기열에서 제거합니다." -- Needs review
|
||||
L["%s Avail"] = "%s 가능" -- Needs review
|
||||
L["Search"] = "검색" -- Needs review
|
||||
L["Search for Mats"] = "재료 검색" -- Needs review
|
||||
L["Select Crafter"] = "제작자 선택" -- Needs review
|
||||
L["Select one of your characters' professions to browse."] = "캐릭터의 전문기술중 하나를 선택하세요." -- Needs review
|
||||
L["Set Minimum Profit"] = "최소 수익 설정" -- Needs review
|
||||
L["Shift-Left-Click|r to queue all you can craft."] = "Shift-Left-Click|r 제작 가능한 모든 기술을 대기열에 추가합니다." -- Needs review
|
||||
L["Shift-Right-Click|r to remove all from queue."] = "Shift-Right-Click|r 모두 대기열에서 제거합니다." -- Needs review
|
||||
L["Show Crafting Cost in Tooltip"] = "툴팁에 제작 비용 표시"
|
||||
L["Show Default Profession Frame"] = "기본 전문기술 프레임 표시" -- Needs review
|
||||
L["Show Material Cost in Tooltip"] = "툴팁에 재료 비용 표시" -- Needs review
|
||||
L["Show Queue >>"] = "대기열 보기 >>" -- Needs review
|
||||
L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = "'%s'은(는) 잘못된 작업입니다! 최소 재보충 수량(%d)이 최대 재보충 수량(%d)보다 큽니다." -- Needs review
|
||||
L["%s (%s profit)"] = "%s (%s 수익)" -- Needs review
|
||||
L["Stage %d"] = "단계 %d" -- Needs review
|
||||
L["Start Gathering"] = "수집 시작" -- Needs review
|
||||
L["Stop Gathering"] = "수집 중지" -- Needs review
|
||||
L["This is the default method Crafting will use for determining craft prices."] = "제작 가격을 결정하는 데 사용할 기본 방식입니다." -- Needs review
|
||||
L["This is the default method Crafting will use for determining material cost."] = "재료 가격을 결정하는 데 사용할 기본 방식입니다." -- Needs review
|
||||
L["Total"] = "전체"
|
||||
L["TSM Groups"] = "TSM 그룹" -- Needs review
|
||||
L["Vendor"] = "상인"
|
||||
L["Visit Bank"] = "은행 방문" -- Needs review
|
||||
L["Visit Guild Bank"] = "길드 은행 방문" -- Needs review
|
||||
L["Visit Vendor"] = "상인 방문" -- Needs review
|
||||
L["Warning: The min restock quantity must be lower than the max restock quantity."] = "경고: 최소 재보충 수량은 최대 재보충 수량보다 작아야 합니다."
|
||||
L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = "\\\"재보충 대기열\\\" 버튼을 클릭할 때 최종적으로 얻게 될 수량에 맞춰 대기열에 등록됩니다. 예를 들면, 이미 2개를 소유하고 있는 아이템을 4개로 설정하면 대기열에는 2개만 추가됩니다." -- Needs review
|
||||
L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = "자동으로 이 전문기술에 대한 몇 가지 그룹을 생성하시겠습니까?" -- Needs review
|
||||
L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = "재료 비용의 계산 방법을 보거나 조정하려면 아래의 스크롤 테이블에 있는 아이템을 클릭하세요."
|
||||
@@ -0,0 +1,155 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/TradeSkillMaster_Crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - ptBR
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "ptBR")
|
||||
if not L then return end
|
||||
|
||||
L["All"] = "Todos" -- Needs review
|
||||
-- L["Are you sure you want to reset all material prices to the default value?"] = ""
|
||||
-- L["Ask Later"] = ""
|
||||
L["Auction House"] = "Casa de Leilão" -- Needs review
|
||||
-- L["Available Sources"] = ""
|
||||
-- L["Buy Vendor Items"] = ""
|
||||
-- L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = ""
|
||||
-- L["Clear Filters"] = ""
|
||||
L["Clear Queue"] = "Limpar fila"
|
||||
-- L["Click Start Gathering"] = ""
|
||||
-- L["Collect Mail"] = ""
|
||||
L["Cost"] = "Custo" -- Needs review
|
||||
-- L["Could not get link for profession."] = ""
|
||||
L["Crafting Cost"] = "Custo de Produção"
|
||||
-- L["Crafting Material Cost"] = ""
|
||||
-- L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = ""
|
||||
-- L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = ""
|
||||
L["Craft Next"] = "Produzir próximo"
|
||||
-- L["Craft Price Method"] = ""
|
||||
-- L["Craft Queue"] = ""
|
||||
-- L["Create Profession Groups"] = ""
|
||||
-- L["Custom Price"] = ""
|
||||
-- L["Custom Price for this item."] = ""
|
||||
-- L["Custom Price per Item"] = ""
|
||||
-- L["Default Craft Price Method"] = ""
|
||||
-- L["Default Material Cost Method"] = ""
|
||||
-- L["Default Price"] = ""
|
||||
-- L["Default Price Settings"] = ""
|
||||
-- L["Enchant Vellum"] = ""
|
||||
-- L["Error creating operation. Operation with name '%s' already exists."] = ""
|
||||
--[==[ L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = "" ]==]
|
||||
-- L["Exclude Crafts with a Cooldown from Craft Cost"] = ""
|
||||
-- L["Filters >>"] = ""
|
||||
-- L["First select a crafter"] = ""
|
||||
-- L["Gather"] = ""
|
||||
-- L["Gather All Professions by Default if Only One Crafter"] = ""
|
||||
L["Gathering"] = "Coleta"
|
||||
-- L["Gathering Crafting Mats"] = ""
|
||||
-- L["Gather Items"] = ""
|
||||
L["General"] = "Geral"
|
||||
L["General Settings"] = "Configurações Gerais" -- Needs review
|
||||
-- L["Give the new operation a name. A descriptive name will help you find this operation later."] = ""
|
||||
-- L["Guilds (Guild Banks) to Ignore:"] = ""
|
||||
L["Here you can view and adjust how Crafting is calculating the price for this material."] = "Aqui você pode ver e ajustar como o Produção calcula o preço deste material." -- Needs review
|
||||
L["<< Hide Queue"] = "<< Esconder a fila" -- Needs review
|
||||
-- L["If checked, Crafting will never try and craft inks as intermediate crafts."] = ""
|
||||
-- L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = ""
|
||||
-- L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = ""
|
||||
L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = "Se marcado, o custo de produção dos itens será exibido na dica de interface do item." -- Needs review
|
||||
-- L["If checked, the material cost of items will be shown in the tooltip for the item."] = ""
|
||||
-- L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = ""
|
||||
L["Inventory Settings"] = "Configurações de Invetário."
|
||||
L["Item Name"] = "Nome do Item" -- Needs review
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = "Itens somente serão adicionados à fila se o número a ser adicionado for maior que este número. Isto é útil se você não quer se preocupar em produzir um único item, por exemplo."
|
||||
L["Item Value"] = "Valor do Item"
|
||||
-- L["Left-Click|r to add this craft to the queue."] = ""
|
||||
-- L["Link"] = ""
|
||||
-- L["Mailing Craft Mats to %s"] = ""
|
||||
-- L["Mail Items"] = ""
|
||||
-- L["Mat Cost"] = ""
|
||||
L["Material Cost Options"] = "Opções do Custo de Material" -- Needs review
|
||||
-- L["Material Name"] = ""
|
||||
-- L["Materials:"] = ""
|
||||
L["Mat Price"] = "Preço do Material" -- Needs review
|
||||
L["Max Restock Quantity"] = "Quatindade máxima de reestocagem" -- Needs review
|
||||
-- L["Minimum Profit"] = ""
|
||||
L["Min Restock Quantity"] = "Quantidade mínima para reabastecimento "
|
||||
L["Name"] = "Nome"
|
||||
L["Need"] = "Precisa" -- Needs review
|
||||
-- L["Needed Mats at Current Source"] = ""
|
||||
-- L["Never Queue Inks as Sub-Craftings"] = ""
|
||||
-- L["New Operation"] = ""
|
||||
-- L["<None>"] = ""
|
||||
-- L["No Thanks"] = ""
|
||||
-- L["Nothing To Gather"] = ""
|
||||
-- L["Nothing to Mail"] = ""
|
||||
-- L["Now select your profession(s)"] = ""
|
||||
L["Number Owned"] = "Número possuído" -- Needs review
|
||||
-- L["Opens the Crafting window to the first profession."] = ""
|
||||
-- L["Operation Name"] = ""
|
||||
-- L["Operations"] = ""
|
||||
L["Options"] = "Opções" -- Needs review
|
||||
-- L["Override Default Craft Price Method"] = ""
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = "Porcentagem a ser subtraída do arremate quando calcular os lucros (5% compensará a comissão da CL)"
|
||||
-- L["Please switch to the Shopping Tab to perform the gathering search."] = ""
|
||||
L["Price:"] = "Preço:" -- Needs review
|
||||
L["Price Settings"] = "Configurações de Preço"
|
||||
-- L["Price Source Filter"] = ""
|
||||
-- L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = ""
|
||||
-- L["Profession Filter"] = ""
|
||||
-- L["Professions"] = ""
|
||||
-- L["Professions Used In"] = ""
|
||||
L["Profit"] = "Lucro" -- Needs review
|
||||
L["Profit Deduction"] = "Redução do Lucro" -- Needs review
|
||||
-- L["Profit (Total Profit):"] = ""
|
||||
-- L["Queue"] = ""
|
||||
-- L["Relationships"] = ""
|
||||
-- L["Reset All Custom Prices to Default"] = ""
|
||||
-- L["Reset all Custom Prices to Default Price Source."] = ""
|
||||
-- L["Resets the material price for this item to the defualt value."] = ""
|
||||
-- L["Reset to Default"] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with a min profit."] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with no min profit."] = ""
|
||||
-- L["Restock Quantity Settings"] = ""
|
||||
-- L["Restock Selected Groups"] = ""
|
||||
-- L["Restock Settings"] = ""
|
||||
-- L["Right-Click|r to subtract this craft from the queue."] = ""
|
||||
-- L["%s Avail"] = ""
|
||||
-- L["Search"] = ""
|
||||
-- L["Search for Mats"] = ""
|
||||
-- L["Select Crafter"] = ""
|
||||
-- L["Select one of your characters' professions to browse."] = ""
|
||||
-- L["Set Minimum Profit"] = ""
|
||||
-- L["Shift-Left-Click|r to queue all you can craft."] = ""
|
||||
-- L["Shift-Right-Click|r to remove all from queue."] = ""
|
||||
L["Show Crafting Cost in Tooltip"] = "Mostar Custo de Produção na Dica de Interface" -- Needs review
|
||||
-- L["Show Default Profession Frame"] = ""
|
||||
-- L["Show Material Cost in Tooltip"] = ""
|
||||
L["Show Queue >>"] = "Mostrar Fila >>" -- Needs review
|
||||
-- L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = ""
|
||||
L["%s (%s profit)"] = "%s (%s lucro)" -- Needs review
|
||||
-- L["Stage %d"] = ""
|
||||
-- L["Start Gathering"] = ""
|
||||
-- L["Stop Gathering"] = ""
|
||||
-- L["This is the default method Crafting will use for determining craft prices."] = ""
|
||||
-- L["This is the default method Crafting will use for determining material cost."] = ""
|
||||
L["Total"] = "Total" -- Needs review
|
||||
-- L["TSM Groups"] = ""
|
||||
L["Vendor"] = "Vendedor"
|
||||
-- L["Visit Bank"] = ""
|
||||
-- L["Visit Guild Bank"] = ""
|
||||
-- L["Visit Vendor"] = ""
|
||||
L["Warning: The min restock quantity must be lower than the max restock quantity."] = "Atenção: A quantidade de reabastecimento mínima deve ser menor que a quantidade de reabastecimento máxima." -- Needs review
|
||||
L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = "Quando você clica no botão \"Fila de Reabastecimento\" serão enfileirados a quantidade suficiente de cada produto para que você tenha esse número máximo em mãos. Por exemplo, se você tem 2 do item X em mãos e configurou para 4, mais 2 serão adicionados à fila de produção." -- Needs review
|
||||
-- L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = ""
|
||||
L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = "Você pode clicar em uma das linhas da tabela rolante abaixo para visualizar ou ajustar como o preço de um material é calculado."
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/tradeskillmaster_crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - ruRU
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "ruRU")
|
||||
if not L then return end
|
||||
|
||||
L["All"] = "Все"
|
||||
L["Are you sure you want to reset all material prices to the default value?"] = "Вы уверены, что хотите установить все цены на материалы по умолчанию?"
|
||||
L["Ask Later"] = "Спросить позже"
|
||||
L["Auction House"] = "Аукцион"
|
||||
L["Available Sources"] = "Доступные источники"
|
||||
L["Buy Vendor Items"] = "Купить у вендора"
|
||||
L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = "Игнорировать (Сумки/Банк/Аукцион/Почту) персонажа:"
|
||||
L["Clear Filters"] = "Очистить фильтры"
|
||||
L["Clear Queue"] = "Очистить очередь"
|
||||
L["Click Start Gathering"] = "Нажмите для начала сбора"
|
||||
L["Collect Mail"] = "Сбор почты"
|
||||
L["Cost"] = "Стоимость"
|
||||
L["Could not get link for profession."] = "Не удалось получить ссылку профессии"
|
||||
L["Crafting Cost"] = "Стоимость создания"
|
||||
L["Crafting Material Cost"] = "Стоимость материалов для крафта"
|
||||
L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = "Crafting операции содержат настройки по пополнению предметов в группе. Введите название новой операции в поле ниже и нажмите 'Enter' для создания новой Crafting операции."
|
||||
L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = "Крафт с прибылью менее указанного значения не будет добавлен в очередь. Пример: минимальная прибыль 'максимум(10з, 10% крафта)' чтобы получить минимум 10з или 10% прибыли."
|
||||
L["Craft Next"] = "Создать следующее"
|
||||
L["Craft Price Method"] = "Расчет цены крафта" -- Needs review
|
||||
L["Craft Queue"] = "Очередь крафта"
|
||||
L["Create Profession Groups"] = "Создать группу профессии" -- Needs review
|
||||
L["Custom Price"] = "Своя цена"
|
||||
L["Custom Price for this item."] = "Своя цена за этот предмет"
|
||||
L["Custom Price per Item"] = "Своя цена за предмет"
|
||||
L["Default Craft Price Method"] = "Метод расчета цены по умолчанию"
|
||||
L["Default Material Cost Method"] = "Метод расчета цены материалов по умолчанию"
|
||||
L["Default Price"] = "Цена по умолчанию"
|
||||
L["Default Price Settings"] = "Настройка цены по умолчанию" -- Needs review
|
||||
L["Enchant Vellum"] = "Материал для наложения чар" -- Needs review
|
||||
L["Error creating operation. Operation with name '%s' already exists."] = "Ошибка создания операции. Операция с названием '%s' уже существует." -- Needs review
|
||||
L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = [=[Оценочная стоимость: %s
|
||||
Оценочная прибыль: %s]=]
|
||||
L["Exclude Crafts with a Cooldown from Craft Cost"] = "Исключать крафты с временем восстановления из цены крафта" -- Needs review
|
||||
L["Filters >>"] = "Фильтры >>"
|
||||
-- L["First select a crafter"] = ""
|
||||
L["Gather"] = "Собрать" -- Needs review
|
||||
L["Gather All Professions by Default if Only One Crafter"] = "Собрать все профессии по умолчанию только для одного персонажа" -- Needs review
|
||||
L["Gathering"] = "Собрать"
|
||||
L["Gathering Crafting Mats"] = "Сбор материалов для крафта" -- Needs review
|
||||
L["Gather Items"] = "Собрать предметы"
|
||||
L["General"] = "Общее"
|
||||
L["General Settings"] = "Общие настройки"
|
||||
L["Give the new operation a name. A descriptive name will help you find this operation later."] = "Дайте новое имя для операции. Оно поможет найти вам её позже." -- Needs review
|
||||
L["Guilds (Guild Banks) to Ignore:"] = "Игнорировать (Гильд. Банк) гильдию:" -- Needs review
|
||||
L["Here you can view and adjust how Crafting is calculating the price for this material."] = "Здесь можно увидеть и изменить как Crafting считает цены на этот материал."
|
||||
L["<< Hide Queue"] = "Скрыть очередь"
|
||||
-- L["If checked, Crafting will never try and craft inks as intermediate crafts."] = ""
|
||||
L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = "При расчете самой низкой стоимости крафта, выбирать метод получения материала без времени восстановления (если такой имеется)" -- Needs review
|
||||
-- L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = ""
|
||||
L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = "Отметьте для показа стоимости создания предмета в подсказке."
|
||||
L["If checked, the material cost of items will be shown in the tooltip for the item."] = "Показывать стоимость материалов для изготовления в подсказке" -- Needs review
|
||||
L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = "Показывать фрейм TSM_Crafting (если профессия открыта), стандартное UI профессии тоже будет показано" -- Needs review
|
||||
L["Inventory Settings"] = "Настройки инвентаря"
|
||||
L["Item Name"] = "Название предмета"
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = "Предметы будут добавлены в очередь только если их кол-во больше этого числа. Полезно, если вы не хотите создавать единичные предметы."
|
||||
L["Item Value"] = "Стоимость предмета" -- Needs review
|
||||
L["Left-Click|r to add this craft to the queue."] = "ЛКМ|r для добавления в очередь" -- Needs review
|
||||
L["Link"] = "Ссылка" -- Needs review
|
||||
L["Mailing Craft Mats to %s"] = "Отправить материалы для крафта %s" -- Needs review
|
||||
L["Mail Items"] = "Отправить предметы" -- Needs review
|
||||
L["Mat Cost"] = "Стоимость материалов" -- Needs review
|
||||
L["Material Cost Options"] = "Настройки цен материалов"
|
||||
L["Material Name"] = "Название материала" -- Needs review
|
||||
L["Materials:"] = "Материалы:" -- Needs review
|
||||
L["Mat Price"] = "Цена материалов"
|
||||
L["Max Restock Quantity"] = "Макс. кол-во для добавления в очередь"
|
||||
L["Minimum Profit"] = "Минимальная прибыль" -- Needs review
|
||||
L["Min Restock Quantity"] = "Мин. кол-во для добавления в очередь"
|
||||
L["Name"] = "Название"
|
||||
L["Need"] = "Требуется"
|
||||
-- L["Needed Mats at Current Source"] = ""
|
||||
-- L["Never Queue Inks as Sub-Craftings"] = ""
|
||||
L["New Operation"] = "Новая операция" -- Needs review
|
||||
L["<None>"] = "Пусто"
|
||||
L["No Thanks"] = "Нет спасибо" -- Needs review
|
||||
L["Nothing To Gather"] = "Нечего собирать" -- Needs review
|
||||
L["Nothing to Mail"] = "Нечего отправлять" -- Needs review
|
||||
L["Now select your profession(s)"] = "Сейчас выбраны профессии" -- Needs review
|
||||
L["Number Owned"] = "Кол-во Имеющихся" -- Needs review
|
||||
L["Opens the Crafting window to the first profession."] = "Открыть окошко крафта для первой профессии" -- Needs review
|
||||
L["Operation Name"] = "Название операциии" -- Needs review
|
||||
L["Operations"] = "Операции" -- Needs review
|
||||
L["Options"] = "Настройки"
|
||||
L["Override Default Craft Price Method"] = "Поменять метод стоимости крафта по умолчанию" -- Needs review
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = "Процент, вычитаемый из цены выкупа при вычислении прибыли (5% компенсируют налог аукциона)."
|
||||
L["Please switch to the Shopping Tab to perform the gathering search."] = "Переключитесь на вкладку Shopping для поиска материалов" -- Needs review
|
||||
L["Price:"] = "Цена:"
|
||||
L["Price Settings"] = "Настройки цены"
|
||||
L["Price Source Filter"] = "Фильтр источника цены" -- Needs review
|
||||
-- L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = ""
|
||||
L["Profession Filter"] = "Фильтр профессии" -- Needs review
|
||||
L["Professions"] = "Профессии" -- Needs review
|
||||
L["Professions Used In"] = "Используется в профессиях" -- Needs review
|
||||
L["Profit"] = "Прибыль"
|
||||
L["Profit Deduction"] = "Вычисление прибыли"
|
||||
L["Profit (Total Profit):"] = "Прибыль (Всего прибыль):" -- Needs review
|
||||
L["Queue"] = "Очередь" -- Needs review
|
||||
L["Relationships"] = "Связи" -- Needs review
|
||||
L["Reset All Custom Prices to Default"] = "Сбросить все свои цены на цены по умолчанию" -- Needs review
|
||||
-- L["Reset all Custom Prices to Default Price Source."] = ""
|
||||
L["Resets the material price for this item to the defualt value."] = "Сбросить цену предмета на стандартную" -- Needs review
|
||||
L["Reset to Default"] = "Сбросить" -- Needs review
|
||||
-- L["Restocking to a max of %d (min of %d) with a min profit."] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with no min profit."] = ""
|
||||
-- L["Restock Quantity Settings"] = ""
|
||||
-- L["Restock Selected Groups"] = ""
|
||||
-- L["Restock Settings"] = ""
|
||||
-- L["Right-Click|r to subtract this craft from the queue."] = ""
|
||||
L["%s Avail"] = "%s Выгода"
|
||||
L["Search"] = "Поиск" -- Needs review
|
||||
L["Search for Mats"] = "Поиск материалов" -- Needs review
|
||||
L["Select Crafter"] = "Выбор персонажа" -- Needs review
|
||||
-- L["Select one of your characters' professions to browse."] = ""
|
||||
L["Set Minimum Profit"] = "Установить минимальную прибыль" -- Needs review
|
||||
L["Shift-Left-Click|r to queue all you can craft."] = "Shift-Left-Click|r для добавления в очередь всех крафтов" -- Needs review
|
||||
L["Shift-Right-Click|r to remove all from queue."] = "Shift-Right-Click|r для очистки очереди" -- Needs review
|
||||
L["Show Crafting Cost in Tooltip"] = "Показывать стоимость создания в подсказке"
|
||||
L["Show Default Profession Frame"] = "Отображать стандартное окно профессии" -- Needs review
|
||||
L["Show Material Cost in Tooltip"] = "Отображать цену материалов в подсказке" -- Needs review
|
||||
L["Show Queue >>"] = "Отображать очередь >>" -- Needs review
|
||||
-- L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = ""
|
||||
L["%s (%s profit)"] = "%s (%s прибыль)"
|
||||
L["Stage %d"] = "Этап %d" -- Needs review
|
||||
L["Start Gathering"] = "Начать сбор" -- Needs review
|
||||
L["Stop Gathering"] = "Останвоить сбор" -- Needs review
|
||||
-- L["This is the default method Crafting will use for determining craft prices."] = ""
|
||||
L["This is the default method Crafting will use for determining material cost."] = "Для определения стоимости материала будет использован стандартный метод" -- Needs review
|
||||
L["Total"] = "Всего"
|
||||
L["TSM Groups"] = "TSM Группы" -- Needs review
|
||||
L["Vendor"] = "Торговец"
|
||||
L["Visit Bank"] = "Посетите банк" -- Needs review
|
||||
L["Visit Guild Bank"] = "Посетите Гильд. Банк" -- Needs review
|
||||
L["Visit Vendor"] = "Посетите вендора" -- Needs review
|
||||
L["Warning: The min restock quantity must be lower than the max restock quantity."] = "Внимание! Минимальное кол-во предметов, добавляемых в очередь, должно быть меньше максимального."
|
||||
L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = "При нажатии на кнопку \"Пополнить очередь\" в очередь будет добавлено максимальное количество доступных крафтов. Например, у вас есть 2 крафта Х, а макс. кол-во задано 4, в очередь будет добавлено 2."
|
||||
L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = "Хотите автоматически создать группы профессии в TradeSkillMaster?" -- Needs review
|
||||
L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = "Можете клинуть на одну из строк в пролистывающейся таблице ниже, чтобы просмотреть или настроить подсчёт цены для материала."
|
||||
@@ -0,0 +1,155 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/tradeskillmaster_crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - zhCN
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "zhCN")
|
||||
if not L then return end
|
||||
|
||||
L["All"] = "全部"
|
||||
L["Are you sure you want to reset all material prices to the default value?"] = "您确定要重置所有材料价格为默认值吗?"
|
||||
L["Ask Later"] = "稍后询问"
|
||||
L["Auction House"] = "拍卖行"
|
||||
L["Available Sources"] = "可用来源"
|
||||
L["Buy Vendor Items"] = "购买NPC物品"
|
||||
L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = "角色(包/银行/拍卖行/邮件)忽略:"
|
||||
L["Clear Filters"] = "清除筛选"
|
||||
L["Clear Queue"] = "清除队列"
|
||||
L["Click Start Gathering"] = "开始收集"
|
||||
L["Collect Mail"] = "搜集邮件"
|
||||
L["Cost"] = "成本"
|
||||
L["Could not get link for profession."] = "无法得到专业链接"
|
||||
L["Crafting Cost"] = "制造成本"
|
||||
L["Crafting Material Cost"] = "制造原料成本"
|
||||
L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = "Crafting的操作包含分组的补货设置。在下框内输入新操作的名称,点击“确认”来创建一个新的制作操作。"
|
||||
L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = "操作不会在队列里添加任何利润低于这个值的物品。比如,最低利润 'max(10g, 10% crafting)' 会保证10g且10%的利润。"
|
||||
L["Craft Next"] = "制造下一个"
|
||||
L["Craft Price Method"] = "制造价格设定"
|
||||
L["Craft Queue"] = "制造队列"
|
||||
L["Create Profession Groups"] = "创建一个专业分组"
|
||||
L["Custom Price"] = "自定义价格"
|
||||
L["Custom Price for this item."] = "这个物品的自定义价格"
|
||||
L["Custom Price per Item"] = "单件物品的自定义价格"
|
||||
L["Default Craft Price Method"] = "默认制作价格设定"
|
||||
L["Default Material Cost Method"] = "默认原料成本设定"
|
||||
L["Default Price"] = "默认价格"
|
||||
L["Default Price Settings"] = "默认价格设置"
|
||||
L["Enchant Vellum"] = "附魔羊皮纸"
|
||||
L["Error creating operation. Operation with name '%s' already exists."] = "创建操作失败。操作名称 '%s' 已经存在。"
|
||||
L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = [=[估算成本: %s
|
||||
估算利润: %s]=]
|
||||
L["Exclude Crafts with a Cooldown from Craft Cost"] = "从制造成本中排除正在冷却的制造项目"
|
||||
L["Filters >>"] = "筛选 >>"
|
||||
L["First select a crafter"] = "首先选择一个制造者"
|
||||
L["Gather"] = "收集"
|
||||
L["Gather All Professions by Default if Only One Crafter"] = "如果只有一个制作者将以默认的方式对所有专业收集"
|
||||
L["Gathering"] = "收集"
|
||||
L["Gathering Crafting Mats"] = "收集制造原料"
|
||||
L["Gather Items"] = "收集物品"
|
||||
L["General"] = "基本设置"
|
||||
L["General Settings"] = "基本设置"
|
||||
L["Give the new operation a name. A descriptive name will help you find this operation later."] = "为新操作命名,这个描述性的名称将帮助你在以后方便的找到这个操作"
|
||||
L["Guilds (Guild Banks) to Ignore:"] = "公会(公会银行)忽略:"
|
||||
L["Here you can view and adjust how Crafting is calculating the price for this material."] = "你可以在这里查看和调整队列中原料价格的计算方法。"
|
||||
L["<< Hide Queue"] = "<< 隐藏制造队列"
|
||||
L["If checked, Crafting will never try and craft inks as intermediate crafts."] = "如果勾选此项,将不会把墨水当作中间产物来制造。"
|
||||
L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = "如果勾选此项,当计算可以通过多种方法制造出的产品的成本时,会排出需要有一天冷却时间的那种制造方法。"
|
||||
L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = "如果勾选此项,如果对于制造队列只有一个制造者,那么点击收集会收集该制造者的所有专业。"
|
||||
L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = "如果勾选,在提示信息中将会显示该物品的制造成本。"
|
||||
L["If checked, the material cost of items will be shown in the tooltip for the item."] = "在鼠标提示中显示该物品的制造成本。"
|
||||
L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = "如果勾选此项,当你打开一个专业TSM_Crafting界面出现时,系统默认的专业界面也会出现。"
|
||||
L["Inventory Settings"] = "库存设置"
|
||||
L["Item Name"] = "物品名称"
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = "如果原数值比添加的数值大,制造项目将只添加到队列。如果你只需要一个特例而不影响其他设置这是个非常有用的设置。"
|
||||
L["Item Value"] = "物品价值"
|
||||
L["Left-Click|r to add this craft to the queue."] = "左键点击|r 将该制造添加到队列。"
|
||||
L["Link"] = "链接"
|
||||
L["Mailing Craft Mats to %s"] = "邮寄制造原料给 %s"
|
||||
L["Mail Items"] = "邮寄物品"
|
||||
L["Mat Cost"] = "原料花费"
|
||||
L["Material Cost Options"] = "原料成本选项"
|
||||
L["Material Name"] = "原料名称"
|
||||
L["Materials:"] = "原料:"
|
||||
L["Mat Price"] = "原料价格"
|
||||
L["Max Restock Quantity"] = "最大补货量"
|
||||
L["Minimum Profit"] = "最低利润"
|
||||
L["Min Restock Quantity"] = "最小补货量"
|
||||
L["Name"] = "名称"
|
||||
L["Need"] = "需要"
|
||||
L["Needed Mats at Current Source"] = "需要当前来源的原料"
|
||||
L["Never Queue Inks as Sub-Craftings"] = "不将墨水作为产品添加到队列里"
|
||||
L["New Operation"] = "新操作"
|
||||
L["<None>"] = "<无>"
|
||||
L["No Thanks"] = "不,谢谢"
|
||||
L["Nothing To Gather"] = "没有物品收集"
|
||||
L["Nothing to Mail"] = "没有物品邮寄"
|
||||
L["Now select your profession(s)"] = "现在选择你的专业"
|
||||
L["Number Owned"] = "拥有数量"
|
||||
L["Opens the Crafting window to the first profession."] = "打开第一专业的制作窗口"
|
||||
L["Operation Name"] = "操作名称"
|
||||
L["Operations"] = "操作"
|
||||
L["Options"] = "选项"
|
||||
L["Override Default Craft Price Method"] = "覆盖默认的产品价格模式"
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = "计算利润时从一口价中减去百分之几(拍卖行手续费为5%)。"
|
||||
L["Please switch to the Shopping Tab to perform the gathering search."] = "请切换到Shopping(购买)标签执行收集搜索。"
|
||||
L["Price:"] = "价格:"
|
||||
L["Price Settings"] = "价格设置"
|
||||
L["Price Source Filter"] = "价格来源筛选器"
|
||||
L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = "在 %s 上没有发现 %s 的专业数据。登录这个角色打开其专业界面可能解决这个问题。"
|
||||
L["Profession Filter"] = "专业筛选器"
|
||||
L["Professions"] = "专业"
|
||||
L["Professions Used In"] = "涉及专业"
|
||||
L["Profit"] = "利润"
|
||||
L["Profit Deduction"] = "利润扣除"
|
||||
L["Profit (Total Profit):"] = "利润(总利润):"
|
||||
L["Queue"] = "制造队列"
|
||||
L["Relationships"] = "关联"
|
||||
L["Reset All Custom Prices to Default"] = "重置所有自定义价格为默认值"
|
||||
L["Reset all Custom Prices to Default Price Source."] = "重置所有自定义价格为默认价格来源。"
|
||||
L["Resets the material price for this item to the defualt value."] = "重置这件物品的原料成本为默认值"
|
||||
L["Reset to Default"] = "重置为默认"
|
||||
L["Restocking to a max of %d (min of %d) with a min profit."] = "以最低利润对 %d 进行最大(最小)补货"
|
||||
L["Restocking to a max of %d (min of %d) with no min profit."] = "以最高利润对 %d 进行最大(最小)补货(?)"
|
||||
L["Restock Quantity Settings"] = "补货数量设置"
|
||||
L["Restock Selected Groups"] = "补充所选分组货物"
|
||||
L["Restock Settings"] = "补货设置"
|
||||
L["Right-Click|r to subtract this craft from the queue."] = "右键点击|r 从队列中移除该制造"
|
||||
L["%s Avail"] = "%s 效益"
|
||||
L["Search"] = "搜索"
|
||||
L["Search for Mats"] = "搜索原料"
|
||||
L["Select Crafter"] = "选择制作者"
|
||||
L["Select one of your characters' professions to browse."] = "浏览角色的一个专业"
|
||||
L["Set Minimum Profit"] = "设置最低利润"
|
||||
L["Shift-Left-Click|r to queue all you can craft."] = "Shift+左键|r 添加最大制作数量到队列。"
|
||||
L["Shift-Right-Click|r to remove all from queue."] = "Shift+右键|r 从队列中移除所有制作。"
|
||||
L["Show Crafting Cost in Tooltip"] = "提示制造成本"
|
||||
L["Show Default Profession Frame"] = "显示默认的专业界面"
|
||||
L["Show Material Cost in Tooltip"] = "在提示中显示成本"
|
||||
L["Show Queue >>"] = "显示制造队列 >>"
|
||||
L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = "'%s'是一个无效的操作! 因为 %d 的最小补货数大于最大补货数。"
|
||||
L["%s (%s profit)"] = "%s (%s 利润)"
|
||||
L["Stage %d"] = "阶段 %d"
|
||||
L["Start Gathering"] = "开始收集"
|
||||
L["Stop Gathering"] = "收集结束"
|
||||
L["This is the default method Crafting will use for determining craft prices."] = "这是默认的生产方法,将用于计算成品价格。"
|
||||
L["This is the default method Crafting will use for determining material cost."] = "这是默认的生产方法,将用于计算原料成本。"
|
||||
L["Total"] = "总计"
|
||||
L["TSM Groups"] = "TSM分组"
|
||||
L["Vendor"] = "NPC"
|
||||
L["Visit Bank"] = "通过银行"
|
||||
L["Visit Guild Bank"] = "通过公会银行"
|
||||
L["Visit Vendor"] = "通过NPC"
|
||||
L["Warning: The min restock quantity must be lower than the max restock quantity."] = "警告:最低补货量必须小于最大补货量。"
|
||||
L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = "当你点击\"补货队列\"按钮时,只添加最大补货量减去手上拥有量的差。例如,你设置的最大补货为4件,并且手头上有2件,那么只会添加2件的制造任务到制造队列。"
|
||||
L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = "您想为该专业自动创建一些TSM分组吗?"
|
||||
L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = "你可以点击下表中的一行来查看或调整材料的价格是怎样计算的。"
|
||||
@@ -0,0 +1,154 @@
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
-- TradeSkillMaster_Crafting - AddOn by Sapu94 --
|
||||
-- http://wow.curse.com/downloads/wow-addons/details/tradeskillmaster_crafting.aspx --
|
||||
-- --
|
||||
-- This addon is licensed under the CC BY-NC-ND 3.0 license as described at the --
|
||||
-- following url: http://creativecommons.org/licenses/by-nc-nd/3.0/ --
|
||||
-- Please contact the author via email at sapu94@gmail.com with any questions or --
|
||||
-- concerns regarding this license. --
|
||||
-- ------------------------------------------------------------------------------------- --
|
||||
|
||||
-- TradeSkillMaster_Crafting Locale - zhTW
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_Crafting/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_Crafting", "zhTW")
|
||||
if not L then return end
|
||||
|
||||
L["All"] = "全部"
|
||||
-- L["Are you sure you want to reset all material prices to the default value?"] = ""
|
||||
-- L["Ask Later"] = ""
|
||||
L["Auction House"] = "拍賣行"
|
||||
-- L["Available Sources"] = ""
|
||||
-- L["Buy Vendor Items"] = ""
|
||||
-- L["Characters (Bags/Bank/AH/Mail) to Ignore:"] = ""
|
||||
-- L["Clear Filters"] = ""
|
||||
L["Clear Queue"] = "清除序列"
|
||||
-- L["Click Start Gathering"] = ""
|
||||
-- L["Collect Mail"] = ""
|
||||
L["Cost"] = "成本"
|
||||
-- L["Could not get link for profession."] = ""
|
||||
L["Crafting Cost"] = "製作成本"
|
||||
-- L["Crafting Material Cost"] = ""
|
||||
-- L["Crafting operations contain settings for restocking the items in a group. Type the name of the new operation into the box below and hit 'enter' to create a new Crafting operation."] = ""
|
||||
-- L["Crafting will not queue any items affected by this operation with a profit below this value. As an example, a min profit of 'max(10g, 10% crafting)' would ensure atleast a 10g and 10% profit."] = ""
|
||||
L["Craft Next"] = "製造下一個"
|
||||
-- L["Craft Price Method"] = ""
|
||||
-- L["Craft Queue"] = ""
|
||||
-- L["Create Profession Groups"] = ""
|
||||
-- L["Custom Price"] = ""
|
||||
-- L["Custom Price for this item."] = ""
|
||||
-- L["Custom Price per Item"] = ""
|
||||
-- L["Default Craft Price Method"] = ""
|
||||
-- L["Default Material Cost Method"] = ""
|
||||
-- L["Default Price"] = ""
|
||||
-- L["Default Price Settings"] = ""
|
||||
-- L["Enchant Vellum"] = ""
|
||||
-- L["Error creating operation. Operation with name '%s' already exists."] = ""
|
||||
--[==[ L[ [=[Estimated Cost: %s
|
||||
Estimated Profit: %s]=] ] = "" ]==]
|
||||
-- L["Exclude Crafts with a Cooldown from Craft Cost"] = ""
|
||||
-- L["Filters >>"] = ""
|
||||
-- L["First select a crafter"] = ""
|
||||
-- L["Gather"] = ""
|
||||
-- L["Gather All Professions by Default if Only One Crafter"] = ""
|
||||
L["Gathering"] = "採集"
|
||||
-- L["Gathering Crafting Mats"] = ""
|
||||
-- L["Gather Items"] = ""
|
||||
L["General"] = "綜合"
|
||||
L["General Settings"] = "一般設定"
|
||||
-- L["Give the new operation a name. A descriptive name will help you find this operation later."] = ""
|
||||
-- L["Guilds (Guild Banks) to Ignore:"] = ""
|
||||
L["Here you can view and adjust how Crafting is calculating the price for this material."] = "這裡可以檢視和調整如何計算出製作材料價格。"
|
||||
-- L["<< Hide Queue"] = ""
|
||||
-- L["If checked, Crafting will never try and craft inks as intermediate crafts."] = ""
|
||||
-- L["If checked, if there is more than one way to craft the item then the craft cost will exclude any craft with a daily cooldown when calculating the lowest craft cost."] = ""
|
||||
-- L["If checked, if there is only one crafter for the craft queue clicking gather will gather for all professions for that crafter"] = ""
|
||||
L["If checked, the crafting cost of items will be shown in the tooltip for the item."] = "勾選,製作成本將會顯示在提示訊息裡。"
|
||||
-- L["If checked, the material cost of items will be shown in the tooltip for the item."] = ""
|
||||
-- L["If checked, when the TSM_Crafting frame is shown (when you open a profession), the default profession UI will also be shown."] = ""
|
||||
L["Inventory Settings"] = "進貨設定"
|
||||
L["Item Name"] = "物品名稱"
|
||||
L["Items will only be added to the queue if the number being added is greater than this number. This is useful if you don't want to bother with crafting singles for example."] = "物品只會新增到序列如果新進的數目比這數目更好。這很有用,例如如果你不想麻煩有單手製作。"
|
||||
L["Item Value"] = "物品價值"
|
||||
-- L["Left-Click|r to add this craft to the queue."] = ""
|
||||
-- L["Link"] = ""
|
||||
-- L["Mailing Craft Mats to %s"] = ""
|
||||
-- L["Mail Items"] = ""
|
||||
-- L["Mat Cost"] = ""
|
||||
L["Material Cost Options"] = "材料成本設定"
|
||||
-- L["Material Name"] = ""
|
||||
-- L["Materials:"] = ""
|
||||
L["Mat Price"] = "材料價格"
|
||||
L["Max Restock Quantity"] = "最大進貨數量"
|
||||
-- L["Minimum Profit"] = ""
|
||||
L["Min Restock Quantity"] = "最小進貨數量"
|
||||
L["Name"] = "名稱"
|
||||
L["Need"] = "需要"
|
||||
-- L["Needed Mats at Current Source"] = ""
|
||||
-- L["Never Queue Inks as Sub-Craftings"] = ""
|
||||
-- L["New Operation"] = ""
|
||||
L["<None>"] = "<無>"
|
||||
-- L["No Thanks"] = ""
|
||||
-- L["Nothing To Gather"] = ""
|
||||
-- L["Nothing to Mail"] = ""
|
||||
-- L["Now select your profession(s)"] = ""
|
||||
L["Number Owned"] = "已擁有數量"
|
||||
-- L["Opens the Crafting window to the first profession."] = ""
|
||||
-- L["Operation Name"] = ""
|
||||
-- L["Operations"] = ""
|
||||
L["Options"] = "設定"
|
||||
-- L["Override Default Craft Price Method"] = ""
|
||||
L["Percent to subtract from buyout when calculating profits (5% will compensate for AH cut)."] = "當計算利潤時從直購價減去百分比(5%是拍賣行稅金)。"
|
||||
-- L["Please switch to the Shopping Tab to perform the gathering search."] = ""
|
||||
L["Price:"] = "價格:"
|
||||
L["Price Settings"] = "價格設定"
|
||||
-- L["Price Source Filter"] = ""
|
||||
-- L["Profession data not found for %s on %s. Logging into this player and opening the profression may solve this issue."] = ""
|
||||
-- L["Profession Filter"] = ""
|
||||
-- L["Professions"] = ""
|
||||
-- L["Professions Used In"] = ""
|
||||
L["Profit"] = "利潤"
|
||||
L["Profit Deduction"] = "利潤扣除"
|
||||
-- L["Profit (Total Profit):"] = ""
|
||||
-- L["Queue"] = ""
|
||||
-- L["Relationships"] = ""
|
||||
-- L["Reset All Custom Prices to Default"] = ""
|
||||
-- L["Reset all Custom Prices to Default Price Source."] = ""
|
||||
-- L["Resets the material price for this item to the defualt value."] = ""
|
||||
-- L["Reset to Default"] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with a min profit."] = ""
|
||||
-- L["Restocking to a max of %d (min of %d) with no min profit."] = ""
|
||||
-- L["Restock Quantity Settings"] = ""
|
||||
-- L["Restock Selected Groups"] = ""
|
||||
-- L["Restock Settings"] = ""
|
||||
-- L["Right-Click|r to subtract this craft from the queue."] = ""
|
||||
-- L["%s Avail"] = ""
|
||||
-- L["Search"] = ""
|
||||
-- L["Search for Mats"] = ""
|
||||
-- L["Select Crafter"] = ""
|
||||
-- L["Select one of your characters' professions to browse."] = ""
|
||||
-- L["Set Minimum Profit"] = ""
|
||||
-- L["Shift-Left-Click|r to queue all you can craft."] = ""
|
||||
-- L["Shift-Right-Click|r to remove all from queue."] = ""
|
||||
L["Show Crafting Cost in Tooltip"] = "在提示顯示製作成本"
|
||||
-- L["Show Default Profession Frame"] = ""
|
||||
-- L["Show Material Cost in Tooltip"] = ""
|
||||
-- L["Show Queue >>"] = ""
|
||||
-- L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."] = ""
|
||||
-- L["%s (%s profit)"] = ""
|
||||
-- L["Stage %d"] = ""
|
||||
-- L["Start Gathering"] = ""
|
||||
-- L["Stop Gathering"] = ""
|
||||
-- L["This is the default method Crafting will use for determining craft prices."] = ""
|
||||
-- L["This is the default method Crafting will use for determining material cost."] = ""
|
||||
L["Total"] = "總共"
|
||||
-- L["TSM Groups"] = ""
|
||||
L["Vendor"] = "商人"
|
||||
-- L["Visit Bank"] = ""
|
||||
-- L["Visit Guild Bank"] = ""
|
||||
-- L["Visit Vendor"] = ""
|
||||
L["Warning: The min restock quantity must be lower than the max restock quantity."] = "警告:最小進貨數量必須低於最大進貨數量。"
|
||||
L["When you click on the \"Restock Queue\" button enough of each craft will be queued so that you have this maximum number on hand. For example, if you have 2 of item X on hand and you set this to 4, 2 more will be added to the craft queue."] = "當你點擊\"進貨序列\"按鈕,各個足夠的製造會被序列,以便你有最大手上數量。舉例,如果你有物品X2個並且你設定4,2個就會新增到製造序列。"
|
||||
-- L["Would you like to automatically create some TradeSkillMaster groups for this profession?"] = ""
|
||||
L["You can click on one of the rows of the scrolling table below to view or adjust how the price of a material is calculated."] = "你可以在以下表格中點擊一行來檢視或是調整已計算過的材料價格。"
|
||||
@@ -0,0 +1,155 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Crafting --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_crafting --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Cost = TSM:NewModule("Cost", "AceEvent-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Crafting") -- loads the localization table
|
||||
|
||||
|
||||
local currentVisited = {}
|
||||
local cache = { time = 0 }
|
||||
function Cost:GetMatCost(itemString)
|
||||
local mat = TSM.db.factionrealm.mats[itemString]
|
||||
if not mat then return end
|
||||
|
||||
if cache.time < (time() - 1) then
|
||||
cache = {}
|
||||
cache.time = time()
|
||||
end
|
||||
if cache[itemString] then return cache[itemString] end
|
||||
|
||||
if currentVisited[itemString] then return end
|
||||
currentVisited[itemString] = true
|
||||
local cost = TSM:GetCustomPrice(mat.customValue or TSM.db.global.defaultMatCostMethod, itemString)
|
||||
currentVisited[itemString] = nil
|
||||
|
||||
cache[itemString] = cost
|
||||
return cost
|
||||
end
|
||||
|
||||
-- gets the value of a crafted item
|
||||
function Cost:GetCraftValue(itemString)
|
||||
if type(itemString) == "number" then
|
||||
-- we got passed a spell
|
||||
if not TSM.db.factionrealm.crafts[itemString] then return end
|
||||
itemString = TSM.db.factionrealm.crafts[itemString].itemID
|
||||
end
|
||||
if type(itemString) ~= "string" then return end
|
||||
local operation = TSMAPI:GetItemOperation(itemString, "Crafting")
|
||||
TSMAPI:UpdateOperation("Crafting", operation and operation[1])
|
||||
operation = operation and TSM.operations[operation[1]]
|
||||
local priceMethod = operation and operation.craftPriceMethod or TSM.db.global.defaultCraftPriceMethod
|
||||
return TSM:GetCustomPrice(priceMethod, itemString)
|
||||
end
|
||||
|
||||
-- gets the cost to create this craft
|
||||
function Cost:GetCraftCost(itemID)
|
||||
local spellIDs
|
||||
if type(itemID) == "string" then
|
||||
-- we got passed an item
|
||||
spellIDs = TSM.craftReverseLookup[TSMAPI:GetBaseItemstring(itemID)]
|
||||
elseif type(itemID) == "number" then
|
||||
-- we got passed a spell
|
||||
if TSM.db.factionrealm.crafts[itemID] then
|
||||
spellIDs = { itemID }
|
||||
end
|
||||
end
|
||||
if not spellIDs or #spellIDs == 0 then return end
|
||||
|
||||
local lowestCost
|
||||
for _, spellID in ipairs(spellIDs) do
|
||||
local craft = TSM.db.factionrealm.crafts[spellID]
|
||||
local cost, costIsValid = 0, true
|
||||
if #spellIDs >= 2 and TSM.db.global.ignoreCDCraftCost and TSM.db.factionrealm.crafts[spellID].hasCD then
|
||||
costIsValid = false
|
||||
end
|
||||
for matID, matQuantity in pairs(craft.mats) do
|
||||
|
||||
local MatName = GetItemInfo(matID)
|
||||
-- if MatName ~= nil and strfind(MatName, "Vellum") then
|
||||
-- local NewItemString = CheapestVellum(matID)
|
||||
-- if matID ~= NewItemString then
|
||||
-- matID = NewItemString
|
||||
-- end
|
||||
-- end
|
||||
local matCost = Cost:GetMatCost(matID)
|
||||
if not matCost or matCost == 0 then
|
||||
costIsValid = false
|
||||
break
|
||||
end
|
||||
cost = cost + matQuantity * matCost
|
||||
end
|
||||
cost = floor(cost / (craft.numResult) + 0.5) --rounds to nearest gold
|
||||
|
||||
if costIsValid then
|
||||
if not lowestCost or cost < lowestCost then
|
||||
lowestCost = cost
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return lowestCost
|
||||
end
|
||||
|
||||
-- calulates the cost, buyout, and profit for a crafted item
|
||||
function Cost:GetCraftPrices(itemID)
|
||||
if not itemID then return end
|
||||
|
||||
local cost, buyout, profit
|
||||
cost = Cost:GetCraftCost(itemID)
|
||||
buyout = Cost:GetCraftValue(itemID)
|
||||
|
||||
if cost and buyout then
|
||||
profit = floor(buyout - buyout * TSM.db.global.profitPercent - cost + 0.5)
|
||||
end
|
||||
|
||||
return cost, buyout, profit
|
||||
end
|
||||
|
||||
-- gets the spellID, cost, buyout, and profit for the cheapest way to craft the given item
|
||||
function Cost:GetLowestCraftPrices(itemString, intermediate)
|
||||
local spellIDs = TSM.craftReverseLookup[itemString]
|
||||
if not spellIDs then return end
|
||||
local lowestCost, cheapestSpellID
|
||||
local soh = "item:76061:0:0:0:0:0:0" -- Spirit of Harmony
|
||||
for _, spellID in ipairs(spellIDs) do
|
||||
if TSM.db.factionrealm.crafts[spellID] then
|
||||
if intermediate and (TSM.db.factionrealm.crafts[spellID].mats[soh] or TSM.db.factionrealm.crafts[spellID].hasCD) then
|
||||
break
|
||||
end --exclude spells using SOH or have cooldown from intermediate crafts
|
||||
local cost = Cost:GetCraftCost(spellID)
|
||||
if cost and (not lowestCost or cost < lowestCost) then
|
||||
-- exclude spells with cooldown if option to ignore is enabled or more than one way to craft and not soulbound e.g. BoE
|
||||
if not TSM.db.global.ignoreCDCraftCost then
|
||||
if TSM.db.factionrealm.crafts[spellID].hasCD then
|
||||
if TSMAPI.SOULBOUND_MATS[itemString] or #spellIDs == 1 then
|
||||
lowestCost = cost
|
||||
cheapestSpellID = spellID
|
||||
end
|
||||
else
|
||||
lowestCost = cost
|
||||
cheapestSpellID = spellID
|
||||
end
|
||||
elseif not TSM.db.factionrealm.crafts[spellID].hasCD then
|
||||
lowestCost = cost
|
||||
cheapestSpellID = spellID
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if not lowestCost or not cheapestSpellID then return end
|
||||
local profit, buyout
|
||||
buyout = Cost:GetCraftValue(itemString)
|
||||
if buyout then
|
||||
profit = floor(buyout - buyout * TSM.db.global.profitPercent - lowestCost + 0.5)
|
||||
end
|
||||
|
||||
return cheapestSpellID, lowestCost, buyout, profit
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,625 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Crafting --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_crafting --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable
|
||||
local TSM = select(2, ...)
|
||||
|
||||
TSM.enchantingName = GetSpellInfo(7411)
|
||||
|
||||
-- looks up the itemID of the scroll that the enchant makes
|
||||
-- index = spellID of the enchant
|
||||
-- value = itemID of scroll
|
||||
-- Enchant List:
|
||||
-- WRATH
|
||||
-- [44506] = 38960, -- Enchant Gloves - Gatherer
|
||||
-- [44484] = 38951, -- Enchant Gloves - Expertise
|
||||
-- [44488] = 38953, -- Enchant Gloves - Precision
|
||||
-- [44489] = 38954, -- Enchant Shield - Dodge
|
||||
-- [44492] = 38955, -- Enchant Chest - Mighty Health
|
||||
-- [44500] = 38959, -- Enchant Cloak - Superior Agility
|
||||
-- [44508] = 38961, -- Enchant Boots - Greater Spirit
|
||||
-- [44509] = 38962, -- Enchant Chest - Greater Mana Restoration
|
||||
-- [44513] = 38964, -- Enchant Gloves - Greater Assault
|
||||
-- [44528] = 38966, -- Enchant Boots - Greater Fortitude
|
||||
-- [44529] = 38967, -- Enchant Gloves - Major Agility
|
||||
-- [44555] = 38968, -- Enchant Bracer - Exceptional Intellect
|
||||
-- [44582] = 38973, -- Enchant Cloak - Minor Power
|
||||
-- [44584] = 38974, -- Enchant Boots - Greater Vitality
|
||||
-- [44588] = 38975, -- Enchant Chest - Exceptional Resilience
|
||||
-- [44589] = 38976, -- Enchant Boots - Superior Agility
|
||||
-- [44591] = 38978, -- Enchant Cloak - Superior Dodge
|
||||
-- [44592] = 38979, -- Enchant Gloves - Exceptional Spellpower
|
||||
-- [44593] = 38980, -- Enchant Bracer - Major Spirit
|
||||
-- [44598] = 38984, -- Enchant Bracer - Expertise
|
||||
-- [44616] = 38987, -- Enchant Bracer - Greater Stats
|
||||
-- [44623] = 38989, -- Enchant Chest - Super Stats
|
||||
-- [44625] = 38990, -- Enchant Gloves - Armsman
|
||||
-- [44631] = 38993, -- Enchant Cloak - Shadow Armor
|
||||
-- [44635] = 38997, -- Enchant Bracer - Greater Spellpower
|
||||
-- [44575] = 44815, -- Enchant Bracer - Greater Assault
|
||||
-- [44510] = 38963, -- Enchant Weapon - Exceptional Spirit
|
||||
-- [44524] = 38965, -- Enchant Weapon - Icebreaker
|
||||
-- [44576] = 38972, -- Enchant Weapon - Lifeward
|
||||
-- [44595] = 38981, -- Enchant 2H Weapon - Scourgebane
|
||||
-- [44621] = 38988, -- Enchant Weapon - Giant Slayer
|
||||
-- [44629] = 38991, -- Enchant Weapon - Exceptional Spellpower
|
||||
-- [44630] = 38992, -- Enchant 2H Weapon - Greater Savagery
|
||||
-- [44633] = 38995, -- Enchant Weapon - Exceptional Agility
|
||||
-- [44383] = 38949, -- Enchant Shield - Resilience
|
||||
-- [46594] = 38999, -- Enchant Chest - Dodge
|
||||
-- [46578] = 38998, -- Enchant Weapon - Deathfrost
|
||||
-- [47051] = 39000, -- Enchant Cloak - Greater Dodge
|
||||
-- [47672] = 39001, -- Enchant Cloak - Mighty Stamina
|
||||
-- [47766] = 39002, -- Enchant Chest - Greater Dodge
|
||||
-- [47898] = 39003, -- Enchant Cloak - Greater Speed
|
||||
-- [47899] = 39004, -- Enchant Cloak - Wisdom
|
||||
-- [47900] = 39005, -- Enchant Chest - Super Health
|
||||
-- [47901] = 39006, -- Enchant Boots - Tuskarr's Vitality
|
||||
-- [59625] = 43987, -- Enchant Weapon - Black Magic
|
||||
-- [59621] = 44493, -- Enchant Weapon - Berserking
|
||||
-- [59619] = 44497, -- Enchant Weapon - Accuracy
|
||||
-- [60616] = 38971, -- Enchant Bracer - Assault
|
||||
-- [60623] = 38986, -- Enchant Boots - Icewalker
|
||||
-- [60606] = 44449, -- Enchant Boots - Assault
|
||||
-- [60609] = 44456, -- Enchant Cloak - Speed
|
||||
-- [60663] = 44457, -- Enchant Cloak - Major Agility
|
||||
-- [60668] = 44458, -- Enchant Gloves - Crusher
|
||||
-- [60692] = 44465, -- Enchant Chest - Powerful Stats
|
||||
-- [60763] = 44469, -- Enchant Boots - Greater Assault
|
||||
-- [60767] = 44470, -- Enchant Bracer - Superior Spellpower
|
||||
-- [60621] = 44453, -- Enchant Weapon - Greater Potency
|
||||
-- [60691] = 44463, -- Enchant 2H Weapon - Massacre
|
||||
-- [60707] = 44466, -- Enchant Weapon - Superior Potency
|
||||
-- [60714] = 44467, -- Enchant Weapon - Mighty Spellpower
|
||||
-- [62256] = 44947, -- Enchant Bracer - Major Stamina
|
||||
-- [62948] = 45056, -- Enchant Staff - Greater Spellpower
|
||||
-- [62959] = 45060, -- Enchant Staff - Spellpower
|
||||
-- [63746] = 45628, -- Enchant Boots - Lesser Accuracy
|
||||
-- [64441] = 46026, -- Enchant Weapon - Blade Ward
|
||||
-- [64579] = 46098, -- Enchant Weapon - Blood Draining
|
||||
-- [71692] = 50816, -- Enchant Gloves - Angler
|
||||
|
||||
-- TBC
|
||||
-- [33990] = 38928, -- Enchant Chest - Major Spirit
|
||||
-- [33991] = 38929, -- Enchant Chest - Restore Mana Prime
|
||||
-- [33992] = 38930, -- Enchant Chest - Major Resilience
|
||||
-- [33993] = 38931, -- Enchant Gloves - Blasting
|
||||
-- [33994] = 38932, -- Enchant Gloves - Precise Strikes
|
||||
-- [33995] = 38933, -- Enchant Gloves - Major Strength
|
||||
-- [33996] = 38934, -- Enchant Gloves - Assault
|
||||
-- [33997] = 38935, -- Enchant Gloves - Major Spellpower
|
||||
-- [33999] = 38936, -- Enchant Gloves - Major Healing
|
||||
-- [34001] = 38937, -- Enchant Bracer - Major Intellect
|
||||
-- [34002] = 38938, -- Enchant Bracer - Lesser Assault
|
||||
-- [34003] = 38939, -- Enchant Cloak - Spell Penetration
|
||||
-- [34004] = 38940, -- Enchant Cloak - Greater Agility
|
||||
-- [34007] = 38943, -- Enchant Boots - Cat's Swiftness
|
||||
-- [34008] = 38944, -- Enchant Boots - Boar's Speed
|
||||
-- [34009] = 38945, -- Enchant Shield - Major Stamina
|
||||
-- [34010] = 38946, -- Enchant Weapon - Major Healing
|
||||
-- [42974] = 38948, -- Enchant Weapon - Executioner
|
||||
-- [42620] = 38947, -- Enchant Weapon - Greater Agility
|
||||
|
||||
-- VANILLA
|
||||
-- [7745] = 38772, -- Enchant 2H Weapon - Minor Impact
|
||||
-- [7786] = 38779, -- Enchant Weapon - Minor Beastslayer
|
||||
-- [7788] = 38780, -- Enchant Weapon - Minor Striking
|
||||
-- [7793] = 38781, -- Enchant 2H Weapon - Lesser Intellect
|
||||
-- [7418] = 38679, -- Enchant Bracer - Minor Health
|
||||
-- [7420] = 38766, -- Enchant Chest - Minor Health
|
||||
-- [7426] = 38767, -- Enchant Chest - Minor Absorption
|
||||
-- [7428] = 38768, -- Enchant Bracer - Minor Dodge
|
||||
-- [7443] = 38769, -- Enchant Chest - Minor Mana
|
||||
-- [7457] = 38771, -- Enchant Bracer - Minor Stamina
|
||||
-- [7748] = 38773, -- Enchant Chest - Lesser Health
|
||||
-- [7766] = 38774, -- Enchant Bracer - Minor Spirit
|
||||
-- [7771] = 38775, -- Enchant Cloak - Minor Protection
|
||||
-- [7776] = 38776, -- Enchant Chest - Lesser Mana
|
||||
-- [7779] = 38777, -- Enchant Bracer - Minor Agility
|
||||
-- [7782] = 38778, -- Enchant Bracer - Minor Strength
|
||||
-- [7857] = 38782, -- Enchant Chest - Health
|
||||
-- [7859] = 38783, -- Enchant Bracer - Lesser Spirit
|
||||
-- [7863] = 38785, -- Enchant Boots - Minor Stamina
|
||||
-- [7867] = 38786, -- Enchant Boots - Minor Agility
|
||||
-- [13378] = 38787, -- Enchant Shield - Minor Stamina
|
||||
-- [13419] = 38789, -- Enchant Cloak - Minor Agility
|
||||
-- [13421] = 38790, -- Enchant Cloak - Lesser Protection
|
||||
-- [13464] = 38791, -- Enchant Shield - Lesser Protection
|
||||
-- [13485] = 38792, -- Enchant Shield - Lesser Spirit
|
||||
-- [13501] = 38793, -- Enchant Bracer - Lesser Stamina
|
||||
-- [13536] = 38797, -- Enchant Bracer - Lesser Strength
|
||||
-- [13538] = 38798, -- Enchant Chest - Lesser Absorption
|
||||
-- [13607] = 38799, -- Enchant Chest - Mana
|
||||
-- [13612] = 38800, -- Enchant Gloves - Mining
|
||||
-- [13617] = 38801, -- Enchant Gloves - Herbalism
|
||||
-- [13620] = 38802, -- Enchant Gloves - Fishing
|
||||
-- [13622] = 38803, -- Enchant Bracer - Lesser Intellect
|
||||
-- [13626] = 38804, -- Enchant Chest - Minor Stats
|
||||
-- [13631] = 38805, -- Enchant Shield - Lesser Stamina
|
||||
-- [13635] = 38806, -- Enchant Cloak - Defense
|
||||
-- [13637] = 38807, -- Enchant Boots - Lesser Agility
|
||||
-- [13640] = 38808, -- Enchant Chest - Greater Health
|
||||
-- [13642] = 38809, -- Enchant Bracer - Spirit
|
||||
-- [13644] = 38810, -- Enchant Boots - Lesser Stamina
|
||||
-- [13646] = 38811, -- Enchant Bracer - Lesser Dodge
|
||||
-- [13648] = 38812, -- Enchant Bracer - Stamina
|
||||
-- [13659] = 38816, -- Enchant Shield - Spirit
|
||||
-- [13661] = 38817, -- Enchant Bracer - Strength
|
||||
-- [13663] = 38818, -- Enchant Chest - Greater Mana
|
||||
-- [13687] = 38819, -- Enchant Boots - Lesser Spirit
|
||||
-- [13689] = 38820, -- Enchant Shield - Lesser Parry
|
||||
-- [13698] = 38823, -- Enchant Gloves - Skinning
|
||||
-- [13700] = 38824, -- Enchant Chest - Lesser Stats
|
||||
-- [13746] = 38825, -- Enchant Cloak - Greater Defense
|
||||
-- [13815] = 38827, -- Enchant Gloves - Agility
|
||||
-- [13817] = 38828, -- Enchant Shield - Stamina
|
||||
-- [13822] = 38829, -- Enchant Bracer - Intellect
|
||||
-- [13836] = 38830, -- Enchant Boots - Stamina
|
||||
-- [13841] = 38831, -- Enchant Gloves - Advanced Mining
|
||||
-- [13846] = 38832, -- Enchant Bracer - Greater Spirit
|
||||
-- [13858] = 38833, -- Enchant Chest - Superior Health
|
||||
-- [13868] = 38834, -- Enchant Gloves - Advanced Herbalism
|
||||
-- [13882] = 38835, -- Enchant Cloak - Lesser Agility
|
||||
-- [13887] = 38836, -- Enchant Gloves - Strength
|
||||
-- [13890] = 38837, -- Enchant Boots - Minor Speed
|
||||
-- [13905] = 38839, -- Enchant Shield - Greater Spirit
|
||||
-- [13917] = 38841, -- Enchant Chest - Superior Mana
|
||||
-- [13931] = 38842, -- Enchant Bracer - Dodge
|
||||
-- [13935] = 38844, -- Enchant Boots - Agility
|
||||
-- [13939] = 38846, -- Enchant Bracer - Greater Strength
|
||||
-- [13941] = 38847, -- Enchant Chest - Stats
|
||||
-- [13945] = 38849, -- Enchant Bracer - Greater Stamina
|
||||
-- [13947] = 38850, -- Enchant Gloves - Riding Skill
|
||||
-- [13948] = 38851, -- Enchant Gloves - Minor Haste
|
||||
-- [13380] = 38788, -- Enchant 2H Weapon - Lesser Spirit
|
||||
-- [13503] = 38794, -- Enchant Weapon - Lesser Striking
|
||||
-- [13529] = 38796, -- Enchant 2H Weapon - Lesser Impact
|
||||
-- [13653] = 38813, -- Enchant Weapon - Lesser Beastslayer
|
||||
-- [13655] = 38814, -- Enchant Weapon - Lesser Elemental Slayer
|
||||
-- [13693] = 38821, -- Enchant Weapon - Striking
|
||||
-- [13695] = 38822, -- Enchant 2H Weapon - Impact
|
||||
-- [13898] = 38838, -- Enchant Weapon - Fiery Weapon
|
||||
-- [13915] = 38840, -- Enchant Weapon - Demonslaying
|
||||
-- [13937] = 38845, -- Enchant 2H Weapon - Greater Impact
|
||||
-- [13943] = 38848, -- Enchant Weapon - Greater Striking
|
||||
-- [20008] = 38852, -- Enchant Bracer - Greater Intellect
|
||||
-- [20009] = 38853, -- Enchant Bracer - Superior Spirit
|
||||
-- [20010] = 38854, -- Enchant Bracer - Superior Strength
|
||||
-- [20011] = 38855, -- Enchant Bracer - Superior Stamina
|
||||
-- [20012] = 38856, -- Enchant Gloves - Greater Agility
|
||||
-- [20013] = 38857, -- Enchant Gloves - Greater Strength
|
||||
-- [20015] = 38859, -- Enchant Cloak - Superior Defense
|
||||
-- [20016] = 38860, -- Enchant Shield - Vitality
|
||||
-- [20017] = 38861, -- Enchant Shield - Greater Stamina
|
||||
-- [20020] = 38862, -- Enchant Boots - Greater Stamina
|
||||
-- [20023] = 38863, -- Enchant Boots - Greater Agility
|
||||
-- [20024] = 38864, -- Enchant Boots - Spirit
|
||||
-- [20025] = 38865, -- Enchant Chest - Greater Stats
|
||||
-- [20026] = 38866, -- Enchant Chest - Major Health
|
||||
-- [20028] = 38867, -- Enchant Chest - Major Mana
|
||||
-- [20029] = 38868, -- Enchant Weapon - Icy Chill
|
||||
-- [20030] = 38869, -- Enchant 2H Weapon - Superior Impact
|
||||
-- [20031] = 38870, -- Enchant Weapon - Superior Striking
|
||||
-- [20032] = 38871, -- Enchant Weapon - Lifestealing
|
||||
-- [20033] = 38872, -- Enchant Weapon - Unholy Weapon
|
||||
-- [20034] = 38873, -- Enchant Weapon - Crusader
|
||||
-- [20035] = 38874, -- Enchant 2H Weapon - Major Spirit
|
||||
-- [20036] = 38875, -- Enchant 2H Weapon - Major Intellect
|
||||
-- [21931] = 38876, -- Enchant Weapon - Winter's Might
|
||||
-- [22749] = 38877, -- Enchant Weapon - Spellpower
|
||||
-- [22750] = 38878, -- Enchant Weapon - Healing Power
|
||||
-- [23799] = 38879, -- Enchant Weapon - Strength
|
||||
-- [23800] = 38880, -- Enchant Weapon - Agility
|
||||
-- [23803] = 38883, -- Enchant Weapon - Mighty Spirit
|
||||
-- [23804] = 38884, -- Enchant Weapon - Mighty Intellect
|
||||
-- [23801] = 38881, -- Enchant Bracer - Mana Regeneration
|
||||
-- [23802] = 38882, -- Enchant Bracer - Healing Power
|
||||
-- [25072] = 38885, -- Enchant Gloves - Threat
|
||||
-- [25073] = 38886, -- Enchant Gloves - Shadow Power
|
||||
-- [25074] = 38887, -- Enchant Gloves - Frost Power
|
||||
-- [25078] = 38888, -- Enchant Gloves - Fire Power
|
||||
-- [25079] = 38889, -- Enchant Gloves - Healing Power
|
||||
-- [25080] = 38890, -- Enchant Gloves - Superior Agility
|
||||
-- [25083] = 38893, -- Enchant Cloak - Stealth
|
||||
-- [25084] = 38894, -- Enchant Cloak - Subtlety
|
||||
-- [25086] = 38895, -- Enchant Cloak - Dodge
|
||||
-- [27837] = 38896, -- Enchant 2H Weapon - Agility
|
||||
-- [27951] = 37603, -- Enchant Boots - Dexterity
|
||||
-- [27958] = 38912, -- Enchant Chest - Exceptional Mana
|
||||
-- [27899] = 38897, -- Enchant Bracer - Brawn
|
||||
-- [27905] = 38898, -- Enchant Bracer - Stats
|
||||
-- [27906] = 38899, -- Enchant Bracer - Greater Dodge
|
||||
-- [27911] = 38900, -- Enchant Bracer - Superior Healing
|
||||
-- [27913] = 38901, -- Enchant Bracer - Restore Mana Prime
|
||||
-- [27914] = 38902, -- Enchant Bracer - Fortitude
|
||||
-- [27917] = 38903, -- Enchant Bracer - Spellpower
|
||||
-- [27944] = 38904, -- Enchant Shield - Lesser Dodge
|
||||
-- [27945] = 38905, -- Enchant Shield - Intellect
|
||||
-- [27946] = 38906, -- Enchant Shield - Parry
|
||||
-- [27948] = 38908, -- Enchant Boots - Vitality
|
||||
-- [27950] = 38909, -- Enchant Boots - Fortitude
|
||||
-- [27954] = 38910, -- Enchant Boots - Surefooted
|
||||
-- [27957] = 38911, -- Enchant Chest - Exceptional Health
|
||||
-- [27960] = 38913, -- Enchant Chest - Exceptional Stats
|
||||
-- [27961] = 38914, -- Enchant Cloak - Major Armor
|
||||
-- [27967] = 38917, -- Enchant Weapon - Major Striking
|
||||
-- [27968] = 38918, -- Enchant Weapon - Major Intellect
|
||||
-- [27971] = 38919, -- Enchant 2H Weapon - Savagery
|
||||
-- [27972] = 38920, -- Enchant Weapon - Potency
|
||||
-- [27975] = 38921, -- Enchant Weapon - Major Spellpower
|
||||
-- [27977] = 38922, -- Enchant 2H Weapon - Major Agility
|
||||
-- [27981] = 38923, -- Enchant Weapon - Sunfire
|
||||
-- [27982] = 38924, -- Enchant Weapon - Soulfrost
|
||||
-- [27984] = 38925, -- Enchant Weapon - Mongoose
|
||||
-- [28003] = 38926, -- Enchant Weapon - Spellsurge
|
||||
-- [28004] = 38927, -- Enchant Weapon - Battlemaster
|
||||
|
||||
-- High Risk Ascension Content
|
||||
-- [968676] = 967760, -- Enchant Weapon - Unstoppable Assault I
|
||||
-- [968677] = 967761, -- Enchant Weapon - Unstoppable Assault II
|
||||
-- [968678] = 967762, -- Enchant Weapon - Unstoppable Assault III
|
||||
-- [968679] = 967763, -- Enchant Weapon - Lucid Assault I
|
||||
-- [968680] = 967764, -- Enchant Weapon - Lucid Assault II
|
||||
-- [968681] = 967765, -- Enchant Weapon - Lucid Assault III
|
||||
-- [968682] = 967766, -- Enchant Weapon - Spellbinder's Rage I
|
||||
-- [968683] = 967767, -- Enchant Weapon - Spellbinder's Rage II
|
||||
-- [968684] = 967768, -- Enchant Weapon - Spellbinder's Rage III
|
||||
-- [968685] = 967769, -- Enchant Weapon - Ninja's Focus I
|
||||
-- [968686] = 967770, -- Enchant Weapon - Ninja's Focus II
|
||||
-- [968687] = 967771, -- Enchant Weapon - Ninja's Focus III
|
||||
-- [968688] = 967772, -- Enchant Weapon - Grovewarden's Blessing I
|
||||
-- [968689] = 967773, -- Enchant Weapon - Grovewarden's Blessing II
|
||||
-- [968690] = 967774, -- Enchant Weapon - Grovewarden's Blessing III
|
||||
-- [968691] = 967775, -- Enchant Weapon - Viscious Assault I
|
||||
-- [968692] = 967776, -- Enchant Weapon - Viscious Assault II
|
||||
-- [968693] = 967777, -- Enchant Weapon - Viscious Assault III
|
||||
-- [968694] = 967778, -- Enchant Weapon - Arcane Dexterity I
|
||||
-- [968695] = 967779, -- Enchant Weapon - Arcane Dexterity II
|
||||
-- [968696] = 967780, -- Enchant Weapon - Arcane Dexterity III
|
||||
-- [968697] = 967781, -- Enchant Weapon - Arcane Artillery I
|
||||
-- [968698] = 967782, -- Enchant Weapon - Arcane Artillery II
|
||||
-- [968699] = 967783, -- Enchant Weapon - Arcane Artillery III
|
||||
-- [968700] = 967784, -- Enchant Weapon - Arcane Precision I
|
||||
-- [968701] = 967785, -- Enchant Weapon - Arcane Precision II
|
||||
-- [968702] = 967786, -- Enchant Weapon - Arcane Precision III
|
||||
-- [968770] = 967787, -- Enchant Weapon - Crusader II
|
||||
-- [968771] = 967788, -- Enchant Weapon - Crusader III
|
||||
-- [1968677] = 1204125, -- Enchant Weapon - Void Assault
|
||||
-- [1968678] = 1204126, -- Enchant Weapon - Overpowering Void Assault
|
||||
-- [1968680] = 1204127, -- Enchant Weapon - Dread Assault
|
||||
-- [1968681] = 1204128, -- Enchant Weapon - Overpowering Dread Assault
|
||||
-- [1968683] = 1204129, -- Enchant Weapon - Twisted Evoker
|
||||
-- [1968684] = 1204130, -- Enchant Weapon - Overpowering Twisted Evoker
|
||||
-- [1968686] = 1204131, -- Enchant Weapon - Twisted Assault
|
||||
-- [1968687] = 1204132, -- Enchant Weapon - Overpowering Twisted Assault
|
||||
-- [1968689] = 1204133, -- Enchant Weapon - Twisted Channeler
|
||||
-- [1968690] = 1204134, -- Enchant Weapon - Overpowering Twisted Channeler
|
||||
-- [1968692] = 1204135, -- Enchant Weapon - Dread Omen Strikes
|
||||
-- [1968693] = 1204136, -- Enchant Weapon - Overpowering Dread Omen Strikes
|
||||
-- [1968695] = 1204137, -- Enchant Weapon - Void Flows
|
||||
-- [1968696] = 1204138, -- Enchant Weapon - Overpowering Void Flows
|
||||
-- [1968698] = 1204139, -- Enchant Weapon - Void Blasting
|
||||
-- [1968699] = 1204140, -- Enchant Weapon - Overpowering Void Blasting
|
||||
-- [1968701] = 1204141, -- Enchant Weapon - Dread Precision
|
||||
-- [1968702] = 1204142, -- Enchant Weapon - Overpowering Dread Precision
|
||||
-- [1968770] = 1204143, -- Enchant Weapon - Twisted Crusader
|
||||
-- [1968771] = 1204144, -- Enchant Weapon - Overpowering Twisted Crusader
|
||||
--
|
||||
|
||||
|
||||
TSM.enchantingItemIDs = {
|
||||
[7418] = 38679, -- Scroll of Enchant Bracer - Minor Health
|
||||
[7420] = 38766, -- Scroll of Enchant Chest - Minor Health
|
||||
[7426] = 38767, -- Scroll of Enchant Chest - Minor Absorption
|
||||
[7428] = 38768, -- Scroll of Enchant Bracer - Minor Deflection
|
||||
[7443] = 38769, -- Scroll of Enchant Chest - Minor Mana
|
||||
[7454] = 38770, -- Scroll of Enchant Cloak - Minor Resistance
|
||||
[7457] = 38771, -- Scroll of Enchant Bracer - Minor Stamina
|
||||
[7745] = 38772, -- Scroll of Enchant 2H Weapon - Minor Impact
|
||||
[7748] = 38773, -- Scroll of Enchant Chest - Lesser Health
|
||||
[7766] = 38774, -- Scroll of Enchant Bracer - Minor Spirit
|
||||
[7771] = 38775, -- Scroll of Enchant Cloak - Minor Protection
|
||||
[7776] = 38776, -- Scroll of Enchant Chest - Lesser Mana
|
||||
[7779] = 38777, -- Scroll of Enchant Bracer - Minor Agility
|
||||
[7782] = 38778, -- Scroll of Enchant Bracer - Minor Strength
|
||||
[7786] = 38779, -- Scroll of Enchant Weapon - Minor Beastslayer
|
||||
[7788] = 38780, -- Scroll of Enchant Weapon - Minor Striking
|
||||
[7793] = 38781, -- Scroll of Enchant 2H Weapon - Lesser Intellect
|
||||
[7857] = 38782, -- Scroll of Enchant Chest - Health
|
||||
[7859] = 38783, -- Scroll of Enchant Bracer - Lesser Spirit
|
||||
[7861] = 38784, -- Scroll of Enchant Cloak - Lesser Fire Resistance
|
||||
[7863] = 38785, -- Scroll of Enchant Boots - Minor Stamina
|
||||
[7867] = 38786, -- Scroll of Enchant Boots - Minor Agility
|
||||
[13378] = 38787, -- Scroll of Enchant Shield - Minor Stamina
|
||||
[13380] = 38788, -- Scroll of Enchant 2H Weapon - Lesser Spirit
|
||||
[13419] = 38789, -- Scroll of Enchant Cloak - Minor Agility
|
||||
[13421] = 38790, -- Scroll of Enchant Cloak - Lesser Protection
|
||||
[13464] = 38791, -- Scroll of Enchant Shield - Lesser Protection
|
||||
[13485] = 38792, -- Scroll of Enchant Shield - Lesser Spirit
|
||||
[13501] = 38793, -- Scroll of Enchant Bracer - Lesser Stamina
|
||||
[13503] = 38794, -- Scroll of Enchant Weapon - Lesser Striking
|
||||
[13522] = 38795, -- Scroll of Enchant Cloak - Lesser Shadow Resistance
|
||||
[13529] = 38796, -- Scroll of Enchant 2H Weapon - Lesser Impact
|
||||
[13536] = 38797, -- Scroll of Enchant Bracer - Lesser Strength
|
||||
[13538] = 38798, -- Scroll of Enchant Chest - Lesser Absorption
|
||||
[13607] = 38799, -- Scroll of Enchant Chest - Mana
|
||||
[13612] = 38800, -- Scroll of Enchant Gloves - Mining
|
||||
[13617] = 38801, -- Scroll of Enchant Gloves - Herbalism
|
||||
[13620] = 38802, -- Scroll of Enchant Gloves - Fishing
|
||||
[13622] = 38803, -- Scroll of Enchant Bracer - Lesser Intellect
|
||||
[13626] = 38804, -- Scroll of Enchant Chest - Minor Stats
|
||||
[13631] = 38805, -- Scroll of Enchant Shield - Lesser Stamina
|
||||
[13635] = 38806, -- Scroll of Enchant Cloak - Defense
|
||||
[13637] = 38807, -- Scroll of Enchant Boots - Lesser Agility
|
||||
[13640] = 38808, -- Scroll of Enchant Chest - Greater Health
|
||||
[13642] = 38809, -- Scroll of Enchant Bracer - Spirit
|
||||
[13644] = 38810, -- Scroll of Enchant Boots - Lesser Stamina
|
||||
[13646] = 38811, -- Scroll of Enchant Bracer - Lesser Deflection
|
||||
[13648] = 38812, -- Scroll of Enchant Bracer - Stamina
|
||||
[13653] = 38813, -- Scroll of Enchant Weapon - Lesser Beastslayer
|
||||
[13655] = 38814, -- Scroll of Enchant Weapon - Lesser Elemental Slayer
|
||||
[13657] = 38815, -- Scroll of Enchant Cloak - Fire Resistance
|
||||
[13659] = 38816, -- Scroll of Enchant Shield - Spirit
|
||||
[13661] = 38817, -- Scroll of Enchant Bracer - Strength
|
||||
[13663] = 38818, -- Scroll of Enchant Chest - Greater Mana
|
||||
[13687] = 38819, -- Scroll of Enchant Boots - Lesser Spirit
|
||||
[13689] = 38820, -- Scroll of Enchant Shield - Lesser Block
|
||||
[13693] = 38821, -- Scroll of Enchant Weapon - Striking
|
||||
[13695] = 38822, -- Scroll of Enchant 2H Weapon - Impact
|
||||
[13698] = 38823, -- Scroll of Enchant Gloves - Skinning
|
||||
[13700] = 38824, -- Scroll of Enchant Chest - Lesser Stats
|
||||
[13746] = 38825, -- Scroll of Enchant Cloak - Greater Defense
|
||||
[13794] = 38826, -- Scroll of Enchant Cloak - Resistance
|
||||
[13815] = 38827, -- Scroll of Enchant Gloves - Agility
|
||||
[13817] = 38828, -- Scroll of Enchant Shield - Stamina
|
||||
[13822] = 38829, -- Scroll of Enchant Bracer - Intellect
|
||||
[13836] = 38830, -- Scroll of Enchant Boots - Stamina
|
||||
[13841] = 38831, -- Scroll of Enchant Gloves - Advanced Mining
|
||||
[13846] = 38832, -- Scroll of Enchant Bracer - Greater Spirit
|
||||
[13858] = 38833, -- Scroll of Enchant Chest - Superior Health
|
||||
[13868] = 38834, -- Scroll of Enchant Gloves - Advanced Herbalism
|
||||
[13882] = 38835, -- Scroll of Enchant Cloak - Lesser Agility
|
||||
[13887] = 38836, -- Scroll of Enchant Gloves - Strength
|
||||
[13890] = 38837, -- Scroll of Enchant Boots - Minor Speed
|
||||
[13898] = 38838, -- Scroll of Enchant Weapon - Fiery Weapon
|
||||
[13905] = 38839, -- Scroll of Enchant Shield - Greater Spirit
|
||||
[13915] = 38840, -- Scroll of Enchant Weapon - Demonslaying
|
||||
[13917] = 38841, -- Scroll of Enchant Chest - Superior Mana
|
||||
[13931] = 38842, -- Scroll of Enchant Bracer - Deflection
|
||||
[13933] = 38843, -- Scroll of Enchant Shield - Frost Resistance
|
||||
[13935] = 38844, -- Scroll of Enchant Boots - Agility
|
||||
[13937] = 38845, -- Scroll of Enchant 2H Weapon - Greater Impact
|
||||
[13939] = 38846, -- Scroll of Enchant Bracer - Greater Strength
|
||||
[13941] = 38847, -- Scroll of Enchant Chest - Stats
|
||||
[13943] = 38848, -- Scroll of Enchant Weapon - Greater Striking
|
||||
[13945] = 38849, -- Scroll of Enchant Bracer - Greater Stamina
|
||||
[13947] = 38850, -- Scroll of Enchant Gloves - Riding Skill
|
||||
[13948] = 38851, -- Scroll of Enchant Gloves - Minor Haste
|
||||
[20008] = 38852, -- Scroll of Enchant Bracer - Greater Intellect
|
||||
[20009] = 38853, -- Scroll of Enchant Bracer - Superior Spirit
|
||||
[20010] = 38854, -- Scroll of Enchant Bracer - Superior Strength
|
||||
[20011] = 38855, -- Scroll of Enchant Bracer - Superior Stamina
|
||||
[20012] = 38856, -- Scroll of Enchant Gloves - Greater Agility
|
||||
[20013] = 38857, -- Scroll of Enchant Gloves - Greater Strength
|
||||
[20014] = 38858, -- Scroll of Enchant Cloak - Greater Resistance
|
||||
[20015] = 38859, -- Scroll of Enchant Cloak - Superior Defense
|
||||
[20016] = 38860, -- Scroll of Enchant Shield - Vitality
|
||||
[20017] = 38861, -- Scroll of Enchant Shield - Greater Stamina
|
||||
[20020] = 38862, -- Scroll of Enchant Boots - Greater Stamina
|
||||
[20023] = 38863, -- Scroll of Enchant Boots - Greater Agility
|
||||
[20024] = 38864, -- Scroll of Enchant Boots - Spirit
|
||||
[20025] = 38865, -- Scroll of Enchant Chest - Greater Stats
|
||||
[20026] = 38866, -- Scroll of Enchant Chest - Major Health
|
||||
[20028] = 38867, -- Scroll of Enchant Chest - Major Mana
|
||||
[20029] = 38868, -- Scroll of Enchant Weapon - Icy Chill
|
||||
[20030] = 38869, -- Scroll of Enchant 2H Weapon - Superior Impact
|
||||
[20031] = 38870, -- Scroll of Enchant Weapon - Superior Striking
|
||||
[20032] = 38871, -- Scroll of Enchant Weapon - Lifestealing
|
||||
[20033] = 38872, -- Scroll of Enchant Weapon - Unholy Weapon
|
||||
[20034] = 38873, -- Scroll of Enchant Weapon - Crusader
|
||||
[20035] = 38874, -- Scroll of Enchant 2H Weapon - Major Spirit
|
||||
[20036] = 38875, -- Scroll of Enchant 2H Weapon - Major Intellect
|
||||
[21931] = 38876, -- Scroll of Enchant Weapon - Winter's Might
|
||||
[22749] = 38877, -- Scroll of Enchant Weapon - Spellpower
|
||||
[22750] = 38878, -- Scroll of Enchant Weapon - Healing Power
|
||||
[23799] = 38879, -- Scroll of Enchant Weapon - Strength
|
||||
[23800] = 38880, -- Scroll of Enchant Weapon - Agility
|
||||
[23801] = 38881, -- Scroll of Enchant Bracer - Mana Regeneration
|
||||
[23802] = 38882, -- Scroll of Enchant Bracer - Healing Power
|
||||
[23803] = 38883, -- Scroll of Enchant Weapon - Mighty Spirit
|
||||
[23804] = 38884, -- Scroll of Enchant Weapon - Mighty Intellect
|
||||
[25072] = 38885, -- Scroll of Enchant Gloves - Threat
|
||||
[25073] = 38886, -- Scroll of Enchant Gloves - Shadow Power
|
||||
[25074] = 38887, -- Scroll of Enchant Gloves - Frost Power
|
||||
[25078] = 38888, -- Scroll of Enchant Gloves - Fire Power
|
||||
[25079] = 38889, -- Scroll of Enchant Gloves - Healing Power
|
||||
[25080] = 38890, -- Scroll of Enchant Gloves - Superior Agility
|
||||
[25081] = 38891, -- Scroll of Enchant Cloak - Greater Fire Resistance
|
||||
[25082] = 38892, -- Scroll of Enchant Cloak - Greater Nature Resistance
|
||||
[25083] = 38893, -- Scroll of Enchant Cloak - Stealth
|
||||
[25084] = 38894, -- Scroll of Enchant Cloak - Subtlety
|
||||
[25086] = 38895, -- Scroll of Enchant Cloak - Dodge
|
||||
[27837] = 38896, -- Scroll of Enchant 2H Weapon - Agility
|
||||
[27899] = 38897, -- Scroll of Enchant Bracer - Brawn
|
||||
[27905] = 38898, -- Scroll of Enchant Bracer - Stats
|
||||
[27906] = 38899, -- Scroll of Enchant Bracer - Major Defense
|
||||
[27911] = 38900, -- Scroll of Enchant Bracer - Superior Healing
|
||||
[27913] = 38901, -- Scroll of Enchant Bracer - Restore Mana Prime
|
||||
[27914] = 38902, -- Scroll of Enchant Bracer - Fortitude
|
||||
[27917] = 38903, -- Scroll of Enchant Bracer - Spellpower
|
||||
[27944] = 38904, -- Scroll of Enchant Shield - Tough Shield
|
||||
[27945] = 38905, -- Scroll of Enchant Shield - Intellect
|
||||
[27946] = 38906, -- Scroll of Enchant Shield - Shield Block
|
||||
[27947] = 38907, -- Scroll of Enchant Shield - Resistance
|
||||
[27948] = 38908, -- Scroll of Enchant Boots - Vitality
|
||||
[27950] = 38909, -- Scroll of Enchant Boots - Fortitude
|
||||
[27951] = 37603, -- Scroll of Enchant Boots - Dexterity
|
||||
[27954] = 38910, -- Scroll of Enchant Boots - Surefooted
|
||||
[27957] = 38911, -- Scroll of Enchant Chest - Exceptional Health
|
||||
[27958] = 38912, -- Scroll of Enchant Chest - Exceptional Mana
|
||||
[27960] = 38913, -- Scroll of Enchant Chest - Exceptional Stats
|
||||
[27961] = 38914, -- Scroll of Enchant Cloak - Major Armor
|
||||
[27962] = 38915, -- Scroll of Enchant Cloak - Major Resistance
|
||||
[27967] = 38917, -- Scroll of Enchant Weapon - Major Striking
|
||||
[27968] = 38918, -- Scroll of Enchant Weapon - Major Intellect
|
||||
[27971] = 38919, -- Scroll of Enchant 2H Weapon - Savagery
|
||||
[27972] = 38920, -- Scroll of Enchant Weapon - Potency
|
||||
[27975] = 38921, -- Scroll of Enchant Weapon - Major Spellpower
|
||||
[27977] = 38922, -- Scroll of Enchant 2H Weapon - Major Agility
|
||||
[27981] = 38923, -- Scroll of Enchant Weapon - Sunfire
|
||||
[27982] = 38924, -- Scroll of Enchant Weapon - Soulfrost
|
||||
[27984] = 38925, -- Scroll of Enchant Weapon - Mongoose
|
||||
[28003] = 38926, -- Scroll of Enchant Weapon - Spellsurge
|
||||
[28004] = 38927, -- Scroll of Enchant Weapon - Battlemaster
|
||||
[33990] = 38928, -- Scroll of Enchant Chest - Major Spirit
|
||||
[33991] = 38929, -- Scroll of Enchant Chest - Restore Mana Prime
|
||||
[33992] = 38930, -- Scroll of Enchant Chest - Major Resilience
|
||||
[33993] = 38931, -- Scroll of Enchant Gloves - Blasting
|
||||
[33994] = 38932, -- Scroll of Enchant Gloves - Precise Strikes
|
||||
[33995] = 38933, -- Scroll of Enchant Gloves - Major Strength
|
||||
[33996] = 38934, -- Scroll of Enchant Gloves - Assault
|
||||
[33997] = 38935, -- Scroll of Enchant Gloves - Major Spellpower
|
||||
[33999] = 38936, -- Scroll of Enchant Gloves - Major Healing
|
||||
[34001] = 38937, -- Scroll of Enchant Bracer - Major Intellect
|
||||
[34002] = 38938, -- Scroll of Enchant Bracer - Assault
|
||||
[34003] = 38939, -- Scroll of Enchant Cloak - Spell Penetration
|
||||
[34004] = 38940, -- Scroll of Enchant Cloak - Greater Agility
|
||||
[34005] = 38941, -- Scroll of Enchant Cloak - Greater Arcane Resistance
|
||||
[34006] = 38942, -- Scroll of Enchant Cloak - Greater Shadow Resistance
|
||||
[34007] = 38943, -- Scroll of Enchant Boots - Cat's Swiftness
|
||||
[34008] = 38944, -- Scroll of Enchant Boots - Boar's Speed
|
||||
[34009] = 38945, -- Scroll of Enchant Shield - Major Stamina
|
||||
[34010] = 38946, -- Scroll of Enchant Weapon - Major Healing
|
||||
[42620] = 38947, -- Scroll of Enchant Weapon - Greater Agility
|
||||
[42974] = 38948, -- Scroll of Enchant Weapon - Executioner
|
||||
[44383] = 38949, -- Scroll of Enchant Shield - Resilience
|
||||
[44483] = 38950, -- Scroll of Enchant Cloak - Superior Frost Resistance
|
||||
[44484] = 38951, -- Scroll of Enchant Gloves - Expertise
|
||||
[44488] = 38953, -- Scroll of Enchant Gloves - Precision
|
||||
[44489] = 38954, -- Scroll of Enchant Shield - Defense
|
||||
[44492] = 38955, -- Scroll of Enchant Chest - Mighty Health
|
||||
[44494] = 38956, -- Scroll of Enchant Cloak - Superior Nature Resistance
|
||||
[44500] = 38959, -- Scroll of Enchant Cloak - Superior Agility
|
||||
[44506] = 38960, -- Scroll of Enchant Gloves - Gatherer
|
||||
[44508] = 38961, -- Scroll of Enchant Boots - Greater Spirit
|
||||
[44509] = 38962, -- Scroll of Enchant Chest - Greater Mana Restoration
|
||||
[44510] = 38963, -- Scroll of Enchant Weapon - Exceptional Spirit
|
||||
[44513] = 38964, -- Scroll of Enchant Gloves - Greater Assault
|
||||
[44524] = 38965, -- Scroll of Enchant Weapon - Icebreaker
|
||||
[44528] = 38966, -- Scroll of Enchant Boots - Greater Fortitude
|
||||
[44529] = 38967, -- Scroll of Enchant Gloves - Major Agility
|
||||
[44555] = 38968, -- Scroll of Enchant Bracers - Exceptional Intellect
|
||||
[44556] = 38969, -- Scroll of Enchant Cloak - Superior Fire Resistance
|
||||
[44575] = 44815, -- Scroll of Enchant Bracers - Greater Assault
|
||||
[44576] = 38972, -- Scroll of Enchant Weapon - Lifeward
|
||||
[44582] = 38973, -- Scroll of Enchant Cloak - Spell Piercing
|
||||
[44584] = 38974, -- Scroll of Enchant Boots - Greater Vitality
|
||||
[44588] = 38975, -- Scroll of Enchant Chest - Exceptional Resilience
|
||||
[44589] = 38976, -- Scroll of Enchant Boots - Superior Agility
|
||||
[44590] = 38977, -- Scroll of Enchant Cloak - Superior Shadow Resistance
|
||||
[44591] = 38978, -- Scroll of Enchant Cloak - Titanweave
|
||||
[44592] = 38979, -- Scroll of Enchant Gloves - Exceptional Spellpower
|
||||
[44593] = 38980, -- Scroll of Enchant Bracers - Major Spirit
|
||||
[44595] = 38981, -- Scroll of Enchant 2H Weapon - Scourgebane
|
||||
[44596] = 38982, -- Scroll of Enchant Cloak - Superior Arcane Resistance
|
||||
[44598] = 38984, -- Scroll of Enchant Bracer - Expertise
|
||||
[44612] = 38985, -- Scroll of Enchant Gloves - Greater Blasting
|
||||
[44616] = 38987, -- Scroll of Enchant Bracers - Greater Stats
|
||||
[44621] = 38988, -- Scroll of Enchant Weapon - Giant Slayer
|
||||
[44623] = 38989, -- Scroll of Enchant Chest - Super Stats
|
||||
[44625] = 38990, -- Scroll of Enchant Gloves - Armsman
|
||||
[44629] = 38991, -- Scroll of Enchant Weapon - Exceptional Spellpower
|
||||
[44630] = 38992, -- Scroll of Enchant 2H Weapon - Greater Savagery
|
||||
[44631] = 38993, -- Scroll of Enchant Cloak - Shadow Armor
|
||||
[44633] = 38995, -- Scroll of Enchant Weapon - Exceptional Agility
|
||||
[44635] = 38997, -- Scroll of Enchant Bracers - Greater Spellpower
|
||||
[46578] = 38998, -- Scroll of Enchant Weapon - Deathfrost
|
||||
[46594] = 38999, -- Scroll of Enchant Chest - Defense
|
||||
[47051] = 39000, -- Scroll of Enchant Cloak - Steelweave
|
||||
[47672] = 39001, -- Scroll of Enchant Cloak - Mighty Armor
|
||||
[47766] = 39002, -- Scroll of Enchant Chest - Greater Defense
|
||||
[47898] = 39003, -- Scroll of Enchant Cloak - Greater Speed
|
||||
[47899] = 39004, -- Scroll of Enchant Cloak - Wisdom
|
||||
[47900] = 39005, -- Scroll of Enchant Chest - Super Health
|
||||
[47901] = 39006, -- Scroll of Enchant Boots - Tuskarr's Vitality
|
||||
[59619] = 44497, -- Scroll of Enchant Weapon - Accuracy
|
||||
[59621] = 44493, -- Scroll of Enchant Weapon - Berserking
|
||||
[59625] = 43987, -- Scroll of Enchant Weapon - Black Magic
|
||||
[60606] = 44449, -- Scroll of Enchant Boots - Assault
|
||||
[60609] = 44456, -- Scroll of Enchant Cloak - Speed
|
||||
[60616] = 38971, -- Scroll of Enchant Bracers - Striking
|
||||
[60621] = 44453, -- Scroll of Enchant Weapon - Greater Potency
|
||||
[60623] = 38986, -- Scroll of Enchant Boots - Icewalker
|
||||
[60653] = 44455, -- Scroll of Enchant Shield - Greater Intellect
|
||||
[60663] = 44457, -- Scroll of Enchant Cloak - Major Agility
|
||||
[60668] = 44458, -- Scroll of Enchant Gloves - Crusher
|
||||
[60691] = 44463, -- Scroll of Enchant 2H Weapon - Massacre
|
||||
[60692] = 44465, -- Scroll of Enchant Chest - Powerful Stats
|
||||
[60707] = 44466, -- Scroll of Enchant Weapon - Superior Potency
|
||||
[60714] = 44467, -- Scroll of Enchant Weapon - Mighty Spellpower
|
||||
[60763] = 44469, -- Scroll of Enchant Boots - Greater Assault
|
||||
[60767] = 44470, -- Scroll of Enchant Bracer - Superior Spellpower
|
||||
[62256] = 44947, -- Scroll of Enchant Bracer - Major Stamina
|
||||
[62257] = 44946, -- Scroll of Enchant Weapon - Titanguard
|
||||
[62948] = 45056, -- Scroll of Enchant Staff - Greater Spellpower
|
||||
[62959] = 45060, -- Scroll of Enchant Staff - Spellpower
|
||||
[63746] = 45628, -- Scroll of Enchant Boots - Lesser Accuracy
|
||||
[64441] = 46026, -- Scroll of Enchant Weapon - Blade Ward
|
||||
[64579] = 46098, -- Scroll of Enchant Weapon - Blood Draining
|
||||
[71692] = 50816, -- Scroll of Enchant Gloves - Angler
|
||||
[968676] = 967760, -- Scroll of Enchant Weapon - Unstoppable Assault I
|
||||
[968677] = 967761, -- Scroll of Enchant Weapon - Unstoppable Assault II
|
||||
[968678] = 967762, -- Scroll of Enchant Weapon - Unstoppable Assault III
|
||||
[968679] = 967763, -- Scroll of Enchant Weapon - Lucid Assault I
|
||||
[968680] = 967764, -- Scroll of Enchant Weapon - Lucid Assault II
|
||||
[968681] = 967765, -- Scroll of Enchant Weapon - Lucid Assault III
|
||||
[968682] = 967766, -- Scroll of Enchant Weapon - Spellbinder's Rage I
|
||||
[968683] = 967767, -- Scroll of Enchant Weapon - Spellbinder's Rage II
|
||||
[968684] = 967768, -- Scroll of Enchant Weapon - Spellbinder's Rage III
|
||||
[968685] = 967769, -- Scroll of Enchant Weapon - Ninja's Focus I
|
||||
[968686] = 967770, -- Scroll of Enchant Weapon - Ninja's Focus II
|
||||
[968687] = 967771, -- Scroll of Enchant Weapon - Ninja's Focus III
|
||||
[968688] = 967772, -- Scroll of Enchant Weapon - Grovewarden's Blessing I
|
||||
[968689] = 967773, -- Scroll of Enchant Weapon - Grovewarden's Blessing II
|
||||
[968690] = 967774, -- Scroll of Enchant Weapon - Grovewarden's Blessing III
|
||||
[968691] = 967775, -- Scroll of Enchant Weapon - Viscious Assault I
|
||||
[968692] = 967776, -- Scroll of Enchant Weapon - Viscious Assault II
|
||||
[968693] = 967777, -- Scroll of Enchant Weapon - Viscious Assault III
|
||||
[968694] = 967778, -- Scroll of Enchant Weapon - Arcane Dexterity I
|
||||
[968695] = 967779, -- Scroll of Enchant Weapon - Arcane Dexterity II
|
||||
[968696] = 967780, -- Scroll of Enchant Weapon - Arcane Dexterity III
|
||||
[968697] = 967781, -- Scroll of Enchant Weapon - Arcane Artillery I
|
||||
[968698] = 967782, -- Scroll of Enchant Weapon - Arcane Artillery II
|
||||
[968699] = 967783, -- Scroll of Enchant Weapon - Arcane Artillery III
|
||||
[968700] = 967784, -- Scroll of Enchant Weapon - Arcane Precision I
|
||||
[968701] = 967785, -- Scroll of Enchant Weapon - Arcane Precision II
|
||||
[968702] = 967786, -- Scroll of Enchant Weapon - Arcane Precision III
|
||||
[968770] = 967787, -- Scroll of Enchant Weapon - Crusader II
|
||||
[968771] = 967788, -- Scroll of Enchant Weapon - Crusader III
|
||||
[1968677] = 1204125, -- Scroll of Enchant Weapon - Void Assault
|
||||
[1968678] = 1204126, -- Scroll of Enchant Weapon - Overpowering Void Assault
|
||||
[1968680] = 1204127, -- Scroll of Enchant Weapon - Dread Assault
|
||||
[1968681] = 1204128, -- Scroll of Enchant Weapon - Overpowering Dread Assault
|
||||
[1968683] = 1204129, -- Scroll of Enchant Weapon - Twisted Evoker
|
||||
[1968684] = 1204130, -- Scroll of Enchant Weapon - Overpowering Twisted Evoker
|
||||
[1968686] = 1204131, -- Scroll of Enchant Weapon - Twisted Assault
|
||||
[1968687] = 1204132, -- Scroll of Enchant Weapon - Overpowering Twisted Assault
|
||||
[1968689] = 1204133, -- Scroll of Enchant Weapon - Twisted Channeler
|
||||
[1968690] = 1204134, -- Scroll of Enchant Weapon - Overpowering Twisted Channeler
|
||||
[1968692] = 1204135, -- Scroll of Enchant Weapon - Dread Omen Strikes
|
||||
[1968693] = 1204136, -- Scroll of Enchant Weapon - Overpowering Dread Omen Strikes
|
||||
[1968695] = 1204137, -- Scroll of Enchant Weapon - Void Flows
|
||||
[1968696] = 1204138, -- Scroll of Enchant Weapon - Overpowering Void Flows
|
||||
[1968698] = 1204139, -- Scroll of Enchant Weapon - Void Blasting
|
||||
[1968699] = 1204140, -- Scroll of Enchant Weapon - Overpowering Void Blasting
|
||||
[1968701] = 1204141, -- Scroll of Enchant Weapon - Dread Precision
|
||||
[1968702] = 1204142, -- Scroll of Enchant Weapon - Overpowering Dread Precision
|
||||
[1968770] = 1204143, -- Scroll of Enchant Weapon - Twisted Crusader
|
||||
[1968771] = 1204144, -- Scroll of Enchant Weapon - Overpowering Twisted Crusader
|
||||
}
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Crafting --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_crafting --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
--load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Gather = TSM:NewModule("Gather", "AceEvent-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Crafting") -- loads the localization table
|
||||
|
||||
local next = next
|
||||
local private = { shoppingItems = {} }
|
||||
|
||||
function Gather:BuyFromMerchant(neededMats)
|
||||
for i = 1, GetMerchantNumItems() do
|
||||
local itemString = TSMAPI:GetItemString(GetMerchantItemLink(i))
|
||||
if neededMats[itemString] then
|
||||
local maxStack = GetMerchantItemMaxStack(i)
|
||||
local toBuy = neededMats[itemString]
|
||||
while toBuy > 0 do
|
||||
BuyMerchantItem(i, math.min(toBuy, maxStack))
|
||||
toBuy = toBuy - maxStack
|
||||
TSM.db.factionrealm.gathering.gatheredMats = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Gather:gatherItems(source, task)
|
||||
local items = TSM.db.factionrealm.gathering.availableMats
|
||||
|
||||
if source == L["Vendor"] then
|
||||
Gather:BuyFromMerchant(items)
|
||||
elseif source == UnitName("player") and (task == L["Visit Bank"] or task == L["Visit Guild Bank"]) then
|
||||
Gather:GatherBank(items)
|
||||
elseif source == UnitName("player") and task == L["Mail Items"] then
|
||||
Gather:MailItems(items)
|
||||
elseif source == L["Auction House"] then
|
||||
if TSMAPI:AHTabIsVisible("Shopping") then
|
||||
private.shoppingItems = {}
|
||||
for itemString, quantity in pairs(items) do
|
||||
tinsert(private.shoppingItems, { itemString = itemString, quantity = quantity })
|
||||
end
|
||||
Gather:ShoppingSearch(private.shoppingItems[1].itemString, private.shoppingItems[1].quantity)
|
||||
else
|
||||
TSM:Printf(L["Please switch to the Shopping Tab to perform the gathering search."])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Gather:GatherBank(moveItems)
|
||||
local next = next
|
||||
if next(moveItems) == nil then
|
||||
TSM:Print(L["Nothing to Gather"])
|
||||
else
|
||||
TSM:Print(L["Gathering Crafting Mats"])
|
||||
TSMAPI:MoveItems(moveItems, Gather.PrintMsg)
|
||||
TSM.db.factionrealm.gathering.gatheredMats = true
|
||||
end
|
||||
end
|
||||
|
||||
function Gather.PrintMsg(message)
|
||||
if message then
|
||||
TSM:Print(message)
|
||||
end
|
||||
end
|
||||
|
||||
function Gather:MerchantSells(neededItem)
|
||||
for i = 1, GetMerchantNumItems() do
|
||||
local itemString = TSMAPI:GetItemString(GetMerchantItemLink(i))
|
||||
if neededItem == itemString then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function Gather:MailItems(neededItems)
|
||||
local next = next
|
||||
if next(neededItems) == nil then
|
||||
TSM:Print(L["Nothing to Mail"])
|
||||
else
|
||||
local crafter = TSM.db.factionrealm.gathering.crafter
|
||||
if crafter then
|
||||
TSM:Print(format(L["Mailing Craft Mats to %s"], crafter))
|
||||
TSMAPI:ModuleAPI("Mailing", "mailItems", neededItems, crafter, Gather.PrintMsg)
|
||||
TSM.db.factionrealm.gathering.gatheredMats = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function ShoppingNextSearch()
|
||||
if next(private.shoppingItems) then
|
||||
Gather:ShoppingSearch(private.shoppingItems[1].itemString, private.shoppingItems[1].quantity)
|
||||
end
|
||||
end
|
||||
|
||||
local function ShoppingCallback(remainingQty, boughtItem, stackSize)
|
||||
if not boughtItem then
|
||||
if next(private.shoppingItems) then
|
||||
local name = TSMAPI:GetSafeItemInfo(private.shoppingItems[1].itemString)
|
||||
TSM:Print("No Auctions found for", name)
|
||||
tremove(private.shoppingItems, 1)
|
||||
TSMAPI:CreateTimeDelay("shoppingSearchThrottle", 0.5, ShoppingNextSearch)
|
||||
end
|
||||
else
|
||||
TSM.Inventory.gatherQuantity = remainingQty
|
||||
if TSM.Inventory.gatherItem and boughtItem ~= TSM.Inventory.gatherItem then
|
||||
for itemString, data in pairs(TSMAPI.Conversions[TSM.Inventory.gatherItem] or {}) do
|
||||
if itemString == boughtItem then
|
||||
TSM.db.factionrealm.gathering.destroyingMats[boughtItem] = (TSM.db.factionrealm.gathering.destroyingMats[boughtItem] or 0) + stackSize
|
||||
end
|
||||
end
|
||||
end
|
||||
if max(TSM.Inventory.gatherQuantity, 0) == 0 and next(private.shoppingItems) then
|
||||
tremove(private.shoppingItems, 1)
|
||||
TSMAPI:CreateTimeDelay("shoppingSearchThrottle", 0.5, ShoppingNextSearch)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Gather:ShoppingSearch(itemString, need, ignoreMaxQty)
|
||||
TSM.Inventory.gatherQuantity = nil
|
||||
local matPrice = TSMAPI:FormatTextMoney(TSM.Cost:GetMatCost(itemString))
|
||||
if not TSM.db.factionrealm.gathering.destroyDisable then
|
||||
if TSMAPI.InkConversions[itemString] then
|
||||
TSM.Inventory.gatherItem = itemString
|
||||
if TSM.db.factionrealm.gathering.evenStacks then
|
||||
if ignoreMaxQty then
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString) .. "/even", ShoppingCallback)
|
||||
else
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString) .. "/even/x" .. need, ShoppingCallback)
|
||||
end
|
||||
elseif ignoreMaxQty then
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString), ShoppingCallback)
|
||||
else
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString) .. "/x" .. need, ShoppingCallback)
|
||||
end
|
||||
elseif TSMAPI:GetDisenchantData(itemString) then
|
||||
TSM.Inventory.gatherItem = itemString
|
||||
if ignoreMaxQty then
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString) .. "/exact", ShoppingCallback)
|
||||
else
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString) .. "/exact/x" .. need, ShoppingCallback)
|
||||
end
|
||||
elseif TSMAPI.Conversions[itemString] then
|
||||
TSM.Inventory.gatherItem = itemString
|
||||
local convertSource
|
||||
for _, data in pairs(TSMAPI.Conversions[itemString]) do
|
||||
convertSource = data.source
|
||||
break
|
||||
end
|
||||
if convertSource == "mill" or convertSource == "prospect" then
|
||||
if TSM.db.factionrealm.gathering.evenStacks then
|
||||
if ignoreMaxQty then
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString) .. "/even", ShoppingCallback)
|
||||
else
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString) .. "/even/x" .. need, ShoppingCallback)
|
||||
end
|
||||
elseif ignoreMaxQty then
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString), ShoppingCallback)
|
||||
else
|
||||
TSMAPI:ModuleAPI("Shopping", "runDestroySearch", TSMAPI:GetSafeItemInfo(itemString) .. "/x" .. need, ShoppingCallback)
|
||||
end
|
||||
else
|
||||
TSMAPI:ModuleAPI("Shopping", "runSearch", TSMAPI:GetSafeItemInfo(itemString) .. "/exact/x" .. need, ShoppingCallback)
|
||||
end
|
||||
else
|
||||
TSM.Inventory.gatherItem = nil
|
||||
if ignoreMaxQty then
|
||||
TSMAPI:ModuleAPI("Shopping", "runSearch", TSMAPI:GetSafeItemInfo(itemString) .. "/exact", ShoppingCallback)
|
||||
else
|
||||
TSMAPI:ModuleAPI("Shopping", "runSearch", TSMAPI:GetSafeItemInfo(itemString) .. "/exact/x" .. need, ShoppingCallback)
|
||||
end
|
||||
end
|
||||
|
||||
else
|
||||
TSM.Inventory.gatherItem = nil
|
||||
if ignoreMaxQty then
|
||||
TSMAPI:ModuleAPI("Shopping", "runSearch", TSMAPI:GetSafeItemInfo(itemString) .. "/exact", ShoppingCallback)
|
||||
else
|
||||
TSMAPI:ModuleAPI("Shopping", "runSearch", TSMAPI:GetSafeItemInfo(itemString) .. "/exact/x" .. need, ShoppingCallback)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,340 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Crafting --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_crafting --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Inventory = TSM:NewModule("Inventory", "AceEvent-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Crafting") -- loads the localization table
|
||||
|
||||
|
||||
-- gets the number of an item in the current player's bags
|
||||
function Inventory:GetPlayerBagNum(itemString)
|
||||
if not itemString then return end
|
||||
|
||||
if TSMAPI.SOULBOUND_MATS[itemString] then
|
||||
return GetItemCount(itemString)
|
||||
else
|
||||
local bags = TSMAPI:ModuleAPI("ItemTracker", "playerbags", UnitName("player")) or {}
|
||||
return bags and bags[itemString] or 0
|
||||
end
|
||||
end
|
||||
|
||||
function Inventory:GetTotals()
|
||||
local bagTotal, auctionTotal, otherTotal, total = {}, {}, {}, {}
|
||||
|
||||
for _, player in pairs(TSMAPI:ModuleAPI("ItemTracker", "playerlist") or {}) do
|
||||
if player == UnitName("player") or not TSM.db.global.ignoreCharacters[player] then
|
||||
local bags = TSMAPI:ModuleAPI("ItemTracker", "playerbags", player) or {}
|
||||
local bank = TSMAPI:ModuleAPI("ItemTracker", "playerbank", player) or {}
|
||||
local mail = TSMAPI:ModuleAPI("ItemTracker", "playermail", player) or {}
|
||||
local auctions = TSMAPI:ModuleAPI("ItemTracker", "playerauctions", player) or {}
|
||||
for itemString, quantity in pairs(bags) do
|
||||
if player == UnitName("player") then
|
||||
bagTotal[itemString] = (bagTotal[itemString] or 0) + quantity
|
||||
total[itemString] = (total[itemString] or 0) + quantity
|
||||
else
|
||||
otherTotal[itemString] = (otherTotal[itemString] or 0) + quantity
|
||||
total[itemString] = (total[itemString] or 0) + quantity
|
||||
end
|
||||
end
|
||||
for itemString, quantity in pairs(bank) do
|
||||
otherTotal[itemString] = (otherTotal[itemString] or 0) + quantity
|
||||
total[itemString] = (total[itemString] or 0) + quantity
|
||||
end
|
||||
for itemString, quantity in pairs(mail) do
|
||||
otherTotal[itemString] = (otherTotal[itemString] or 0) + quantity
|
||||
total[itemString] = (total[itemString] or 0) + quantity
|
||||
end
|
||||
for itemString, quantity in pairs(auctions) do
|
||||
auctionTotal[itemString] = (auctionTotal[itemString] or 0) + quantity
|
||||
total[itemString] = (total[itemString] or 0) + quantity
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
for itemString in pairs(TSMAPI.SOULBOUND_MATS) do
|
||||
local bagNum = GetItemCount(itemString)
|
||||
local bankNum = GetItemCount(itemString, true) - GetItemCount(itemString)
|
||||
bagTotal[itemString] = (bagTotal[itemString] or 0) + bagNum
|
||||
otherTotal[itemString] = (otherTotal[itemString] or 0) + bankNum
|
||||
total[itemString] = (total[itemString] or 0) + bagNum + bankNum
|
||||
end
|
||||
|
||||
-- add gbank counts of all non-ignored guilds
|
||||
for _, guild in pairs(TSMAPI:ModuleAPI("ItemTracker", "guildlist") or {}) do
|
||||
if not TSM.db.global.ignoreGuilds[guild] then
|
||||
local gbank = TSMAPI:ModuleAPI("ItemTracker", "guildbank", guild) or {}
|
||||
for itemString, quantity in pairs(gbank) do
|
||||
otherTotal[itemString] = (otherTotal[itemString] or 0) + quantity
|
||||
total[itemString] = (total[itemString] or 0) + quantity
|
||||
end
|
||||
end
|
||||
end
|
||||
return bagTotal, auctionTotal, otherTotal, total
|
||||
end
|
||||
|
||||
-- gets the total number of some item that they have
|
||||
function Inventory:GetTotalQuantity(itemString)
|
||||
if not itemString then return 0 end
|
||||
local count = 0
|
||||
|
||||
-- add bags/bank/mail/auction counts of all non-ignored characters (always including current character)
|
||||
for _, player in pairs(TSMAPI:ModuleAPI("ItemTracker", "playerlist") or {}) do
|
||||
if player == UnitName("player") or not TSM.db.global.ignoreCharacters[player] then
|
||||
local bags = TSMAPI:ModuleAPI("ItemTracker", "playerbags", player) or {}
|
||||
local bank = TSMAPI:ModuleAPI("ItemTracker", "playerbank", player) or {}
|
||||
local mail = TSMAPI:ModuleAPI("ItemTracker", "playermail", player) or {}
|
||||
local auctions = TSMAPI:ModuleAPI("ItemTracker", "playerauctions", player) or {}
|
||||
count = count + (bags[itemString] or 0)
|
||||
count = count + (bank[itemString] or 0)
|
||||
count = count + (mail[itemString] or 0)
|
||||
count = count + (auctions[itemString] or 0)
|
||||
end
|
||||
end
|
||||
-- add gbank counts of all non-ignored guilds
|
||||
for _, guild in pairs(TSMAPI:ModuleAPI("ItemTracker", "guildlist") or {}) do
|
||||
if not TSM.db.global.ignoreGuilds[guild] then
|
||||
local bank = TSMAPI:ModuleAPI("ItemTracker", "guildbank", guild) or {}
|
||||
count = count + (bank[itemString] or 0)
|
||||
end
|
||||
end
|
||||
|
||||
if TSMAPI.SOULBOUND_MATS[itemString] then
|
||||
count = count + GetItemCount(itemString, true)
|
||||
end
|
||||
|
||||
return count
|
||||
end
|
||||
|
||||
function Inventory:GetItemSources(crafter, neededMats)
|
||||
if not neededMats then return end
|
||||
local sources = {}
|
||||
local gbank = {}
|
||||
local next = next
|
||||
local crafterBags = TSMAPI:ModuleAPI("ItemTracker", "playerbags", crafter) or {}
|
||||
local crafterMail = TSMAPI:ModuleAPI("ItemTracker", "playermail", crafter) or {}
|
||||
local crafterBank = TSMAPI:ModuleAPI("ItemTracker", "playerbank", crafter) or {}
|
||||
|
||||
-- add vendor items
|
||||
local task = {}
|
||||
local items = {}
|
||||
for itemString, quantity in pairs(neededMats) do
|
||||
if TSMAPI:GetVendorCost(itemString) then
|
||||
local vendorNeed = quantity - ((crafterBags[itemString] or 0) + (crafterMail[itemString] or 0) + (crafterBank[itemString] or 0))
|
||||
if vendorNeed > 0 then
|
||||
items[itemString] = vendorNeed
|
||||
end
|
||||
elseif TSMAPI.Conversions[itemString] and TSMAPI.InkConversions[itemString] then
|
||||
local tradeItem, data = next(TSMAPI.Conversions[itemString])
|
||||
if data.source == "vendortrade" then
|
||||
local num = floor(Inventory:GetTotalQuantity(tradeItem) * data.rate)
|
||||
if quantity > Inventory:GetTotalQuantity(itemString) and num >= (quantity - Inventory:GetTotalQuantity(itemString)) then
|
||||
items[itemString] = quantity - Inventory:GetTotalQuantity(itemString)
|
||||
neededMats[tradeItem] = (neededMats[tradeItem] or 0) + quantity / data.rate -- add the qty of IOD to needed mats
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if next(items) then
|
||||
tinsert(task, { taskType = L["Visit Vendor"], items = items })
|
||||
tinsert(sources, { sourceName = L["Vendor"], isCrafter = false, isVendor = true, isAH = false, tasks = task })
|
||||
end
|
||||
|
||||
-- double check if crafter already has all the items needed
|
||||
local shortItems = {}
|
||||
for itemString, quantity in pairs(neededMats) do
|
||||
local soulboundBagCount
|
||||
if TSMAPI.SOULBOUND_MATS[itemString] then
|
||||
soulboundBagCount = GetItemCount(itemString)
|
||||
end
|
||||
local need = max(quantity - (crafterBags[itemString] or soulboundBagCount or 0), 0)
|
||||
if need > 0 then
|
||||
shortItems[itemString] = need
|
||||
end
|
||||
end
|
||||
if not next(shortItems) then return end
|
||||
|
||||
-- add bags/bank/mail "tasks" for needed items of all non-ignored characters (always include crafter)
|
||||
for _, player in pairs(TSMAPI:ModuleAPI("ItemTracker", "playerlist") or {}) do
|
||||
if player == crafter or not TSM.db.global.ignoreCharacters[player] then
|
||||
local task = {}
|
||||
local bags = TSMAPI:ModuleAPI("ItemTracker", "playerbags", player) or {}
|
||||
local bank = TSMAPI:ModuleAPI("ItemTracker", "playerbank", player) or {}
|
||||
local guild = TSMAPI:ModuleAPI("ItemTracker", "playerguild", player) or {}
|
||||
local gbank = {}
|
||||
if guild and not TSM.db.global.ignoreGuilds[guild] then
|
||||
gbank = TSMAPI:ModuleAPI("ItemTracker", "guildbank", guild) or {}
|
||||
end
|
||||
local mail = TSMAPI:ModuleAPI("ItemTracker", "playermail", player) or {}
|
||||
local bankItems = {}
|
||||
local gbankItems = {}
|
||||
local mailItems = {}
|
||||
local bagItems = {}
|
||||
|
||||
for itemString in pairs(neededMats) do
|
||||
local soulboundBagCount, soulboundBankCount
|
||||
if TSMAPI.SOULBOUND_MATS[itemString] then
|
||||
soulboundBagCount = GetItemCount(itemString)
|
||||
soulboundBankCount = GetItemCount(itemString, true) - soulboundBagCount
|
||||
end
|
||||
if (bank[itemString] or (soulboundBankCount and soulboundBankCount > 0)) and shortItems[itemString] then
|
||||
if shortItems[itemString] - (crafterMail[itemString] or 0) - (player ~= crafter and bags[itemString] or 0) > 0 then
|
||||
bankItems[itemString] = bank[itemString] or soulboundBankCount
|
||||
end
|
||||
end
|
||||
if gbank[itemString] and shortItems[itemString] then
|
||||
if shortItems[itemString] - (crafterMail[itemString] or 0) - (player ~= crafter and bags[itemString] or 0) > 0 then
|
||||
gbankItems[itemString] = gbank[itemString]
|
||||
end
|
||||
end
|
||||
if mail[itemString] and shortItems[itemString] then
|
||||
mailItems[itemString] = mail[itemString]
|
||||
end
|
||||
if bags[itemString] and shortItems[itemString] then
|
||||
if player ~= crafter then
|
||||
if shortItems[itemString] - (crafterMail[itemString] or 0) > 0 then
|
||||
bagItems[itemString] = bags[itemString]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
-- add mail tasks for destroyable items bought through shopping search (exclude items already added to mail tasks)
|
||||
for itemString, quantity in pairs(TSM.db.factionrealm.gathering.destroyingMats) do
|
||||
if mail[itemString] and not shortItems[itemString] then
|
||||
mailItems[itemString] = quantity
|
||||
end
|
||||
end
|
||||
|
||||
if next(bankItems) then
|
||||
tinsert(task, { taskType = L["Visit Bank"], items = bankItems })
|
||||
end
|
||||
if next(gbankItems) then
|
||||
tinsert(task, { taskType = L["Visit Guild Bank"], items = gbankItems })
|
||||
end
|
||||
if next(mailItems) then
|
||||
tinsert(task, { taskType = L["Collect Mail"], items = mailItems })
|
||||
end
|
||||
if next(bagItems) then
|
||||
tinsert(task, { taskType = L["Mail Items"], items = bagItems })
|
||||
end
|
||||
if next(task) then
|
||||
tinsert(sources, { sourceName = player, isCrafter = player == crafter, isVendor = false, isAH = false, tasks = task, isCurrent = (player == UnitName("player")) })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- add auction house tasks
|
||||
local auctionTask = {}
|
||||
local auctionItems = {}
|
||||
for itemString, quantity in pairs(neededMats) do
|
||||
if not TSMAPI.SOULBOUND_MATS[itemString] and not TSMAPI:GetVendorCost(itemString) then
|
||||
local need
|
||||
if TSM.Inventory.gatherItem == itemString and TSM.Inventory.gatherQuantity then
|
||||
need = TSM.Inventory.gatherQuantity
|
||||
else
|
||||
need = max(quantity - (TSM.Inventory:GetTotalQuantity(itemString) or 0), 0)
|
||||
end
|
||||
if need > 0 then
|
||||
auctionItems[itemString] = need
|
||||
end
|
||||
end
|
||||
end
|
||||
if next(auctionItems) then
|
||||
tinsert(auctionTask, { taskType = L["Search for Mats"], items = auctionItems })
|
||||
tinsert(sources, { sourceName = L["Auction House"], isCrafter = false, isVendor = false, isAH = true, tasks = auctionTask })
|
||||
end
|
||||
|
||||
-- add destroying tasks
|
||||
local destroyingTask, millItems, prospectItems, transformItems, deItems = {}, {}, {}, {}, {}
|
||||
|
||||
for itemString, quantity in pairs(neededMats) do
|
||||
local need = max(quantity - (TSM.Inventory:GetTotalQuantity(itemString) or 0), 0)
|
||||
-- conversion items
|
||||
for destroyItem, data in pairs(TSMAPI.Conversions[itemString] or {}) do
|
||||
if TSM.db.factionrealm.gathering.destroyingMats[destroyItem] then
|
||||
if need > 0 then
|
||||
local destroyNeed
|
||||
if data.source == "mill" then
|
||||
destroyNeed = floor(TSM.db.factionrealm.gathering.destroyingMats[destroyItem] / 5)
|
||||
if destroyNeed > 0 then
|
||||
millItems[destroyItem] = (millItems[destroyItem] or 0) + destroyNeed
|
||||
end
|
||||
elseif data.source == "prospect" then
|
||||
destroyNeed = floor(TSM.db.factionrealm.gathering.destroyingMats[destroyItem] / 5)
|
||||
if destroyNeed > 0 then
|
||||
prospectItems[destroyItem] = (prospectItems[destroyItem] or 0) + destroyNeed
|
||||
end
|
||||
elseif data.source == "transform" then
|
||||
if data.rate == 1 / 3 then
|
||||
destroyNeed = floor(TSM.db.factionrealm.gathering.destroyingMats[destroyItem] / 3)
|
||||
elseif data.rate == 1 / 10 then
|
||||
destroyNeed = floor(TSM.db.factionrealm.gathering.destroyingMats[destroyItem] / 10)
|
||||
else
|
||||
destroyNeed = TSM.db.factionrealm.gathering.destroyingMats[destroyItem]
|
||||
end
|
||||
if destroyNeed > 0 then
|
||||
transformItems[destroyItem] = (transformItems[destroyItem] or 0) + destroyNeed
|
||||
end
|
||||
end
|
||||
else
|
||||
TSM.db.factionrealm.gathering.destroyingMats[destroyItem] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
-- disenchantable items
|
||||
if next(TSM.db.factionrealm.gathering.destroyingMats) then
|
||||
for deItemString, quantity in pairs(TSM.db.factionrealm.gathering.destroyingMats) do
|
||||
if Inventory:IsDisenchantable(deItemString) then
|
||||
if need > 0 then
|
||||
deItems[deItemString] = quantity
|
||||
else
|
||||
TSM.db.factionrealm.gathering.destroyingMats[deItemString] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if next(millItems) then
|
||||
tinsert(destroyingTask, { taskType = L["Milling"], items = millItems })
|
||||
end
|
||||
if next(prospectItems) then
|
||||
tinsert(destroyingTask, { taskType = L["Prospect"], items = prospectItems })
|
||||
end
|
||||
if next(transformItems) then
|
||||
tinsert(destroyingTask, { taskType = L["Transform"], items = transformItems })
|
||||
end
|
||||
if next(deItems) then
|
||||
tinsert(destroyingTask, { taskType = L["Disenchant"], items = deItems })
|
||||
end
|
||||
if next(destroyingTask) then
|
||||
tinsert(sources, { sourceName = L["Destroying"], isCrafter = false, isVendor = false, isAH = true, tasks = destroyingTask })
|
||||
end
|
||||
|
||||
|
||||
sort(sources, function(a, b)
|
||||
if a.isCurrent then return true end
|
||||
if b.isCurrent then return false end
|
||||
if a.isAH then return false end
|
||||
if b.isAH then return true end
|
||||
if a.isVendor then return false end
|
||||
if b.isVendor then return true end
|
||||
if a.isCrafter then return false end
|
||||
if b.isCrafter then return true end
|
||||
return a.sourceName < b.sourceName
|
||||
end)
|
||||
return sources
|
||||
end
|
||||
|
||||
function Inventory:IsDisenchantable(itemString)
|
||||
local _, link, quality, _, _, iType = TSMAPI:GetSafeItemInfo(itemString)
|
||||
local WEAPON, ARMOR = GetAuctionItemClasses()
|
||||
if itemString and not TSMAPI.DisenchantingData.notDisenchantable[itemString] and (iType == ARMOR or iType == WEAPON) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,257 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Crafting --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_crafting --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Queue = TSM:NewModule("Queue")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Crafting") -- loads the localization table
|
||||
|
||||
local MAX_QUEUE_STAGES = 10
|
||||
local inventoryTotals = {}
|
||||
|
||||
|
||||
local notified = {}
|
||||
function Queue:ValidateOperation(operation, opName)
|
||||
if not operation then return end
|
||||
|
||||
if operation.minRestock > operation.maxRestock then
|
||||
-- invalid cause min > max restock quantity (shouldn't happen)
|
||||
if not notified[opName] then
|
||||
notified[opName] = true
|
||||
TSM:Printf(L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."], opName, operation.minRestock, operation.maxRestock)
|
||||
end
|
||||
return
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
function Queue:CreateRestockQueue(groupInfo)
|
||||
TSM:UpdateCraftReverseLookup()
|
||||
local numItems = 0
|
||||
|
||||
for _, data in pairs(groupInfo) do
|
||||
for _, opName in ipairs(data.operations) do
|
||||
TSMAPI:UpdateOperation("Crafting", opName)
|
||||
local opSettings = TSM.operations[opName]
|
||||
if Queue:ValidateOperation(opSettings, opName) then
|
||||
-- it's a valid operation
|
||||
for itemString in pairs(data.items) do
|
||||
itemString = TSMAPI:GetItemString(itemString)
|
||||
local spellID = TSM.craftReverseLookup[itemString] and TSM.craftReverseLookup[itemString][1]
|
||||
if spellID and TSM.db.factionrealm.crafts[spellID] then
|
||||
local maxQueueCount = max(opSettings.maxRestock - TSM.Inventory:GetTotalQuantity(itemString), 0)
|
||||
local numToQueue = 0
|
||||
|
||||
if not opSettings.minProfit then
|
||||
-- no minimum, so queue as many as we can
|
||||
numToQueue = maxQueueCount
|
||||
else
|
||||
-- queue it if the profit is at least the min profit
|
||||
local cheapestSpellID, cost, _, profit = TSM.Cost:GetLowestCraftPrices(itemString)
|
||||
local minProfit = TSM:GetCustomPrice(opSettings.minProfit, itemString)
|
||||
if minProfit and profit and profit >= minProfit then
|
||||
spellID = cheapestSpellID
|
||||
numToQueue = maxQueueCount
|
||||
end
|
||||
end
|
||||
|
||||
local craft = TSM.db.factionrealm.crafts[spellID]
|
||||
craft.queued = floor(numToQueue / craft.numResult)
|
||||
craft.queued = craft.queued >= opSettings.minRestock and craft.queued or 0
|
||||
if craft.queued > 0 then
|
||||
numItems = numItems + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if numItems==0 then
|
||||
TSM:Printf("There are no items to restock.")
|
||||
end
|
||||
TSMAPI:FireEvent("CRAFTING:QUEUE:RESTOCKED", numItems)
|
||||
end
|
||||
|
||||
function Queue:HasLoop(itemString, steps, visited)
|
||||
steps = steps + 1
|
||||
if steps > 10 then return true end
|
||||
if visited[itemString] then return true end
|
||||
visited[itemString] = true
|
||||
local craftCost = TSM:GetCustomPrice("Crafting", itemString)
|
||||
local mat = TSM.db.factionrealm.mats[itemString]
|
||||
local lowestCost = TSM:GetCustomPrice(mat.customValue or TSM.db.global.defaultMatCostMethod, itemString)
|
||||
if craftCost and lowestCost and craftCost <= lowestCost and (not TSM.db.global.neverCraftInks or not TSMAPI.InkConversions[itemString]) then
|
||||
local spellID = TSM.Cost:GetLowestCraftPrices(itemString, true)
|
||||
if spellID and TSM.db.factionrealm.crafts[spellID] then
|
||||
for matItemString in pairs(TSM.db.factionrealm.crafts[spellID].mats) do
|
||||
if Queue:HasLoop(matItemString, steps, CopyTable(visited)) then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function Queue:GetIntermediateCrafts(mats, usedItems, usedMats, tempMats)
|
||||
local subCrafts = {}
|
||||
for profession, data in pairs(mats) do
|
||||
tempMats[profession] = tempMats[profession] or {}
|
||||
for itemString, quantity in pairs(data) do
|
||||
usedItems[itemString] = usedItems[itemString] or 0
|
||||
local numHave = (inventoryTotals[itemString] or 0) - usedItems[itemString]
|
||||
if TSMAPI.SOULBOUND_MATS[itemString] then
|
||||
numHave = numHave + GetItemCount(itemString, true)
|
||||
end
|
||||
if numHave > 0 then
|
||||
if numHave >= quantity then
|
||||
usedItems[itemString] = usedItems[itemString] + quantity
|
||||
tempMats[profession][itemString] = (tempMats[profession][itemString] or 0) + quantity
|
||||
quantity = 0
|
||||
mats[profession][itemString] = nil
|
||||
else
|
||||
usedItems[itemString] = numHave
|
||||
quantity = quantity - numHave
|
||||
tempMats[profession][itemString] = (tempMats[profession][itemString] or 0) + numHave
|
||||
mats[profession][itemString] = mats[profession][itemString] - numHave
|
||||
end
|
||||
end
|
||||
|
||||
if quantity > 0 and not Queue:HasLoop(itemString, 0, {}) then
|
||||
local mat = TSM.db.factionrealm.mats[itemString]
|
||||
local craftCost = TSM:GetCustomPrice("Crafting", itemString)
|
||||
local lowestCost = TSM:GetCustomPrice(mat.customValue or TSM.db.global.defaultMatCostMethod, itemString)
|
||||
if craftCost and lowestCost and craftCost <= lowestCost and (not TSM.db.global.neverCraftInks or not TSMAPI.InkConversions[itemString]) then
|
||||
local spellID = TSM.Cost:GetLowestCraftPrices(itemString, true)
|
||||
if spellID and TSM.db.factionrealm.crafts[spellID] then
|
||||
local numResult = TSM.db.factionrealm.crafts[spellID].numResult
|
||||
quantity = ceil(quantity / numResult)
|
||||
subCrafts[TSM.db.factionrealm.crafts[spellID].profession] = subCrafts[TSM.db.factionrealm.crafts[spellID].profession] or {}
|
||||
subCrafts[TSM.db.factionrealm.crafts[spellID].profession][spellID] = (subCrafts[TSM.db.factionrealm.crafts[spellID].profession][spellID] or 0) + quantity
|
||||
TSM.db.factionrealm.crafts[spellID].queued = TSM.db.factionrealm.crafts[spellID].queued + quantity
|
||||
TSM.db.factionrealm.crafts[spellID].intermediateQueued = (TSM.db.factionrealm.crafts[spellID].intermediateQueued or 0) + quantity
|
||||
mats[profession][itemString] = nil
|
||||
usedMats[profession] = usedMats[profession] or {}
|
||||
usedMats[profession][itemString] = numHave
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local newSubCrafts
|
||||
for profession, data in pairs(subCrafts) do
|
||||
for spellID, quantity in pairs(data) do
|
||||
newSubCrafts = true
|
||||
for itemString, matQuantity in pairs(TSM.db.factionrealm.crafts[spellID].mats) do
|
||||
mats[profession] = mats[profession] or {}
|
||||
mats[profession][itemString] = (mats[profession][itemString] or 0) + matQuantity * quantity
|
||||
end
|
||||
end
|
||||
end
|
||||
return newSubCrafts and subCrafts
|
||||
end
|
||||
|
||||
function Queue:GetQueue()
|
||||
local tempCrafts, queuedCrafts, mats = {}, {}, {}
|
||||
local totalCost, totalProfit
|
||||
|
||||
-- first queue up all the normally queued stuff
|
||||
for spellID, data in pairs(TSM.db.factionrealm.crafts) do
|
||||
if data.intermediateQueued then
|
||||
data.queued = max(data.queued - data.intermediateQueued, 0)
|
||||
data.intermediateQueued = nil
|
||||
end
|
||||
if data.queued > 0 then
|
||||
local cost, buyout, profit = TSM.Cost:GetCraftPrices(spellID)
|
||||
if cost then
|
||||
totalCost = (totalCost or 0) + cost * data.queued
|
||||
end
|
||||
if profit then
|
||||
totalProfit = (totalProfit or 0) + profit * data.queued
|
||||
end
|
||||
tempCrafts[data.profession] = tempCrafts[data.profession] or {}
|
||||
tempCrafts[data.profession][spellID] = data.queued
|
||||
for itemString, quantity in pairs(data.mats) do
|
||||
mats[data.profession] = mats[data.profession] or {}
|
||||
mats[data.profession][itemString] = (mats[data.profession][itemString] or 0) + quantity * data.queued
|
||||
end
|
||||
end
|
||||
end
|
||||
for profession, data in pairs(tempCrafts) do
|
||||
queuedCrafts[profession] = queuedCrafts[profession] or {}
|
||||
tinsert(queuedCrafts[profession], 1, { crafts = data })
|
||||
end
|
||||
|
||||
-- queue intermediate crafts
|
||||
local usedItems, usedMats, tempMats = {}, {}, {}
|
||||
inventoryTotals = select(4, TSM.Inventory:GetTotals())
|
||||
for i = 1, MAX_QUEUE_STAGES - 1 do
|
||||
local subCrafts = Queue:GetIntermediateCrafts(mats, usedItems, usedMats, tempMats)
|
||||
if not subCrafts then break end
|
||||
|
||||
for profession, data in pairs(subCrafts) do
|
||||
queuedCrafts[profession] = queuedCrafts[profession] or {}
|
||||
tinsert(queuedCrafts[profession], 1, { crafts = data })
|
||||
end
|
||||
end
|
||||
|
||||
-- readd usedMats back in
|
||||
for profession, data in pairs(tempMats) do
|
||||
for itemString, quantity in pairs(data) do
|
||||
mats[profession][itemString] = (mats[profession][itemString] or 0) + quantity
|
||||
end
|
||||
end
|
||||
|
||||
for profession, data in pairs(usedMats) do
|
||||
if mats[profession] then
|
||||
for itemString, quantity in pairs(data) do
|
||||
mats[profession][itemString] = (mats[profession][itemString] or 0) + quantity
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- give each stage the appropriate name
|
||||
for profession, stages in pairs(queuedCrafts) do
|
||||
for i, stageInfo in ipairs(stages) do
|
||||
stageInfo.name = format(L["Stage %d"], i)
|
||||
end
|
||||
end
|
||||
|
||||
totalCost = totalCost or "---"
|
||||
totalProfit = totalProfit or "---"
|
||||
return queuedCrafts, mats, totalCost, totalProfit
|
||||
end
|
||||
|
||||
function Queue:ClearQueue()
|
||||
for spellID, data in pairs(TSM.db.factionrealm.crafts) do
|
||||
data.queued = 0
|
||||
data.intermediateQueued = nil
|
||||
end
|
||||
end
|
||||
|
||||
function Queue:addQueue(spellID, quantity)
|
||||
local craft = TSM.db.factionrealm.crafts[spellID]
|
||||
if not craft then return end
|
||||
quantity = quantity or 1
|
||||
craft.queued = craft.queued + quantity
|
||||
TSM.CraftingGUI:UpdateQueue()
|
||||
end
|
||||
|
||||
function Queue:removeQueue(spellID, quantity)
|
||||
local craft = TSM.db.factionrealm.crafts[spellID]
|
||||
if not craft then return end
|
||||
quantity = quantity or 1
|
||||
craft.queued = max(craft.queued - quantity, 0)
|
||||
TSM.CraftingGUI:UpdateQueue()
|
||||
end
|
||||
|
||||
function Queue:getQueue(spellID)
|
||||
local craft = TSM.db.factionrealm.crafts[spellID]
|
||||
return craft.queued
|
||||
end
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,63 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Crafting --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_crafting --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Sync = TSM:NewModule("Sync")
|
||||
local syncQueue = {}
|
||||
|
||||
function Sync:OnEnable()
|
||||
Sync:BroadcastTradeSkillData()
|
||||
end
|
||||
|
||||
function Sync:OpenTradeSkill()
|
||||
if not TSM.isSyncing then return end
|
||||
local tradeString = strsub(select(3, ("|"):split(TSM.isSyncing.link)), 2)
|
||||
SetItemRef(tradeString, TSM.isSyncing.link, "LeftButton", ChatFrame1)
|
||||
end
|
||||
|
||||
function Sync:BroadcastTradeSkillData(timerUp)
|
||||
if not timerUp then
|
||||
TSMAPI:CreateTimeDelay("craftingSyncDelay", 3, function() Sync:BroadcastTradeSkillData(true) end)
|
||||
return
|
||||
end
|
||||
local player = UnitName("player")
|
||||
local playerTradeSkills = TSM.db.factionrealm.tradeSkills[player]
|
||||
if not playerTradeSkills then return end
|
||||
|
||||
local packet = {tradeSkills={}, accountKey=TSMAPI.Sync:GetAccountKey()}
|
||||
for name, data in pairs(playerTradeSkills) do
|
||||
if data.accountKey == TSMAPI.Sync:GetAccountKey() then
|
||||
packet.tradeSkills[player.."~"..name] = data.link
|
||||
end
|
||||
end
|
||||
TSMAPI.Sync:BroadcastData("Crafting", "TRADESKILLS", packet)
|
||||
end
|
||||
|
||||
function Sync:ProcessTradeSkills(data)
|
||||
for key, link in pairs(data.tradeSkills) do
|
||||
local player, tradeSkill = ("~"):split(key)
|
||||
if not (TSM.db.factionrealm.tradeSkills[player] and TSM.db.factionrealm.tradeSkills[player][tradeSkill] and TSM.db.factionrealm.tradeSkills[player][tradeSkill].link == link) then
|
||||
tinsert(syncQueue, {link=link, accountKey=data.accountKey, player=player})
|
||||
end
|
||||
end
|
||||
TSMAPI:CreateTimeDelay("craftingSyncProcessQueue", 0, Sync.ProcessQueue)
|
||||
end
|
||||
|
||||
function Sync:ProcessQueue()
|
||||
if TSM.isSyncing then return TSMAPI:CreateTimeDelay("craftingSyncProcessQueue", 0.1, Sync.ProcessQueue) end
|
||||
TSM.isSyncing = tremove(syncQueue, 1)
|
||||
Sync:OpenTradeSkill()
|
||||
TSMAPI:CreateTimeDelay("craftingSyncProcessQueue", 1, Sync.ProcessQueue)
|
||||
end
|
||||
|
||||
function Sync:Callback(key, data, source)
|
||||
if key == "TRADESKILLS" then
|
||||
Sync:ProcessTradeSkills(data)
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,330 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Crafting --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_crafting --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Util = TSM:NewModule("Util")
|
||||
-- local VELLUM_ID = "item:38682:0:0:0:0:0:0"
|
||||
|
||||
local scanTooltip
|
||||
function GetTradeSkillReagentItemLink(skillIndex, reagentLink)
|
||||
if not scanTooltip then
|
||||
scanTooltip = CreateFrame("GameTooltip", "TSMCraftingScanTooltip", UIParent, "GameTooltipTemplate")
|
||||
scanTooltip:SetOwner(UIParent, "ANCHOR_NONE")
|
||||
end
|
||||
scanTooltip:ClearLines()
|
||||
scanTooltip:SetTradeSkillItem(skillIndex, reagentLink)
|
||||
return select(2, scanTooltip:GetItem())
|
||||
end
|
||||
|
||||
function Util:IsProfessionReady()
|
||||
if GetTradeSkillLine() == "UNKNOWN" or not GetNumTradeSkills() or GetNumTradeSkills() <= 0 or InCombatLockdown() then
|
||||
return
|
||||
end
|
||||
|
||||
for index=1, GetNumTradeSkills() do
|
||||
local itemLink = GetTradeSkillItemLink(index)
|
||||
local spellLink = GetTradeSkillRecipeLink(index)
|
||||
if itemLink and spellLink and strfind(spellLink, "enchant:") then
|
||||
local spellID, itemID, craftName
|
||||
if strfind(itemLink, "enchant:") then
|
||||
-- result of craft is enchant
|
||||
spellID = Util:GetSpellID(index)
|
||||
itemID = TSM.enchantingItemIDs[spellID] and "item:"..TSM.enchantingItemIDs[spellID]..":0:0:0:0:0:0"
|
||||
elseif strfind(itemLink, "item:") then
|
||||
-- result of craft is item
|
||||
itemID = TSMAPI:GetItemString(itemLink)
|
||||
spellID = Util:GetSpellID(index)
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
if itemID and spellID then
|
||||
for i=1, GetTradeSkillNumReagents(index) do
|
||||
local link = GetTradeSkillReagentItemLink(index, i)
|
||||
local name, _, quantity = GetTradeSkillReagentInfo(index, i)
|
||||
if not name or not link then
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
|
||||
function Util:ScanCurrentProfession()
|
||||
if not Util:IsProfessionReady() then return TSMAPI:CreateTimeDelay("craftingScanDelay", 0.1, Util.ScanCurrentProfession) end
|
||||
|
||||
local newCrafts = {}
|
||||
local playerName = UnitName("player")
|
||||
local currentTradeSkill = GetTradeSkillLine()
|
||||
local subClasses = {GetTradeSkillSubClasses()}
|
||||
local currentSubClass = 0
|
||||
|
||||
local usedItems = {}
|
||||
local presetGroupInfo = {}
|
||||
local reagentLinkCache = {}
|
||||
for index=1, GetNumTradeSkills() do
|
||||
local itemLink = GetTradeSkillItemLink(index)
|
||||
local spellLink = GetTradeSkillRecipeLink(index)
|
||||
if not itemLink then
|
||||
local skillName, skillType = GetTradeSkillInfo(index)
|
||||
if skillType == "header" then
|
||||
for j=1, #subClasses do
|
||||
if skillName == subClasses[j] then
|
||||
currentSubClass = j
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
elseif spellLink and strfind(spellLink, "enchant:") then
|
||||
local spellID, itemID, craftName
|
||||
|
||||
if strfind(itemLink, "enchant:") then
|
||||
-- result of craft is enchant
|
||||
spellID = Util:GetSpellID(index)
|
||||
itemID = TSM.enchantingItemIDs[spellID] and "item:"..TSM.enchantingItemIDs[spellID]..":0:0:0:0:0:0"
|
||||
craftName = GetSpellInfo(spellID)
|
||||
elseif strfind(itemLink, "item:") then
|
||||
-- result of craft is item
|
||||
itemID = TSMAPI:GetItemString(itemLink)
|
||||
craftName = TSMAPI:GetSafeItemInfo(itemLink)
|
||||
spellID = Util:GetSpellID(index)
|
||||
end
|
||||
|
||||
if itemID and spellID then
|
||||
local lNum, hNum = GetTradeSkillNumMade(index)
|
||||
local numMade = floor(((lNum or 1) + (hNum or 1))/2)
|
||||
local hasCD = select(2, GetTradeSkillCooldown(index)) and true or nil
|
||||
local mats = {}
|
||||
if currentTradeSkill == TSM.enchantingName and strfind(itemLink, "enchant:") then
|
||||
local VellumString = "item:"..TSM.VellumInfo[spellID]..":0:0:0:0:0:0"
|
||||
mats[VellumString] = 1
|
||||
local name = TSMAPI:GetSafeItemInfo(VellumString) or nil
|
||||
TSM.db.factionrealm.mats[VellumString] = TSM.db.factionrealm.mats[VellumString] or {}
|
||||
TSM.db.factionrealm.mats[VellumString].name = TSM.db.factionrealm.mats[VellumString].name or name
|
||||
numMade = 1
|
||||
end
|
||||
|
||||
local isValid = true
|
||||
for i=1, GetTradeSkillNumReagents(index) do
|
||||
local name, texture, quantity = GetTradeSkillReagentInfo(index, i)
|
||||
if not name then
|
||||
isValid = false
|
||||
break
|
||||
end
|
||||
if not reagentLinkCache[name.."\001"..texture] then
|
||||
reagentLinkCache[name.."\001"..texture] = GetTradeSkillReagentItemLink(index, i)
|
||||
end
|
||||
local matID = TSMAPI:GetItemString(reagentLinkCache[name.."\001"..texture])
|
||||
if not matID then
|
||||
isValid = false
|
||||
break
|
||||
end
|
||||
|
||||
mats[matID] = quantity
|
||||
TSM.db.factionrealm.mats[matID] = TSM.db.factionrealm.mats[matID] or {}
|
||||
TSM.db.factionrealm.mats[matID].name = TSM.db.factionrealm.mats[matID].name or name
|
||||
end
|
||||
|
||||
if isValid then
|
||||
local players = TSM.db.factionrealm.crafts[spellID] and TSM.db.factionrealm.crafts[spellID].players or {}
|
||||
players[playerName] = true
|
||||
local queued = TSM.db.factionrealm.crafts[spellID] and TSM.db.factionrealm.crafts[spellID].queued or 0
|
||||
local intermediateQueued = TSM.db.factionrealm.crafts[spellID] and TSM.db.factionrealm.crafts[spellID].intermediateQueued or nil
|
||||
newCrafts[spellID] = {name=craftName, itemID=itemID, mats=mats, hasCD=hasCD, numResult=numMade, queued=queued, intermediateQueued=intermediateQueued, players=players, profession=currentTradeSkill}
|
||||
if not usedItems[itemID] then
|
||||
usedItems[itemID] = true
|
||||
local itemString = TSMAPI:GetItemString(itemID)
|
||||
if itemString then
|
||||
for matItemString in pairs(mats) do
|
||||
if not presetGroupInfo[matItemString] then
|
||||
presetGroupInfo[matItemString] = TSMAPI:JoinGroupPath("Professions", currentTradeSkill, "Materials")
|
||||
end
|
||||
end
|
||||
presetGroupInfo[itemString] = TSMAPI:JoinGroupPath("Professions", currentTradeSkill, "Crafts")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- search for and remove any spells that we can't craft anymore
|
||||
for spellID, data in pairs(TSM.db.factionrealm.crafts) do
|
||||
if data.profession == currentTradeSkill then
|
||||
local hasCrafters = false
|
||||
for player in pairs(data.players) do
|
||||
if player ~= playerName or newCrafts[spellID] then
|
||||
hasCrafters = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not hasCrafters then
|
||||
TSM.db.factionrealm.crafts[spellID] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- save the new craft info
|
||||
for spellID, data in pairs(newCrafts) do
|
||||
TSM.db.factionrealm.crafts[spellID] = data
|
||||
end
|
||||
TSM.CraftingGUI:PromptPresetGroups(currentTradeSkill, presetGroupInfo) --Bugged, asks after every login. Not saving prompt result between sessions. Either saving or loading bug (works fine on /reload though).
|
||||
end
|
||||
|
||||
function Util:StartScanSyncedProfessionThread()
|
||||
local function callback()
|
||||
TradeSkillFrame:Show()
|
||||
CloseTradeSkill()
|
||||
TSM.isSyncing = nil
|
||||
end
|
||||
TSMAPI.Threading:Start(Util.ScanSyncedProfessionThread, 0.5, callback)
|
||||
end
|
||||
|
||||
function Util.ScanSyncedProfessionThread(self)
|
||||
local ready
|
||||
for i=1, 10 do
|
||||
if Util:IsProfessionReady() then
|
||||
ready = true
|
||||
break
|
||||
end
|
||||
self:Sleep(0.1)
|
||||
end
|
||||
if not ready then return end
|
||||
|
||||
local newCrafts = {}
|
||||
local reagentLinkCache = {}
|
||||
local _, playerName = IsTradeSkillLinked()
|
||||
local currentTradeSkill = GetTradeSkillLine()
|
||||
if playerName ~= TSM.isSyncing.player then return end
|
||||
|
||||
for index=1, GetNumTradeSkills() do
|
||||
local itemLink = GetTradeSkillItemLink(index)
|
||||
local spellLink = GetTradeSkillRecipeLink(index)
|
||||
if itemLink and spellLink and strfind(spellLink, "enchant:") then
|
||||
local spellID, itemID, craftName
|
||||
if strfind(itemLink, "enchant:") then
|
||||
-- result of craft is enchant
|
||||
spellID = Util:GetSpellID(index)
|
||||
itemID = TSM.enchantingItemIDs[spellID] and "item:"..TSM.enchantingItemIDs[spellID]..":0:0:0:0:0:0"
|
||||
craftName = GetSpellInfo(spellID)
|
||||
elseif strfind(itemLink, "item:") then
|
||||
-- result of craft is item
|
||||
itemID = TSMAPI:GetItemString(itemLink)
|
||||
craftName = TSMAPI:GetSafeItemInfo(itemLink)
|
||||
spellID = Util:GetSpellID(index)
|
||||
end
|
||||
|
||||
if itemID and spellID then
|
||||
local lNum, hNum = GetTradeSkillNumMade(index)
|
||||
local numMade = floor(((lNum or 1) + (hNum or 1))/2)
|
||||
local hasCD = select(2, GetTradeSkillCooldown(index)) and true or nil
|
||||
local mats = {}
|
||||
if currentTradeSkill == TSM.enchantingName and strfind(itemLink, "enchant:") then
|
||||
local VellumString = "item:"..TSM.VellumInfo[spellID]..":0:0:0:0:0:0"
|
||||
|
||||
mats[VellumString] = 1
|
||||
local name = TSMAPI:GetSafeItemInfo(VellumString) or nil
|
||||
TSM.db.factionrealm.mats[VellumString] = TSM.db.factionrealm.mats[VellumString] or {}
|
||||
TSM.db.factionrealm.mats[VellumString].name = TSM.db.factionrealm.mats[VellumString].name or name
|
||||
numMade = 1
|
||||
end
|
||||
|
||||
local isValid = true
|
||||
for i=1, GetTradeSkillNumReagents(index) do
|
||||
local name, texture, quantity = GetTradeSkillReagentInfo(index, i)
|
||||
if not name then
|
||||
isValid = false
|
||||
break
|
||||
end
|
||||
if not reagentLinkCache[name.."\001"..texture] then
|
||||
reagentLinkCache[name.."\001"..texture] = GetTradeSkillReagentItemLink(index, i)
|
||||
end
|
||||
local matID = TSMAPI:GetItemString(reagentLinkCache[name.."\001"..texture])
|
||||
if not matID then
|
||||
isValid = false
|
||||
break
|
||||
end
|
||||
|
||||
mats[matID] = quantity
|
||||
TSM.db.factionrealm.mats[matID] = TSM.db.factionrealm.mats[matID] or {}
|
||||
TSM.db.factionrealm.mats[matID].name = TSM.db.factionrealm.mats[matID].name or name
|
||||
end
|
||||
|
||||
if isValid then
|
||||
local players = TSM.db.factionrealm.crafts[spellID] and TSM.db.factionrealm.crafts[spellID].players or {}
|
||||
players[playerName] = true
|
||||
local queued = TSM.db.factionrealm.crafts[spellID] and TSM.db.factionrealm.crafts[spellID].queued or 0
|
||||
local intermediateQueued = TSM.db.factionrealm.crafts[spellID] and TSM.db.factionrealm.crafts[spellID].intermediateQueued or nil
|
||||
newCrafts[spellID] = {name=craftName, itemID=itemID, mats=mats, hasCD=hasCD, numResult=numMade, queued=queued, intermediateQueued=intermediateQueued, players=players, profession=currentTradeSkill}
|
||||
end
|
||||
end
|
||||
end
|
||||
self:Yield()
|
||||
if currentTradeSkill ~= GetTradeSkillLine() or select(2, IsTradeSkillLinked()) ~= TSM.isSyncing.player then return end
|
||||
end
|
||||
|
||||
-- search for and remove any spells that we can't craft anymore
|
||||
for spellID, data in pairs(TSM.db.factionrealm.crafts) do
|
||||
if data.profession == currentTradeSkill then
|
||||
local hasCrafters = false
|
||||
for player in pairs(data.players) do
|
||||
if player ~= playerName or newCrafts[spellID] then
|
||||
hasCrafters = true
|
||||
break
|
||||
end
|
||||
end
|
||||
|
||||
if not hasCrafters then
|
||||
TSM.db.factionrealm.crafts[spellID] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- save the new craft info
|
||||
for spellID, data in pairs(newCrafts) do
|
||||
TSM.db.factionrealm.crafts[spellID] = data
|
||||
end
|
||||
local playerName = select(2, IsTradeSkillLinked())
|
||||
local skillName, level, maxLevel = GetTradeSkillLine()
|
||||
TSM.db.factionrealm.tradeSkills[playerName] = TSM.db.factionrealm.tradeSkills[playerName] or {}
|
||||
TSM.db.factionrealm.tradeSkills[playerName][skillName] = TSM.db.factionrealm.tradeSkills[playerName][skillName] or {}
|
||||
TSM.db.factionrealm.tradeSkills[playerName][skillName].link = TSM.isSyncing.link
|
||||
TSM.db.factionrealm.tradeSkills[playerName][skillName].accountKey = TSM.isSyncing.accountKey
|
||||
TSM.db.factionrealm.tradeSkills[playerName][skillName].level = level
|
||||
TSM.db.factionrealm.tradeSkills[playerName][skillName].maxLevel = maxLevel
|
||||
end
|
||||
|
||||
function Util:GetSpellID(index)
|
||||
local spellLink = GetTradeSkillRecipeLink(index)
|
||||
if not spellLink then return end
|
||||
return TSMAPI:GetItemID(spellLink)
|
||||
end
|
||||
|
||||
function Util:FormatTime(seconds)
|
||||
if seconds == 0 then return end
|
||||
local hours = floor(seconds/3600)
|
||||
local mins = floor((seconds%3600)/60)
|
||||
local secs = seconds % 60
|
||||
|
||||
local str = ""
|
||||
if hours > 0 then
|
||||
str = str..format("%dh", hours)
|
||||
end
|
||||
if mins > 0 then
|
||||
str = str..format("%dm", mins)
|
||||
end
|
||||
if secs > 0 then
|
||||
str = str..format("%ds", secs)
|
||||
end
|
||||
return str
|
||||
end
|
||||
@@ -0,0 +1,312 @@
|
||||
-- load the parent file (TSM) into a local variable
|
||||
local TSM = select(2, ...)
|
||||
|
||||
TSM.VellumInfo = {
|
||||
[7418] = 52510,
|
||||
[7420] = 52510,
|
||||
[7426] = 52510,
|
||||
[7428] = 52510,
|
||||
[7443] = 52510,
|
||||
[7454] = 52510,
|
||||
[7457] = 52510,
|
||||
[7745] = 52511,
|
||||
[7748] = 52510,
|
||||
[7766] = 52510,
|
||||
[7771] = 52510,
|
||||
[7776] = 52510,
|
||||
[7779] = 52510,
|
||||
[7782] = 52510,
|
||||
[7786] = 52511,
|
||||
[7788] = 52511,
|
||||
[7793] = 52511,
|
||||
[7857] = 52510,
|
||||
[7859] = 52510,
|
||||
[7861] = 52510,
|
||||
[7863] = 52510,
|
||||
[7867] = 52510,
|
||||
[13378] = 52510,
|
||||
[13380] = 52511,
|
||||
[13419] = 52510,
|
||||
[13421] = 52510,
|
||||
[13464] = 52510,
|
||||
[13485] = 52510,
|
||||
[13501] = 52510,
|
||||
[13503] = 52511,
|
||||
[13522] = 52510,
|
||||
[13529] = 52511,
|
||||
[13536] = 52510,
|
||||
[13538] = 52510,
|
||||
[13607] = 52510,
|
||||
[13612] = 52510,
|
||||
[13617] = 52510,
|
||||
[13620] = 52510,
|
||||
[13622] = 52510,
|
||||
[13626] = 52510,
|
||||
[13631] = 52510,
|
||||
[13635] = 52510,
|
||||
[13637] = 52510,
|
||||
[13640] = 52510,
|
||||
[13642] = 52510,
|
||||
[13644] = 52510,
|
||||
[13646] = 52510,
|
||||
[13648] = 52510,
|
||||
[13653] = 52511,
|
||||
[13655] = 52511,
|
||||
[13657] = 52510,
|
||||
[13659] = 52510,
|
||||
[13661] = 52510,
|
||||
[13663] = 52510,
|
||||
[13687] = 52510,
|
||||
[13689] = 52510,
|
||||
[13693] = 52511,
|
||||
[13695] = 52511,
|
||||
[13698] = 52510,
|
||||
[13700] = 52510,
|
||||
[13746] = 52510,
|
||||
[13794] = 52510,
|
||||
[13815] = 52510,
|
||||
[13817] = 52510,
|
||||
[13822] = 52510,
|
||||
[13836] = 52510,
|
||||
[13841] = 52510,
|
||||
[13846] = 52510,
|
||||
[13858] = 52510,
|
||||
[13868] = 52510,
|
||||
[13882] = 52510,
|
||||
[13887] = 52510,
|
||||
[13890] = 52510,
|
||||
[13898] = 52511,
|
||||
[13905] = 52510,
|
||||
[13915] = 52511,
|
||||
[13917] = 52510,
|
||||
[13931] = 52510,
|
||||
[13933] = 52510,
|
||||
[13935] = 52510,
|
||||
[13937] = 52511,
|
||||
[13939] = 52510,
|
||||
[13941] = 52510,
|
||||
[13943] = 52511,
|
||||
[13945] = 52510,
|
||||
[13947] = 52510,
|
||||
[13948] = 52510,
|
||||
[20008] = 52510,
|
||||
[20009] = 52510,
|
||||
[20010] = 52510,
|
||||
[20011] = 52510,
|
||||
[20012] = 52510,
|
||||
[20013] = 52510,
|
||||
[20014] = 52510,
|
||||
[20015] = 52510,
|
||||
[20016] = 52510,
|
||||
[20017] = 52510,
|
||||
[20020] = 52510,
|
||||
[20023] = 52510,
|
||||
[20024] = 52510,
|
||||
[20025] = 52510,
|
||||
[20026] = 52510,
|
||||
[20028] = 52510,
|
||||
[20029] = 52511,
|
||||
[20030] = 52511,
|
||||
[20031] = 52511,
|
||||
[20032] = 52511,
|
||||
[20033] = 52511,
|
||||
[20034] = 52511,
|
||||
[20035] = 52511,
|
||||
[20036] = 52511,
|
||||
[21931] = 52511,
|
||||
[22749] = 52511,
|
||||
[22750] = 52511,
|
||||
[23799] = 52511,
|
||||
[23800] = 52511,
|
||||
[23801] = 52510,
|
||||
[23802] = 52510,
|
||||
[23803] = 52511,
|
||||
[23804] = 52511,
|
||||
[25072] = 52510,
|
||||
[25073] = 52510,
|
||||
[25074] = 52510,
|
||||
[25078] = 52510,
|
||||
[25079] = 52510,
|
||||
[25080] = 52510,
|
||||
[25081] = 52510,
|
||||
[25082] = 52510,
|
||||
[25083] = 52510,
|
||||
[25084] = 52510,
|
||||
[25086] = 52510,
|
||||
[27837] = 52511,
|
||||
[27899] = 52510,
|
||||
[27905] = 52510,
|
||||
[27906] = 52510,
|
||||
[27911] = 52510,
|
||||
[27913] = 52510,
|
||||
[27914] = 52510,
|
||||
[27917] = 52510,
|
||||
[27944] = 52510,
|
||||
[27945] = 52510,
|
||||
[27946] = 52510,
|
||||
[27947] = 52510,
|
||||
[27948] = 52510,
|
||||
[27950] = 52510,
|
||||
[27951] = 52510,
|
||||
[27954] = 52510,
|
||||
[27957] = 52510,
|
||||
[27958] = 52510,
|
||||
[27960] = 52510,
|
||||
[27961] = 52510,
|
||||
[27962] = 52510,
|
||||
[27967] = 52511,
|
||||
[27968] = 52511,
|
||||
[27971] = 52511,
|
||||
[27972] = 52511,
|
||||
[27975] = 52511,
|
||||
[27977] = 52511,
|
||||
[27981] = 52511,
|
||||
[27982] = 52511,
|
||||
[27984] = 52511,
|
||||
[28003] = 52511,
|
||||
[28004] = 52511,
|
||||
[33990] = 52510,
|
||||
[33991] = 52510,
|
||||
[33992] = 52510,
|
||||
[33993] = 52510,
|
||||
[33994] = 52510,
|
||||
[33995] = 52510,
|
||||
[33996] = 52510,
|
||||
[33997] = 52510,
|
||||
[33999] = 52510,
|
||||
[34001] = 52510,
|
||||
[34002] = 52510,
|
||||
[34003] = 52510,
|
||||
[34004] = 52510,
|
||||
[34005] = 52510,
|
||||
[34006] = 52510,
|
||||
[34007] = 52510,
|
||||
[34008] = 52510,
|
||||
[34009] = 52510,
|
||||
[34010] = 52511,
|
||||
[42620] = 52511,
|
||||
[42974] = 52511,
|
||||
[44383] = 52510,
|
||||
[44483] = 52510,
|
||||
[44484] = 52510,
|
||||
[44488] = 52510,
|
||||
[44489] = 52510,
|
||||
[44492] = 52510,
|
||||
[44494] = 52510,
|
||||
[44500] = 52510,
|
||||
[44506] = 52510,
|
||||
[44508] = 52510,
|
||||
[44509] = 52510,
|
||||
[44510] = 52511,
|
||||
[44513] = 52510,
|
||||
[44524] = 52511,
|
||||
[44528] = 52510,
|
||||
[44529] = 52510,
|
||||
[44555] = 52510,
|
||||
[44556] = 52510,
|
||||
[44575] = 52510,
|
||||
[44576] = 52511,
|
||||
[44582] = 52510,
|
||||
[44584] = 52510,
|
||||
[44588] = 52510,
|
||||
[44589] = 52510,
|
||||
[44590] = 52510,
|
||||
[44591] = 52510,
|
||||
[44592] = 52510,
|
||||
[44593] = 52510,
|
||||
[44595] = 52511,
|
||||
[44596] = 52510,
|
||||
[44598] = 52510,
|
||||
[44612] = 52510,
|
||||
[44616] = 52510,
|
||||
[44621] = 52511,
|
||||
[44623] = 52510,
|
||||
[44625] = 52510,
|
||||
[44629] = 52511,
|
||||
[44630] = 52511,
|
||||
[44631] = 52510,
|
||||
[44633] = 52511,
|
||||
[44635] = 52510,
|
||||
[46578] = 52511,
|
||||
[46594] = 52510,
|
||||
[47051] = 52510,
|
||||
[47672] = 52510,
|
||||
[47766] = 52510,
|
||||
[47898] = 52510,
|
||||
[47899] = 52510,
|
||||
[47900] = 52510,
|
||||
[47901] = 52510,
|
||||
[59619] = 52511,
|
||||
[59621] = 52511,
|
||||
[59625] = 52511,
|
||||
[60606] = 52510,
|
||||
[60609] = 52510,
|
||||
[60616] = 52510,
|
||||
[60621] = 52511,
|
||||
[60623] = 52510,
|
||||
[60653] = 52510,
|
||||
[60663] = 52510,
|
||||
[60668] = 52510,
|
||||
[60691] = 52511,
|
||||
[60692] = 52510,
|
||||
[60707] = 52511,
|
||||
[60714] = 52511,
|
||||
[60763] = 52510,
|
||||
[60767] = 52510,
|
||||
[62256] = 52510,
|
||||
[62257] = 52511,
|
||||
[62948] = 52511,
|
||||
[62959] = 52511,
|
||||
[63746] = 52510,
|
||||
[64441] = 52511,
|
||||
[64579] = 52511,
|
||||
[71692] = 52510,
|
||||
[968676] = 52511,
|
||||
[968677] = 52511,
|
||||
[968678] = 52511,
|
||||
[968679] = 52511,
|
||||
[968680] = 52511,
|
||||
[968681] = 52511,
|
||||
[968682] = 52511,
|
||||
[968683] = 52511,
|
||||
[968684] = 52511,
|
||||
[968685] = 52511,
|
||||
[968686] = 52511,
|
||||
[968687] = 52511,
|
||||
[968688] = 52511,
|
||||
[968689] = 52511,
|
||||
[968690] = 52511,
|
||||
[968691] = 52511,
|
||||
[968692] = 52511,
|
||||
[968693] = 52511,
|
||||
[968694] = 52511,
|
||||
[968695] = 52511,
|
||||
[968696] = 52511,
|
||||
[968697] = 52511,
|
||||
[968698] = 52511,
|
||||
[968699] = 52511,
|
||||
[968700] = 52511,
|
||||
[968701] = 52511,
|
||||
[968702] = 52511,
|
||||
[968770] = 52511,
|
||||
[968771] = 52511,
|
||||
[1968677] = 52511,
|
||||
[1968678] = 52511,
|
||||
[1968680] = 52511,
|
||||
[1968681] = 52511,
|
||||
[1968683] = 52511,
|
||||
[1968684] = 52511,
|
||||
[1968686] = 52511,
|
||||
[1968687] = 52511,
|
||||
[1968689] = 52511,
|
||||
[1968690] = 52511,
|
||||
[1968692] = 52511,
|
||||
[1968693] = 52511,
|
||||
[1968695] = 52511,
|
||||
[1968696] = 52511,
|
||||
[1968698] = 52511,
|
||||
[1968699] = 52511,
|
||||
[1968701] = 52511,
|
||||
[1968702] = 52511,
|
||||
[1968770] = 52511,
|
||||
[1968771] = 52511}
|
||||
@@ -0,0 +1,361 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_Crafting --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_crafting --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- register this file with Ace Libraries
|
||||
local TSM = select(2, ...)
|
||||
TSM = LibStub("AceAddon-3.0"):NewAddon(TSM, "TSM_Crafting", "AceEvent-3.0", "AceConsole-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_Crafting") -- loads the localization table
|
||||
|
||||
|
||||
-- default values for the savedDB
|
||||
local savedDBDefaults = {
|
||||
global = {
|
||||
optionsTreeStatus = {},
|
||||
tooltip = true,
|
||||
materialTooltip = true,
|
||||
ignoreCharacters = {},
|
||||
ignoreGuilds = {},
|
||||
profitPercent = 0,
|
||||
defaultMatCostMethod = "min(dbmarket, crafting, vendorbuy, convert(dbmarket))",
|
||||
defaultCraftPriceMethod = "dbminbuyout",
|
||||
priceColumn = 1,
|
||||
ignoreCDCraftCost = true,
|
||||
neverCraftInks = true,
|
||||
frameQueueOpen = nil,
|
||||
showingDefaultFrame = nil,
|
||||
matsInTooltip = true,
|
||||
},
|
||||
factionrealm = {
|
||||
tradeSkills = {},
|
||||
crafts = {},
|
||||
mats = {},
|
||||
queueStatus = { collapsed = {} },
|
||||
sourceStatus = { collapsed = {} },
|
||||
gathering = { crafter = nil, professions = {}, neededMats = {}, availableMats = {}, gatheredMats = false, gatherAll = false, destroyingMats = {}, destroyDisable = false, evenStacks = true },
|
||||
craftingCostCache = {}
|
||||
},
|
||||
}
|
||||
|
||||
-- Called once the player has loaded WOW.
|
||||
function TSM:OnEnable()
|
||||
-- create shortcuts to TradeSkillMaster_Crafting's modules
|
||||
for moduleName, module in pairs(TSM.modules) do
|
||||
TSM[moduleName] = module
|
||||
end
|
||||
|
||||
-- load the savedDB into TSM.db
|
||||
TSM.db = LibStub:GetLibrary("AceDB-3.0"):New("TradeSkillMaster_CraftingDB", savedDBDefaults, true)
|
||||
TSM:UpdateCraftReverseLookup()
|
||||
|
||||
-- register this module with TSM
|
||||
TSM:RegisterModule()
|
||||
|
||||
-- fix vellum issue
|
||||
for spellid, data in pairs(TSM.db.factionrealm.crafts) do
|
||||
for itemString in pairs(data.mats) do
|
||||
if itemString == "item:52510" then
|
||||
TSM.db.factionrealm.crafts[spellid].mats["item:52510:0:0:0:0:0:0"] = 1
|
||||
TSM.db.factionrealm.crafts[spellid].mats[itemString] = nil
|
||||
elseif itemString == "item:52511" then
|
||||
TSM.db.factionrealm.crafts[spellid].mats["item:52511:0:0:0:0:0:0"] = 1
|
||||
TSM.db.factionrealm.crafts[spellid].mats[itemString] = nil
|
||||
end
|
||||
end
|
||||
end
|
||||
if TSM.db.factionrealm.mats["item:52510"] then
|
||||
local name = TSMAPI:GetSafeItemInfo("item:52510:0:0:0:0:0:0") or nil
|
||||
TSM.db.factionrealm.mats["item:52510:0:0:0:0:0:0"] = {}
|
||||
TSM.db.factionrealm.mats["item:52510:0:0:0:0:0:0"].name = name
|
||||
TSM.db.factionrealm.mats["item:52510"] = nil
|
||||
end
|
||||
if TSM.db.factionrealm.mats["item:52511"] then
|
||||
local name = TSMAPI:GetSafeItemInfo("item:52511:0:0:0:0:0:0") or nil
|
||||
TSM.db.factionrealm.mats["item:52511:0:0:0:0:0:0"] = {}
|
||||
TSM.db.factionrealm.mats["item:52511:0:0:0:0:0:0"].name = name
|
||||
TSM.db.factionrealm.mats["item:52511"] = nil
|
||||
end
|
||||
|
||||
local func, err = TSMAPI:ParseCustomPrice(TSM.db.global.defaultCraftPriceMethod, "crafting")
|
||||
if not func then
|
||||
TSM:Printf(L["Your default craft value method was invalid so it has been returned to the default. Details: %s"], err)
|
||||
TSM.db.global.defaultCraftPriceMethod = savedDBDefaults.defaultCraftPriceMethod
|
||||
end
|
||||
for name, operation in pairs(TSM.operations) do
|
||||
if operation.craftPriceMethod then
|
||||
local func, err = TSMAPI:ParseCustomPrice(TSM.db.global.defaultCraftPriceMethod, "crafting")
|
||||
if not func then
|
||||
TSM:Printf(L["Your craft value method for '%s' was invalid so it has been returned to the default. Details: %s"], name, err)
|
||||
operation.craftPriceMethod = TSM.operationDefaults.craftPriceMethod
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- registers this module with TSM by first setting all fields and then calling TSMAPI:NewModule().
|
||||
function TSM:RegisterModule()
|
||||
TSM.icons = { { side = "module", desc = "Crafting", slashCommand = "crafting", callback = "Options:LoadCrafting", icon = "Interface\\Icons\\INV_Misc_Gear_08" } }
|
||||
TSM.operations = { maxOperations = 1, callbackOptions = "Options:Load", callbackInfo = "GetOperationInfo" }
|
||||
TSM.priceSources = {
|
||||
{ key = "Crafting", label = L["Crafting Cost"], callback = "GetCraftingCost" },
|
||||
{ key = "matPrice", label = L["Crafting Material Cost"], callback = "GetCraftingMatCost" },
|
||||
}
|
||||
TSM.moduleAPIs = {
|
||||
{ key = "addQueue", callback = "Queue:addQueue" },
|
||||
{ key = "removeQueue", callback = "Queue:removeQueue" },
|
||||
{ key = "getQueue", callback = "Queue:getQueue" },
|
||||
{ key = "getCDCrafts", callback = "getCDCrafts" },
|
||||
{ key = "getCraftingFrameStatus", callback = "CraftingGUI:GetStatus" },
|
||||
}
|
||||
TSM.tooltipOptions = { callback = "Options:LoadTooltipOptions" }
|
||||
TSM.slashCommands = {
|
||||
{ key = "profession", label = L["Opens the Crafting window to the first profession."], callback = "CraftingGUI:OpenFirstProfession" },
|
||||
{ key = "restock_help", label = "Tells you why a specific item is not being restocked and added to the queue.", callback = "RestockHelp" },
|
||||
}
|
||||
TSM.sync = { callback = "Sync:Callback" }
|
||||
TSMAPI:NewModule(TSM)
|
||||
end
|
||||
|
||||
TSM.operationDefaults = {
|
||||
minRestock = 1, -- min of 1
|
||||
maxRestock = 3, -- max of 3
|
||||
minProfit = 1000000,
|
||||
craftPriceMethod = nil,
|
||||
ignorePlayer = {},
|
||||
ignoreFactionrealm = {},
|
||||
relationships = {},
|
||||
}
|
||||
|
||||
function TSM:GetOperationInfo(name)
|
||||
TSMAPI:UpdateOperation("Crafting", name)
|
||||
local operation = TSM.operations[name]
|
||||
if not operation then return end
|
||||
if operation.minProfit then
|
||||
return format(L["Restocking to a max of %d (min of %d) with a min profit."], operation.maxRestock, operation.minRestock)
|
||||
else
|
||||
return format(L["Restocking to a max of %d (min of %d) with no min profit."], operation.maxRestock, operation.minRestock)
|
||||
end
|
||||
end
|
||||
|
||||
function TSM:GetTooltip(itemString)
|
||||
if not TSM.db.global.tooltip then return end
|
||||
local text = {}
|
||||
local moneyCoinsTooltip = TSMAPI:GetMoneyCoinsTooltip()
|
||||
TSM:UpdateCraftReverseLookup()
|
||||
itemString = TSMAPI:GetBaseItemString(itemString) -- show craft costs against random enchants
|
||||
|
||||
if TSM.craftReverseLookup[itemString] then
|
||||
if TSM.db.global.tooltip then
|
||||
local spellID, cost, buyout, profit = TSM.Cost:GetLowestCraftPrices(itemString)
|
||||
local color
|
||||
|
||||
if profit and profit < 0 then
|
||||
color = "|cffff0000"
|
||||
else
|
||||
color = "|cff00ff00"
|
||||
|
||||
end
|
||||
|
||||
if cost then
|
||||
local costText, profitText
|
||||
if moneyCoinsTooltip then
|
||||
costText = (TSMAPI:FormatTextMoneyIcon(cost, "|cffffffff", true) or "|cffffffff---|r")
|
||||
profitText = (TSMAPI:FormatTextMoneyIcon(profit, color, true) or "|cffffffff---|r")
|
||||
else
|
||||
costText = (TSMAPI:FormatTextMoney(cost, "|cffffffff", true) or "|cffffffff---|r")
|
||||
profitText = (TSMAPI:FormatTextMoney(profit, color, true) or "|cffffffff---|r")
|
||||
end
|
||||
if profit then
|
||||
local profitPercent = profit / cost * 100
|
||||
local profitPercText = format("%s%.0f%%|r",color, profitPercent)
|
||||
|
||||
if profit>0 then
|
||||
tinsert(text, { left = " " .. L["Crafting Cost"], right = format("%s (%s | %s profit)", costText, profitText, profitPercText) })
|
||||
else
|
||||
tinsert(text, { left = " " .. L["Crafting Cost"], right = format("%s (%s | %s loss)", costText, profitText, profitPercText) })
|
||||
end
|
||||
else
|
||||
-- tinsert(text, { left = " " .. L["Crafting Cost"], right = format(L["%s (%s profit)"], costText, profitText) })
|
||||
tinsert(text, { left = " " .. L["Crafting Cost"], right = format("%s", costText) })
|
||||
end
|
||||
|
||||
if TSM.db.global.matsInTooltip and TSM.db.factionrealm.crafts[spellID] then
|
||||
for matItemString, matQuantity in pairs(TSM.db.factionrealm.crafts[spellID].mats) do
|
||||
local name, _, quality = TSMAPI:GetSafeItemInfo(matItemString)
|
||||
if name then
|
||||
local mat = TSM.db.factionrealm.mats[matItemString]
|
||||
if mat then
|
||||
local cost = TSM:GetCustomPrice(mat.customValue or TSM.db.global.defaultMatCostMethod, matItemString)
|
||||
if cost then
|
||||
-- local colorName = format("|c%s%s%s%s|r",select(4,GetItemQualityColor(quality)),name, " x ", matQuantity)
|
||||
local colorName = format("%s%s%s%s|r",select(4,GetItemQualityColor(quality)), name, " x ", matQuantity)
|
||||
if matQuantity > 1 then
|
||||
if moneyCoinsTooltip then
|
||||
tinsert(text, { left = " " .. colorName, right = "ea: "..TSMAPI:FormatTextMoneyIcon(cost, "|cffffffff", true).." | total: "..TSMAPI:FormatTextMoneyIcon(cost*matQuantity, "|cffffffff", true)})
|
||||
else
|
||||
tinsert(text, { left = " " .. colorName, right = "ea: "..TSMAPI:FormatTextMoney(cost, "|cffffffff", true).." | total: "..TSMAPI:FormatTextMoney(cost*matQuantity, "|cffffffff", true)})
|
||||
end
|
||||
else
|
||||
if moneyCoinsTooltip then
|
||||
tinsert(text, { left = " " .. colorName, right = TSMAPI:FormatTextMoneyIcon(cost*matQuantity, "|cffffffff", true) })
|
||||
else
|
||||
tinsert(text, { left = " " .. colorName, right = TSMAPI:FormatTextMoney(cost*matQuantity, "|cffffffff", true) })
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
if TSM.db.global.materialTooltip then
|
||||
local mat = TSM.db.factionrealm.mats[itemString]
|
||||
if mat then
|
||||
local cost = TSM:GetCustomPrice(mat.customValue or TSM.db.global.defaultMatCostMethod, itemString)
|
||||
if cost then
|
||||
local costText
|
||||
if moneyCoinsTooltip then
|
||||
costText = (TSMAPI:FormatTextMoneyIcon(cost, "|cffffffff", true) or "|cffffffff---|r")
|
||||
else
|
||||
costText = (TSMAPI:FormatTextMoney(cost, "|cffffffff", true) or "|cffffffff---|r")
|
||||
end
|
||||
tinsert(text, { left = " " .. L["Mat Cost"], right = format("%s", costText) })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
if #text > 0 then
|
||||
tinsert(text, 1, "|cffffff00" .. "TSM Crafting:")
|
||||
return text
|
||||
end
|
||||
end
|
||||
|
||||
function TSM:GetCraftingCost(link)
|
||||
link = select(2, TSMAPI:GetSafeItemInfo(link))
|
||||
local itemString = TSMAPI:GetBaseItemString(link)
|
||||
if not itemString then return end
|
||||
|
||||
TSM:UpdateCraftReverseLookup()
|
||||
local _, cost = TSM.Cost:GetLowestCraftPrices(itemString)
|
||||
if cost then
|
||||
TSM.db.factionrealm.craftingCostCache[itemString] = cost
|
||||
end
|
||||
return TSM.db.factionrealm.craftingCostCache[itemString]
|
||||
end
|
||||
|
||||
function TSM:GetCraftingMatCost(link)
|
||||
link = select(2, TSMAPI:GetSafeItemInfo(link))
|
||||
local itemString = TSMAPI:GetBaseItemString(link)
|
||||
if not itemString then return end
|
||||
|
||||
TSM:UpdateCraftReverseLookup()
|
||||
return TSM.Cost:GetMatCost(itemString)
|
||||
end
|
||||
|
||||
local reverseLookupUpdate = 0
|
||||
function TSM:UpdateCraftReverseLookup()
|
||||
-- if reverseLookupUpdate >= time() - 30 then return end
|
||||
reverseLookupUpdate = time()
|
||||
TSM.craftReverseLookup = {}
|
||||
|
||||
for spellID, data in pairs(TSM.db.factionrealm.crafts) do
|
||||
TSM.craftReverseLookup[data.itemID] = TSM.craftReverseLookup[data.itemID] or {}
|
||||
tinsert(TSM.craftReverseLookup[data.itemID], spellID)
|
||||
end
|
||||
end
|
||||
|
||||
function TSM:GetCustomPrice(priceMethod, itemString)
|
||||
local func = TSMAPI:ParseCustomPrice(priceMethod)
|
||||
return func and func(itemString)
|
||||
end
|
||||
|
||||
function TSM:getCDCrafts()
|
||||
local crafts = {}
|
||||
for spellID, data in pairs(TSM.db.factionrealm.crafts) do
|
||||
if data.hasCD then
|
||||
crafts[spellID] = data.name
|
||||
end
|
||||
end
|
||||
return crafts
|
||||
end
|
||||
|
||||
function TSM:RestockHelp(link)
|
||||
local itemString = TSMAPI:GetItemString(link)
|
||||
if not itemString then
|
||||
return print("No item specified. Usage: /tsm restock_help [ITEM_LINK]")
|
||||
end
|
||||
|
||||
TSM:Printf("Restock help for %s:", link)
|
||||
|
||||
-- check if the item is in a group
|
||||
local groupPath = TSMAPI:GetGroupPath(itemString)
|
||||
if not groupPath then
|
||||
return print("This item is not in a TSM group.")
|
||||
end
|
||||
|
||||
-- check that there's a crafting operation applied
|
||||
local operation = (TSMAPI:GetItemOperation(itemString, "Crafting") or {})[1]
|
||||
if not operation then
|
||||
return print(format("There is no TSM_Crafting operation applied to this item's TSM group (%s).", TSMAPI:FormatGroupPath(groupPath)))
|
||||
end
|
||||
|
||||
-- check if it's an invalid operation
|
||||
local opSettings = TSM.operations[operation]
|
||||
if opSettings.minRestock > opSettings.maxRestock then
|
||||
return print(format(L["'%s' is an invalid operation! Min restock of %d is higher than max restock of %d."], operation, opSettings.minRestock, opSettings.maxRestock))
|
||||
end
|
||||
|
||||
-- check that this item is craftable
|
||||
TSM:UpdateCraftReverseLookup()
|
||||
local spellID = TSM.craftReverseLookup[itemString] and TSM.craftReverseLookup[itemString][1]
|
||||
if not spellID or not TSM.db.factionrealm.crafts[spellID] then
|
||||
return print("You don't know how to craft this item.")
|
||||
end
|
||||
|
||||
-- check the restock quantity
|
||||
local numHave = TSM.Inventory:GetTotalQuantity(itemString)
|
||||
if numHave >= opSettings.maxRestock then
|
||||
return print(format("You already have at least your max restock quantity of this item. You have %d and the max restock quantity is %d", numHave, opSettings.maxRestock))
|
||||
elseif (opSettings.maxRestock - numHave) < opSettings.minRestock then
|
||||
return print(format("The number which would be queued (%d) is less than the min restock quantity (%d).", (opSettings.maxRestock - numHave), opSettings.minRestock))
|
||||
end
|
||||
|
||||
-- check the prices on the item and the min profit
|
||||
if opSettings.minProfit then
|
||||
local cheapestSpellID, cost, craftedValue, profit = TSM.Cost:GetLowestCraftPrices(itemString)
|
||||
|
||||
-- check that there's a crafted value
|
||||
if not craftedValue then
|
||||
local craftPriceMethod = operation and operation.craftPriceMethod or TSM.db.global.defaultCraftPriceMethod
|
||||
return print(format("The 'Craft Value Method' (%s) did not return a value for this item. If it is based on some price database (AuctionDB, TSM_WoWuction, TUJ, etc), then ensure that you have scanned for or downloaded the data as appropriate.", craftPriceMethod))
|
||||
end
|
||||
|
||||
-- check that there's a crafted cost
|
||||
if not cost then
|
||||
return print("This item does not have a crafting cost. Check that all of its mats have mat prices. If the mat prices are based on some price database (AuctionDB, TSM_WoWuction, TUJ, etc), then ensure that you have scanned for or downloaded the data as appropriate.")
|
||||
end
|
||||
|
||||
-- check that there's a profit
|
||||
if not profit then
|
||||
return print("There is a crafting cost and crafted item value, but TSM_Crafting wasn't able to calculate a profit. This shouldn't happen!")
|
||||
end
|
||||
|
||||
local minProfit = TSM:GetCustomPrice(opSettings.minProfit, itemString)
|
||||
if not minProfit then
|
||||
return print(format("The min profit (%s) did not evalulate to a valid value for this item.", opSettings.minProfit))
|
||||
end
|
||||
|
||||
if profit < minProfit then
|
||||
return print(format("The profit of this item (%s) is below the min profit (%s).", TSMAPI:FormatTextMoney(profit), TSMAPI:FormatTextMoney(minProfit)))
|
||||
end
|
||||
end
|
||||
|
||||
print("This item will be added to the queue when you restock its group. If this isn't happening, make a post on the TSM forums with a screenshot of the item's tooltip, operation settings, and your general TSM_Crafting options.")
|
||||
end
|
||||
@@ -0,0 +1,32 @@
|
||||
## Interface: 30300
|
||||
## Title: |cff00ff00TradeSkillMaster_Crafting|r
|
||||
## Notes: Provides a rich profession interface complete with a powerful crafting queue.
|
||||
## Author: Sapu94, Bart39
|
||||
## Version: v2.5.2
|
||||
## SavedVariables: TradeSkillMaster_CraftingDB
|
||||
## Dependency: TradeSkillMaster, TradeSkillMaster_ItemTracker
|
||||
|
||||
Locale\enUS.lua
|
||||
Locale\deDE.lua
|
||||
Locale\esES.lua
|
||||
Locale\esMX.lua
|
||||
Locale\frFR.lua
|
||||
Locale\koKR.lua
|
||||
Locale\ruRU.lua
|
||||
Locale\zhCN.lua
|
||||
Locale\zhTW.lua
|
||||
Locale\ptBR.lua
|
||||
|
||||
TradeSkillMaster_Crafting.lua
|
||||
|
||||
Modules\Cost.lua
|
||||
Modules\Inventory.lua
|
||||
Modules\CraftingGUI.lua
|
||||
Modules\Util.lua
|
||||
Modules\Queue.lua
|
||||
Modules\Options.lua
|
||||
Modules\EnchantingInfo.lua
|
||||
Modules\Gather.lua
|
||||
Modules\Sync.lua
|
||||
Modules\SpellNames2IDs.lua
|
||||
Modules\VellumInfo.lua
|
||||
Reference in New Issue
Block a user