mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
424 lines
11 KiB
JavaScript
424 lines
11 KiB
JavaScript
/*
|
|
Global WoW data
|
|
*/
|
|
|
|
var g_file_races = {
|
|
1: 'human',
|
|
2: 'orc',
|
|
3: 'dwarf',
|
|
4: 'nightelf',
|
|
5: 'scourge',
|
|
6: 'tauren',
|
|
7: 'gnome',
|
|
8: 'troll',
|
|
10: 'bloodelf',
|
|
11: 'draenei'
|
|
};
|
|
|
|
var g_file_classes = {
|
|
1: 'warrior',
|
|
2: 'paladin',
|
|
3: 'hunter',
|
|
4: 'rogue',
|
|
5: 'priest',
|
|
6: 'deathknight',
|
|
7: 'shaman',
|
|
8: 'mage',
|
|
9: 'warlock',
|
|
11: 'druid'
|
|
};
|
|
|
|
var g_file_specs = {
|
|
"-1": 'spell_shadow_sacrificialshield',
|
|
0: 'spell_nature_elementalabsorption',
|
|
6: ['spell_deathknight_bloodpresence', 'spell_deathknight_frostpresence', 'spell_deathknight_unholypresence' ],
|
|
11: ['spell_nature_starfall', 'ability_racial_bearform', 'spell_nature_healingtouch' ],
|
|
3: ['ability_hunter_beasttaming', 'ability_marksmanship', 'ability_hunter_swiftstrike' ],
|
|
8: ['spell_holy_magicalsentry', 'spell_fire_firebolt02', 'spell_frost_frostbolt02' ],
|
|
2: ['spell_holy_holybolt', 'spell_holy_devotionaura', 'spell_holy_auraoflight' ],
|
|
5: ['spell_holy_wordfortitude', 'spell_holy_holybolt', 'spell_shadow_shadowwordpain' ],
|
|
4: ['ability_rogue_eviscerate', 'ability_backstab', 'ability_stealth' ],
|
|
7: ['spell_nature_lightning', 'spell_nature_lightningshield', 'spell_nature_magicimmunity' ],
|
|
9: ['spell_shadow_deathcoil', 'spell_shadow_metamorphosis', 'spell_shadow_rainoffire' ],
|
|
1: ['ability_rogue_eviscerate', 'ability_warrior_innerrage', 'ability_warrior_defensivestance' ]
|
|
};
|
|
|
|
var g_file_genders = {
|
|
0: 'male',
|
|
1: 'female'
|
|
};
|
|
|
|
var g_file_factions = {
|
|
1: 'alliance',
|
|
2: 'horde'
|
|
};
|
|
|
|
var g_file_gems = {
|
|
1: 'meta',
|
|
2: 'red',
|
|
4: 'yellow',
|
|
6: 'orange',
|
|
8: 'blue',
|
|
10: 'purple',
|
|
12: 'green',
|
|
14: 'prismatic'
|
|
};
|
|
|
|
/*
|
|
Source:
|
|
http://www.wowwiki.com/Patches
|
|
http://www.wowwiki.com/Patches/1.x
|
|
*/
|
|
|
|
function g_getPatchVersionIndex(timestamp)
|
|
{
|
|
var _ = g_getPatchVersion;
|
|
var l = 0, u = _.T.length - 2, m;
|
|
|
|
while (u > l)
|
|
{
|
|
m = Math.floor((u + l) / 2);
|
|
|
|
if (timestamp >= _.T[m] && timestamp < _.T[m + 1])
|
|
return m;
|
|
|
|
if (timestamp >= _.T[m])
|
|
l = m + 1;
|
|
else
|
|
u = m - 1;
|
|
}
|
|
m = Math.ceil((u + l) / 2);
|
|
|
|
return m;
|
|
}
|
|
|
|
function g_getPatchVersion(timestamp)
|
|
{
|
|
var m = g_getPatchVersionIndex(timestamp);
|
|
return g_getPatchVersion.V[m];
|
|
}
|
|
g_getPatchVersion.V = [
|
|
'1.12.0',
|
|
'1.12.1',
|
|
'1.12.2',
|
|
|
|
'2.0.1',
|
|
'2.0.3',
|
|
'2.0.4',
|
|
'2.0.5',
|
|
'2.0.6',
|
|
'2.0.7',
|
|
'2.0.8',
|
|
'2.0.10',
|
|
'2.0.12',
|
|
|
|
'2.1.0',
|
|
'2.1.1',
|
|
'2.1.2',
|
|
'2.1.3',
|
|
|
|
'2.2.0',
|
|
'2.2.2',
|
|
'2.2.3',
|
|
|
|
'2.3.0',
|
|
'2.3.2',
|
|
'2.3.3',
|
|
|
|
'2.4.0',
|
|
'2.4.1',
|
|
'2.4.2',
|
|
'2.4.3',
|
|
|
|
'3.0.2',
|
|
'3.0.3',
|
|
'3.0.8',
|
|
'3.0.9',
|
|
|
|
'3.1.0',
|
|
'3.1.1',
|
|
'3.1.2',
|
|
'3.1.3',
|
|
|
|
'3.2.0',
|
|
'3.2.2',
|
|
|
|
'3.3.0',
|
|
'3.3.2',
|
|
'3.3.3',
|
|
'3.3.5',
|
|
|
|
'?????'
|
|
];
|
|
|
|
// javascript:void(prompt('', new Date('Aug 30 2011').getTime()))
|
|
|
|
g_getPatchVersion.T = [
|
|
// 1.12: Drums of War
|
|
1153540800000, // 1.12.0 22 August 2006
|
|
1159243200000, // 1.12.1 26 September 2006
|
|
1160712000000, // 1.12.2 13 October 2006
|
|
|
|
// 2.0: Before the Storm (The Burning Crusade)
|
|
1165294800000, // 2.0.1 5 December 2006
|
|
1168318800000, // 2.0.3 9 January 2007
|
|
1168578000000, // 2.0.4 12 January 2007
|
|
1168750800000, // 2.0.5 14 January 2007
|
|
1169528400000, // 2.0.6 23 January 2007
|
|
1171342800000, // 2.0.7 13 February 2007
|
|
1171602000000, // 2.0.8 16 February 2007
|
|
1173157200000, // 2.0.10 6 March 2007
|
|
1175572800000, // 2.0.12 3 April 2007
|
|
|
|
// 2.1: The Black Temple
|
|
1179806400000, // 2.1.0 22 May 2007
|
|
1181016000000, // 2.1.1 5 June 2007
|
|
1182225600000, // 2.1.2 19 June 2007
|
|
1184040000000, // 2.1.3 10 July 2007
|
|
|
|
// 2.2: Voice Chat!
|
|
1190692800000, // 2.2.0 25 September 2007
|
|
1191297600000, // 2.2.2 2 October 2007
|
|
1191902400000, // 2.2.3 9 October 2007
|
|
|
|
// 2.3: The Gods of Zul'Aman
|
|
1194930000000, // 2.3.0 13 November 2007
|
|
1199768400000, // 2.3.2 08 January 2008
|
|
1200978000000, // 2.3.3 22 January 2008
|
|
|
|
// 2.4: Fury of the Sunwell
|
|
1206417600000, // 2.4.0 25 March 2008
|
|
1207022400000, // 2.4.1 1 April 2008
|
|
1210651200000, // 2.4.2 13 May 2008
|
|
1216094400000, // 2.4.3 15 July 2008
|
|
|
|
// 3.0: Echoes of Doom
|
|
1223956800000, // 3.0.2 October 14 2008
|
|
1225774800000, // 3.0.3 November 4 2008
|
|
1232427600000, // 3.0.8 January 20 2009
|
|
1234242000000, // 3.0.9 February 10 2009
|
|
|
|
// 3.1: Secrets of Ulduar
|
|
1239681600000, // 3.1.0 April 14 2009
|
|
1240286400000, // 3.1.1 April 21 2009
|
|
1242705600000, // 3.1.2 19 May 2009
|
|
1243915200000, // 3.1.3 2 June 2009
|
|
|
|
// 3.2: Call of the Crusader
|
|
1249358400000, // 3.2.0 4 August 2009
|
|
1253595600000, // 3.2.2 22 September 2009
|
|
|
|
// 3.3: Fall of the Lich King
|
|
1260266400000, // 3.3.0 8 December 2009
|
|
1265104800000, // 3.3.2 2 February 2010
|
|
1269320400000, // 3.3.3 23 March 2010
|
|
1277182800000, // 3.3.5 22 June 2010
|
|
|
|
9999999999999
|
|
];
|
|
|
|
/*
|
|
Global stuff related to WoW database entries
|
|
*/
|
|
|
|
var
|
|
g_npcs = {},
|
|
g_objects = {},
|
|
g_items = {},
|
|
g_itemsets = {},
|
|
g_quests = {},
|
|
g_spells = {},
|
|
g_gatheredzones = {},
|
|
g_factions = {},
|
|
g_pets = {},
|
|
g_achievements = {},
|
|
g_titles = {},
|
|
g_holidays = {},
|
|
g_classes = {},
|
|
g_races = {},
|
|
g_skills = {},
|
|
g_gatheredcurrencies = {},
|
|
g_sounds = {},
|
|
g_icons = {},
|
|
g_enchantments = {},
|
|
g_emotes = {};
|
|
|
|
var g_types = {
|
|
1: 'npc',
|
|
2: 'object',
|
|
3: 'item',
|
|
4: 'itemset',
|
|
5: 'quest',
|
|
6: 'spell',
|
|
7: 'zone',
|
|
8: 'faction',
|
|
9: 'pet',
|
|
10: 'achievement',
|
|
11: 'title',
|
|
12: 'event',
|
|
13: 'class',
|
|
14: 'race',
|
|
15: 'skill',
|
|
17: 'currency',
|
|
19: 'sound',
|
|
29: 'icon',
|
|
300: 'guide',
|
|
501: 'emote',
|
|
502: 'enchantment',
|
|
503: 'areatrigger',
|
|
504: 'mail'
|
|
};
|
|
|
|
var g_completion_categories = {
|
|
// 1: [12], // NPCs: Battle Pets
|
|
3: [9, "15-2", "15-5", "15--7"], // Items: Recipes, Minipets, Mounts (Ground), Mounts (Flying)
|
|
6: [-5, -6, 9, 11] // Spells: Mounts, Minipets, Sec. Skills, Prim. Skills
|
|
};
|
|
|
|
// Items
|
|
$WH.cO(g_items, {
|
|
add: function(id, json)
|
|
{
|
|
if (g_items[id] != null)
|
|
$WH.cO(g_items[id], json);
|
|
else
|
|
g_items[id] = json;
|
|
},
|
|
getIcon: function(id)
|
|
{
|
|
if (g_items[id] != null && g_items[id].icon)
|
|
return g_items[id].icon;
|
|
else
|
|
return 'inv_misc_questionmark';
|
|
},
|
|
createIcon: function(id, size, num, qty)
|
|
{
|
|
return Icon.create(g_items.getIcon(id), size, null, '?item=' + id, num, qty);
|
|
}
|
|
});
|
|
|
|
// Spells
|
|
$WH.cO(g_spells, {
|
|
add: function(id, json)
|
|
{
|
|
if (g_spells[id] != null)
|
|
$WH.cO(g_spells[id], json);
|
|
else
|
|
g_spells[id] = json;
|
|
},
|
|
getIcon: function(id)
|
|
{
|
|
if (g_spells[id] != null && g_spells[id].icon)
|
|
return g_spells[id].icon;
|
|
else
|
|
return 'inv_misc_questionmark';
|
|
},
|
|
createIcon: function(id, size, num, qty)
|
|
{
|
|
return Icon.create(g_spells.getIcon(id), size, null, '?spell=' + id, num, qty);
|
|
}
|
|
});
|
|
|
|
// Achievements
|
|
$WH.cO(g_achievements, {
|
|
getIcon: function(id)
|
|
{
|
|
if (g_achievements[id] != null && g_achievements[id].icon)
|
|
return g_achievements[id].icon;
|
|
else
|
|
return 'inv_misc_questionmark';
|
|
},
|
|
createIcon: function(id, size, num, qty)
|
|
{
|
|
return Icon.create(g_achievements.getIcon(id), size, null, '?achievement=' + id, num, qty);
|
|
}
|
|
});
|
|
|
|
// Classes
|
|
$WH.cO(g_classes, {
|
|
getIcon: function(id)
|
|
{
|
|
if (g_file_classes[id])
|
|
return 'class_' + g_file_classes[id];
|
|
else
|
|
return 'inv_misc_questionmark';
|
|
},
|
|
createIcon: function(id, size, num, qty)
|
|
{
|
|
return Icon.create(g_classes.getIcon(id), size, null, '?class=' + id, num, qty);
|
|
}
|
|
});
|
|
|
|
// Races
|
|
$WH.cO(g_races, {
|
|
getIcon: function(id, gender)
|
|
{
|
|
if (gender === undefined)
|
|
gender = 0
|
|
if (g_file_races[id] && g_file_genders[gender])
|
|
return 'race_' + g_file_races[id] + '_' + g_file_genders[gender];
|
|
else
|
|
return 'inv_misc_questionmark';
|
|
},
|
|
createIcon: function(id, size, num, qty)
|
|
{
|
|
return Icon.create(g_races.getIcon(id), size, null, '?race=' + id, num, qty);
|
|
}
|
|
});
|
|
|
|
// Skills
|
|
$WH.cO(g_skills, {
|
|
getIcon: function(id)
|
|
{
|
|
if (g_skills[id] != null && g_skills[id].icon)
|
|
return g_skills[id].icon;
|
|
else
|
|
return 'inv_misc_questionmark';
|
|
},
|
|
createIcon: function(id, size, num, qty)
|
|
{
|
|
return Icon.create(g_skills.getIcon(id), size, null, '?skill=' + id, num, qty);
|
|
}
|
|
});
|
|
|
|
// Currencies
|
|
$WH.cO(g_gatheredcurrencies, {
|
|
getIcon: function(id, side)
|
|
{
|
|
if (g_gatheredcurrencies[id] != null && g_gatheredcurrencies[id].icon)
|
|
{
|
|
if ($WH.is_array(g_gatheredcurrencies[id].icon) && !isNaN(side))
|
|
return g_gatheredcurrencies[id].icon[side];
|
|
return g_gatheredcurrencies[id].icon;
|
|
}
|
|
else
|
|
return 'inv_misc_questionmark';
|
|
},
|
|
createIcon: function(id, size, num, qty)
|
|
{
|
|
return Icon.create(g_gatheredcurrencies.getIcon(id, (num > 0 ? 0 : 1)), size, null, null, Math.abs(num), qty);
|
|
}
|
|
});
|
|
|
|
// Holidays
|
|
$WH.cO(g_holidays, {
|
|
getIcon: function(id)
|
|
{
|
|
if (g_holidays[id] != null && g_holidays[id].icon)
|
|
return g_holidays[id].icon;
|
|
else
|
|
return 'inv_misc_questionmark';
|
|
},
|
|
createIcon: function(id, size, num, qty)
|
|
{
|
|
return Icon.create(g_holidays.getIcon(id), size, null, '?event=' + id, num, qty);
|
|
}
|
|
});
|
|
|
|
// TODO: Move to g_items
|
|
function g_getIngameLink(color, id, name)
|
|
{
|
|
//prompt(LANG.prompt_ingamelink, '/script DEFAULT_CHAT_FRAME:AddMessage("\\124c' + color + '\\124H' + id + '\\124h[' + name + ']\\124h\\124r");');
|
|
return '/script DEFAULT_CHAT_FRAME:AddMessage("\\124c' + color + '\\124H' + id + '\\124h[' + name + ']\\124h\\124r");';
|
|
}
|