| •••scream™••• | Дата: Суббота, 24.10.2009, 23:25 | Сообщение # 1 |  
 Лучший из лучших 
Группа: Супер  Модераторы 
Сообщений: 1767 
Награды:  8 
Репутация:  472 
Статус:    
 
 | Code // CREATED BY LAAEVIE OF MMOWNED!  
   #include "StdAfx.h"    #include "Setup.h"  
   #define CHANGE_CLASS_NPC 85004  
   #ifdef WIN32    #pragma warning(disable:4305)// warning C4305: 'argument' : truncation from 'double' to 'float'    #endif  
   class SCRIPT_DECL ClassChangerNPC : 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 ClassChangerNPC::GossipHello(Object * pObject, Player* Plr, bool AutoSend)      {             GossipMenu *Menu;             objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);      {      if(Plr->getRace()== 1||Plr->getRace()== 2||Plr->getRace()== 3||Plr->getRace()== 4||Plr->getRace()== 5||Plr->getRace()== 6||Plr->getRace()== 7||Plr->getRace()== 8||Plr->getRace()== 11)       {Menu->AddItem(0, "I want to be a Warrior!", 1);}  
     if(Plr->getRace()== 1||Plr->getRace()== 3||Plr->getRace()== 10||Plr->getRace()== 11)       {Menu->AddItem(0, "I want to be a Paladin!", 2);}  
     if(Plr->getRace()== 2||Plr->getRace()== 3||Plr->getRace()== 4||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 11)       {Menu->AddItem(0, "I want to be a Hunter!", 3);}  
     if(Plr->getRace()== 1||Plr->getRace()== 2||Plr->getRace()== 3||Plr->getRace()== 4||Plr->getRace()== 5||Plr->getRace()== 7||Plr->getRace()== 8||Plr->getRace()== 10)       {Menu->AddItem(0, "I want to be a Rogue!", 4);}  
     if(Plr->getRace()== 1||Plr->getRace()== 3||Plr->getRace()== 4||Plr->getRace()== 5||Plr->getRace()== 8||Plr->getRace()== 10||Plr->getRace()== 11)       {Menu->AddItem(0, "I want to be a Priest!", 5);}  
     if(Plr->getRace()== 1||Plr->getRace()== 2||Plr->getRace()== 3||Plr->getRace()== 4||Plr->getRace()== 5||Plr->getRace()== 6||Plr->getRace()== 7||Plr->getRace()== 8||Plr->getRace()== 10||Plr->getRace()== 11)       {Menu->AddItem(0, "I want to be a Death Knight!", 6);}  
     if(Plr->getRace()== 2||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 11)       {Menu->AddItem(0, "I want to be a Shaman!", 7);}  
     if(Plr->getRace()== 1||Plr->getRace()== 5||Plr->getRace()== 6||Plr->getRace()== 8||Plr->getRace()== 10||Plr->getRace()== 11)       {Menu->AddItem(0, "I want to be a Mage!", 8);}  
     if(Plr->getRace()== 1||Plr->getRace()== 2||Plr->getRace()== 5||Plr->getRace()== 7||Plr->getRace()== 10)       {Menu->AddItem(0, "I want to be a Warlock!", 9);}  
     if(Plr->getRace()== 4||Plr->getRace()== 6)       {Menu->AddItem(0, "I want to be a Druid!", 11);}  
      Menu->AddItem(0, "I Don't want to chage class!", 50);      }  
     if(AutoSend)       Menu->SendTo(Plr);    };  
   void ClassChangerNPC::GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)    {      switch(IntId)      {       case 0:       {        GossipHello(pObject, Plr, true);       }break;       case 50:       {        Plr->Gossip_Complete();       }break;  
      default:       {        if (Plr->getClass() != IntId)        {         Plr->setClass((uint8)IntId);         Plr->Reset_Spells();         Plr->_RemoveAllSkills();         Plr->BroadcastMessage("Class change complete. Relog to see the effect.");           
      if (Plr->_HasSkillLine(43))        {Plr->_ModifySkillMaximum(43, 400);}//Swords  
      if (Plr->_HasSkillLine(44))        {Plr->_ModifySkillMaximum(44, 400);}//Axes  
      if (Plr->_HasSkillLine(45))        {Plr->_ModifySkillMaximum(45, 400);}//Bows  
      if (Plr->_HasSkillLine(46))        {Plr->_ModifySkillMaximum(46, 400);}//Guns  
      if (Plr->_HasSkillLine(54))        {Plr->_ModifySkillMaximum(54, 400);}//Maces  
      if (Plr->_HasSkillLine(95))        {Plr->_ModifySkillMaximum(95, 400);}//Defense  
      if (Plr->_HasSkillLine(136))        {Plr->_ModifySkillMaximum(136, 400);}//Staves  
      if (Plr->_HasSkillLine(160))        {Plr->_ModifySkillMaximum(160, 400);}//Two-Handed Swords  
      if (Plr->_HasSkillLine(162))        {Plr->_ModifySkillMaximum(162, 400);}//Unarmed  
      if (Plr->_HasSkillLine(172))        {Plr->_ModifySkillMaximum(172, 400);}//Two-Handed Axes  
      if (Plr->_HasSkillLine(173))        {Plr->_ModifySkillMaximum(173, 400);}//Daggers  
      if (Plr->_HasSkillLine(176))        {Plr->_ModifySkillMaximum(176, 400);}//Thrown  
      if (Plr->_HasSkillLine(226))        {Plr->_ModifySkillMaximum(226, 400);}//Crossbows  
      if (Plr->_HasSkillLine(228))        {Plr->_ModifySkillMaximum(228, 400);}//Wands  
      if (Plr->_HasSkillLine(229))        {Plr->_ModifySkillMaximum(229, 400);}//Polearms  
      if (Plr->_HasSkillLine(473))        {Plr->_ModifySkillMaximum(473, 400);}//Fist Weapons               if (Plr->_HasSkillLine(633))        {Plr->_ModifySkillMaximum(633, 400);}//Lockpicking           Plr->Gossip_Complete();    }  
       else if (Plr->getClass() == IntId)        {             Plr->BroadcastMessage("ERROR: You are already that class, please choose other class!");         Plr->Gossip_Complete();        }       }break;  
     }    };  
   void ClassChangerNPC::GossipEnd(Object * pObject, Player* Plr)    {         GossipScript::GossipEnd(pObject, Plr);    }  
   void SetupClassChangerNPC(ScriptMgr * mgr)    {      GossipScript * gs = (GossipScript*) new ClassChangerNPC();         mgr->register_gossip_script(CHANGE_CLASS_NPC, gs);    }  
  Продается аккаунт
 |  
|   | 
 |    |