• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Npc который меняет класс игрока
Proxa
Центурион
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);
}

взято с mmowned.com
Сообщение # 1 написано 26.05.2009 в 10:46
MaZaXaKa
Рыцарь
а куда эт лить ?, а ид я так понел 85004.......
Сообщение # 2 написано 26.05.2009 в 11:12
Proxa
Центурион
при компиле ядра заливай как патч
как скомпилить ядро?
http://wowjp.net/forum/18-3155-1
Сообщение # 3 написано 26.05.2009 в 11:17
MaZaXaKa
Рыцарь
ок понел, разберусь...
Сообщение # 4 написано 26.05.2009 в 11:18
kE1LeRoK
Капрал
Proxa, а в готовую зборку влить нельзя , как я понел) хреново cool
Нежалей + сиков )
помог ставь + )
ставь + просто так отвечу темже )) WoW.JP
Сообщение # 5 написано 26.05.2009 в 11:30
Proxa
Центурион
ну ето не ко мне т.к. ядра я компилю говново
пиши в личку к кому нить
Сообщение # 6 написано 26.05.2009 в 11:55
kE1LeRoK
Капрал
Proxa, Всеровно молодец , комуто пригодится biggrin
Нежалей + сиков )
помог ставь + )
ставь + просто так отвечу темже )) WoW.JP
Сообщение # 7 написано 26.05.2009 в 11:56
Целитель
WOWJP client DEV
для мангоса или асцента !??? Просто там откуда это взято продвигают асцент!
Сообщение # 8 написано 26.05.2009 в 14:19
Proxa
Центурион
гыы не посмотрел
там никто ничо не указывал
попробуйту кто нить чтоль
Сообщение # 9 написано 26.05.2009 в 14:30
Целитель
WOWJP client DEV
Асцент родименький вроде бы по коду!!!
Сообщение # 10 написано 26.05.2009 в 17:12
JeckDrous
Hip-Hop
Код Асцента)))
...
Сообщение # 11 написано 26.05.2009 в 17:55
Целитель
WOWJP client DEV
Удаляй тему или переноси в ASCENT!!
Сообщение # 12 написано 27.05.2009 в 16:29
Proxa
Центурион
Целитель, у меня нет прав переносить а в асценте нет раздела патчи в ядро =)
Сообщение # 13 написано 27.05.2009 в 16:34
Csem
Центурион
Обидно что асцент.
Эх асцент обставил мангос.
Сообщение # 14 написано 27.05.2009 в 19:08
Оби_ВаН
Чемпион
Такое бы для мангоса готовым SQL ))))
Помог?Ставь +!

Сообщение # 15 написано 28.05.2009 в 20:29
(-=$h@rKeR=-)
Рыцарь
Quote (Csem)
Эх асцент обставил мангос.

Чем ето ?:)

Сообщение # 16 написано 29.05.2009 в 16:35
TIGER087
Чемпион
Quote (Proxa)
Proxa

и нах тебе эт надо?
Сообщение # 17 написано 14.07.2009 в 13:36
Almaz
Командир
Меняет класс игрока? Бред полный
Сообщение # 18 написано 14.07.2009 в 17:50
grom243
Старший Маршал
Класс игрока.....Тупость...
Сообщение # 19 написано 17.07.2009 в 20:35
FoRe[ST]eR
Чемпион
И правда тупость. Во первых создали не в том разделе, да ещё и выложили чепуху. Спрашивается: зачем этот NPC? dry
Сообщение # 20 написано 18.07.2009 в 13:30
deadzombi
Скаут
А по моему интересный нпс
Сообщение # 21 написано 06.08.2009 в 11:50
grom243
Старший Маршал
Интересный, но только не для мангоса.
Сообщение # 22 написано 06.08.2009 в 12:04
L30m4nc3r
TC User
обидно что не для мангоса sad
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки. ©
Сообщение # 23 написано 09.10.2009 в 17:53
skret
Сержант
кул
Сообщение # 24 написано 14.09.2010 в 15:07
Rive[R]a
Командир
Норм может быть
Сообщение # 25 написано 28.09.2010 в 22:53
  • Страница 1 из 1
  • 1
Поиск: