Jestli chceš tady se podívej jak jsem to dělal já, jde mi to v poho, ale pokud hráč nemá ridding na 350 tak ho to při změně zóny dismountne.
#include "ScriptPCH.h"
#define MSG1 100001
#define MSG2 100002
#define PRICE 0 // Default: 0(cooper)
bool GossipHello_custom_npc_mounts(Player *player, Creature *_creature)
{
if (player->isInCombat())
{
player->CLOSE_GOSSIP_MENU();
_creature->MonsterWhisper("You are in combat. Come back later!", player->GetGUID());
return true;
}
player->SEND_GOSSIP_MENU(MSG1, _creature->GetGUID());
player->ADD_GOSSIP_ITEM(5, "Red Riding Nether Ray", GOSSIP_SENDER_MAIN, 7001);
player->ADD_GOSSIP_ITEM(5, "Swift Freen Wind Rider", GOSSIP_SENDER_MAIN, 7002);
player->ADD_GOSSIP_ITEM(5, "Ashes of Al'ar", GOSSIP_SENDER_MAIN, 7003);
player->ADD_GOSSIP_ITEM(5, "Green Proto-Drake", GOSSIP_SENDER_MAIN, 7004);
player->ADD_GOSSIP_ITEM(5, "Mimiron's Head", GOSSIP_SENDER_MAIN, 7005);
player->ADD_GOSSIP_ITEM(5, "Turbo-Charged Flying Machine", GOSSIP_SENDER_MAIN, 7006);
player->ADD_GOSSIP_ITEM(5, "X-51 Nether-Rocket X-TREME", GOSSIP_SENDER_MAIN, 7007);
player->ADD_GOSSIP_ITEM(5, "Flying Broom", GOSSIP_SENDER_MAIN, 7008);
player->ADD_GOSSIP_ITEM(5, "Deadly Gladiator's Frost Wyrm", GOSSIP_SENDER_MAIN, 7009);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
return true;
}
void SendDefaultMenu_custom_npc_mounts(Player *player, Creature *_creature, uint32 action )
{
switch(action)
{
case 7000: //Menu - Main
player->SEND_GOSSIP_MENU(MSG1, _creature->GetGUID());
player->ADD_GOSSIP_ITEM(5, "Red Riding Nether Ray", GOSSIP_SENDER_MAIN, 7001);
player->ADD_GOSSIP_ITEM(5, "Swift Green Wind Rider", GOSSIP_SENDER_MAIN, 7002);
player->ADD_GOSSIP_ITEM(5, "Ashes of Al'ar", GOSSIP_SENDER_MAIN, 7003);
player->ADD_GOSSIP_ITEM(5, "Green Proto-Drake", GOSSIP_SENDER_MAIN, 7004);
player->ADD_GOSSIP_ITEM(5, "Mimiron's Head", GOSSIP_SENDER_MAIN, 7005);
player->ADD_GOSSIP_ITEM(5, "Turbo-Charged Flying Machine", GOSSIP_SENDER_MAIN, 7006);
player->ADD_GOSSIP_ITEM(5, "X-51 Nether-Rocket X-TREME", GOSSIP_SENDER_MAIN, 7007);
player->ADD_GOSSIP_ITEM(5, "Flying Broom", GOSSIP_SENDER_MAIN, 7008);
player->ADD_GOSSIP_ITEM(5, "Deadly Gladiator's Frost Wyrm", GOSSIP_SENDER_MAIN, 7009);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
break;
case 7001: //Red Riding Nether Ray
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(39800,player);
}
player->CLOSE_GOSSIP_MENU();
break;
case 7002: //Swift Green Wind Rider
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(32295,player);
}
player->CLOSE_GOSSIP_MENU();
break;
case 7003: //Ashes of Al'ar
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(40192,player);
}
player->CLOSE_GOSSIP_MENU();
break;
case 7004: //Green Proto-Drake
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(61294,player);
}
player->CLOSE_GOSSIP_MENU();
break;
case 7005: //Mimiron's Head
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(63796,player);
}
player->CLOSE_GOSSIP_MENU();
break;
case 7006: //Turbo-Charged Flying Machine
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(44151,player);
}
player->CLOSE_GOSSIP_MENU();
break;
case 7007: //X-51 Nether-Rocket X-TREME
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(46199,player);
}
player->CLOSE_GOSSIP_MENU();
break;
case 7008: //Flying Broom
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(42667,player);
}
player->CLOSE_GOSSIP_MENU();
break;
case 7009: //Deadly Gladiator's Frost Wyrm
if (player->GetMoney() > PRICE)
{
player->ModifyMoney(-PRICE);
_creature->AddAura(64927,player);
}
player->CLOSE_GOSSIP_MENU();
break;
default:
break;
}
}
bool GossipSelect_custom_npc_mounts(Player *player, Creature *_creature, uint32 sender, uint32 action)
{
if (player->isInCombat())
{
player->CLOSE_GOSSIP_MENU();
_creature->MonsterWhisper("You are in combat. Come back later!", player->GetGUID());
return true;
}
// Main menu
if (sender == GOSSIP_SENDER_MAIN)
SendDefaultMenu_custom_npc_mounts( player, _creature, action );
return true;
}
void AddSC_custom_npc_mounts(){
Script *newscript;
newscript = new Script;
newscript->Name = "custom_npc_mounts";
newscript->pGossipHello = &GossipHello_custom_npc_mounts;
newscript->pGossipSelect = &GossipSelect_custom_npc_mounts;
newscript->RegisterSelf();
newscript->pItemHello = NULL;
newscript->pGOHello = NULL;
newscript->pAreaTrigger = NULL;
newscript->pItemQuestAccept = NULL;
newscript->pGOQuestAccept = NULL;
newscript->pGOChooseReward = NULL;
}