Will work for rep! (lol, just a joke mods, chill) menu

User Tag List

Page 1 of 3 123 LastLast
Results 1 to 15 of 40
  1. #1
    berryman13's Avatar Contributor
    Reputation
    251
    Join Date
    Dec 2006
    Posts
    856
    Thanks G/R
    0/2
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Will work for rep! (lol, just a joke mods, chill)

    So yeah, I am able to help you with NPC making, and any sql you might need, whether it be instances, noc;s, quests, items, or anything.

    I am also able to do C++ scripts, for example:
    Custom Teleporters
    Custom Buffers
    Custom AI
    Custom ANYTHING!

    Just ask and i'll do it, but please, if i work on something, giving some rep wouldn't hurt. (And no, i'm not asking for rep, I just don't want to do a crapload of work and get nothing in return but "kthxbai."
    PLEASE REMEMBER! A simple thanks can mean so much
    CHEAP GOLD ON [US] [ALLIANCE] STORMRAGE & KEL'THUZAD! -https://bit.ly/1nf04nF

    - BERRYMAN13

    Will work for rep! (lol, just a joke mods, chill)
  2. #2
    SectorSeven's Avatar Banned
    Reputation
    444
    Join Date
    Oct 2007
    Posts
    1,948
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Can you give me the source for healer and buff npcs

  3. #3
    Shao111's Avatar Active Member
    Reputation
    33
    Join Date
    Jul 2007
    Posts
    281
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I've been looking for a version of the portable teleporter/morpher but with a few additional things. The option to buy PvP Gear as well as Mounts (link to a vendor somehow), Teleports to GM Island and Emerald Dream (among other basic ports). If you could release the source code and what you successfully compiled with (msvc03,05,0, that would be nice too.

  4. #4
    berryman13's Avatar Contributor
    Reputation
    251
    Join Date
    Dec 2006
    Posts
    856
    Thanks G/R
    0/2
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ooh, nice nice, fast responces, ok, i'll help you both, this is a placeholder, i need to gather some info.
    PLEASE REMEMBER! A simple thanks can mean so much
    CHEAP GOLD ON [US] [ALLIANCE] STORMRAGE & KEL'THUZAD! -https://bit.ly/1nf04nF

    - BERRYMAN13

  5. #5
    berryman13's Avatar Contributor
    Reputation
    251
    Join Date
    Dec 2006
    Posts
    856
    Thanks G/R
    0/2
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Buff_NPC.cpp
    Code:
    #include "StdAfx.h"
    #include "Setup.h"
    
    class SCRIPT_DECL BuffNPC1 : 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 BuffNPC1::GossipHello(Object * pObject, Player* Plr, bool AutoSend)
        {
            GossipMenu *Menu;
            objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    
    		Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL;
    
    		if(Plr->getLevel() >= 80)
    		{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You are too powerful for me to buff you." );
    		}
    		else{
    		Menu->AddItem(0, "Level 10 Buffs - 1 Gold Each", 1);  
    		Menu->AddItem(0, "Level 20 Buffs - 2 Gold Each", 2); 
    		Menu->AddItem(0, "Level 30 Buffs - 3 Gold Each", 3); 
    		Menu->AddItem(0, "Level 40 Buffs - 4 Gold Each", 4); 
    		Menu->AddItem(0, "Level 50 Buffs - 5 Gold Each", 5); 
    		Menu->AddItem(0, "Level 60 Buffs - 5 Gold Each", 6); 
    		
    
            if(AutoSend)
                Menu->SendTo(Plr);
    		}
        }
    
    void BuffNPC1::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:     // Return to start
    				GossipHello(pObject, Plr, true);
                break;
    
    		case 1:     
    	{
                    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    		if(Plr->getLevel() >= 10)
    		{
    			Menu->AddItem(5, "Strength", 8);
                Menu->AddItem(5, "Intelligence", 9);
                Menu->AddItem(5, "Stamina", 10);
                Menu->AddItem(5, "Spirit", 11);
                Menu->AddItem(5, "Agility", 12);
    			Menu->AddItem(5, "Protection", 43);
                Menu->AddItem(0, "[Back]", 99);
                Menu->SendTo(Plr);
    		}
    		else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You must be at least level 10 to use these buffs." );
    			Plr->Gossip_Complete();
    		}
    	}
                break;
    
            case 2:  
    	{   
                    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    		if(Plr->getLevel() >= 20)
    		{
    		Menu->AddItem(5, "Strength", 13);
                    Menu->AddItem(5, "Intelligence", 14);
                    Menu->AddItem(5, "Stamina", 15);
                    Menu->AddItem(5, "Spirit", 16);
                    Menu->AddItem(5, "Agility", 17);
    		Menu->AddItem(5, "Protection", 44);
                    		Menu->AddItem(0, "[Back]", 99);
                    Menu->SendTo(Plr);
    		}
    		else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You must be at least level 20 to use these buffs." );
    			Plr->Gossip_Complete();
    		}
    	}
                break;
    
            case 3:   
    	{  
                    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    		if(Plr->getLevel() >= 30)
    		{
    		Menu->AddItem(5, "Strength", 18);
                    Menu->AddItem(5, "Intelligence", 19);
                    Menu->AddItem(5, "Stamina", 20);
                    Menu->AddItem(5, "Spirit", 21);
                    Menu->AddItem(5, "Agility", 22);
    		Menu->AddItem(5, "Protection", 45);
                    		Menu->AddItem(0, "[Back]", 99);
                    Menu->SendTo(Plr);
    		}
    		else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You must be at least level 30 to use these buffs." );
    			Plr->Gossip_Complete();
    		}
    	}
                break;
    
            case 4:    
    	{ 
                    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    		if(Plr->getLevel() >= 40)
    		{
    		Menu->AddItem(5, "Strength", 23);
                    Menu->AddItem(5, "Intelligence", 24);
                    Menu->AddItem(5, "Stamina", 25);
                    Menu->AddItem(5, "Spirit", 26);
                    Menu->AddItem(5, "Agility", 27);
    		Menu->AddItem(5, "Protection", 46);
                    		Menu->AddItem(0, "[Back]", 99);
                    Menu->SendTo(Plr);
    		}
    		else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You must be at least level 40 to use these buffs." );
    			Plr->Gossip_Complete();
    		}
    	}
                break;
    
            case 5:  	
    	{   
                    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    		if(Plr->getLevel() >= 50)
    		{
    		Menu->AddItem(5, "Strength", 28);
                    Menu->AddItem(5, "Intelligence", 29);
                    Menu->AddItem(5, "Stamina", 30);
                    Menu->AddItem(5, "Spirit", 31);
                    Menu->AddItem(5, "Agility", 32);
    		Menu->AddItem(5, "Protection", 47);
                    		Menu->AddItem(0, "[Back]", 99);
                    Menu->SendTo(Plr);
    		}
    		else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You must be at least level 50 to use these buffs." );
    			Plr->Gossip_Complete();
    		}
    	}
                break;
    
            case 6:  	
    	{   
                    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    		if(Plr->getLevel() >= 60)
    		{
    		Menu->AddItem(5, "Strength", 48);
                    Menu->AddItem(5, "Intelligence", 49);
                    Menu->AddItem(5, "Stamina", 50);
                    Menu->AddItem(5, "Spirit", 51);
                    Menu->AddItem(5, "Agility", 52);
    		Menu->AddItem(5, "Protection", 57);
                    		Menu->AddItem(0, "[Back]", 99);
                    Menu->SendTo(Plr);
    		}
    		else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You must be at least level 60 to use these buffs." );
    			Plr->Gossip_Complete();
    		}
    	}
                break;
    
            case 7:  	
    	{   
                    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    		if((Plr->getLevel() >= 70)&&(Plr->getLevel() <= 79))
    		{
    		Menu->AddItem(5, "Strength", 58);
                    Menu->AddItem(5, "Intelligence", 59);
                    Menu->AddItem(5, "Stamina", 60);
                    Menu->AddItem(5, "Spirit", 61);
                    Menu->AddItem(5, "Agility", 62);
    		Menu->AddItem(5, "Protection", 67);
                    		Menu->AddItem(0, "[Back]", 99);
                    Menu->SendTo(Plr);
    		}
    		else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You must be at least level 70 to use these buffs." );
    			Plr->Gossip_Complete();
    		}
    	}
                break;
    
    // Level 10
    
            case 8:     // Strength
    	        {
    		uint32 price=10000;// 1G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8118, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 9:     // Intelligence
    	        {
    		uint32 price=10000;// 1G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8096, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 10:     // Stamina
    	        {
    		uint32 price=10000;// 1G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8099, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 11:     // Spirit
    	        {
    		uint32 price=10000;// 1G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8112, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 12:     // Agility
    	        {
    		uint32 price=10000;// 1G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8115, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
    // Level 20
    
            case 13:     // Strength
    	        {
    		uint32 price=20000;// 2G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8119, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 14:     // Intelligence
    	        {
    		uint32 price=20000;// 2G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8097, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 15:     // Stamina
    	        {
    		uint32 price=20000;// 2G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8100, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 16:     // Spirit
    	        {
    		uint32 price=20000;// 2G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8113, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 17:     // Agility
    	        {
    		uint32 price=20000;// 2G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8116, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
    // Level 30
    
            case 18:     // Strength
    	        {
    		uint32 price=30000;// 3G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8120, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 19:     // Intelligence
    	        {
    		uint32 price=30000;// 3G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8098, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 20:     // Stamina
    	        {
    		uint32 price=30000;// 3G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8101, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 21:     // Spirit
    	        {
    		uint32 price=30000;// 3G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8114, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 22:     // Agility
    	        {
    		uint32 price=30000;// 3G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8117, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
    // Level 40
    
            case 23:     // Strength
    	        {
    		uint32 price=40000;// 4G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 12179, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 24:     // Intelligence
    	        {
    		uint32 price=40000;// 4G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 12176, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 25:     // Stamina
    	        {
    		uint32 price=40000;// 4G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 12178, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 26:     // Spirit
    	        {
    		uint32 price=40000;// 4G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 12177, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 27:     // Agility
    	        {
    		uint32 price=40000;// 4G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 12174, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
    // Level 50
    
            case 28:     // Strength
    	        {
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33082, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 29:     // Intelligence
    	        {
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33078, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 30:     // Stamina
    	        {
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33081, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 31:     // Spirit
    	        {
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33080, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 32:     // Agility
    	        {
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33077, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 43:     // Protection
    	        {
    		uint32 price=10000;// 1G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8091, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 44:     // Protection
    	        {
    		uint32 price=20000;// 2G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8094, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 45:     // Protection
    	        {
    		uint32 price=30000;// 3G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8095, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 46:     // Protection
    	        {
    		uint32 price=40000;// 4G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 12175, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 47:     // Protection
    	        {
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33079, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
    // Level 60
    
            case 48:     // Strength
    	        {
    		uint32 price=60000;// 6G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33082, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 49:     // Intelligence
    	        {
    		uint32 price=60000;// 6G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33078, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 50:     // Stamina
    	        {
    		uint32 price=60000;// 6G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33081, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 51:     // Spirit
    	        {
    		uint32 price=60000;// 6G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33080, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 52:     // Agility
    	        {
    		uint32 price=60000;// 6G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33077, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
            case 57:     // Protection
    	        {
    		uint32 price=60000;// 6G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    		if (currentgold>=price){
    		int32 newgold = currentgold - price; 
    		Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 33079, 0);
    		pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been blessed!" );
    			Plr->Gossip_Complete();
    		}else{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You don't have enough money." );
    			Plr->Gossip_Complete();
    		}
    		}
                break;
    
    
    		case 99: //main menu
           		{
    				objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    
    		Menu->AddItem(0, "Level 10 Buffs - 1 Gold Each", 1);  
    		Menu->AddItem(0, "Level 20 Buffs - 2 Gold Each", 2); 
    		Menu->AddItem(0, "Level 30 Buffs - 3 Gold Each", 3); 
    		Menu->AddItem(0, "Level 40 Buffs - 4 Gold Each", 4); 
    		Menu->AddItem(0, "Level 50 Buffs - 5 Gold Each", 5); 
    		Menu->AddItem(0, "Level 60 Buffs - 5 Gold Each", 6); 
    				Menu->SendTo(Plr);
    			}
            }
        }
    
    void BuffNPC1::GossipEnd(Object * pObject, Player* Plr)
    {
        GossipScript::GossipEnd(pObject, Plr);
    }
    
    void SetupBuffNPC1(ScriptMgr * mgr)
    {
    	GossipScript * gs = (GossipScript*) new BuffNPC1();
        /* Teleporter List */
        mgr->register_gossip_script(30005, gs);          // Osciron
    }
    PLEASE REMEMBER! A simple thanks can mean so much
    CHEAP GOLD ON [US] [ALLIANCE] STORMRAGE & KEL'THUZAD! -https://bit.ly/1nf04nF

    - BERRYMAN13

  6. #6
    berryman13's Avatar Contributor
    Reputation
    251
    Join Date
    Dec 2006
    Posts
    856
    Thanks G/R
    0/2
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Buff_NPC2.cpp
    Code:
    #include "StdAfx.h"
    #include "Setup.h"
    
    class SCRIPT_DECL BuffNPC2 : 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 BuffNPC2::GossipHello(Object * pObject, Player* Plr, bool AutoSend)
        {
            GossipMenu *Menu;
            objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    
    		Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL;
    
    		if(Plr->getLevel() >= 71)
    		{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You are too powerful for me to buff you." );
    		}
    		else{
    		Menu->AddItem(0, "Mark of the Wild", 1);  
    		Menu->AddItem(0, "Power Word: Fortitude", 2);  
    //		Menu->AddItem(0, "Lightning Shield", 3);  
    		Menu->AddItem(0, "Arcane Intellect", 4);  
    //		Menu->AddItem(0, "Frost/Ice Armor", 5);  
    
    
            if(AutoSend)
                Menu->SendTo(Plr);
    		}
        }
    
        void BuffNPC2::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:     // Return to start
    				GossipHello(pObject, Plr, true);
                break;
    
            case 1:    // Mark of the Wild 
    	{
    		if(Plr->getLevel() <= 9)
    		{
    		uint32 price=25000;// 2.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 1126, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Let the Wild consume you!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 10)&&(Plr->getLevel() <= 19))
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 5232, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Let the Wild consume you!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 20)&&(Plr->getLevel() <= 29))
    		{
    		uint32 price=100000;// 10G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 6756, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Let the Wild consume you!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 30)&&(Plr->getLevel() <= 39))
    		{
    		uint32 price=125000;// 12.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 5234, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Let the Wild consume you!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 40)&&(Plr->getLevel() <= 49))
    		{
    		uint32 price=150000;// 15G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8907, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Let the Wild consume you!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 50)&&(Plr->getLevel() <= 59))
    		{
    		uint32 price=175000;// 17.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 9884, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Let the Wild consume you!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 60)&&(Plr->getLevel() <= 69))
    		{
    		uint32 price=200000;// 20G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 9885, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Let the Wild consume you!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if(Plr->getLevel() == 70)
    		{
    		uint32 price=250000;// 25G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 26990, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Let the Wild consume you!" );
    			Plr->Gossip_Complete();
    			}
    		}
                break;
    		}
            case 2:    // Power Word: Fortitude
    	{
    		if(Plr->getLevel() <= 11)
    		{
    		uint32 price=25000;// 2.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 1243, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You should feel stronger now!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 12)&&(Plr->getLevel() <= 23))
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 1244, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You should feel stronger now!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 24)&&(Plr->getLevel() <= 35))
    		{
    		uint32 price=100000;// 10G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 1245, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You should feel stronger now!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 36)&&(Plr->getLevel() <= 47))
    		{
    		uint32 price=125000;// 12.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 2791, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You should feel stronger now!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 48)&&(Plr->getLevel() <= 59))
    		{
    		uint32 price=150000;// 15G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10937, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You should feel stronger now!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 60)&&(Plr->getLevel() <= 69))
    		{
    		uint32 price=175000;// 17.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10938, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You should feel stronger now!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if(Plr->getLevel() == 70)
    		{
    		uint32 price=200000;// 20G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 25389, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You should feel stronger now!" );
    			Plr->Gossip_Complete();
    			}
    		}
                break;
    		}
    
            case 3:    // Lightning Shield
    	{
    		if(Plr->getLevel() <= 7)
    		{
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You are not skilled enough yet!" );
    		}
    		if((Plr->getLevel() >= 8)&&(Plr->getLevel() <= 15))
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 324, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
    		if((Plr->getLevel() >= 16)&&(Plr->getLevel() <= 23))
    		{
    		uint32 price=100000;// 10G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 325, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
    		if((Plr->getLevel() >= 24)&&(Plr->getLevel() <= 31))
    		{
    		uint32 price=125000;// 12.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 905, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
    		if((Plr->getLevel() >= 32)&&(Plr->getLevel() <= 39))
    		{
    		uint32 price=150000;// 15G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 945, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
    		if((Plr->getLevel() >= 40)&&(Plr->getLevel() <= 47))
    		{
    		uint32 price=175000;// 17.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 8134, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
    		if((Plr->getLevel() >= 48)&&(Plr->getLevel() <= 55))
    		{
    		uint32 price=200000;// 20G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10431, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
    		if((Plr->getLevel() >= 56)&&(Plr->getLevel() <= 62))
    		{
    		uint32 price=200000;// 20G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10432, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
    		if((Plr->getLevel() >= 63)&&(Plr->getLevel() <= 69))
    		{
    		uint32 price=200000;// 20G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 25469, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
    		if(Plr->getLevel() == 70)
    		{
    		uint32 price=250000;// 25G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 25472, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "There's a little extra protection for you!" );
    			}
    		}
                break;
    		}
    
            case 4:    // Arcane Intellect
    	{
    		if(Plr->getLevel() <= 13)
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 1459, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Extra smarts never hurt anyone!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 14)&&(Plr->getLevel() <= 27))
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 1460, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Extra smarts never hurt anyone!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 28)&&(Plr->getLevel() <= 41))
    		{
    		uint32 price=100000;// 10G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 1461, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Extra smarts never hurt anyone!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 42)&&(Plr->getLevel() <= 56))
    		{
    		uint32 price=125000;// 12.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10156, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Extra smarts never hurt anyone!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 57)&&(Plr->getLevel() <= 69))
    		{
    		uint32 price=150000;// 15G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10157, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Extra smarts never hurt anyone!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if(Plr->getLevel() == 70)
    		{
    		uint32 price=250000;// 25G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 27126, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Extra smarts never hurt anyone!" );
    			Plr->Gossip_Complete();
    			}
    		}
                break;
    		}
    
            case 5:    // Frost/Ice Armor
    	{
    		if(Plr->getLevel() <= 9)
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 168, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Cold as ice... Hard as steel!" );
    			}
    		}
    		if((Plr->getLevel() >= 10)&&(Plr->getLevel() <= 19))
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 7300, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Cold as ice... Hard as steel!" );
    			}
    		}
    		if((Plr->getLevel() >= 20)&&(Plr->getLevel() <= 29))
    		{
    		uint32 price=100000;// 10G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 7301, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Cold as ice... Hard as steel!" );
    			}
    		}
    		if((Plr->getLevel() >= 30)&&(Plr->getLevel() <= 39))
    		{
    		uint32 price=125000;// 12.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 7302, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Cold as ice... Hard as steel!" );
    			}
    		}
    		if((Plr->getLevel() >= 40)&&(Plr->getLevel() <= 49))
    		{
    		uint32 price=150000;// 15G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 7320, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Cold as ice... Hard as steel!" );
    			}
    		}
    		if((Plr->getLevel() >= 50)&&(Plr->getLevel() <= 59))
    		{
    		uint32 price=175000;// 17.5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10219, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Cold as ice... Hard as steel!" );
    			}
    		}
    		if((Plr->getLevel() >= 60)&&(Plr->getLevel() <= 68))
    		{
    		uint32 price=200000;// 20G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10220, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Cold as ice... Hard as steel!" );
    			}
    		}
    		if((Plr->getLevel() >= 69)&&(Plr->getLevel() <= 70))
    		{
    		uint32 price=200000;// 20G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 27124, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "Cold as ice... Hard as steel!" );
    			}
    		}
                break;
    		}
    
    		case 99: //main menu
           		{
    				objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    
    		Menu->AddItem(0, "Mark of the Wild", 1);  
    		Menu->AddItem(0, "Power Word: Fortitude", 2);  
    //		Menu->AddItem(0, "Lightning Shield", 3);  
    		Menu->AddItem(0, "Arcane Intellect", 4);  
    //		Menu->AddItem(0, "Frost/Ice Armor", 5);   
    				Menu->SendTo(Plr);
    			}
            }
        }
    
    void BuffNPC2::GossipEnd(Object * pObject, Player* Plr)
    {
        GossipScript::GossipEnd(pObject, Plr);
    }
    
    void SetupBuffNPC2(ScriptMgr * mgr)
    {
    	GossipScript * gs = (GossipScript*) new BuffNPC2();
        /* Teleporter List */
        mgr->register_gossip_script(30007, gs);
    }
    Heal_NPC.cpp
    Code:
    #include "StdAfx.h"
    #include "Setup.h"
    
    class SCRIPT_DECL HealNPC : 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 HealNPC::GossipHello(Object * pObject, Player* Plr, bool AutoSend)
        {
            GossipMenu *Menu;
            objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    
    		Menu->AddItem(0, "Heal Me!", 1);  
    
            if(AutoSend)
                Menu->SendTo(Plr);
        }
    
    void HealNPC::GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
        {
    	Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL;
    	if(pObject==NULL)
    		return;
    
            GossipMenu * Menu;
            switch(IntId)
            {
            case 0:     // Return to start
    				GossipHello(pObject, Plr, true);
                break;
    
            case 1:     
    	{
    		if(Plr->getLevel() <= 10)
    		{
    		uint32 price=10000;// 1G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 2053, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been healed!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 11)&&(Plr->getLevel() <= 22))
    		{
    		uint32 price=10000;// 1G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 2055, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been healed!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 23)&&(Plr->getLevel() <= 34))
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 6064, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been healed!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 35)&&(Plr->getLevel() <= 36))
    		{
    		uint32 price=50000;// 5G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10963, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been healed!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 47)&&(Plr->getLevel() <= 58))
    		{
    		uint32 price=100000;// 10G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 10965, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been healed!" );
    			Plr->Gossip_Complete();
    			}
    		}
    		if((Plr->getLevel() >= 59)&&(Plr->getLevel() <= 70))
    		{
    		uint32 price=100000;// 10G
    		uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
    			if (currentgold>=price){
    			int32 newgold = currentgold - price; 
    			Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
                    pCreature->CastSpell(Plr, 25213, 0);
    			pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You have been healed!" );
    			Plr->Gossip_Complete();
    			}
    		}
                break;
    		}
    		case 99: //main menu
           		{
    				objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    
    		Menu->AddItem(0, "Heal Me!", 1);  
    				Menu->SendTo(Plr);
    			}
            }
        }
    
    void HealNPC::GossipEnd(Object * pObject, Player* Plr)
    {
        GossipScript::GossipEnd(pObject, Plr);
    }
    
    void SetupHealNPC(ScriptMgr * mgr)
    {
    	GossipScript * gs = (GossipScript*) new HealNPC();
        /* Teleporter List */
        mgr->register_gossip_script(30006, gs);
    }
    PLEASE REMEMBER! A simple thanks can mean so much
    CHEAP GOLD ON [US] [ALLIANCE] STORMRAGE & KEL'THUZAD! -https://bit.ly/1nf04nF

    - BERRYMAN13

  7. #7
    SectorSeven's Avatar Banned
    Reputation
    444
    Join Date
    Oct 2007
    Posts
    1,948
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    +rep bro nice thanks

  8. #8
    berryman13's Avatar Contributor
    Reputation
    251
    Join Date
    Dec 2006
    Posts
    856
    Thanks G/R
    0/2
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Shao111, I need ALL of the info, exact coords of what to do, the vendor ID (not sure if what you want can be done, though) and everythign needed to create it.
    PLEASE REMEMBER! A simple thanks can mean so much
    CHEAP GOLD ON [US] [ALLIANCE] STORMRAGE & KEL'THUZAD! -https://bit.ly/1nf04nF

    - BERRYMAN13

  9. #9
    berryman13's Avatar Contributor
    Reputation
    251
    Join Date
    Dec 2006
    Posts
    856
    Thanks G/R
    0/2
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The healerNPC is right under Buff_NPC 2
    PLEASE REMEMBER! A simple thanks can mean so much
    CHEAP GOLD ON [US] [ALLIANCE] STORMRAGE & KEL'THUZAD! -https://bit.ly/1nf04nF

    - BERRYMAN13

  10. #10
    Shao111's Avatar Active Member
    Reputation
    33
    Join Date
    Jul 2007
    Posts
    281
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Im pretty noob at C++, but this is what i have, thanks to TimmyVacc,

    class SCRIPT_DECL Warper : public GossipScript
    {
    public:
    void GossipHello(Object* pObject, Player * Plr, bool AutoSend)
    {
    GossipMenu *Menu;
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
    Menu->AddItem(0, "Teleport Locations", 0);
    Menu->AddItem(0, "Flying Mounts[BROKEN]", 13);
    Menu->AddItem(0, "Morphing", 1;
    Menu->AddItem(0, "I want the PvP reward item!", 27);
    Menu->SendTo(Plr);
    }



    void GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
    {
    GossipMenu * Menu;
    switch(IntId)
    {

    case 0: //Teleport Locations
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    Menu->AddItem(0, "Stormwind", 1);
    Menu->AddItem(0, "Ironforge", 2);
    Menu->AddItem(0, "Exodar", 3);
    Menu->AddItem(0, "Darnassus", 4);
    Menu->AddItem(0, "Orgrimmar", 5);
    Menu->AddItem(0, "Thunder Bluff", 6);
    Menu->AddItem(0, "Silvermoon City", 7);
    Menu->AddItem(0, "Undercity", ;
    Menu->AddItem(0, "Misc", 9);
    Menu->AddItem(0, "[Back]", 12);
    Menu->SendTo(Plr);
    break;

    case 1: //stormwind
    {
    Plr->SafeTeleport(0, 0, -8831.61, 622.666, 93.7787, 0);
    Plr->Gossip_Complete();
    }break;

    case 2: //ironforge
    {
    Plr->SafeTeleport(0, 0, -4804.45, -1101.14, 498.807, 0);
    Plr->Gossip_Complete();
    }break;

    case 3: //exodar
    {
    Plr->SafeTeleport(530, 0, -3796.24, -11710.9, -105.45, 0);
    Plr->Gossip_Complete();
    }break;

    case 4: //darnassus
    {
    Plr->SafeTeleport(1, 0, 9952.07, 2278.46, 1341.39, 0);
    Plr->Gossip_Complete();
    }break;

    case 5: //orgrimmar
    {
    Plr->SafeTeleport(1, 0, 1499.55, -4406.91, 23.1642, 0);
    Plr->Gossip_Complete();
    }break;

    case 6: //TB
    {
    Plr->SafeTeleport(1, 0, -1195.88, -56.5582, 160.034, 0);
    Plr->Gossip_Complete();
    }break;

    case 7: //silvermoon
    {
    Plr->SafeTeleport(530, 0, 9492.45, -7279.12, 14.3036, 0);
    Plr->Gossip_Complete();
    }break;

    case 8: //undercity
    {
    Plr->SafeTeleport(0, 0, 1615.1, 239.786, -62.0774, 0);
    Plr->Gossip_Complete();
    }break;

    case 9: //misc
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);

    Menu->AddItem(0, "Shopping Mall", 10);
    Menu->AddItem(0, "Leveling Road", 11);
    Menu->AddItem(0, "Custom Arena", 17);
    Menu->AddItem(0, "[Back]", 12);
    Menu->SendTo(Plr);
    }
    break;

    case 10: //mall
    {
    Plr->SafeTeleport(1, 0, 16222.6, 16265.9, 14.2085, 0);
    Plr->Gossip_Complete();
    }
    break;

    case 11: //leveling road
    {
    Plr->SafeTeleport(0, 0, -4086.36, -2610.95, 47.0143, 0);
    Plr->Gossip_Complete();
    }
    break;

    case 12: // [back]
    GossipHello(pObject, Plr, true);
    break;

    case 13: // mounts
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
    Menu->AddItem(0, "Swift Gryphon", 14);
    Menu->AddItem(0, "Swift Broom", 15);
    Menu->AddItem(0, "Netherwing Drake", 16);
    Menu->AddItem(0, "[Back]", 12);
    Menu->SendTo(Plr);
    }
    break;

    case 14: //gryphon
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
    Plr->addSpell(32292);
    Menu->AddItem(0, "[Back]", 12);
    Menu->SendTo(Plr);
    }
    break;

    case 15: // Broom
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
    Plr->addSpell(4266; //cast spell?
    Plr->removeSpell(42668,0,0,0); //remove spell?
    Menu->AddItem(0, "[Back]", 12);
    Menu->SendTo(Plr);
    }
    break;

    case 16: // nd
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);
    Plr->addSpell(41513); //cast spell?
    Plr->removeSpell(41513,0,0,0); //remove spell?
    Menu->AddItem(0, "[Back]", 12);
    Menu->SendTo(Plr);
    }
    break;

    case 17: //arena
    {
    Plr->EventTeleport(0, -13271.959961, 149.105515, 34.46445;
    }
    break;


    case 18: //morphing
    {
    objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    Menu->AddItem(0, "Goblin", 19);
    Menu->AddItem(0, "Felguard", 20);
    Menu->AddItem(0, "Ogre", 21);
    Menu->AddItem(0, "Pirate", 22);
    Menu->AddItem(0, "Skeleton", 23);
    Menu->AddItem(0, "Illidan", 24);
    Menu->AddItem(0, "Demorph me!", 25);
    Menu->AddItem(0, "[Back]", 26);
    Menu->SendTo(Plr);
    }

    case 19: //Goblin
    {

    Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 7109);
    Plr->Emote(EMOTE_ONESHOT_CHEER);
    Plr->Gossip_Complete();
    }
    break;

    case 20: //Felguard
    {

    Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 18287);
    Plr->Emote(EMOTE_ONESHOT_CHEER);
    Plr->Gossip_Complete();
    }
    break;

    case 21: //Ogre
    {
    Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 1122);
    Plr->Emote(EMOTE_ONESHOT_CHEER);
    Plr->Gossip_Complete();
    }
    break;

    case 22: // Pirate
    {
    Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 2347);
    Plr->Emote(EMOTE_ONESHOT_CHEER);
    Plr->Gossip_Complete();
    }
    break;

    case 23: //Skeleton
    {
    Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 17970);
    Plr->Emote(EMOTE_ONESHOT_CHEER);
    Plr->Gossip_Complete();
    }
    break;

    case 24: //Illidan
    {
    Plr->SetUInt32Value(UNIT_FIELD_DISPLAYID, 21135);
    Plr->Emote(EMOTE_ONESHOT_CHEER);
    Plr->Gossip_Complete();
    }
    break;

    case 25: //demorph
    {
    Plr->Emote(EMOTE_ONESHOT_CHEER);
    Plr->DeMorph();
    Plr->Gossip_Complete();
    }
    break;

    case 26: // [back]
    GossipHello(pObject, Plr, true);
    break;*/

    case 27: //PvP item
    {
    Plr->GetItemInterface()->SafeAddItem(31089, INVENTORY_SLOT_NOT_SET, 23);
    Plr->Gossip_Complete();
    }
    break;


    EDIT: Make Vendor ID anything high (35,000+)
    Last edited by Shao111; 01-07-2008 at 09:30 PM. Reason: obvious

  11. #11
    berryman13's Avatar Contributor
    Reputation
    251
    Join Date
    Dec 2006
    Posts
    856
    Thanks G/R
    0/2
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Wrap in [code] tags!
    Also, I still don't know what you are trying to accomplish, i need the code and the info.
    PLEASE REMEMBER! A simple thanks can mean so much
    CHEAP GOLD ON [US] [ALLIANCE] STORMRAGE & KEL'THUZAD! -https://bit.ly/1nf04nF

    - BERRYMAN13

  12. #12
    SectorSeven's Avatar Banned
    Reputation
    444
    Join Date
    Oct 2007
    Posts
    1,948
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    can i have welcome npc source?

  13. #13
    berryman13's Avatar Contributor
    Reputation
    251
    Join Date
    Dec 2006
    Posts
    856
    Thanks G/R
    0/2
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Not sure what a welcome npc is, because i never had nor needed one.

    Code:
    #define MyCreature <number here>
    void EnterWorld (Player *Plr) 
    {
    Creature *pCreature = Plr->GetMapMgr()->GetSqlIdCreature(MyCreature);
    char Message[128];
    sprintf(Message,"Welcome &#37;s!",Plr->GetName());
    pCreature->SendChatMessage(CHAT_MSG_SAY,LANG_UNIVERSAL,Message);
    }
    You would need the enter world hook, i'll try to find it.
    Last edited by berryman13; 01-07-2008 at 09:31 PM.
    PLEASE REMEMBER! A simple thanks can mean so much
    CHEAP GOLD ON [US] [ALLIANCE] STORMRAGE & KEL'THUZAD! -https://bit.ly/1nf04nF

    - BERRYMAN13

  14. #14
    SectorSeven's Avatar Banned
    Reputation
    444
    Join Date
    Oct 2007
    Posts
    1,948
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    its basically an npc that welcomes you to the world
    i just need the source

  15. #15
    Shao111's Avatar Active Member
    Reputation
    33
    Join Date
    Jul 2007
    Posts
    281
    Thanks G/R
    1/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    That's all the code i have, and only other info i can get is the coordinates for the ports. What other info is needed?

Page 1 of 3 123 LastLast

Similar Threads

  1. [Selling] Will work for a cata key
    By mtl123 in forum World of Warcraft Buy Sell Trade
    Replies: 1
    Last Post: 08-12-2011, 03:08 PM
  2. Will Work For US Gamecard.
    By Crazy-Chik in forum World of Warcraft General
    Replies: 10
    Last Post: 04-19-2009, 02:18 PM
All times are GMT -5. The time now is 02:14 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search