返回列表 回复 发帖

学习武器技能NPC全源码(内部)现在放出

  1. #include "StdAfx.h"
  2. #include "Setup.h"
  3. #ifdef WIN32
  4. #pragma warning(disable:4305)
  5. #endif
  6. #define SPELL_MORPH 40108;
  7. class SCRIPT_DECL MorphNPC : public GossipScript
  8. {
  9. public:
  10. void GossipHello(Object * pObject, Player* Plr, bool AutoSend);
  11. void GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code);
  12. void GossipEnd(Object * pObject, Player* Plr);
  13. void Destroy()
  14. {
  15. delete this;
  16. }
  17. };
  18. void MorphNPC::GossipHello(Object * pObject, Player* Plr, bool AutoSend)
  19. {
  20. GossipMenu *Menu;
  21. objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 1, Plr);
  22. Menu->AddItem(0, " 学习战士武器技能 ", 1);
  23. Menu->AddItem(0, " 学习圣武器技能 ", 2);
  24. Menu->AddItem(0, " 学习猎人武器技能 ", 3);
  25. Menu->AddItem(0, " 学习盗贼武器技能 ", 4);
  26. Menu->AddItem(0, " 学习牧师武器技能 ", 5);
  27. Menu->AddItem(0, " 学习撒满武器技能 ", 6);
  28. Menu->AddItem(0, " 学习法师武器技能 ", 7);
  29. Menu->AddItem(0, " 学习术士武器技能 ", 8);
  30. Menu->AddItem(0, " 学习德怒伊武器技能 ", 9);
  31. Menu->AddItem(5, " 学习护甲技能:100g (需要 70 级)", 10);
  32. Menu->AddItem(5, " 学习语言!:100g (需要 70 级) ", 11);
  33. if(AutoSend)
  34. Menu->SendTo(Plr);
  35. }
  36. void MorphNPC::GossipSelectOption(Object * pObject, Player* Plr, uint32 Id, uint32 IntId, const char * Code)
  37. {
  38. Creature * pCreature = (pObject->GetTypeId()==TYPEID_UNIT)?((Creature*)pObject):NULL;
  39. if(pCreature==NULL)
  40. return;
  41. switch(IntId)
  42. {
  43. case 1://Warrior
  44.   {
  45.     if (Plr->getClass() == 1)
  46.     {
  47.       Plr->addSpell(201);//sword
  48.       Plr->addSpell(674);//dualwield
  49.       Plr->addSpell(1180);//dagger
  50.       Plr->addSpell(198);//mace
  51.       Plr->addSpell(226);//xbow
  52.       Plr->addSpell(15590);//fist
  53.       Plr->addSpell(264);//bow
  54.       Plr->addSpell(266);//gun
  55.       Plr->addSpell(202);//2h sword
  56.       Plr->addSpell(197);//2h axe
  57.       Plr->addSpell(160);//2h mace
  58.       Plr->addSpell(196);//axe
  59.       
  60.       pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有战士武器技能! " );
  61.     }else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是战士! " );
  62.     }
  63.   }break;
  64. case 2: //pally
  65.   {
  66.     if (Plr->getClass() == 2)
  67.     {
  68.       Plr->addSpell(201);//sword
  69.       Plr->addSpell(200);//polearm
  70.       Plr->addSpell(202);//2h sword
  71.       Plr->addSpell(196);//1h axe
  72.       Plr->addSpell(197);//2h axe
  73.       Plr->addSpell(198);//mace
  74.       Plr->addSpell(160);//2h mace
  75.       pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有圣骑武器技能! " );
  76.    
  77.     }else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是圣骑! " );
  78.     }
  79.   }break;
  80. case 3: //hunter
  81.   {
  82.     if (Plr->getClass() == 3)
  83.   {
  84.    Plr->addSpell(201);//sword
  85.    Plr->addSpell(196);//axe
  86.    Plr->addSpell(264);//bow
  87.    Plr->addSpell(266);//gun
  88.    Plr->addSpell(1180);//daggers
  89.    Plr->addSpell(202);//2h sword
  90.    Plr->addSpell(197);//2h axe
  91.    Plr->addSpell(674);//xwield
  92.      pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有猎人武器技能! " );
  93.     }else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是猎人! " );
  94.     }
  95.   }break;
  96. case 4: //Rogue
  97.   {
  98.     if (Plr->getClass() == 4)
  99.     {
  100.     Plr->addSpell(201);//sword
  101.    Plr->addSpell(674);//xwield
  102.    Plr->addSpell(264);//bow
  103.    Plr->addSpell(266);//gun
  104.    pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有盗贼武器技能! " );
  105.     }else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是盗贼! " );
  106.     }
  107.   }break;
  108. case 5:// priest
  109.   {
  110.     if(Plr->getClass() == 5)
  111.     {
  112.       Plr->addSpell(198);//mace
  113.       Plr->addSpell(1180);//dagger
  114.       Plr->addSpell(136);//stave
  115.       Plr->addSpell(5009);//wand
  116.       pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有牧师武器技能! " );
  117.     } else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是牧师! " );
  118.     }
  119.   }break;
  120. case 6://Shaman
  121.   {
  122.     if(Plr->getClass() == 7)
  123.     {
  124.       Plr->addSpell(198);//mace
  125.       Plr->addSpell(1180);//dagger
  126.       Plr->addSpell(136);//stave
  127.       Plr->addSpell(196);//axe
  128.       pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有撒满武器技能! " );
  129.     } else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是撒满! " );
  130.     }
  131.   }break;
  132. case 7://mage
  133.   {
  134.    if(Plr->getClass() == 8)
  135.    {
  136.     Plr->addSpell(198);//mace
  137.     Plr->addSpell(1180);//dagger
  138.     Plr->addSpell(136);//stave
  139.     Plr->addSpell(5009);//wand
  140.     pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有法师武器技能! " );
  141.     } else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是法师! " );
  142.    }
  143.   }break;
  144.   
  145. case 8:// WL
  146. {
  147.    if(Plr->getClass() == 9)
  148.    {
  149.     Plr->addSpell(201);//sword
  150.     Plr->addSpell(1180);//dagger
  151.     Plr->addSpell(136);//stave
  152.     Plr->addSpell(5009);//wand
  153.     pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有术士武器技能! " );
  154.     } else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是术士! " );
  155.    }
  156. }break;
  157. case 9:
  158.   {
  159.    
  160.    if(Plr->getClass() == 11)
  161.    {
  162.     Plr->addSpell(198);//mace
  163.     Plr->addSpell(1180);//dagger
  164.     Plr->addSpell(136);//stave
  165.     Plr->addSpell(5009);//wand
  166.     pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会所有德怒伊武器技能! " );
  167.     } else {  pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你不是德怒伊! " );
  168.    }
  169.   }break;
  170.   
  171.   case 10://Riding skills
  172.     {
  173. uint32 price = 1000000;
  174. uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
  175. if (currentgold>=price){
  176. int32 newgold = currentgold - price;
  177. Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
  178.     Plr->addSpell(33388);//apprentice
  179.     Plr->addSpell(33391);//journy
  180.     Plr->addSpell(34090);//expert
  181.     Plr->addSpell(34091);//artisan
  182. pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会护甲 ");
  183. pCreature->Emote(EMOTE_ONESHOT_CHEER);
  184. } else {
  185. pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你没有足够的金币,难道你认我我是傻子吗! ");
  186. pCreature->CastSpell(Plr, 43515, 0);// Attack the target....lol
  187. }
  188.     }break;
  189.   case 11://Languge
  190.     {  
  191.       uint32 price = 1000000;
  192.       uint32 currentgold = Plr->GetUInt32Value(PLAYER_FIELD_COINAGE);
  193.       if (currentgold>=price && Plr->getLevel() >= 70 ){
  194. int32 newgold = currentgold - price;
  195. Plr->SetUInt32Value(PLAYER_FIELD_COINAGE,newgold);
  196.     Plr->addSpell(668);//common
  197.     Plr->addSpell(669);//horde
  198.    
  199. pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 学会联盟和部落的语言 ");
  200. pCreature->Emote(EMOTE_ONESHOT_CHEER);
  201.       }
  202.       else { pCreature->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, " 你没有足够的金币,难道你认我我是傻子吗! ");
  203.       }
  204.     }break;
  205.     } //Siwtch ender
  206.   
  207.   };//Last } needed
  208. void MorphNPC::GossipEnd(Object * pObject, Player* Plr)
  209. {
  210. GossipScript::GossipEnd(pObject, Plr);
  211. }
  212. void SetupMorphNPC(ScriptMgr * mgr)
  213. {
  214. GossipScript * gs = (GossipScript*) new MorphNPC();
  215. mgr->register_gossip_script(30010, gs);
  216. }
复制代码
别人笑我太疯癫,我笑他人看不穿 http://ftp.99game.org/seal/suiyuan.jpg
谢谢~支持共享~
呵呵,不简单了,这个源码也能共享了,看来这里还是很有前途的
如果能像ASCENT论坛一样每个人都能把自己的源码放出来,让大家一起完善,这里会不会火爆了啊?
估计这个事情永远不会发生
那个要怎么用呢..我不明白..
精华阿!可是……我还是不知道放到哪~~
数据库代码也没的啊
谁来说明下!~我编译好了。就是刷不出NPC~~是不是要在数据库建一个NPC?
返回列表