mirror of
https://github.com/ornfelt/azerothcore_lua_scripts
synced 2026-08-22 06:26:03 -04:00
206 lines
8.7 KiB
C++
206 lines
8.7 KiB
C++
#include "ScriptPCH.h"
|
||
#include "ScriptedEscortAI.h"
|
||
|
||
|
||
class teleguy : public CreatureScript
|
||
{
|
||
public:
|
||
teleguy() : CreatureScript("teleguy") { }
|
||
|
||
|
||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||
{
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "К продовцам в шатрат." , GOSSIP_SENDER_MAIN, 1201);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "|cffff0000[Дуель Зона]|r" , GOSSIP_SENDER_MAIN, 1200);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "|cffff0000[Арена Гурубаши]|r" , GOSSIP_SENDER_MAIN, 1291);
|
||
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Озеро ледяных оков" , GOSSIP_SENDER_MAIN, 1290);
|
||
if ( pPlayer->GetTeam() == ALLIANCE )
|
||
{
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Дарнасс." , GOSSIP_SENDER_MAIN, 1203);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Экзодар." , GOSSIP_SENDER_MAIN, 1216);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Штормград." , GOSSIP_SENDER_MAIN, 1206);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Стальгорн." , GOSSIP_SENDER_MAIN, 1224);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Шаттрат." , GOSSIP_SENDER_MAIN, 1287);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Даларан." , GOSSIP_SENDER_MAIN, 1205);
|
||
}
|
||
else
|
||
{
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Оргриммар." , GOSSIP_SENDER_MAIN, 1215);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Луносвет." , GOSSIP_SENDER_MAIN, 1217);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Подгород." , GOSSIP_SENDER_MAIN, 1213);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Громовой утёс." , GOSSIP_SENDER_MAIN, 1225);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Шаттрат." , GOSSIP_SENDER_MAIN, 1287);
|
||
pPlayer->ADD_GOSSIP_ITEM(5, "Даларан." , GOSSIP_SENDER_MAIN, 1205);
|
||
}
|
||
|
||
pPlayer->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,pCreature->GetGUID());
|
||
return true;
|
||
}
|
||
|
||
|
||
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action)
|
||
{
|
||
if(!player->getAttackers().empty())
|
||
{
|
||
player->CLOSE_GOSSIP_MENU();
|
||
creature->MonsterWhisper("Вы в бою!", player->GetGUID(), true);
|
||
return true;
|
||
|
||
}
|
||
|
||
switch(action)
|
||
{
|
||
case 1200:
|
||
player->CLOSE_GOSSIP_MENU();
|
||
|
||
case 0: //1
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 1://2
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 2://3
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 3://4
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 4://5
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 5: //6
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 6://7
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 7://8
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 8://9
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
case 9://10
|
||
player->TeleportTo(1, -2619.429443f, -1341.416382f, 1.138281f, 0.859594f); //map, x, y , z, o
|
||
break;
|
||
|
||
ChatHandler(player).PSendSysMessage("[ПВП Система]: Вы вступили в бой!");
|
||
|
||
char MSG[200];
|
||
sprintf(MSG, "[ПВП Система]: Игрок '|cff0000f1 %s |r' вступил в бой!", player->GetName());
|
||
sWorld->SendZoneText(pvp_zone_id, MSG);
|
||
}
|
||
}else
|
||
ChatHandler(player).PSendSysMessage("Слишком много игроков, подождите пока освободиться место!");
|
||
break;
|
||
case 1201: //Start location
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(530, -1810.92f, 5412.58f, -12.4277f, 0.0f);
|
||
break;
|
||
case 1203: // Teleport to Darnassus
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(1, 9947.52f, 2482.73f, 1316.21f, 0.0f);
|
||
break;
|
||
case 1206: // Teleport to Stormwind
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(0, -8960.14f, 516.266f, 96.3568f, 0.0f);
|
||
break;
|
||
|
||
case 1205: // Teleport to Dalaran
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(571, 5804.14f, 624.770f, 647.7670f, 1.64f);
|
||
break;
|
||
|
||
case 1213: // Teleport to Undercity
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(0, 1819.71f, 238.79f, 60.5321f, 0.0f);
|
||
break;
|
||
|
||
case 1215: // Teleport to Orgrimmar
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(1, 1552.5f, -4420.66f, 8.94802f, 0.0f);
|
||
break;
|
||
|
||
case 1216: // Teleport to Exodar
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(530, -4073.03f, -12020.4f, -1.47f, 0.0f);
|
||
break;
|
||
|
||
case 1217: // Teleport to Silvermoon
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(530, 9338.74f, -7277.27f, 13.7895f, 0.0f);
|
||
break;
|
||
|
||
case 1225: // Teleport to Thunder Bluff
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(1, -1280.19f,127.21f,131.35f,5.16f);
|
||
break;
|
||
|
||
case 1224: // Teleport to Ironforge
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(0, -4924.07f, -951.95f, 501.55f, 5.40f);
|
||
break;
|
||
case 1287:// Shattrath City
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(530, -1850.209961f, 5435.821777f, -10.961435f, 3.403913f);
|
||
break;
|
||
case 1290:// OLO
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(571, 4605.400879f, 2848.147461f, 396.896851f, 0.244662f);
|
||
break;
|
||
case 1291:// мясо
|
||
player->CLOSE_GOSSIP_MENU();
|
||
player->TeleportTo(0, -13180.426758f, 339.243744f, 42.979755f, 4.277194f);
|
||
break;
|
||
|
||
}
|
||
|
||
return true;
|
||
}
|
||
};
|
||
|
||
class npc_teleporter_country : public CreatureScript
|
||
{
|
||
public:
|
||
npc_teleporter_country() : CreatureScript("npc_teleporter_country") { }
|
||
|
||
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
||
{
|
||
if (pCreature->isQuestGiver())
|
||
pPlayer->PrepareQuestMenu(pCreature->GetGUID());
|
||
|
||
if(pPlayer->GetTeam() == ALLIANCE)
|
||
pPlayer->ADD_GOSSIP_ITEM(9, "Телепортироваться к подножию города Штормграда" , GOSSIP_SENDER_MAIN, 100);
|
||
else
|
||
pPlayer->ADD_GOSSIP_ITEM(9, "Телепортироваться к подножию города Оргриммара" , GOSSIP_SENDER_MAIN, 101);
|
||
|
||
pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
|
||
return true;
|
||
}
|
||
|
||
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
|
||
{
|
||
pPlayer->PlayerTalkClass->ClearMenus();
|
||
switch(uiAction)
|
||
{
|
||
case 100:
|
||
pPlayer->CLOSE_GOSSIP_MENU();
|
||
pPlayer->TeleportTo(0, -9111.47f, 397.90f, 92.52f, 3.79f);
|
||
break;
|
||
|
||
case 101:
|
||
pPlayer->CLOSE_GOSSIP_MENU();
|
||
pPlayer->TeleportTo(1, 1345.58f, -4376.42f, 26.17f, 3.35f);
|
||
break;
|
||
}
|
||
|
||
return true;
|
||
}
|
||
};
|
||
|
||
void AddSC_teleguy()
|
||
{
|
||
new teleguy;
|
||
new npc_teleporter_country;
|
||
}
|