Code:
class SCRIPT_DECL Warper : public GossipScript
{
public:
void GossipHello(Object* pObject, Player * Plr, bool AutoSend)
{
GossipMenu *Menu;
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
Menu->AddItem(0, "Teleport Locations", 0);
Menu->AddItem(0, "Flying Mounts[BROKEN]", 13);
// Menu->AddItem(0, "Morphing", 18);
Menu->AddItem(0, "I want the PvP reward item!", 27);
Menu->SendTo(Plr);
}
void GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
{
GossipMenu * Menu;
switch(IntId)
{
case 0: //Teleport Locations
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(0, "Stormwind", 1);
Menu->AddItem(0, "Ironforge", 2);
Menu->AddItem(0, "Exodar", 3);
Menu->AddItem(0, "Darnassus", 4);
Menu->AddItem(0, "Orgrimmar", 5);
Menu->AddItem(0, "Thunder Bluff", 6);
Menu->AddItem(0, "Silvermoon City", 7);
Menu->AddItem(0, "Undercity", 8);
Menu->AddItem(0, "Misc", 9);
Menu->AddItem(0, "[Back]", 12);
Menu->SendTo(Plr);
break;
case 1: //stormwind
{
Plr->SafeTeleport(0, 0, -8831.61, 622.666, 93.7787, 0);
Plr->Gossip_Complete();
}break;
case 2: //ironforge
{
Plr->SafeTeleport(0, 0, -4804.45, -1101.14, 498.807, 0);
Plr->Gossip_Complete();
}break;
case 3: //exodar
{
Plr->SafeTeleport(530, 0, -3796.24, -11710.9, -105.45, 0);
Plr->Gossip_Complete();
}break;
case 4: //darnassus
{
Plr->SafeTeleport(1, 0, 9952.07, 2278.46, 1341.39, 0);
Plr->Gossip_Complete();
}break;
case 5: //orgrimmar
{
Plr->SafeTeleport(1, 0, 1499.55, -4406.91, 23.1642, 0);
Plr->Gossip_Complete();
}break;
case 6: //TB
{
Plr->SafeTeleport(1, 0, -1195.88, -56.5582, 160.034, 0);
Plr->Gossip_Complete();
}break;
case 7: //silvermoon
{
Plr->SafeTeleport(530, 0, 9492.45, -7279.12, 14.3036, 0);
Plr->Gossip_Complete();
}break;
case 8: //undercity
{
Plr->SafeTeleport(0, 0, 1615.1, 239.786, -62.0774, 0);
Plr->Gossip_Complete();
}break;
case 9: //misc
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(0, "Shopping Mall", 10);
Menu->AddItem(0, "Leveling Road", 11);
Menu->AddItem(0, "Custom Arena", 17);
Menu->AddItem(0, "[Back]", 12);
Menu->SendTo(Plr);
}
break;
case 10: //mall
{
Plr->SafeTeleport(1, 0, 16222.6, 16265.9, 14.2085, 0);
Plr->Gossip_Complete();
}
break;
case 11: //leveling road
{
Plr->SafeTeleport(0, 0, -4086.36, -2610.95, 47.0143, 0);
Plr->Gossip_Complete();
}
break;
case 12: // [back]
GossipHello(pObject, Plr, true);
break;
case 13: // mounts
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
Menu->AddItem(0, "Swift Gryphon", 14);
Menu->AddItem(0, "Swift Broom", 15);
Menu->AddItem(0, "Netherwing Drake", 16);
Menu->AddItem(0, "[Back]", 12);
Menu->SendTo(Plr);
}
break;
case 14: //gryphon
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
Plr->addSpell(32292);
bool CastSpell(32292); //cast spell?
Menu->AddItem(0, "[Back]", 12);
Menu->SendTo(Plr);
}
break;
case 15: // Broom
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
Plr->addSpell(42668); //cast spell?
Plr->removeSpell(42668,0,0,0); //remove spell?
Menu->AddItem(0, "[Back]", 12);
Menu->SendTo(Plr);
}
break;
case 16: // nd
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
Plr->addSpell(41513); //cast spell?
Plr->removeSpell(41513,0,0,0); //remove spell?
Menu->AddItem(0, "[Back]", 12);
Menu->SendTo(Plr);
}
break;
case 17: //arena
{
Plr->EventTeleport(0, -13271.959961, 149.105515, 34.464458);
}
break;
/* case 18: //morphing
{
objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
Menu->AddItem(0, "Goblin", 19);
Menu->AddItem(0, "Felguard", 20);
Menu->AddItem(0, "Ogre", 21);
Menu->AddItem(0, "Pirate", 22);
Menu->AddItem(0, "Skeleton", 23);
Menu->AddItem(0, "Illidan", 24);
Menu->AddItem(0, "Demorph me!", 25);
Menu->AddItem(0, "[Back]", 26);
Menu->SendTo(Plr);
}
case 19: //Goblin
{
Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 7109);
Plr->Emote(EMOTE_ONESHOT_CHEER);
Plr->Gossip_Complete();
}
break;
case 20: //Felguard
{
Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 18287);
Plr->Emote(EMOTE_ONESHOT_CHEER);
Plr->Gossip_Complete();
}
break;
case 21: //Ogre
{
Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 1122);
Plr->Emote(EMOTE_ONESHOT_CHEER);
Plr->Gossip_Complete();
}
break;
case 22: // Pirate
{
Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 2347);
Plr->Emote(EMOTE_ONESHOT_CHEER);
Plr->Gossip_Complete();
}
break;
case 23: //Skeleton
{
Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 17970);
Plr->Emote(EMOTE_ONESHOT_CHEER);
Plr->Gossip_Complete();
}
break;
case 24: //Illidan
{
Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 21135);
Plr->Emote(EMOTE_ONESHOT_CHEER);
Plr->Gossip_Complete();
}
break;
case 25: //demorph
{
Plr->Emote(EMOTE_ONESHOT_CHEER);
Plr->DeMorph();
Plr->Gossip_Complete();
}
break;
case 26: // [back]
GossipHello(pObject, Plr, true);
break;*/
case 27: //PvP item
{
Plr->GetItemInterface()->SafeAddItem(35090, INVENTORY_SLOT_NOT_SET, 23);
Plr->Gossip_Complete();
}
break;
}
}
};
Good? want compiled?