Moin,
Ich bin vor einigen Tagen mal wieder bei WoW hängen geblieben und nachdem ich einige Monate nichts damit zu tun hatte, versuche ich jetzt wieder meinen Privaten Server auf Vordermann zu bringen
Dafür versuche ich mich gerade an einem Script, dass auf einer bestimmten Karte alle Spieler FFA flaged. Mein eigenes funktionierte garnicht, deshalb habe ich etwas gegoogelt und in einem anderen Forum eine “lösung” gefunden die schonmal bewirkt, dass man beim betreten FFA ist. Aber sobald man sich bewegt ist alles wieder weg
Hier also das Script aus dem anderen Forum.
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 EVENT\n");
_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() == 801)
{
printf("UPDATE ZONE!\n");
new Teleport(player);
}
}
void OnMapChanged(Player * player) override
{
if (player->GetMapId() == 801)
{
printf("UPDATE MAP!\n");
new Teleport(player);
}
}
};
void AddSC_OnMapEnter()
{
new OnMapEnter();
}
Sämtliche printf commands werden bei mir richtig ausgegeben..nur die Wirkung ist nicht so pralle..
Jemand eine Idee? Bin für jede Idee dankbar.
Edit:
Ich habe es über eine DBC Lösung bereits versucht und das Gebiet wird auch richtig als “PvP Area” angezeigt, aber der PvP Status taucht nicht auf
Ich bin somit absolut ratlos