Главная | Форум | Статьи | Фaйлы| Картинки WoW | Профиль | Регистрация | Вход

[ Новые сообщения · Правила форума · Поиск · RSS ]

WoW-Info — информационный World of Warcraft портал

Npc который меняет класс игрока - Форум

  • Сторінка 1 з 1
  • 1
Npc который меняет класс игрока
MaydieДата: Вівторок, 30.11.2010, 01:13 | Сообщение # 1



Maydie
Капрал
Группа: Пользователи
Сообщений: 70

Замечания:

Оффлайн
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);  
}


 
[LAPKO]²º¹¹Дата: Неділя, 20.02.2011, 17:31 | Сообщение # 2



[LAPKO]²º¹¹
Рыцарь
Группа: Пользователи
Сообщений: 213

Замечания:

Оффлайн
ап
 
  • Сторінка 1 з 1
  • 1
Пошук:

Новые сообщения в темах
Сдам в аренду сервер и хостинг · (Хост Предложения)
Автор: redlaine
Последнее сообщение в 23:53
хаха :D · (Приколы)
Автор: [N1ke]Medved
Последнее сообщение в 18:40
Autobattle - новый боевой бот ... · (Боты для WoW)
Автор: terrikon
Последнее сообщение в 18:39
PvE руководство для Чернокнижн... · (Чернокнижник)
Автор: Darkensand
Последнее сообщение в 18:38
Пустой свиток (Часть 11) · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:37
Друиды в Катаклизме: Официальн... · (Друид)
Автор: Darkensand
Последнее сообщение в 18:37
[Баг 3.3.5] Фарм ледяных бадже... · (Читы для WoW)
Автор: Darkensand
Последнее сообщение в 18:35
FarmBot (Бот для фарма руды и ... · (Боты для WoW)
Автор: homma
Последнее сообщение в 18:34
Почему мы сражаемся: ролевая и... · (Воин)
Автор: Darkensand
Последнее сообщение в 18:34
Книги по Wold of Warcraft · (Истории WoW)
Автор: R_a_Z_o_R
Последнее сообщение в 18:33
Маг огня в Cataclysm · (Маг)
Автор: Darkensand
Последнее сообщение в 18:33
Как начать играть в World of W... · (Полезно знать)
Автор: Belkmondesh
Последнее сообщение в 18:32
Характеризация профессий · (Профессии)
Автор: Darkensand
Последнее сообщение в 18:31
Что значит для арканов бета те... · (Маг)
Автор: Darkensand
Последнее сообщение в 18:31

Контакты Контакты Copyright WoW-Info — World of Warcraft портал © 2026 | Условия и правила использования ресурса | Реклама / Услуги
WoW-Info портал.World of Warcraft портал — готовые сервера, сайты, картинки, аддоны, патчи, читы, баги, mangos, ArcEmu, TrinityCore, Warcraft 3, новости, Cataclysm...
Яндекс.Метрика Хостинг від uCoz