mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Merge branch 'master' of github.com:TrinityCore/TrinityCore into mmaps
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
DROP TABLE `gameobject_scripts`;
|
||||
DELETE FROM `command` WHERE `name`='reload gameobject_scripts';
|
||||
3
sql/updates/world/2013_01_03_12_world_misc.sql
Normal file
3
sql/updates/world/2013_01_03_12_world_misc.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
-- Fix startup errors:
|
||||
-- Set correct questid for Many Wyrm
|
||||
UPDATE `smart_scripts` SET `action_param1`=8346 WHERE `entryorguid` IN (15273,15274,15294,15298) AND `source_type`=0 AND `id` IN (0,1);
|
||||
3
sql/updates/world/2013_01_03_13_world_quest_template.sql
Normal file
3
sql/updates/world/2013_01_03_13_world_quest_template.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
UPDATE `quest_template` SET `PrevQuestId`=7022 WHERE `Id`=7025; -- Treats for Greatfather Winter (7025) Alliance version
|
||||
UPDATE `quest_template` SET `RequiredRaces`=690,`PrevQuestId`=7021 WHERE `Id`=6962; -- Treats for Great-father Winter (6962) Horde version
|
||||
UPDATE `quest_template` SET `ExclusiveGroup`=7021 WHERE `Id`=6961; -- Great-father Winter is Here!
|
||||
4
sql/updates/world/2013_01_03_14_world_spell_area.sql
Normal file
4
sql/updates/world/2013_01_03_14_world_spell_area.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- add aura to be able to hand in quests
|
||||
DELETE FROM `spell_area` WHERE `spell`=52217;
|
||||
INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_start_active`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`) VALUES
|
||||
(52217,4306,12574,1,0,0,0,2,1);
|
||||
73
sql/updates/world/2013_01_03_15_world_various_fixes.sql
Normal file
73
sql/updates/world/2013_01_03_15_world_various_fixes.sql
Normal file
@@ -0,0 +1,73 @@
|
||||
-- Issue 7541: Shambling Horror immunities
|
||||
UPDATE `creature_template` SET `mechanic_immune_mask`=`mechanic_immune_mask`|1|2|4|8|16|64|512|1024|4096|8192|65536|131072|524288|4194304|536870912 WHERE `entry`=37698;
|
||||
|
||||
-- Issue 7436: Ground bound Highperch
|
||||
-- Highperch Soarer
|
||||
SET @NPC := 21708;
|
||||
SET @PATH := @NPC*10;
|
||||
UPDATE `creature_template` SET `InhabitType`=4 WHERE `entry`=6139;
|
||||
UPDATE `creature` SET `spawndist`=0,`MovementType`=2,`position_x`=-5155.09,`position_y`=-1194.89,`position_z`=73.70869 WHERE `guid`=@NPC;
|
||||
UPDATE `creature_addon` SET `path_id`=@PATH WHERE `guid`=@NPC;
|
||||
DELETE FROM `waypoint_data` WHERE `id`=@PATH;
|
||||
INSERT INTO `waypoint_data` (`id`,`point`,`position_x`,`position_y`,`position_z`,`delay`,`move_flag`,`action`,`action_chance`,`wpguid`) VALUES
|
||||
(@PATH,1,-5155.09,-1194.89,73.70869,0,0,0,100,0),
|
||||
(@PATH,2,-5155.986,-1199.748,81.49023,0,0,0,100,0),
|
||||
(@PATH,3,-5166.314,-1220.043,81.76808,0,0,0,100,0),
|
||||
(@PATH,4,-5170.551,-1226.347,76.71234,0,0,0,100,0),
|
||||
(@PATH,5,-5178.024,-1237.037,72.43468,0,0,0,100,0),
|
||||
(@PATH,6,-5190.296,-1239.181,71.90687,0,0,0,100,0),
|
||||
(@PATH,7,-5215.796,-1225.133,69.76797,0,0,0,100,0),
|
||||
(@PATH,8,-5221.52,-1209.387,67.79574,0,0,0,100,0),
|
||||
(@PATH,9,-5219.366,-1194.92,67.15694,0,0,0,100,0),
|
||||
(@PATH,10,-5209.852,-1187.224,65.96239,0,0,0,100,0),
|
||||
(@PATH,11,-5194.886,-1188.915,70.71236,0,0,0,100,0),
|
||||
(@PATH,12,-5181.055,-1199.332,60.29574,0,0,0,100,0),
|
||||
(@PATH,13,-5158.846,-1213.597,57.6291,0,0,0,100,0),
|
||||
(@PATH,14,-5122.129,-1222.279,42.46242,0,0,0,100,0),
|
||||
(@PATH,15,-5110.988,-1230.767,15.32349,0,0,0,100,0),
|
||||
(@PATH,16,-5084.673,-1227.625,-11.81538,0,0,0,100,0),
|
||||
(@PATH,17,-5065.282,-1209.691,-34.89864,0,0,0,100,0),
|
||||
(@PATH,18,-5052.477,-1181.261,-39.42649,0,0,0,100,0),
|
||||
(@PATH,19,-5025.058,-1165.288,-32.56528,0,0,0,100,0),
|
||||
(@PATH,20,-5004.282,-1140.431,-38.3154,0,0,0,100,0),
|
||||
(@PATH,21,-4984.813,-1123.683,-38.17639,0,0,0,100,0),
|
||||
(@PATH,22,-4971.478,-1109.776,-38.17639,0,0,0,100,0),
|
||||
(@PATH,23,-4949.74,-1096.296,-32.42633,0,0,0,100,0),
|
||||
(@PATH,24,-4927.954,-1090.275,-24.84298,0,0,0,100,0),
|
||||
(@PATH,25,-4909.837,-1080.728,-14.0652,0,0,0,100,0),
|
||||
(@PATH,26,-4914.713,-1066.641,-7.898551,0,0,0,100,0),
|
||||
(@PATH,27,-4927.922,-1056.954,-3.352009,0,0,0,100,0),
|
||||
(@PATH,28,-4942.696,-1055.217,8.220422,0,0,0,100,0),
|
||||
(@PATH,29,-4951.954,-1049.145,14.62554,0,0,0,100,0),
|
||||
(@PATH,30,-4960.176,-1028.92,20.03323,0,0,0,100,0),
|
||||
(@PATH,31,-4970.474,-1008.432,22.08879,0,0,0,100,0),
|
||||
(@PATH,32,-4980.969,-992.9671,23.42848,0,0,0,100,0),
|
||||
(@PATH,33,-4993.734,-980.054,23.75917,0,0,0,100,0),
|
||||
(@PATH,34,-5012.753,-967.9377,24.0925,0,0,0,100,0),
|
||||
(@PATH,35,-5032.862,-971.138,30.92584,0,0,0,100,0),
|
||||
(@PATH,36,-5052.127,-982.1085,39.0092,0,0,0,100,0),
|
||||
(@PATH,37,-5060.675,-991.1913,52.28708,0,0,0,100,0),
|
||||
(@PATH,38,-5072.277,-1008.99,67.84268,0,0,0,100,0),
|
||||
(@PATH,39,-5090.256,-1005.558,79.18673,0,0,0,100,0),
|
||||
(@PATH,40,-5106.005,-1004.311,73.88409,0,0,0,100,0);
|
||||
|
||||
-- Issue 8639: Eyes of the Eagle
|
||||
-- Talonshrike's Egg
|
||||
SET @ENTRY := 186814;
|
||||
SET @SOURCETYPE := 1;
|
||||
UPDATE gameobject_template SET AIName="SmartGameObjectAI" WHERE entry IN(186814,190283);
|
||||
UPDATE creature_template SET AIName="SmartAI" WHERE entry=24518;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`IN(186814,190283) AND `source_type`=1;
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid`=24518 AND `source_type`=0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
|
||||
-- first egg
|
||||
(186814,1,0,0,70,0,100,0,2,0,0,0,45,0,1,0,0,0,0,11,24518,500,0,0.0,0.0,0.0,0.0,"ON egg USE notify Talonshrike"),
|
||||
(186814,1,1,0,70,0,100,0,2,0,0,0,45,0,2,0,0,0,0,11,24518,500,0,0.0,0.0,0.0,0.0,"ON egg USE notify Talonshrike to set attackable"),
|
||||
-- second egg
|
||||
(190283,1,0,0,70,0,100,0,2,0,0,0,45,0,1,0,0,0,0,11,24518,500,0,0.0,0.0,0.0,0.0,"ON egg USE notify Talonshrike"),
|
||||
(190283,1,1,0,70,0,100,0,2,0,0,0,45,0,2,0,0,0,0,11,24518,500,0,0.0,0.0,0.0,0.0,"ON egg USE notify Talonshrike to set attackable"),
|
||||
-- Talonshrike
|
||||
(24518,0,0,0,38,0,100,0,0,1,0,0,69,0,0,0,0,0,0,8,0,0,0,1597.4,-3903.79,79.702,0.0,"ON notification fly TO nest"),
|
||||
(24518,0,1,0,0,0,100,0,5000,5000,10000,12000,11,49865,0,0,0,0,0,2,0,0,0,0.0,0.0,0.0,0.0," USE Eye Peck"),
|
||||
(24518,0,2,0,0,0,100,0,3000,3000,5000,7000,11,32909,0,0,0,0,0,2,0,0,0,0.0,0.0,0.0,0.0," USE Talon Strike"),
|
||||
(24518,0,3,0,38,0,100,0,0,2,0,0,19,256,0,0,0,0,0,1, 0, 0, 0, 0, 0, 0, 0, "Talonshrike - On notification - Remove UNIT_FLAG_IMMUNE_TO_PC");
|
||||
@@ -2260,46 +2260,30 @@ ObjectList* SmartScript::GetTargets(SmartScriptHolder const& e, Unit* invoker /*
|
||||
case SMART_TARGET_CREATURE_GUID:
|
||||
{
|
||||
Creature* target = NULL;
|
||||
if (e.target.unitGUID.entry)
|
||||
if (!trigger && !GetBaseObject())
|
||||
{
|
||||
uint64 guid = MAKE_NEW_GUID(e.target.unitGUID.guid, e.target.unitGUID.entry, HIGHGUID_UNIT);
|
||||
target = HashMapHolder<Creature>::Find(guid);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!trigger && !GetBaseObject())
|
||||
{
|
||||
sLog->outError(LOG_FILTER_SQL, "SMART_TARGET_CREATURE_GUID can not be used without invoker and without entry");
|
||||
break;
|
||||
}
|
||||
|
||||
target = FindCreatureNear(trigger ? trigger : GetBaseObject(), e.target.unitGUID.guid);
|
||||
sLog->outError(LOG_FILTER_SQL, "SMART_TARGET_CREATURE_GUID can not be used without invoker");
|
||||
break;
|
||||
}
|
||||
|
||||
if (target)
|
||||
target = FindCreatureNear(trigger ? trigger : GetBaseObject(), e.target.unitGUID.dbGuid);
|
||||
|
||||
if (target && (!e.target.unitGUID.entry || target->GetEntry() == e.target.unitGUID.entry))
|
||||
l->push_back(target);
|
||||
break;
|
||||
}
|
||||
case SMART_TARGET_GAMEOBJECT_GUID:
|
||||
{
|
||||
GameObject* target = NULL;
|
||||
if (e.target.unitGUID.entry)
|
||||
if (!trigger && !GetBaseObject())
|
||||
{
|
||||
uint64 guid = MAKE_NEW_GUID(e.target.goGUID.guid, e.target.goGUID.entry, HIGHGUID_GAMEOBJECT);
|
||||
target = HashMapHolder<GameObject>::Find(guid);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!trigger && !GetBaseObject())
|
||||
{
|
||||
sLog->outError(LOG_FILTER_SQL, "SMART_TARGET_GAMEOBJECT_GUID can not be used without invoker and without entry");
|
||||
break;
|
||||
}
|
||||
|
||||
target = FindGameObjectNear(trigger ? trigger : GetBaseObject(), e.target.goGUID.guid);
|
||||
sLog->outError(LOG_FILTER_SQL, "SMART_TARGET_GAMEOBJECT_GUID can not be used without invoker");
|
||||
break;
|
||||
}
|
||||
|
||||
if (target)
|
||||
target = FindGameObjectNear(trigger ? trigger : GetBaseObject(), e.target.goGUID.dbGuid);
|
||||
|
||||
if (target && (!e.target.goGUID.entry || target->GetEntry() == e.target.goGUID.entry))
|
||||
l->push_back(target);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -996,7 +996,7 @@ struct SmartTarget
|
||||
|
||||
struct
|
||||
{
|
||||
uint32 guid;
|
||||
uint32 dbGuid;
|
||||
uint32 entry;
|
||||
} unitGUID;
|
||||
|
||||
@@ -1031,7 +1031,7 @@ struct SmartTarget
|
||||
|
||||
struct
|
||||
{
|
||||
uint32 guid;
|
||||
uint32 dbGuid;
|
||||
uint32 entry;
|
||||
} goGUID;
|
||||
|
||||
|
||||
@@ -1098,11 +1098,7 @@ void GameObject::Use(Unit* user)
|
||||
case GAMEOBJECT_TYPE_BUTTON: //1
|
||||
//doors/buttons never really despawn, only reset to default state/flags
|
||||
UseDoorOrButton(0, false, user);
|
||||
|
||||
// activate script
|
||||
GetMap()->ScriptsStart(sGameObjectScripts, GetDBTableGUIDLow(), spellCaster, this);
|
||||
return;
|
||||
|
||||
case GAMEOBJECT_TYPE_QUESTGIVER: //2
|
||||
{
|
||||
if (user->GetTypeId() != TYPEID_PLAYER)
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
#include "World.h"
|
||||
|
||||
ScriptMapMap sSpellScripts;
|
||||
ScriptMapMap sGameObjectScripts;
|
||||
ScriptMapMap sEventScripts;
|
||||
ScriptMapMap sWaypointScripts;
|
||||
|
||||
@@ -60,7 +59,6 @@ std::string GetScriptsTableNameByType(ScriptsType type)
|
||||
switch (type)
|
||||
{
|
||||
case SCRIPTS_SPELL: res = "spell_scripts"; break;
|
||||
case SCRIPTS_GAMEOBJECT: res = "gameobject_scripts"; break;
|
||||
case SCRIPTS_EVENT: res = "event_scripts"; break;
|
||||
case SCRIPTS_WAYPOINT: res = "waypoint_scripts"; break;
|
||||
default: break;
|
||||
@@ -74,7 +72,6 @@ ScriptMapMap* GetScriptsMapByType(ScriptsType type)
|
||||
switch (type)
|
||||
{
|
||||
case SCRIPTS_SPELL: res = &sSpellScripts; break;
|
||||
case SCRIPTS_GAMEOBJECT: res = &sGameObjectScripts; break;
|
||||
case SCRIPTS_EVENT: res = &sEventScripts; break;
|
||||
case SCRIPTS_WAYPOINT: res = &sWaypointScripts; break;
|
||||
default: break;
|
||||
@@ -4667,18 +4664,6 @@ void ObjectMgr::LoadScripts(ScriptsType type)
|
||||
sLog->outInfo(LOG_FILTER_SERVER_LOADING, ">> Loaded %u script definitions in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
|
||||
}
|
||||
|
||||
void ObjectMgr::LoadGameObjectScripts()
|
||||
{
|
||||
LoadScripts(SCRIPTS_GAMEOBJECT);
|
||||
|
||||
// check ids
|
||||
for (ScriptMapMap::const_iterator itr = sGameObjectScripts.begin(); itr != sGameObjectScripts.end(); ++itr)
|
||||
{
|
||||
if (!GetGOData(itr->first))
|
||||
sLog->outError(LOG_FILTER_SQL, "Table `gameobject_scripts` has not existing gameobject (GUID: %u) as script id", itr->first);
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectMgr::LoadSpellScripts()
|
||||
{
|
||||
LoadScripts(SCRIPTS_SPELL);
|
||||
|
||||
@@ -128,7 +128,6 @@ enum ScriptsType
|
||||
SCRIPTS_FIRST = 1,
|
||||
|
||||
SCRIPTS_SPELL = SCRIPTS_FIRST,
|
||||
SCRIPTS_GAMEOBJECT,
|
||||
SCRIPTS_EVENT,
|
||||
SCRIPTS_WAYPOINT,
|
||||
|
||||
@@ -361,7 +360,6 @@ typedef std::map<uint32, ScriptMap > ScriptMapMap;
|
||||
typedef std::multimap<uint32, uint32> SpellScriptsContainer;
|
||||
typedef std::pair<SpellScriptsContainer::iterator, SpellScriptsContainer::iterator> SpellScriptsBounds;
|
||||
extern ScriptMapMap sSpellScripts;
|
||||
extern ScriptMapMap sGameObjectScripts;
|
||||
extern ScriptMapMap sEventScripts;
|
||||
extern ScriptMapMap sWaypointScripts;
|
||||
|
||||
@@ -863,7 +861,6 @@ class ObjectMgr
|
||||
return _creatureQuestInvolvedRelations.equal_range(creature_entry);
|
||||
}
|
||||
|
||||
void LoadGameObjectScripts();
|
||||
void LoadEventScripts();
|
||||
void LoadSpellScripts();
|
||||
void LoadWaypointScripts();
|
||||
|
||||
@@ -2011,7 +2011,6 @@ void Spell::SendLoot(uint64 guid, LootType loottype)
|
||||
case GAMEOBJECT_TYPE_DOOR:
|
||||
case GAMEOBJECT_TYPE_BUTTON:
|
||||
gameObjTarget->UseDoorOrButton(0, false, player);
|
||||
player->GetMap()->ScriptsStart(sGameObjectScripts, gameObjTarget->GetDBTableGUIDLow(), player, gameObjTarget);
|
||||
return;
|
||||
|
||||
case GAMEOBJECT_TYPE_QUESTGIVER:
|
||||
|
||||
@@ -1656,7 +1656,6 @@ void World::SetInitialWorldSettings()
|
||||
|
||||
///- Load and initialize scripts
|
||||
sObjectMgr->LoadSpellScripts(); // must be after load Creature/Gameobject(Template/Data)
|
||||
sObjectMgr->LoadGameObjectScripts(); // must be after load Creature/Gameobject(Template/Data)
|
||||
sObjectMgr->LoadEventScripts(); // must be after load Creature/Gameobject(Template/Data)
|
||||
sObjectMgr->LoadWaypointScripts();
|
||||
|
||||
|
||||
@@ -97,7 +97,6 @@ public:
|
||||
{ "gameobject_involvedrelation", SEC_ADMINISTRATOR, true, &HandleReloadGOQuestInvRelationsCommand, "", NULL },
|
||||
{ "gameobject_loot_template", SEC_ADMINISTRATOR, true, &HandleReloadLootTemplatesGameobjectCommand, "", NULL },
|
||||
{ "gameobject_questrelation", SEC_ADMINISTRATOR, true, &HandleReloadGOQuestRelationsCommand, "", NULL },
|
||||
{ "gameobject_scripts", SEC_ADMINISTRATOR, true, &HandleReloadGameObjectScriptsCommand, "", NULL },
|
||||
{ "gm_tickets", SEC_ADMINISTRATOR, true, &HandleReloadGMTicketsCommand, "", NULL },
|
||||
{ "gossip_menu", SEC_ADMINISTRATOR, true, &HandleReloadGossipMenuCommand, "", NULL },
|
||||
{ "gossip_menu_option", SEC_ADMINISTRATOR, true, &HandleReloadGossipMenuOptionCommand, "", NULL },
|
||||
@@ -260,7 +259,6 @@ public:
|
||||
}
|
||||
|
||||
sLog->outInfo(LOG_FILTER_GENERAL, "Re-Loading Scripts...");
|
||||
HandleReloadGameObjectScriptsCommand(handler, "a");
|
||||
HandleReloadEventScriptsCommand(handler, "a");
|
||||
HandleReloadSpellScriptsCommand(handler, "a");
|
||||
handler->SendGlobalGMSysMessage("DB tables `*_scripts` reloaded.");
|
||||
@@ -951,26 +949,6 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadGameObjectScriptsCommand(ChatHandler* handler, const char* args)
|
||||
{
|
||||
if (sScriptMgr->IsScriptScheduled())
|
||||
{
|
||||
handler->SendSysMessage("DB scripts used currently, please attempt reload later.");
|
||||
handler->SetSentErrorMessage(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (*args != 'a')
|
||||
sLog->outInfo(LOG_FILTER_GENERAL, "Re-Loading Scripts from `gameobject_scripts`...");
|
||||
|
||||
sObjectMgr->LoadGameObjectScripts();
|
||||
|
||||
if (*args != 'a')
|
||||
handler->SendGlobalGMSysMessage("DB table `gameobject_scripts` reloaded.");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool HandleReloadEventScriptsCommand(ChatHandler* handler, const char* args)
|
||||
{
|
||||
if (sScriptMgr->IsScriptScheduled())
|
||||
|
||||
Reference in New Issue
Block a user