Zdravím, přidávám sem ukázku nové verze Gossipu pro současné TrinityCore revize.
/**************************
* Npc_Porter *
* Knights of Czech *
* Jinia *
* (c)JardaWoW *
**************************/
#include "ScriptPCH.h"
#include "ScriptMgr.h"
#include "ScriptedCreature.h"
#include "ScriptedGossip.h"
class npc_porter : public CreatureScript
{
public:
npc_porter() : CreatureScript("npc_porter") {}
bool OnGossipHello(Player * player, Creature * npc)
{
player->ADD_GOSSIP_ITEM(2, "Teleport Dalaran", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF +2);
player->ADD_GOSSIP_ITEM(2, "Teleport Icecrown Citadel", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF +3);
player->ADD_GOSSIP_ITEM(2, "Teleport Argent Crusade", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF +4);
player->ADD_GOSSIP_ITEM(2, "Teleport Vault of Archavon", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF +6);
if(player->getClass() == 10)
{
player->ADD_GOSSIP_ITEM(2, "DK zona", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF +5);
}
player->PlayerTalkClass->SendGossipMenu(202020, npc->GetGUID());
return true;
}
bool OnGossipSelect(Player * player, Creature * npc, uint32 sender, uint32 action)
{
player->PlayerTalkClass->ClearMenus();
if (action == GOSSIP_ACTION_INFO_DEF +2)
{
player->TeleportTo(571, 5848.875f, 602.287f, 651.142f, 2.448f);
npc->MonsterYell("Uzivatel odcestoval do Dalaranu", LANG_UNIVERSAL, NULL);
player->CLOSE_GOSSIP_MENU();
}
if(action == GOSSIP_ACTION_INFO_DEF +3)
{
player->TeleportTo(571, 5867.302734f, 2101.300293f, 636.510193f, 2.199108f);
npc->MonsterYell("Uzivatel odcestoval do Icecrown Citadel", LANG_UNIVERSAL, NULL);
player->CLOSE_GOSSIP_MENU();
}
if(action == GOSSIP_ACTION_INFO_DEF +4)
{
player->TeleportTo(571, 8517.248047f, 721.388428f, 559.179016f, 1.606136f);
npc->MonsterYell("Uzivatel odcestoval do Argent Tournament", LANG_UNIVERSAL, NULL);
player->CLOSE_GOSSIP_MENU();
}
if(action == GOSSIP_ACTION_INFO_DEF +5)
{
player->TeleportTo(139, 2355, -5662, 382.26f, 0);
npc->MonsterYell("Uzivatel odcestoval do DK zony", LANG_UNIVERSAL, NULL);
player->CLOSE_GOSSIP_MENU();
}
if(action == GOSSIP_ACTION_INFO_DEF +6)
{
player->TeleportTo(571, 5467.609375f, 2827.439941f, 419.949188f, 0.968485f);
npc->MonsterYell("Uyivatel odcestoval do Vault of Archavon", LANG_UNIVERSAL, NULL);
player->CLOSE_GOSSIP_MENU();
}
if(player->isInCombat())
{
npc->MonsterWhisper("Nemuzes me pouzivat v combatu!", player->GetGUID());
}
return true;
}
};
void AddSCnpc_porter()
{
new npc_porter;
}