aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/5144_world_TDB.sql29
-rw-r--r--src/game/GameObject.cpp31
2 files changed, 45 insertions, 15 deletions
diff --git a/sql/updates/5144_world_TDB.sql b/sql/updates/5144_world_TDB.sql
new file mode 100644
index 00000000000..fd0a95b7e60
--- /dev/null
+++ b/sql/updates/5144_world_TDB.sql
@@ -0,0 +1,29 @@
+-- Distracting Jarven does not depend on taking quest from the guarded barrel, it's available while Bitter Rivals is active
+update quest_template set PrevQuestID = -310 where entry = 308;
+
+-- Make the unguarded barrel appear sooner after Jarven leaves
+delete from `QUEST_END_SCRIPTS` where `id` = 308;
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','0','3','0','0','0','-5601.64','-541.38','392.42','0.5');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','0','0','0','0','2000000077','0','0','0','0');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','2','3','0','0','0','-5597.94','-542.04','392.42','5.5');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','3','3','0','0','0','-5597.95','-548.43','395.48','4.7');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','3','9','35875','30','0','0','0','0','0');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','7','3','0','0','0','-5605.31','-549.33','399.09','3.1');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','10','3','0','0','0','-5607.55','-546.63','399.09','1.5');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','14','3','0','0','0','-5597.52','-538.75','399.09','1.5');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','18','3','0','0','0','-5597.62','-530.24','399.65','3');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','21','3','0','0','0','-5603.67','-529.91','399.65','4.2');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','25','0','0','0','2000000056','0','0','0','0');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','36','3','0','0','0','-5603.67','-529.91','399.65','4.2');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','39','3','0','0','0','-5597.62','-530.24','399.65','3');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','42','3','0','0','0','-5597.52','-538.75','399.09','1.5');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','45','3','0','0','0','-5607.55','-546.63','399.09','1.5');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','48','3','0','0','0','-5605.31','-549.33','399.09','3.1');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','51','3','0','0','0','-5597.95','-548.43','395.48','4.7');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','54','3','0','0','0','-5597.94','-542.04','392.42','5.5');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','55','0','0','0','2000000078','0','0','0','0');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','58','3','0','0','0','-5601.64','-541.38','392.42','0.5');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','60','3','0','0','0','-5605.96','-544.45','392.43','0.9');
+insert into `QUEST_END_SCRIPTS` (`id`, `delay`, `command`, `datalong`, `datalong2`, `dataint`, `x`, `y`, `z`, `o`) values('308','62','0','0','0','2000000079','0','0','0','0');
+
+
diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp
index c3bfc1d77b9..a7443d67e6b 100644
--- a/src/game/GameObject.cpp
+++ b/src/game/GameObject.cpp
@@ -460,6 +460,7 @@ void GameObject::Update(uint32 /*p_time*/)
if(!m_spawnedByDefault)
{
m_respawnTime = 0;
+ ObjectAccessor::UpdateObjectVisibility(this);
return;
}
@@ -634,18 +635,18 @@ bool GameObject::LoadFromDB(uint32 guid, Map *map)
if (!Create(guid,entry, map, phaseMask, x, y, z, ang, rotation0, rotation1, rotation2, rotation3, animprogress, go_state, ArtKit) )
return false;
- if(!GetGOInfo()->GetDespawnPossibility() && !GetGOInfo()->IsDespawnAtAction())
+ if(data->spawntimesecs >= 0)
{
- SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NODESPAWN);
m_spawnedByDefault = true;
- m_respawnDelayTime = 0;
- m_respawnTime = 0;
- }
- else
- {
- if(data->spawntimesecs >= 0)
+
+ if(!GetGOInfo()->GetDespawnPossibility() && !GetGOInfo()->IsDespawnAtAction())
+ {
+ SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_NODESPAWN);
+ m_respawnDelayTime = 0;
+ m_respawnTime = 0;
+ }
+ else
{
- m_spawnedByDefault = true;
m_respawnDelayTime = data->spawntimesecs;
m_respawnTime = objmgr.GetGORespawnTime(m_DBTableGuid, map->GetInstanceId());
@@ -656,12 +657,12 @@ bool GameObject::LoadFromDB(uint32 guid, Map *map)
objmgr.SaveGORespawnTime(m_DBTableGuid,GetInstanceId(),0);
}
}
- else
- {
- m_spawnedByDefault = false;
- m_respawnDelayTime = -data->spawntimesecs;
- m_respawnTime = 0;
- }
+ }
+ else
+ {
+ m_spawnedByDefault = false;
+ m_respawnDelayTime = -data->spawntimesecs;
+ m_respawnTime = 0;
}
m_goData = data;