📄 gossip_teleportnpc.cpp
字号:
#include "StdAfx.h"
#include "Setup.h"
class SCRIPT_DECL TeleportNPC : public GossipScript
{
public:
ADD_GOSSIP_FACTORY_FUNCTION(TeleportNPC);
void GossipHello(Creature * pCreature, Player * Plr, bool AutoSend)
{
GossipMenu *Menu;
objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
Menu->AddItem(5, " 把这里设置成回城点 ", 98);
if (Plr->GetTeam() > 0)
{ Menu->AddItem(0, " 部落主城传送 ", 1); }
else
{ Menu->AddItem(0, " 联盟主城传送 ", 2); }
Menu->AddItem(0, " 外域传送 ", 3);
Menu->AddItem(0, " 主城传送 ",100);//100 开我加的
Menu->AddItem(0, " 初级副本传送 ",101);
Menu->AddItem(0, " 中级副本传送 ",102);
Menu->AddItem(0, " 团队副本传送 ",103);
Menu->AddItem(0, " 外域副本传送1 ",104);
Menu->AddItem(0, " 外域副本传送2 ", 105);
Menu->AddItem(0, " 个人银行 ", 106);
Menu->AddItem(0, " 开通飞行点 ", 107);
Menu->AddItem(0, " 领取工资 ", 108);
Menu->AddItem(0, " 外域传送 ", 109);
Menu->AddItem(0, " 野外BOSS传送 ", 110);
if(AutoSend)
Menu->SendTo(Plr);
}
void GossipSelectOption(Creature* pCreature, Player* Plr, uint32 Id, uint32 IntId)
{
GossipMenu * Menu;
switch(IntId)
{
case 0: // Return to start
GossipHello(pCreature, Plr, true);
break;
case 98: // BINDER
Plr->GetSession()->SendInnkeeperBind(pCreature);
break;
case 1: // Horde
objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
Menu->AddItem(5, " 部落 银月城 ", 4);
Menu->AddItem(5, " 部落 奥格瑞玛 ", 5);
Menu->AddItem(5, " 部落 雷霆崖 ", 6);
Menu->AddItem(5, " 部落 幽暗城 ", 7);
Menu->AddItem(0, "[返回]", 99);
Menu->SendTo(Plr);
break;
case 2: // Alliance
objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
Menu->AddItem(5, " 联盟 埃索达 ", 8);
Menu->AddItem(5, " 联盟 暴风城 ", 9);
Menu->AddItem(5, " 联盟 铁炉堡 ", 10);
Menu->AddItem(5, " 联盟 达纳苏斯 ", 11);
Menu->AddItem(0, "[返回]", 99);
Menu->SendTo(Plr);
break;
case 3: // Outland
if(Plr->getLevel() < 60)
{
pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL," 你还没有资格进入(等级限制60). ");
Plr->Gossip_Complete();
}else{
objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
Menu->AddItem(5, " 黑暗之门 ", 12);
Menu->AddItem(5, " 赞加沼泽 ", 13);
Menu->AddItem(5, " 纳格兰 ", 14);
Menu->AddItem(5, " 刀锋山 ", 15);
Menu->AddItem(5, " 虚空风暴 ", 16);
Menu->AddItem(5, " 泰罗卡森林 ", 17);
Menu->AddItem(5, " 影月谷 ", 18);
Menu->AddItem(0, "[返回]", 99);
Menu->SendTo(Plr);
}
break;
//////////////////
// Horde submenu
////////
case 4://Silvermoon
{
Plr->EventTeleport(530, 9400.486328, -7278.376953, 14.206780);
}break;
case 5://Orgrimmar
{
Plr->EventTeleport(1, 1371.068970, -4370.801758, 26.052483);
}break;
case 6://ThunderBluff
{
Plr->EventTeleport(1, -1304.569946, 205.285004, 68.681396);
}break;
case 7://UnderCity
{
Plr->EventTeleport(0, 2050.203125, 285.650604, 56.994549);
}break;
////////////////
// Alliance Menu
////////
case 8: //Exodar
{
Plr->EventTeleport(530, -4072.202393, -12014.337891, -1.277277);
}break;
case 9: //Stormwind
{
Plr->EventTeleport(0, -9100.480469, 406.950745, 92.594185);
}break;
case 10: //Ironforge
{
Plr->EventTeleport(0, -5028.265137, -825.976563, 495.301575);
}break;
case 11: //Darnassus
{
Plr->EventTeleport(1, 9985.907227, 1971.155640, 1326.815674);
}break;
////////////////
// Outland Menu
////////
case 12: //Hellfire Peninsula
{
Plr->EventTeleport(530, -248.160004, 922.348999, 84.379799);
}break;
case 13: //Zangermarsh
{
Plr->EventTeleport(530, -225.863632, 5405.927246, 22.346397);
}break;
case 14: //Nagrand
{
Plr->EventTeleport(530, -468.232330, 8418.666016, 28.031298);
}break;
case 15: //Blades Edge Mountains
{
Plr->EventTeleport(530, 1471.672852, 6828.047852, 107.759239);
}break;
case 16: //Netherstorm
{
Plr->EventTeleport(530, 3396.123779, 4182.208008, 137.097992);
}break;
case 17: //Terokkar Forest
{
Plr->EventTeleport(530, -1202.426636, 5313.692871, 33.774723);
}break;
case 18: //Shadowmoon Valley
{
Plr->EventTeleport(530, -2859.522461, 3182.34773, 10.008426);
}break;
case 99: //main menu
{
objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
Menu->AddItem(5, " 把这里设置成回城点 ", 98);
if (Plr->GetTeam() > 0)
{ Menu->AddItem(0, " 部落主城传送 ", 1); }
else
{ Menu->AddItem(0, " 联盟主城传送 ", 2); }
Menu->AddItem(0, " 外域传送 ", 3);
Menu->AddItem(0, " 主城传送 ",100);//100 开我加的
Menu->AddItem(0, " 初级副本传送 ",101);
Menu->AddItem(0, " 中级副本传送 ",102);
Menu->AddItem(0, " 团队副本传送 ",103);
Menu->AddItem(0, " 外域副本传送1 ",104);
Menu->AddItem(0, " 外域副本传送2 ", 105);
Menu->AddItem(0, " 个人银行 ", 106);
Menu->AddItem(0, " 开通飞行点 ", 107);
Menu->AddItem(0, " 领取工资 ", 108);
Menu->AddItem(0, " 外域传送 ", 109);
Menu->AddItem(0, " 野外BOSS传送 ", 110);
Menu->SendTo(Plr);
}break;
case 100://主城传送
{
objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
Menu->AddItem(5, " 联盟 暴风城 ", 1001);
Menu->AddItem(5, " 联盟 铁炉堡 ", 1002);
Menu->AddItem(5, " 联盟 达纳苏斯 ", 1003);
Menu->AddItem(5, " 联盟 埃索达 ", 1004);
Menu->AddItem(5, " 部落 奥格瑞玛 ", 1005);
Menu->AddItem(5, " 部落 雷霆崖 ", 1006);
Menu->AddItem(5, " 部落 幽暗城 ", 1007);
Menu->AddItem(5, " 部落 银月城 ", 1008);
Menu->AddItem(5, " 中立 棘齿城 ", 1009);
Menu->AddItem(5, " 中立 藏宝海湾 ", 10010);
Menu->AddItem(5, " 中立 加基森 ", 10011);
Menu->AddItem(5, " 中立 塞纳里奥要塞 ",10012);
Menu->AddItem(0, "[返回]", 99);
Menu->SendTo(Plr);
}break;
case 1001://联盟 暴风城
{
Plr->EventTeleport(0,-9065,434,94);
}break;
case 1002://联盟 铁炉堡
{
Plr->EventTeleport(0,-5032,-819,495);
}break;
case 1003://联盟 达纳苏斯
{
Plr->EventTeleport(1,9961,2055,1329);
}break;
case 1004://联盟 埃索达
{
Plr->EventTeleport(530,-4071.7,-12036.7,-1.5);
}break;
case 1005://部落 奥格瑞玛
{
Plr->EventTeleport(1,1317,-4383,27);
}break;
case 1006://部落 雷霆崖
{
Plr->EventTeleport(1,-1391,140,23);
}break;
case 1007://部落 幽暗城
{
Plr->EventTeleport(0,1909,235,53);
}break;
case 1008://部落 银月城
{
Plr->EventTeleport(530,9336.9,-7278.4,13.6);
}break;
case 1009://中立 棘齿城
{
Plr->EventTeleport(1,-977,-3788,6);
}break;
case 10010://中立 藏宝海湾
{
Plr->EventTeleport(0,-14302,518,9);
}break;
case 10011://中立 加基森
{
Plr->EventTeleport(1,-7103.7,-2961.6,10.8);
}break;
case 10012://中立 塞纳里奥要塞
{
Plr->EventTeleport(1,-6831.1,748.8,42.5);
}break;
case 101://初级副本传送
{
objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
Menu->AddItem(5, " [14] 怒焰裂谷 ", 1011);
Menu->AddItem(5, " [19] 死亡矿井 ", 1012);
Menu->AddItem(5, " [22] 哀嚎洞穴 ", 1013);
Menu->AddItem(5, " [24] 影牙城堡 ", 1014);
Menu->AddItem(5, " [26] 黑暗深渊 ", 1015);
Menu->AddItem(5, " [27] 暴风城监狱 ", 1016);
Menu->AddItem(5, " [31] 剃刀沼泽 ", 1017);
Menu->AddItem(5, " [33] 诺莫瑞根 ", 1018);
Menu->AddItem(5, " [40] 血色修道院 ", 1019);
Menu->AddItem(5, " [42] 剃刀高地 ", 10110);
Menu->AddItem(5, " [45] 奥达曼 ", 10111);
Menu->AddItem(0, "[返回]", 99);
Menu->SendTo(Plr);
}break;
case 1011://初级副本传送[14] 怒焰裂谷
{
//Plr->EventTeleport(389,2.024650,-10.021000,-16.187500);
/*
//Map *pMap = sWorldCreator.GetMap(389);
//MapMgr *pMapMgr = pMap->CreateMapMgrInstance();
//sLog.outString("Instance %u on map %u created.", pMapMgr->GetInstanceID(), pMapMgr->GetMapId());
//Plr->SafeTeleport(389,pMapMgr->GetInstanceID(),LocationVector(2.024650,-10.021000,-16.187500));
*/
Teleport(Plr,389,2.024650,-10.021000,-16.187500,0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -