mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
Setup/Data
* move custom data from setup scripts to DB * move strings from DB to locale files * use common function to calculate coordinates of dungeon entrances instead of inline sql * fixed manual data zones and itemset * fixed typos across the board
This commit is contained in:
@@ -210,6 +210,75 @@ class Game
|
||||
return $pages;
|
||||
}
|
||||
|
||||
|
||||
/*********************/
|
||||
/* World Pos. Checks */
|
||||
/*********************/
|
||||
|
||||
private static $alphaMapCache = [];
|
||||
|
||||
private static function alphaMapCheck(int $areaId, array &$set) : bool
|
||||
{
|
||||
$file = 'setup/generated/alphaMaps/'.$areaId.'.png';
|
||||
if (!file_exists($file)) // file does not exist (probably instanced area)
|
||||
return false;
|
||||
|
||||
// invalid and corner cases (literally)
|
||||
if (!is_array($set) || empty($set['posX']) || empty($set['posY']) || $set['posX'] >= 100 || $set['posY'] >= 100)
|
||||
{
|
||||
$set = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (empty(self::$alphaMapCache[$areaId]))
|
||||
self::$alphaMapCache[$areaId] = imagecreatefrompng($file);
|
||||
|
||||
// alphaMaps are 1000 x 1000, adapt points [black => valid point]
|
||||
if (!imagecolorat(self::$alphaMapCache[$areaId], $set['posX'] * 10, $set['posY'] * 10))
|
||||
$set = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static function checkCoords(array $points) : array
|
||||
{
|
||||
$result = [];
|
||||
$capitals = array( // capitals take precedence over their surroundings
|
||||
1497, 1637, 1638, 3487, // Undercity, Ogrimmar, Thunder Bluff, Silvermoon City
|
||||
1519, 1537, 1657, 3557, // Stormwind City, Ironforge, Darnassus, The Exodar
|
||||
3703, 4395 // Shattrath City, Dalaran
|
||||
);
|
||||
|
||||
foreach ($points as $res)
|
||||
{
|
||||
if (self::alphaMapCheck($res['areaId'], $res))
|
||||
{
|
||||
if (!$res)
|
||||
continue;
|
||||
|
||||
// some rough measure how central the spawn is on the map (the lower the number, the better)
|
||||
// 0: perfect center; 1: touches a border
|
||||
$q = abs( (($res['posX'] - 50) / 50) * (($res['posY'] - 50) / 50) );
|
||||
|
||||
if (empty($result) || $result[0] > $q)
|
||||
$result = [$q, $res];
|
||||
}
|
||||
else if (in_array($res['areaId'], $capitals)) // capitals (auto-discovered) and no hand-made alphaMap available
|
||||
return $res;
|
||||
else if (empty($result)) // add with lowest quality if alpha map is missing
|
||||
$result = [1.0, $res];
|
||||
}
|
||||
|
||||
// spawn does not really match on a map, but we need at least one result
|
||||
if (!$result)
|
||||
{
|
||||
usort($points, function ($a, $b) { return ($a['dist'] < $b['dist']) ? -1 : 1; });
|
||||
$result = [1.0, $points[0]];
|
||||
}
|
||||
|
||||
return $result[1];
|
||||
}
|
||||
|
||||
public static function getWorldPosForGUID(int $type, int ...$guids) : array
|
||||
{
|
||||
$result = [];
|
||||
|
||||
@@ -130,7 +130,7 @@ function loadConfig(bool $noPHP = false) : void
|
||||
|
||||
if ($php)
|
||||
ini_set(strtolower($k), $val);
|
||||
else
|
||||
else if (!defined('CFG_'.strtoupper($k)))
|
||||
define('CFG_'.strtoupper($k), $val);
|
||||
}
|
||||
}
|
||||
@@ -162,6 +162,8 @@ set_error_handler(function($errNo, $errStr, $errFile, $errLine)
|
||||
$errName = 'E_RECOVERABLE_ERROR';
|
||||
|
||||
Util::addNote($uGroup, $errName.' - '.$errStr.' @ '.$errFile. ':'.$errLine);
|
||||
if (CLI)
|
||||
CLI::write($errName.' - '.$errStr.' @ '.$errFile. ':'.$errLine, $errNo & 0x40A ? CLI::LOG_WARN : CLI::LOG_ERROR);
|
||||
|
||||
if (DB::isConnectable(DB_AOWOW))
|
||||
DB::Aowow()->query('INSERT INTO ?_errors (`date`, `version`, `phpError`, `file`, `line`, `query`, `userGroups`, `message`) VALUES (UNIX_TIMESTAMP(), ?d, ?d, ?, ?d, ?, ?d, ?) ON DUPLICATE KEY UPDATE `date` = UNIX_TIMESTAMP()',
|
||||
|
||||
@@ -112,7 +112,6 @@ class Profiler
|
||||
if ($queuePID && $queuePID != $pid)
|
||||
{
|
||||
trigger_error('pSync - another queue with PID #'.$queuePID.' is already running', E_USER_ERROR);
|
||||
CLI::write('Profiler::queueLock() - another queue with PID #'.$queuePID.' is already runnung', CLI::LOG_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -269,7 +269,7 @@ class SmartAI
|
||||
foreach ($smartScripts as $s)
|
||||
{
|
||||
if ($s['action_type'] == SAI_ACTION_SPAWN_SPAWNGROUP)
|
||||
$moreInfo[SAI_ACTION_SPAWN_SPAWNGROUP][] = $s['action_param'.$i];
|
||||
$moreInfo[SAI_ACTION_SPAWN_SPAWNGROUP][] = $s['action_param1'];
|
||||
else if (in_array($s['action_type'], array_keys($lookup)))
|
||||
{
|
||||
foreach ($lookup[$s['action_type']] as $p)
|
||||
@@ -952,7 +952,7 @@ class SmartAI
|
||||
$footer = Util::formatTime($e['param'][3], true);
|
||||
break;
|
||||
case SAI_EVENT_EVENT_PHASE_CHANGE: // 66 - On event phase mask set
|
||||
$e['param'][10] = Lang::concat(Util::mask2bits($a['param'][0]), false);
|
||||
$e['param'][10] = Lang::concat(Util::mask2bits($e['param'][0]), false);
|
||||
break;
|
||||
default:
|
||||
$body = '[span class=q10]Unhandled Event[/span] #'.$e['type'];
|
||||
@@ -1532,7 +1532,7 @@ class SmartAI
|
||||
continue;
|
||||
|
||||
$this->jsGlobals[TYPE_ITEM][] = $i;
|
||||
$buff[] = '[item='.$_.']';
|
||||
$buff[] = '[item='.$i.']';
|
||||
}
|
||||
}
|
||||
else if (!$a['param'][1])
|
||||
|
||||
@@ -115,9 +115,6 @@ class TitleList extends BaseType
|
||||
if (!empty($sources[12]))
|
||||
$sources[12] = (new AchievementList(array(['id', $sources[12]])))->getSourceData();
|
||||
|
||||
if (!empty($sources[13]))
|
||||
$sources[13] = DB::Aowow()->SELECT('SELECT *, Id AS ARRAY_KEY FROM ?_sourcestrings WHERE Id IN (?a)', $sources[13]);
|
||||
|
||||
foreach ($this->sources as $Id => $src)
|
||||
{
|
||||
$tmp = [];
|
||||
@@ -148,7 +145,7 @@ class TitleList extends BaseType
|
||||
|
||||
// other source (only one item possible, so no iteration needed)
|
||||
if (isset($src[13]))
|
||||
$tmp[13] = [Util::localizedString($sources[13][$this->sources[$Id][13][0]], 'source')];
|
||||
$tmp[13] = [Lang::game('pvpSources', $this->sources[$Id][13][0])];
|
||||
|
||||
$this->templates[$Id]['source'] = $tmp;
|
||||
}
|
||||
|
||||
@@ -298,6 +298,10 @@ $lang = array(
|
||||
"Gemahlen", "Abgebaut", "Sondiert", "Aus Taschendiebstahl", "Geborgen", "Gehäutet",
|
||||
"In-Game-Store"
|
||||
),
|
||||
'pvpSources' => array(
|
||||
null, "Arenasaison 1", "Arenasaison 2", "Arenasaison 3", "Arenasaison 4",
|
||||
"Arenasaison 5", "Arenasaison 6", "Arenasaison 7", "Arenasaison 8", "2009 Arena-Turnier"
|
||||
),
|
||||
'languages' => array(
|
||||
1 => "Orcisch", 2 => "Darnassisch", 3 => "Taurisch", 6 => "Zwergisch", 7 => "Gemeinsprache", 8 => "Dämonisch",
|
||||
9 => "Titanisch", 10 => "Thalassisch", 11 => "Drachisch", 12 => "Kalimagisch", 13 => "Gnomisch", 14 => "Trollisch",
|
||||
|
||||
@@ -298,6 +298,10 @@ $lang = array(
|
||||
"Milled", "Mined", "Prospected", "Pickpocketed", "Salvaged", "Skinned",
|
||||
"In-Game Store"
|
||||
),
|
||||
'pvpSources' => array(
|
||||
null, "Arena Season 1", "Arena Season 2", "Arena Season 3", "Arena Season 4",
|
||||
"Arena Season 5", "Arena Season 6", "Arena Season 7", "Arena Season 8", "2009 Arena Tournament"
|
||||
),
|
||||
'languages' => array( // Languages.dbc
|
||||
1 => "Orcish", 2 => "Darnassian", 3 => "Taurahe", 6 => "Dwarvish", 7 => "Common", 8 => "Demonic",
|
||||
9 => "Titan", 10 => "Thalassian", 11 => "Draconic", 12 => "Kalimag", 13 => "Gnomish", 14 => "Troll",
|
||||
|
||||
@@ -298,6 +298,10 @@ $lang = array(
|
||||
"Molido", "Minado", "Prospectar", "Robado", "Rescatado", "Despellejado",
|
||||
"Tienda del juego"
|
||||
),
|
||||
'pvpSources' => array(
|
||||
null, "Temporada de arena 1", "Temporada de arena 2", "Temporada de arena 3", "Temporada de arena 4",
|
||||
"Temporada de arena 5", "Temporada de arena 6", "Temporada de arena 7", "Temporada de arena 8", "Torneo de arena 2009"
|
||||
),
|
||||
'languages' => array(
|
||||
1 => "Orco", 2 => "Darnassiano", 3 => "Taurahe", 6 => "Enánico", 7 => "Lengua común", 8 => "Demoníaco",
|
||||
9 => "Titánico", 10 => "Thalassiano", 11 => "Dracónico", 12 => "Kalimag", 13 => "Gnomótico", 14 => "Trol",
|
||||
|
||||
@@ -298,6 +298,10 @@ $lang = array(
|
||||
"Moulu", "Miné", "Prospecté", "Subtilisé (pickpocket)", "Ferraillé", "Dépecé",
|
||||
"Boutique en jeu"
|
||||
),
|
||||
'pvpSources' => array(
|
||||
null, "Saison 1 des combats d'arène", "Saison 2 des combats d'arène", "Saison 3 des combats d'arène", "Saison 4 des combats d'arène",
|
||||
"Saison 5 des combats d'arène", "Saison 6 des combats d'arène", "Saison 7 des combats d'arène", "Saison 8 des combats d'arène", "Tournoi 2009 des combats d'arène"
|
||||
),
|
||||
'languages' => array(
|
||||
1 => "Orc", 2 => "Darnassien", 3 => "Taurahe", 6 => "Nain", 7 => "Commun", 8 => "Démoniaque",
|
||||
9 => "Titan", 10 => "Thalassien", 11 => "Draconique", 12 => "Kalimag", 13 => "Gnome", 14 => "Troll",
|
||||
|
||||
@@ -298,6 +298,10 @@ $lang = array(
|
||||
"[Milled]", "Выкапывается", "Просеивается", "Можно украсть", "Разобрано", "Собирается при снятии шкуры",
|
||||
"Внутриигровой магазин"
|
||||
),
|
||||
'pvpSources' => array(
|
||||
null, "Сезон арены 1", "Сезон арены 2", "Сезон арены 3", "Сезон арены 4",
|
||||
"Сезон арены 5", "Сезон арены 6", "Сезон арены 7", "Сезон арены 8", "Турнир арены 2009"
|
||||
),
|
||||
'languages' => array(
|
||||
1 => "орочий", 2 => "дарнасский", 3 => "таурахэ", 6 => "дворфийский", 7 => "всеобщий", 8 => "язык демонов",
|
||||
9 => "язык титанов", 10 => "талассийский", 11 => "драконий", 12 => "калимаг", 13 => "гномский", 14 => "язык троллей",
|
||||
|
||||
@@ -298,6 +298,10 @@ $lang = array(
|
||||
"取消附魔", "可钓", "已采集", "经研磨", "开采",
|
||||
"已加工", "失窃", "废弃", "已剥皮", "游戏商店"
|
||||
),
|
||||
'pvpSources' => array(
|
||||
null, "Arena Season 1", "Arena Season 2", "Arena Season 3", "Arena Season 4",
|
||||
"Arena Season 5", "Arena Season 6", "Arena Season 7", "Arena Season 8", "2009 Arena Tournament"
|
||||
),
|
||||
'languages' => array(
|
||||
1 => "兽人语", 2 => "达纳苏斯语", 3 => "牛头人语", 6 => "矮人语", 7 => "通用语", 8 => "恶魔语",
|
||||
9 => "泰坦语", 10 => "萨拉斯语", 11 => "龙语", 12 => "卡利姆多语", 13 => "侏儒语", 14 => "巨魔语",
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -59,13 +59,13 @@ switch ($cmd) // we accept only on
|
||||
$dbc = new DBC(trim($n), ['temporary' => false]);
|
||||
if ($dbc->error)
|
||||
{
|
||||
CLI::write('CLISetup::loadDBC() - required DBC '.$name.'.dbc not found!', CLI::LOG_ERROR);
|
||||
CLI::write('CLISetup::loadDBC() - required DBC '.$n.'.dbc not found!', CLI::LOG_ERROR);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!$dbc->readFile())
|
||||
{
|
||||
CLI::write('CLISetup::loadDBC() - DBC '.$name.'.dbc could not be written to DB!', CLI::LOG_ERROR);
|
||||
CLI::write('CLISetup::loadDBC() - DBC '.$n.'.dbc could not be written to DB!', CLI::LOG_ERROR);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -108,6 +108,7 @@ class DBC
|
||||
'scalingstatvalues' => 'xniiiiiiiiiiiiiiiiiiiiii',
|
||||
'skillline' => 'nixsxsssxsxsxxxxxxxxsxsssxsxsxxxxxxxxixxxxxxxxxxxxxxxxxx',
|
||||
'skilllineability' => 'niiiixxixiiixx',
|
||||
'skilllinecategory' => 'nsxsssxsxsxxxxxxxxi',
|
||||
'skillraceclassinfo' => 'niiiiixx',
|
||||
'soundambience' => 'nii',
|
||||
'soundemitters' => 'nffxxxxiix',
|
||||
@@ -212,6 +213,7 @@ class DBC
|
||||
'scalingstatvalues' => 'id,shoulderMultiplier,trinketMultiplier,weaponMultiplier,rangedMultiplier,clothShoulderArmor,leatherShoulderArmor,mailShoulderArmor,plateShoulderArmor,weaponDPS1H,weaponDPS2H,casterDPS1H,casterDPS2H,rangedDPS,wandDPS,spellPower,primBudged,tertBudged,clothCloakArmor,clothChestArmor,leatherChestArmor,mailChestArmor,plateChestArmor',
|
||||
'skillline' => 'id,categoryId,name_loc0,name_loc2,name_loc3,name_loc4,name_loc6,name_loc8,description_loc0,description_loc2,description_loc3,description_loc4,description_loc6,description_loc8,iconId',
|
||||
'skilllineability' => 'id,skillLineId,spellId,reqRaceMask,reqClassMask,reqSkillLevel,acquireMethod,skillLevelGrey,skillLevelYellow',
|
||||
'skilllinecategory' => 'id,name_loc0,name_loc2,name_loc3,name_loc4,name_loc6,name_loc8,index',
|
||||
'skillraceclassinfo' => 'id,skillLine,raceMask,classMask,flags,reqLevel',
|
||||
'soundambience' => 'id,soundIdDay,soundIdNight',
|
||||
'soundemitters' => 'id,posY,posX,soundId,mapId',
|
||||
|
||||
@@ -32,14 +32,27 @@ trait TrDBCcopy
|
||||
trait TrCustomData
|
||||
{
|
||||
// apply post generator custom data
|
||||
public function applyCustomData() : void
|
||||
public function applyCustomData() : bool
|
||||
{
|
||||
if (!$this->customData)
|
||||
return;
|
||||
$ok = true;
|
||||
$this->customData = $this->customData ?? [];
|
||||
if ($cd = DB::Aowow()->selectCol('SELECT `entry` AS ARRAY_KEY, `field` AS ARRAY_KEY2, `value` FROM ?_setup_custom_data WHERE `command` = ?', $this->command))
|
||||
$this->customData += $cd;
|
||||
|
||||
foreach ($this->customData as $id => $data)
|
||||
if ($data)
|
||||
{
|
||||
try
|
||||
{
|
||||
DB::Aowow()->query('UPDATE ?_'.$this->command.' SET ?a WHERE id = ?d', $data, $id);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
trigger_error('Custom Data for entry #'.$id.': '.$e->getMessage(), E_USER_ERROR);
|
||||
$ok = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $ok;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ class SqlGen
|
||||
if ($ssRef->generate($updateIds))
|
||||
{
|
||||
if (method_exists($ssRef, 'applyCustomData'))
|
||||
$ssRef->applyCustomData();
|
||||
return $ssRef->applyCustomData();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'achievement';
|
||||
|
||||
@@ -17,10 +17,6 @@ SqlGen::register(new class extends SetupScript
|
||||
protected $tblDependencyTC = ['dbc_achievement', 'disables'];
|
||||
protected $dbcSourceFiles = ['achievement_category', 'achievement', 'spellicon'];
|
||||
|
||||
private $customData = array(
|
||||
1956 => ['itemExtra' => 44738] // Higher Learning - item rewarded through gossip
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
/**************/
|
||||
|
||||
@@ -9,26 +9,12 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'classes';
|
||||
|
||||
protected $dbcSourceFiles = ['spell', 'charbaseinfo', 'skillraceclassinfo', 'skilllineability', 'chrclasses'];
|
||||
|
||||
// roles (1:heal; 2:mleDPS; 4:rngDPS; 8:tank)
|
||||
private $customData = array(
|
||||
1 => ['roles' => 0xA],
|
||||
2 => ['roles' => 0xB],
|
||||
3 => ['roles' => 0x4],
|
||||
4 => ['roles' => 0x2],
|
||||
5 => ['roles' => 0x5],
|
||||
6 => ['roles' => 0xA],
|
||||
7 => ['roles' => 0x7],
|
||||
8 => ['roles' => 0x4],
|
||||
9 => ['roles' => 0x4],
|
||||
11 => ['roles' => 0xF],
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
$classes = DB::Aowow()->select('SELECT *, id AS ARRAY_KEY FROM dbc_chrclasses');
|
||||
|
||||
@@ -9,7 +9,7 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'currencies';
|
||||
|
||||
@@ -17,17 +17,6 @@ SqlGen::register(new class extends SetupScript
|
||||
protected $tblDependencyTC = ['item_template', 'item_template_locale'];
|
||||
protected $dbcSourceFiles = ['itemdisplayinfo', 'currencytypes'];
|
||||
|
||||
// hide test tokens and move them to unused
|
||||
private $customData = array(
|
||||
1 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||
2 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||
4 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||
22 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||
141 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW, 'category' => 3],
|
||||
103 => ['cap' => 10000], // Arena Points
|
||||
104 => ['cap' => 75000] // Honor Points
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
if (!$ids)
|
||||
|
||||
@@ -9,49 +9,12 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'factions';
|
||||
|
||||
protected $dbcSourceFiles = ['faction', 'factiontemplate'];
|
||||
|
||||
private $customData = array(
|
||||
47 => ['qmNpcIds' => '33310'],
|
||||
68 => ['qmNpcIds' => '33555'],
|
||||
69 => ['qmNpcIds' => '33653'],
|
||||
72 => ['qmNpcIds' => '33307'],
|
||||
76 => ['qmNpcIds' => '33553'],
|
||||
81 => ['qmNpcIds' => '33556'],
|
||||
922 => ['qmNpcIds' => '16528'],
|
||||
930 => ['qmNpcIds' => '33657'],
|
||||
932 => ['qmNpcIds' => '19321'],
|
||||
933 => ['qmNpcIds' => '20242 23007'],
|
||||
935 => ['qmNpcIds' => '21432'],
|
||||
941 => ['qmNpcIds' => '20241'],
|
||||
942 => ['qmNpcIds' => '17904'],
|
||||
946 => ['qmNpcIds' => '17657'],
|
||||
947 => ['qmNpcIds' => '17585'],
|
||||
970 => ['qmNpcIds' => '18382'],
|
||||
978 => ['qmNpcIds' => '20240'],
|
||||
989 => ['qmNpcIds' => '21643'],
|
||||
1011 => ['qmNpcIds' => '21655'],
|
||||
1012 => ['qmNpcIds' => '23159'],
|
||||
1037 => ['qmNpcIds' => '32773 32564'],
|
||||
1038 => ['qmNpcIds' => '23428'],
|
||||
1052 => ['qmNpcIds' => '32774 32565'],
|
||||
1073 => ['qmNpcIds' => '31916 32763'],
|
||||
1090 => ['qmNpcIds' => '32287'],
|
||||
1091 => ['qmNpcIds' => '32533'],
|
||||
1094 => ['qmNpcIds' => '34881'],
|
||||
1105 => ['qmNpcIds' => '31910'],
|
||||
1106 => ['qmNpcIds' => '30431'],
|
||||
1119 => ['qmNpcIds' => '32540'],
|
||||
1124 => ['qmNpcIds' => '34772'],
|
||||
1156 => ['qmNpcIds' => '37687'],
|
||||
1082 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
952 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
$factionQuery = '
|
||||
|
||||
@@ -10,41 +10,12 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'holidays';
|
||||
|
||||
protected $dbcSourceFiles = ['holidays', 'holidaydescriptions', 'holidaynames'];
|
||||
|
||||
private $customData = array(
|
||||
62 => ['iconString' => 'inv_misc_missilelarge_red' ],
|
||||
141 => ['iconString' => 'calendar_winterveilstart', 'achievementCatOrId' => 156 ],
|
||||
181 => ['iconString' => 'calendar_noblegardenstart', 'achievementCatOrId' => 159 ],
|
||||
201 => ['iconString' => 'calendar_childrensweekstart', 'achievementCatOrId' => 163 ],
|
||||
283 => ['iconString' => 'inv_jewelry_necklace_21' ],
|
||||
284 => ['iconString' => 'inv_misc_rune_07' ],
|
||||
285 => ['iconString' => 'inv_jewelry_amulet_07' ],
|
||||
301 => ['iconString' => 'calendar_fishingextravaganzastart' ],
|
||||
321 => ['iconString' => 'calendar_harvestfestivalstart' ],
|
||||
324 => ['iconString' => 'calendar_hallowsendstart', 'bossCreature' => 23682, 'achievementCatOrId' => 158 ],
|
||||
327 => ['iconString' => 'calendar_lunarfestivalstart', 'bossCreature' => 15467, 'achievementCatOrId' => 160 ],
|
||||
335 => ['iconString' => 'calendar_loveintheairstart' ],
|
||||
341 => ['iconString' => 'calendar_midsummerstart', 'bossCreature' => 25740, 'achievementCatOrId' => 161 ],
|
||||
353 => ['iconString' => 'spell_nature_eyeofthestorm' ],
|
||||
372 => ['iconString' => 'calendar_brewfeststart', 'bossCreature' => 23872, 'achievementCatOrId' => 162 ],
|
||||
374 => ['iconString' => 'calendar_darkmoonfaireelwynnstart' ],
|
||||
375 => ['iconString' => 'calendar_darkmoonfairemulgorestart' ],
|
||||
376 => ['iconString' => 'calendar_darkmoonfaireterokkarstart' ],
|
||||
398 => ['iconString' => 'calendar_piratesdaystart', 'achievementCatOrId' => -3457],
|
||||
400 => ['iconString' => 'achievement_bg_winsoa' ],
|
||||
404 => ['iconString' => 'calendar_harvestfestivalstart', 'achievementCatOrId' => 14981],
|
||||
406 => ['iconString' => 'achievement_boss_lichking' ],
|
||||
409 => ['iconString' => 'calendar_dayofthedeadstart', 'achievementCatOrId' => -3456],
|
||||
420 => ['iconString' => 'achievement_bg_winwsg' ],
|
||||
423 => ['iconString' => 'calendar_loveintheairstart', 'bossCreature' => 36296, 'achievementCatOrId' => 187 ],
|
||||
424 => ['iconString' => 'calendar_fishingextravaganzastart' ],
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
$query = '
|
||||
|
||||
@@ -9,7 +9,7 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'items';
|
||||
|
||||
@@ -17,16 +17,6 @@ SqlGen::register(new class extends SetupScript
|
||||
protected $tblDependencyTC = ['item_template', 'item_template_locale', 'spell_group', 'game_event'];
|
||||
protected $dbcSourceFiles = ['gemproperties', 'itemdisplayinfo', 'spell', 'glyphproperties', 'durabilityquality', 'durabilitycosts'];
|
||||
|
||||
private $customData = array(
|
||||
33147 => ['class' => 9, 'subClass' => 8], // one stray enchanting recipe .. with a strange icon
|
||||
7948 => ['itemset' => 221], // v unsure if this should be fixed v
|
||||
7949 => ['itemset' => 221],
|
||||
7950 => ['itemset' => 221],
|
||||
7951 => ['itemset' => 221],
|
||||
7952 => ['itemset' => 221],
|
||||
7953 => ['itemset' => 221]
|
||||
);
|
||||
|
||||
private $skill2cat = array(
|
||||
773 => 11, // inscription
|
||||
356 => 9, // fishing
|
||||
|
||||
@@ -15,18 +15,12 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
|
||||
protected $command = 'itemset';
|
||||
|
||||
protected $tblDependencyAowow = ['spell'];
|
||||
protected $tblDependencyTC = ['item_template', 'game_event'];
|
||||
protected $dbcSourceFiles = ['itemset'];
|
||||
|
||||
private $customData = array(
|
||||
221 => ['item1' => 7948, 'item2' => 7949, 'item3' => 7950, 'item4' => 7951, 'item5' => 7952, 'item6' => 7953]
|
||||
);
|
||||
|
||||
private $setToHoliday = array (
|
||||
761 => 141, // Winterveil
|
||||
762 => 372, // Brewfest
|
||||
|
||||
@@ -9,27 +9,12 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'races';
|
||||
|
||||
protected $dbcSourceFiles = ['chrraces', 'charbaseinfo'];
|
||||
|
||||
private $customData = array(
|
||||
null,
|
||||
['leader' => 29611, 'factionId' => 72, 'startAreaId' => 12],
|
||||
['leader' => 4949, 'factionId' => 76, 'startAreaId' => 14],
|
||||
['leader' => 2784, 'factionId' => 47, 'startAreaId' => 1],
|
||||
['leader' => 7999, 'factionId' => 69, 'startAreaId' => 141],
|
||||
['leader' => 10181, 'factionId' => 68, 'startAreaId' => 85],
|
||||
['leader' => 3057, 'factionId' => 81, 'startAreaId' => 215],
|
||||
['leader' => 7937, 'factionId' => 54, 'startAreaId' => 1],
|
||||
['leader' => 10540, 'factionId' => 530, 'startAreaId' => 14],
|
||||
null,
|
||||
['leader' => 16802, 'factionId' => 911, 'startAreaId' => 3430],
|
||||
['leader' => 17468, 'factionId' => 930, 'startAreaId' => 3524]
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
/**********/
|
||||
|
||||
@@ -9,22 +9,12 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'shapeshiftforms';
|
||||
|
||||
protected $dbcSourceFiles = ['spellshapeshiftform'];
|
||||
|
||||
private $customData = array(
|
||||
1 => ['displayIdH' => 8571],
|
||||
15 => ['displayIdH' => 8571],
|
||||
5 => ['displayIdH' => 2289],
|
||||
8 => ['displayIdH' => 2289],
|
||||
14 => ['displayIdH' => 2289],
|
||||
27 => ['displayIdH' => 21244],
|
||||
29 => ['displayIdH' => 20872]
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
DB::Aowow()->query('
|
||||
|
||||
@@ -9,34 +9,13 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'skillline';
|
||||
|
||||
protected $tblDependencyAowow = ['icons'];
|
||||
protected $dbcSourceFiles = ['skillline', 'spell', 'skilllineability'];
|
||||
|
||||
private $customData = array(
|
||||
393 => ['professionMask' => 0x0000], // Skinning
|
||||
171 => ['professionMask' => 0x0001, 'recipeSubClass' => 6, 'specializations' => '28677 28675 28672'], // Alchemy
|
||||
164 => ['professionMask' => 0x0002, 'recipeSubClass' => 4, 'specializations' => '9788 9787 17041 17040 17039'], // Blacksmithing
|
||||
185 => ['professionMask' => 0x0004, 'recipeSubClass' => 5], // Cooking
|
||||
333 => ['professionMask' => 0x0008, 'recipeSubClass' => 8], // Enchanting
|
||||
202 => ['professionMask' => 0x0010, 'recipeSubClass' => 3, 'specializations' => '20219 20222'], // Engineering
|
||||
129 => ['professionMask' => 0x0020, 'recipeSubClass' => 7], // First Aid
|
||||
755 => ['professionMask' => 0x0040, 'recipeSubClass' => 10], // Jewelcrafting
|
||||
165 => ['professionMask' => 0x0080, 'recipeSubClass' => 1, 'specializations' => '10656 10658 10660'], // Leatherworking
|
||||
186 => ['professionMask' => 0x0100], // Mining
|
||||
197 => ['professionMask' => 0x0200, 'recipeSubClass' => 2, 'specializations' => '26798 26801 26797'], // Tailoring
|
||||
356 => ['professionMask' => 0x0400, 'recipeSubClass' => 9], // Fishing
|
||||
182 => ['professionMask' => 0x0800], // Herbalism
|
||||
773 => ['professionMask' => 0x1000, 'recipeSubClass' => 11], // Inscription
|
||||
785 => ['name_loc0' => 'Pet - Wasp'], // Pet - Wasp
|
||||
781 => ['name_loc2' => 'Familier - diablosaure exotique'], // Pet - Exotic Devilsaur
|
||||
758 => ['name_loc6' => 'Mascota: Evento - Control remoto', 'name_loc3' => 'Tier - Ereignis Ferngesteuert', 'categoryId' => 7], // Pet - Event - Remote Control
|
||||
788 => ['categoryId' => 7], // Pet - Exotic Spirit Beast
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
$baseQuery = '
|
||||
|
||||
@@ -9,7 +9,7 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'sounds';
|
||||
|
||||
@@ -26,10 +26,6 @@ SqlGen::register(new class extends SetupScript
|
||||
'material', 'itemgroupsounds', 'itemdisplayinfo', 'weaponimpactsounds', 'itemsubclass', 'weaponswingsounds2' /*, 'sheathesoundlookups' data is redundant with material..? */
|
||||
);
|
||||
|
||||
private $customData = array(
|
||||
15407 => ['cat' => 10] // UR_Algalon_Summon03 (this is not an item pickup)
|
||||
);
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
/*
|
||||
|
||||
@@ -46,70 +46,6 @@ SqlGen::register(new class extends SetupScript
|
||||
' - assembling waypoints from table waypoint_data', TYPE_NPC]
|
||||
);
|
||||
|
||||
private $alphaMapCache = [];
|
||||
|
||||
private function alphaMapCheck(int $areaId, array &$set) : bool
|
||||
{
|
||||
$file = 'setup/generated/alphaMaps/'.$areaId.'.png';
|
||||
if (!file_exists($file)) // file does not exist (probably instanced area)
|
||||
return false;
|
||||
|
||||
// invalid and corner cases (literally)
|
||||
if (!is_array($set) || empty($set['posX']) || empty($set['posY']) || $set['posX'] >= 100 || $set['posY'] >= 100)
|
||||
{
|
||||
$set = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
if (empty($this->alphaMapCache[$areaId]))
|
||||
$this->alphaMapCache[$areaId] = imagecreatefrompng($file);
|
||||
|
||||
// alphaMaps are 1000 x 1000, adapt points [black => valid point]
|
||||
if (!imagecolorat($this->alphaMapCache[$areaId], $set['posX'] * 10, $set['posY'] * 10))
|
||||
$set = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private function checkCoords(array $points) : array
|
||||
{
|
||||
$result = [];
|
||||
$capitals = array( // capitals take precedence over their surroundings
|
||||
1497, 1637, 1638, 3487, // Undercity, Ogrimmar, Thunder Bluff, Silvermoon City
|
||||
1519, 1537, 1657, 3557, // Stormwind City, Ironforge, Darnassus, The Exodar
|
||||
3703, 4395 // Shattrath City, Dalaran
|
||||
);
|
||||
|
||||
foreach ($points as $res)
|
||||
{
|
||||
if ($this->alphaMapCheck($res['areaId'], $res))
|
||||
{
|
||||
if (!$res)
|
||||
continue;
|
||||
|
||||
// some rough measure how central the spawn is on the map (the lower the number, the better)
|
||||
// 0: perfect center; 1: touches a border
|
||||
$q = abs( (($res['posX'] - 50) / 50) * (($res['posY'] - 50) / 50) );
|
||||
|
||||
if (empty($result) || $result[0] > $q)
|
||||
$result = [$q, $res];
|
||||
}
|
||||
else if (in_array($res['areaId'], $capitals)) // capitals (auto-discovered) and no hand-made alphaMap available
|
||||
return $res;
|
||||
else if (empty($result)) // add with lowest quality if alpha map is missing
|
||||
$result = [1.0, $res];
|
||||
}
|
||||
|
||||
// spawn does not really match on a map, but we need at least one result
|
||||
if (!$result)
|
||||
{
|
||||
usort($points, function ($a, $b) { return ($a['dist'] < $b['dist']) ? -1 : 1; });
|
||||
$result = [1.0, $points[0]];
|
||||
}
|
||||
|
||||
return $result[1];
|
||||
}
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
/*********************/
|
||||
@@ -207,7 +143,7 @@ SqlGen::register(new class extends SetupScript
|
||||
if (in_array($spawn['map'], [564, 580])) // Black Temple and Sunwell floor offset bullshit
|
||||
$points[0]['floor']++;
|
||||
|
||||
$final = $area ? $points[0] : $this->checkCoords($points);
|
||||
$final = $area ? $points[0] : Game::checkCoords($points);
|
||||
}
|
||||
|
||||
if ($idx < 5)
|
||||
|
||||
@@ -9,18 +9,13 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'titles';
|
||||
|
||||
protected $tblDependencyTC = ['quest_template', 'game_event_seasonal_questrelation', 'game_event', 'achievement_reward'];
|
||||
protected $dbcSourceFiles = ['chartitles'];
|
||||
|
||||
private $customData = array(
|
||||
137 => ['gender' => 2],
|
||||
138 => ['gender' => 1]
|
||||
);
|
||||
|
||||
private $titleHoliday = array(
|
||||
137 => 201,
|
||||
138 => 201,
|
||||
|
||||
@@ -9,68 +9,39 @@ if (!CLI)
|
||||
|
||||
SqlGen::register(new class extends SetupScript
|
||||
{
|
||||
use TrCustomData;
|
||||
use TrCustomData; // import custom data from DB
|
||||
|
||||
protected $command = 'zones';
|
||||
|
||||
protected $tblDependencyTC = ['access_requirement'];
|
||||
protected $dbcSourceFiles = ['worldmaptransforms', 'worldmaparea', 'map', 'mapdifficulty', 'areatable', 'lfgdungeons', 'battlemasterlist'];
|
||||
|
||||
private $customData = array(
|
||||
2257 => ['cuFlags' => 0, 'category' => 0, 'type' => 1], // deeprun tram => type: transit
|
||||
3698 => ['expansion' => 1], // arenas
|
||||
3702 => ['expansion' => 1],
|
||||
3968 => ['expansion' => 1],
|
||||
4378 => ['expansion' => 2],
|
||||
4406 => ['expansion' => 2],
|
||||
2597 => ['maxPlayer' => 40], // is 5 in battlemasterlist ... dafuq?
|
||||
4710 => ['maxPlayer' => 40],
|
||||
3456 => ['parentAreaId' => 65, 'parentX' => 87.3, 'parentY' => 51.1], // has no coordinates set in map.dbc
|
||||
// individual Tempest Keep ships
|
||||
3849 => ['parentAreaId' => 3523, 'parentX' => 70.5, 'parentY' => 69.6],
|
||||
3847 => ['parentAreaId' => 3523, 'parentX' => 71.7, 'parentY' => 55.1],
|
||||
3848 => ['parentAreaId' => 3523, 'parentX' => 74.3, 'parentY' => 57.8],
|
||||
3845 => ['parentAreaId' => 3523, 'parentX' => 73.5, 'parentY' => 63.7],
|
||||
// individual Icecrown Citadel wings
|
||||
4893 => ['parentAreaId' => 4812, 'cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
4894 => ['parentAreaId' => 4812, 'cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
4895 => ['parentAreaId' => 4812, 'cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
4896 => ['parentAreaId' => 4812, 'cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
4897 => ['parentAreaId' => 4812, 'cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
// uncaught unused zones
|
||||
207 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
208 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
616 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW],
|
||||
1417 => ['cuFlags' => CUSTOM_EXCLUDE_FOR_LISTVIEW]
|
||||
);
|
||||
protected $dbcSourceFiles = ['worldmaptransforms', 'worldmaparea', 'map', 'mapdifficulty', 'areatable', 'lfgdungeons', 'battlemasterlist', 'dungeonmap'];
|
||||
|
||||
public function generate(array $ids = []) : bool
|
||||
{
|
||||
// base query
|
||||
DB::Aowow()->query('
|
||||
REPLACE INTO ?_zones
|
||||
SELECT
|
||||
$baseData = DB::Aowow()->query('SELECT
|
||||
a.id,
|
||||
IFNULL(wmt.targetMapId, m.id), -- map
|
||||
m.id, -- mapBak
|
||||
a.areaTable, -- parentArea
|
||||
IFNULL(wmt.targetMapId, -- g_zone_categories
|
||||
IFNULL(wmt.targetMapId, m.id) AS map,
|
||||
m.id AS mapBak,
|
||||
a.areaTable AS parentArea,
|
||||
IFNULL(wmt.targetMapId,
|
||||
IF(m.areaType = 1, 2,
|
||||
IF(m.areaType = 2, 3,
|
||||
IF(m.areaType = 4, 9,
|
||||
IF(m.isBG = 1, 6,
|
||||
IF(m.id = 609, 1,
|
||||
IF(m.id = 571, 10,
|
||||
IF(m.id = 530, 8, m.id)))))))),
|
||||
IF(m.id = 571, 10,
|
||||
IF(m.id = 530, 8, m.id))))))) AS category,
|
||||
a.flags,
|
||||
IF(areaTable <> 0 OR -- cuFlags
|
||||
(wma.id IS NULL AND pa.areaId IS NULL AND (flags & 0x11000) = 0), ?d, 0),
|
||||
IF(a.mapId IN (13, 25, 37, 42, 169) OR
|
||||
(a.mapId IN (0, 1, 530, 571) AND wma.id IS NULL) OR
|
||||
a.areaTable <> 0 OR
|
||||
(a.soundAmbience = 0 AND a.mapId IN (0, 1, 530, 571)), ?d, 0) AS cuFlags,
|
||||
IF(a.flags & 0x01000000, 5, -- g_zone_territories
|
||||
IF(m.isBG = 1, 4,
|
||||
IF(m.areaType = 4, 4,
|
||||
IF(a.flags & 0x00000800, 3,
|
||||
IF(a.factionGroupMask = 6, 2,
|
||||
IF(a.factionGroupMask > 0, LOG2(a.factionGroupMask) - 1, 2)))))),
|
||||
IF(a.factionGroupMask > 0, LOG2(a.factionGroupMask) - 1, 2)))))) AS faction,
|
||||
m.expansion,
|
||||
IF(m.areaType = 0, 0, -- g_zone_instancetypes
|
||||
IF(m.isBG = 1, 4,
|
||||
@@ -78,27 +49,27 @@ SqlGen::register(new class extends SetupScript
|
||||
IF(md.modeMask & 0xC, 8,
|
||||
IF(md.minPl = 10 AND md.maxPL = 25, 7,
|
||||
IF(m.areaType = 2, 3,
|
||||
IF(m.areaType = 1 AND md.modeMask & 0x2, 5, 2))))))),
|
||||
IF(m.areaType = 1 AND md.modeMask & 0x2, 5, 2))))))) AS `type`,
|
||||
IF (md.minPl = 10 AND md.maxPl = 25, -2,
|
||||
IFNULL(bm.maxPlayers, IFNULL(md.maxPl, m.maxPlayers))),
|
||||
0, -- itemLevelN
|
||||
0, -- itemLevelH
|
||||
0, -- levelReq
|
||||
IFNULL(lfgIni.levelLFG, 0), -- levelReqLFG
|
||||
0, -- levelHeroic
|
||||
IF(a.flags & 0x8, 1, -- levelMin
|
||||
IFNULL(bm.maxPlayers, IFNULL(md.maxPl, m.maxPlayers))) AS maxPlayer,
|
||||
0 AS `itemLevelN`, --
|
||||
0 AS `itemLevelH`,
|
||||
0 AS `levelReq`,
|
||||
IFNULL(lfgIni.levelLFG, 0) AS `levelReqLFG`,
|
||||
0 AS `levelHeroic`,
|
||||
IF(a.flags & 0x8, 1,
|
||||
IFNULL(bm.minLevel,
|
||||
IFNULL(lfgIni.levelMin,
|
||||
IFNULL(lfgOpen.levelMin, 0)))),
|
||||
IF(a.flags & 0x8, ?d, -- levelMax
|
||||
IFNULL(lfgOpen.levelMin, 0)))) AS `levelMin`,
|
||||
IF(a.flags & 0x8, ?d,
|
||||
IFNULL(bm.maxLevel,
|
||||
IFNULL(lfgIni.levelMax,
|
||||
IFNULL(lfgOpen.levelMax, 0)))),
|
||||
"", -- attunements
|
||||
"", -- heroic attunements
|
||||
IFNULL(pa.areaId, 0),
|
||||
IFNULL(pa.posX, 0),
|
||||
IFNULL(pa.posY, 0),
|
||||
IFNULL(lfgOpen.levelMax, 0)))) AS `levelMax`,
|
||||
"" AS `attunementsN`,
|
||||
"" AS `attunementsH`,
|
||||
m.parentMapId, -- IFNULL(pa.areaId, 0),
|
||||
m.parentX, -- IFNULL(pa.posX, 0),
|
||||
m.parentY, -- IFNULL(pa.posY, 0),
|
||||
IF(wma.id IS NULL OR m.areaType = 0 OR a.mapId IN (269, 560) OR a.areaTable, a.name_loc0, m.name_loc0),
|
||||
IF(wma.id IS NULL OR m.areaType = 0 OR a.mapId IN (269, 560) OR a.areaTable, a.name_loc2, m.name_loc2),
|
||||
IF(wma.id IS NULL OR m.areaType = 0 OR a.mapId IN (269, 560) OR a.areaTable, a.name_loc3, m.name_loc3),
|
||||
@@ -114,26 +85,6 @@ SqlGen::register(new class extends SetupScript
|
||||
) md ON md.mapId = m.id
|
||||
LEFT JOIN
|
||||
dbc_lfgdungeons lfgOpen ON a.mapId IN (0, 1, 530, 571) AND a.name_loc0 LIKE CONCAT("%", lfgOpen.name_loc0) AND lfgOpen.type = 4
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
mapId, m.id, `left`, `right`, `top`, `bottom`,
|
||||
IF((abs(((m.parentY - `right`) * 100 / (`left` - `right`)) - 50)) > abs(((m.parentX - `bottom`) * 100 / (`top` - `bottom`)) - 50),
|
||||
(abs(((m.parentY - `right`) * 100 / (`left` - `right`)) - 50)),
|
||||
(abs(((m.parentX - `bottom`) * 100 / (`top` - `bottom`)) - 50))) AS diff,
|
||||
areaId, -- parentArea
|
||||
100 - ROUND((m.parentY - `right`) * 100 / (`left` - `right`), 1) as posX,
|
||||
100 - ROUND((m.parentX - `bottom`) * 100 / (`top` - `bottom`), 1) as posY
|
||||
FROM
|
||||
dbc_worldmaparea wma
|
||||
JOIN
|
||||
dbc_map m ON m.parentMapId = wma.mapid
|
||||
WHERE
|
||||
m.parentMapId IN (0, 1, 530, 571) AND areaId <> 0 AND
|
||||
m.parentY BETWEEN `right` AND `left` AND
|
||||
m.parentX BETWEEN bottom AND top
|
||||
ORDER BY
|
||||
diff ASC
|
||||
) pa ON pa.id = m.id AND m.parentMapId > -1 AND m.parentX <> 0 AND m.parentY <> 0 AND m.parentMapId = pa.mapId AND m.parentY BETWEEN pa.`right` AND pa.`left` AND m.parentX BETWEEN pa.bottom AND pa.top
|
||||
LEFT JOIN (
|
||||
SELECT
|
||||
mapId,
|
||||
@@ -160,10 +111,30 @@ SqlGen::register(new class extends SetupScript
|
||||
wma.right > wmt.minY AND
|
||||
wma.top < wmt.maxX AND
|
||||
wma.bottom > wmt.minX
|
||||
GROUP BY
|
||||
a.id
|
||||
', CUSTOM_EXCLUDE_FOR_LISTVIEW, MAX_LEVEL);
|
||||
|
||||
foreach ($baseData as &$bd)
|
||||
{
|
||||
if (!in_array($bd['parentMapId'], [0, 1, 530, 571]))
|
||||
continue;
|
||||
|
||||
if ($gPos = Game::worldPosToZonePos($bd['parentMapId'], $bd['parentY'], $bd['parentX']))
|
||||
{
|
||||
$pos = Game::checkCoords($gPos);
|
||||
$bd['parentMapId'] = $pos['areaId'] ?? $gPos[0]['areaId'];
|
||||
$bd['parentX'] = $pos['posX'] ?? $gPos[0]['posX'];
|
||||
$bd['parentY'] = $pos['posY'] ?? $gPos[0]['posY'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$bd['parentMapId'] = 0;
|
||||
$bd['parentX'] = 0;
|
||||
$bd['parentY'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
DB::Aowow()->query('REPLACE INTO ?_zones VALUES (?a)', $baseData);
|
||||
|
||||
// get requirements from world.access_requirement
|
||||
$zoneReq = DB::World()->select('
|
||||
SELECT
|
||||
@@ -205,7 +176,7 @@ SqlGen::register(new class extends SetupScript
|
||||
$aN[TYPE_ITEM][] = $_;
|
||||
|
||||
if ($req['reqItemH'] && ($entries = explode(' ', $req['reqItemH'])))
|
||||
if ($entries = array_diff($entries, @(array)$aN[TYPE_ITEM]))
|
||||
if ($entries = array_diff($entries, $aN[TYPE_ITEM] ?? []))
|
||||
foreach ($entries as $_)
|
||||
$aH[TYPE_ITEM][] = $_;
|
||||
|
||||
@@ -214,7 +185,7 @@ SqlGen::register(new class extends SetupScript
|
||||
$aN[TYPE_QUEST][] = $_;
|
||||
|
||||
if ($req['reqQuestH'] && ($entries = explode(' ', $req['reqQuestH'])))
|
||||
if ($entries = array_diff($entries, @(array)$aN[TYPE_QUEST]))
|
||||
if ($entries = array_diff($entries, $aN[TYPE_QUEST] ?? []))
|
||||
foreach ($entries as $_)
|
||||
$aH[TYPE_QUEST][] = $_;
|
||||
|
||||
@@ -223,7 +194,7 @@ SqlGen::register(new class extends SetupScript
|
||||
$aN[TYPE_ACHIEVEMENT][] = $_;
|
||||
|
||||
if ($req['reqAchievementH'] && ($entries = explode(' ', $req['reqAchievementH'])))
|
||||
if ($entries = array_diff($entries, @(array)$aN[TYPE_ACHIEVEMENT]))
|
||||
if ($entries = array_diff($entries, $aN[TYPE_ACHIEVEMENT] ?? []))
|
||||
foreach ($entries as $_)
|
||||
$aH[TYPE_ACHIEVEMENT][] = $_;
|
||||
|
||||
|
||||
263
setup/updates/1645476214_01.sql
Normal file
263
setup/updates/1645476214_01.sql
Normal file
@@ -0,0 +1,263 @@
|
||||
DROP TABLE IF EXISTS `aowow_setup_custom_data`;
|
||||
|
||||
CREATE TABLE `aowow_setup_custom_data` (
|
||||
`command` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
||||
`entry` int NOT NULL DEFAULT '0' COMMENT 'typeId',
|
||||
`field` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
||||
`value` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL,
|
||||
`comment` text COLLATE utf8mb4_general_ci,
|
||||
KEY `aowow_setup_custom_data_command_IDX` (`command`) USING BTREE
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('zones',2257,'cuFlags','0','Deeprun Tram - make visible'),
|
||||
('zones',2257,'category','0','Deeprun Tram - Category: Eastern Kingdoms'),
|
||||
('zones',2257,'type','1','Deeprun Tram - Type: Transit'),
|
||||
('zones',3698,'expansion','1','Nagrand Arena - Addon: BC'),
|
||||
('zones',3702,'expansion','1','Blades Edge Arena - Addon: BC'),
|
||||
('zones',3968,'expansion','1','Ruins of Lordaeron Arena - Addon: BC'),
|
||||
('zones',4378,'expansion','1','Dalaran Arena - Addon: WotLK'),
|
||||
('zones',4406,'expansion','1','Ring of Valor Arena - Addon: WotLK'),
|
||||
('zones',2597,'maxPlayer','40','Alterac Valey - Players: 40 [battlemasterlist.dbc: 5]'),
|
||||
('zones',4710,'maxPlayer','40','Isle of Conquest - Players: 40 [battlemasterlist.dbc: 5]');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('zones',3849,'parentAreaId','3523','The Mechanar - Parent: Netherstorm [not set in map.dbc]'),
|
||||
('zones',3849,'parentX','87.3','The Mechanar - Entrance xPos'),
|
||||
('zones',3849,'parentY','51.1','The Mechanar - Entrance yPos'),
|
||||
('zones',3847,'parentAreaId','3523','The Botanica - Parent: Netherstorm [not set in map.dbc]'),
|
||||
('zones',3847,'parentX','71.7','The Botanica - Entrance xPos'),
|
||||
('zones',3847,'parentY','55.1','The Botanica - Entrance yPos'),
|
||||
('zones',3848,'parentAreaId','3523','The Arcatraz - Parent: Netherstorm [not set in map.dbc]'),
|
||||
('zones',3848,'parentX','74.3','The Arcatraz - Entrance xPos'),
|
||||
('zones',3848,'parentY','57.8','The Arcatraz - Entrance yPos'),
|
||||
('zones',3845,'parentAreaId','3523','Tempest Keep - Parent: Netherstorm [not set in map.dbc]');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('zones',3845,'parentX','73.5','Tempest Keep - Entrance xPos'),
|
||||
('zones',3845,'parentY','63.7','Tempest Keep - Entrance yPos'),
|
||||
('zones',3456,'parentAreaId','65','Naxxramas - Parent: Netherstorm [not set in map.dbc]'),
|
||||
('zones',3456,'parentX','87.3','Naxxramas - Entrance xPos'),
|
||||
('zones',3456,'parentY','87.3','Naxxramas - Entrance yPos'),
|
||||
('zones',4893,'parentAreaId','4812','The Frost Queen''s Lair - Parent: Icecrown Citadel'),
|
||||
('zones',4894,'parentAreaId','4812','Putricide''s Laboratory [..] - Parent: Icecrown Citadel'),
|
||||
('zones',4895,'parentAreaId','4812','The Crimson Hall - Parent: Icecrown Citadel'),
|
||||
('zones',4896,'parentAreaId','4812','The Frozen Throne - Parent: Icecrown Citadel'),
|
||||
('zones',4897,'parentAreaId','4812','The Sanctum of Blood - Parent: Icecrown Citadel');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('zones',4893,'cuFlags','1073741824','The Frost Queen''s Lair - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('zones',4894,'cuFlags','1073741824','Putricide''s Laboratory [..] - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('achievement',1956,'itemExtra','44738','Higher Learning - item rewarded through gossip'),
|
||||
('zones',4895,'cuFlags','1073741824','The Crimson Hall - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('titles',137,'gender','2','Matron - female'),
|
||||
('zones',4896,'cuFlags','1073741824','The Frozen Throne - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('zones',4897,'cuFlags','1073741824','The Sanctum of Blood - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('zones',4076,'cuFlags','1073741824','Reuse Me 7 - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('zones',207,'cuFlags','1073741824','The Great Sea - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('zones',208,'cuFlags','1073741824','Unused Ironcladcove - set: CUSTOM_EXCLUDE_FOR_LISTVIEW');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('zones',2817,'levelMin','74','Crystalsong Forest - missing lfgDungeons entry'),
|
||||
('zones',1477,'cuFlags','1073741824','The Temple of Atal''Hakkar - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('zones',41,'levelMin','50','Deadwind Pass - missing lfgDungeons entry'),
|
||||
('zones',41,'levelMax','60','Deadwind Pass - missing lfgDungeons entry'),
|
||||
('zones',2257,'levelMin','1','Deeprun Tram - missing lfgDungeons entry'),
|
||||
('zones',2257,'levelMax','80','Deeprun Tram - missing lfgDungeons entry'),
|
||||
('zones',4298,'category','0','Plaguelands: The Scarlet Enclave - Parent: Eastern Kingdoms'),
|
||||
('zones',4298,'levelMin','55','Plaguelands: The Scarlet Enclave - missing lfgDungeons entry'),
|
||||
('zones',4298,'levelMax','58','Plaguelands: The Scarlet Enclave - missing lfgDungeons entry'),
|
||||
('zones',493,'levelMin','15','Moonglade - missing lfgDungeons entry');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('zones',493,'levelMax','60','Moonglade - missing lfgDungeons entry'),
|
||||
('zones',2817,'levelMax','76','Crystalsong Forest - missing lfgDungeons entry'),
|
||||
('zones',4742,'levelMin','77','Hrothgar''s Landing - missing lfgDungeons entry'),
|
||||
('zones',4742,'levelMax','80','Hrothgar''s Landing - missing lfgDungeons entry'),
|
||||
('classes',8,'roles','4','Mage - rngDPS'),
|
||||
('classes',2,'roles','11','Paladin - mleDPS + Tank + Heal'),
|
||||
('classes',3,'roles','4','Hunter - rngDPS'),
|
||||
('classes',4,'roles','2','Rogue - mleDPS'),
|
||||
('classes',5,'roles','5','Priest - rngDPS + Heal'),
|
||||
('classes',6,'roles','10','Death Knight - mleDPS + Tank');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('classes',7,'roles','7','Shaman - mleDPS + rngDPS + Heal'),
|
||||
('classes',8,'roles','4','Mage - rngDPS'),
|
||||
('classes',8,'roles','4','Mage - rngDPS'),
|
||||
('classes',8,'roles','4','Mage - rngDPS'),
|
||||
('currencies',103,'cap','10000','Arena Points - cap'),
|
||||
('currencies',104,'cap','75000','Honor Points - cap'),
|
||||
('currencies',1,'cuFlags','1073741824','Currency Token Test Token 1 - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('currencies',2,'cuFlags','1073741824','Currency Token Test Token 2 - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('currencies',4,'cuFlags','1073741824','Currency Token Test Token 3 - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('currencies',22,'cuFlags','1073741824','Birmingham Test Item 3 - set: CUSTOM_EXCLUDE_FOR_LISTVIEW');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('currencies',141,'cuFlags','1073741824','zzzOLDDaily Quest Faction Token - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('currencies',1,'category','3','Currency Token Test Token 1 - category: unused'),
|
||||
('currencies',2,'category','3','Currency Token Test Token 2 - category: unused'),
|
||||
('currencies',4,'category','3','Currency Token Test Token 3 - category: unused'),
|
||||
('currencies',22,'category','3','Birmingham Test Item 3 - category: unused'),
|
||||
('currencies',141,'category','3','zzzOLDDaily Quest Faction Token - category: unused'),
|
||||
('factions',68,'qmNpcIds','33555','Undercity - set Quartermaster'),
|
||||
('factions',47,'qmNpcIds','33310','Ironforge - set Quartermaster'),
|
||||
('factions',69,'qmNpcIds','33653','Darnassus - set Quartermaster'),
|
||||
('factions',72,'qmNpcIds','33307','Stormwind - set Quartermaster');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('factions',76,'qmNpcIds','33553','Orgrimmar - set Quartermaster'),
|
||||
('factions',81,'qmNpcIds','33556','Thunder Bluff - set Quartermaster'),
|
||||
('factions',922,'qmNpcIds','16528','Tranquillien - set Quartermaster'),
|
||||
('factions',930,'qmNpcIds','33657','Exodar - set Quartermaster'),
|
||||
('factions',932,'qmNpcIds','19321','The Aldor - set Quartermaster'),
|
||||
('factions',933,'qmNpcIds','20242 23007','The Consortium - set Quartermaster'),
|
||||
('factions',935,'qmNpcIds','21432','The Sha''tar - set Quartermaster'),
|
||||
('factions',941,'qmNpcIds','20241','The Mag''har - set Quartermaster'),
|
||||
('factions',942,'qmNpcIds','17904','Cenarion Expedition - set Quartermaster'),
|
||||
('factions',946,'qmNpcIds','17657','Honor Hold - set Quartermaster');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('factions',947,'qmNpcIds','17585','Thrallmar - set Quartermaster'),
|
||||
('factions',970,'qmNpcIds','18382','Sporeggar - set Quartermaster'),
|
||||
('factions',978,'qmNpcIds','20240','Kurenai - set Quartermaster'),
|
||||
('factions',989,'qmNpcIds','21643','Keepers of Time - set Quartermaster'),
|
||||
('factions',1011,'qmNpcIds','21655','Lower City - set Quartermaster'),
|
||||
('factions',1012,'qmNpcIds','23159','Ashtongue Deathsworn - set Quartermaster'),
|
||||
('factions',1037,'qmNpcIds','32773 32564','Alliance Vanguard - set Quartermaster'),
|
||||
('factions',1038,'qmNpcIds','23428','Ogri''la - set Quartermaster'),
|
||||
('factions',1052,'qmNpcIds','32774 32565','Horde Expedition - set Quartermaster'),
|
||||
('factions',1073,'qmNpcIds','31916 32763','The Kalu''ak - set Quartermaster');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('factions',1090,'qmNpcIds','32287','Kirin Tor - set Quartermaster'),
|
||||
('factions',1091,'qmNpcIds','32533','The Wyrmrest Accord - set Quartermaster'),
|
||||
('factions',1094,'qmNpcIds','34881','The Silver Covenant - set Quartermaster'),
|
||||
('factions',1105,'qmNpcIds','31910','The Oracles - set Quartermaster'),
|
||||
('factions',1106,'qmNpcIds','30431','Argent Crusade - set Quartermaster'),
|
||||
('factions',1119,'qmNpcIds','32540','The Sons of Hodir - set Quartermaster'),
|
||||
('factions',1124,'qmNpcIds','34772','The Sunreavers - set Quartermaster'),
|
||||
('factions',1156,'qmNpcIds','37687','The Ashen Verdict - set Quartermaster'),
|
||||
('factions',1082,'cuFlags','1073741824','REUSE - set: CUSTOM_EXCLUDE_FOR_LISTVIEW'),
|
||||
('factions',952,'cuFlags','1073741824','Test Faction 3 - set: CUSTOM_EXCLUDE_FOR_LISTVIEW');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('titles',138,'gender','1','Patron - male'),
|
||||
('sounds',15407,'cat','10','UR_Algalon_Summon03 - is not an item pickup'),
|
||||
('shapeshiftforms',1,'displayIdH','8571','Cat Form - spellshapeshiftform.dbc missing displayId'),
|
||||
('shapeshiftforms',15,'displayIdH','8571','Creature - Cat - spellshapeshiftform.dbc missing displayId'),
|
||||
('shapeshiftforms',5,'displayIdH','2289','Bear Form - spellshapeshiftform.dbc missing displayId'),
|
||||
('shapeshiftforms',8,'displayIdH','2289','Dire Bear Form - spellshapeshiftform.dbc missing displayId'),
|
||||
('shapeshiftforms',14,'displayIdH','2289','Creature - Bear - spellshapeshiftform.dbc missing displayId'),
|
||||
('shapeshiftforms',27,'displayIdH','21244','Flight Form, Epic - spellshapeshiftform.dbc missing displayId'),
|
||||
('shapeshiftforms',29,'displayIdH','20872','Flight Form - spellshapeshiftform.dbc missing displayId'),
|
||||
('races',1,'leader','29611','Human - King Varian Wrynn');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('races',1,'factionId','72','Human - Stormwind'),
|
||||
('races',1,'startAreaId','12','Human - Elwynn Forest'),
|
||||
('races',2,'leader','4949','Orc - Thrall'),
|
||||
('races',2,'factionId','76','Orc - Orgrimmar'),
|
||||
('races',2,'startAreaId','14','Orc - Durotar'),
|
||||
('races',3,'leader','2784','Dwarf - King Magni Bronzebeard'),
|
||||
('races',3,'factionId','47','Dwarf - Ironforge'),
|
||||
('races',3,'startAreaId','1','Dwarf - Dun Morogh'),
|
||||
('races',4,'leader','7999','Night Elf - Tyrande Whisperwind'),
|
||||
('races',4,'factionId','69','Night Elf - Darnassus');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('races',4,'startAreaId','141','Night Elf - Teldrassil'),
|
||||
('races',5,'leader','10181','Undead - Lady Sylvanas Windrunner'),
|
||||
('races',5,'factionId','68','Undead - Undercity'),
|
||||
('races',5,'startAreaId','85','Undead - Tirisfal Glades'),
|
||||
('races',6,'leader','3057','Tauren - Cairne Bloodhoof'),
|
||||
('races',6,'factionId','81','Tauren - Thunder Bluff'),
|
||||
('races',6,'startAreaId','215','Tauren - Mulgore'),
|
||||
('races',7,'leader','7937','Gnome - High Tinker Mekkatorque'),
|
||||
('races',7,'factionId','54','Gnome - Gnomeregan Exiles'),
|
||||
('races',7,'startAreaId','1','Gnome - Dun Morogh');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('races',8,'leader','10540','Troll - Vol''jin'),
|
||||
('races',8,'factionId','530','Troll - Darkspear Trolls'),
|
||||
('races',8,'startAreaId','14','Troll - Durotar'),
|
||||
('races',10,'leader','16802','Blood Elf - Lor''themar Theron'),
|
||||
('races',10,'factionId','911','Blood Elf - Silvermoon City'),
|
||||
('races',10,'startAreaId','3430','Blood Elf - Eversong Woods'),
|
||||
('races',11,'leader','17468','Draenei - Prophet Velen'),
|
||||
('races',11,'factionId','930','Draenei - Exodar'),
|
||||
('races',11,'startAreaId','3524','Draenei - Azuremyst Isle'),
|
||||
('holidays',62,'iconString','inv_misc_missilelarge_red','Fireworks Spectacular');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('holidays',141,'iconString','calendar_winterveilstart','Feast of Winter Veil'),
|
||||
('holidays',181,'iconString','calendar_noblegardenstart','Noblegarden'),
|
||||
('holidays',201,'iconString','calendar_childrensweekstart','Children''s Week'),
|
||||
('holidays',283,'iconString','inv_jewelry_necklace_21','Call to Arms: Alterac Valley'),
|
||||
('holidays',284,'iconString','inv_misc_rune_07','Call to Arms: Warsong Gulch'),
|
||||
('holidays',285,'iconString','inv_jewelry_amulet_07','Call to Arms: Arathi Basin'),
|
||||
('holidays',301,'iconString','calendar_fishingextravaganzastart','Stranglethorn Fishing Extravaganza'),
|
||||
('holidays',321,'iconString','calendar_harvestfestivalstart','Harvest Festival'),
|
||||
('holidays',324,'iconString','calendar_hallowsendstart','Hallow''s End'),
|
||||
('holidays',327,'iconString','calendar_lunarfestivalstart','Lunar Festival');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('holidays',335,'iconString','calendar_loveintheairstart','Love is in the Air'),
|
||||
('holidays',341,'iconString','calendar_midsummerstart','Midsummer Fire Festival'),
|
||||
('holidays',353,'iconString','spell_nature_eyeofthestorm','Call to Arms: Eye of the Storm'),
|
||||
('holidays',372,'iconString','calendar_brewfeststart','Brewfest'),
|
||||
('holidays',374,'iconString','calendar_darkmoonfaireelwynnstart','Darkmoon Faire'),
|
||||
('holidays',375,'iconString','calendar_darkmoonfairemulgorestart','Darkmoon Faire'),
|
||||
('holidays',376,'iconString','calendar_darkmoonfaireterokkarstart','Darkmoon Faire'),
|
||||
('holidays',398,'iconString','calendar_piratesdaystart','Pirates'' Day'),
|
||||
('holidays',400,'iconString','achievement_bg_winsoa','Call to Arms: Strand of the Ancients'),
|
||||
('holidays',404,'iconString','calendar_harvestfestivalstart','Pilgrim''s Bounty');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('holidays',406,'iconString','achievement_boss_lichking','Wrath of the Lich King Launch'),
|
||||
('holidays',409,'iconString','calendar_dayofthedeadstart','Day of the Dead'),
|
||||
('holidays',420,'iconString','achievement_bg_winwsg','Call to Arms: Isle of Conquest'),
|
||||
('holidays',423,'iconString','calendar_loveintheairstart','Love is in the Air'),
|
||||
('holidays',424,'iconString','calendar_fishingextravaganzastart','Kalu''ak Fishing Derby'),
|
||||
('holidays',141,'achievementCatOrId','156','Feast of Winter Veil - Category: Feast of Winter Veil'),
|
||||
('holidays',181,'achievementCatOrId','159','Noblegarden - Category: Noblegarden'),
|
||||
('holidays',201,'achievementCatOrId','163','Children''s Week - Category: Children''s Week'),
|
||||
('holidays',324,'achievementCatOrId','158','Hallow''s End - Category: Hallow''s End'),
|
||||
('holidays',327,'achievementCatOrId','160','Lunar Festival - Category: Lunar Festival');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('holidays',341,'achievementCatOrId','161','Midsummer Fire Festival - Category: Midsummer Fire Festival'),
|
||||
('holidays',372,'achievementCatOrId','162','Brewfest - Category: Brewfest'),
|
||||
('holidays',398,'achievementCatOrId','-3457','Pirates'' Day - Achievement: The Captain''s Booty'),
|
||||
('holidays',404,'achievementCatOrId','14981','Pilgrim''s Bounty - Category: Pilgrim''s Bounty'),
|
||||
('holidays',409,'achievementCatOrId','-3456','Day of the Dead - Achievement: Dead Man''s Party'),
|
||||
('holidays',423,'achievementCatOrId','187','Love is in the Air - Category: Love is in the Air'),
|
||||
('holidays',324,'bossCreature','23682','Hallow''s End - Headless Horseman'),
|
||||
('holidays',327,'bossCreature','15467','Lunar Festival - Omen'),
|
||||
('holidays',341,'bossCreature','25740','Midsummer Fire Festival - Ahune'),
|
||||
('holidays',372,'bossCreature','23872','Brewfest - Coren Direbrew');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('holidays',423,'bossCreature','36296','Love is in the Air - Apothecary Hummel'),
|
||||
('skillline',197,'professionMask','512','Tailoring'),
|
||||
('skillline',186,'professionMask','256','Mining'),
|
||||
('skillline',165,'specializations','10656 10658 10660','Leatherworking'),
|
||||
('skillline',165,'recipeSubClass','1','Leatherworking'),
|
||||
('skillline',165,'professionMask','128','Leatherworking'),
|
||||
('skillline',755,'recipeSubClass','10','Jewelcrafting'),
|
||||
('skillline',755,'professionMask','64','Jewelcrafting'),
|
||||
('skillline',129,'recipeSubClass','7','First Aid'),
|
||||
('skillline',129,'professionMask','32','First Aid');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('skillline',202,'specializations','20219 20222','Engineering'),
|
||||
('skillline',202,'recipeSubClass','3','Engineering'),
|
||||
('skillline',202,'professionMask','16','Engineering'),
|
||||
('skillline',333,'recipeSubClass','8','Enchanting'),
|
||||
('skillline',333,'professionMask','8','Enchanting'),
|
||||
('skillline',185,'recipeSubClass','5','Cooking'),
|
||||
('skillline',185,'professionMask','4','Cooking'),
|
||||
('skillline',164,'specializations','9788 9787 17041 17040 17039','Blacksmithing'),
|
||||
('skillline',164,'recipeSubClass','4','Blacksmithing'),
|
||||
('skillline',164,'professionMask','2','Blacksmithing');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('skillline',171,'specializations','28677 28675 28672','Alchemy'),
|
||||
('skillline',171,'recipeSubClass','6','Alchemy'),
|
||||
('skillline',171,'professionMask','1','Alchemy'),
|
||||
('skillline',393,'professionMask','0','Skinning'),
|
||||
('skillline',197,'recipeSubClass','2','Tailoring'),
|
||||
('skillline',197,'specializations','26798 26801 26797','Tailoring'),
|
||||
('skillline',356,'professionMask','1024','Fishing'),
|
||||
('skillline',356,'recipeSubClass','9','Fishing'),
|
||||
('skillline',182,'professionMask','2048','Herbalism'),
|
||||
('skillline',773,'professionMask','4096','Inscription');
|
||||
INSERT INTO aowow_setup_custom_data (command,entry,field,value,comment) VALUES
|
||||
('skillline',773,'recipeSubClass','11','Inscription'),
|
||||
('skillline',785,'name_loc0','Pet - Wasp','Pet - Wasp'),
|
||||
('skillline',781,'name_loc2','Familier - diablosaure exotique','Pet - Exotic Devlisaur'),
|
||||
('skillline',758,'name_loc6','Mascota: Evento - Control remoto','Pet - Event - Remote Control'),
|
||||
('skillline',758,'name_loc3','Tier - Ereignis Ferngesteuert','Pet - Event - Remote Control'),
|
||||
('skillline',758,'categoryId','7','Pet - Event - Remote Control - bring in line with other pets'),
|
||||
('skillline',788,'categoryId','7','Pet - Exotic Spirit Beast - bring in line with other pets'),
|
||||
('item',33147,'class','9','Formula: Enchant Cloak - Subtlety - Class: Recipes'),
|
||||
('item',33147,'subClass','8','Formula: Enchant Cloak - Subtlety - Subclass: Enchanting');
|
||||
1
setup/updates/1645476214_02.sql
Normal file
1
setup/updates/1645476214_02.sql
Normal file
@@ -0,0 +1 @@
|
||||
DROP TABLE IF EXISTS `aowow_sourcestrings`;
|
||||
Reference in New Issue
Block a user