WoWInterface SVN DailyTo-Dos

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /trunk
    from Rev 1 to Rev 2
    Reverse comparison

Rev 1 → Rev 2

DailyTodos.toc New file
0,0 → 1,41
## Title: Daily To-Do's
## Notes: Tracks your repeated daily tasks so you don't forget!
##
## Interface: 40100
## SavedVariables: DailyTodoDB
##
## Version: 1.9a
## Author: Caedus
## X-Max-Interface: 40100
## X-Embeds: Ace3, LibDataBroker, LibDBIcon, LibCrayon
## X-Category: Combat
## X-Curse-Packaged-Version: v4.1 release
## X-Curse-Project-Name: Daily To-Do's
## X-Curse-Project-ID: daily-todos
## X-Curse-Repository-ID: wow/daily-todos/mainline
 
Libs\LibStub\LibStub.lua
Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml
Libs\AceAddon-3.0\AceAddon-3.0.xml
Libs\AceGUI-3.0\AceGUI-3.0.xml
Libs\AceConfig-3.0\AceConfig-3.0.xml
Libs\AceConsole-3.0\AceConsole-3.0.xml
Libs\AceDB-3.0\AceDB-3.0.xml
Libs\AceEvent-3.0\AceEvent-3.0.xml
Libs\AceHook-3.0\AceHook-3.0.xml
 
Libs\LibQTip-1.0\LibQTip-1.0.lua
 
Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua
 
Libs\LibCrayon-3.0\lib.xml
 
Categories.lua
NPCs.lua
Quests.lua
Variables.lua
DailyTodos.lua
 
Modules\Tooltips.lua
Modules\Announcements.lua
\ No newline at end of file
NPCs.lua New file
0,0 → 1,477
questNpcs = {
[13813] = 33769,
[13814] = 33770,
[13863] = 33762,
[13864] = 33762,
[13846] = 34210,
[13861] = 33759,
[13862] = 33759,
[27978] = 48254,
[27987] = 48254,
[27991] = 48254,
[27992] = 48250,
[28046] = 48250,
[28050] = 48255,
[28059] = 47240,
[28063] = 47240,
[28065] = 47240,
[28117] = 48039,
[28118] = 48039,
[28120] = 48039,
[28122] = 48066,
[28130] = 47240,
[28137] = 47240,
[28162] = 48066,
[28163] = 48066,
[28165] = 48061,
[28185] = 48061,
[28186] = 48061,
[28188] = 48074,
[28223] = 48074,
[28232] = 48074,
[28275] = 48254,
[13336] = 32302,
[28669] = 48062,
[28670] = 48062,
[28678] = 48360,
[28679] = 48360,
[28680] = 48360,
[28681] = 48360,
[28682] = 48358,
[28683] = 48360,
[28684] = 48360,
[28685] = 48358,
[28686] = 48358,
[28687] = 48358,
[28689] = 48363,
[28690] = 48363,
[28691] = 48363,
[28692] = 48363,
[28693] = 48363,
[28694] = 48361,
[28695] = 48361,
[28696] = 48361,
[28697] = 48361,
[28698] = 48361,
[28700] = 48361,
[28721] = 48358,
[13768] = 33372,
[13769] = 33372,
[13770] = 33372,
[13771] = 33540,
[13772] = 33545,
[13773] = 33403,
[13774] = 33403,
[13775] = 33403,
[13776] = 33539,
[13777] = 33549,
[13778] = 33373,
[13779] = 33373,
[13780] = 33373,
[13781] = 33541,
[13782] = 33547,
[13783] = 33379,
[13784] = 33379,
[13785] = 33379,
[13786] = 33538,
[13787] = 33548,
[13809] = 33759,
[13810] = 33763,
[13811] = 33771,
[13812] = 33762,
[13813] = 33769,
[13814] = 33770,
[13856] = 33544,
[13857] = 33545,
[13858] = 33549,
[13859] = 33548,
[13860] = 33547,
[13862] = 33759,
[13863] = 33762,
[13682] = 33759,
[13741] = 33312,
[13742] = 33312,
[13743] = 33312,
[13744] = 33315,
[13745] = 33309,
[13746] = 33335,
[13747] = 33335,
[13748] = 33335,
[13749] = 33648,
[13750] = 33649,
[13752] = 33593,
[13753] = 33593,
[13754] = 33593,
[13755] = 33655,
[13756] = 33656,
[13757] = 33592,
[13758] = 33592,
[13759] = 33592,
[13760] = 33652,
[13761] = 33654,
[13788] = 33762,
[13789] = 33763,
[13790] = 33771,
[13791] = 33769,
[13793] = 33770,
[13847] = 33223,
[13851] = 33309,
[13852] = 33649,
[13854] = 33656,
[13855] = 33654,
[13861] = 33759,
[13864] = 33762,
[26183] = 42288,
[26190] = 42288,
[26192] = 42288,
[26414] = 5494,
[26420] = 5494,
[26442] = 5494,
[26488] = 5494,
[26536] = 5494,
[11524] = 5494,
[11525] = 24965,
[11532] = 24965,
[11533] = 25057,
[11535] = 25057,
[11536] = 25046,
[11537] = 25061,
[11538] = 25061,
[11539] = 25061,
[11540] = 25069,
[11541] = 25088,
[11542] = 25088,
[11543] = 25108,
[11544] = 25046,
[11545] = 25046,
[11546] = 24975,
[11547] = 25133,
[11548] = 25112,
[11875] = 19202,
[11877] = 25140,
[11880] = 19475,
[11097] = 23434,
[11101] = 23452,
}
npcInfo = {
[25088] = {
name = "Captain Valindria",
zone = 4080,
coords = {{53.8,34.2}},
},
[33538] = {
name = "Kethiel Sunlance",
zone = 210,
coords = {{76.4,23.8}},
},
[33539] = {
name = "Dern Ragetotem",
zone = 210,
coords = {{76.2,24.4},{76.2,24.6}},
},
[33540] = {
name = "Shadow Hunter Mezil-kree",
zone = 210,
coords = {{76,24.4}},
},
[33541] = {
name = "Sarah Chalke",
zone = 210,
coords = {{76.4,24.2}},
},
[47240] = {
name = "Commander Marcus Johnson",
zone = 5389,
coords = {{73.2,59.2},{73.2,59.6},{73.4,58.4}},
},
[33545] = {
name = "Gahju",
zone = 210,
coords = {{76,24.4}},
},
[23434] = {
name = "Commander Hobb",
zone = 3520,
coords = {{56.4,58.4},{56.4,58.6},{56.6,58.6},{57,58}},
},
[33547] = {
name = "Handler Dretch",
zone = 210,
coords = {{76.4,24.2}},
},
[33548] = {
name = "Aneera Thuron",
zone = 210,
coords = {{76.4,23.8}},
},
[33549] = {
name = "Anka Clawhoof",
zone = 210,
coords = {{76.2,24.4},{76.2,24.6}},
},
[24975] = {
name = "Mar'nah",
zone = 4080,
coords = {{51.4,32.4},{51.4,32.6}},
},
[19475] = {
name = "Harbinger Haronem",
zone = 3703,
coords = {{32.4,25.8},{61,52.6},{61.2,51.4},{61.4,52.2},{61.6,52},{61.6,52.6},{62,51.4}},
},
[25108] = {
name = "Vindicator Kaalan",
zone = 4080,
coords = {{50.4,39},{50.6,39}},
},
[25112] = {
name = "Anchorite Ayuri",
zone = 4080,
coords = {{48.2,37.6},{48.4,36.4},{48.4,36.6},{48.6,36.8},{48.6,37.6}},
},
[19202] = {
name = "Emissary Mordin",
zone = 3703,
coords = {{62.4,35.4},{62.4,35.8},{62.6,35.4},{62.6,35.6},{62.6,36.6}},
},
[23452] = {
name = "Commander Arcus",
zone = 3520,
coords = {{62.4,29.2},{63,29.8},{63.6,30},{64.4,31}},
},
[33309] = {
name = "Clara Tumblebrew",
zone = 210,
coords = {{76.6,19.4},{76.6,19.6}},
},
[24965] = {
name = "Vindicator Xayann",
zone = 4080,
coords = {{47.2,30.6}},
},
[33312] = {
name = "Lana Stouthammer",
zone = 210,
coords = {{76.6,19.4}},
},
[34210] = {
name = "Squire Artie",
zone = 210,
coords = {{69.4,22.4},{69.6,22.4}},
},
[33315] = {
name = "Rollo Sureshot",
zone = 210,
coords = {{76.6,19.4}},
},
[48039] = {
name = "Commander Stevens",
zone = 5095,
coords = {{51.4,49.4},{51.4,49.6},{51.6,49},{51.8,49.6}},
},
[25133] = {
name = "Astromancer Darnarian",
zone = 4080,
coords = {{47.4,35.2},{47.6,35.2}},
},
[32302] = {
name = "Knight-Captain Drosche",
zone = 210,
coords = {{55.2,38.4},{55.2,39.2},{55.4,39.8},{55.6,37.8},{55.6,40.4},{55.8,37.4},{55.8,41.4},{55.8,41.8},{56.4,43},{56.6,43.4},{56.8,37},{56.8,44.2},{57.2,44.6},{57.6,45.4},{57.8,37.4},{57.8,45.6},{58,38.4},{58.2,39.4},{58.4,40},{58.4,47.2},{58.6,40.4},{58.6,47.4},{58.8,41},{58.8,47.6},{59.2,48.6},{59.4,42.2},{59.4,42.8},{59.6,49.2},{59.6,49.6},{59.8,43.2},{59.8,43.6},{60,50.8},{60.4,44.8},{60.4,51.6},{60.6,45.2},{60.6,52.2},{60.8,53.2},{61,46.4},{61.2,54},{61.4,47.4},{61.4,47.6},{61.4,54.8},{61.6,47.8},{61.6,54.8},{61.8,56.2},{61.8,56.6},{62.4,49.4},{62.4,50},{62.4,57.6},{62.6,50},{62.6,57.4},{62.6,57.6},{63,50.6},{63.4,51.6},{63.6,52.2},{63.8,53},{64.2,54.4},{64.2,54.8},{64.4,56},{64.4,56.6}},
},
[33771] = {
name = "Luuri",
zone = 210,
coords = {{69.8,23.4}},
},
[42288] = {
name = "Robby Flay",
zone = 1519,
coords = {{50.4,71.6},{50.6,71.4},{50.6,71.6}},
},
[33544] = {
name = "Morah Worgsister",
zone = 210,
coords = {{76.4,24.4},{76.4,24.6}},
},
[25140] = {
name = "Lord Torvos",
zone = 3703,
coords = {{62.4,35.4},{62.4,36},{62.4,36.6},{62.6,35.4},{62.6,36},{62.6,36.6}},
},
[33335] = {
name = "Ambrose Boltspark",
zone = 210,
coords = {{76.4,19.8}},
},
[33592] = {
name = "Jaelyne Evensong",
zone = 210,
coords = {{76.2,19}},
},
[33593] = {
name = "Colosos",
zone = 210,
coords = {{76,19.2}},
},
[48061] = {
name = "2nd Lieutenant Wansworth",
zone = 5095,
coords = {{51.4,49.4},{51.4,49.6},{51.6,49},{51.6,50}},
},
[48062] = {
name = "Staff Sergeant Lazgar",
zone = 5095,
coords = {{51.4,49},{51.4,49.6},{51.6,50.2}},
},
[48066] = {
name = "Sergeant Parker",
zone = 5095,
coords = {{50.8,49.6},{51,49.4}},
},
[5494] = {
name = "Catherine Leland",
zone = 1519,
coords = {{55,69.4},{55,69.6}},
},
[33223] = {
name = "Captain Joseph Holley",
zone = 210,
coords = {{76.4,19.2},{76.6,19.2}},
},
[48074] = {
name = "Marshal Fallows",
zone = 5095,
coords = {{51.4,49.4},{51.4,49.6},{51.6,49},{51.6,50}},
},
[33655] = {
name = "Saandos",
zone = 210,
coords = {{76,19.2}},
},
[33763] = {
name = "Cellian Daybreak",
zone = 210,
coords = {{69.8,23.4}},
},
[25046] = {
name = "Smith Hauthaa",
zone = 4080,
coords = {{50.6,40.8}},
},
[33372] = {
name = "Zul'tore",
zone = 210,
coords = {{76,24.4}},
},
[33373] = {
name = "Deathstalker Visceri",
zone = 210,
coords = {{76.4,24.2}},
},
[33759] = {
name = "Eadric the Pure",
zone = 210,
coords = {{69.8,23.4}},
},
[25057] = {
name = "Battlemage Arynna",
zone = 4080,
coords = {{47.4,35},{47.6,35.2}},
},
[33762] = {
name = "Crok Scourgebane",
zone = 210,
coords = {{73.8,20}},
},
[33379] = {
name = "Eressea Dawnsinger",
zone = 210,
coords = {{76.4,23.8}},
},
[25061] = {
name = "Harbinger Inuuro",
zone = 4080,
coords = {{47.4,35.2},{47.6,35}},
},
[48358] = {
name = "Commander Larmash",
zone = 5389,
coords = {{53.6,80.4},{53.6,80.6}},
},
[48360] = {
name = "3rd Officer Kronkar",
zone = 5389,
coords = {{55.2,80.4},{55.2,81}},
},
[33769] = {
name = "Zor'be the Bloodletter",
zone = 210,
coords = {{73.8,19.4},{73.8,19.6}},
},
[33770] = {
name = "Illyrie Nightfall",
zone = 210,
coords = {{73.4,20},{73.6,20}},
},
[48363] = {
name = "Captain Prug",
zone = 5389,
coords = {{54.4,79.4},{54.4,79.6},{54.6,79.8},{54.8,78.4},{55,79.2}},
},
[25069] = {
name = "Magister Ilastar",
zone = 4080,
coords = {{49.4,40.2}},
},
[33648] = {
name = "Tickin Gearspanner",
zone = 210,
coords = {{76.4,19.8},{76.6,19.8}},
},
[33649] = {
name = "Flickin Gearspanner",
zone = 210,
coords = {{76.4,19.8}},
},
[33652] = {
name = "Illestria Bladesinger",
zone = 210,
coords = {{76.2,19}},
},
[33654] = {
name = "Airae Starseeker",
zone = 210,
coords = {{76.4,19}},
},
[48361] = {
name = "Private Sarlosk",
zone = 5389,
coords = {{55.6,78.4},{55.6,78.6}},
},
[33656] = {
name = "Ranii",
zone = 210,
coords = {{76,19}},
},
[48250] = {
name = "Lieutenant Farnsworth",
zone = 5389,
coords = {{74.4,59},{74.4,60},{74.6,59.4},{74.6,59.6}},
},
[33403] = {
name = "Runok Wildmane",
zone = 210,
coords = {{76.2,24.4},{76.2,24.6}},
},
[48254] = {
name = "Sergeant Gray",
zone = 5389,
coords = {{73,60.2},{73,60.8},{73,61.6}},
},
[48255] = {
name = "Camp Coordinator Brack",
zone = 5389,
coords = {{73.4,58.2},{73.6,57.8}},
},
}
\ No newline at end of file
Textures/Bar.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:executable + Added: svn:mime-type + application/octet-stream
Textures/BarGlow.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:executable + Added: svn:mime-type + application/octet-stream
Textures/wowhead.tga Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes : Added: svn:mime-type + application/octet-stream
Quests.lua New file
0,0 → 1,688
dailyQuests = {
-- =============================================
-- PROFESSION DAILIES
-- =============================================
[1] = {
{category = 2,category2 = 1,daily = 1,id = 1,itemrewards = {{67414,1}},money = 94000,name = "Stormwind Fishing Daily",reprewards = {{76,250}},reqlevel = 10,side = 1,wflags = 2,reputation = 250},
{category = 2,category2 = 1,daily = 1,id = 2,itemrewards = {{46007,1}},name = "Dalaran Fishing Daily",reprewards = {{1090,250}},reqlevel = 70,side = 3,wflags = 2},
{category = 2,category2 = 1,daily = 1,id = 3,itemrewards = {{35348,1}},name = "Shattrath Fishing Daily",reqlevel = 70,side = 3,wflags = 2},
},
[2] = {
{category = 2,category2 = 1,daily = 1,id = 1,itemrewards = {{67414,1}},money = 94000,name = "Orgrimmar Fishing Daily",reprewards = {{76,250}},reqlevel = 10,side = 2,wflags = 2,reputation = 250},
{category = 2,category2 = 1,daily = 1,id = 2,itemrewards = {{46007,1}},name = "Dalaran Fishing Daily",reprewards = {{1090,250}},reqlevel = 70,side = 3,wflags = 2},
{category = 2,category2 = 1,daily = 1,id = 3,itemrewards = {{35348,1}},name = "Shattrath Fishing Daily",reqlevel = 70,side = 3,wflags = 2},
},
[3] = {
{category = 2,category2 = 1,daily = 1,id = 4,currencyrewards = {{402,2}},money = 74000,name = "Stormwind Cooking Daily",reprewards = {{76,250}},reqlevel = 10,side = 1,wflags = 130,reputation = 250},
{category = 2,category2 = 1,daily = 1,id = 5,currencyrewards = {{81,1}},itemrewards = {{44113,1}},money = 58000,name = "Dalaran Cooking Daily",reprewards = {{1090,150}},reqlevel = 65, side = 1,wflags = 130},
{category = 2,category2 = 1,daily = 1,id = 6,itemchoices = {{33844,1},{33857,1}},name = "Shattrath Cooking Daily",side = 3,wflags = 2,xp = 12650},
},
[4] = {
{category = 2,category2 = 1,daily = 1,id = 4,currencyrewards = {{402,2}},money = 74000,name = "Orgrimmar Cooking Daily",reprewards = {{76,250}},reqlevel = 10,side = 2,wflags = 130,reputation = 250},
{category = 2,category2 = 1,daily = 1,id = 5,currencyrewards = {{81,1}},itemrewards = {{44113,1}},money = 58000,name = "Dalaran Cooking Daily",reprewards = {{1090,150}},reqlevel = 65, side = 2,wflags = 130},
{category = 2,category2 = 1,daily = 1,id = 6,itemchoices = {{33844,1},{33857,1}},name = "Shattrath Cooking Daily",side = 3,wflags = 2,xp = 12650},
},
[5] = {
{category = 2,category2 = 1,currencyrewards = {{361,1}},daily = 1,id = 7,name = "Jewelcrafting Daily",money = 165400,reqlevel = 1,side = 3,wflags = 130},
},
[6] = {
{category = 2,category2 = 1,currencyrewards = {{361,1}},daily = 1,id = 7,name = "Jewelcrafting Daily",money = 165400,reqlevel = 1,side = 3,wflags = 130},
},
-- =============================================
-- PVP
-- =============================================
[11] = {
{category = 5287,category2 = 0,daily = 1,id = 26452,money = 94000,name = "Gurubashi Challenge",reqlevel = 30,side = 3,type = 41,wflags = 130}
},
-- =============================================
-- ARGENT CRUSADE
-- =============================================
[1106] = {
{category = 66,category2 = 10,daily = 1,id = 12587,level = 76,money = 62000,name = "Troll Patrol",reprewards = {{1106,350}},reqlevel = 74,side = 3,wflags = 2,xp = 21150,reputation = 350},
{category = 66,category2 = 10,daily = 1,id = 12604,itemrewards = {{43556,1}},level = 76,money = 186000,name = "Congratulations!",reprewards = {{1106,500}},reqlevel = 74,side = 3,wflags = 18,xp = 31750,reputation = 500},
{category = 210,category2 = 10,daily = 1,id = 13300,level = 80,money = 74000,name = "Slaves to Saronite",reprewards = {{1106,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13302,level = 80,money = 74000,name = "Slaves to Saronite",reprewards = {{1106,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,2}},daily = 1,id = 13682,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Threat From Above",reprewards = {{1106,250},{1094,250}},reqlevel = 77,side = 1,type = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13789,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Taking Battle To The Enemy",reprewards = {{1106,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13790,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Among the Champions",reprewards = {{1106,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,2}},daily = 1,id = 13809,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Threat From Above",reprewards = {{1106,250},{1124,250}},reqlevel = 77,side = 2,type = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13810,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Taking Battle To The Enemy",reprewards = {{1106,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13811,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Among the Champions",reprewards = {{1106,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13846,level = 80,name = "Contributin' To The Cause",reprewards = {{1106,100}},reqlevel = 77,side = 3,wflags = 2,reputation = 100},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13861,itemchoices = {{46114,1},{45724,1}},level = 80,money = 74000,name = "Battle Before The Citadel",reprewards = {{1106,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13862,itemchoices = {{46114,1},{45724,1}},level = 80,money = 74000,name = "Battle Before The Citadel",reprewards = {{1106,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- BARADIN'S WARDENS
-- =============================================
[1177] = {
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27944,level = 85,money = 259400,name = "Thinning the Brood",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27948,level = 85,money = 259400,name = "A Sticky Task",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27949,level = 85,money = 259400,name = "The Forgotten",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27966,level = 85,money = 259400,name = "Salvaging the Remains",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27967,level = 85,money = 259400,name = "First Lieutenant Connor",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27970,level = 85,money = 259400,name = "Captain P. Harris",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27971,level = 85,money = 259400,name = "Rattling Their Cages",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27972,level = 85,money = 259400,name = "Boosting Morale",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27973,level = 85,money = 259400,name = "Watch Out For Splinters!",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27975,level = 85,money = 259400,name = "WANTED = Foreman Wellson",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27978,level = 85,money = 259400,name = "Ghostbuster",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27987,level = 85,money = 259400,name = "Cannonball!",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27991,level = 85,money = 259400,name = "Taking the Overlook Back",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 27992,level = 85,money = 259400,name = "Magnets, How Do They Work?",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28046,level = 85,money = 259400,name = "Finish The Job",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,2}},daily = 1,id = 28050,level = 85,money = 259400,name = "Shark Tank",reprewards = {{1177,350}},reqlevel = 85,side = 1,type = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28059,level = 85,money = 259400,name = "Claiming The Keep",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28063,level = 85,money = 259400,name = "Leave No Weapon Behind",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28065,level = 85,money = 259400,name = "Walk A Mile In Their Shoes",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28117,level = 85,money = 188000,name = "Clearing the Depths",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28118,level = 85,money = 188000,name = "The Imprisoned Archmage",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28120,level = 85,money = 353400,name = "Learning From The Past",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28122,level = 85,money = 94000,name = "A Huge Problem",reprewards = {{1177,250}},reqlevel = 85,side = 1,type = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28130,level = 85,money = 259400,name = "Not The Friendliest Town",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28137,level = 85,money = 259400,name = "Teach A Man To Fish.... Or Steal",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28162,level = 85,money = 94000,name = "Swamp Bait",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28163,level = 85,money = 259400,name = "The Leftovers",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28165,level = 85,money = 188000,name = "D-Block",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28185,level = 85,money = 188000,name = "Svarnos",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28186,level = 85,money = 188000,name = "Cursed Shackles",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28188,level = 85,money = 188000,name = "Prison Revolt",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28223,level = 85,money = 188000,name = "The Warden",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28232,level = 85,money = 188000,name = "Food From Below",reprewards = {{1177,350}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28275,level = 85,money = 259400,name = "Bomb's Away!",reprewards = {{1177,250}},reqlevel = 85,side = 1,wflags = 2,xp = 69400,reputation = 250},
},
 
-- =============================================
-- Cenarion Expedition
-- =============================================
[942] = {
{category = 3717,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11368,level = 70,money = 132000,name = "Wanted = The Heart of Quagmirran",reprewards = {{933,350},{942,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3716,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11369,level = 70,money = 132000,name = "Wanted = A Black Stalker Egg",reprewards = {{933,350},{942,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3715,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11370,level = 70,money = 132000,name = "Wanted = The Warlord's Treatise",reprewards = {{933,350},{942,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3715,category2 = 2,daily = 1,id = 11371,itemrewards = {{29460,1}},level = 70,money = 88000,name = "Wanted = Coilfang Myrmidons",reprewards = {{933,250},{942,250}},reqlevel = 70,side = 3,type = 81,wflags = 2,xp = 12650,reputation = 250},
},
 
-- =============================================
-- Darkspear Trolls
-- =============================================
[530] = {
{category = -241,category2 = 7,id = 13727,level = 80,money = 74000,name = "The Valiant's Challenge",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13768,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13769,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13770,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13771,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13772,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13857,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- Darnassus
-- =============================================
[69] = {
{category = -241,category2 = 7,id = 13725,level = 80,money = 74000,name = "The Valiant's Challenge",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13757,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13758,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13759,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13760,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13761,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13855,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -1008,category2 = 9,daily = 1,id = 14054,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "Easy As Pie",reprewards = {{69,150}},reqlevel = 1,side = 1,wflags = 10,reputation = 150},
{category = 406,category2 = 1,daily = 1,id = 25671,level = 28,money = 5000,name = "Thinning the Horde",reprewards = {{69,350}},reqlevel = 25,side = 1,wflags = 130,xp = 2850,reputation = 350},
},
 
-- =============================================
-- Dragonmaw Clan
-- =============================================
[1172] = {
{category = 4922,category2 = 0,daily = 1,id = 28871,level = 84,money = 90000,name = "Crushing the Wildhammer",reprewards = {{1172,250}},reqlevel = 84,side = 2,wflags = 2,xp = 55200,reputation = 250},
{category = 4922,category2 = 0,daily = 1,id = 28872,level = 84,money = 90000,name = "Total War",reprewards = {{1172,250}},reqlevel = 84,side = 2,wflags = 2,xp = 55200,reputation = 250},
{category = 4922,category2 = 0,daily = 1,id = 28873,level = 84,money = 90000,name = "Another Maw to Feed",reprewards = {{1172,250}},reqlevel = 84,side = 2,wflags = 2,xp = 55200,reputation = 250},
{category = 4922,category2 = 0,daily = 1,id = 28874,level = 84,money = 90000,name = "Hook 'em High",reprewards = {{1172,250}},reqlevel = 84,side = 2,wflags = 2,xp = 55200,reputation = 250},
{category = 4922,category2 = 0,daily = 1,id = 28875,level = 84,money = 180000,name = "Bring Down the High Shaman",reprewards = {{1172,350}},reqlevel = 84,side = 2,type = 1,wflags = 2,xp = 69000,reputation = 350},
},
 
-- =============================================
-- Exodar
-- =============================================
[930] = {
{category = -241,category2 = 7,daily = 1,id = 13752,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13753,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13754,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13755,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13756,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13854,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- Explorers' League
-- =============================================
[1068] = {
{category = 495,category2 = 10,daily = 1,id = 11391,itemrewards = {{22829,2}},level = 71,money = 47000,name = "Steel Gate Patrol",reprewards = {{1068,250}},reqlevel = 69,side = 1,wflags = 130,xp = 20100,reputation = 250},
},
 
-- =============================================
-- Frenzyheart Tribe
-- =============================================
[1104] = {
{category = 3711,category2 = 10,daily = 1,id = 12702,level = 77,money = 65000,name = "Chicken Party!",reprewards = {{1104,250}},reqlevel = 76,side = 1,wflags = 2,xp = 21400,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12703,level = 78,money = 136000,name = "Kartak's Rampage",reprewards = {{1104,350}},reqlevel = 76,side = 3,wflags = 2,xp = 27000,reputation = 350},
{category = 3711,category2 = 10,daily = 1,id = 12732,level = 80,money = 74000,name = "The Heartblood's Strength",reprewards = {{1104,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12734,level = 80,money = 74000,name = "Rejek = First Blood",reprewards = {{1104,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12741,level = 80,money = 74000,name = "Strength of the Tempest",reprewards = {{1104,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12758,level = 80,money = 74000,name = "A Hero's Headgear",reprewards = {{1104,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12759,level = 78,money = 136000,name = "Tools of War",reprewards = {{1104,350}},reqlevel = 76,side = 3,wflags = 2,xp = 27000,reputation = 350},
{category = 3711,category2 = 10,daily = 1,id = 12760,level = 78,money = 136000,name = "Secret Strength of the Frenzyheart",reprewards = {{1104,350}},reqlevel = 76,side = 3,wflags = 2,xp = 27000,reputation = 350},
},
 
-- =============================================
-- Gnomeregan
-- =============================================
[54] = {
{category = -241,category2 = 7,daily = 1,id = 13746,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13747,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13748,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13749,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13750,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13852,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- Hellscream's Reach
-- =============================================
[1178] = {
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28657,level = 85,money = 94000,name = "A Huge Problem",reprewards = {{1178,250}},reqlevel = 85,side = 2,type = 1,wflags = 2,xp = 69400,reputation = 250},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28658,level = 85,money = 94000,name = "Swamp Bait",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28659,level = 85,money = 94000,name = "The Leftovers",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28660,level = 85,money = 188000,name = "Clearing the Depths",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28661,level = 85,money = 188000,name = "The Imprisoned Archmage",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28662,level = 85,money = 353400,name = "Learning From The Past",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28663,level = 85,money = 188000,name = "D-Block",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28664,level = 85,money = 188000,name = "Svarnos",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28665,level = 85,money = 188000,name = "Cursed Shackles",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28668,level = 85,money = 188000,name = "Prison Revolt",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28669,level = 85,money = 188000,name = "The Warden",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5095,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28670,level = 85,money = 188000,name = "Food From Below",reprewards = {{1178,350}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 350},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28678,level = 85,money = 259400,name = "Captain P. Harris",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28679,level = 85,money = 259400,name = "Rattling Their Cages",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28680,level = 85,money = 259400,name = "Boosting Morale",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,2}},daily = 1,id = 28681,level = 85,money = 259400,name = "Shark Tank",reprewards = {{1178,350}},reqlevel = 85,side = 2,type = 1,wflags = 2,xp = 69400,reputation = 350},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28682,level = 85,money = 259400,name = "Claiming The Keep",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28683,level = 85,money = 259400,name = "Thinning the Brood",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28684,level = 85,money = 259400,name = "A Sticky Task",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28685,level = 85,money = 259400,name = "Leave No Weapon Behind",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28686,level = 85,money = 259400,name = "Not The Friendliest Town",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28687,level = 85,money = 259400,name = "Teach A Man To Fish.... Or Steal",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28689,level = 85,money = 259400,name = "The Forgotten",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28690,level = 85,money = 259400,name = "Salvaging the Remains",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28691,level = 85,money = 259400,name = "First Lieutenant Connor",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28692,level = 85,money = 259400,name = "Magnets, How Do They Work?",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28693,level = 85,money = 259400,name = "Finish The Job",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28694,level = 85,money = 259400,name = "Watch Out For Splinters!",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28695,level = 85,money = 259400,name = "WANTED = Foreman Wellson",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28696,level = 85,money = 259400,name = "Bomb's Away!",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28697,level = 85,money = 259400,name = "Ghostbuster",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28698,level = 85,money = 259400,name = "Cannonball!",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28700,level = 85,money = 259400,name = "Taking the Overlook Back",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
{category = 5389,category2 = 11,currencyrewards = {{391,1}},daily = 1,id = 28721,level = 85,money = 259400,name = "Walk A Mile In Their Shoes",reprewards = {{1178,250}},reqlevel = 85,side = 2,wflags = 2,xp = 69400,reputation = 250},
},
 
-- =============================================
-- Honor Hold
-- =============================================
[946] = {
{category = 3483,category2 = 8,daily = 1,id = 10106,itemrewards = {{24579,3}},level = 60,money = 7000,name = "Hellfire Fortifications",reprewards = {{946,150}},reqlevel = 55,side = 1,type = 41,wflags = 130,xp = 7150,reputation = 150},
{category = 3562,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11354,level = 70,money = 132000,name = "Wanted = Nazan's Riding Crop",reprewards = {{933,350},{947,350},{946,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3713,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11362,level = 70,money = 132000,name = "Wanted = Keli'dan's Feathered Stave",reprewards = {{933,350},{947,350},{946,350}},reqlevel = 70,side = 3,type = 85,wflags = 130,xp = 19000,reputation = 350},
{category = 3714,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11363,level = 70,money = 132000,name = "Wanted = Bladefist's Seal",reprewards = {{933,350},{947,350},{946,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3714,category2 = 2,daily = 1,id = 11364,itemrewards = {{29460,1}},level = 70,money = 88000,name = "Wanted = Shattered Hand Centurions",reprewards = {{933,250},{946,250},{947,250}},reqlevel = 70,side = 3,type = 81,wflags = 2,xp = 12650,reputation = 250},
},
 
-- =============================================
-- Horde Expedition
-- =============================================
[1052] = {
{category = 394,category2 = 10,currencyrewards = {{392,3}},daily = 1,id = 12170,level = 74,money = 56000,name = "Blackriver Brawl",reprewards = {{1052,250}},reqlevel = 73,side = 2,wflags = 130,xp = 20750,reputation = 250},
},
 
-- =============================================
-- Ironforge
-- =============================================
[47] = {
{category = -241,category2 = 7,daily = 1,id = 13741,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13742,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13743,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13744,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13745,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13851,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -1008,category2 = 9,daily = 1,id = 14048,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "Can't Get Enough Turkey",reprewards = {{47,150}},reqlevel = 1,side = 1,wflags = 10,reputation = 150},
{category = -1008,category2 = 9,daily = 1,id = 14051,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "Don't Forget The Stuffing!",reprewards = {{47,150}},reqlevel = 1,side = 1,wflags = 10,reputation = 150},
},
 
-- =============================================
-- Knights of the Ebon Blade
-- =============================================
[1098] = {
{category = 210,category2 = 10,daily = 1,id = 12813,level = 80,money = 74000,name = "From Their Corpses, Rise!",reprewards = {{1098,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 12815,level = 80,money = 74000,name = "No Fly Zone",reprewards = {{1098,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 12838,level = 80,money = 74000,name = "Intelligence Gathering",reprewards = {{1098,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 12995,level = 80,money = 74000,name = "Leave Our Mark",reprewards = {{1098,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13069,level = 80,money = 74000,name = "Shoot 'Em Up",reprewards = {{1098,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13071,level = 80,money = 37000,name = "Vile Like Fire!",reprewards = {{1098,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,2}},daily = 1,id = 13788,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Threat From Above",reprewards = {{1098,250},{1094,250}},reqclass = 32,reqlevel = 77,side = 1,type = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13791,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Taking Battle To The Enemy",reprewards = {{1098,250},{1094,250}},reqclass = 32,reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13793,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Among the Champions",reprewards = {{1098,250},{1094,250}},reqclass = 32,reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,2}},daily = 1,id = 13812,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Threat From Above",reprewards = {{1098,250},{1124,250}},reqclass = 32,reqlevel = 77,side = 2,type = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13813,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Taking Battle To The Enemy",reprewards = {{1098,250},{1124,250}},reqclass = 32,reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13814,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Among the Champions",reprewards = {{1098,250},{1124,250}},reqclass = 32,reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13863,itemchoices = {{46114,1},{45724,1}},level = 80,money = 74000,name = "Battle Before The Citadel",reprewards = {{1098,250},{1124,250}},reqclass = 32,reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13864,itemchoices = {{46114,1},{45724,1}},level = 80,money = 74000,name = "Battle Before The Citadel",reprewards = {{1098,250},{1094,250}},reqclass = 32,reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- Keepers of Time
-- =============================================
[989] = {
{category = 2367,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11378,level = 70,money = 132000,name = "Wanted = The Epoch Hunter's Head",reprewards = {{933,350},{989,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 2366,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11382,level = 70,money = 132000,name = "Wanted = Aeonus's Hourglass",reprewards = {{933,350},{989,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 2366,category2 = 2,daily = 1,id = 11383,itemrewards = {{29460,1}},level = 70,money = 88000,name = "Wanted = Rift Lords",reprewards = {{933,250},{989,250}},reqlevel = 70,side = 3,type = 81,wflags = 2,xp = 12650,reputation = 250},
},
 
-- =============================================
-- Kurenai
-- =============================================
[978] = {
{category = 3518,category2 = 8,daily = 1,id = 11502,level = 70,money = 44000,name = "In Defense of Halaa",reprewards = {{978,250}},reqlevel = 64,side = 1,type = 41,wflags = 130,xp = 12650,reputation = 250},
},
 
-- =============================================
-- Lower City
-- =============================================
[1011] = {
{category = 3791,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11372,level = 70,money = 132000,name = "Wanted = The Headfeathers of Ikiss",reprewards = {{933,350},{1011,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3790,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11374,level = 70,money = 132000,name = "Wanted = The Exarch's Soul Gem",reprewards = {{933,350},{1011,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3789,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11375,level = 70,money = 132000,name = "Wanted = Murmur's Whisper",reprewards = {{933,350},{1011,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3789,category2 = 2,daily = 1,id = 11376,itemrewards = {{29460,1}},level = 70,money = 88000,name = "Wanted = Malicious Instructors",reprewards = {{933,250},{1011,250}},reqlevel = 70,side = 3,type = 81,wflags = 2,xp = 12650,reputation = 250},
},
 
-- =============================================
-- Netherwing
-- =============================================
[1015] = {
{category = 3520,category2 = 8,daily = 1,id = 11015,level = 70,money = 44000,name = "Netherwing Crystals",reprewards = {{1015,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3520,category2 = 8,daily = 1,id = 11016,level = 70,money = 44000,name = "Nethermine Flayer Hide",reprewards = {{1015,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3520,category2 = 8,daily = 1,id = 11017,level = 70,money = 44000,name = "Netherdust Pollen",reprewards = {{1015,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3520,category2 = 8,daily = 1,id = 11018,level = 70,money = 44000,name = "Nethercite Ore",reprewards = {{1015,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3520,category2 = 8,daily = 1,id = 11020,level = 70,money = 44000,name = "A Slow Death",reprewards = {{1015,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3520,category2 = 8,daily = 1,id = 11035,level = 70,money = 44000,name = "The Not-So-Friendly Skies...",reprewards = {{1015,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3520,category2 = 8,daily = 1,id = 11055,level = 70,money = 44000,name = "The Booterang = A Cure For The Common Worthless Peon",reprewards = {{1015,350}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 350},
{category = 3520,category2 = 8,daily = 1,id = 11076,level = 70,money = 88000,name = "Picking Up The Pieces...",reprewards = {{1015,350}},reqlevel = 70,side = 1,wflags = 2,xp = 15800,reputation = 350},
{category = 3520,category2 = 8,daily = 1,id = 11077,level = 70,money = 44000,name = "Dragons are the Least of Our Problems",reprewards = {{1015,350}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 350},
{category = 3520,category2 = 8,daily = 1,id = 11086,level = 70,money = 44000,name = "Disrupting the Twilight Portal",reprewards = {{1015,500}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 500},
{category = 3520,category2 = 8,daily = 1,id = 11097,level = 70,money = 88000,name = "The Deadliest Trap Ever Laid",reprewards = {{1015,500}},reqlevel = 70,side = 2,type = 1,wflags = 2,xp = 15800,reputation = 500},
{category = 3520,category2 = 8,daily = 1,id = 11101,level = 70,money = 88000,name = "The Deadliest Trap Ever Laid",reprewards = {{1015,500}},reqlevel = 70,side = 3,type = 1,wflags = 2,xp = 15800,reputation = 500},
},
 
-- =============================================
-- Ogri'la
-- =============================================
[1038] = {
{category = 3522,category2 = 8,daily = 1,id = 11023,itemrewards = {{32569,15}},level = 70,money = 44000,name = "Bomb Them Again!",reprewards = {{1031,500},{1038,500}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 500},
{category = 3522,category2 = 8,daily = 1,id = 11051,itemrewards = {{32777,1},{32569,15}},level = 70,money = 44000,name = "Banish More Demons",reprewards = {{1038,350}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 350},
{category = 3522,category2 = 8,daily = 1,id = 11066,itemrewards = {{32569,15}},level = 70,money = 44000,name = "Wrangle More Aether Rays!",reprewards = {{1031,350},{1038,350}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 350},
{category = 3522,category2 = 8,daily = 1,id = 11080,itemrewards = {{32569,15}},level = 70,money = 34000,name = "The Relic's Emanation",reprewards = {{1038,350}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 350},
},
 
-- =============================================
-- Orgrimmar
-- =============================================
[76] = {
{category = -1008,category2 = 9,daily = 1,id = 14061,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "Can't Get Enough Turkey",reprewards = {{76,150}},reqlevel = 1,side = 2,wflags = 10,reputation = 150},
{category = -1008,category2 = 9,daily = 1,id = 14062,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "Don't Forget The Stuffing!",reprewards = {{76,150}},reqlevel = 1,side = 2,wflags = 10,reputation = 150},
{category = 406,category2 = 1,daily = 1,id = 26009,level = 27,money = 4500,name = "Seek and Destroy",reprewards = {{76,350}},reqlevel = 24,side = 2,wflags = 130,xp = 3300,reputation = 350},
},
 
-- =============================================
-- Ramkahem
-- =============================================
[1173] = {
{category = 5034,category2 = 1,daily = 1,id = 28250,level = 83,money = 65000,name = "Thieving Little Pluckers",reprewards = {{1173,150}},reqlevel = 83,side = 3,wflags = 130,xp = 32950,reputation = 150},
{category = 5034,category2 = 1,daily = 1,id = 28736,level = 83,money = 86000,name = "Fire From the Sky",reprewards = {{1173,250}},reqlevel = 83,side = 3,wflags = 2,xp = 43900,reputation = 250},
},
 
-- =============================================
-- Silvermoon City
-- =============================================
[911] = {
{category = -241,category2 = 7,daily = 1,id = 13783,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13784,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13785,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13786,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13787,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13859,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- Sha'tari Skyguard
-- =============================================
[1031] = {
{category = 3679,category2 = 8,daily = 1,id = 11008,level = 70,money = 44000,name = "Fires Over Skettis",reprewards = {{1031,350}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 350},
{category = 3522,category2 = 8,daily = 1,id = 11023,itemrewards = {{32569,15}},level = 70,money = 44000,name = "Bomb Them Again!",reprewards = {{1031,500},{1038,500}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 500},
{category = 3522,category2 = 8,daily = 1,id = 11066,itemrewards = {{32569,15}},level = 70,money = 44000,name = "Wrangle More Aether Rays!",reprewards = {{1031,350},{1038,350}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 350},
{category = 3679,category2 = 8,daily = 1,id = 11085,level = 70,money = 34000,name = "Escape from Skettis",reprewards = {{1031,150}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 150},
},
 
-- =============================================
-- Shattered Sun Offensive
-- =============================================
[1077] = {
{category = 4080,category2 = 0,daily = 1,id = 11496,level = 70,money = 34000,name = "The Sanctum Wards",reprewards = {{1077,150}},reqlevel = 70,wflags = 2,xp = 9500,reputation = 150},
{category = 4131,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11499,level = 70,money = 132000,name = "Wanted = The Signet Ring of Prince Kael'thas",reprewards = {{933,350},{1077,350}},reqlevel = 70,side = 3,type = 85,wflags = 130,xp = 19000,reputation = 350},
{category = 4131,category2 = 2,daily = 1,id = 11500,itemrewards = {{29460,1}},level = 70,money = 88000,name = "Wanted = Sisters of Torment",reprewards = {{933,250},{1077,250}},reqlevel = 70,side = 3,type = 81,wflags = 2,xp = 12650,reputation = 250},
{category = 3522,category2 = 8,daily = 1,id = 11513,itemrewards = {{35232,1}},level = 70,money = 44000,name = "Intercepting the Mana Cells",reprewards = {{1077,250}},reqlevel = 70,wflags = 2,xp = 9500,reputation = 250},
{category = 3522,category2 = 8,daily = 1,id = 11514,itemrewards = {{35232,1}},level = 70,money = 44000,name = "Maintaining the Sunwell Portal",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 250},
{category = 3483,category2 = 8,daily = 1,id = 11515,itemchoices = {{30809,5},{30810,5}},level = 70,money = 44000,name = "Blood for Blood",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3483,category2 = 8,daily = 1,id = 11516,itemrewards = {{35232,1}},level = 70,money = 44000,name = "Blast the Gateway",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 250},
{category = 3519,category2 = 8,daily = 1,id = 11520,itemrewards = {{35232,1}},level = 70,money = 34000,name = "Discovering Your Roots",reprewards = {{1077,350}},reqlevel = 70,wflags = 2,xp = 9500,reputation = 350},
{category = 3519,category2 = 8,daily = 1,id = 11521,itemrewards = {{35232,1}},level = 70,money = 44000,name = "Rediscovering Your Roots",reprewards = {{1077,350}},reqlevel = 70,side = 3,wflags = 2,xp = 15800,reputation = 350},
{category = 4080,category2 = 0,daily = 1,id = 11523,level = 70,money = 34000,name = "Arm the Wards!",reprewards = {{1077,150}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 150},
{category = 4080,category2 = 0,daily = 1,id = 11524,level = 70,money = 34000,name = "Erratic Behavior",reprewards = {{1077,150}},reqlevel = 70,wflags = 2,xp = 9500,reputation = 150},
{category = 4080,category2 = 0,daily = 1,id = 11525,level = 70,money = 34000,name = "Further Conversions",reprewards = {{1077,150}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 150},
{category = 4080,category2 = 0,daily = 1,id = 11532,level = 70,money = 34000,name = "Distraction at the Dead Scar",reprewards = {{1077,150}},reqlevel = 70,wflags = 2,xp = 9500,reputation = 150},
{category = 4080,category2 = 0,daily = 1,id = 11533,level = 70,money = 34000,name = "The Air Strikes Must Continue",reprewards = {{1077,150}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 150},
{category = 4080,category2 = 0,daily = 1,id = 11535,level = 70,money = 44000,name = "Making Ready",reprewards = {{1077,250}},reqlevel = 70,wflags = 2,xp = 12650,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11536,level = 70,money = 44000,name = "Don't Stop Now....",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11537,level = 70,money = 44000,name = "The Battle Must Go On",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11538,level = 70,money = 44000,name = "The Battle for the Sun's Reach Armory",reprewards = {{1077,250}},reqlevel = 70,wflags = 2,xp = 9500,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11539,level = 70,money = 44000,name = "Taking the Harbor",reprewards = {{1077,250}},reqlevel = 70,wflags = 2,xp = 12650,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11540,level = 70,money = 44000,name = "Crush the Dawnblade",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11541,level = 70,money = 44000,name = "Disrupt the Greengill Coast",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11542,level = 70,name = "Intercept the Reinforcements",reprewards = {{1077,250}},reqlevel = 70,wflags = 2,xp = 12650,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11543,level = 70,name = "Keeping the Enemy at Bay",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3520,category2 = 8,daily = 1,id = 11544,itemchoices = {{34538,1},{34539,1}},level = 70,money = 88000,name = "Ata'mal Armaments",reprewards = {{1077,350}},reqlevel = 70,side = 3,wflags = 2,xp = 15800,reputation = 350},
{category = 4080,category2 = 0,daily = 1,id = 11545,level = 70,name = "A Charitable Donation",reprewards = {{1077,150}},reqlevel = 70,wflags = 2,reputation = 150},
{category = 4080,category2 = 0,daily = 1,id = 11546,itemrewards = {{34537,1}},level = 70,money = 44000,name = "Open for Business",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11547,itemrewards = {{35230,1}},level = 70,money = 44000,name = "Know Your Ley Lines",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 4080,category2 = 0,daily = 1,id = 11548,level = 70,name = "Your Continued Support",reprewards = {{1077,150}},reqlevel = 70,side = 3,wflags = 2,reputation = 150},
{category = 3703,category2 = 8,daily = 1,id = 11875,itemrewards = {{18253,1}},level = 70,money = 88000,name = "Gaining the Advantage",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 12650,reputation = 250},
{category = 3523,category2 = 8,daily = 1,id = 11877,itemrewards = {{35232,1}},level = 70,money = 44000,name = "Sunfury Attack Plans",reprewards = {{1077,250}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 250},
{category = 3518,category2 = 8,daily = 1,id = 11880,level = 70,money = 34000,name = "The Multiphase Survey",reprewards = {{1077,150}},reqlevel = 70,side = 3,wflags = 2,xp = 9500,reputation = 150},
},
 
-- =============================================
-- Stormwind
-- =============================================
[72] = {
{category = -241,category2 = 7,daily = 1,id = 13592,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13600,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13603,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13616,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13665,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13847,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -1008,category2 = 9,daily = 1,id = 14053,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "We're Out of Cranberry Chutney Again?",reprewards = {{72,150}},reqlevel = 1,side = 1,wflags = 10,reputation = 150},
{category = -1008,category2 = 9,daily = 1,id = 14055,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "She Says Potato",reprewards = {{72,150}},reqlevel = 1,side = 1,wflags = 10,reputation = 150},
{category = -304,category2 = 5,currencyrewards = {{402,1}},daily = 1,id = 26153,money = 74000,name = "Penny's Pumpkin Pancakes",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 2,reputation = 250},
{category = -304,category2 = 5,currencyrewards = {{402,2}},daily = 1,id = 26177,money = 74000,name = "Feeling Crabby?",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 2,reputation = 250},
{category = -304,category2 = 5,currencyrewards = {{402,1}},daily = 1,id = 26183,money = 74000,name = "The King's Cider",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 2,reputation = 250},
{category = -304,category2 = 5,currencyrewards = {{402,1}},daily = 1,id = 26190,money = 74000,name = "A Fisherman's Feast",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 2,reputation = 250},
{category = -304,category2 = 5,currencyrewards = {{402,1}},daily = 1,id = 26192,money = 74000,name = "Orphans Like Cookies Too!",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 2,reputation = 250},
{category = -101,category2 = 5,daily = 1,id = 26414,itemrewards = {{67414,1}},money = 74000,name = "Hitting a Walleye",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 130,reputation = 250},
{category = -101,category2 = 5,daily = 1,id = 26420,itemrewards = {{67414,1}},money = 74000,name = "Diggin' For Worms",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 130,reputation = 250},
{category = -101,category2 = 5,daily = 1,id = 26442,itemrewards = {{67414,1}},money = 74000,name = "Rock Lobster",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 2,reputation = 250},
{category = -101,category2 = 5,daily = 1,id = 26488,itemrewards = {{67414,1}},money = 74000,name = "Big Gulp",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 130,reputation = 250},
{category = -101,category2 = 5,daily = 1,id = 26536,itemrewards = {{67414,1}},money = 74000,name = "Thunder Falls",reprewards = {{72,250}},reqlevel = 10,side = 1,wflags = 2,reputation = 250},
},
 
-- =============================================
-- The Frostborn
-- =============================================
[1126] = {
{category = 67,category2 = 10,daily = 1,id = 12869,level = 78,money = 68000,name = "Pushed Too Far",reprewards = {{1126,250}},reqlevel = 77,side = 1,wflags = 2,xp = 21600,reputation = 250},
},
 
-- =============================================
-- The Kalu'ak
-- =============================================
[1073] = {
{category = 495,category2 = 10,daily = 1,id = 11472,money = 74000,name = "The Way to His Heart...",reprewards = {{1073,250}},reqlevel = 69,side = 3,wflags = 2,reputation = 250},
{category = 3537,category2 = 10,daily = 1,id = 11945,level = 72,money = 50000,name = "Preparing for the Worst",reprewards = {{1073,250}},reqlevel = 68,side = 3,wflags = 2,xp = 20300,reputation = 250},
{category = 65,category2 = 10,daily = 1,id = 11960,level = 72,money = 50000,name = "Planning for the Future",reprewards = {{1073,500}},reqlevel = 71,side = 3,wflags = 2,xp = 20300,reputation = 500},
{category = 65,category2 = 10,daily = 1,id = 26178,level = 72,money = 50000,name = "Planning for the Future",reprewards = {{1073,250}},reqlevel = 71,wflags = 2,xp = 20300,reputation = 250},
},
 
-- =============================================
-- The Mag'har
-- =============================================
[941] = {
{category = 3518,category2 = 8,daily = 1,id = 11503,level = 70,money = 44000,name = "Enemies, Old and New",reprewards = {{941,250}},reqlevel = 64,side = 2,type = 41,wflags = 130,xp = 12650,reputation = 250},
},
 
-- =============================================
-- The Oracles
-- =============================================
[1105] = {
{category = 3711,category2 = 10,daily = 1,id = 12704,level = 77,money = 65000,name = "Appeasing the Great Rain Stone",reprewards = {{1105,250}},reqlevel = 76,side = 3,wflags = 2,xp = 21400,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12705,level = 78,money = 136000,name = "Will of the Titans",reprewards = {{1105,350}},reqlevel = 76,side = 3,wflags = 2,xp = 27000,reputation = 350},
{category = 3711,category2 = 10,daily = 1,id = 12726,level = 80,money = 74000,name = "Song of Wind and Water",reprewards = {{1105,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12735,level = 80,money = 74000,name = "A Cleansing Song",reprewards = {{1105,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12736,level = 80,money = 74000,name = "Song of Reflection",reprewards = {{1105,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12737,level = 80,money = 74000,name = "Song of Fecundity",reprewards = {{1105,250}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 250},
{category = 3711,category2 = 10,daily = 1,id = 12761,level = 78,money = 136000,name = "Mastery of the Crystals",reprewards = {{1105,350}},reqlevel = 76,side = 3,wflags = 2,xp = 27000,reputation = 350},
{category = 3711,category2 = 10,daily = 1,id = 12762,level = 78,money = 136000,name = "Power of the Great Ones",reprewards = {{1105,350}},reqlevel = 76,side = 3,wflags = 2,xp = 27000,reputation = 350},
},
 
-- =============================================
-- The Silver Covenant
-- =============================================
[1094] = {
{category = -241,category2 = 7,daily = 1,id = 13592,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13600,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13603,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13616,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13625,itemrewards = {{45192,2}},level = 80,money = 58000,name = "Learning The Reins",reprewards = {{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13665,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13666,itemrewards = {{45192,2}},level = 80,money = 58000,name = "A Blade Fit For A Champion",reprewards = {{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13669,itemrewards = {{45192,2}},level = 80,money = 58000,name = "A Worthy Weapon",reprewards = {{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13670,itemrewards = {{45192,2}},level = 80,money = 58000,name = "The Edge Of Winter",reprewards = {{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13671,itemrewards = {{45192,1}},level = 80,money = 58000,name = "Training In The Field",reprewards = {{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,2}},daily = 1,id = 13682,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Threat From Above",reprewards = {{1106,250},{1094,250}},reqlevel = 77,side = 1,type = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13741,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13742,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13743,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13744,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13745,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13746,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13747,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13748,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13749,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13750,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13752,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13753,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13754,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13755,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13756,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13757,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13758,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13759,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13760,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13761,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,2}},daily = 1,id = 13788,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Threat From Above",reprewards = {{1098,250},{1094,250}},reqclass = 32,reqlevel = 77,side = 1,type = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13789,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Taking Battle To The Enemy",reprewards = {{1106,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13790,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Among the Champions",reprewards = {{1106,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13791,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Taking Battle To The Enemy",reprewards = {{1098,250},{1094,250}},reqclass = 32,reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13793,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Among the Champions",reprewards = {{1098,250},{1094,250}},reqclass = 32,reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13847,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{72,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13851,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{47,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13852,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{54,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13854,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{930,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13855,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{69,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13861,itemchoices = {{46114,1},{45724,1}},level = 80,money = 74000,name = "Battle Before The Citadel",reprewards = {{1106,250},{1094,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13864,itemchoices = {{46114,1},{45724,1}},level = 80,money = 74000,name = "Battle Before The Citadel",reprewards = {{1098,250},{1094,250}},reqclass = 32,reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- The Sons of Hodir
-- =============================================
[1119] = {
{category = 67,category2 = 10,daily = 1,id = 12977,level = 80,money = 74000,name = "Blowing Hodir's Horn",reprewards = {{1119,350}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 350},
{category = 67,category2 = 10,daily = 1,id = 12981,level = 80,money = 74000,name = "Hot and Cold",reprewards = {{1119,350}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 350},
{category = 67,category2 = 10,daily = 1,id = 12994,level = 80,money = 74000,name = "Spy Hunter",reprewards = {{1119,350}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 350},
{category = 67,category2 = 10,daily = 1,id = 13003,level = 80,money = 148000,name = "Thrusting Hodir's Spear",reprewards = {{1119,500}},reqlevel = 77,side = 3,wflags = 2,xp = 27550,reputation = 500},
{category = 67,category2 = 10,daily = 1,id = 13006,level = 80,money = 74000,name = "Polishing the Helm",reprewards = {{1119,350}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 350},
{category = 67,category2 = 10,daily = 1,id = 13046,level = 80,money = 74000,name = "Feeding Arngrim",reprewards = {{1119,350}},reqlevel = 77,side = 3,wflags = 2,xp = 22050,reputation = 350},
},
 
-- =============================================
-- The Sunreavers
-- =============================================
[1124] = {
{category = -241,category2 = 7,daily = 1,id = 13673,itemrewards = {{45192,2}},level = 80,money = 58000,name = "A Blade Fit For A Champion",reprewards = {{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13674,itemrewards = {{45192,2}},level = 80,money = 58000,name = "A Worthy Weapon",reprewards = {{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13675,itemrewards = {{45192,2}},level = 80,money = 58000,name = "The Edge Of Winter",reprewards = {{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13676,itemrewards = {{45192,1}},level = 80,money = 58000,name = "Training In The Field",reprewards = {{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13677,itemrewards = {{45192,2}},level = 80,money = 58000,name = "Learning The Reins",reprewards = {{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13762,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{76,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13763,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{76,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13764,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{76,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13765,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{76,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13767,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{76,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13768,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13769,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13770,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13771,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13772,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13773,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13774,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13775,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13776,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13777,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13778,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13779,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13780,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13781,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13782,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13783,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13784,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13785,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13786,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13787,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,2}},daily = 1,id = 13809,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Threat From Above",reprewards = {{1106,250},{1124,250}},reqlevel = 77,side = 2,type = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13810,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Taking Battle To The Enemy",reprewards = {{1106,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13811,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Among the Champions",reprewards = {{1106,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,2}},daily = 1,id = 13812,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Threat From Above",reprewards = {{1098,250},{1124,250}},reqclass = 32,reqlevel = 77,side = 2,type = 1,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13813,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Taking Battle To The Enemy",reprewards = {{1098,250},{1124,250}},reqclass = 32,reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13814,itemchoices = {{46114,1},{45724,1}},level = 80,name = "Among the Champions",reprewards = {{1098,250},{1124,250}},reqclass = 32,reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13856,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{76,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13857,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{530,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13858,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13859,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{911,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13860,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,currencyrewards = {{241,1}},daily = 1,id = 13862,itemchoices = {{46114,1},{45724,1}},level = 80,money = 74000,name = "Battle Before The Citadel",reprewards = {{1106,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,classs = 32,currencyrewards = {{241,1}},daily = 1,id = 13863,itemchoices = {{46114,1},{45724,1}},level = 80,money = 74000,name = "Battle Before The Citadel",reprewards = {{1098,250},{1124,250}},reqclass = 32,reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
},
-- =============================================
-- The Wyrmrest Accord
-- =============================================
[1091] = {
{category = 3537,category2 = 10,daily = 1,id = 11940,level = 71,money = 47000,name = "Drake Hunt",reprewards = {{1091,250}},reqlevel = 69,side = 3,wflags = 130,xp = 20100,reputation = 250},
{category = 65,category2 = 10,daily = 1,id = 12372,level = 74,money = 56000,name = "Defending Wyrmrest Temple",reprewards = {{1091,250}},reqlevel = 71,side = 3,wflags = 130,xp = 20750,reputation = 250},
{category = 3537,category2 = 10,daily = 1,id = 13414,level = 80,money = 74000,name = "Aces High!",reprewards = {{1091,250}},reqlevel = 80,side = 3,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- Therazane
-- =============================================
[1171] = {
{category = 5042,category2 = 11,daily = 1,id = 26710,level = 83,money = 86000,name = "Lost In The Deeps",reprewards = {{1171,250}},reqlevel = 81,side = 3,wflags = 2,xp = 43900,reputation = 250},
{category = 5042,category2 = 11,daily = 1,id = 27046,level = 83,money = 86000,name = "Fear of Boring",reprewards = {{1171,250}},reqlevel = 81,side = 3,wflags = 2,xp = 43900,reputation = 250},
{category = 5042,category2 = 11,daily = 1,id = 27047,level = 83,money = 86000,name = "Motes",reprewards = {{1171,250}},reqlevel = 81,side = 3,wflags = 2,xp = 43900,reputation = 250},
{category = 5042,category2 = 11,daily = 1,id = 27048,level = 83,money = 86000,name = "Underground Economy",reprewards = {{1171,250}},reqlevel = 81,side = 3,wflags = 2,xp = 43900,reputation = 250},
{category = 5042,category2 = 11,daily = 1,id = 27049,level = 83,money = 86000,name = "Soft Rock",reprewards = {{1171,250}},reqlevel = 81,side = 3,wflags = 2,xp = 43900,reputation = 250},
{category = 5042,category2 = 11,daily = 1,id = 27050,level = 83,money = 86000,name = "Fungal Fury",reprewards = {{1171,250}},reqlevel = 81,side = 3,wflags = 2,xp = 43900,reputation = 250},
{category = 5042,category2 = 11,daily = 1,id = 27051,level = 83,money = 86000,name = "Through Persistence",reprewards = {{1171,250}},reqlevel = 81,side = 3,wflags = 2,xp = 43900,reputation = 250},
{category = 5042,category2 = 11,daily = 1,id = 28390,level = 83,money = 172000,name = "Glop, Son of Glop",reprewards = {{1171,350}},reqlevel = 81,side = 3,wflags = 2,xp = 54900,reputation = 350},
{category = 5042,category2 = 11,daily = 1,id = 28391,level = 83,money = 172000,name = "The Restless Brood",reprewards = {{1171,350}},reqlevel = 81,side = 3,wflags = 2,xp = 54900,reputation = 350},
{category = 5042,category2 = 11,daily = 1,id = 28488,level = 83,money = 86000,name = "Beneath the Surface",reprewards = {{1171,250}},reqlevel = 81,side = 3,wflags = 2,xp = 43900,reputation = 250},
},
 
-- =============================================
-- Thrallmar
-- =============================================
[947] = {
{category = 3483,category2 = 8,daily = 1,id = 10110,itemrewards = {{24581,3}},level = 60,money = 7000,name = "Hellfire Fortifications",reprewards = {{947,150}},reqlevel = 55,side = 2,type = 41,wflags = 130,xp = 7150,reputation = 150},
{category = 3562,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11354,level = 70,money = 132000,name = "Wanted = Nazan's Riding Crop",reprewards = {{933,350},{947,350},{946,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3713,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11362,level = 70,money = 132000,name = "Wanted = Keli'dan's Feathered Stave",reprewards = {{933,350},{947,350},{946,350}},reqlevel = 70,side = 3,type = 85,wflags = 130,xp = 19000,reputation = 350},
{category = 3714,category2 = 2,currencyrewards = {{395,10}},daily = 1,id = 11363,level = 70,money = 132000,name = "Wanted = Bladefist's Seal",reprewards = {{933,350},{947,350},{946,350}},reqlevel = 70,side = 3,type = 85,wflags = 2,xp = 19000,reputation = 350},
{category = 3714,category2 = 2,daily = 1,id = 11364,itemrewards = {{29460,1}},level = 70,money = 88000,name = "Wanted = Shattered Hand Centurions",reprewards = {{933,250},{946,250},{947,250}},reqlevel = 70,side = 3,type = 81,wflags = 2,xp = 12650,reputation = 250},
},
 
-- =============================================
-- Thunder Bluff
-- =============================================
[81] = {
{category = -241,category2 = 7,daily = 1,id = 13773,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13774,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13775,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13776,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13777,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13858,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{81,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -1008,category2 = 9,daily = 1,id = 14060,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "Easy As Pie",reprewards = {{81,150}},reqlevel = 1,side = 2,wflags = 10,reputation = 150},
},
 
-- =============================================
-- Undercity
-- =============================================
[68] = {
{category = -241,category2 = 7,daily = 1,id = 13778,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Blade Fit For A Champion",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13779,itemrewards = {{44987,2}},level = 80,money = 74000,name = "A Worthy Weapon",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13780,itemrewards = {{44987,2}},level = 80,money = 74000,name = "The Edge Of Winter",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13781,itemrewards = {{44987,1}},level = 80,money = 74000,name = "A Valiant's Field Training",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13782,itemrewards = {{44987,1}},level = 80,money = 74000,name = "The Grand Melee",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -241,category2 = 7,daily = 1,id = 13860,itemrewards = {{44987,1}},level = 80,money = 74000,name = "At The Enemy's Gates",reprewards = {{68,250},{1124,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = -1008,category2 = 9,daily = 1,id = 14058,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "She Says Potato",reprewards = {{68,150}},reqlevel = 1,side = 2,wflags = 10,reputation = 150},
{category = -1008,category2 = 9,daily = 1,id = 14059,itemchoices = {{46723,1},{46800,1},{44785,1},{46824,1},{44788,1},{44812,1}},name = "We're Out of Cranberry Chutney Again?",reprewards = {{68,150}},reqlevel = 1,side = 2,wflags = 10,reputation = 150},
},
 
-- =============================================
-- Valiance Expedition
-- =============================================
[1050] = {
{category = 495,category2 = 10,daily = 1,id = 11153,level = 71,money = 47000,name = "Break the Blockade",reprewards = {{1050,250}},reqlevel = 68,side = 1,wflags = 130,xp = 20100,reputation = 250},
{category = 394,category2 = 10,daily = 1,id = 12244,itemrewards = {{37500,1}},level = 74,money = 56000,name = "Shredder Repair",reprewards = {{1050,250}},reqlevel = 73,side = 1,wflags = 2,xp = 20750,reputation = 250},
{category = 394,category2 = 10,daily = 1,id = 12268,level = 74,money = 56000,name = "Pieces Parts",reprewards = {{1050,250}},reqlevel = 73,side = 1,wflags = 2,xp = 20750,reputation = 250},
{category = 394,category2 = 10,daily = 1,id = 12289,level = 74,money = 56000,name = "Kick 'Em While They're Down",reprewards = {{1050,250}},reqlevel = 73,side = 1,wflags = 2,xp = 20750,reputation = 250},
{category = 394,category2 = 10,daily = 1,id = 12296,level = 74,money = 56000,name = "Life or Death",reprewards = {{1050,250}},reqlevel = 73,side = 1,wflags = 2,xp = 20750,reputation = 250},
{category = 394,category2 = 10,daily = 1,id = 12444,level = 74,money = 56000,name = "Blackriver Skirmish",reprewards = {{1050,250}},reqlevel = 73,side = 1,type = 41,wflags = 130,xp = 20750,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13280,level = 80,money = 74000,name = "King of the Mountain",reprewards = {{1050,250}},reqlevel = 77,side = 1,type = 41,wflags = 130,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13284,level = 80,money = 74000,name = "Assault by Ground",reprewards = {{1050,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13309,level = 80,money = 74000,name = "Assault by Air",reprewards = {{1050,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13333,level = 80,money = 74000,name = "Capture More Dispatches",reprewards = {{1050,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13336,level = 80,money = 74000,name = "Blood of the Chosen",reprewards = {{1050,250}},reqlevel = 77,side = 1,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- Warsong Offensive
-- =============================================
[1085] = {
{category = 394,category2 = 10,daily = 1,id = 12270,itemrewards = {{37500,1}},level = 74,money = 56000,name = "Shred the Alliance",reprewards = {{1085,250}},reqlevel = 73,side = 2,wflags = 2,xp = 20750,reputation = 250},
{category = 394,category2 = 10,daily = 1,id = 12280,level = 74,money = 56000,name = "Making Repairs",reprewards = {{1085,250}},reqlevel = 73,side = 2,wflags = 2,xp = 20750,reputation = 250},
{category = 394,category2 = 10,daily = 1,id = 12284,level = 74,money = 56000,name = "Keep 'Em on Their Heels",reprewards = {{1085,250}},reqlevel = 73,side = 2,wflags = 2,xp = 20750,reputation = 250},
{category = 394,category2 = 10,daily = 1,id = 12288,level = 74,money = 56000,name = "Overwhelmed!",reprewards = {{1085,250}},reqlevel = 73,side = 2,wflags = 2,xp = 20750,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13283,level = 80,money = 74000,name = "King of the Mountain",reprewards = {{1085,250}},reqlevel = 77,side = 2,type = 41,wflags = 130,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13301,level = 80,money = 74000,name = "Assault by Ground",reprewards = {{1085,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13310,level = 80,money = 74000,name = "Assault by Air",reprewards = {{1085,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13330,level = 80,money = 74000,name = "Blood of the Chosen",reprewards = {{1085,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
{category = 210,category2 = 10,daily = 1,id = 13331,level = 80,money = 74000,name = "Keeping the Alliance Blind",reprewards = {{1085,250}},reqlevel = 77,side = 2,wflags = 2,xp = 22050,reputation = 250},
},
 
-- =============================================
-- Wildhammer Clan
-- =============================================
[1174] = {
{category = 4922,category2 = 0,daily = 1,id = 28860,level = 84,money = 90000,name = "Keeping the Dragonmaw at Bay",reprewards = {{1174,250}},reqlevel = 84,side = 1,wflags = 2,xp = 55200,reputation = 250},
{category = 4922,category2 = 0,daily = 1,id = 28861,level = 84,money = 90000,name = "Fight Like a Wildhammer",reprewards = {{1174,250}},reqlevel = 84,side = 1,wflags = 2,xp = 55200,reputation = 250},
{category = 4922,category2 = 0,daily = 1,id = 28862,level = 84,money = 90000,name = "Never Leave a Dinner Behind",reprewards = {{1174,250}},reqlevel = 84,side = 1,wflags = 2,xp = 55200,reputation = 250},
{category = 4922,category2 = 0,daily = 1,id = 28863,level = 84,money = 180000,name = "Warlord Halthar is Back",reprewards = {{1174,350}},reqlevel = 84,side = 1,type = 1,wflags = 2,xp = 69000,reputation = 350},
{category = 4922,category2 = 0,daily = 1,id = 28864,level = 84,money = 90000,name = "Beer Run",reprewards = {{1174,250}},reqlevel = 84,side = 1,wflags = 2,xp = 55200,reputation = 250},
}
}
\ No newline at end of file
Categories.lua New file
0,0 → 1,688
-- Categories: (category)
-- Alliance : 469
-- Alliance Forces : 891
-- Alliance Vanguard : 1037
-- Horde : 67
-- Horde Expedition : 1052
-- Horde Forces : 892
-- Other (Wintersaber) : 0
-- Shattrath City : 936
-- Sholazar Basin : 1117
-- Steamwheedle Cartel : 169
 
-- Expansions: (category2)
-- Classic : 1118
-- The Burning Crusade : 980
-- Wrath of the Lich King : 1097
-- Cataclysm : 1162
 
factions = {
-- Alliance Fishing Dailies
{
category = 2,
category2 = 1,
expansion = 2,
id = 1,
name = "Fishing",
side = 1,
},
-- Horde Fishing Dailies
{
category = 2,
category2 = 1,
expansion = 2,
id = 2,
name = "Fishing",
side = 2,
},
-- Alliance Cooking Dailies
{
category = 2,
category2 = 2,
expansion = 2,
id = 3,
name = "Cooking",
side = 1,
},
-- Horde Cooking Dailies
{
category = 2,
category2 = 2,
expansion = 2,
id = 4,
name = "Cooking",
side = 2,
},
-- Jewelcrafting Dailies
{
category = 2,
category2 = 3,
expansion = 2,
id = 5,
name = "Jewelcrafting",
side = 1,
},
-- Jewelcrafting Dailies
{
category = 2,
category2 = 3,
expansion = 2,
id = 6,
name = "Jewelcrafting",
side = 2,
},
 
--[[{
category = 0,
category2 = 1097,
expansion = 2,
id = 1037,
name = "Alliance Vanguard",
side = 1,
quests = {
 
},
},]]--
{
category = 0,
category2 = 1097,
expansion = 2,
id = 1106,
name = "Argent Crusade",
},
--[[{
category = 0,
category2 = 1118,
id = 529,
name = "Argent Dawn",
quests = {},
},]]--
--[[{
category = 0,
category2 = 980,
expansion = 1,
id = 1012,
name = "Ashtongue Deathsworn",
},]]--
{
category = 0,
category2 = 1162,
expansion = 3,
id = 1177,
name = "Baradin's Wardens",
side = 1,
},
--[[{
category = 67,
category2 = 1118,
expansion = 3,
id = 1133,
name = "Bilgewater Cartel",
side = 2,
},]]--
--[[{
category = 0,
category2 = 1118,
id = 87,
name = "Bloodsail Buccaneers",
},]]--
--[[{
category = 169,
category2 = 1118,
id = 21,
name = "Booty Bay",
},]]--
--[[{
category = 0,
category2 = 1118,
id = 910,
name = "Brood of Nozdormu",
},]]--
--[[{
category = 0,
category2 = 1118,
id = 609,
name = "Cenarion Circle",
},]]--
{
category = 0,
category2 = 980,
expansion = 1,
id = 942,
name = "Cenarion Expedition",
},
--[[{
category = 0,
category2 = 1118,
id = 909,
name = "Darkmoon Faire",
},]]--
{
category = 67,
category2 = 1118,
id = 530,
name = "Darkspear Trolls",
side = 2,
},
{
category = 469,
category2 = 1118,
id = 69,
name = "Darnassus",
side = 1,
},
{
category = 0,
category2 = 1162,
expansion = 3,
id = 1172,
name = "Dragonmaw Clan",
side = 2,
},
--[[{
category = 169,
category2 = 1118,
id = 577,
name = "Everlook",
},]]--
{
category = 469,
category2 = 1118,
expansion = 1,
id = 930,
name = "Exodar",
side = 1,
},
{
category = 1037,
category2 = 1097,
expansion = 2,
id = 1068,
name = "Explorers' League",
side = 1,
},
{
category = 1117,
category2 = 1097,
expansion = 2,
id = 1104,
name = "Frenzyheart Tribe",
},
--[[{
category = 892,
category2 = 1118,
id = 729,
name = "Frostwolf Clan",
side = 2,
},]]--
--[[{
category = 169,
category2 = 1118,
id = 369,
name = "Gadgetzan",
},]]--
--[[{
category = 0,
category2 = 1118,
id = 92,
name = "Gelkis Clan Centaur",
},]]--
--[[{
category = 469,
category2 = 1118,
expansion = 3,
id = 1134,
name = "Gilneas",
side = 1,
},]]--
{
category = 469,
category2 = 1118,
id = 54,
name = "Gnomeregan",
side = 1,
},
--[[{
category = 0,
category2 = 1162,
expansion = 3,
id = 1158,
name = "Guardians of Hyjal",
},]]--
--[[{
category = 0,
category2 = 1169,
expansion = 3,
id = 1168,
name = "Guild Reputation",
},]]--
{
category = 0,
category2 = 1162,
expansion = 3,
id = 1178,
name = "Hellscream's Reach",
side = 2,
},
{
category = 0,
category2 = 980,
expansion = 1,
id = 946,
name = "Honor Hold",
side = 1,
},
{
category = 0,
category2 = 1097,
expansion = 2,
id = 1052,
name = "Horde Expedition",
side = 2,
},
--[[{
category = 0,
category2 = 1118,
id = 749,
name = "Hydraxian Waterlords",
},]]--
{
category = 469,
category2 = 1118,
id = 47,
name = "Ironforge",
side = 1,
},
{
category = 0,
category2 = 980,
expansion = 1,
id = 989,
name = "Keepers of Time",
},
--[[{
category = 0,
category2 = 1097,
expansion = 2,
id = 1090,
name = "Kirin Tor",
},]]--
{
category = 0,
category2 = 1097,
expansion = 2,
id = 1098,
name = "Knights of the Ebon Blade",
},
{
category = 0,
category2 = 980,
expansion = 1,
id = 978,
name = "Kurenai",
side = 1,
},
{
category = 936,
category2 = 980,
expansion = 1,
id = 1011,
name = "Lower City",
},
--[[{
category = 0,
category2 = 1118,
id = 93,
name = "Magram Clan Centaur",
},]]--
{
category = 0,
category2 = 980,
expansion = 1,
id = 1015,
name = "Netherwing",
},
{
category = 0,
category2 = 980,
expansion = 1,
id = 1038,
name = "Ogri'la",
},
{
category = 67,
category2 = 1118,
id = 76,
name = "Orgrimmar",
side = 2,
},
{
category = 0,
category2 = 1162,
expansion = 3,
id = 1173,
name = "Ramkahen",
},
--[[{
category = 169,
category2 = 1118,
id = 470,
name = "Ratchet",
},]]--
--[[{
category = 0,
category2 = 1118,
id = 349,
name = "Ravenholdt",
},]]--
{
category = 936,
category2 = 980,
expansion = 1,
id = 1031,
name = "Sha'tari Skyguard",
},
{
category = 936,
category2 = 980,
expansion = 1,
id = 1077,
name = "Shattered Sun Offensive",
},
--[[{
category = 0,
category2 = 1118,
id = 809,
name = "Shen'dralar",
},]]--
{
category = 67,
category2 = 1118,
expansion = 1,
id = 911,
name = "Silvermoon City",
side = 2,
},
--[[{
category = 891,
category2 = 1118,
id = 890,
name = "Silverwing Sentinels",
side = 1,
},]]--
--[[{
category = 0,
category2 = 980,
expansion = 1,
id = 970,
name = "Sporeggar",
},]]--
--[[{
category = 891,
category2 = 1118,
id = 730,
name = "Stormpike Guard",
side = 1,
},]]--
{
category = 469,
category2 = 1118,
id = 72,
name = "Stormwind",
side = 1,
},
--[[{
category = 0,
category2 = 0,
id = 70,
name = "Syndicate",
},]]--
--[[{
category = 936,
category2 = 980,
expansion = 1,
id = 932,
name = "The Aldor",
},]]--
--[[{
category = 0,
category2 = 1097,
expansion = 2,
id = 1156,
name = "The Ashen Verdict",
},]]--
--[[{
category = 0,
category2 = 980,
expansion = 1,
id = 933,
name = "The Consortium",
},]]--
--[[{
category = 892,
category2 = 1118,
id = 510,
name = "The Defilers",
side = 2,
},]]--
--[[{
category = 0,
category2 = 1162,
expansion = 3,
id = 1135,
name = "The Earthen Ring",
},]]--
{
category = 1037,
category2 = 1097,
expansion = 2,
id = 1126,
name = "The Frostborn",
side = 1,
},
--[[{
category = 1052,
category2 = 1097,
expansion = 2,
id = 1067,
name = "The Hand of Vengeance",
side = 2
},]]--
{
category = 0,
category2 = 1097,
expansion = 2,
id = 1073,
name = "The Kalu'ak"
},
--[[{
category = 891,
category2 = 1118,
id = 509,
name = "The League of Arathor",
side = 1
},]]--
{
category = 0,
category2 = 980,
expansion = 1,
id = 941,
name = "The Mag'har",
side = 2
},
{
category = 1117,
category2 = 1097,
expansion = 2,
id = 1105,
name = "The Oracles",
},
--[[{
category = 0,
category2 = 980,
expansion = 1,
id = 990,
name = "The Scale of the Sands",
},]]--
--[[{
category = 936,
category2 = 980,
expansion = 1,
id = 934,
name = "The Scryers",
},]]--
--[[{
category = 936,
category2 = 980,
expansion = 1,
id = 935,
name = "The Sha'tar",
},]]--
{
category = 1037,
category2 = 1097,
expansion = 2,
id = 1094,
name = "The Silver Covenant",
side = 1,
},
{
category = 0,
category2 = 1097,
expansion = 2,
id = 1119,
name = "The Sons of Hodir",
},
{
category = 1052,
category2 = 1097,
expansion = 2,
id = 1124,
name = "The Sunreavers",
side = 2,
},
--[[{
category = 1052,
category2 = 1097,
expansion = 2,
id = 1064,
name = "The Taunka",
side = 2,
},]]--
--[[{
category = 0,
category2 = 980,
expansion = 1,
id = 967,
name = "The Violet Eye",
},]]--
{
category = 0,
category2 = 1097,
expansion = 2,
id = 1091,
name = "The Wyrmrest Accord",
},
{
category = 0,
category2 = 1162,
expansion = 3,
id = 1171,
name = "Therazane",
},
--[[{
category = 0,
category2 = 1118,
id = 59,
name = "Thorium Brotherhood",
},]]--
{
category = 0,
category2 = 980,
expansion = 1,
id = 947,
name = "Thrallmar",
side = 2,
},
{
category = 67,
category2 = 1118,
id = 81,
name = "Thunder Bluff",
side = 2,
},
--[[{
category = 0,
category2 = 1118,
id = 576,
name = "Timbermaw Hold",
},]]--
--[[{
category = 0,
category2 = 1118,
expansion = 1,
id = 922,
name = "Tranquillien",
side = 2,
},]]--
{
category = 67,
category2 = 1118,
id = 68,
name = "Undercity",
side = 2,
},
{
category = 1037,
category2 = 1097,
expansion = 2,
id = 1050,
name = "Valiance Expedition",
side = 1,
},
{
category = 1052,
category2 = 1097,
expansion = 2,
id = 1085,
name = "Warsong Offensive",
side = 2,
},
--[[{
category = 892,
category2 = 1118,
id = 889,
name = "Warsong Outriders",
side = 2,
},]]--
{
category = 0,
category2 = 1162,
expansion = 3,
id = 1174,
name = "Wildhammer Clan",
side = 1,
},
 
{
category = 0,
category2 = 0,
expansion = 3,
id = 11,
name = "Gurubashi Arena",
},
 
--[[{
category = 0,
category2 = 0,
id = 589,
name = "Wintersaber Trainers",
side = 1,
},]]--
--[[{
category = 0,
category2 = 1118,
id = 270,
name = "Zandalar Tribe",
},]]--
}
\ No newline at end of file
Modules/Announcements.lua New file
0,0 → 1,28
DTD_Announcements = DTD:NewModule("Announcements")
 
local Crayon = LibStub("LibCrayon-3.0")
 
function DTD_Announcements:Announce(message)
if DTD_Database.profile.announceQuestCompletion == true then
-- Reset to the default setting if the preferred method is not loaded
if DTD_Database.profile.announceMethod == 2 and not IsAddOnLoaded("MikScrollingBattleText") then
DTD_Database.profile.announceMethod = 1
elseif DTD_Database.profile.announceMethod == 2 then
if MikSBT.IsModDisabled() then
DTD_Database.profile.announceMethod = 1
end
end
 
-- Announce the message
if DTD_Database.profile.announceMethod == 1 then
UIErrorsFrame:AddMessage(message, 1.0, 1.0, 1.0, 5.0)
elseif DTD_Database.profile.announceMethod == 2 then
MikSBT.DisplayMessage(message,MikSBT.DISPLAYTYPE_NOTIFICATION,true)
elseif DTD_Database.profile.announceMethod == 3 then
Parrot:ShowMessage(message, "Notification", false, 1, 1, 1)
elseif DTD_Database.profile.announceMethod == 4 then
SCT:DisplayMessage(message,{r = 255, b = 255,g = 255})
end
 
end
end
\ No newline at end of file
Modules/Tooltips.lua New file
0,0 → 1,160
DTD_Tooltips = DTD:NewModule("Tooltips", "AceEvent-3.0")
 
local QTip = LibStub('LibQTip-1.0')
local Crayon = LibStub("LibCrayon-3.0")
 
local TooltipIconSize = 16
local TEXTURE_LINK_FORMAT = "|T%s:%d:%d:0:%d|t "
 
local QUEST_COMPLETE = "Interface\\RAIDFRAME\\ReadyCheck-Ready.blp"
local QUEST_NOT_COMPLETE = "Interface\\RAIDFRAME\\ReadyCheck-NotReady.blp"
local QUEST_ACCEPTED = "Interface\\GossipFrame\\DailyActiveQuestIcon.blp"
local QUEST_AVAILABLE = "Interface\\GossipFrame\\DailyQuestIcon.blp"
local WOWHEAD_ICON = "Interface\\Addons\\DailyTodos\\Textures\\wowhead.tga"
 
local function RGBToHex(r, g, b)
r = r <= 255 and r >= 0 and r or 0
g = g <= 255 and g >= 0 and g or 0
b = b <= 255 and b >= 0 and b or 0
return string.format("%02x%02x%02x", r, g, b)
end
 
local function RGBPercToHex(r, g, b)
r = r <= 1 and r >= 0 and r or 0
g = g <= 1 and g >= 0 and g or 0
b = b <= 1 and b >= 0 and b or 0
return string.format("%02x%02x%02x", r*255, g*255, b*255)
end
 
function DTD_Tooltips:CreateQuestTooltip(parent,quest)
local tooltip = QTip:Acquire("DTDTooltip",2,"LEFT","LEFT")
DTD.tooltip = tooltip
 
-- Title the tooltip with the quest name
tooltip:AddHeader(quest["name"])
tooltip:AddSeparator()
 
-- WowHead ID
if quest["id"] > 20 then
tooltip:AddLine(format(TEXTURE_LINK_FORMAT, WOWHEAD_ICON, 16, 16, -2)..quest["id"])
end
 
tooltip:AddLine()
 
tooltip:AddHeader("Rewards:")
tooltip:AddSeparator()
 
-- Show the monetary award
if quest["money"] ~= nil then
tooltip:AddLine(format(TEXTURE_LINK_FORMAT,"Interface\\ICONS\\INV_Misc_Coin_17.blp",16,16,-2).."|cffFFFFFF"..GetCoinTextureString(quest["money"]).."|r")
end
 
-- Show the currency reward
if quest["currencyrewards"] ~= nil then
local index,value = 0
 
for index,reward in ipairs(quest["currencyrewards"]) do
local name, amount, texture, unknown, weeklyMax, totalMax = GetCurrencyInfo(reward[1])
--print (quest["currencyrewards"][1])
tooltip:AddLine(format(TEXTURE_LINK_FORMAT,"Interface\\ICONS\\"..texture,16,16,-2)..reward[2].." "..name)
end
end
 
-- Shows the item reward if no choices
if quest["itemrewards"] ~= nil then
local index,value = 0
 
for index,reward in ipairs(quest["itemrewards"]) do
local name, link, quality, iLevel, reqLevel, class, subclass, maxStack, equipSlot, texture, vendorPrice = GetItemInfo(reward[1])
if texture ~= nil and name ~= nil then
local r,g,b,_ = GetItemQualityColor(quality)
local line,_ = tooltip:AddLine(format(TEXTURE_LINK_FORMAT,texture,16,16,-2)..name)
else
tooltip:AddLine("Could not find item reward in cache")
end
--print (quest["currencyrewards"][1])
end
end
 
-- Shows the item reward if there is a choice
if quest["itemchoices"] ~= nil then
tooltip:AddLine(Crayon:Gold("Pick one:"))
 
local index,value = 0
 
for index,reward in ipairs(quest["itemchoices"]) do
local name, link, quality, iLevel, reqLevel, class, subclass, maxStack, equipSlot, texture, vendorPrice = GetItemInfo(reward[1])
if texture ~= nil and name ~= nil then
local r,g,b,_ = GetItemQualityColor(quality)
if vendorPrice > 0 then
tooltip:AddLine(format(TEXTURE_LINK_FORMAT,GetItemIcon(reward[1]),16,16,-2)..name,"("..GetCoinTextureString(vendorPrice)..")")
else
GameTooltip:AddLine(format(TEXTURE_LINK_FORMAT,GetItemIcon(reward[1]),16,16,-2)..name)
end
GameTooltip:AddTexture()
else
GameTooltip:AddLine("Could not find item reward in cache")
end
--print (quest["currencyrewards"][1])
end
end
 
-- Add the amount of reputation gained, but only if there is reputation rewarded
if quest["reprewards"] ~= nil then
if quest["reprewards"][1][2] > 10 then
tooltip:AddLine(quest["reprewards"][1][2]..Crayon:Blue(" reputation."))
end
end
 
-- Show the exp gained
if quest["xp"] ~= nil then
if quest["xp"] > 5 then
tooltip:AddLine(quest["xp"]..Crayon:Purple(" experience."))
end
end
 
--
-- Tracking
--
local npc = npcInfo[questNpcs[quest["id"]]]
if npc ~= nil then
 
tooltip:AddLine()
tooltip:AddHeader("Quest Giver:")
tooltip:AddSeparator()
tooltip:AddLine(format(TEXTURE_LINK_FORMAT,QUEST_AVAILABLE,16,16,-2)..npc["name"])
 
end
 
-- Show other characters
tooltip:AddHeader("Other Characters:")
tooltip:AddSeparator()
for name, info in pairs(DTD_Database.global.character) do
local charClass, charServer, charFaction = ("|"):split(info)
local serverText = ""
local tex = QUEST_NOT_COMPLETE
if charFaction == "HORDE" then
serverText = Crayon:Red(charServer)
else
serverText = Crayon:Blue(charServer)
end
if DTD_Database.global.completedQuests[name][quest["id"]] == true then
tex = QUEST_COMPLETE
end
if DTD_Database.global.acceptedQuests[name][quest["id"]] == true then
tex = QUEST_ACCEPTED
end
 
if charClass == "DEATH KNIGHT" then charClass = "DEATHKNIGHT" end
tooltip:AddLine(format(TEXTURE_LINK_FORMAT,tex,12,12,-2)..Crayon:Colorize(RGBPercToHex(RAID_CLASS_COLORS[charClass].r,RAID_CLASS_COLORS[charClass].g,RAID_CLASS_COLORS[charClass].b),name).." - "..serverText)
end
 
tooltip:AddLine()
tooltip:AddLine(Crayon:Red("Right click to blacklist."))
 
if parent then
tooltip:SmartAnchorTo(parent)
tooltip:Show()
end
return tooltip
end
\ No newline at end of file
Variables.lua New file
0,0 → 1,38
defaults = {
global = {
character = {},
completedQuests = {},
acceptedQuests = {},
},
profile = {
showMinimapIcon = true,
-- Tracking window prefs --
showTrackingFrame = true,
lockTrackingFrame = false,
showRep = true,
announceQuestCompletion = true,
announceMethod = 1,
filterProfQuests = true,
TrackingFramePos = {
[1] = 0,
[2] = 0,
[3] = "CENTER",
},
trackFactionsExpanded = {},
----------------------------
dailyheroic = false,
friendly = 1,
enemy = 2,
factionsTracking = {},
dontTrack = {},
acceptedQuests = {},
completedQuests = {},
acceptedQuests = {},
lastOpenDate = nil,
minimapIcon = { -- minimap icon position and visibility
hide = false,
minimapPos = 220,
radius = 80,
},
}
}
\ No newline at end of file
DailyTodos.lua New file
0,0 → 1,847
DTD = LibStub("AceAddon-3.0"):NewAddon("DTD", "AceConsole-3.0", "AceEvent-3.0", "AceHook-3.0")
 
--local Astrolabe = DongleStub("Astrolabe-1.0")
local QTip = LibStub('LibQTip-1.0')
local AceGUI = LibStub("AceGUI-3.0")
 
local professionQuests = {
-- 1: Home City Fishing
-- 2: Dalaran Fishing
-- 3: Shattrath Fishing
--
-- 4: Home City Cooking
-- 5: Dalaran Cooking
-- 6: Shattrath Cooking
--
-- 7: Jewelcrafting
 
---
--- COOKING
---
--- Home City
-- Alliance
[26190] = 4, -- A Fisherman's Feast
[26177] = 4, -- Feeling Crabby?
[26192] = 4, -- Orphans Like Cookies Too!
[26153] = 4, -- Penny's Pumpkin Pancakes
[26183] = 4, -- The King's Cider
-- Horde
[26227] = 4, -- Careful, this fruit bites back
[26226] = 4, -- Crawfish Creole?
[26235] = 4, -- Even Thieves Get Hungry
[26220] = 4, -- Everything is Better With Bacon
[26233] = 4, -- Stealing from Our Own
[26234] = 4, -- Stealing from Our Own
 
--- Dalaran
-- Alliance
[13103] = 5, -- Cheese for Glowergold
[13101] = 5, -- Convention at the Legerdemain
[13100] = 5, -- Infused Mushroom Meatloaf
[13107] = 5, -- Mustard Dogs!
[13102] = 5, -- Sewer Stew
-- Horde
[13115] = 5, -- Cheese for Glowergold
[13113] = 5, -- Convention at the Legerdemain
[13112] = 5, -- Infused Mushroom Meatloaf
[13116] = 5, -- Mustard Dogs!
[13114] = 5, -- Sewer Stew
 
--- Shattrath
[11380] = 6, -- Manalicious
[11377] = 6, -- Revenge is Tasty
[11381] = 6, -- Soup for the Soul
[11379] = 6, -- Super Hot Stew
 
---
--- FISHING
---
--- Home City
 
-- Alliance
[26488] = 1, -- Big Gulp
[26420] = 1, -- Diggin' For Worms
[26414] = 1, -- Hitting a Walleye
[26442] = 1, -- Rock Lobster
[26536] = 1, -- Thunder Falls
 
-- Horde
[26588] = 1, -- A Furious Catch
[26572] = 1, -- A Golden Opportunity
[26557] = 1, -- A Staggering Effort
[26543] = 1, -- Clammy Hands
[26556] = 1, -- No Dumping Allowed
 
--- Dalaran
[13833] = 2, -- Blood Is Thicker
[13834] = 2, -- Dangerously Delicious
[13836] = 2, -- Disarmed!
[13832] = 2, -- Jewel of the Sewers
[13830] = 2, -- The Ghostfish
 
--- Shattrath
[11666] = 3, -- Bait Bandits
[11665] = 3, -- Crocolisks in the City
[11669] = 3, -- Felblood Fillet
[11668] = 3, -- Shrimpin' Ain't Easy
[11667] = 3, -- The One That Got Away
---
--- JC
---
--- Alliance
[25105] = 7, -- Nibbler! No!
[25154] = 7, -- A Present for Lila
[25156] = 7, -- Elemental Goo
[25155] = 7, -- Ogrezonians in the Mood
[25157] = 7, -- The Latest Fashion!
--- Horde
[25158] = 7, -- Nibbler! No!
[25160] = 7, -- A Present for Lila
[25162] = 7, -- Elemental Goo
[25161] = 7, -- Ogrezonians in the Mood
[25159] = 7, -- The Latest Fashion!
}
local windowOpen = false
local tab = 1
 
local CharacterName, CharacterRealm, CharacterFaction, CharacterClass = UnitName("player"), GetRealmName(), string.upper(UnitFactionGroup("player")), string.upper(UnitClass("player"))
 
local QUEST_COMPLETE = "Interface\\RAIDFRAME\\ReadyCheck-Ready.blp"
local QUEST_ACCEPTED = "Interface\\GossipFrame\\DailyActiveQuestIcon.blp"
local QUEST_AVAILABLE = "Interface\\GossipFrame\\DailyQuestIcon.blp"
 
DailyTodos_UpdateInterval = 1.0
DailyTodos_TimeSinceLastUpdate = 0.0
 
DTD:RegisterChatCommand("dtd","InitUI")
DTD:RegisterChatCommand("dailytodo","InitUI")
DTD:RegisterChatCommand("DTDs","InitUI")
DTD:RegisterChatCommand("dailytodos","InitUI")
 
-----------------------------------------------------------------------
-- Memoizing table for quest names. -- All thanks to Torhal for this (:
-----------------------------------------------------------------------
local quest_names = _G.setmetatable({}, {
__index = function(t, id_num)
_G.GameTooltip:SetOwner(_G.UIParent, _G.ANCHOR_NONE)
_G.GameTooltip:SetHyperlink(("quest:%s"):format(_G.tostring(id_num)))
 
local quest_name = _G["GameTooltipTextLeft1"]:GetText()
_G.GameTooltip:Hide()
 
if not quest_name then
return _G.UNKNOWN
end
t[id_num] = quest_name
return quest_name
end,
})
 
function DTD:OnInitialize()
-- Called when the addon is loaded
DTD_Database = LibStub("AceDB-3.0"):New("DailyTodoDB",defaults)
 
DTD:CreateMinimapButton()
 
-- check if the daily heroic has been completed today
local doneToday, _, _, _, _, _ = GetLFGDungeonRewards(262)
if doneToday then
DTD_Database.profile.completedQuests["dh"] = true
end
 
DTD:CreateTrackingFrame()
if not DTD_Database.profile.showTrackingFrame then
DTD.TrackingFrame:Hide()
else
DTD.TrackingFrame:Show()
end
end
 
function DTD:OnEnable()
 
-- Called when the addon is enabled
self:Print("Daily To-Do's enabled. /dtd to configure.")
 
-- Check if it's a new day
if DTD_Database.profile.lastOpenDate == nil then
--self:Print("First time opening")
elseif DTD_Database.profile.lastOpenDate ~= date("%m/%d/%y") then
--self:Print("First time opening today")
DTD_Database.profile.completedQuests = {}
DTD_Database.profile.acceptedQuests = {}
else
--self:Print("Opened already today")
end
 
DTD_Database.profile.lastOpenDate = date("%m/%d/%y")
 
-- Check to see if there is a quest completion profile for this character yet
if not DTD_Database.global.character[CharacterName] then
DTD_Database.global.character[CharacterName] = (CharacterClass.."|"..CharacterRealm.."|"..CharacterFaction)
DTD_Database.global.completedQuests[CharacterName] = DTD_Database.profile.completedQuests
DTD_Database.global.acceptedQuests[CharacterName] = DTD_Database.profile.acceptedQuests
end
 
-- Register quest complete
self:RegisterEvent("QUEST_ACCEPTED")
self:RegisterEvent("QUEST_COMPLETE")
 
DTD:CheckPlayerData()
end
 
-- Objective selection tab
function DTD:DrawGroup1(container)
-- Draw the settings
--
-- PROFESSION QUESTS
--
 
local ScrollFrame = AceGUI:Create("ScrollFrame")
ScrollFrame:SetLayout("Flow")
ScrollFrame:SetWidth(250)
container:AddChild(ScrollFrame)
 
ScrollFrame:PauseLayout()
 
local DailyHeroicCheckBox = AceGUI:Create("CheckBox")
DailyHeroicCheckBox:SetLabel("Daily Heroic Dungeon")
if DTD_Database.profile.dailyheroic then
DailyHeroicCheckBox:SetValue(DTD_Database.profile.dailyheroic)
end
DailyHeroicCheckBox:SetCallback("OnValueChanged", function()
DTD_Database.profile.dailyheroic = DailyHeroicCheckBox:GetValue()
DTD:ReloadTrackingFrame()
end)
ScrollFrame:AddChild(DailyHeroicCheckBox)
 
local ProfessionsGroup = AceGUI:Create("InlineGroup")
ProfessionsGroup:SetTitle("Profession Dailies")
ProfessionsGroup:SetLayout("Flow")
ScrollFrame:AddChild(ProfessionsGroup)
 
--[[if (not GetSpellBookItemInfo("Cooking")) and (not GetSpellBookItemInfo("Fishing")) and (not GetSpellBookItemInfo("Jewelcrafting")) and DTD_Database.profile.filterProfQuests then
local NoProfs = AceGUI:Create("Label")
NoProfs:SetText("You have no professions which have daily quests to track.")
NoProfs:SetColor(0,1,0)
ProfessionsGroup:AddChild(NoProfs)
end]]
 
--
-- DAILIES
--
 
local ReputationGroup = AceGUI:Create("InlineGroup")
ReputationGroup:SetTitle("Reputation")
ReputationGroup:SetLayout("Flow")
ScrollFrame:AddChild(ReputationGroup)
 
local DescText = AceGUI:Create("Label")
DescText:SetText("Check off each faction who's reputation daily quests you would like to be reminded to complete.")
DescText:SetColor(0,1,0)
ReputationGroup:AddChild(DescText)
 
-- Loop through the factions and create a checkbox for each
local cbs = {}
for i = 1, #(factions) do
if factions[i]["side"] ~= DTD_Database.profile.enemy then
--self:Print(factions[i]["name"])
--self:Print("Id: "..factions[i]["id"])
cbs["factionCB"..i] = AceGUI:Create("CheckBox")
cbs["factionCB"..i]:SetLabel(factions[i]["name"])
cbs["factionCB"..i]:SetFullWidth(true)
-- load the previous checkbox state
if DTD_Database.profile.factionsTracking[factions[i]["id"]] then
cbs["factionCB"..i]:SetValue(DTD_Database.profile.factionsTracking[factions[i]["id"]])
end
 
-- Register toggle checkback
cbs["factionCB"..i]:SetCallback("OnValueChanged",function ()
--DTD_Database.profile.factionsTracking[i] = cbs["factionCB"..i]:GetValue()
DTD_Database.profile.factionsTracking[factions[i]["id"]] = cbs["factionCB"..i]:GetValue()
DTD:ReloadTrackingFrame()
end)
cbs["factionCB"..i]:SetCallback("OnEnter",function ()
GameTooltip:SetOwner(cbs["factionCB"..i].frame, "ANCHOR_CURSOR", 0, 0)
if factions[i]["side"] == DTD_Database.profile.friendly then
GameTooltip:AddLine(factions[i]["name"],0,1,0)
GameTooltip:AddLine(UnitFactionGroup("player"),1,1,1)
--elseif factions[i]["side"] == DTD_Database.profile.enemy then
-- GameTooltip:AddLine(factions[i]["name"],1,0,0)
-- GameTooltip:AddLine("Hostile",1,1,1)
else
GameTooltip:AddLine(factions[i]["name"])
GameTooltip:AddLine("Neutral",1,1,1)
end
GameTooltip:Show()
end)
 
cbs["factionCB"..i]:SetCallback("OnLeave",function () GameTooltip:Hide() end)
 
--if factions[i]["side"] then self:Print(factions[i]["name"].." is faction "..factions[i]["side"])
--else self:Print(factions[i]["name"].." is neutral")
--end
 
if factions[i]["category"] == 2 then -- Veto if they do not have the appropriate profession
if factions[i]["category2"] == 2 then -- It's a cooking quest
ProfessionsGroup:AddChild(cbs["factionCB"..i])
end
if factions[i]["category2"] == 1 then -- It's a fishing quest
ProfessionsGroup:AddChild(cbs["factionCB"..i])
end
if factions[i]["category2"] == 3 then -- It's a fishing quest
ProfessionsGroup:AddChild(cbs["factionCB"..i])
end
else
ReputationGroup:AddChild(cbs["factionCB"..i])
end
end
end
 
local RestoreLbl = AceGUI:Create("Label")
RestoreLbl:SetText("Restore all quests that have been removed from the main tracking frame.")
RestoreLbl:SetFullWidth(true)
ScrollFrame:AddChild(RestoreLbl)
 
local RestoreIgnoredBtn = AceGUI:Create("Button")
RestoreIgnoredBtn:SetText("Restore quests")
RestoreIgnoredBtn:SetFullWidth(true)
RestoreIgnoredBtn:SetCallback("OnClick",function ()
DTD_Database.profile.dontTrack = {}
DTD:ReloadTrackingFrame()
end)
ScrollFrame:AddChild(RestoreIgnoredBtn)
 
ScrollFrame:ResumeLayout()
end
 
-- Options and settings tab
function DTD:DrawGroup2(container)
local ScrollFrame = AceGUI:Create("ScrollFrame")
ScrollFrame:SetLayout("Flow")
ScrollFrame:SetWidth(250)
container:AddChild(ScrollFrame)
 
 
-- Show/hide the minimap icon
local ShowMinimapCB = AceGUI:Create("CheckBox")
ShowMinimapCB:SetLabel("Show Minimap Icon")
ShowMinimapCB:SetValue(not DTD_Database.profile.minimapIcon['hide'])
ShowMinimapCB:SetCallback("OnValueChanged",
function()
DTD_Database.profile.minimapIcon['hide'] = not ShowMinimapCB:GetValue()
if DTD_Database.profile.minimapIcon['hide'] then
DTD.LDBIcon:Hide("DTD")
else
DTD.LDBIcon:Show("DTD")
end
end)
ScrollFrame:AddChild(ShowMinimapCB)
 
 
-- Show/hide the tracker frame
local ShowTrackerCB = AceGUI:Create("CheckBox")
ShowTrackerCB:SetLabel("Show Tracking Frame")
if DTD_Database.profile.showTrackingFrame then
ShowTrackerCB:SetValue(DTD_Database.profile.showTrackingFrame)
end
ShowTrackerCB:SetCallback("OnValueChanged",
function()
DTD_Database.profile.showTrackingFrame = ShowTrackerCB:GetValue()
if DTD_Database.profile.showTrackingFrame then
DTD.TrackingFrame:Show()
else
DTD.TrackingFrame:Hide()
end
end)
ScrollFrame:AddChild(ShowTrackerCB)
 
-- Show/hide the rep bars
local ShowRepCB = AceGUI:Create("CheckBox")
ShowRepCB:SetLabel("Show Reputation in Headers")
if DTD_Database.profile.showRep then
ShowRepCB:SetValue(DTD_Database.profile.showRep)
end
ShowRepCB:SetCallback("OnValueChanged",
function()
DTD_Database.profile.showRep = ShowRepCB:GetValue()
DTD:ReloadTrackingFrame()
end)
ScrollFrame:AddChild(ShowRepCB)
 
-- Lock/unlock the tracker frame
local LockTrackerCB = AceGUI:Create("CheckBox")
LockTrackerCB:SetLabel("Lock Tracking Frame")
if DTD_Database.profile.lockTrackingFrame then
LockTrackerCB:SetValue(DTD_Database.profile.lockTrackingFrame)
end
LockTrackerCB:SetCallback("OnValueChanged",
function()
DTD_Database.profile.lockTrackingFrame = LockTrackerCB:GetValue()
if DTD_Database.profile.lockTrackingFrame then
DTD.TrackingFrame:SetMovable(false)
DTD.TrackingFrame:EnableMouse(false)
else
DTD.TrackingFrame:SetMovable(true)
DTD.TrackingFrame:EnableMouse(true)
end
end)
ScrollFrame:AddChild(LockTrackerCB)
 
 
local AnnounceGroup = AceGUI:Create("InlineGroup")
AnnounceGroup:SetTitle("Announce quest completion")
AnnounceGroup:SetLayout("Flow")
ScrollFrame:AddChild(AnnounceGroup)
 
-- Dropdown
local AnnounceQuestCompletionDD = AceGUI:Create("Dropdown")
AnnounceQuestCompletionDD:SetLabel("Announce in:")
AnnounceQuestCompletionDD:SetList({[1] = "Blizzard Raid Warning"})
if IsAddOnLoaded("MikScrollingBattleText") then
AnnounceQuestCompletionDD:AddItem(2,"Mik's Scrolling Battle Text")
if MikSBT.IsModDisabled() then
AnnounceQuestCompletionDD:SetItemDisabled(2,1,true)
AnnounceQuestCompletionDD:SetValue(1)
DTD_Database.profile.announceMethod = 1
end
end
if IsAddOnLoaded("Parrot") then
AnnounceQuestCompletionDD:AddItem(3,"Parrot")
end
if IsAddOnLoaded("SCT") then
AnnounceQuestCompletionDD:AddItem(4,"Scrolling Combat Text")
end
AnnounceQuestCompletionDD:SetValue(DTD_Database.profile.announceMethod)
AnnounceQuestCompletionDD:SetDisabled(not DTD_Database.profile.announceQuestCompletion)
AnnounceQuestCompletionDD:SetCallback("OnValueChanged", function (_,_,value)
DTD_Database.profile.announceMethod = value
end)
AnnounceGroup:AddChild(AnnounceQuestCompletionDD)
 
-- Announce quest completion
local AnnounceQuestCompletionCB = AceGUI:Create("CheckBox")
AnnounceQuestCompletionCB:SetLabel("Enable")
AnnounceQuestCompletionCB:SetValue(DTD_Database.profile.announceQuestCompletion)
AnnounceQuestCompletionCB:SetCallback("OnValueChanged",function ()
DTD_Database.profile.announceQuestCompletion = AnnounceQuestCompletionCB:GetValue()
if DTD_Database.profile.announceQuestCompletion == true then
AnnounceQuestCompletionDD:SetDisabled(false)
else
AnnounceQuestCompletionDD:SetDisabled(true)
end
end)
AnnounceGroup:AddChild(AnnounceQuestCompletionCB)
 
-- Filter the profession quests
--[[local FilterCB = AceGUI:Create("CheckBox")
FilterCB:SetLabel("Filter profession quests. Enable this is your professions are not being detected.")
if DTD_Database.profile.filterProfQuests then
FilterCB:SetValue(DTD_Database.profile.filterProfQuests)
end
FilterCB:SetCallback("OnValueChanged",
function()
DTD_Database.profile.filterProfQuests = FilterCB:GetValue()
end)
ScrollFrame:AddChild(FilterCB)]]--
 
-- Reset all data
local ResetDataBtn = AceGUI:Create("Button")
ResetDataBtn:SetText("Reset All Data")
ResetDataBtn:SetCallback("OnClick", function()
container:ReleaseChildren()
DTD:DrawGroup2(container)
DTD:ResetData()
end)
ScrollFrame:AddChild(ResetDataBtn)
end
 
local function SelectGroup(container,event,group)
container:ReleaseChildren()
if group == "tab1" then
DTD:DrawGroup1(container)
elseif group == "tab2" then
DTD:DrawGroup2(container)
end
end
 
function DTD:InitUI()
if windowOpen then
DTD.MainWindow:Release()
windowOpen = false
collectgarbage()
return
end
-- Create a container frame
-- Called when the user enters the console command
DTD.MainWindow = AceGUI:Create("Window")
DTD.MainWindow:SetCallback("OnClose",function(widget)
windowOpen = false
AceGUI:Release(widget)
end)
DTD.MainWindow:SetTitle("Daily To-Do's")
DTD.MainWindow:SetWidth("300")
DTD.MainWindow:SetHeight("400")
DTD.MainWindow:SetLayout("Fill")
DTD.MainWindow:EnableResize(false)
 
TabGroup = AceGUI:Create("TabGroup")
TabGroup:SetTabs({{value = "tab1",text="Select Objectives"}, {value = "tab2",text="Options"}})
TabGroup:SetCallback("OnGroupSelected", SelectGroup)
TabGroup:SetWidth(250)
TabGroup:SetLayout("Fill")
TabGroup:SelectTab("tab1")
DTD.MainWindow:AddChild(TabGroup)
 
windowOpen = true
end
 
--
-- Tracker Frame
--
 
function DTD:CreateTrackingFrame()
DTD.TrackingFrame = CreateFrame("Frame","TrackingFrame",UIParent)
DTD.TrackingFrame:SetMovable(true)
DTD.TrackingFrame:EnableMouse(true)
DTD.TrackingFrame:SetClampedToScreen(true)
DTD.TrackingFrame:RegisterForDrag("LeftButton")
DTD.TrackingFrame:SetScript("OnUpdate",DTD_OnUpdate)
DTD.TrackingFrame:SetScript("OnDragStart", DTD.TrackingFrame.StartMoving)
DTD.TrackingFrame:SetScript("OnDragStop", DTD.TrackingFrame.StopMovingOrSizing)
DTD.TrackingFrame:SetBackdropColor(0,0,0,1);
DTD.TrackingFrame:SetHeight(200)
DTD.TrackingFrame:SetWidth(200)
DTD.TrackingFrame:SetAlpha(1.0)
 
local lbls = {}
local lblBtns = {}
local headers = {}
local btns = {}
local ypos = 0
 
-- Create title text
local title = DTD.TrackingFrame:CreateFontString("TitleText",nil,"GameFontNormalLarge")
title:SetText("|cff7FFF00Daily To-Do's|r")
title:SetPoint("TOPLEFT",DTD.TrackingFrame,"TOPLEFT",-4,-ypos)
title:Show()
ypos = ypos + 18
 
DTD.timer = DTD.TrackingFrame:CreateFontString("TimerText",nil,"GameFontNormal")
DTD.timer:SetText("|cffFFFFFF ("..GetDailyQuestsCompleted().."/"..GetMaxDailyQuests()..") "..SecondsToTime(GetQuestResetTime()).."|r")
DTD.timer:SetPoint("TOPLEFT",DTD.TrackingFrame,"TOPLEFT",5,-ypos)
DTD.timer:Show()
 
ypos = ypos + 14
 
i = 0
 
------
------ TRACK DAILY HEROIC
------
if DTD_Database.profile.dailyheroic then
local DHLbl= DTD.TrackingFrame:CreateFontString("dailyheroic",nil,"GameFontNormal")
if DTD_Database.profile.completedQuests["dh"] then
color = "|cff00FF00"
else
color = "|cff00CCCC"
end
DHLbl:SetText(color.."Daily Heroic Dungeon|r")
DHLbl:SetPoint("TOPLEFT",DTD.TrackingFrame,"TOPLEFT",0,-ypos)
ypos = ypos+14
end
 
------
------ TRACK OTHER DAILIES
------
for i = 1, #(factions) do
if DTD_Database.profile.factionsTracking[factions[i]["id"]] then
 
local isFaction = false
 
-- Get the faction info
local name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild = GetFactionInfoByID(factions[i]["id"])
if name == factions[i]["name"] then
isFaction = true
--print(factions[i]["name"].." = "..name)
end
 
-- Create the Faction header and the expand/contract button
btns[i] = CreateFrame("Button",nil,DTD.TrackingFrame,"OptionsButtonTemplate")
if DTD_Database.profile.trackFactionsExpanded[factions[i]["id"]] then
btns[i]:SetText("-")
else
btns[i]:SetText("+")
end
btns[i]:SetWidth(10)
btns[i]:SetHeight(10)
btns[i]:SetAlpha(1)
btns[i]:SetPoint("TOPLEFT",DTD.TrackingFrame,"TOPLEFT",2,-ypos-2)
btns[i]:SetScript("OnClick",function ()
if DTD_Database.profile.trackFactionsExpanded[factions[i]["id"]] then
DTD_Database.profile.trackFactionsExpanded[factions[i]["id"]] = false
DTD:ReloadTrackingFrame()
else
DTD_Database.profile.trackFactionsExpanded[factions[i]["id"]] = true
DTD:ReloadTrackingFrame()
end
end)
btns[i]:Show()
 
headers[i] = DTD.TrackingFrame:CreateFontString("header"..i,nil,"GameFontNormal")
headers[i]:SetText(factions[i]["name"])
headers[i]:SetPoint("TOPLEFT",DTD.TrackingFrame,"TOPLEFT",16,-ypos)
headers[i]:Show()
 
if isFaction and DTD_Database.profile.showRep then
local repbar = CreateFrame("StatusBar", nil, DTD.TrackingFrame)
repbar:SetPoint("TOPLEFT", DTD.TrackingFrame, "TOPLEFT", 16, -ypos)
repbar:SetWidth(headers[i]:GetWidth()+12)
repbar:SetHeight(14)
repbar:SetStatusBarTexture("Interface\\Addons\\DailyTodos\\Textures\\Bar")
repbar:GetStatusBarTexture():SetHorizTile(false)
repbar:GetStatusBarTexture():SetVertTile(false)
repbar:SetStatusBarColor(FACTION_BAR_COLORS[standingID].r,FACTION_BAR_COLORS[standingID].g,FACTION_BAR_COLORS[standingID].b)
repbar:SetMinMaxValues(barMin,barMax)
repbar:SetValue(barValue)
 
repbar.bg = repbar:CreateTexture(nil, "BACKGROUND")
repbar.bg:SetTexture("Interface\\Addons\\DailyTodos\\Textures\\Bar")
repbar.bg:SetAllPoints(true)
repbar.bg:SetVertexColor(0.35*FACTION_BAR_COLORS[standingID].r, 0.35*FACTION_BAR_COLORS[standingID].g, 0.35*FACTION_BAR_COLORS[standingID].b)
 
repbar.value = repbar:CreateFontString(nil, nil,"GameFontNormal")
repbar.value:SetPoint("CENTER", repbar, "CENTER", 0, 0)
--repbar.value:SetFont("Fonts\\FRIZQT__.TTF", 9, "OUTLINE")
repbar.value:SetJustifyH("CENTER")
repbar.value:SetShadowOffset(1, -1)
repbar.value:SetTextColor(1, 1, 1)
repbar.value:SetText(factions[i]["name"])
 
repbar:SetScript("OnEnter",function ()
repbar.value:SetText((barValue-barMin).." / "..(barMax-barMin))
end)
repbar:SetScript("OnLeave",function () repbar.value:SetText(factions[i]["name"]) end)
end
 
ypos = ypos+16
-- make sure the header is expanded
if DTD_Database.profile.trackFactionsExpanded[factions[i]["id"]] then
for n = 1, #(dailyQuests[factions[i]["id"]]) do
local quest = dailyQuests[factions[i]["id"]][n]
-- If the quest is the right faction, or neutral and the quest is not one selected to be ignored and is not a holiday quest
if quest["side"] == DTD_Database.profile.friendly or quest["side"] == 3 then
if math.abs(quest["category"]) ~= 1008 and DTD_Database.profile.dontTrack[quest["id"]] ~= true then
local level = quest["level"]
local color = "|cffFFFFFF"
 
----
---- Create the little icon thingy
----
lblBtns[i.."-"..n] = CreateFrame("Button",nil,DTD.TrackingFrame)
lblBtns[i.."-"..n]:RegisterForClicks("LeftButtonUp","RightButtonUp")
local tx = lblBtns[i.."-"..n]:CreateTexture()
tx:SetAllPoints(lblBtns[i.."-"..n])
lblBtns[i.."-"..n]:SetBackdrop(tx)
lblBtns[i.."-"..n]:SetWidth(12)
lblBtns[i.."-"..n]:SetHeight(12)
lblBtns[i.."-"..n]:SetAlpha(1)
 
if DTD_Database.profile.completedQuests[quest["id"]] then
tx:SetTexture(QUEST_COMPLETE,1)
elseif DTD_Database.profile.acceptedQuests[quest["id"]] then
tx:SetTexture(QUEST_ACCEPTED,1)
else
tx:SetTexture(QUEST_AVAILABLE,1)
end
lblBtns[i.."-"..n]:SetPoint("TOPLEFT",DTD.TrackingFrame,"TOPLEFT",15,-ypos)
lblBtns[i.."-"..n]:Show()
----
---- Create the label for the quest
----
lbls[i.."-"..n] = DTD.TrackingFrame:CreateFontString("quest"..n,nil,"GameFontNormalSmall")
if DTD_Database.profile.completedQuests[quest["id"]] then
color = "|cff00FF00"
end
quest["name"] = quest_names[quest["id"]]
if level == nil then
lbls[i.."-"..n]:SetText(color..quest_names[quest["id"]].."|r")
else
lbls[i.."-"..n]:SetText("|cff74BBFB["..quest["level"].."]|r "..color..quest_names[quest["id"]].."|r")
end
lbls[i.."-"..n]:SetPoint("TOPLEFT",DTD.TrackingFrame,"TOPLEFT",27,-ypos)
lbls[i.."-"..n]:Show()
 
----
---- Create the invisible button so that the list items are clickable
----
 
lblBtns[i.."-"..n] = CreateFrame("Button",nil,DTD.TrackingFrame)
lblBtns[i.."-"..n]:RegisterForClicks("LeftButtonUp","RightButtonUp")
local tx = lblBtns[i.."-"..n]:CreateTexture()
tx:SetAllPoints(lblBtns[i.."-"..n])
tx:SetTexture(1,1,1,0.1)
lblBtns[i.."-"..n]:SetHighlightTexture(tx)
lblBtns[i.."-"..n]:SetWidth(lbls[i.."-"..n]:GetStringWidth())
lblBtns[i.."-"..n]:SetHeight(12)
lblBtns[i.."-"..n]:SetAlpha(1)
lblBtns[i.."-"..n]:SetPoint("TOPLEFT",DTD.TrackingFrame,"TOPLEFT",27,-ypos)
lblBtns[i.."-"..n]:SetScript("OnClick", function (_, button)
if button == "RightButton" then
DTD_Database.profile.dontTrack[dailyQuests[factions[i]["id"]][n]["id"]] = true
DTD:ReloadTrackingFrame()
else
if DTD_Database.profile.completedQuests[dailyQuests[factions[i]["id"]][n]["id"]] then
DTD_Database.profile.completedQuests[dailyQuests[factions[i]["id"]][n]["id"]] = false
else
DTD_Database.profile.completedQuests[dailyQuests[factions[i]["id"]][n]["id"]] = true
end
DTD_Database.global.completedQuests[CharacterName] = DTD_Database.profile.completedQuests
DTD:ReloadTrackingFrame()
end
end)
lblBtns[i.."-"..n]:SetScript("OnEnter", function ()
if DTD_Tooltips then
DTD_Tooltips:CreateQuestTooltip(lblBtns[i.."-"..n],dailyQuests[factions[i]["id"]][n])
end
end)
lblBtns[i.."-"..n]:SetScript("OnLeave", function ()
if DTD_Tooltips then
QTip:Release(self.tooltip)
self.tooltip = nil
--GameTooltip:Hide()
end
end)
lblBtns[i.."-"..n]:Show()
 
ypos = ypos+12
end
end
end
end
end
end
 
-- Reposition after creating
DTD.TrackingFrame:SetHeight(ypos+32)
local xO,yO = DTD_Database.profile.TrackingFramePos[1],DTD_Database.profile.TrackingFramePos[2]
DTD.TrackingFrame:SetPoint(DTD_Database.profile.TrackingFramePos[3],nil,DTD_Database.profile.TrackingFramePos[3],xO,yO-(DTD.TrackingFrame:GetHeight()/2))
 
collectgarbage()
end
 
function DTD:ReloadTrackingFrame()
-- Reload the onscreen tracking frame
local point, relativeTo, relativePoint, xOfs, yOfs = DTD.TrackingFrame:GetPoint()
DTD_Database.profile.TrackingFramePos[1] = xOfs
DTD_Database.profile.TrackingFramePos[2] = yOfs+(DTD.TrackingFrame:GetHeight()/2)
DTD_Database.profile.TrackingFramePos[3] = point
 
DTD.TrackingFrame:Hide()
DTD.TrackingFrame = nil
collectgarbage()
 
DTD:CreateTrackingFrame()
end
 
--
-- Minimap Button
--
 
function DTD:CreateMinimapButton()
-- create / register the minimap button
DTD.LDBIcon = LibStub("LibDataBroker-1.1", true) and LibStub("LibDBIcon-1.0", true)
local DTDLauncher = LibStub("LibDataBroker-1.1", true):NewDataObject("DTD", {
type = "launcher",
icon = "Interface\\Icons\\inv_scroll_09",
OnClick = function(_,button) -- fires when a user clicks on the minimap icon
if button == "RightButton" then
DTD_Database.profile.showTrackingFrame = not DTD_Database.profile.showTrackingFrame
if DTD_Database.profile.showTrackingFrame then
DTD.TrackingFrame:Show()
else
DTD.TrackingFrame:Hide()
end
else
DTD:InitUI()
end
end,
OnTooltipShow = function(tt) -- tooltip that shows when you hover over the minimap icon
local cs = "|cffffffcc"
local ce = "|r"
tt:AddLine("Daily To-Do's")
tt:AddLine(string.format("%sLeft-Click%s to open the configuration window", cs, ce))
tt:AddLine(string.format("%sRight-Click%s to hide/show the tracking window", cs, ce))
tt:AddLine(string.format("%sDrag%s to move this button", cs, ce))
end,
})
DTD.LDBIcon:Register("DTD", DTDLauncher, DTD_Database.profile.minimapIcon)
end
 
--
-- QUEST TRACKING
--
 
function DTD:QUEST_ACCEPTED(_,id)
local questTitle, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily, questID = GetQuestLogTitle(id)
if isDaily then
-- Correct for profession quests
if professionQuests[questID] ~= nil then
DTD_Database.profile.acceptedQusets[professionQuests[questID]] = true
-- Set the quest to accepted
else
DTD_Database.profile.acceptedQuests[questID] = true
end
DTD_Database.global.acceptedQuests[CharacterName] = DTD_Database.profile.acceptedQuests
end
DTD:ReloadTrackingFrame()
end
 
function DTD:QUEST_COMPLETE()
local message = "|cff22CCFF\""..GetTitleText() .. "\"|r complete!"
DTD_Announcements:Announce(message)
 
local questId = GetQuestID()
if professionQuests[questId] then
DTD_Database.profile.completedQuests[professionQuests[questId]] = true
else
DTD_Database.profile.completedQuests[questId] = true
end
 
DTD:ReloadTrackingFrame()
 
-- Sync the global quest tracking
DTD_Database.global.completedQuests[CharacterName] = DTD_Database.profile.completedQuests
end
 
function DTD:CheckPlayerData()
-- Get Player Faction
if UnitFactionGroup("player") == "Alliance" then
DTD_Database.profile.friendly = 1
DTD_Database.profile.enemy = 2
else
DTD_Database.profile.friendly = 2
DTD_Database.profile.enemy = 1
end
end
 
function DTD:ResetData()
 
DTD_Database:ResetDB()
collectgarbage()
 
DTD.LDBIcon:Show("DTD")
DTD:ReloadTrackingFrame()
DTD:CheckPlayerData()
end
 
--
-- OnUpdate, just for fun
--
function DTD_OnUpdate(self, elapsed)
DailyTodos_TimeSinceLastUpdate = DailyTodos_TimeSinceLastUpdate + elapsed;
 
if (DailyTodos_TimeSinceLastUpdate > DailyTodos_UpdateInterval) then
DTD.timer:SetText("|cffFFFFFF ("..GetDailyQuestsCompleted().."/"..GetMaxDailyQuests()..") "..SecondsToTime(GetQuestResetTime()).."|r")
DailyTodos_TimeSinceLastUpdate = 0;
end
end
\ No newline at end of file