Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum tram {
- EVENT_SPIN = 1,
- EVENT_SPIN_2 = 2
- };
- class go_call_tram : public GameObjectScript
- {
- public:
- go_call_tram() : GameObjectScript("go_call_tram") { }
- bool flag = false;
- bool flag2 = false;
- bool OnGossipHello(Player* /*player*/, GameObject* go) override
- {
- InstanceScript* instance = go->GetInstanceScript();
- if (!instance)
- return false;
- switch (go->GetEntry())
- {
- case 194914: // call od mimi
- case 194438: // start od mimi
- instance->SetData(DATA_CALL_TRAM, 0);
- flag = true;
- break;
- case 194912: // call do mimi
- case 194437: // start do mimi
- instance->SetData(DATA_CALL_TRAM, 1);
- flag2 = true;
- break;
- }
- go->UseDoorOrButton();
- return true;
- }
- struct go_call_tramAI : ScriptedAI
- {
- go_call_tramAI(Creature* creature) : ScriptedAI(creature){}
- EventMap events;
- void UpdateAI(uint32 diff) override
- {
- if (flag == true)
- {
- events.Reset();
- events.ScheduleEvent(EVENT_SPIN, 5000);
- }
- if (flag2 == true)
- {
- events.Reset();
- events.ScheduleEvent(EVENT_SPIN_2, 5000);
- }
- events.Update(diff);
- switch (events.ExecuteEvent())
- {
- case EVENT_SPIN:
- flag = false;
- if (GameObject* turnaround = ObjectAccessor::GetGameObject(*go, instance->GetData64(GO_Doodad_UL_Train_Turnaround_01)))
- turnaround->SetGoState(GO_STATE_ACTIVE);
- break;
- case EVENT_SPIN_2:
- flag2 = false;
- if (GameObject* turnaround = ObjectAccessor::GetGameObject(*go, instance->GetData64(GO_Doodad_UL_Train_Turnaround_02)))
- turnaround->SetGoState(GO_STATE_ACTIVE);
- break;
- }
- }
- }
- };
Add Comment
Please, Sign In to add comment