/trunk
RecipeDB["Enchant Gloves - Major Spellpower"] = { |
["ShortDescription"]="+20 Spellpower to Gloves", |
["Link"] = "|cffffd000|Henchant:33997|h[Enchant Gloves - Major Spellpower]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant spell power damage gloves", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Gloves - Spell Strike"] = { |
["ShortDescription"]="15 Spell Hit Rating to Gloves", |
["Link"] = "|cffffd000|Henchant:33994|h[Enchant Gloves - Spell Strike]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant spell hit rating gloves", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Gloves - Major Healing"] = { |
["ShortDescription"]="+35 Healing to Gloves", |
["Link"] = "|cffffd000|Henchant:33999|h[Enchant Gloves - Major Healing]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant healing gloves", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Gloves - Assault"] = { |
["ShortDescription"]="+26 Attack Power to Gloves", |
["Link"] = "|cffffd000|Henchant:33996|h[Enchant Gloves - Assault]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant attack power ap gloves", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Gloves - Blasting"] = { |
["ShortDescription"]="+10 Spell Critical Strike Rating to Gloves", |
["Link"] = "|cffffd000|Henchant:33993|h[Enchant Gloves - Blasting]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant spell critical rating gloves", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Gloves - Major Strength"] = { |
["ShortDescription"]="+15 Strength to Gloves", |
["Link"] = "|cffffd000|Henchant:33995|h[Enchant Gloves - Major Strength]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant strength gloves", |
["Price"] = 10000 |
}; |
---------------------------- Meta Gems ---------------------------- |
RecipeDB["Ember Skyfire Diamond"] = { |
["ShortDescription"]="+14 Spell Damage & +2% Intellect", |
["Link"] = "|cff0070dd|Hitem:35503:0:0:0:0:0:0:0|h[Ember Skyfire Diamond]|h|r", |
["Mats"] = {["Skyfire Diamond"]=1}, |
["Keywords"] = "gems ember skyfire diamond meta spell damage intellect", |
["Price"] = 10002 |
}; |
RecipeDB["Eternal Earthstorm Diamond"] = { |
["ShortDescription"]="+12 Defense & +10% Shield Block", |
["Link"] = "|cff0070dd|Hitem:35501:0:0:0:0:0:0:0|h[Eternal Earthstorm Diamond]|h|r", |
["Mats"] = {["Earthstorm Diamond"]=1}, |
["Keywords"] = "gems eternal earthstorm diamond meta defense shield block", |
["Price"] = 10002 |
}; |
RecipeDB["Bracing Earthstorm Diamond"] = { |
["ShortDescription"]="+26 Healing Spells & 2% Reduced Threat", |
["Link"] = "|cff0070dd|Hitem:25897:0:0:0:0:0:0:0|h[Bracing Earthstorm Diamond]|h|r", |
["Mats"] = {["Earthstorm Diamond"]=1}, |
["Keywords"] = "gems bracing earthstorm diamond meta healing threat", |
["Price"] = 10002 |
}; |
RecipeDB["Brutal Earthstorm Diamond"] = { |
["ShortDescription"]="+3 Melee Damage & Chance to Stun Target", |
["Link"] = "|cff0070dd|Hitem:25899:0:0:0:0:0:0:0|h[Brutal Earthstorm Diamond]|h|r", |
["Mats"] = {["Earthstorm Diamond"]=1}, |
["Keywords"] = "gems brutal earthstorm diamond meta damage stun", |
["Price"] = 10002 |
}; |
RecipeDB["Destructive Skyfire Diamond"] = { |
["ShortDescription"]="+14 Spell Crit Rating and 1% Spell Reflect", |
["Link"] = "|cff0070dd|Hitem:25890:0:0:0:0:0:0:0|h[Destructive Skyfire Diamond]|h|r", |
["Mats"] = {["Skyfire Diamond"]=1}, |
["Keywords"] = "gems destructive skyfire diamond meta spell critical reflect", |
["Price"] = 10002 |
}; |
RecipeDB["Enigmatic Skyfire Diamond"] = { |
["ShortDescription"]="+12 Critical Strike Rating and 5% Snare and Root Resist", |
["Link"] = "|cff0070dd|Hitem:25895:0:0:0:0:0:0:0|h[Enigmatic Skyfire Diamond]|h|r", |
["Mats"] = {["Skyfire Diamond"]=1}, |
["Keywords"] = "gems enigmatic skyfire diamond meta critical snare root resist", |
["Price"] = 10002 |
}; |
RecipeDB["Insightful Earthstorm Diamond"] = { |
["ShortDescription"]="+12 Intellect & Chance to restore mana on spellcast", |
["Link"] = "|cff0070dd|Hitem:25901:0:0:0:0:0:0:0|h[Insightful Earthstorm Diamond]|h|r", |
["Mats"] = {["Earthstorm Diamond"]=1}, |
["Keywords"] = "gems insightful earthstorm diamond meta intellect restore mana", |
["Price"] = 10002 |
}; |
RecipeDB["Mystical Skyfire Diamond"] = { |
["ShortDescription"]="5% on spellcast - next spell cast in half time", |
["Link"] = "|cff0070dd|Hitem:25893:0:0:0:0:0:0:0|h[Mystical Skyfire Diamond]|h|r", |
["Mats"] = {["Skyfire Diamond"]=1}, |
["Keywords"] = "gems mystical skyfire diamond meta next spell half time", |
["Price"] = 10002 |
}; |
RecipeDB["Powerful Earthstorm Diamond"] = { |
["ShortDescription"]="+18 Stamina & 5% Stun resist", |
["Link"] = "|cff0070dd|Hitem:25896:0:0:0:0:0:0:0|h[Powerful Earthstorm Diamond]|h|r", |
["Mats"] = {["Earthstorm Diamond"]=1}, |
["Keywords"] = "gems powerful earthstorm diamond meta stamina stun resist", |
["Price"] = 10002 |
}; |
RecipeDB["Relentless Earthstorm Diamond"] = { |
["ShortDescription"]="+12 Agility & +3% Critical Strike Damage", |
["Link"] = "|cff0070dd|Hitem:32409:0:0:0:0:0:0:0|h[Relentless Earthstorm Diamond]|h|r", |
["Mats"] = {["Earthstorm Diamond"]=1}, |
["Keywords"] = "gems relentless earthstorm diamond meta agility critical damage", |
["Price"] = 10002 |
}; |
RecipeDB["Swift Skyfire Diamond"] = { |
["ShortDescription"]="+24 Attack Power and Minor Run Speed Increase", |
["Link"] = "|cff0070dd|Hitem:25894:0:0:0:0:0:0:0|h[Swift Skyfire Diamond]|h|r", |
["Mats"] = {["Skyfire Diamond"]=1}, |
["Keywords"] = "gems swift skyfire diamond meta attack power run speed", |
["Price"] = 10002 |
}; |
RecipeDB["Tenacious Earthstorm Diamond"] = { |
["ShortDescription"]="+12 Defense Rating & Chance to Restore Health on hit", |
["Link"] = "|cff0070dd|Hitem:25898:0:0:0:0:0:0:0|h[Tenacious Earthstorm Diamond]|h|r", |
["Mats"] = {["Earthstorm Diamond"]=1}, |
["Keywords"] = "gems tenacious earthstorm diamond meta defense restore health", |
["Price"] = 10002 |
}; |
RecipeDB["Thundering Skyfire Diamond"] = { |
["ShortDescription"]="Chance to Increase Melee/Ranged Attack Speed", |
["Link"] = "|cff0070dd|Hitem:32410:0:0:0:0:0:0:0|h[Thundering Skyfire Diamond]|h|r", |
["Mats"] = {["Skyfire Diamond"]=1}, |
["Keywords"] = "gems thundering skyfire diamond meta attack speed", |
["Price"] = 10002 |
}; |
---------------------------- Skyfire Gems ---------------------------- |
-- The following encapsulates the Recipe database 27914 |
RecipeDB = {}; |
function GetRecipeDescription(name) |
if RecipeDB[name] == nil then |
return "<Invalid Recipe>" |
else |
return RecipeDB[name].Description |
end |
end |
function SetRecipeDescription(name, descr) |
if RecipeDB[name] == nil then |
RecipeDB[name] = {} end |
RecipeDB[name].Description = descr |
end |
function GetRecipeLink(name) |
if RecipeDB[name] == nil then |
return "<Invalid Recipe>" |
else |
return RecipeDB[name].Link |
end |
end |
function SetRecipeLink(name, link) |
if RecipeDB[name] == nil then |
RecipeDB[name] = {} end |
RecipeDB[name].Link = link |
end |
function GetRecipeMats(name) |
if RecipeDB[name] == nil then |
return "<Invalid Recipe>" |
else |
return RecipeDB[name].Mats |
end |
end |
function SetRecipeMats(name, mats) |
if RecipeDB[name] == nil then |
RecipeDB[name] = {} end |
RecipeDB[name].Mats = mats |
end |
function SetRecipeKeywords(name, words) |
if RecipeDB[name] == nil then |
RecipeDB[name] = {} end |
RecipeDB[name].Keywords = words |
end |
function GetRecipeDescription(name) |
if RecipeDB[name] == nil then |
return "<Invalid Recipe>" |
else |
return RecipeDB[name].Description |
end |
end |
-- The following functions encapsulate the Component database |
bysComponentDB = {}; |
function SetComponentPrice(name, gold, silver, copper) |
if bysComponentDB[name] == nil then |
bysComponentDB[name] = {} end |
bysComponentDB[name].Price = gold*10000 + silver*100 + copper |
end |
function GetComponentPrice(name) |
if bysComponentDB[name] == nil then |
return 99,99,99 |
else |
local copper = mod(bysComponentDB[name].Price, 100); |
local silver = mod(bysComponentDB[name].Price/100, 100); |
local gold = bysComponentDB[name].Price/10000; |
return gold, silver, copper; |
end |
end |
----------------------------------------------------------------- |
function Id2Name(id) |
local longname,_,_,_,_ = ESell_Enchante_getInfoDetail(id); |
return longname |
end |
function Name2Id(name) |
-- local longname,_,_,_,_ = ESell_Enchante_getInfoDetail(id); |
-- return longname |
end |
squelches = {}; |
squelchCount = 0; |
function SendSquelchedMessage(message, channel, arg3, who) |
squelchCount = squelchCount + 2; |
SendChatMessage(message, channel, arg3, who); |
end |
function Nakas_EditDB(text) |
local _, firstspace = strfind(text, " ", 1); |
local _, secondspace = strfind(text, ".*|h|r ", firstspace + 1); |
local _, thirdspace = strfind(text, " ", secondspace + 1); |
local link = strsub(text, firstspace + 1, secondspace-1); |
local key = strsub(text, secondspace + 1, thirdspace-1); |
local value = strsub(text, thirdspace + 1); |
ChatFrame1:AddMessage("link<"..link..">",0,1,1); |
ChatFrame1:AddMessage("key<"..key..">",0,1,1); |
ChatFrame1:AddMessage("value<"..value..">",0,1,1); |
for i, enchanteTable in ipairs(EnchantingSell_ListEnchante) do |
if link == enchanteTable.Link then |
enchanteTable[key] = value; |
end |
end |
end |
function Nakas_AddEnchant(link) |
ESell_Enchante_AddEnchant(link); |
end |
function Nakas_Getlink(who, link) |
printable = gsub(link, "\124", "\124\124"); |
ChatFrame1:AddMessage("Here's what it really looks like: \"" .. printable .. "\""); |
end |
function Nakas_KeywordsHelp(who) |
message1 = [[The search engine understands the following keywords:]]; |
message2 = [[Recipe type & rarity: enchant, gem, rare, meta]] |
message3 = [[Enchant locations: chest, gloves, 1h, 2h, weapon, ...]] |
message4 = [[Base attributes: str, agil, stam, int, spirit]] |
message5 = [[Other attributs: spell, crit, damage, healing, stun, ...]] |
message6 = [[Gem colors: red, orange, yellow, green, blue, purple]]; |
message7 = [[Common gem names: peridot, garnet, moonstone, ...]] |
message8 = [[Common gem cuts: inscribed, potent, shifting, ...]]; |
message9 = [[Rare gem names: topaz, ruby, skyfire, earthstorm, ...]]; |
message10 = [[Rare gem cuts: enigmatic, destructive, brutal, ...]]; |
SendSquelchedMessage(message1, "WHISPER", nil, who); |
SendSquelchedMessage(message2, "WHISPER", nil, who); |
SendSquelchedMessage(message3, "WHISPER", nil, who); |
SendSquelchedMessage(message4, "WHISPER", nil, who); |
SendSquelchedMessage(message5, "WHISPER", nil, who); |
SendSquelchedMessage(message6, "WHISPER", nil, who); |
SendSquelchedMessage(message7, "WHISPER", nil, who); |
SendSquelchedMessage(message8, "WHISPER", nil, who); |
SendSquelchedMessage(message9, "WHISPER", nil, who); |
SendSquelchedMessage(message10, "WHISPER", nil, who); |
ChatFrame1:AddMessage("Spamming keywords to: "..who,0,1,1); |
end |
----------------------------------------------------------------------------------------------- |
local Nakas_LastWho = ""; |
local Nakas_LastMessage = ""; |
local arEnabled = true; |
local arHideWhispersTimer = 0; |
local OriginalChatFrame_OnEvent; |
function NakasBot_OnLoad() |
this:RegisterEvent("CHAT_MSG_WHISPER"); |
this:RegisterEvent("AUCTION_ITEM_LIST_UPDATE"); |
SlashCmdList["NAKASBOT"] = NakasBot_SlashHandler; |
SLASH_NAKASBOT1 = "/NakasBot"; |
SLASH_NAKASBOT2 = "/nb"; |
local cf = getglobal("ChatFrame1"); |
cf.Nakas_Orig_AddMessage = cf.AddMessage; |
-- cf.AddMessage = Nakas_ChatFrame_AddMessage; |
end |
-- REVISIT: Rewrite to only squelch outgoing whisper replys, not all whispers. |
-- See http://www.wowwiki.com/HOWTO:_Hook_Chat_Messages |
-- CHAT_MSG_WHISPER -- Incomming whispers |
-- CHAT_MSG_WHISPER_INFORM -- Outgoing whispers |
function Nakas_ChatFrame_AddMessage(self,msg,a1,a2,a3,a4,a5,a6,a7,a8,a9) |
if strfind(msg, "[Nakas]") ~= nil then |
ChatFrame3:AddMessage("squelched:"..msg,1,0,0); |
return; |
end |
return self:Nakas_Orig_AddMessage(msg, a1,a2,a3,a4,a5,a6,a7,a8,a9); |
end |
function parse(text) |
local list = {} |
local pos = 1 |
while 1 do |
local first, last = strfind(text, " ", pos) |
if first then |
word = strsub(text, pos, first-1) |
if word ~= "" then tinsert(list, word) end |
pos = last+1 |
else |
word = strsub(text, pos) |
if word ~= "" then tinsert(list, word) end |
break |
end |
end |
return list |
end |
--local msg = "Phase2:- There isn't any need for iterating over this mini-string."; |
--local startPos, endPos, firstWord, restOfString = string.find( msg, "(%w+)[%s%p]*(.*)"); |
--startPos = 1 |
--endPos = 66 |
--firstWord = "Phase2" |
--restOfString = "There isn't any need for iterating over this mini-string." |
--keywords = { "agility", "strength", "spirit", |
-- "fire", "nature", "shadow", "frost", "resist", |
-- "intellect", "stamina", "weapon", "2h", "1h", "bracer", |
-- "cloak", "chest", "boot", "glove", "shield", "fiery", "icy", "crusader", "might", "lifestealing", |
-- "winter", "defense", "block", "healing", "heal", "spell", "demonslaying", |
-- "power", "damage", "link", "resist", "resistance", "armor", "health", "mana", |
-- "herbalism", "mining", "skinning", "riding", "skill", "speed", "brilliant", "wizard", "oil", |
-- "assault", "spell", "crit", "brawn", "restore", "prime", "vitality", "tough", "attack", "power", "penetration" }; |
function Nakas_RepairString(what) |
repaired = ""; |
-- ChatFrame1:AddMessage("before: <"..what..">",0,1,1); |
what = gsub(what, "%%", ""); |
what = gsub(what, "!", ""); |
what = gsub(what, "%?", ""); |
what = gsub(what, "how much for ", ""); |
what = gsub(what, "how much ", ""); |
what = gsub(what, "do you have ", ""); |
-- Take care of itemlinks |
what = gsub(what, "%]|h|r", "") |
what = gsub(what, "|.+%[", "") |
for i,word in ipairs(parse(what)) do |
if word == "dmg" then word = "damage" end |
if word == "firey" then word = "fiery" end |
if word == "spellpower" then word = "spell power" end |
if word == "ap" then word = "attack power" end |
repaired = repaired.." "..word; |
end |
repaired = strsub(repaired, 2); |
-- ChatFrame1:AddMessage("repaired: <"..repaired..">",0,1,1); |
-- for i, parseword in ipairs(parse(repaired)) do |
-- ChatFrame1:AddMessage(" <"..parseword..">",0,1,1); |
-- end |
return repaired; |
end |
function Nakas_GetShortDescription(recipie) |
if tonumber(recipie) == nil then |
return RecipeDB[recipie].ShortDescription; |
end |
if EnchantingSell_ListEnchante[recipie].ShortDescription ~= nil then |
return EnchantingSell_ListEnchante[recipie].ShortDescription |
end |
name, onthis, bonus, bonusnb = ESell_Enchante_getInfoBonus(recipie); |
longname,_,description,_,link = ESell_Enchante_getInfoDetail(recipie); |
price,_,_ = ESell_Enchante_getPrice(recipie); |
if onthis == "Rod" or onthis == nil or bonus == nil then |
EnchantingSell_ListEnchante[recipie].ShortDescription = "Some Rod..."; |
end |
if onthis == "Oil" then |
EnchantingSell_ListEnchante[recipie].ShortDescription = "Some Oil..."; |
end |
if bonusnb == nil then |
EnchantingSell_ListEnchante[recipie].ShortDescription = bonus.." to "..onthis; |
else |
EnchantingSell_ListEnchante[recipie].ShortDescription = "+"..bonusnb.." "..bonus.." to "..onthis; |
end |
return EnchantingSell_ListEnchante[recipie].ShortDescription; |
end |
function Nakas_GetKeywords(recipie) |
-- ChatFrame1:AddMessage(recipie,0,1,1); |
if tonumber(recipie) == nil then |
return RecipeDB[recipie].Keywords; |
end |
if EnchantingSell_ListEnchante[recipie].Keywords == nil then |
EnchantingSell_ListEnchante[recipie].Keywords = gsub(strlower(Nakas_GetShortDescription(recipie)),"%+",""); |
end |
return EnchantingSell_ListEnchante[recipie].Keywords; |
end |
function Nakas_GetLink(recipe) |
if tonumber(recipe) == nil then |
return RecipeDB[recipe].Link; |
else |
return EnchantingSell_ListEnchante[recipe].Link; |
end |
end |
function Nakas_GetPrice(recipe) |
if tonumber(recipe) == nil then |
return RecipeDB[recipe].Price; |
else |
price,_,_ = ESell_Enchante_getPrice(recipe); |
return price/10000; |
end |
end |
function Nakas_DisplayMatches(matches, who) |
ChatFrame1:AddMessage("Displaying Matches ("..getn(matches).." found)",0,1,1); |
if getn(matches) == 0 then |
SendSquelchedMessage("> No matches found", "WHISPER", nil, who); |
return; |
end |
SendSquelchedMessage("> =========<< Search Results >>=========", "WHISPER", nil, who); |
for i, recipe in ipairs(matches) do |
short_description = Nakas_GetShortDescription(recipe); |
link = Nakas_GetLink(recipe); |
price = Nakas_GetPrice(recipe); |
if price >= 3 then |
if price >= 10000 then |
SendSquelchedMessage("> "..link.." "..short_description, "WHISPER", nil, who); |
else |
SendSquelchedMessage("> "..link.." "..short_description.." ("..price.."g+tip)", "WHISPER", nil, who); |
end |
end |
if i > 20 then |
SendSquelchedMessage("> Displaying first 20 matches ("..getn(matches).." found). Use more keywords to limit the search", "WHISPER", nil, who); |
break; |
end |
end |
SendSquelchedMessage("> I am currently in: "..GetZoneText(), "WHISPER", nil, who); |
arHideWhispersTimer = GetTime(); |
end |
-- The word matches the recipe if: |
-- a) The word is 3 or more letters and matches the beginning of a keyword |
-- b) The word is a number and is an exact match to a keyword |
function Nakas_WordMatchesRecipe(word, recipe) |
local keywords = strlower(Nakas_GetKeywords(recipe)); |
-- If the word is fewer than 3 characters, a full match is required |
if strlen(word) < 3 then |
for i, keyword in ipairs(parse(keywords)) do |
if keyword == word then |
return true; |
end |
end |
else -- otherwise a match to the front of the keyword is required |
for i, keyword in ipairs(parse(keywords)) do |
if strfind(keyword, word,1,true) == 1 then |
return true; |
end |
end |
end |
return false; |
end |
function Nakas_GetBestMatches(searchstring) |
local best_matches = {}; |
local max_matches = 0; |
local searchset = parse(searchstring); |
for name, recipe in pairs(RecipeDB) do |
matches = 0; |
for i, word in ipairs(searchset) do |
if Nakas_WordMatchesRecipe(word, name) then |
matches = matches + 1; |
-- ChatFrame1:AddMessage("match:"..name,0,1,1); |
end |
end |
if matches > max_matches then |
max_matches = matches; |
best_matches = {}; |
end |
if matches == max_matches then |
tinsert(best_matches, name); |
end |
end |
-- ChatFrame1:AddMessage("max_matches:"..max_matches,0,1,1); |
-- ChatFrame1:AddMessage("getn(searchset):"..getn(searchset),0,1,1); |
if max_matches * 2 > getn(searchset) then |
return best_matches; |
else |
return nil |
end |
end |
-- Sorting function |
function Nakas_EnchantCostsMore(a, b) |
return Nakas_GetPrice(a) > Nakas_GetPrice(b); |
end |
function Nakas_HelpMenu(who) |
message1 = [[Welcome to Nakas' Enchanting & Jewelcrafting search engine!]]; |
message2 = [[Please choose from the following options:]]; |
message3 = [[ "search" - Describes how to use the search engine.]]; |
message4 = [[ "mats" - Gives the prices of mats and describes how prices are calculated.]]; |
message5 = [[ "tips" - Info on tipping]]; |
message6 = [[ "new" - Lists my new Outlands enchants]]; |
message7 = [[ "keywords" - Lists the keywords that the search engine recognizes]]; |
message8 = [[]]; |
message9 = [[Feel free to add me to your friends list and use the search engine anytime!]] |
SendSquelchedMessage(message1, "WHISPER", nil, who); |
SendSquelchedMessage(message2, "WHISPER", nil, who); |
SendSquelchedMessage(message3, "WHISPER", nil, who); |
SendSquelchedMessage(message4, "WHISPER", nil, who); |
SendSquelchedMessage(message5, "WHISPER", nil, who); |
SendSquelchedMessage(message6, "WHISPER", nil, who); |
SendSquelchedMessage(message7, "WHISPER", nil, who); |
SendSquelchedMessage(message8, "WHISPER", nil, who); |
SendSquelchedMessage(message9, "WHISPER", nil, who); |
ChatFrame1:AddMessage("Spamming help to: "..who,0,1,1); |
arHideWhispersTimer = GetTime(); |
end |
function Nakas_SearchHelpMenu(who) |
message1 = [[The search engine looks for keywords in your whisper, words like "agil", "fiery", "gloves", "+7", etc. If more than 50% of the words in your whisper are keywords, it will assume your whisper is a query.]]; |
message2 = [[It will look for enchants that match the most number of words by comparing your whisper with the name of the enchant and the description text within the link.]]; |
message3 = [[Therefore, try not to have extra words in your whisper. For example, the whisper "+25 agility" will trigger the search engine, but the whisper "What do you charge for +25 agility" will not because most of the words are not keywords.]] |
SendSquelchedMessage(message1, "WHISPER", nil, who); |
SendSquelchedMessage(message2, "WHISPER", nil, who); |
SendSquelchedMessage(message3, "WHISPER", nil, who); |
ChatFrame1:AddMessage("Spamming search help to: "..who,0,1,1); |
arHideWhispersTimer = GetTime(); |
end |
NewEnchantList = { |
"Enchant Bracer - Brawn", |
"Enchant Bracer - Assault", |
"Enchant Chest - Restore Mana Prime", |
"Enchant Bracer - Stats", |
"Enchant Chest - Exceptional Health", |
"Enchant Cloak - Greater Agility", |
"Enchant Cloak - Major Armor", |
"Enchant Gloves - Assault", |
"Enchant Shield - Tough Shield", |
"Enchant Bracer - Major Intellect", |
"Enchant Gloves - Blasting", |
"Enchant Shield - Major Stamina", |
"Enchant Shield - Intellect", |
"Enchant Cloak - Spell Penetration", |
"Enchant Bracer - Superior Healing", |
"Enchant Weapon - Major Spellpower", |
"Enchant Weapon - Major Intellect", |
"Enchant Bracer - Spellpower", |
"Enchant Gloves - Major Spellpower", |
"Enchant Gloves - Major Strength", |
} |
function Nakas_NewMenu(who) |
message1 = [[Here is a list of the new Burning Crusade enchants that I can do:]] |
SendSquelchedMessage(message1, "WHISPER", nil, who); |
matches = {}; |
for i, enchant in ipairs(EnchantingSell_ListEnchante) do |
for j, newEnchant in ipairs(NewEnchantList) do |
if enchant["LongName"] == newEnchant then |
tinsert(matches, i); |
end |
end |
end |
sort(matches, Nakas_EnchantCostsMore); |
Nakas_DisplayMatches(matches, who); |
ChatFrame1:AddMessage("Spamming new help to: "..who,0,1,1); |
arHideWhispersTimer = GetTime(); |
end |
function Nakas_MatsHelpMenu(who) |
message1 = [[The prices of the enchants are auto-calculated from the average AH price of the required mats.]] |
message2 = [[If you supply your own mats, the price will be discounted appropriatly. If you provide all the mats, you'll only be responsible for the tip]] |
message3 = [[The price of mats can vary from day to day with the market, so please don't be too upset if they're a little off. Currently, the prices for some of the more expensive mats are set as follows:]] |
SendSquelchedMessage(message1, "WHISPER", nil, who); |
SendSquelchedMessage(message2, "WHISPER", nil, who); |
SendSquelchedMessage(message3, "WHISPER", nil, who); |
for i, mat in ipairs(EnchantingSell_ListComponant) do |
price = mat.PriceUnite / 10000; |
name = mat.Name; |
-- ChatFrame1:AddMessage(name,0,1,1); |
inBag, inBank, onAlt = ESell_Reagent_getCount(i, player); |
inStock = inBag + inBank; |
if price > 3 and |
(strfind(name,"Essence") ~= nil or |
strfind(name,"Shard") ~= nil or |
strfind(name,"Dust") ~= nil or |
strfind(name,"Orb") ~= nil or |
strfind(name,"Primal") ~= nil) then |
link = EnchantingSell_ListComponant[i]["Link"]; |
SendSquelchedMessage(">"..link.." "..price.."g ("..inStock.." in stock)", "WHISPER", nil, who); |
end |
end |
ChatFrame1:AddMessage("Spamming mats help to: "..who,0,1,1); |
arHideWhispersTimer = GetTime(); |
end |
function Nakas_TipsHelpMenu(who) |
message1 = [[The prices quoted are given as a gold amount plus a tip. The gold amount is the market value of the mats, the tip is the gratuity for doing the enchant. In general, tipping is not optional, a few gold tip is considered minimum for any enchant.]]; |
-- message2 = [[In general, tipping is not optional, a few gold tip is considered minimum for any enchant.]] |
message3 = [[The guidelines for specific popular enchants/cuts are:]] |
message4 = [[ 15-25g: +22 Intellect]]; |
message5 = [[ 10-20g: Spellpower, Healing power, Lifestealing, +5 1h Damage]] |
message6 = [[ 5-15g: Crusader, +25 Agil, +15 Agil, 2% block, +15 resist]] |
message7 = [[ 2-5g: Cutting green quality gems]] |
message8 = [[ 10-15g: Cutting blue quality gems]] |
message9 = [[For other enchants, the general rule of thumb is 10% the price of mats, with a few gold minimum.]] |
SendSquelchedMessage(message1, "WHISPER", nil, who); |
-- SendSquelchedMessage(message2, "WHISPER", nil, who); |
SendSquelchedMessage(message3, "WHISPER", nil, who); |
SendSquelchedMessage(message4, "WHISPER", nil, who); |
SendSquelchedMessage(message5, "WHISPER", nil, who); |
SendSquelchedMessage(message6, "WHISPER", nil, who); |
SendSquelchedMessage(message7, "WHISPER", nil, who); |
SendSquelchedMessage(message8, "WHISPER", nil, who); |
SendSquelchedMessage(message9, "WHISPER", nil, who); |
ChatFrame1:AddMessage("Spamming tips help to: "..who,0,1,1); |
arHideWhispersTimer = GetTime(); |
end |
function Nakas_ListAllGems() |
string = ""; |
for name, recipe in pairs(RecipeDB) do |
ChatFrame1:AddMessage(GetItemCount(recipe.Link).." "..recipe.Link); |
end |
end |
function NakasBot_OnEvent(event) |
if (event == "CHAT_MSG_WHISPER") then |
local what = string.lower(arg1); |
local who = arg2; |
-- spam filter |
--if UnitLevel(who) == 1 then |
-- ChatFrame1:AddMessage("Message from "..who.." blocked",1,0,0); |
-- return; |
--end |
if (arEnabled == false) then |
-- ChatFrame1:AddMessage("> ".."disabled",1,0,0); |
return; |
end |
if (strfind(what,">") == 1) then |
-- ChatFrame1:AddMessage("> ".."bracket found",1,0,0); |
return; |
end |
if strfind(what, "help") == 1 then |
Nakas_HelpMenu(who); |
end |
if strfind(what, "search") == 1 then |
Nakas_SearchHelpMenu(who); |
end |
if strfind(what, "mats") == 1 then |
Nakas_MatsHelpMenu(who); |
end |
if strfind(what, "tips") == 1 then |
Nakas_TipsHelpMenu(who); |
end |
if strfind(what, "new") == 1 then |
Nakas_NewMenu(who); |
end |
if strfind(what, "getlink") == 1 then |
Nakas_Getlink(who, arg1); |
end |
if strfind(what, "keyword") == 1 then |
Nakas_KeywordsHelp(who); |
end |
if strfind(what, "editdb") == 1 then |
Nakas_EditDB(arg1); |
end |
if strfind(what, "addenchant") == 1 then |
Nakas_EditDB(arg1); |
end |
if strfind(what, "listall") == 1 then |
Nakas_ListAllGems(arg1); |
end |
what = Nakas_RepairString(what); |
-- ChatFrame1:AddMessage("> Original string: ["..arg1.."]",1,0,0); |
-- ChatFrame1:AddMessage("> Repaired string: ["..what.."]",1,0,0); |
matches = Nakas_GetBestMatches(what); |
if matches ~= nil then |
ChatFrame1:AddMessage("> "..who..": "..arg1,1,0,0); |
sort(matches, Nakas_EnchantCostsMore); |
Nakas_DisplayMatches(matches, who); |
else |
Nakas_LastWho = who; |
Nakas_LastMessage = what; |
end |
end |
end |
function NakasBot_SlashHandler(arg1) |
if (arg1 == "on") then |
arEnabled = true; |
ChatFrame1:AddMessage("NakasEnchant enabled"); |
return; |
end |
if (arg1 == "off") then |
arEnabled = false; |
ChatFrame1:AddMessage("NakasEnchant disabled"); |
return; |
end |
if (arg1 == "reply") then |
matches = Nakas_GetBestMatches(Nakas_LastMessage); |
sort(matches, Nakas_EnchantCostsMore); |
Nakas_DisplayMatches(matches, Nakas_LastWho); |
end |
end |
---------------------------- Epic Gems ---------------------------- |
RecipeDB["Lustrous Empyrean Sapphire"] = { |
["ShortDescription"]="+4 Mana every 5 seconds", |
["Link"] = "|cffa335ee|Hitem:32202:0:0:0:0:0:0:0|h[Lustrous Empyrean Sapphire]|h|r", |
["Mats"] = {["Empyrean Sapphire"]=1}, |
["Keywords"] = "gems epic lustrous empyrean sapphire blue mana mp5", |
["Price"] = 10002 |
}; |
RecipeDB["Solid Empyrean Sapphire"] = { |
["ShortDescription"]="+15 Stamina", |
["Link"] = "|cffa335ee|Hitem:32200:0:0:0:0:0:0:0|h[Solid Empyrean Sapphire]|h|r", |
["Mats"] = {["Empyrean Sapphire"]=1}, |
["Keywords"] = "gems epic solid empyrean sapphire blue stamina", |
["Price"] = 10002 |
}; |
RecipeDB["Sparkling Empyrean Sapphire"] = { |
["ShortDescription"]="+10 Spirit", |
["Link"] = "|cffa335ee|Hitem:32201:0:0:0:0:0:0:0|h[Sparkling Empyrean Sapphire]|h|r", |
["Mats"] = {["Empyrean Sapphire"]=1}, |
["Keywords"] = "gems epic sparkling empyrean sapphire blue spirit", |
["Price"] = 10002 |
}; |
RecipeDB["Stormy Empyrean Sapphire"] = { |
["ShortDescription"]="+13 Spell Penetration", |
["Link"] = "|cffa335ee|Hitem:32203:0:0:0:0:0:0:0|h[Stormy Empyrean Sapphire]|h|r", |
["Mats"] = {["Empyrean Sapphire"]=1}, |
["Keywords"] = "gems epic stormy empyrean sapphire blue spell penetration", |
["Price"] = 10002 |
}; |
---------------------------- Rare Gems ---------------------------- |
RecipeDB["Lustrous Star of Elune"] = { |
["ShortDescription"]="+3 Mana every 5 seconds", |
["Link"] = "|cff0070dd|Hitem:24037:0:0:0:0:0:0:0|h[Lustrous Star of Elune]|h|r", |
["Mats"] = {["Star of Elune"]=1}, |
["Keywords"] = "gems rare lustrous star elune blue mana mp5", |
["Price"] = 10001 |
}; |
RecipeDB["Sparkling Star of Elune"] = { |
["ShortDescription"]="+8 Spirit", |
["Link"] = "|cff0070dd|Hitem:24035:0:0:0:0:0:0:0|h[Sparkling Star of Elune]|h|r", |
["Mats"] = {["Star of Elune"]=1}, |
["Keywords"] = "gems rare sparkling star elune blue spirit", |
["Price"] = 10001 |
}; |
RecipeDB["Stormy Star of Elune"] = { |
["ShortDescription"]="+10 Spell Penetration", |
["Link"] = "|cff0070dd|Hitem:24039:0:0:0:0:0:0:0|h[Stormy Star of Elune]|h|r", |
["Mats"] = {["Star of Elune"]=1}, |
["Keywords"] = "gems rare stormy star elune blue spell penetration", |
["Price"] = 10001 |
}; |
RecipeDB["Solid Star of Elune"] = { |
["ShortDescription"]="+12 Stamina", |
["Link"] = "|cff0070dd|Hitem:24033:0:0:0:0:0:0:0|h[Solid Star of Elune]|h|r", |
["Mats"] = {["Star of Elune"]=1}, |
["Keywords"] = "gems rare solid star elune blue stamina", |
["Price"] = 10001 |
}; |
---------------------------- Uncommon Gems ---------------------------- |
--[[ |
RecipeDB["Solid Azure Moonstone"] = { |
["ShortDescription"]="+9 Stamina", |
["Link"] = "|cff1eff00|Hitem:23118:0:0:0:0:0:0:0|h[Solid Azure Moonstone]|h|r", |
["Mats"] = {["Azure Moonstone"]=1}, |
["Keywords"] = "gems solid azure moonstone blue stamina", |
["Price"] = 10000 |
}; |
RecipeDB["Sparkling Azure Moonstone"] = { |
["ShortDescription"]="+6 Spirit", |
["Link"] = "|cff1eff00|Hitem:23119:0:0:0:0:0:0:0|h[Sparkling Azure Moonstone]|h|r", |
["Mats"] = {["Azure Moonstone"]=1}, |
["Keywords"] = "gems sparkling azure moonstone blue spirit", |
["Price"] = 10000 |
}; |
RecipeDB["Lustrous Azure Moonstone"] = { |
["ShortDescription"]="+2 mp5", |
["Link"] = "|cff1eff00|Hitem:23121:0:0:0:0:0:0:0|h[Lustrous Azure Moonstone]|h|r", |
["Mats"] = {["Azure Moonstone"]=1}, |
["Keywords"] = "gems lustrious azure moonstone blue mp5", |
["Price"] = 10000 |
}; |
--]] |
## Interface: 20400 |
## Version: 2.0 |
## Title: NakasBot |
## Author: Daniel Pineo (Nakas) |
## Notes: Allows users to search the SellEnchant database via a whisper |
## SavedVariables: |
NakasBot.xml |
NakasBot.lua |
RedGems.lua |
OrangeGems.lua |
YellowGems.lua |
GreenGems.lua |
BlueGems.lua |
PurpleGems.lua |
MetaGems.lua |
WeaponEnchants.lua |
BootEnchants.lua |
GloveEnchants.lua |
BracerEnchants.lua |
CloakEnchants.lua |
ChestEnchants.lua |
ShieldEnchants.lua |
---------------------------- Epic Gems ---------------------------- |
RecipeDB["Dazzling Seaspray Emerald"] = { |
["ShortDescription"]="+5 Intellect and +2 mp5", |
["Link"] = "|cffa335ee|Hitem:32225:0:0:0:0:0:0:0|h[Dazzling Seaspray Emerald]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic dazzling seaspray emerald blue yellow green intellect mp5", |
["Price"] = 10002 |
}; |
RecipeDB["Enduring Seaspray Emerald"] = { |
["ShortDescription"]="+5 Defense and +7 Stamina", |
["Link"] = "|cffa335ee|Hitem:32223:0:0:0:0:0:0:0|h[Enduring Seaspray Emerald]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic enduring seaspray emerald blue yellow green defense stamina", |
["Price"] = 10002 |
}; |
RecipeDB["Jagged Seaspray Emerald"] = { |
["ShortDescription"]="+5 Critical Strike Rating and +7 Stamina", |
["Link"] = "|cffa335ee|Hitem:32226:0:0:0:0:0:0:0|h[Jagged Seaspray Emerald]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic jagged seaspray emerald blue yellow green critical stamina", |
["Price"] = 10002 |
}; |
RecipeDB["Radiant Seaspray Emerald"] = { |
["ShortDescription"]="+5 Spell Crit Rating and +6 Spell Penetration", |
["Link"] = "|cffa335ee|Hitem:32224:0:0:0:0:0:0:0|h[Radiant Seaspray Emerald]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic radiant seaspray emerald blue yellow green spell critical penetration", |
["Price"] = 10002 |
}; |
RecipeDB["Forceful Seaspray Emerald"] = { |
["ShortDescription"]="+5 Spell Haste and +7 Stamina", |
["Link"] = "|cffa335ee|Hitem:35759:0:0:0:0:0:0:0|h[Forceful Seaspray Emerald]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic forceful seaspray emerald blue yellow green spell haste stamina", |
["Price"] = 10002 |
}; |
RecipeDB["Steady Seaspray Emerald"] = { |
["ShortDescription"]="+5 Resilience and +7 Stamina", |
["Link"] = "|cffa335ee|Hitem:35758:0:0:0:0:0:0:0|h[Steady Seaspray Emerald]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic steady seaspray emerald blue yellow green resiience stamina", |
["Price"] = 10002 |
}; |
---------------------------- Rare Gems ---------------------------- |
RecipeDB["Dazzling Talasite"] = { |
["ShortDescription"]="+4 Intellect and +2 mp5", |
["Link"] = "|cff0070dd|Hitem:24065:0:0:0:0:0:0:0|h[Dazzling Talasite]|h|r", |
["Mats"] = {["Talasite"]=1}, |
["Keywords"] = "gems rare dazzling talasite yellow green blue intellect mp5", |
["Price"] = 10001 |
}; |
RecipeDB["Forceful Talasite"] = { |
["ShortDescription"]="+4 Spell Haste and +6 Stamina", |
["Link"] = "|cff0070dd|Hitem:35318:0:0:0:0:0:0:0|h[Forceful Talasite]|h|r", |
["Mats"] = {["Talasite"]=1}, |
["Keywords"] = "gems rare forceful talasite yellow green blue spell haste stamina", |
["Price"] = 10001 |
}; |
RecipeDB["Jagged Talasite"] = { |
["ShortDescription"]="+4 Critical Strike Rating and +6 Stamina", |
["Link"] = "|cff0070dd|Hitem:24067:0:0:0:0:0:0:0|h[Jagged Talasite]|h|r", |
["Mats"] = {["Talasite"]=1}, |
["Keywords"] = "gems rare jagged talasite yellow green blue critical stamina", |
["Price"] = 10001 |
}; |
RecipeDB["Radiant Talasite"] = { |
["ShortDescription"]="+4 Spell Crit Rating and +5 Spell Penetration", |
["Link"] = "|cff0070dd|Hitem:24066:0:0:0:0:0:0:0|h[Radiant Talasite]|h|r", |
["Mats"] = {["Talasite"]=1}, |
["Keywords"] = "gems rare dazzling talasite yellow green blue spell critical penetration", |
["Price"] = 10001 |
}; |
RecipeDB["Steady Talasite"] = { |
["ShortDescription"]="+4 Resilience Rating and +6 Stamina", |
["Link"] = "|cff0070dd|Hitem:33782:0:0:0:0:0:0:0|h[Steady Talasite]|h|r", |
["Mats"] = {["Talasite"]=1}, |
["Keywords"] = "gems rare steady talasite yellow green blue resilience stamina", |
["Price"] = 10001 |
}; |
---------------------------- Uncommon Gems ---------------------------- |
--[[ |
RecipeDB["Enduring Deep Peridot"] = { |
["ShortDescription"]="+3 Defense and +4 Stamina", |
["Link"] = "|cff1eff00|Hitem:23105:0:0:0:0:0:0:0|h[Enduring Deep Peridot]|h|r", |
["Mats"] = {["Deep Peridot"]=1}, |
["Keywords"] = "gems enduring deep peridot yellow green blue defense stamina", |
["Price"] = 10000 |
}; |
RecipeDB["Jagged Deep Peridot"] = { |
["ShortDescription"]="+3 Critical Strike Rating and +4 Stamina", |
["Link"] = "|cff1eff00|Hitem:23104:0:0:0:0:0:0:0|h[Jagged Deep Peridot]|h|r", |
["Mats"] = {["Deep Peridot"]=1}, |
["Keywords"] = "gems jagged deep peridot yellow green blue critical stamina", |
["Price"] = 10000 |
}; |
RecipeDB["Radiant Deep Peridot"] = { |
["ShortDescription"]="+3 Spell Critical Strike Rating and +4 Spell Penetration", |
["Link"] = "|cff1eff00|Hitem:23103:0:0:0:0:0:0:0|h[Radiant Deep Peridot]|h|r", |
["Mats"] = {["Deep Peridot"]=1}, |
["Keywords"] = "gems radiant deep peridot yellow green blue spell critical penetration", |
["Price"] = 10000 |
}; |
RecipeDB["Dazzling Deep Peridot"] = { |
["ShortDescription"]="+1 mp5 and +1 Intellect", |
["Link"] = "|cff1eff00|Hitem:23106:0:0:0:0:0:0:0|h[Dazzling Deep Peridot]|h|r", |
["Mats"] = {["Deep Peridot"]=1}, |
["Keywords"] = "gems dazzling deep peridot yellow green blue mp5 intellect", |
["Price"] = 10000 |
}; |
--]] |
RecipeDB["Enchant Cloak - Greater Agility"] = { |
["ShortDescription"]="+12 Agility to Cloak", |
["Link"] = "|cffffd000|Henchant:34004|h[Enchant Cloak - Greater Agility]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant agility cloak", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Cloak - Spell Penetration"] = { |
["ShortDescription"]="+20 Penetration to Cloak", |
["Link"] = "|cffffd000|Henchant:34003|h[Enchant Cloak - Spell Penetration]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant spell penetration cloak", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Cloak - Major Armor"] = { |
["ShortDescription"]="+120 Armor to Cloak", |
["Link"] = "|cffffd000|Henchant:27961|h[Enchant Cloak - Major Armor]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant armor cloak", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Cloak - Major Resistance"] = { |
["ShortDescription"]="+7 Resistances to Cloak", |
["Link"] = "|cffffd000|Henchant:27962|h[Enchant Cloak - Major Resistance]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant resistance cloak", |
["Price"] = 10000 |
}; |
---------------------------- 1H Weapon Enchants ---------------------------- |
RecipeDB["Enchant Weapon - Major Healing"] = { |
["ShortDescription"]="+81 Healing to Weapon", |
["Link"] = "|cffffd000|Henchant:34010|h[Enchant Weapon - Major Healing]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant healing 1h 2h weapon", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Weapon - Major Intellect"] = { |
["ShortDescription"]="+30 Intellect to Weapon", |
["Link"] = "|cffffd000|Henchant:27968|h[Enchant Weapon - Major Intellect]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant intellect 1h 2h weapon", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Weapon - Major Spellpower"] = { |
["ShortDescription"]="+40 Spellpower to Weapon", |
["Link"] = "|cffffd000|Henchant:27975|h[Enchant Weapon - Major Spellpower]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant spell power damage 1h 2h weapon", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Weapon - Major Striking"] = { |
["ShortDescription"]="+7 Damage to Weapon", |
["Link"] = "|cffffd000|Henchant:27967|h[Enchant Weapon - Major Striking]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant damage 1h 2h weapon", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Weapon - Sunfire"] = { |
["ShortDescription"]="Not Known -> See Tlyander", |
["Link"] = "|cffffd000|Henchant:27981|h[Enchant Weapon - Sunfire]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant sunfire spell damage 1h 2h weapon", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Weapon - Battlemaster"] = { |
["ShortDescription"]="Not Known -> See Tlyander", |
["Link"] = "|cffffd000|Henchant:28004|h[Enchant Weapon - Battlemaster]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant battlemaster 1h 2h weapon", |
["Price"] = 10000 |
}; |
---------------------------- 2H Weapon Enchants ---------------------------- |
RecipeDB["Enchant 2H Weapon - Savagery"] = { |
["ShortDescription"]="+70 AP to 2-Handed Weapon", |
["Link"] = "|cffffd000|Henchant:27971|h[Enchant 2H Weapon - Savagery]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant ap attack power savagery 2h weapon", |
["Price"] = 10000 |
}; |
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd"> |
<Script file="localization.lua"/> |
<Script file="localization.de.lua"/> |
<Script file="NakasBot.lua"/> |
<Frame name="NakasBotFrame" hidden="true"> |
<Scripts> |
<OnLoad>NakasBot_OnLoad();</OnLoad> |
<OnEvent>NakasBot_OnEvent(event);</OnEvent> |
<OnShow>NakasBot_OnShow();</OnShow> |
</Scripts> |
</Frame> |
</Ui> |
RecipeDB["Enchant Bracer - Spellpower"] = { |
["ShortDescription"]="+15 Spellpower to Bracer", |
["Link"] = "|cffffd000|Henchant:27917|h[Enchant Bracer - Spellpower]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant spell power damage bracers", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Bracer - Fortitude"] = { |
["ShortDescription"]="+12 Stamina to Bracer", |
["Link"] = "|cffffd000|Henchant:27914|h[Enchant Bracer - Fortitude]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant fortitude stamina bracers", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Bracer - Assault"] = { |
["ShortDescription"]="+24 Attack Power to Bracer", |
["Link"] = "|cffffd000|Henchant:34002|h[Enchant Bracer - Assault]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant assault attack power ap bracers", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Bracer - Brawn"] = { |
["ShortDescription"]="+12 Strength to Bracer", |
["Link"] = "|cffffd000|Henchant:27899|h[Enchant Bracer - Brawn]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant brawn stamina bracers", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Bracer - Superior Healing"] = { |
["ShortDescription"]="+30 Healing to Bracer", |
["Link"] = "|cffffd000|Henchant:27911|h[Enchant Bracer - Superior Healing]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant healing bracers", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Bracer - Stats"] = { |
["ShortDescription"]="+4 Stats to Bracer", |
["Link"] = "|cffffd000|Henchant:27905|h[Enchant Bracer - Stats]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant stats bracers", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Bracer - Major Intellect"] = { |
["ShortDescription"]="+12 Intellect to Bracer", |
["Link"] = "|cffffd000|Henchant:34001|h[Enchant Bracer - Major Intellect]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant intellect bracers", |
["Price"] = 10000 |
}; |
---------------------------- Epic Gems ---------------------------- |
RecipeDB["Balanced Shadowsong Amethyst"] = { |
["ShortDescription"]="+10 Attack Power and +7 Stamina", |
["Link"] = "|cffa335ee|Hitem:32213:0:0:0:0:0:0:0|h[Balanced Shadowsong Amethyst]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic balanced shadowsong amethyst red blue purple attack power stamina", |
["Price"] = 10002 |
}; |
RecipeDB["Glowing Shadowsong Amethyst"] = { |
["ShortDescription"]="+6 Spell Damage and +7 Stamina", |
["Link"] = "|cffa335ee|Hitem:32215:0:0:0:0:0:0:0|h[Glowing Shadowsong Amethyst]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic glowing shadowsong amethyst red blue purple spell damage stamina", |
["Price"] = 10002 |
}; |
RecipeDB["Infused Shadowsong Amethyst"] = { |
["ShortDescription"]="+10 Attack Power and +2 mp5", |
["Link"] = "|cffa335ee|Hitem:32214:0:0:0:0:0:0:0|h[Infused Shadowsong Amethyst]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic infused shadowsong amethyst red blue purple attack power mp5", |
["Price"] = 10002 |
}; |
RecipeDB["Purified Shadowsong Amethyst"] = { |
["ShortDescription"]="+11 Healing and +5 Spirit", |
["Link"] = "|cffa335ee|Hitem:37503:0:0:0:0:0:0:0|h[Purified Shadowsong Amethyst]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic purified shadowsong amethyst red blue purple healing spirit", |
["Price"] = 10002 |
}; |
RecipeDB["Royal Shadowsong Amethyst"] = { |
["ShortDescription"]="+11 Healing and +2 mp5", |
["Link"] = "|cffa335ee|Hitem:32216:0:0:0:0:0:0:0|h[Royal Shadowsong Amethyst]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic royal shadowsong amethyst red blue purple healing mp5", |
["Price"] = 10002 |
}; |
RecipeDB["Shifting Shadowsong Amethyst"] = { |
["ShortDescription"]="+5 Agility and +7 Stamina", |
["Link"] = "|cffa335ee|Hitem:32212:0:0:0:0:0:0:0|h[Shifting Shadowsong Amethyst]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic shifting shadowsong amethyst red blue purple agility stamina", |
["Price"] = 10002 |
}; |
RecipeDB["Sovereign Shadowsong Amethyst"] = { |
["ShortDescription"]="+5 Strength and +7 Stamina", |
["Link"] = "|cffa335ee|Hitem:32211:0:0:0:0:0:0:0|h[Sovereign Shadowsong Amethyst]|h|r", |
["Mats"] = {["Shadowsong Amethyst"]=1}, |
["Keywords"] = "gems epic sovereign shadowsong amethyst red blue purple strength stamina", |
["Price"] = 10002 |
}; |
---------------------------- Rare Gems ---------------------------- |
RecipeDB["Glowing Nightseye"] = { |
["ShortDescription"]="+5 Spell Damage and +6 Stamina", |
["Link"] = "|cff0070dd|Hitem:24056:0:0:0:0:0:0:0|h[Glowing Nightseye]|h|r", |
["Mats"] = {["Nightseye"]=1}, |
["Keywords"] = "gems rare glowing nightseye blue purple red spell damage stamina", |
["Price"] = 10001 |
}; |
RecipeDB["Infused Nightseye"] = { |
["ShortDescription"]="+8 Attack Power and +2 mp5", |
["Link"] = "|cff0070dd|Hitem:31865:0:0:0:0:0:0:0|h[Infused Nightseye]|h|r", |
["Mats"] = {["Nightseye"]=1}, |
["Keywords"] = "gems rare infused nightseye blue purple red attack power ap mp5", |
["Price"] = 10001 |
}; |
RecipeDB["Regal Nightseye"] = { |
["ShortDescription"]="+4 Dodge and +6 Stamina", |
["Link"] = "|cff0070dd|Hitem:35707:0:0:0:0:0:0:0|h[Regal Nightseye]|h|r", |
["Mats"] = {["Nightseye"]=1}, |
["Keywords"] = "gems rare regal nightseye blue purple red dodge stamina", |
["Price"] = 10001 |
}; |
RecipeDB["Royal Nightseye"] = { |
["ShortDescription"]="+9 Healing and +2 mp5", |
["Link"] = "|cff0070dd|Hitem:24057:0:0:0:0:0:0:0|h[Royal Nightseye]|h|r", |
["Mats"] = {["Nightseye"]=1}, |
["Keywords"] = "gems rare royal nightseye blue purple red healing mp5", |
["Price"] = 10001 |
}; |
RecipeDB["Shifting Nightseye"] = { |
["ShortDescription"]="+4 Agility and +6 Stamina", |
["Link"] = "|cff0070dd|Hitem:24055:0:0:0:0:0:0:0|h[Shifting Nightseye]|h|r", |
["Mats"] = {["Nightseye"]=1}, |
["Keywords"] = "gems rare shifting nightseye blue purple red agility stamina", |
["Price"] = 10001 |
}; |
RecipeDB["Sovereign Nightseye"] = { |
["ShortDescription"]="+4 Strength and +6 Stamina", |
["Link"] = "|cff0070dd|Hitem:24054:0:0:0:0:0:0:0|h[Sovereign Nightseye]|h|r", |
["Mats"] = {["Nightseye"]=1}, |
["Keywords"] = "gems rare sovereign nightseye blue purple red strength stamina", |
["Price"] = 10001 |
}; |
RecipeDB["Purified Shadow Pearl"] = { |
["ShortDescription"]="+9 Healing and +4 Spirit", |
["Link"] = "|cff0070dd|Hitem:32836:0:0:0:0:0:0:0|h[Purified Shadow Pearl]|h|r", |
["Mats"] = {["Nightseye"]=1}, |
["Keywords"] = "gems rare glowing shadow pearl blue purple red healing spirit", |
["Price"] = 10001 |
}; |
---------------------------- Uncommon Gems --------------------------- |
--[[ |
RecipeDB["Sovereign Shadow Draenite"] = { |
["ShortDescription"]="+3 Strength and +4 Stamina", |
["Link"] = "|cff1eff00|Hitem:23111:0:0:0:0:0:0:0|h[Sovereign Shadow Draenite]|h|r", |
["Mats"] = {["Shadow Draenite"]=1}, |
["Keywords"] = "gems sovereign shadow draenite blue purple red strength stamina", |
["Price"] = 10000 |
}; |
RecipeDB["Glowing Shadow Draenite"] = { |
["ShortDescription"]=" +4 Spell Damage and +4 Stamina", |
["Link"] = "|cff1eff00|Hitem:23108:0:0:0:0:0:0:0|h[Glowing Shadow Draenite]|h|r", |
["Mats"] = {["Shadow Draenite"]=1}, |
["Keywords"] = "gems glowing shadow draenite blue purple red spell damage stamina", |
["Price"] = 10000 |
}; |
RecipeDB["Shifting Shadow Draenite"] = { |
["ShortDescription"]="+3 Agility and +4 Stamina", |
["Link"] = "|cff1eff00|Hitem:23110:0:0:0:0:0:0:0|h[Shifting Shadow Draenite]|h|r", |
["Mats"] = {["Shadow Draenite"]=1}, |
["Keywords"] = "gems shifting shadow draenite blue purple red agility stamina", |
["Price"] = 10000 |
}; |
--]] |
---------------------------- Epic Gems ---------------------------- |
RecipeDB["Bold Crimson Spinel"] = { |
["ShortDescription"]="+10 Strength", |
["Link"] = "|cffa335ee|Hitem:32193:0:0:0:0:0:0:0|h[Bold Crimson Spinel]|h|r", |
["Mats"] = {["Crimson Spinel"]=1}, |
["Keywords"] = "gems epic bold crimson spinel red strength", |
["Price"] = 10002 |
}; |
RecipeDB["Bright Crimson Spinel"] = { |
["ShortDescription"]="+20 Attack Power", |
["Link"] = "|cffa335ee|Hitem:32197:0:0:0:0:0:0:0|h[Bright Crimson Spinel]|h|r", |
["Mats"] = {["Crimson Spinel"]=1}, |
["Keywords"] = "gems epic bright crimson spinel red attack power", |
["Price"] = 10002 |
}; |
RecipeDB["Delicate Crimson Spinel"] = { |
["ShortDescription"]="+10 Agility", |
["Link"] = "|cffa335ee|Hitem:32194:0:0:0:0:0:0:0|h[Delicate Crimson Spinel]|h|r", |
["Mats"] = {["Crimson Spinel"]=1}, |
["Keywords"] = "gems epic delicate crimson spinel red agility", |
["Price"] = 10002 |
}; |
RecipeDB["Flashing Crimson Spinel"] = { |
["ShortDescription"]="+10 Parry Rating (N/A)", |
["Link"] = "|cffa335ee|Hitem:32199:0:0:0:0:0:0:0|h[Flashing Crimson Spinel]|h|r", |
["Mats"] = {["Crimson Spinel"]=1}, |
["Keywords"] = "gems epic flashing crimson spinel red parry", |
["Price"] = 10002 |
}; |
RecipeDB["Runed Crimson Spinel"] = { |
["ShortDescription"]="+12 Spell Damage", |
["Link"] = "|cffa335ee|Hitem:32196:0:0:0:0:0:0:0|h[Runed Crimson Spinel]|h|r", |
["Mats"] = {["Crimson Spinel"]=1}, |
["Keywords"] = "gems epic runed crimson spinel red spell damage", |
["Price"] = 10002 |
}; |
RecipeDB["Subtle Crimson Spinel"] = { |
["ShortDescription"]="+10 Dodge Rating", |
["Link"] = "|cffa335ee|Hitem:32198:0:0:0:0:0:0:0|h[Subtle Crimson Spinel]|h|r", |
["Mats"] = {["Crimson Spinel"]=1}, |
["Keywords"] = "gems epic subtle crimson spinel red dodge", |
["Price"] = 10002 |
}; |
RecipeDB["Teardrop Crimson Spinel"] = { |
["ShortDescription"]="+22 Healing and +8 Spell Damage", |
["Link"] = "|cffa335ee|Hitem:32195:0:0:0:0:0:0:0|h[Teardrop Crimson Spinel]|h|r", |
["Mats"] = {["Crimson Spinel"]=1}, |
["Keywords"] = "gems epic crimson spinel red healing", |
["Price"] = 10002 |
}; |
---------------------------- Rare Gems ---------------------------- |
RecipeDB["Bold Living Ruby"] = { |
["ShortDescription"]="+16 Attack Power", |
["Link"] = "|cff0070dd|Hitem:24027:0:0:0:0:0:0:0|h[Bold Living Ruby]|h|r", |
["Mats"] = {["Living Ruby"]=1}, |
["Keywords"] = "gems rare bold living ruby red strength", |
["Price"] = 10001 |
}; |
RecipeDB["Bright Living Ruby"] = { |
["ShortDescription"]="+16 Attack Power", |
["Link"] = "|cff0070dd|Hitem:24031:0:0:0:0:0:0:0|h[Bright Living Ruby]|h|r", |
["Mats"] = {["Living Ruby"]=1}, |
["Keywords"] = "gems rare bright living ruby red ap attack power", |
["Price"] = 10001 |
}; |
RecipeDB["Delicate Living Ruby"] = { |
["ShortDescription"]="+8 Agility", |
["Link"] = "|cff0070dd|Hitem:24028:0:0:0:0:0:0:0|h[Delicate Living Ruby]|h|r", |
["Mats"] = {["Living Ruby"]=1}, |
["Keywords"] = "gems rare delicate living ruby red agility", |
["Price"] = 10001 |
}; |
RecipeDB["Flashing Living Ruby"] = { |
["ShortDescription"]="+8 Parry Rating", |
["Link"] = "|cff0070dd|Hitem:24036:0:0:0:0:0:0:0|h[Flashing Living Ruby]|h|r", |
["Mats"] = {["Living Ruby"]=1}, |
["Keywords"] = "gems rare flashing living ruby red parry", |
["Price"] = 10001 |
}; |
RecipeDB["Runed Living Ruby"] = { |
["ShortDescription"]="+9 Spell Damage", |
["Link"] = "|cff0070dd|Hitem:24030:0:0:0:0:0:0:0|h[Runed Living Ruby]|h|r", |
["Mats"] = {["Living Ruby"]=1}, |
["Keywords"] = "gems rare runed living ruby red spell damage", |
["Price"] = 10001 |
}; |
RecipeDB["Subtle Living Ruby"] = { |
["ShortDescription"]="+8 Dodge Rating", |
["Link"] = "|cff0070dd|Hitem:24032:0:0:0:0:0:0:0|h[Subtle Living Ruby]|h|r", |
["Mats"] = {["Living Ruby"]=1}, |
["Keywords"] = "gems rare subtle living ruby red dodge", |
["Price"] = 10001 |
}; |
RecipeDB["Teardrop Living Ruby"] = { |
["ShortDescription"]="+18 Healing", |
["Link"] = "|cff0070dd|Hitem:24029:0:0:0:0:0:0:0|h[Teardrop Living Ruby]|h|r", |
["Mats"] = {["Living Ruby"]=1}, |
["Keywords"] = "gems rare teardrop living ruby red healing", |
["Price"] = 10001 |
}; |
---------------------------- Uncommon Gems ---------------------------- |
RecipeDB["Bold Blood Garnet"] = { |
["ShortDescription"]="+6 Strength", |
["Link"] = "|cff1eff00|Hitem:23095:0:0:0:0:0:0:0|h[Bold Blood Garnet]|h|r", |
["Mats"] = {["Blood Garnet"]=1}, |
["Keywords"] = "gems bold blood garnet red strength", |
["Price"] = 10000 |
}; |
RecipeDB["Bright Blood Garnet"] = { |
["ShortDescription"]="+12 Attack Power", |
["Link"] = "|cff1eff00|Hitem:28595:0:0:0:0:0:0:0|h[Bright Blood Garnet]|h|r", |
["Mats"] = {["Blood Garnet"]=1}, |
["Keywords"] = "gems bright blood garnet red attack power ap", |
["Price"] = 10000 |
}; |
RecipeDB["Teardrop Blood Garnet"] = { |
["ShortDescription"]="+13 Healing", |
["Link"] = "|cff1eff00|Hitem:23094:0:0:0:0:0:0:0|h[Teardrop Blood Garnet]|h|r", |
["Mats"] = {["Blood Garnet"]=1}, |
["Keywords"] = "gems teardrop blood garnet red healing", |
["Price"] = 10000 |
}; |
RecipeDB["Runed Blood Garnet"] = { |
["ShortDescription"]="+7 Spell Damage", |
["Link"] = "|cff1eff00|Hitem:23096:0:0:0:0:0:0:0|h[Runed Blood Garnet]|h|r", |
["Mats"] = {["Blood Garnet"]=1}, |
["Keywords"] = "gems runed blood garnet red spell damage", |
["Price"] = 10000 |
}; |
RecipeDB["Delicate Blood Garnet"] = { |
["ShortDescription"]="+6 Agility", |
["Link"] = "|cff1eff00|Hitem:23097:0:0:0:0:0:0:0|h[Delicate Blood Garnet]|h|r", |
["Mats"] = {["Blood Garnet"]=1}, |
["Keywords"] = "gems delicate blood garnet red agility", |
["Price"] = 10000 |
}; |
---------------------------- Epic Gems ---------------------------- |
RecipeDB["Brilliant Lionseye"] = { |
["ShortDescription"]="+10 Intellect", |
["Link"] = "|cffa335ee|Hitem:32204:0:0:0:0:0:0:0|h[Brilliant Lionseye]|h|r", |
["Mats"] = {["Lionseye"]=1}, |
["Keywords"] = "gems epic brilliant lionseye yellow intellect", |
["Price"] = 10002 |
}; |
RecipeDB["Gleaming Lionseye"] = { |
["ShortDescription"]="+10 Spell Crit Rating", |
["Link"] = "|cffa335ee|Hitem:32207:0:0:0:0:0:0:0|h[Gleaming Lionseye]|h|r", |
["Mats"] = {["Lionseye"]=1}, |
["Keywords"] = "gems epic gleaming lionseye yellow spell crit", |
["Price"] = 10002 |
}; |
RecipeDB["Great Lionseye"] = { |
["ShortDescription"]="+10 Spell Hit Rating", |
["Link"] = "|cffa335ee|Hitem:32210:0:0:0:0:0:0:0|h[Great Lionseye]|h|r", |
["Mats"] = {["Lionseye"]=1}, |
["Keywords"] = "gems epic great lionseye yellow spell hit", |
["Price"] = 10002 |
}; |
RecipeDB["Mystic Lionseye"] = { |
["ShortDescription"]="+10 Resilience Rating", |
["Link"] = "|cffa335ee|Hitem:32209:0:0:0:0:0:0:0|h[Mystic Lionseye]|h|r", |
["Mats"] = {["Lionseye"]=1}, |
["Keywords"] = "gems epic mystic lionseye yellow resilience", |
["Price"] = 10002 |
}; |
RecipeDB["Quick Lionseye"] = { |
["ShortDescription"]="+10 Spell Haste", |
["Link"] = "|cffa335ee|Hitem:35761:0:0:0:0:0:0:0|h[Quick Lionseye]|h|r", |
["Mats"] = {["Lionseye"]=1}, |
["Keywords"] = "gems epic quick lionseye yellow spell haste", |
["Price"] = 10002 |
}; |
RecipeDB["Rigid Lionseye"] = { |
["ShortDescription"]="+10 Hit Rating", |
["Link"] = "|cffa335ee|Hitem:32206:0:0:0:0:0:0:0|h[Rigid Lionseye]|h|r", |
["Mats"] = {["Lionseye"]=1}, |
["Keywords"] = "gems epic rigid lionseye yellow hit", |
["Price"] = 10002 |
}; |
RecipeDB["Smooth Lionseye"] = { |
["ShortDescription"]="+10 Crit Strike Rating", |
["Link"] = "|cffa335ee|Hitem:32205:0:0:0:0:0:0:0|h[Smooth Lionseye]|h|r", |
["Mats"] = {["Lionseye"]=1}, |
["Keywords"] = "gems epic smooth lionseye yellow crit", |
["Price"] = 10002 |
}; |
RecipeDB["Thick Lionseye"] = { |
["ShortDescription"]="+10 Defense Rating", |
["Link"] = "|cffa335ee|Hitem:32208:0:0:0:0:0:0:0|h[Thick Lionseye]|h|r", |
["Mats"] = {["Lionseye"]=1}, |
["Keywords"] = "gems epic thick lionseye yellow defense", |
["Price"] = 10002 |
}; |
---------------------------- Rare Gems ---------------------------- |
RecipeDB["Brilliant Dawnstone"] = { |
["ShortDescription"]="+8 Intellect", |
["Link"] = "|cff0070dd|Hitem:24047:0:0:0:0:0:0:0|h[Brilliant Dawnstone]|h|r", |
["Mats"] = {["Dawnstone"]=1}, |
["Keywords"] = "gems rare brilliant dawnstone yellow intellect", |
["Price"] = 10001 |
}; |
RecipeDB["Gleaming Dawnstone"] = { |
["ShortDescription"]="+8 Spell Critical Rating", |
["Link"] = "|cff0070dd|Hitem:24050:0:0:0:0:0:0:0|h[Gleaming Dawnstone]|h|r", |
["Mats"] = {["Dawnstone"]=1}, |
["Keywords"] = "gems rare gleaming dawnstone yellow spell critical", |
["Price"] = 10001 |
}; |
RecipeDB["Great Dawnstone"] = { |
["ShortDescription"]="+8 Spell Hit Rating", |
["Link"] = "|cff0070dd|Hitem:31861:0:0:0:0:0:0:0|h[Great Dawnstone]|h|r", |
["Mats"] = {["Dawnstone"]=1}, |
["Keywords"] = "gems rare great dawnstone yellow spell hit", |
["Price"] = 10001 |
}; |
RecipeDB["Mystic Dawnstone"] = { |
["ShortDescription"]="+8 Resilience Rating", |
["Link"] = "|cff0070dd|Hitem:24053:0:0:0:0:0:0:0|h[Mystic Dawnstone]|h|r", |
["Mats"] = {["Dawnstone"]=1}, |
["Keywords"] = "gems rare mystic dawnstone yellow resilience", |
["Price"] = 10001 |
}; |
RecipeDB["Quick Dawnstone"] = { |
["ShortDescription"]="+8 Spell Haste Rating", |
["Link"] = "|cff0070dd|Hitem:35315:0:0:0:0:0:0:0|h[Quick Dawnstone]|h|r", |
["Mats"] = {["Dawnstone"]=1}, |
["Keywords"] = "gems rare quick dawnstone yellow spell haste", |
["Price"] = 10001 |
}; |
RecipeDB["Rigid Dawnstone"] = { |
["ShortDescription"]="+8 Hit Rating", |
["Link"] = "|cff0070dd|Hitem:24051:0:0:0:0:0:0:0|h[Rigid Dawnstone]|h|r", |
["Mats"] = {["Dawnstone"]=1}, |
["Keywords"] = "gems rare rigid dawnstone yellow hit", |
["Price"] = 10001 |
}; |
RecipeDB["Smooth Dawnstone"] = { |
["ShortDescription"]="+8 Critical Strike Rating", |
["Link"] = "|cff0070dd|Hitem:24048:0:0:0:0:0:0:0|h[Smooth Dawnstone]|h|r", |
["Mats"] = {["Dawnstone"]=1}, |
["Keywords"] = "gems rare smooth dawnstone yellow critical", |
["Price"] = 10001 |
}; |
RecipeDB["Thick Dawnstone"] = { |
["ShortDescription"]="+8 Defense Rating", |
["Link"] = "|cff0070dd|Hitem:24052:0:0:0:0:0:0:0|h[Thick Dawnstone]|h|r", |
["Mats"] = {["Dawnstone"]=1}, |
["Keywords"] = "gems rare thick dawnstone yellow defense", |
["Price"] = 10001 |
}; |
---------------------------- Uncommon Gems ---------------------------- |
--[[ |
RecipeDB["Rigid Golden Draenite"] = { |
["ShortDescription"]="+6 Hit Rating", |
["Link"] = "|cff1eff00|Hitem:23116:0:0:0:0:0:0:0|h[Rigid Golden Draenite]|h|r", |
["Mats"] = {["Golden Draenite"]=1}, |
["Keywords"] = "gems rigid golden draenite yellow hit", |
["Price"] = 10000 |
}; |
RecipeDB["Smooth Golden Draenite"] = { |
["ShortDescription"]="+6 Critical Strike Rating", |
["Link"] = "|cff1eff00|Hitem:28290:0:0:0:0:0:0:0|h[Smooth Golden Draenite]|h|r", |
["Mats"] = {["Golden Draenite"]=1}, |
["Keywords"] = "gems smooth golden draenite yellow critical", |
["Price"] = 10000 |
}; |
RecipeDB["Brilliant Golden Draenite"] = { |
["ShortDescription"]="+6 Intellect", |
["Link"] = "|cff1eff00|Hitem:23113:0:0:0:0:0:0:0|h[Brilliant Golden Draenite]|h|r", |
["Mats"] = {["Golden Draenite"]=1}, |
["Keywords"] = "gems brilliant golden draenite yellow intellect", |
["Price"] = 10000 |
}; |
RecipeDB["Thick Golden Draenite"] = { |
["ShortDescription"]="+6 Defense Rating", |
["Link"] = "|cff1eff00|Hitem:23115:0:0:0:0:0:0:0|h[Thick Golden Draenite]|h|r", |
["Mats"] = {["Golden Draenite"]=1}, |
["Keywords"] = "gems thick golden draenite yellow defense", |
["Price"] = 10000 |
}; |
--]] |
RecipeDB["Enchant Boots - Dexterity"] = { |
["ShortDescription"]="Not Known -> See Tlyander", |
["Link"] = "|cffffd000|Henchant:27951|h[Enchant Boots - Dexterity]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant agility dexterity boots", |
["Price"] = 10000 |
}; |
---------------------------- Epic Gems ---------------------------- |
RecipeDB["Glinting Pyrestone"] = { |
["ShortDescription"]="+5 Hit Rating and +5 Agility", |
["Link"] = "|cffa335ee|Hitem:32220:0:0:0:0:0:0:0|h[Glinting Pyrestone]|h|r", |
["Mats"] = {["Pyrestone"]=1}, |
["Keywords"] = "gems epic glinting pyrestone red yellow orange hit agility", |
["Price"] = 10002 |
}; |
RecipeDB["Inscribed Pyrestone"] = { |
["ShortDescription"]="+5 Crit Rating and +5 Strength", |
["Link"] = "|cffa335ee|Hitem:32217:0:0:0:0:0:0:0|h[Inscribed Pyrestone]|h|r", |
["Mats"] = {["Pyrestone"]=1}, |
["Keywords"] = "gems epic inscribed pyrestone red yellow orange critical strength", |
["Price"] = 10002 |
}; |
RecipeDB["Luminous Pyrestone"] = { |
["ShortDescription"]="+11 Healing and +5 Intellect", |
["Link"] = "|cffa335ee|Hitem:32219:0:0:0:0:0:0:0|h[Luminous Pyrestone]|h|r", |
["Mats"] = {["Pyrestone"]=1}, |
["Keywords"] = "gems epic glinting pyrestone red yellow orange healing intellect", |
["Price"] = 10002 |
}; |
RecipeDB["Potent Pyrestone"] = { |
["ShortDescription"]="+5 Spell Crit Rating and +6 Spell Damage", |
["Link"] = "|cffa335ee|Hitem:32218:0:0:0:0:0:0:0|h[Potent Pyrestone]|h|r", |
["Mats"] = {["Pyrestone"]=1}, |
["Keywords"] = "gems epic glinting pyrestone red yellow orange spell critical damage", |
["Price"] = 10002 |
}; |
RecipeDB["Reckless Pyrestone"] = { |
["ShortDescription"]="+5 Spell Haste and +6 Spell Damage", |
["Link"] = "|cffa335ee|Hitem:35760:0:0:0:0:0:0:0|h[Reckless Pyrestone]|h|r", |
["Mats"] = {["Pyrestone"]=1}, |
["Keywords"] = "gems epic reckless pyrestone red yellow orange spell haste damage", |
["Price"] = 10002 |
}; |
RecipeDB["Veiled Pyrestone"] = { |
["ShortDescription"]="+5 Spell Hit Rating and +6 Spell Damage", |
["Link"] = "|cffa335ee|Hitem:32221:0:0:0:0:0:0:0|h[Veiled Pyrestone]|h|r", |
["Mats"] = {["Pyrestone"]=1}, |
["Keywords"] = "gems epic veiled pyrestone red yellow orange spell hit damage", |
["Price"] = 10002 |
}; |
RecipeDB["Wicked Pyrestone"] = { |
["ShortDescription"]="+5 Spell Crit Rating and +10 Attack Power", |
["Link"] = "|cffa335ee|Hitem:32222:0:0:0:0:0:0:0|h[Wicked Pyrestone]|h|r", |
["Mats"] = {["Pyrestone"]=1}, |
["Keywords"] = "gems epic wicked pyrestone red yellow orange spell critical attack power ap", |
["Price"] = 10002 |
}; |
---------------------------- Rare Gems ---------------------------- |
RecipeDB["Glinting Noble Topaz"] = { |
["ShortDescription"]="+4 Hit Rating and +4 Agility", |
["Link"] = "|cff0070dd|Hitem:24061:0:0:0:0:0:0:0|h[Glinting Noble Topaz]|h|r", |
["Mats"] = {["Noble Topaz"]=1}, |
["Keywords"] = "gems rare glinting noble topaz red orange yellow hit agility", |
["Price"] = 10001 |
}; |
RecipeDB["Inscribed Noble Topaz"] = { |
["ShortDescription"]="+4 Critical Strike Rating and +4 Strength", |
["Link"] = "|cff0070dd|Hitem:24058:0:0:0:0:0:0:0|h[Inscribed Noble Topaz]|h|r", |
["Mats"] = {["Noble Topaz"]=1}, |
["Keywords"] = "gems rare inscribed noble topaz red orange yellow critical strength", |
["Price"] = 10001 |
}; |
RecipeDB["Luminous Noble Topaz"] = { |
["ShortDescription"]="+9 Healing Spells and +4 Intellect", |
["Link"] = "|cff0070dd|Hitem:24060:0:0:0:0:0:0:0|h[Luminous Noble Topaz]|h|r", |
["Mats"] = {["Noble Topaz"]=1}, |
["Keywords"] = "gems rare luminous noble topaz red orange yellow healing intellect", |
["Price"] = 10001 |
}; |
RecipeDB["Potent Noble Topaz"] = { |
["ShortDescription"]="+4 Spell Crit Rating and +5 Spell Damage", |
["Link"] = "|cff0070dd|Hitem:24059:0:0:0:0:0:0:0|h[Potent Noble Topaz]|h|r", |
["Mats"] = {["Noble Topaz"]=1}, |
["Keywords"] = "gems rare potent noble topaz red orange yellow spell crit damage", |
["Price"] = 10001 |
}; |
RecipeDB["Reckless Noble Topaz"] = { |
["ShortDescription"]="+4 Spell Haste Rating and +5 Spell Damage", |
["Link"] = "|cff0070dd|Hitem:35316:0:0:0:0:0:0:0|h[Reckless Noble Topaz]|h|r", |
["Mats"] = {["Noble Topaz"]=1}, |
["Keywords"] = "gems rare potent noble topaz red orange yellow spell crit damage", |
["Price"] = 10001 |
}; |
RecipeDB["Veiled Noble Topaz"] = { |
["ShortDescription"]="+4 Spell Hit Rating and +5 Spell Damage", |
["Link"] = "|cff0070dd|Hitem:31867:0:0:0:0:0:0:0|h[Veiled Noble Topaz]|h|r", |
["Mats"] = {["Noble Topaz"]=1}, |
["Keywords"] = "gems rare veiled noble topaz red orange yellow spell hit damage", |
["Price"] = 10001 |
}; |
RecipeDB["Wicked Noble Topaz"] = { |
["ShortDescription"]="+4 Crit Rating and +8 Attack Power", |
["Link"] = "|cff0070dd|Hitem:31868:0:0:0:0:0:0:0|h[Wicked Noble Topaz]|h|r", |
["Mats"] = {["Noble Topaz"]=1}, |
["Keywords"] = "gems rare wicked noble topaz red orange yellow crit attack power", |
["Price"] = 10001 |
}; |
---------------------------- Uncommon Gems ---------------------------- |
--[[ |
RecipeDB["Glinting Flame Spessarite"] = { |
["ShortDescription"]="+3 Hit Rating and +3 Agility", |
["Link"] = "|cff1eff00|Hitem:23100:0:0:0:0:0:0:0|h[Glinting Flame Spessarite]|h|r", |
["Mats"] = {["Flame Spessarite"]=1}, |
["Keywords"] = "gems glinting flame spessarite red orange yellow hit agility", |
["Price"] = 10000 |
}; |
RecipeDB["Luminous Flame Spessarite"] = { |
["ShortDescription"]="+7 Healing Spells and +3 Intellect", |
["Link"] = "|cff1eff00|Hitem:23099:0:0:0:0:0:0:0|h[Luminous Flame Spessarite]|h|r", |
["Mats"] = {["Flame Spessarite"]=1}, |
["Keywords"] = "gems inscribed flame spessarite red orange yellow healing intellect", |
["Price"] = 10000 |
}; |
RecipeDB["Inscribed Flame Spessarite"] = { |
["ShortDescription"]="+3 Critical Strike Rating and +3 Strength", |
["Link"] = "|cff1eff00|Hitem:23098:0:0:0:0:0:0:0|h[Inscribed Flame Spessarite]|h|r", |
["Mats"] = {["Flame Spessarite"]=1}, |
["Keywords"] = "gems luminous flame spessarite red orange yellow critical strength", |
["Price"] = 10000 |
}; |
RecipeDB["Potent Flame Spessarite"] = { |
["ShortDescription"]="+3 Spell Critical Rating and +4 Spell Damage", |
["Link"] = "|cff1eff00|Hitem:23101:0:0:0:0:0:0:0|h[Potent Flame Spessarite]|h|r", |
["Mats"] = {["Flame Spessarite"]=1}, |
["Keywords"] = "gems potent flame spessarite red orange yellow spell critical damage", |
["Price"] = 10000 |
}; |
--]] |
RecipeDB["Enchant Chest - Exceptional Stats"] = { |
["ShortDescription"]="+6 Stats to Chest", |
["Link"] = "|cffffd000|Henchant:27960|h[Enchant Chest - Exceptional Stats]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant stats chest", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Chest - Exceptional Health"] = { |
["ShortDescription"]="+150 Health to Chest", |
["Link"] = "|cffffd000|Henchant:27957|h[Enchant Chest - Exceptional Health]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant health chest", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Chest - Major Resilience"] = { |
["ShortDescription"]="+15 Resilience to Chest", |
["Link"] = "|cffffd000|Henchant:33992|h[Enchant Chest - Major Resilience]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant resilience chest", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Chest - Restore Mana Prime"] = { |
["ShortDescription"]="6 mp5 to Chest", |
["Link"] = "|cffffd000|Henchant:33991|h[Enchant Chest - Restore Mana Prime]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant mp5 chest", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Shield - Exceptional Stats"] = { |
["ShortDescription"]="+12 Intellect to Shield", |
["Link"] = "|cffffd000|Henchant:27945|h[Enchant Shield - Intellect]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant intellect shield", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Shield - Major Stamina"] = { |
["ShortDescription"]="+18 Stamina to Shield", |
["Link"] = "|cffffd000|Henchant:34009|h[Enchant Shield - Major Stamina]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant stamina shield", |
["Price"] = 10000 |
}; |
RecipeDB["Enchant Shield - Tough Shield"] = { |
["ShortDescription"]="+18 Block to Shield", |
["Link"] = "|cffffd000|Henchant:27944|h[Enchant Shield - Tough Shield]|h|r", |
["Mats"] = {["Savagery"]=1}, |
["Keywords"] = "enchant block shield", |
["Price"] = 10000 |
}; |