mirror of
https://github.com/Sarjuuk/aowow.git
synced 2025-11-29 15:58:16 +08:00
DB/Structure (thx @Carbenium for the heads up & suggestions)
* adapted structure to TDB 335.59 * dropped questItem[1-6] fields from ?_creature and ?_object (why were they even there) - removed a function-stub from Util (already forgot, what it was supposed to achieve)
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
define('AOWOW_REVISION', 5);
|
define('AOWOW_REVISION', 6);
|
||||||
define('CLI', PHP_SAPI === 'cli');
|
define('CLI', PHP_SAPI === 'cli');
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1541,16 +1541,6 @@ class Util
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function createShowOnMap()
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
quest: "Quest Givers",
|
|
||||||
daily: "Quest Givers (Daily)",
|
|
||||||
alliancequests: "Quest Givers",
|
|
||||||
hordequests: "Quest Givers",
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function getServerConditions($srcType, $srcGroup = null, $srcEntry = null)
|
public static function getServerConditions($srcType, $srcGroup = null, $srcEntry = null)
|
||||||
{
|
{
|
||||||
if (!$srcGroup && !$srcEntry)
|
if (!$srcGroup && !$srcEntry)
|
||||||
|
|||||||
@@ -348,9 +348,9 @@ class ItemPage extends genericPage
|
|||||||
{
|
{
|
||||||
while ($next)
|
while ($next)
|
||||||
{
|
{
|
||||||
if ($row = DB::World()->selectRow('SELECT *, text as Text_loc0 FROM page_text pt LEFT JOIN locales_page_text lpt ON pt.entry = lpt.entry WHERE pt.entry = ?d', $next))
|
if ($row = DB::World()->selectRow('SELECT *, Text as Text_loc0 FROM page_text pt LEFT JOIN locales_page_text lpt ON pt.ID = lpt.entry WHERE pt.ID = ?d', $next))
|
||||||
{
|
{
|
||||||
$next = $row['next_page'];
|
$next = $row['NextPageID'];
|
||||||
$this->pageText[] = Util::parseHtmlText(Util::localizedString($row, 'Text'));
|
$this->pageText[] = Util::parseHtmlText(Util::localizedString($row, 'Text'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -451,14 +451,14 @@ class NpcPage extends GenericPage
|
|||||||
if ($this->subject->getField('npcflag') & NPC_FLAG_TRAINER)
|
if ($this->subject->getField('npcflag') & NPC_FLAG_TRAINER)
|
||||||
{
|
{
|
||||||
$teachQuery = '
|
$teachQuery = '
|
||||||
SELECT IFNULL(t2.spell, t1.spell) AS ARRAY_KEY,
|
SELECT IFNULL(t2.SpellID, t1.SpellID) AS ARRAY_KEY,
|
||||||
IFNULL(t2.spellcost, t1.spellcost) AS cost,
|
IFNULL(t2.MoneyCost, t1.MoneyCost) AS cost,
|
||||||
IFNULL(t2.reqskill, t1.reqskill) AS reqSkillId,
|
IFNULL(t2.ReqSkillLine, t1.ReqSkillLine) AS reqSkillId,
|
||||||
IFNULL(t2.reqskillvalue, t1.reqskillvalue) AS reqSkillValue,
|
IFNULL(t2.ReqSkillRank, t1.ReqSkillRank) AS reqSkillValue,
|
||||||
IFNULL(t2.reqlevel, t1.reqlevel) AS reqLevel
|
IFNULL(t2.ReqLevel, t1.ReqLevel) AS reqLevel
|
||||||
FROM npc_trainer t1
|
FROM npc_trainer t1
|
||||||
LEFT JOIN npc_trainer t2 ON t2.entry = IF(t1.spell < 0, -t1.spell, null)
|
LEFT JOIN npc_trainer t2 ON t2.ID = IF(t1.SpellID < 0, -t1.SpellID, null)
|
||||||
WHERE t1.entry = ?d
|
WHERE t1.ID = ?d
|
||||||
';
|
';
|
||||||
|
|
||||||
if ($tSpells = DB::World()->select($teachQuery, $this->typeId))
|
if ($tSpells = DB::World()->select($teachQuery, $this->typeId))
|
||||||
|
|||||||
@@ -206,9 +206,9 @@ class ObjectPage extends GenericPage
|
|||||||
{
|
{
|
||||||
while ($next)
|
while ($next)
|
||||||
{
|
{
|
||||||
if ($row = DB::World()->selectRow('SELECT *, text as Text_loc0 FROM page_text pt LEFT JOIN locales_page_text lpt ON pt.entry = lpt.entry WHERE pt.entry = ?d', $next))
|
if ($row = DB::World()->selectRow('SELECT *, Text as Text_loc0 FROM page_text pt LEFT JOIN locales_page_text lpt ON pt.ID = lpt.entry WHERE pt.ID = ?d', $next))
|
||||||
{
|
{
|
||||||
$next = $row['next_page'];
|
$next = $row['NextPageID'];
|
||||||
$pageText[] = Util::parseHtmlText(Util::localizedString($row, 'Text'));
|
$pageText[] = Util::parseHtmlText(Util::localizedString($row, 'Text'));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -250,7 +250,7 @@ class SkillPage extends GenericPage
|
|||||||
{
|
{
|
||||||
$list = [];
|
$list = [];
|
||||||
if (!empty(Util::$trainerTemplates[TYPE_SKILL][$this->typeId]))
|
if (!empty(Util::$trainerTemplates[TYPE_SKILL][$this->typeId]))
|
||||||
$list = DB::World()->selectCol('SELECT DISTINCT entry FROM npc_trainer WHERE spell IN (?a) AND entry < 200000', Util::$trainerTemplates[TYPE_SKILL][$this->typeId]);
|
$list = DB::World()->selectCol('SELECT DISTINCT ID FROM npc_trainer WHERE SpellID IN (?a) AND ID < 200000', Util::$trainerTemplates[TYPE_SKILL][$this->typeId]);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$mask = 0;
|
$mask = 0;
|
||||||
@@ -266,10 +266,10 @@ class SkillPage extends GenericPage
|
|||||||
);
|
);
|
||||||
|
|
||||||
$list = $spellIds ? DB::World()->selectCol('
|
$list = $spellIds ? DB::World()->selectCol('
|
||||||
SELECT IF(t1.entry > 200000, t2.entry, t1.entry)
|
SELECT IF(t1.ID > 200000, t2.ID, t1.ID)
|
||||||
FROM npc_trainer t1
|
FROM npc_trainer t1
|
||||||
LEFT JOIN npc_trainer t2 ON t2.spell = -t1.entry
|
LEFT JOIN npc_trainer t2 ON t2.SpellID = -t1.ID
|
||||||
WHERE t1.spell IN (?a)',
|
WHERE t1.SpellID IN (?a)',
|
||||||
$spellIds
|
$spellIds
|
||||||
) : [];
|
) : [];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1010,7 +1010,7 @@ class SpellPage extends GenericPage
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($tt)
|
if ($tt)
|
||||||
$list = DB::World()->selectCol('SELECT DISTINCT entry FROM npc_trainer WHERE spell IN (?a) AND entry < 200000', $tt);
|
$list = DB::World()->selectCol('SELECT DISTINCT ID FROM npc_trainer WHERE SpellID IN (?a) AND ID < 200000', $tt);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$mask = 0;
|
$mask = 0;
|
||||||
@@ -1019,10 +1019,10 @@ class SpellPage extends GenericPage
|
|||||||
$mask |= 1 << $idx;
|
$mask |= 1 << $idx;
|
||||||
|
|
||||||
$list = DB::World()->selectCol('
|
$list = DB::World()->selectCol('
|
||||||
SELECT IF(t1.entry > 200000, t2.entry, t1.entry)
|
SELECT IF(t1.ID > 200000, t2.ID, t1.ID)
|
||||||
FROM npc_trainer t1
|
FROM npc_trainer t1
|
||||||
LEFT JOIN npc_trainer t2 ON t2.spell = -t1.entry
|
LEFT JOIN npc_trainer t2 ON t2.SpellID = -t1.ID
|
||||||
WHERE t1.spell = ?d',
|
WHERE t1.SpellID IN (?a)',
|
||||||
$this->typeId
|
$this->typeId
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -468,12 +468,6 @@ CREATE TABLE `aowow_creature` (
|
|||||||
`armorMin` mediumint(8) unsigned NOT NULL DEFAULT '1',
|
`armorMin` mediumint(8) unsigned NOT NULL DEFAULT '1',
|
||||||
`armorMax` mediumint(8) unsigned NOT NULL DEFAULT '1',
|
`armorMax` mediumint(8) unsigned NOT NULL DEFAULT '1',
|
||||||
`racialLeader` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
`racialLeader` tinyint(3) unsigned NOT NULL DEFAULT '0',
|
||||||
`questItem1` int(10) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem2` int(10) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem3` int(10) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem4` int(10) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem5` int(10) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem6` int(10) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`mechanicImmuneMask` int(10) unsigned NOT NULL DEFAULT '0',
|
`mechanicImmuneMask` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
`flagsExtra` int(10) unsigned NOT NULL DEFAULT '0',
|
`flagsExtra` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
`scriptName` varchar(50) NOT NULL DEFAULT '',
|
`scriptName` varchar(50) NOT NULL DEFAULT '',
|
||||||
@@ -1273,12 +1267,6 @@ CREATE TABLE `aowow_objects` (
|
|||||||
`faction` smallint(5) unsigned NOT NULL DEFAULT '0',
|
`faction` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||||
`flags` int(10) unsigned NOT NULL DEFAULT '0',
|
`flags` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
`cuFlags` int(10) unsigned NOT NULL DEFAULT '0',
|
`cuFlags` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
`questItem1` int(11) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem2` int(11) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem3` int(11) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem4` int(11) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem5` int(11) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`questItem6` int(11) unsigned NOT NULL DEFAULT '0',
|
|
||||||
`lootId` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
`lootId` mediumint(8) unsigned NOT NULL DEFAULT '0',
|
||||||
`lockId` smallint(5) unsigned NOT NULL DEFAULT '0',
|
`lockId` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||||
`reqSkill` smallint(5) unsigned NOT NULL DEFAULT '0',
|
`reqSkill` smallint(5) unsigned NOT NULL DEFAULT '0',
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ class SqlGen
|
|||||||
'creature' => [null, null, null, ['creature_template', 'locales_creature', 'creature_classlevelstats', 'instance_encounters']],
|
'creature' => [null, null, null, ['creature_template', 'locales_creature', 'creature_classlevelstats', 'instance_encounters']],
|
||||||
'currencies' => [null, null, null, ['item_template', 'locales_item']],
|
'currencies' => [null, null, null, ['item_template', 'locales_item']],
|
||||||
'events' => [null, null, null, ['game_event', 'game_event_prerequisite']],
|
'events' => [null, null, null, ['game_event', 'game_event_prerequisite']],
|
||||||
'objects' => [null, null, null, ['gameobject_template', 'locales_gameobject']],
|
'objects' => [null, null, null, ['gameobject_template', 'locales_gameobject', 'gameobject_questitem']],
|
||||||
'pet' => [null, null, null, ['creature_template', 'creature']],
|
'pet' => [null, null, null, ['creature_template', 'creature']],
|
||||||
'quests' => [null, null, null, ['quest_template', 'locales_quest', 'game_event', 'game_event_seasonal_questrelation']],
|
'quests' => [null, null, null, ['quest_template', 'locales_quest', 'game_event', 'game_event_seasonal_questrelation']],
|
||||||
'quests_startend' => [null, null, null, ['creature_queststarter', 'creature_questender', 'game_event_creature_quest', 'gameobject_queststarter', 'gameobject_questender', 'game_event_gameobject_quest', 'item_template']],
|
'quests_startend' => [null, null, null, ['creature_queststarter', 'creature_questender', 'game_event_creature_quest', 'gameobject_queststarter', 'gameobject_questender', 'game_event_gameobject_quest', 'item_template']],
|
||||||
|
|||||||
@@ -72,7 +72,6 @@ function creature(array $ids = [])
|
|||||||
min.basearmor * ct.ArmorModifier AS armorMin,
|
min.basearmor * ct.ArmorModifier AS armorMin,
|
||||||
max.basearmor * ct.ArmorModifier AS armorMax,
|
max.basearmor * ct.ArmorModifier AS armorMax,
|
||||||
RacialLeader,
|
RacialLeader,
|
||||||
questItem1, questItem2, questItem3, questItem4, questItem5, questItem6,
|
|
||||||
mechanic_immune_mask,
|
mechanic_immune_mask,
|
||||||
flags_extra,
|
flags_extra,
|
||||||
ScriptName
|
ScriptName
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ if (!CLI)
|
|||||||
/* deps:
|
/* deps:
|
||||||
* gameobject_template
|
* gameobject_template
|
||||||
* locales_gameobject
|
* locales_gameobject
|
||||||
|
* gameobject_questitem
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -24,8 +25,8 @@ function objects(array $ids = [])
|
|||||||
go.entry,
|
go.entry,
|
||||||
`type`,
|
`type`,
|
||||||
IF(`type` = 2, -2, -- quests 1
|
IF(`type` = 2, -2, -- quests 1
|
||||||
IF(`type` = 8 AND data0 IN (1, 2, 3, 4, 1552), -6, -- tools
|
IF(`type` = 8 AND Data0 IN (1, 2, 3, 4, 1552), -6, -- tools
|
||||||
IF(`type` = 3 AND questitem1 <> 0, -2, -- quests 2
|
IF(`type` = 3 AND IFNULL(gqi.ItemId, 0) <> 0, -2, -- quests 2
|
||||||
IF(`type` IN (3, 9, 25), `type`, 0)))), -- regular chests, books, pools
|
IF(`type` IN (3, 9, 25), `type`, 0)))), -- regular chests, books, pools
|
||||||
0 AS event, -- linked worldevent
|
0 AS event, -- linked worldevent
|
||||||
displayId,
|
displayId,
|
||||||
@@ -33,40 +34,43 @@ function objects(array $ids = [])
|
|||||||
faction,
|
faction,
|
||||||
flags,
|
flags,
|
||||||
0 AS cuFlags, -- custom Flags
|
0 AS cuFlags, -- custom Flags
|
||||||
questItem1, questItem2, questItem3, questItem4, questItem5, questItem6,
|
IF(`type` IN (3, 25), Data1, 0), -- lootId
|
||||||
IF(`type` IN (3, 25), data1, 0), -- lootId
|
IF(`type` IN (2, 3, 6, 10, 13, 24, 26), Data0, IF(`type` IN (0, 1), Data1, 0)), -- lockId
|
||||||
IF(`type` IN (2, 3, 6, 10, 13, 24, 26), data0, IF(`type` IN (0, 1), data1, 0)), -- lockId
|
|
||||||
0 AS reqSkill, -- reqSkill
|
0 AS reqSkill, -- reqSkill
|
||||||
IF(`type` = 9, data0, IF(`type` = 10, data7, 0)), -- pageTextId
|
IF(`type` = 9, Data0, IF(`type` = 10, Data7, 0)), -- pageTextId
|
||||||
IF(`type` = 1, data3, -- linkedTrapIds
|
IF(`type` = 1, Data3, -- linkedTrapIds
|
||||||
IF(`type` = 3, data7,
|
IF(`type` = 3, Data7,
|
||||||
IF(`type` = 10, data12,
|
IF(`type` = 10, Data12,
|
||||||
IF(`type` = 8, data2, 0)))),
|
IF(`type` = 8, Data2, 0)))),
|
||||||
IF(`type` = 5, data5, -- reqQuest
|
IF(`type` = 5, Data5, -- reqQuest
|
||||||
IF(`type` = 3, data8,
|
IF(`type` = 3, Data8,
|
||||||
IF(`type` = 10, data1,
|
IF(`type` = 10, Data1,
|
||||||
IF(`type` = 8, data4, 0)))),
|
IF(`type` = 8, Data4, 0)))),
|
||||||
IF(`type` = 8, data0, 0), -- spellFocusId
|
IF(`type` = 8, Data0, 0), -- spellFocusId
|
||||||
IF(`type` = 10, data10, -- onUseSpell
|
IF(`type` = 10, Data10, -- onUseSpell
|
||||||
IF(`type` IN (18, 24), data1,
|
IF(`type` IN (18, 24), Data1,
|
||||||
IF(`type` = 26, data2,
|
IF(`type` = 26, Data2,
|
||||||
IF(`type` = 22, data0, 0)))),
|
IF(`type` = 22, Data0, 0)))),
|
||||||
IF(`type` = 18, data4, 0), -- onSuccessSpell
|
IF(`type` = 18, Data4, 0), -- onSuccessSpell
|
||||||
IF(`type` = 18, data2, IF(`type` = 24, data3, 0)), -- auraSpell
|
IF(`type` = 18, Data2, IF(`type` = 24, Data3, 0)), -- auraSpell
|
||||||
IF(`type` = 30, data2, IF(`type` = 24, data4, IF(`type` = 6, data3, 0))), -- triggeredSpell
|
IF(`type` = 30, Data2, IF(`type` = 24, Data4, IF(`type` = 6, Data3, 0))), -- triggeredSpell
|
||||||
IF(`type` = 29, CONCAT_WS(" ", data14, data15, data16, data17, data0), -- miscInfo: capturePoint
|
IF(`type` = 29, CONCAT_WS(" ", Data14, Data15, Data16, Data17, Data0), -- miscInfo: capturePoint
|
||||||
IF(`type` = 3, CONCAT_WS(" ", data4, data5, data2), -- miscInfo: loot v
|
IF(`type` = 3, CONCAT_WS(" ", Data4, Data5, Data2), -- miscInfo: loot v
|
||||||
IF(`type` = 25, CONCAT_WS(" ", data2, data3, 0),
|
IF(`type` = 25, CONCAT_WS(" ", Data2, Data3, 0),
|
||||||
IF(`type` = 23, CONCAT_WS(" ", data0, data1, data2), "")))), -- miscInfo: meetingStone
|
IF(`type` = 23, CONCAT_WS(" ", Data0, Data1, Data2), "")))), -- miscInfo: meetingStone
|
||||||
IF(ScriptName <> "", ScriptName, AIName)
|
IF(ScriptName <> "", ScriptName, AIName)
|
||||||
FROM
|
FROM
|
||||||
gameobject_template go
|
gameobject_template go
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
locales_gameobject lgo ON go.entry = lgo.entry
|
locales_gameobject lgo ON go.entry = lgo.entry
|
||||||
|
LEFT JOIN
|
||||||
|
gameobject_questitem gqi ON gqi.GameObjectEntry = go.entry
|
||||||
{
|
{
|
||||||
WHERE
|
WHERE
|
||||||
go.entry IN (?a)
|
go.entry IN (?a)
|
||||||
}
|
}
|
||||||
|
GROUP BY
|
||||||
|
go.entry
|
||||||
LIMIT
|
LIMIT
|
||||||
?d, ?d';
|
?d, ?d';
|
||||||
|
|
||||||
|
|||||||
@@ -23,15 +23,15 @@ function quests(array $ids = [])
|
|||||||
{
|
{
|
||||||
$baseQuery = '
|
$baseQuery = '
|
||||||
SELECT
|
SELECT
|
||||||
q.Id,
|
q.ID,
|
||||||
Method,
|
Method,
|
||||||
Level,
|
QuestLevel,
|
||||||
MinLevel,
|
MinLevel,
|
||||||
MaxLevel,
|
MaxLevel,
|
||||||
ZoneOrSort,
|
QuestSortID,
|
||||||
ZoneOrSort AS zoneOrSortBak, -- ZoneOrSortBak
|
QuestSortID AS zoneOrSortBak, -- ZoneOrSortBak
|
||||||
Type,
|
QuestType,
|
||||||
SuggestedPlayers,
|
SuggestedGroupNum,
|
||||||
LimitTime,
|
LimitTime,
|
||||||
IFNULL(gesqr.eventEntry, 0) AS eventId,
|
IFNULL(gesqr.eventEntry, 0) AS eventId,
|
||||||
PrevQuestId,
|
PrevQuestId,
|
||||||
@@ -41,60 +41,60 @@ function quests(array $ids = [])
|
|||||||
Flags,
|
Flags,
|
||||||
SpecialFlags,
|
SpecialFlags,
|
||||||
0 AS cuFlags, -- cuFlags
|
0 AS cuFlags, -- cuFlags
|
||||||
RequiredClasses, RequiredRaces,
|
RequiredClasses, RequiredRaces,
|
||||||
RequiredSkillId, RequiredSkillPoints,
|
RequiredSkillId, RequiredSkillPoints,
|
||||||
RequiredFactionId1, RequiredFactionId2,
|
RequiredFactionId1, RequiredFactionId2,
|
||||||
RequiredFactionValue1, RequiredFactionValue2,
|
RequiredFactionValue1, RequiredFactionValue2,
|
||||||
RequiredMinRepFaction, RequiredMaxRepFaction,
|
RequiredMinRepFaction, RequiredMaxRepFaction,
|
||||||
RequiredMinRepValue, RequiredMaxRepValue,
|
RequiredMinRepValue, RequiredMaxRepValue,
|
||||||
RequiredPlayerKills,
|
RequiredPlayerKills,
|
||||||
SourceItemId, SourceItemCount,
|
SourceItemId, SourceItemCount,
|
||||||
SourceSpellId,
|
SourceSpellId,
|
||||||
RewardXPId, -- QuestXP.dbc x level
|
RewardXPId, -- QuestXP.dbc x level
|
||||||
RewardOrRequiredMoney,
|
RewardOrRequiredMoney,
|
||||||
RewardMoneyMaxLevel,
|
RewardMoneyMaxLevel,
|
||||||
RewardSpell, RewardSpellCast,
|
RewardSpell, RewardSpellCast,
|
||||||
RewardHonor * 124 * RewardHonorMultiplier, -- alt calculation in QuestDef.cpp -> Quest::CalculateHonorGain(playerLevel)
|
RewardHonor * 124 * RewardHonorMultiplier, -- alt calculation in QuestDef.cpp -> Quest::CalculateHonorGain(playerLevel)
|
||||||
RewardMailTemplateId, RewardMailDelay,
|
RewardMailTemplateId, RewardMailDelay,
|
||||||
RewardTitleId,
|
RewardTitle,
|
||||||
RewardTalents,
|
RewardTalents,
|
||||||
RewardArenaPoints,
|
RewardArenaPoints,
|
||||||
RewardItemId1, RewardItemId2, RewardItemId3, RewardItemId4,
|
RewardItem1, RewardItem2, RewardItem3, RewardItem4,
|
||||||
RewardItemCount1, RewardItemCount2, RewardItemCount3, RewardItemCount4,
|
RewardAmount1, RewardAmount2, RewardAmount3, RewardAmount4,
|
||||||
RewardChoiceItemId1, RewardChoiceItemId2, RewardChoiceItemId3, RewardChoiceItemId4, RewardChoiceItemId5, RewardChoiceItemId6,
|
RewardChoiceItemID1, RewardChoiceItemID2, RewardChoiceItemID3, RewardChoiceItemID4, RewardChoiceItemID5, RewardChoiceItemID6,
|
||||||
RewardChoiceItemCount1, RewardChoiceItemCount2, RewardChoiceItemCount3, RewardChoiceItemCount4, RewardChoiceItemCount5, RewardChoiceItemCount6,
|
RewardChoiceItemQuantity1, RewardChoiceItemQuantity2, RewardChoiceItemQuantity3, RewardChoiceItemQuantity4, RewardChoiceItemQuantity5, RewardChoiceItemQuantity6,
|
||||||
RewardFactionId1, RewardFactionId2, RewardFactionId3, RewardFactionId4, RewardFactionId5,
|
RewardFactionID1, RewardFactionID2, RewardFactionID3, RewardFactionID4, RewardFactionID5,
|
||||||
IF (RewardFactionValueIdOverride1 <> 0, RewardFactionValueIdOverride1 / 100, RewardFactionValueId1),
|
IF (RewardFactionOverride1 <> 0, RewardFactionOverride1 / 100, RewardFactionValue1),
|
||||||
IF (RewardFactionValueIdOverride2 <> 0, RewardFactionValueIdOverride2 / 100, RewardFactionValueId2),
|
IF (RewardFactionOverride2 <> 0, RewardFactionOverride2 / 100, RewardFactionValue2),
|
||||||
IF (RewardFactionValueIdOverride3 <> 0, RewardFactionValueIdOverride3 / 100, RewardFactionValueId3),
|
IF (RewardFactionOverride3 <> 0, RewardFactionOverride3 / 100, RewardFactionValue3),
|
||||||
IF (RewardFactionValueIdOverride4 <> 0, RewardFactionValueIdOverride4 / 100, RewardFactionValueId4),
|
IF (RewardFactionOverride4 <> 0, RewardFactionOverride4 / 100, RewardFactionValue4),
|
||||||
IF (RewardFactionValueIdOverride5 <> 0, RewardFactionValueIdOverride5 / 100, RewardFactionValueId5),
|
IF (RewardFactionOverride5 <> 0, RewardFactionOverride5 / 100, RewardFactionValue5),
|
||||||
Title, Title_loc2, Title_loc3, Title_loc6, Title_loc8,
|
LogTitle, Title_loc2, Title_loc3, Title_loc6, Title_loc8,
|
||||||
Objectives, Objectives_loc2, Objectives_loc3, Objectives_loc6, Objectives_loc8,
|
LogDescription, Objectives_loc2, Objectives_loc3, Objectives_loc6, Objectives_loc8,
|
||||||
Details, Details_loc2, Details_loc3, Details_loc6, Details_loc8,
|
QuestDescription, Details_loc2, Details_loc3, Details_loc6, Details_loc8,
|
||||||
EndText, EndText_loc2, EndText_loc3, EndText_loc6, EndText_loc8,
|
EndText, EndText_loc2, EndText_loc3, EndText_loc6, EndText_loc8,
|
||||||
OfferRewardText, OfferRewardText_loc2, OfferRewardText_loc3, OfferRewardText_loc6, OfferRewardText_loc8,
|
OfferRewardText, OfferRewardText_loc2, OfferRewardText_loc3, OfferRewardText_loc6, OfferRewardText_loc8,
|
||||||
RequestItemsText, RequestItemsText_loc2, RequestItemsText_loc3, RequestItemsText_loc6, RequestItemsText_loc8,
|
RequestItemsText, RequestItemsText_loc2, RequestItemsText_loc3, RequestItemsText_loc6, RequestItemsText_loc8,
|
||||||
CompletedText, CompletedText_loc2, CompletedText_loc3, CompletedText_loc6, CompletedText_loc8,
|
QuestCompletionLog, CompletedText_loc2, CompletedText_loc3, CompletedText_loc6, CompletedText_loc8,
|
||||||
RequiredNpcOrGo1, RequiredNpcOrGo2, RequiredNpcOrGo3, RequiredNpcOrGo4,
|
RequiredNpcOrGo1, RequiredNpcOrGo2, RequiredNpcOrGo3, RequiredNpcOrGo4,
|
||||||
RequiredNpcOrGoCount1, RequiredNpcOrGoCount2, RequiredNpcOrGoCount3, RequiredNpcOrGoCount4,
|
RequiredNpcOrGoCount1, RequiredNpcOrGoCount2, RequiredNpcOrGoCount3, RequiredNpcOrGoCount4,
|
||||||
RequiredSourceItemId1, RequiredSourceItemId2, RequiredSourceItemId3, RequiredSourceItemId4,
|
RequiredSourceItemId1, RequiredSourceItemId2, RequiredSourceItemId3, RequiredSourceItemId4,
|
||||||
RequiredSourceItemCount1,RequiredSourceItemCount2,RequiredSourceItemCount3,RequiredSourceItemCount4,
|
RequiredSourceItemCount1, RequiredSourceItemCount2, RequiredSourceItemCount3, RequiredSourceItemCount4,
|
||||||
RequiredItemId1, RequiredItemId2, RequiredItemId3, RequiredItemId4, RequiredItemId5, RequiredItemId6,
|
RequiredItemId1, RequiredItemId2, RequiredItemId3, RequiredItemId4, RequiredItemId5, RequiredItemId6,
|
||||||
RequiredItemCount1, RequiredItemCount2, RequiredItemCount3, RequiredItemCount4, RequiredItemCount5, RequiredItemCount6,
|
RequiredItemCount1, RequiredItemCount2, RequiredItemCount3, RequiredItemCount4, RequiredItemCount5, RequiredItemCount6,
|
||||||
ObjectiveText1, ObjectiveText1_loc2, ObjectiveText1_loc3, ObjectiveText1_loc6, ObjectiveText1_loc8,
|
ObjectiveText1, ObjectiveText1_loc2, ObjectiveText1_loc3, ObjectiveText1_loc6, ObjectiveText1_loc8,
|
||||||
ObjectiveText2, ObjectiveText2_loc2, ObjectiveText2_loc3, ObjectiveText2_loc6, ObjectiveText2_loc8,
|
ObjectiveText2, ObjectiveText2_loc2, ObjectiveText2_loc3, ObjectiveText2_loc6, ObjectiveText2_loc8,
|
||||||
ObjectiveText3, ObjectiveText3_loc2, ObjectiveText3_loc3, ObjectiveText3_loc6, ObjectiveText3_loc8,
|
ObjectiveText3, ObjectiveText3_loc2, ObjectiveText3_loc3, ObjectiveText3_loc6, ObjectiveText3_loc8,
|
||||||
ObjectiveText4, ObjectiveText4_loc2, ObjectiveText4_loc3, ObjectiveText4_loc6, ObjectiveText4_loc8
|
ObjectiveText4, ObjectiveText4_loc2, ObjectiveText4_loc3, ObjectiveText4_loc6, ObjectiveText4_loc8
|
||||||
FROM
|
FROM
|
||||||
quest_template q
|
quest_template q
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
locales_quest lq ON q.Id = lq.Id
|
locales_quest lq ON q.ID = lq.Id
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
game_event_seasonal_questrelation gesqr ON gesqr.questId = q.Id
|
game_event_seasonal_questrelation gesqr ON gesqr.questId = q.ID
|
||||||
{
|
{
|
||||||
WHERE
|
WHERE
|
||||||
q.Id IN (?a)
|
q.ID IN (?a)
|
||||||
}
|
}
|
||||||
LIMIT
|
LIMIT
|
||||||
?d, ?d';
|
?d, ?d';
|
||||||
@@ -156,7 +156,7 @@ function quests(array $ids = [])
|
|||||||
for ($i = 1; $i < 6; $i++)
|
for ($i = 1; $i < 6; $i++)
|
||||||
DB::Aowow()->query($repQuery, $i, $i, $i, $i, $ids ?: DBSIMPLE_SKIP);
|
DB::Aowow()->query($repQuery, $i, $i, $i, $i, $ids ?: DBSIMPLE_SKIP);
|
||||||
|
|
||||||
// update zoneOrSort .. well .. now "not documenting" bites me in the ass .. ~700 quests were changed, i don't know by what method
|
// update zoneOrSort/QuestSortID .. well .. now "not documenting" bites me in the ass .. ~700 quests were changed, i don't know by what method
|
||||||
$eventSet = DB::World()->selectCol('SELECT holiday AS ARRAY_KEY, eventEntry FROM game_event WHERE holiday <> 0');
|
$eventSet = DB::World()->selectCol('SELECT holiday AS ARRAY_KEY, eventEntry FROM game_event WHERE holiday <> 0');
|
||||||
$holidaySorts = array(
|
$holidaySorts = array(
|
||||||
141 => -1001, 181 => -374, 201 => -1002,
|
141 => -1001, 181 => -374, 201 => -1002,
|
||||||
|
|||||||
@@ -8,32 +8,32 @@ if (!CLI)
|
|||||||
|
|
||||||
|
|
||||||
/* deps:
|
/* deps:
|
||||||
* reference_loot_template
|
* reference_loot_template
|
||||||
* item_loot_template
|
* item_loot_template
|
||||||
* creature_loot_template
|
* creature_loot_template
|
||||||
* gameobject_loot_template
|
* gameobject_loot_template
|
||||||
* mail_loot_template
|
* mail_loot_template
|
||||||
* disenchant_loot_template
|
* disenchant_loot_template
|
||||||
* fishing_loot_template
|
* fishing_loot_template
|
||||||
* skinning_loot_template
|
* skinning_loot_template
|
||||||
* milling_loot_template
|
* milling_loot_template
|
||||||
* prospecting_loot_template
|
* prospecting_loot_template
|
||||||
* pickpocketing_loot_template
|
* pickpocketing_loot_template
|
||||||
|
|
||||||
* item_template
|
* item_template
|
||||||
* creature_template
|
* creature_template
|
||||||
* gameobject_template
|
* gameobject_template
|
||||||
* quest_template
|
* quest_template
|
||||||
|
|
||||||
* npc_trainer
|
* npc_trainer
|
||||||
* npc_vendor
|
* npc_vendor
|
||||||
* game_event_npc_vendor
|
* game_event_npc_vendor
|
||||||
* creature
|
* creature
|
||||||
|
|
||||||
* playercreateinfo_item
|
* playercreateinfo_item
|
||||||
* playercreateinfo_spell
|
* playercreateinfo_spell
|
||||||
* achievement_reward
|
* achievement_reward
|
||||||
* skill_discovery_template
|
* skill_discovery_template
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$customData = array(
|
$customData = array(
|
||||||
@@ -250,11 +250,11 @@ function source(array $ids = [])
|
|||||||
FROM
|
FROM
|
||||||
gameobject_loot_template glt
|
gameobject_loot_template glt
|
||||||
JOIN
|
JOIN
|
||||||
gameobject_template gt ON glt.entry = gt.data1
|
gameobject_template gt ON glt.entry = gt.Data1
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
item_template it ON it.entry = glt.Item AND glt.Reference <= 0
|
item_template it ON it.entry = glt.Item AND glt.Reference <= 0
|
||||||
WHERE
|
WHERE
|
||||||
`type` = 3 AND gt.data1 > 0 AND gt.data0 NOT IN (?a)
|
`type` = 3 AND gt.Data1 > 0 AND gt.Data0 NOT IN (?a)
|
||||||
GROUP BY
|
GROUP BY
|
||||||
ARRAY_KEY',
|
ARRAY_KEY',
|
||||||
$exclLocks
|
$exclLocks
|
||||||
@@ -388,17 +388,17 @@ function source(array $ids = [])
|
|||||||
$spellBuff = [];
|
$spellBuff = [];
|
||||||
$itemBuff = [];
|
$itemBuff = [];
|
||||||
$quests = DB::World()->select(
|
$quests = DB::World()->select(
|
||||||
'SELECT n.item AS ARRAY_KEY, n.Id AS quest, SUM(n.qty) AS qty, BIT_OR(n.side) AS side, it.class, it.subclass, it.spellid_1, it.spelltrigger_1, it.spellid_2, it.spelltrigger_2 FROM (
|
'SELECT n.item AS ARRAY_KEY, n.ID AS quest, SUM(n.qty) AS qty, BIT_OR(n.side) AS side, it.class, it.subclass, it.spellid_1, it.spelltrigger_1, it.spellid_2, it.spelltrigger_2 FROM (
|
||||||
SELECT rewardChoiceItemId1 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardChoiceItemId1 > 0 GROUP BY item UNION
|
SELECT RewardChoiceItemID1 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardChoiceItemID1 > 0 GROUP BY item UNION
|
||||||
SELECT rewardChoiceItemId2 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardChoiceItemId2 > 0 GROUP BY item UNION
|
SELECT RewardChoiceItemID2 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardChoiceItemID2 > 0 GROUP BY item UNION
|
||||||
SELECT rewardChoiceItemId3 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardChoiceItemId3 > 0 GROUP BY item UNION
|
SELECT RewardChoiceItemID3 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardChoiceItemID3 > 0 GROUP BY item UNION
|
||||||
SELECT rewardChoiceItemId4 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardChoiceItemId4 > 0 GROUP BY item UNION
|
SELECT RewardChoiceItemID4 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardChoiceItemID4 > 0 GROUP BY item UNION
|
||||||
SELECT rewardChoiceItemId5 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardChoiceItemId5 > 0 GROUP BY item UNION
|
SELECT RewardChoiceItemID5 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardChoiceItemID5 > 0 GROUP BY item UNION
|
||||||
SELECT rewardChoiceItemId6 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardChoiceItemId6 > 0 GROUP BY item UNION
|
SELECT RewardChoiceItemID6 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardChoiceItemID6 > 0 GROUP BY item UNION
|
||||||
SELECT rewardItemId1 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardItemId1 > 0 GROUP BY item UNION
|
SELECT RewardItem1 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardItem1 > 0 GROUP BY item UNION
|
||||||
SELECT rewardItemId2 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardItemId2 > 0 GROUP BY item UNION
|
SELECT RewardItem2 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardItem2 > 0 GROUP BY item UNION
|
||||||
SELECT rewardItemId3 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardItemId3 > 0 GROUP BY item UNION
|
SELECT RewardItem3 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardItem3 > 0 GROUP BY item UNION
|
||||||
SELECT rewardItemId4 AS item, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE rewardItemId4 > 0 GROUP BY item
|
SELECT RewardItem4 AS item, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE RewardItem4 > 0 GROUP BY item
|
||||||
) n JOIN item_template it ON it.entry = n.item
|
) n JOIN item_template it ON it.entry = n.item
|
||||||
GROUP BY item'
|
GROUP BY item'
|
||||||
);
|
);
|
||||||
@@ -413,7 +413,7 @@ function source(array $ids = [])
|
|||||||
$mailLoot = DB::World()->select('
|
$mailLoot = DB::World()->select('
|
||||||
SELECT
|
SELECT
|
||||||
IF(mlt.Reference > 0, -mlt.Reference, mlt.Item) AS ARRAY_KEY,
|
IF(mlt.Reference > 0, -mlt.Reference, mlt.Item) AS ARRAY_KEY,
|
||||||
qt.Id AS entry,
|
qt.ID AS entry,
|
||||||
it.class, it.subclass, it.spellid_1, it.spelltrigger_1, it.spellid_2, it.spelltrigger_2,
|
it.class, it.subclass, it.spellid_1, it.spelltrigger_1, it.spellid_2, it.spelltrigger_2,
|
||||||
count(1) AS qty,
|
count(1) AS qty,
|
||||||
BIT_OR(IF(qt.RequiredRaces & 0x2B2 AND !(qt.RequiredRaces & 0x44D), 2, IF(qt.RequiredRaces & 0x44D AND !(qt.RequiredRaces & 0x2B2), 1, 3))) AS side
|
BIT_OR(IF(qt.RequiredRaces & 0x2B2 AND !(qt.RequiredRaces & 0x44D), 2, IF(qt.RequiredRaces & 0x44D AND !(qt.RequiredRaces & 0x2B2), 1, 3))) AS side
|
||||||
@@ -635,7 +635,7 @@ function source(array $ids = [])
|
|||||||
count(1) AS qty
|
count(1) AS qty
|
||||||
FROM (
|
FROM (
|
||||||
SELECT 0 AS entry, IF(flt.Reference > 0, -flt.Reference, flt.Item) itemOrRef FROM fishing_loot_template flt UNION
|
SELECT 0 AS entry, IF(flt.Reference > 0, -flt.Reference, flt.Item) itemOrRef FROM fishing_loot_template flt UNION
|
||||||
SELECT gt.entry, IF(glt.Reference > 0, -glt.Reference, glt.Item) itemOrRef FROM gameobject_template gt JOIN gameobject_loot_template glt ON glt.entry = gt.data1 WHERE `type` = 25 AND gt.data1 > 0
|
SELECT gt.entry, IF(glt.Reference > 0, -glt.Reference, glt.Item) itemOrRef FROM gameobject_template gt JOIN gameobject_loot_template glt ON glt.entry = gt.Data1 WHERE `type` = 25 AND gt.Data1 > 0
|
||||||
) src
|
) src
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
item_template it ON src.itemOrRef > 0 AND src.itemOrRef = it.entry
|
item_template it ON src.itemOrRef > 0 AND src.itemOrRef = it.entry
|
||||||
@@ -688,7 +688,7 @@ function source(array $ids = [])
|
|||||||
src.srcType
|
src.srcType
|
||||||
FROM (
|
FROM (
|
||||||
SELECT ct.entry, IF(slt.Reference > 0, -slt.Reference, slt.Item) itemOrRef, ?d AS srcType FROM creature_template ct JOIN skinning_loot_template slt ON slt.entry = ct.skinloot WHERE (type_flags & ?d) AND ct.skinloot > 0 UNION
|
SELECT ct.entry, IF(slt.Reference > 0, -slt.Reference, slt.Item) itemOrRef, ?d AS srcType FROM creature_template ct JOIN skinning_loot_template slt ON slt.entry = ct.skinloot WHERE (type_flags & ?d) AND ct.skinloot > 0 UNION
|
||||||
SELECT gt.entry, IF(glt.Reference > 0, -glt.Reference, glt.Item) itemOrRef, ?d AS srcType FROM gameobject_template gt JOIN gameobject_loot_template glt ON glt.entry = gt.data1 WHERE gt.`type` = 3 AND gt.data1 > 0 AND data0 IN (?a)
|
SELECT gt.entry, IF(glt.Reference > 0, -glt.Reference, glt.Item) itemOrRef, ?d AS srcType FROM gameobject_template gt JOIN gameobject_loot_template glt ON glt.entry = gt.Data1 WHERE gt.`type` = 3 AND gt.Data1 > 0 AND Data0 IN (?a)
|
||||||
) src
|
) src
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
item_template it ON src.itemOrRef > 0 AND src.itemOrRef = it.entry
|
item_template it ON src.itemOrRef > 0 AND src.itemOrRef = it.entry
|
||||||
@@ -794,7 +794,7 @@ function source(array $ids = [])
|
|||||||
src.srcType
|
src.srcType
|
||||||
FROM (
|
FROM (
|
||||||
SELECT ct.entry, IF(slt.Reference > 0, -slt.Reference, slt.Item) itemOrRef, ?d AS srcType FROM creature_template ct JOIN skinning_loot_template slt ON slt.entry = ct.skinloot WHERE (type_flags & ?d) AND ct.skinloot > 0 UNION
|
SELECT ct.entry, IF(slt.Reference > 0, -slt.Reference, slt.Item) itemOrRef, ?d AS srcType FROM creature_template ct JOIN skinning_loot_template slt ON slt.entry = ct.skinloot WHERE (type_flags & ?d) AND ct.skinloot > 0 UNION
|
||||||
SELECT gt.entry, IF(glt.Reference > 0, -glt.Reference, glt.Item) itemOrRef, ?d AS srcType FROM gameobject_template gt JOIN gameobject_loot_template glt ON glt.entry = gt.data1 WHERE gt.`type` = 3 AND gt.data1 > 0 AND data0 IN (?a)
|
SELECT gt.entry, IF(glt.Reference > 0, -glt.Reference, glt.Item) itemOrRef, ?d AS srcType FROM gameobject_template gt JOIN gameobject_loot_template glt ON glt.entry = gt.Data1 WHERE gt.`type` = 3 AND gt.Data1 > 0 AND Data0 IN (?a)
|
||||||
) src
|
) src
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
item_template it ON src.itemOrRef > 0 AND src.itemOrRef = it.entry
|
item_template it ON src.itemOrRef > 0 AND src.itemOrRef = it.entry
|
||||||
@@ -1045,9 +1045,9 @@ function source(array $ids = [])
|
|||||||
CLISetup::log(' * #4 Quest');
|
CLISetup::log(' * #4 Quest');
|
||||||
$quests = DB::World()->select('
|
$quests = DB::World()->select('
|
||||||
SELECT spell AS ARRAY_KEY, id, SUM(qty) AS qty, BIT_OR(side) AS side FROM (
|
SELECT spell AS ARRAY_KEY, id, SUM(qty) AS qty, BIT_OR(side) AS side FROM (
|
||||||
SELECT IF(rewardSpellCast = 0, rewardSpell, rewardSpellCast) AS spell, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE IF(rewardSpellCast = 0, rewardSpell, rewardSpellCast) > 0 GROUP BY spell
|
SELECT IF(rewardSpellCast = 0, rewardSpell, rewardSpellCast) AS spell, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE IF(rewardSpellCast = 0, rewardSpell, rewardSpellCast) > 0 GROUP BY spell
|
||||||
UNION
|
UNION
|
||||||
SELECT SourceSpellId AS spell, Id, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE SourceSpellId > 0 GROUP BY spell
|
SELECT SourceSpellId AS spell, ID, COUNT(1) AS qty, IF(RequiredRaces & 0x2B2 AND !(RequiredRaces & 0x44D), 2, IF(RequiredRaces & 0x44D AND !(RequiredRaces & 0x2B2), 1, 3)) AS side FROM quest_template WHERE SourceSpellId > 0 GROUP BY spell
|
||||||
) t GROUP BY spell');
|
) t GROUP BY spell');
|
||||||
|
|
||||||
if ($quests)
|
if ($quests)
|
||||||
@@ -1071,7 +1071,7 @@ function source(array $ids = [])
|
|||||||
|
|
||||||
# 6: Trainer
|
# 6: Trainer
|
||||||
CLISetup::log(' * #6 Trainer');
|
CLISetup::log(' * #6 Trainer');
|
||||||
if ($tNpcs = DB::World()->select('SELECT spell AS ARRAY_KEY, entry, COUNT(1) AS qty FROM npc_trainer WHERE spell > 0 GROUP BY ARRAY_KEY'))
|
if ($tNpcs = DB::World()->select('SELECT SpellID AS ARRAY_KEY, ID AS entry, COUNT(1) AS qty FROM npc_trainer WHERE SpellID > 0 GROUP BY ARRAY_KEY'))
|
||||||
{
|
{
|
||||||
$tSpells = DB::Aowow()->select('SELECT Id AS ARRAY_KEY, effect1Id, effect2Id, effect3Id, effect1TriggerSpell, effect2TriggerSpell, effect3TriggerSpell FROM dbc_spell WHERE Id IN (?a)', array_keys($tNpcs));
|
$tSpells = DB::Aowow()->select('SELECT Id AS ARRAY_KEY, effect1Id, effect2Id, effect3Id, effect1TriggerSpell, effect2TriggerSpell, effect3TriggerSpell FROM dbc_spell WHERE Id IN (?a)', array_keys($tNpcs));
|
||||||
$buff = [];
|
$buff = [];
|
||||||
@@ -1167,7 +1167,7 @@ function source(array $ids = [])
|
|||||||
|
|
||||||
# 4: Quest
|
# 4: Quest
|
||||||
CLISetup::log(' * #4 Quest');
|
CLISetup::log(' * #4 Quest');
|
||||||
if ($quests = DB::World()->select('SELECT ?d, RewardTitleId, 1, ?d, Id FROM quest_template WHERE RewardTitleId > 0', TYPE_TITLE, TYPE_QUEST))
|
if ($quests = DB::World()->select('SELECT ?d, RewardTitle, 1, ?d, ID FROM quest_template WHERE RewardTitle > 0', TYPE_TITLE, TYPE_QUEST))
|
||||||
DB::Aowow()->query(queryfy('[V]', $quests, $insMore), 4, 4, 4);
|
DB::Aowow()->query(queryfy('[V]', $quests, $insMore), 4, 4, 4);
|
||||||
|
|
||||||
# 12: Achievement
|
# 12: Achievement
|
||||||
|
|||||||
@@ -134,7 +134,7 @@ function spawns() // and waypoints
|
|||||||
/* offsets for transports */
|
/* offsets for transports */
|
||||||
/**************************/
|
/**************************/
|
||||||
|
|
||||||
$transports = DB::World()->selectCol('SELECT data0 AS pathId, data6 AS ARRAY_KEY FROM gameobject_template WHERE type = 15 AND data6 <> 0');
|
$transports = DB::World()->selectCol('SELECT Data0 AS pathId, Data6 AS ARRAY_KEY FROM gameobject_template WHERE type = 15 AND Data6 <> 0');
|
||||||
foreach ($transports as &$t)
|
foreach ($transports as &$t)
|
||||||
$t = DB::Aowow()->selectRow('SELECT posX, posY, mapId FROM dbc_taxipathnode tpn WHERE tpn.pathId = ?d AND nodeIdx = 0', $t);
|
$t = DB::Aowow()->selectRow('SELECT posX, posY, mapId FROM dbc_taxipathnode tpn WHERE tpn.pathId = ?d AND nodeIdx = 0', $t);
|
||||||
|
|
||||||
|
|||||||
@@ -353,7 +353,7 @@ function spell()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// fill learnedAt, trainingCost from trainer
|
// fill learnedAt, trainingCost from trainer
|
||||||
if ($trainer = DB::World()->select('SELECT spell AS ARRAY_KEY, MIN(reqskillvalue) AS reqSkill, MIN(spellcost) AS cost, COUNT(*) as count FROM npc_trainer GROUP BY spell'))
|
if ($trainer = DB::World()->select('SELECT SpellID AS ARRAY_KEY, MIN(ReqSkillRank) AS reqSkill, MIN(MoneyCost) AS cost, COUNT(*) AS count FROM npc_trainer GROUP BY SpellID'))
|
||||||
{
|
{
|
||||||
$spells = DB::Aowow()->select('SELECT Id AS ARRAY_KEY, effect1Id, effect2Id, effect3Id, effect1TriggerSpell, effect2TriggerSpell, effect3TriggerSpell FROM dbc_spell WHERE Id IN (?a)', array_keys($trainer));
|
$spells = DB::Aowow()->select('SELECT Id AS ARRAY_KEY, effect1Id, effect2Id, effect3Id, effect1TriggerSpell, effect2TriggerSpell, effect3TriggerSpell FROM dbc_spell WHERE Id IN (?a)', array_keys($trainer));
|
||||||
$links = [];
|
$links = [];
|
||||||
@@ -489,7 +489,7 @@ function spell()
|
|||||||
201032 => 10658
|
201032 => 10658
|
||||||
);
|
);
|
||||||
foreach ($specs as $tt => $req)
|
foreach ($specs as $tt => $req)
|
||||||
if ($spells = DB::World()->selectCol('SELECT spell FROM npc_trainer WHERE entry = ?d', $tt))
|
if ($spells = DB::World()->selectCol('SELECT SpellID FROM npc_trainer WHERE ID = ?d', $tt))
|
||||||
DB::Aowow()->query('UPDATE ?_spell SET reqSpellId = ?d WHERE id IN (?a)', $req, $spells);
|
DB::Aowow()->query('UPDATE ?_spell SET reqSpellId = ?d WHERE id IN (?a)', $req, $spells);
|
||||||
|
|
||||||
$itemReqs = DB::World()->selectCol('SELECT entry AS ARRAY_KEY, requiredSpell FROM item_template WHERE requiredSpell NOT IN (?a)', [0, 34090, 34091]); // not riding
|
$itemReqs = DB::World()->selectCol('SELECT entry AS ARRAY_KEY, requiredSpell FROM item_template WHERE requiredSpell NOT IN (?a)', [0, 34090, 34091]); // not riding
|
||||||
|
|||||||
@@ -37,17 +37,17 @@ function titles()
|
|||||||
|
|
||||||
$questQuery = '
|
$questQuery = '
|
||||||
SELECT
|
SELECT
|
||||||
qt.RewardTitleId AS ARRAY_KEY,
|
qt.RewardTitle AS ARRAY_KEY,
|
||||||
qt.RequiredRaces,
|
qt.RequiredRaces,
|
||||||
ge.eventEntry
|
ge.eventEntry
|
||||||
FROM
|
FROM
|
||||||
quest_template qt
|
quest_template qt
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
game_event_seasonal_questrelation sq ON sq.questId = qt.id
|
game_event_seasonal_questrelation sq ON sq.questId = qt.ID
|
||||||
LEFT JOIN
|
LEFT JOIN
|
||||||
game_event ge ON ge.eventEntry = sq.eventEntry
|
game_event ge ON ge.eventEntry = sq.eventEntry
|
||||||
WHERE
|
WHERE
|
||||||
qt.RewardTitleId <> 0';
|
qt.RewardTitle <> 0';
|
||||||
|
|
||||||
DB::Aowow()->query('REPLACE INTO ?_titles SELECT Id, 0, 0, 0, 0, 0, 0, 0, male_loc0, male_loc2, male_loc3, male_loc6, male_loc8, female_loc0, female_loc2, female_loc3, female_loc6, female_loc8 FROM dbc_chartitles');
|
DB::Aowow()->query('REPLACE INTO ?_titles SELECT Id, 0, 0, 0, 0, 0, 0, 0, male_loc0, male_loc2, male_loc3, male_loc6, male_loc8, female_loc0, female_loc2, female_loc3, female_loc6, female_loc8 FROM dbc_chartitles');
|
||||||
|
|
||||||
|
|||||||
15
setup/updates/1437329787_01.sql
Normal file
15
setup/updates/1437329787_01.sql
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
ALTER TABLE `aowow_objects`
|
||||||
|
DROP COLUMN `questItem1`,
|
||||||
|
DROP COLUMN `questItem2`,
|
||||||
|
DROP COLUMN `questItem3`,
|
||||||
|
DROP COLUMN `questItem4`,
|
||||||
|
DROP COLUMN `questItem5`,
|
||||||
|
DROP COLUMN `questItem6`;
|
||||||
|
|
||||||
|
ALTER TABLE `aowow_creature`
|
||||||
|
DROP COLUMN `questItem1`,
|
||||||
|
DROP COLUMN `questItem2`,
|
||||||
|
DROP COLUMN `questItem3`,
|
||||||
|
DROP COLUMN `questItem4`,
|
||||||
|
DROP COLUMN `questItem5`,
|
||||||
|
DROP COLUMN `questItem6`;
|
||||||
Reference in New Issue
Block a user