Please try that override thing. It can probably help a lot.
#include "ScriptPCH.h"class Teleport : public BasicEvent{public: Teleport(Player* player) : _player(player) { player->m_Events.AddEvent(this, player->m_Events.CalculateTime(0)); } bool Execute(uint64 /*time*/, uint32 /*diff*/) { printf("TIME EVENTn"); _player->pvpInfo.IsInFFAPvPArea = true; _player->UpdatePvPState(true); return true; } Player* _player;};class OnMapEnter : public PlayerScript{public: OnMapEnter() : PlayerScript("OnMapEnter") { } void OnUpdateZone(Player* player, uint32 /*newZone*/, uint32 /*newArea*/) override { if (player->GetMapId() == 1) { printf("UPDATE ZONE!n"); new Teleport(player); } } void OnMapChanged(Player * player) override { if (player->GetMapId() == 1) { printf("UPDATE MAP!n"); new Teleport(player); } }};void AddSC_OnMapEnter(){ new OnMapEnter();}
So..the strange thing is, with your script I'm ffa flaged..except in orgrimmar, stormwind etc.