Description:
Entire mimiron's tram bugged
Expected behaviour: Tell us what should happen instead
mimiron's tram does not move when it is called the button call tram.
the button to start the tram is clickable but does not start the tram
Steps to reproduce the problem:
Branch(es): 3.3.5 / 6.x (Select the branch(es) affected by this issue)
3.3.5
TC hash/commit:
c8b2db65f1a8 +
TDB version:
335.61
Operating system:
Win
button is missing too, no?
button is clickable in gm mode but mimiron's tram don't move.. missing script
There is no such rev on trinitycore.
that's the rev I see at server startup. Anyway is the latest rev of trinity, updated today to test the bug
I'm using this, the object will be floating in the air, because the Tram(GAMEOBJECT_TYPE_TRANSPORT) still don't support installing objects
UPDATE `gameobject_template` SET `ScriptName`='go_mimiron_activate_tram' WHERE `entry`=194437;
UPDATE `gameobject` SET `position_x`=2306.87, `position_y`=274.237, `position_z`=424.288, `orientation`=1.52255, `rotation2`=0.689847, `rotation3`=0.723956 WHERE `guid`=45164;
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
index 9342b3a..fbb5f98 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
@@ -1651,6 +1651,24 @@ class go_mimiron_hardmode_button : public GameObjectScript
}
};
+class go_mimiron_activate_tram : public GameObjectScript
+{
+ public:
+ go_mimiron_activate_tram() : GameObjectScript("go_mimiron_activate_tram") { }
+
+ bool OnGossipHello(Player* /*player*/, GameObject* go)
+ {
+ InstanceScript* instance = go->GetInstanceScript();
+ if (!instance)
+ return false;
+
+ if (GameObject* tram = ObjectAccessor::GetGameObject(*go, instance->GetGuidData(DATA_MIMIRON_TRAM)))
+ tram->SetGoState(GO_STATE_ACTIVE);
+
+ return true;
+ }
+};
+
// 63801 - Bomb Bot
class spell_mimiron_bomb_bot : public SpellScriptLoader
{
@@ -2813,6 +2831,7 @@ void AddSC_boss_mimiron()
new npc_mimiron_proximity_mine();
new go_mimiron_hardmode_button();
+ new go_mimiron_activate_tram();
new spell_mimiron_bomb_bot();
new spell_mimiron_clear_fires();
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
index ab51128..30cf6fb 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
@@ -596,6 +596,8 @@ class instance_ulduar : public InstanceMapScript
case GO_GIFT_OF_THE_OBSERVER_25:
GiftOfTheObserverGUID = gameObject->GetGUID();
break;
+ case DATA_MIMIRON_TRAM:
+ return MimironTramGUID;
default:
break;
}
@sirikfoll
ACTIVE status send tram to mimiron, if you want to go even back you have to give to tram the READY State.
Ok, this is the complete code with update movement packet tram:
UPDATE `gameobject_template` SET `ScriptName`='go_call_tram',' faction'='35' WHERE `entry`=194437 AND 'entry'=194914 AND 'entry'=194912 AND 'entry'=194937;
src/server/scripts/Northrend/Ulduar/Ulduar/instance_ulduar.cpp
LINE 934:
+case DATA_MIMIRON_TRAM:
+ if (GameObject* MimironTram = instance->GetGameObject(MimironTramGUID))
+ {
+ instance->LoadGrid(2307, 284.632f);
+ if (data == 1)
+ MimironTram->SetGoState(GO_STATE_ACTIVE);
+ if (data == 0)
+ MimironTram->SetGoState(GO_STATE_READY);
+
+ if (Map* pMap = MimironTram->GetMap())
+ {
+ if (pMap->IsDungeon())
+ {
+ Map::PlayerList const &PlayerList = pMap->GetPlayers();
+
+ if (!PlayerList.isEmpty())
+ {
+ for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
+ {
+ if (Player* player = i->GetSource())
+ {
+ UpdateData data;
+ WorldPacket pkt;
+ MimironTram->BuildValuesUpdateBlockForPlayer(&data, player);
+ data.BuildPacket(&pkt);
+ player->GetSession()->SendPacket(&pkt);
+ }
+ }
+ }
+ }
+ }
+ }
+ break;
LINE 1454:
+class go_call_tram : public GameObjectScript
+{
+public:
+ go_call_tram() : GameObjectScript("go_call_tram") { }
+
+ bool OnGossipHello(Player* player, GameObject* Go)
+ {
+ InstanceScript* pInstance = Go->GetInstanceScript();
+
+ if (!pInstance)
+ return false;
+
+ switch(Go->GetEntry())
+ {
+ case 194914:
+ case 194438:
+ pInstance->SetData(DATA_MIMIRON_TRAM, 0);break;
+ case 194912:
+ case 194437:
+ pInstance->SetData(DATA_MIMIRON_TRAM, 1);
+ break;
+ }
+ return true;
+ }
+};
LINE 1458:
+new go_call_tram();
UPDATE `gameobject_template` SET `ScriptName`='go_call_tram',`faction`='35' WHERE `entry`=194437;
UPDATE `gameobject_template` SET `ScriptName`='go_call_tram',`faction`='35' WHERE `entry`=194914;
UPDATE `gameobject_template` SET `ScriptName`='go_call_tram',`faction`='35' WHERE `entry`=194912;
UPDATE `gameobject_template` SET `ScriptName`='go_call_tram',`faction`='35' WHERE `entry`=194438;
I Only got 1356 lines
Can u post your code?
http://pastebin.com/
I took 5 hours trying but I can not put anyone explain how I can fix this ?
@Swode
Save the diff code https://github.com/TrinityCore/TrinityCore/issues/17354#issuecomment-225451433 in some txt file, put in your "server folder" and run in git bash/cmd : git apply file.txt
@keader
Can u put me the command pls?
First time doing this...
git apply FileName.Extension
e.g.
git apply mimiron.txt
git apply mimiron.diff (if you save the diff file with diff extension)
if dont show any error mensage, code is applied :+1:
I don't see nothing xD
@Keader
Ok Working But sometimes I can't see the tram
@lellonicole hi, was testing part of your code and im having crash on this part.
+ UpdateData data;
+ WorldPacket pkt;
+ MimironTram->BuildValuesUpdateBlockForPlayer(&data, player);
+ data.BuildPacket(&pkt);
+ player->GetSession()->SendPacket(&pkt);
In worlserver:
./worldserver: symbol lookup error: /WorldServer/bin/./scripts/libscripts_northrend.so: undefined symbol: _ZN10UpdateDataC1Ev
that row looks a huge hack for me.
@sirikfoll in you fix build error error: return-statement with a value, in function returning 'void' [-fpermissive]
return MimironTramGUID; mby need move to ObjectGuid GetGuidData(uint32 data) const override ?
This is a hack. Transport system needs to be revamped to allow for static passengers on GAMEOBJECT_TYPE_TRANSPORT (which are currently handled as normal GameObjects)
Most helpful comment
that row looks a huge hack for me.