?? 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 + -