Help with C++ SkilLNPC menu

Shout-Out

User Tag List

Results 1 to 5 of 5
  1. #1
    Algorithm's Avatar Member
    Reputation
    175
    Join Date
    Mar 2008
    Posts
    395
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Help with C++ SkilLNPC

    Can someone please be so kind to show me how to add ICEblock in to mages gossip menue? I do not know C+= very good, can someone please edit this script for me? all i need is iceblock spell to be available to mages

    Code:
    // Major Updates, Fixes, and Core by Nebels
    // Some help by insanesk8123 <3
    // Version 3.0
    
    #include "StdAfx.h"
    #include "Setup.h"
    
    class SCRIPT_DECL SkillNPC : 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 SkillNPC::GossipEnd(Object * pObject, Player* Plr){ GossipScript::GossipEnd(pObject, Plr); }
    void SkillNPC::GossipHello(Object *pObject, Player *Plr, bool AutoSend){
    	GossipMenu *Menu;
        objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    				if (Plr->getClass() == 1) 
     { 
    Menu->AddItem(0, "What spells can warriors learn?", 1);
     } 
    				if (Plr->getClass() == 2)
     { 
    Menu->AddItem(0, "What spells can paladins learn?", 2);
     }
    				if (Plr->getClass() == 3)
     { 
    Menu->AddItem(0, "What spells can hunters learn?", 3);
     }
    				if (Plr->getClass() == 9)
     { 
    Menu->AddItem(0, "What spells can warlocks learn?", 4);
     }
    				if (Plr->getClass() == 11)
     { 
    Menu->AddItem(0, "What spells can druids learn?", 5);
     }
    				if (Plr->getClass() == 4) 
     { 
    Menu->AddItem(0, "What spells can rogues learn?", 6);
     } 
    				if (Plr->getClass() == 5) 
     { 
    Menu->AddItem(0, "What spells can priests learn?", 7);
     } 
    				if (Plr->getClass() == 7) 
     { 
    Menu->AddItem(0, "What spells can shamans learn?", 8);
     } 
    				if (Plr->getClass() == 8) 
     { 
    Menu->AddItem(0, "What spells can mages learn?", 9);
     } 
    
    
    Menu->AddItem(5, "Reset Talent Points", 98);
    
        Menu->SendTo(Plr);
    }
    
    
    void SkillNPC::GossipSelectOption(Object *pObject, Player *Plr, uint32 Id, uint32 IntId, const char *Code){
    	Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT) ? ((Creature*)pObject) : NULL;
    	GossipMenu * Menu;
    	switch(IntId){
    	case 0:     // Return to start
    				GossipHello(pObject, Plr, true);
                break;
    
    case 1:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Taunt", 10);
    Menu->AddItem(5, "Intercept", 13);
    Menu->AddItem(5, "Mortal Strike", 14);
    Menu->AddItem(5, "Defensive Stance", 11);
    Menu->AddItem(5, "Beserker Stance", 12);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 2:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Redemption", 22);
    Menu->AddItem(5, "Summon Warhorse", 20);
    Menu->AddItem(5, "Summon Charger", 21);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 3:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Pet spells", 30);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 4:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Pet Spells", 40);
    Menu->AddItem(5, "Summon Felstead", 41);
    Menu->AddItem(5, "Summon Dreadstead", 42);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 5:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Growl", 50);
    Menu->AddItem(5, "Maul", 55);
    Menu->AddItem(5, "Bear Form", 54);
    Menu->AddItem(5, "Dire Bear Form", 51);
    Menu->AddItem(5, "Aquatic Form", 56);
    Menu->AddItem(5, "Normal Flight Form", 52);
    Menu->AddItem(5, "Epic Flight Form", 53); 
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 6:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 7:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 8:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 9:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
            case 10:     // Warrior-Taunt
    			if(Plr->getLevel() >= 10)
    			{
    				Plr->addSpell(355);
    				Plr->BroadcastMessage("You have learned Taunt.");
    			}else{
    				Plr->BroadcastMessage("You must be level 10 to learn Taunt.");
    				}
    			break;
    
    	case 11:     // Warrior-Defensive Stance
    			if(Plr->getLevel() >= 10)
    			{
    				Plr->addSpell(71);
    				Plr->BroadcastMessage("You have learned Defensive Stance.");
    			}else{
    				Plr->BroadcastMessage("You must be level 10 to learn Defensive Stance.");
    				}
    			break;
    
    	case 12:     // Warrior-Beserker Stance
    			if(Plr->getLevel() >= 30)
    			{
    				Plr->addSpell(2458);
    				Plr->BroadcastMessage("You have learned Berseker Stance.");
    			}else{
    				Plr->BroadcastMessage("You must be level 30 to learn Berseker Stance.");
    				}
    			break;
    
    	case 13:     // Warrior-Intercept
    			if(Plr->getLevel() >= 10)
    			{
    				Plr->addSpell(25275);
    				Plr->BroadcastMessage("You have learned Intercept.");
    			}else{
    				Plr->BroadcastMessage("You must be level 10 to learn Intercept.");
    				}
    			break;
    
    	case 14:     // Warrior-Mortal Strike
    			if(Plr->getLevel() >= 40)
    			{
    				Plr->addSpell(30330);
    				Plr->BroadcastMessage("You have learned Mortal Strike.");
    			}else{
    				Plr->BroadcastMessage("You must be level 40 to learn Mortal Strike.");
    				}
    			break;
    
            case 20:     // Paladin-Warhorse
    			if(Plr->getLevel() >= 40)
    			{
                    		Plr->addSpell(13819);
                			Plr->BroadcastMessage("You have learned Summon Warhorse.");
    			}else{ 
    				Plr->BroadcastMessage("You must be level 40 to learn Summon Warhorse."); 
    				}
    			break;
    
    	case 21:     // Paladin-Charger
    			if(Plr->getLevel() >= 60)
    			{
                    		Plr->addSpell(34767);
                			Plr->BroadcastMessage("You have learned Summon Charger.");
    			}else{ 
    				Plr->BroadcastMessage("You must be level 60 to learn Summon Charger."); 
    				}			
    			break;
    
    	case 22:     // Paladin-Redemption
    			if(Plr->getLevel() >= 10)
    			{
                    		Plr->addSpell(20773);
                			Plr->BroadcastMessage("You have learned Redemption.");
    			}else{ 
    				Plr->BroadcastMessage("You must be level 10 to learn Redemption."); 
    				}			
    			break;
            
            case 30:     // Hunter-Pet Spells
    	        	if(Plr->getLevel() >= 10)
    	        	{
    				Plr->addSpell(1515);
    				Plr->addSpell(883);
    				Plr->addSpell(5149);
    				Plr->addSpell(982);
    				Plr->addSpell(6991);
    				Plr->BroadcastMessage("You have learned your Hunter Pet Spells.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You are below level 10.");
    				Plr->Gossip_Complete();
    				}
                		break;
    
    	case 40:     // Warlock-Pet Spells
    	        	if(Plr->getLevel() >= 10)
    	        	{
    				Plr->addSpell(688);
    				Plr->addSpell(697);
    				Plr->addSpell(712);
    				Plr->addSpell(691);
    				Plr->BroadcastMessage("You have learned your Warlock Pet Spells.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You are below level 10.");
    				Plr->Gossip_Complete();
    			}
    			break;
    
    	case 41:     // Warlock-Felsteed
    	        	if(Plr->getLevel() >= 40)
    	        	{
    				Plr->addSpell(5784);
    				Plr->BroadcastMessage("You have learned Summon Felsteed.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 40 to learn Summon Felsteed.");
    				Plr->Gossip_Complete();
    			}
    			break;
    
    	case 42:     // Warlock-Dreadsteed
    	        	if(Plr->getLevel() >= 60)
    	        	{
    				Plr->addSpell(23161);
    				Plr->BroadcastMessage("You have learned Summon Dreadsteed.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 60 to learn Summon Dreadsteed.");
    				Plr->Gossip_Complete();
    			}
                		break;
    
    	case 50:     // Druid-Growl
    	        	if(Plr->getLevel() >= 10)
    	        	{
    				Plr->addSpell(6795);
    				Plr->BroadcastMessage("You have learned Growl.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 10 to learn Growl.");
    				Plr->Gossip_Complete();
    			}
                		break;
    
    	case 51:     // Druid-Dire Bear Form
    	        	if(Plr->getLevel() >= 30)
    	        	{
    				Plr->addSpell(9634);
    				Plr->BroadcastMessage("You have learned Dire Bear Form.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 30 to learn Dire Bear Form.");
    				Plr->Gossip_Complete();
    			}
                		break;
    
    	case 52:     // Druid-Normal Flight Form
    	        	if(Plr->getLevel() >= 68)
    	        	{
    				Plr->addSpell(33943);
    				Plr->BroadcastMessage("You have learned Summon Normal Flight Form.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 68 to learn Normal Flight Form.");
    				Plr->Gossip_Complete();
    			}
                		break;
    
    	case 53:     // Druid-Epic Flight Form
    	        	if(Plr->getLevel() >= 70)
    	        	{
    				Plr->addSpell(40120);
    				Plr->BroadcastMessage("You have learned Summon Epic Flight Form.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 60 to learn Epic Flight Form.");
    				Plr->Gossip_Complete();
    			}
    	case 54:     // Druid-
    	        	if(Plr->getLevel() >= 10)
    	        	{
    				Plr->addSpell(5487);
    				Plr->BroadcastMessage("You have learned Bear Form.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 10 to learn Bear Form.");
    				Plr->Gossip_Complete();
    			}
                		break;
    	case 55:     // Druid-Maul
    	        	if(Plr->getLevel() >= 67)
    	        	{
    				Plr->addSpell(26996);
    				Plr->BroadcastMessage("You have learned Maul Rank 8.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 67 to learn Maul.");
    				Plr->Gossip_Complete();
    			}
                		break;
    	case 56:     // Druid-Aquatic Form
    	        	if(Plr->getLevel() >= 20)
    	        	{
    				Plr->addSpell(1066);
    				Plr->BroadcastMessage("You have learned Aquatic Form.");
    				Plr->Gossip_Complete();
    			}else{
    				Plr->BroadcastMessage("You must be level 20 to learn Aquatic Form.");
    				Plr->Gossip_Complete();
    			}
                		break;
    	case 98:     // Reset Talents
    			{
                                    Plr->Reset_Talents();
    				Plr->BroadcastMessage("You have reset your talent points.");
    				Plr->Gossip_Complete();
    			}
                		break;
    	case 99:    //Main Menu
    			objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
    				if (Plr->getClass() == 1) 
     { 
    Menu->AddItem(0, "What spells can warriors learn?", 1);
     } 
    				if (Plr->getClass() == 2)
     { 
    Menu->AddItem(0, "What spells can paladins learn?", 2);
     }
    				if (Plr->getClass() == 3)
     { 
    Menu->AddItem(0, "What spells can hunters learn?", 3);
     }
    				if (Plr->getClass() == 9)
     { 
    Menu->AddItem(0, "What spells can warlocks learn?", 4);
     }
    				if (Plr->getClass() == 11)
     { 
    Menu->AddItem(0, "What spells can druids learn?", 5);
     }
    				if (Plr->getClass() == 4) 
     { 
    Menu->AddItem(0, "What spells can rogues learn?", 6);
     } 
    				if (Plr->getClass() == 5) 
     { 
    Menu->AddItem(0, "What spells can priests learn?", 7);
     } 
    				if (Plr->getClass() == 7) 
     { 
    Menu->AddItem(0, "What spells can shamans learn?", 8);
     } 
    				if (Plr->getClass() == 8) 
     { 
    Menu->AddItem(0, "What spells can mages learn?", 9);
     } 
    Menu->AddItem(5, "Reset Talent Points", 98);
    Menu->SendTo(Plr);
    break;
    
    			
    		}
    	}
    
    void SetupSkillNPC(ScriptMgr * mgr)
    {
    	mgr->register_gossip_script(30010, (GossipScript*) new SkillNPC());
    }

    Help with C++ SkilLNPC
  2. #2
    doublehex's Avatar Member
    Reputation
    34
    Join Date
    Mar 2007
    Posts
    385
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    // Major Updates, Fixes, and Core by Nebels
    // Some help by insanesk8123 <3
    // Version 3.0
    
    #include "StdAfx.h"
    #include "Setup.h"
    
    class SCRIPT_DECL SkillNPC : 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 SkillNPC::GossipEnd(Object * pObject, Player* Plr){ GossipScript::GossipEnd(pObject, Plr); }
    void SkillNPC::GossipHello(Object *pObject, Player *Plr, bool AutoSend){
        GossipMenu *Menu;
        objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
                    if (Plr->getClass() == 1) 
     { 
    Menu->AddItem(0, "What spells can warriors learn?", 1);
     } 
                    if (Plr->getClass() == 2)
     { 
    Menu->AddItem(0, "What spells can paladins learn?", 2);
     }
                    if (Plr->getClass() == 3)
     { 
    Menu->AddItem(0, "What spells can hunters learn?", 3);
     }
                    if (Plr->getClass() == 9)
     { 
    Menu->AddItem(0, "What spells can warlocks learn?", 4);
     }
                    if (Plr->getClass() == 11)
     { 
    Menu->AddItem(0, "What spells can druids learn?", 5);
     }
                    if (Plr->getClass() == 4) 
     { 
    Menu->AddItem(0, "What spells can rogues learn?", 6);
     } 
                    if (Plr->getClass() == 5) 
     { 
    Menu->AddItem(0, "What spells can priests learn?", 7);
     } 
                    if (Plr->getClass() == 7) 
     { 
    Menu->AddItem(0, "What spells can shamans learn?", 8);
     } 
                    if (Plr->getClass() == 8) 
     { 
    Menu->AddItem(0, "What spells can mages learn?", 9);
     } 
    
    
    Menu->AddItem(5, "Reset Talent Points", 98);
    
        Menu->SendTo(Plr);
    }
    
    
    void SkillNPC::GossipSelectOption(Object *pObject, Player *Plr, uint32 Id, uint32 IntId, const char *Code){
        Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT) ? ((Creature*)pObject) : NULL;
        GossipMenu * Menu;
        switch(IntId){
        case 0:     // Return to start
                    GossipHello(pObject, Plr, true);
                break;
    
    case 1:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Taunt", 10);
    Menu->AddItem(5, "Intercept", 13);
    Menu->AddItem(5, "Mortal Strike", 14);
    Menu->AddItem(5, "Defensive Stance", 11);
    Menu->AddItem(5, "Beserker Stance", 12);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 2:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Redemption", 22);
    Menu->AddItem(5, "Summon Warhorse", 20);
    Menu->AddItem(5, "Summon Charger", 21);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 3:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Pet spells", 30);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 4:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Pet Spells", 40);
    Menu->AddItem(5, "Summon Felstead", 41);
    Menu->AddItem(5, "Summon Dreadstead", 42);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 5:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Growl", 50);
    Menu->AddItem(5, "Maul", 55);
    Menu->AddItem(5, "Bear Form", 54);
    Menu->AddItem(5, "Dire Bear Form", 51);
    Menu->AddItem(5, "Aquatic Form", 56);
    Menu->AddItem(5, "Normal Flight Form", 52);
    Menu->AddItem(5, "Epic Flight Form", 53); 
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 6:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 7:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 8:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 9:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "Ice Block", 54);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
            case 10:     // Warrior-Taunt
                if(Plr->getLevel() >= 10)
                {
                    Plr->addSpell(355);
                    Plr->BroadcastMessage("You have learned Taunt.");
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Taunt.");
                    }
                break;
    
        case 11:     // Warrior-Defensive Stance
                if(Plr->getLevel() >= 10)
                {
                    Plr->addSpell(71);
                    Plr->BroadcastMessage("You have learned Defensive Stance.");
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Defensive Stance.");
                    }
                break;
    
        case 12:     // Warrior-Beserker Stance
                if(Plr->getLevel() >= 30)
                {
                    Plr->addSpell(2458);
                    Plr->BroadcastMessage("You have learned Berseker Stance.");
                }else{
                    Plr->BroadcastMessage("You must be level 30 to learn Berseker Stance.");
                    }
                break;
    
        case 13:     // Warrior-Intercept
                if(Plr->getLevel() >= 10)
                {
                    Plr->addSpell(25275);
                    Plr->BroadcastMessage("You have learned Intercept.");
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Intercept.");
                    }
                break;
    
        case 14:     // Warrior-Mortal Strike
                if(Plr->getLevel() >= 40)
                {
                    Plr->addSpell(30330);
                    Plr->BroadcastMessage("You have learned Mortal Strike.");
                }else{
                    Plr->BroadcastMessage("You must be level 40 to learn Mortal Strike.");
                    }
                break;
    
            case 20:     // Paladin-Warhorse
                if(Plr->getLevel() >= 40)
                {
                            Plr->addSpell(13819);
                            Plr->BroadcastMessage("You have learned Summon Warhorse.");
                }else{ 
                    Plr->BroadcastMessage("You must be level 40 to learn Summon Warhorse."); 
                    }
                break;
    
        case 21:     // Paladin-Charger
                if(Plr->getLevel() >= 60)
                {
                            Plr->addSpell(34767);
                            Plr->BroadcastMessage("You have learned Summon Charger.");
                }else{ 
                    Plr->BroadcastMessage("You must be level 60 to learn Summon Charger."); 
                    }            
                break;
    
        case 22:     // Paladin-Redemption
                if(Plr->getLevel() >= 10)
                {
                            Plr->addSpell(20773);
                            Plr->BroadcastMessage("You have learned Redemption.");
                }else{ 
                    Plr->BroadcastMessage("You must be level 10 to learn Redemption."); 
                    }            
                break;
            
            case 30:     // Hunter-Pet Spells
                    if(Plr->getLevel() >= 10)
                    {
                    Plr->addSpell(1515);
                    Plr->addSpell(883);
                    Plr->addSpell(5149);
                    Plr->addSpell(982);
                    Plr->addSpell(6991);
                    Plr->BroadcastMessage("You have learned your Hunter Pet Spells.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You are below level 10.");
                    Plr->Gossip_Complete();
                    }
                        break;
    
        case 40:     // Warlock-Pet Spells
                    if(Plr->getLevel() >= 10)
                    {
                    Plr->addSpell(688);
                    Plr->addSpell(697);
                    Plr->addSpell(712);
                    Plr->addSpell(691);
                    Plr->BroadcastMessage("You have learned your Warlock Pet Spells.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You are below level 10.");
                    Plr->Gossip_Complete();
                }
                break;
    
        case 41:     // Warlock-Felsteed
                    if(Plr->getLevel() >= 40)
                    {
                    Plr->addSpell(5784);
                    Plr->BroadcastMessage("You have learned Summon Felsteed.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 40 to learn Summon Felsteed.");
                    Plr->Gossip_Complete();
                }
                break;
    
        case 42:     // Warlock-Dreadsteed
                    if(Plr->getLevel() >= 60)
                    {
                    Plr->addSpell(23161);
                    Plr->BroadcastMessage("You have learned Summon Dreadsteed.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 60 to learn Summon Dreadsteed.");
                    Plr->Gossip_Complete();
                }
                        break;
    
        case 50:     // Druid-Growl
                    if(Plr->getLevel() >= 10)
                    {
                    Plr->addSpell(6795);
                    Plr->BroadcastMessage("You have learned Growl.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Growl.");
                    Plr->Gossip_Complete();
                }
                        break;
    
        case 51:     // Druid-Dire Bear Form
                    if(Plr->getLevel() >= 30)
                    {
                    Plr->addSpell(9634);
                    Plr->BroadcastMessage("You have learned Dire Bear Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 30 to learn Dire Bear Form.");
                    Plr->Gossip_Complete();
                }
                        break;
    
        case 52:     // Druid-Normal Flight Form
                    if(Plr->getLevel() >= 68)
                    {
                    Plr->addSpell(33943);
                    Plr->BroadcastMessage("You have learned Summon Normal Flight Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 68 to learn Normal Flight Form.");
                    Plr->Gossip_Complete();
                }
                        break;
    
        case 53:     // Druid-Epic Flight Form
                    if(Plr->getLevel() >= 70)
                    {
                    Plr->addSpell(40120);
                    Plr->BroadcastMessage("You have learned Summon Epic Flight Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 60 to learn Epic Flight Form.");
                    Plr->Gossip_Complete();
                }
        case 54:     // Druid-
                    if(Plr->getLevel() >= 10)
                    {
                    Plr->addSpell(5487);
                    Plr->BroadcastMessage("You have learned Bear Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Bear Form.");
                    Plr->Gossip_Complete();
                }
                        break;
        case 55:     // Druid-Maul
                    if(Plr->getLevel() >= 67)
                    {
                    Plr->addSpell(26996);
                    Plr->BroadcastMessage("You have learned Maul Rank 8.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 67 to learn Maul.");
                    Plr->Gossip_Complete();
                }
                        break;
        case 56:     // Druid-Aquatic Form
                    if(Plr->getLevel() >= 20)
                    {
                    Plr->addSpell(1066);
                    Plr->BroadcastMessage("You have learned Aquatic Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 20 to learn Aquatic Form.");
                    Plr->Gossip_Complete();
                }
                        break;
        case 54:     
                if(Plr->getLevel() >= 40)
                {
                    Plr->addSpell(45438);
                    Plr->BroadcastMessage("You have learned Ice Block.");
                }else{
                    Plr->BroadcastMessage("You must be level 40 to learn Mortal Strike.");
                    }
                break;
        case 98:     // Reset Talents
                {
                                    Plr->Reset_Talents();
                    Plr->BroadcastMessage("You have reset your talent points.");
                    Plr->Gossip_Complete();
                }
                        break;
        case 99:    //Main Menu
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
                    if (Plr->getClass() == 1) 
     { 
    Menu->AddItem(0, "What spells can warriors learn?", 1);
     } 
                    if (Plr->getClass() == 2)
     { 
    Menu->AddItem(0, "What spells can paladins learn?", 2);
     }
                    if (Plr->getClass() == 3)
     { 
    Menu->AddItem(0, "What spells can hunters learn?", 3);
     }
                    if (Plr->getClass() == 9)
     { 
    Menu->AddItem(0, "What spells can warlocks learn?", 4);
     }
                    if (Plr->getClass() == 11)
     { 
    Menu->AddItem(0, "What spells can druids learn?", 5);
     }
                    if (Plr->getClass() == 4) 
     { 
    Menu->AddItem(0, "What spells can rogues learn?", 6);
     } 
                    if (Plr->getClass() == 5) 
     { 
    Menu->AddItem(0, "What spells can priests learn?", 7);
     } 
                    if (Plr->getClass() == 7) 
     { 
    Menu->AddItem(0, "What spells can shamans learn?", 8);
     } 
                    if (Plr->getClass() == 8) 
     { 
    Menu->AddItem(0, "What spells can mages learn?", 9);
     } 
    Menu->AddItem(5, "Reset Talent Points", 98);
    Menu->SendTo(Plr);
    break;
    
                
            }
        }
    
    void SetupSkillNPC(ScriptMgr * mgr)
    {
        mgr->register_gossip_script(30010, (GossipScript*) new SkillNPC());
    }


  3. #3
    Kiev's Avatar Contributor
    Reputation
    288
    Join Date
    Nov 2007
    Posts
    1,819
    Thanks G/R
    0/4
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The above wont work, will teach Ice Block and a Druid form? if not anyway here is one i know will work

    Code:
    / Major Updates, Fixes, and Core by Nebels
    // Some help by insanesk8123 <3
    // Version 3.0
    
    #include "StdAfx.h"
    #include "Setup.h"
    
    class SCRIPT_DECL SkillNPC : 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 SkillNPC::GossipEnd(Object * pObject, Player* Plr){ GossipScript::GossipEnd(pObject, Plr); }
    void SkillNPC::GossipHello(Object *pObject, Player *Plr, bool AutoSend){
        GossipMenu *Menu;
        objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
                    if (Plr->getClass() == 1) 
     { 
    Menu->AddItem(0, "What spells can warriors learn?", 1);
     } 
                    if (Plr->getClass() == 2)
     { 
    Menu->AddItem(0, "What spells can paladins learn?", 2);
     }
                    if (Plr->getClass() == 3)
     { 
    Menu->AddItem(0, "What spells can hunters learn?", 3);
     }
                    if (Plr->getClass() == 9)
     { 
    Menu->AddItem(0, "What spells can warlocks learn?", 4);
     }
                    if (Plr->getClass() == 11)
     { 
    Menu->AddItem(0, "What spells can druids learn?", 5);
     }
                    if (Plr->getClass() == 4) 
     { 
    Menu->AddItem(0, "What spells can rogues learn?", 6);
     } 
                    if (Plr->getClass() == 5) 
     { 
    Menu->AddItem(0, "What spells can priests learn?", 7);
     } 
                    if (Plr->getClass() == 7) 
     { 
    Menu->AddItem(0, "What spells can shamans learn?", 8);
     } 
                    if (Plr->getClass() == 8) 
     { 
    Menu->AddItem(0, "What spells can mages learn?", 9);
     } 
    
    
    Menu->AddItem(5, "Reset Talent Points", 98);
    
        Menu->SendTo(Plr);
    }
    
    
    void SkillNPC::GossipSelectOption(Object *pObject, Player *Plr, uint32 Id, uint32 IntId, const char *Code){
        Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT) ? ((Creature*)pObject) : NULL;
        GossipMenu * Menu;
        switch(IntId){
        case 0:     // Return to start
                    GossipHello(pObject, Plr, true);
                break;
    
    case 1:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Taunt", 10);
    Menu->AddItem(5, "Intercept", 13);
    Menu->AddItem(5, "Mortal Strike", 14);
    Menu->AddItem(5, "Defensive Stance", 11);
    Menu->AddItem(5, "Beserker Stance", 12);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 2:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Redemption", 22);
    Menu->AddItem(5, "Summon Warhorse", 20);
    Menu->AddItem(5, "Summon Charger", 21);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 3:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Pet spells", 30);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 4:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Pet Spells", 40);
    Menu->AddItem(5, "Summon Felstead", 41);
    Menu->AddItem(5, "Summon Dreadstead", 42);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 5:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(5, "Growl", 50);
    Menu->AddItem(5, "Maul", 55);
    Menu->AddItem(5, "Bear Form", 54);
    Menu->AddItem(5, "Dire Bear Form", 51);
    Menu->AddItem(5, "Aquatic Form", 56);
    Menu->AddItem(5, "Normal Flight Form", 52);
    Menu->AddItem(5, "Epic Flight Form", 53); 
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 6:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 7:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 8:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
    case 9:
    objmgr.CreateGossipMenuForPlayer(&Menu, pCreature->GetGUID(), 1, Plr);
    Menu->AddItem(0, "Ice Block", 57);
    Menu->AddItem(0, "[Back]", 99);
    Menu->SendTo(Plr);
    break;
    
            case 10:     // Warrior-Taunt
                if(Plr->getLevel() >= 10)
                {
                    Plr->addSpell(355);
                    Plr->BroadcastMessage("You have learned Taunt.");
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Taunt.");
                    }
                break;
    
        case 11:     // Warrior-Defensive Stance
                if(Plr->getLevel() >= 10)
                {
                    Plr->addSpell(71);
                    Plr->BroadcastMessage("You have learned Defensive Stance.");
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Defensive Stance.");
                    }
                break;
    
        case 12:     // Warrior-Beserker Stance
                if(Plr->getLevel() >= 30)
                {
                    Plr->addSpell(2458);
                    Plr->BroadcastMessage("You have learned Berseker Stance.");
                }else{
                    Plr->BroadcastMessage("You must be level 30 to learn Berseker Stance.");
                    }
                break;
    
        case 13:     // Warrior-Intercept
                if(Plr->getLevel() >= 10)
                {
                    Plr->addSpell(25275);
                    Plr->BroadcastMessage("You have learned Intercept.");
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Intercept.");
                    }
                break;
    
        case 14:     // Warrior-Mortal Strike
                if(Plr->getLevel() >= 40)
                {
                    Plr->addSpell(30330);
                    Plr->BroadcastMessage("You have learned Mortal Strike.");
                }else{
                    Plr->BroadcastMessage("You must be level 40 to learn Mortal Strike.");
                    }
                break;
    
            case 20:     // Paladin-Warhorse
                if(Plr->getLevel() >= 40)
                {
                            Plr->addSpell(13819);
                            Plr->BroadcastMessage("You have learned Summon Warhorse.");
                }else{ 
                    Plr->BroadcastMessage("You must be level 40 to learn Summon Warhorse."); 
                    }
                break;
    
        case 21:     // Paladin-Charger
                if(Plr->getLevel() >= 60)
                {
                            Plr->addSpell(34767);
                            Plr->BroadcastMessage("You have learned Summon Charger.");
                }else{ 
                    Plr->BroadcastMessage("You must be level 60 to learn Summon Charger."); 
                    }            
                break;
    
        case 22:     // Paladin-Redemption
                if(Plr->getLevel() >= 10)
                {
                            Plr->addSpell(20773);
                            Plr->BroadcastMessage("You have learned Redemption.");
                }else{ 
                    Plr->BroadcastMessage("You must be level 10 to learn Redemption."); 
                    }            
                break;
            
            case 30:     // Hunter-Pet Spells
                    if(Plr->getLevel() >= 10)
                    {
                    Plr->addSpell(1515);
                    Plr->addSpell(883);
                    Plr->addSpell(5149);
                    Plr->addSpell(982);
                    Plr->addSpell(6991);
                    Plr->BroadcastMessage("You have learned your Hunter Pet Spells.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You are below level 10.");
                    Plr->Gossip_Complete();
                    }
                        break;
    
        case 40:     // Warlock-Pet Spells
                    if(Plr->getLevel() >= 10)
                    {
                    Plr->addSpell(688);
                    Plr->addSpell(697);
                    Plr->addSpell(712);
                    Plr->addSpell(691);
                    Plr->BroadcastMessage("You have learned your Warlock Pet Spells.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You are below level 10.");
                    Plr->Gossip_Complete();
                }
                break;
    
        case 41:     // Warlock-Felsteed
                    if(Plr->getLevel() >= 40)
                    {
                    Plr->addSpell(5784);
                    Plr->BroadcastMessage("You have learned Summon Felsteed.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 40 to learn Summon Felsteed.");
                    Plr->Gossip_Complete();
                }
                break;
    
        case 42:     // Warlock-Dreadsteed
                    if(Plr->getLevel() >= 60)
                    {
                    Plr->addSpell(23161);
                    Plr->BroadcastMessage("You have learned Summon Dreadsteed.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 60 to learn Summon Dreadsteed.");
                    Plr->Gossip_Complete();
                }
                        break;
    
        case 50:     // Druid-Growl
                    if(Plr->getLevel() >= 10)
                    {
                    Plr->addSpell(6795);
                    Plr->BroadcastMessage("You have learned Growl.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Growl.");
                    Plr->Gossip_Complete();
                }
                        break;
    
        case 51:     // Druid-Dire Bear Form
                    if(Plr->getLevel() >= 30)
                    {
                    Plr->addSpell(9634);
                    Plr->BroadcastMessage("You have learned Dire Bear Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 30 to learn Dire Bear Form.");
                    Plr->Gossip_Complete();
                }
                        break;
    
        case 52:     // Druid-Normal Flight Form
                    if(Plr->getLevel() >= 68)
                    {
                    Plr->addSpell(33943);
                    Plr->BroadcastMessage("You have learned Summon Normal Flight Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 68 to learn Normal Flight Form.");
                    Plr->Gossip_Complete();
                }
                        break;
    
        case 53:     // Druid-Epic Flight Form
                    if(Plr->getLevel() >= 70)
                    {
                    Plr->addSpell(40120);
                    Plr->BroadcastMessage("You have learned Summon Epic Flight Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 60 to learn Epic Flight Form.");
                    Plr->Gossip_Complete();
                }
        case 54:     // Druid-
                    if(Plr->getLevel() >= 10)
                    {
                    Plr->addSpell(5487);
                    Plr->BroadcastMessage("You have learned Bear Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 10 to learn Bear Form.");
                    Plr->Gossip_Complete();
                }
                        break;
        case 55:     // Druid-Maul
                    if(Plr->getLevel() >= 67)
                    {
                    Plr->addSpell(26996);
                    Plr->BroadcastMessage("You have learned Maul Rank 8.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 67 to learn Maul.");
                    Plr->Gossip_Complete();
                }
                        break;
        case 56:     // Druid-Aquatic Form
                    if(Plr->getLevel() >= 20)
                    {
                    Plr->addSpell(1066);
                    Plr->BroadcastMessage("You have learned Aquatic Form.");
                    Plr->Gossip_Complete();
                }else{
                    Plr->BroadcastMessage("You must be level 20 to learn Aquatic Form.");
                    Plr->Gossip_Complete();
                }
                        break;
        case 57:     
                if(Plr->getLevel() >= 40)
                {
                    Plr->addSpell(45438);
                    Plr->BroadcastMessage("You have learned Ice Block.");
                }else{
                    Plr->BroadcastMessage("You must be level 40 to learn Mortal Strike.");
                    }
                break;
        case 98:     // Reset Talents
                {
                                    Plr->Reset_Talents();
                    Plr->BroadcastMessage("You have reset your talent points.");
                    Plr->Gossip_Complete();
                }
                        break;
        case 99:    //Main Menu
                objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
                    if (Plr->getClass() == 1) 
     { 
    Menu->AddItem(0, "What spells can warriors learn?", 1);
     } 
                    if (Plr->getClass() == 2)
     { 
    Menu->AddItem(0, "What spells can paladins learn?", 2);
     }
                    if (Plr->getClass() == 3)
     { 
    Menu->AddItem(0, "What spells can hunters learn?", 3);
     }
                    if (Plr->getClass() == 9)
     { 
    Menu->AddItem(0, "What spells can warlocks learn?", 4);
     }
                    if (Plr->getClass() == 11)
     { 
    Menu->AddItem(0, "What spells can druids learn?", 5);
     }
                    if (Plr->getClass() == 4) 
     { 
    Menu->AddItem(0, "What spells can rogues learn?", 6);
     } 
                    if (Plr->getClass() == 5) 
     { 
    Menu->AddItem(0, "What spells can priests learn?", 7);
     } 
                    if (Plr->getClass() == 7) 
     { 
    Menu->AddItem(0, "What spells can shamans learn?", 8);
     } 
                    if (Plr->getClass() == 8) 
     { 
    Menu->AddItem(0, "What spells can mages learn?", 9);
     } 
    Menu->AddItem(5, "Reset Talent Points", 98);
    Menu->SendTo(Plr);
    break;
    
                
            }
        }
    
    void SetupSkillNPC(ScriptMgr * mgr)
    {
        mgr->register_gossip_script(30010, (GossipScript*) new SkillNPC());
    }

  4. #4
    Algorithm's Avatar Member
    Reputation
    175
    Join Date
    Mar 2008
    Posts
    395
    Thanks G/R
    0/1
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    did you add playercheck class on iceblock? like is only mages can learn it?

  5. #5
    TheSpidey's Avatar Elite User
    Reputation
    365
    Join Date
    Jan 2008
    Posts
    2,200
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    This script is unrecommended, it can be abused by WPE making classes learn other classes' spells

Similar Threads

  1. need help with shammy talents
    By jason in forum World of Warcraft General
    Replies: 5
    Last Post: 07-19-2006, 02:02 AM
  2. help with emu server
    By Chsz in forum World of Warcraft General
    Replies: 1
    Last Post: 07-04-2006, 10:01 PM
  3. Help with wowglider
    By Voldaroi in forum World of Warcraft General
    Replies: 6
    Last Post: 06-17-2006, 08:54 PM
  4. Help with Ranks!!
    By Krazzee in forum Community Chat
    Replies: 7
    Last Post: 06-16-2006, 06:58 PM
  5. Help with Auto-it!!
    By Krazzee in forum World of Warcraft General
    Replies: 7
    Last Post: 06-12-2006, 09:22 PM
All times are GMT -5. The time now is 08:01 AM. 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