Собственно сам скрипт баффера
Код:
#include "StdAfx.h" #include "Setup.h" #ifdef WIN32 #pragma warning(disable:4305) #endif #define NPCID 400035 //Put your NPC ID here and enjoy!!! class SCRIPT_DECL GlobalNPC : public GossipScript { public: void GossipHello(Object * pObject, Player* Plr, bool AutoSend); void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code); void GossipEnd(Object * pObject, Player* Plr); void Destroy() { delete this; } }; void GlobalNPC::GossipHello(Object * pObject, Player* Plr, bool AutoSend) { GossipMenu *Menu; objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); if(Plr->getRace()== 10||Plr->getRace()== 2||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 5) {Menu->AddItem(6, "|CFF8B0000Buffs", 1);}else{Menu->AddItem(6, "|CFF191970Buffs", 1);} if(AutoSend) Menu->SendTo(Plr); } void GlobalNPC::GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code) { Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL; if(pCreature==NULL) return; GossipMenu * Menu; switch(IntId) { case 0: GossipHello(pObject, Plr, true); break; case 1: { objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr); Menu->AddItem(6, "Blessing Of Kings", 333331); Menu->AddItem(6, "Blessing Of Might", 333332); Menu->AddItem(6, "Blessing Of Wisdom", 333333); Menu->AddItem(6, "Power Word: Shield", 333334); Menu->AddItem(6, "Shadow Protection", 333335); Menu->AddItem(6, "Prayer of Fortitude", 333336); Menu->AddItem(6, "Inner Fire", 333337); Menu->AddItem(6, "Horn of Winter", 333338); Menu->AddItem(6, "Frost Presence", 333339); Menu->AddItem(6, "Unholy Presence", 333340); Menu->AddItem(6, "Blood Presence", 3333341); Menu->AddItem(6, "Aspect of the Cheetah", 3333342); Menu->AddItem(6, "Aspect of the Beast", 333343); Menu->AddItem(6, "Tureshot Aura", 333344); Menu->AddItem(6, "Fel Armor", 333345); Menu->AddItem(6, "Windfury Weapon", 333346); Menu->AddItem(6, "Lightning Shield", 333347); Menu->SendTo(Plr); } break; case 333331: { Plr->CastSpell(Plr, 56525, 0); } break; case 333332: { Plr->CastSpell(Plr, 48932, 0); } break; case 333333: { Plr->CastSpell(Plr, 48932, 0); } break; case 333334: { Plr->CastSpell(Plr, 48066, 0); } break; case 333335: { Plr->CastSpell(Plr, 48169, 0); } break; case 333336: { Plr->CastSpell(Plr, 48162, 0); } break; case 333337: { Plr->CastSpell(Plr, 48168, 0); } break; case 333338: { Plr->CastSpell(Plr, 57623, 0); } break; case 333339: { Plr->CastSpell(Plr, 48263, 0); } break; case 333340: { Plr->CastSpell(Plr, 48263, 0); } break; case 333341: { Plr->CastSpell(Plr, 48266, 0); } break; case 333342: { Plr->CastSpell(Plr, 5118, 0); } break; case 333343: { Plr->CastSpell(Plr, 13161, 0); } break; case 333344: { Plr->CastSpell(Plr, 19506, 0); } break; case 333345: { Plr->CastSpell(Plr, 47893, 0); } break; case 333346: { Plr->CastSpell(Plr, 58804, 0); } break; case 333347: { Plr->CastSpell(Plr, 49281, 0); } break; } } void GlobalNPC::GossipEnd(Object * pObject, Player* Plr) { GossipScript::GossipEnd(pObject, Plr); } void SetupGlobalNPC(ScriptMgr * mgr) { GossipScript * gs = (GossipScript*) new GlobalNPC(); mgr->register_gossip_script(NPCID, gs); }