Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- #include "Config.h"
- #include <stdio.h>
- #include <sstream>
- #define GOSSIP_SENDER_MAIN 1000
- #define GOSSIP_SMALLBUFF 2000
- #define GOSSIP_LARGEBUFF 3000
- #define GOSSIP_GMBUFF 4000
- #define GOSSIP_PLAYERTOOLS 5000
- #define SPELL_RESURRECTION_SICKNESS_15007 15007
- #define NB_BUFF_PAGE 10
- #define MSG_TYPE 100002
- #define MSG_BUFF 100003
- #define NEXT_PAGE "-> [Next Page]"
- #define PREV_PAGE "<- [Previous Page]"
- #define MAIN_MENU "<= [Main Menu]"
- class npc_buff : public CreatureScript
- {
- public:
- npc_buff() : CreatureScript("npc_buff") {}
- bool OnGossipHello(Player* pPlayer, Creature* pCreature)
- {
- if(sConfig->GetBoolDefault("Npc_Buff.OnlyGMs", false)) // If Npc_Buff.OnlyGMs is enabled in worldserver.conf
- if (pPlayer->GetSession()->GetSecurity() == SEC_PLAYER)
- {
- pCreature->MonsterWhisper("Sorry, I can only Buff Platinum Members.", pPlayer->GetGUID());
- return true;
- }
- bool EnableSmallBuff = sConfig->GetBoolDefault("Npc_Buff.EnableSmallBuff", true);
- bool EnableGreatBuff = sConfig->GetBoolDefault("Npc_Buff.EnableGreatBuff", true);
- bool EnableGMBuff = sConfig->GetBoolDefault("Npc_Buff.EnableGMBuff", true);
- bool EnablePlayerTools = sConfig->GetBoolDefault("Npc_Buff.EnablePlayerTools", true);
- bool EnableResSickness = sConfig->GetBoolDefault("Npc_Buff.EnableRemoveResSickness", true);
- bool EnableGivemeGold = sConfig->GetBoolDefault("Npc_Buff.EnableGivemeGold", false);
- // Main Menu
- // Check config if "Small Buff " is enabled or not
- if(EnableSmallBuff)
- pPlayer->ADD_GOSSIP_ITEM( 7, "Small Buff ->" , GOSSIP_SENDER_MAIN, 1000);
- // Check config if "Great Buff" is enabled or not
- if(EnableGreatBuff)
- pPlayer->ADD_GOSSIP_ITEM( 7, "Great Buff ->" , GOSSIP_SENDER_MAIN, 2000);
- // Check config if "GM Buff" is enabled or not
- if(EnableGMBuff)
- pPlayer->ADD_GOSSIP_ITEM( 7, "GM Buff ->" , GOSSIP_SENDER_MAIN, 3000);
- // Check config if "Player Tools" is enabled or not
- if(EnablePlayerTools)
- pPlayer->ADD_GOSSIP_ITEM( 7, "Player Tools ->" , GOSSIP_SENDER_MAIN, 4000);
- // Check config file if "Remove res sickness" option is enabled or not
- if(EnableResSickness)
- pPlayer->ADD_GOSSIP_ITEM( 10, "Remove Resurrect Sickness" , GOSSIP_SENDER_MAIN, 5000);
- pPlayer->SEND_GOSSIP_MENU(MSG_TYPE, pCreature->GetGUID());
- return true;
- }
- bool showSmallBuff(Player *pPlayer, Creature *pCreature, uint32 showFromId = 0)
- {
- //show not occupied guildhouses
- QueryResult result;
- result = WorldDatabase.PQuery("SELECT `name`, `cat_number` FROM `npc_buff_spells` WHERE `cat_number` < 2000 ORDER BY `cat_number` ASC LIMIT %u",
- NB_BUFF_PAGE);
- if (result)
- {
- std::string name = "";
- uint32 catNumber = 0;
- do
- {
- Field *fields = result->Fetch();
- name = fields[0].GetString();
- catNumber = fields[1].GetInt32();
- pPlayer->ADD_GOSSIP_ITEM(9, name, GOSSIP_SENDER_MAIN, catNumber);
- }
- while (result->NextRow());
- pPlayer->SEND_GOSSIP_MENU(MSG_BUFF, pCreature->GetGUID());
- return true;
- }
- else
- {
- if (showFromId = 0)
- {
- //all guildhouses are occupied
- pCreature->MonsterWhisper("You don't have enough money.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- else
- {
- //this condition occurs when COUNT(guildhouses) % GOSSIP_COUNT_MAX == 0
- //just show GHs from beginning
- showSmallBuff(pPlayer, pCreature, 0);
- }
- }
- return false;
- }
- bool showGreatBuff(Player *pPlayer, Creature *pCreature, uint32 showFromId = 0)
- {
- //show not occupied guildhouses
- QueryResult result;
- result = WorldDatabase.PQuery("SELECT `name`, `cat_number` FROM `npc_buff_spells` WHERE `cat_number` < 3000 AND `cat_number` > 2000 ORDER BY `cat_number` ASC LIMIT %u",
- NB_BUFF_PAGE);
- if (result)
- {
- std::string name = "";
- uint32 catNumber = 0;
- do
- {
- Field *fields = result->Fetch();
- name = fields[0].GetString();
- catNumber = fields[1].GetInt32();
- pPlayer->ADD_GOSSIP_ITEM(9, name, GOSSIP_SENDER_MAIN, catNumber);
- }
- while (result->NextRow());
- pPlayer->SEND_GOSSIP_MENU(MSG_BUFF, pCreature->GetGUID());
- return true;
- }
- else
- {
- if (showFromId = 0)
- {
- //all guildhouses are occupied
- pCreature->MonsterWhisper("You don't have enough money.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- else
- {
- //this condition occurs when COUNT(guildhouses) % GOSSIP_COUNT_MAX == 0
- //just show GHs from beginning
- showGreatBuff(pPlayer, pCreature, 0);
- }
- }
- return false;
- }
- bool showGmBuff(Player *pPlayer, Creature *pCreature, uint32 showFromId = 0)
- {
- //show not occupied guildhouses
- QueryResult result;
- result = WorldDatabase.PQuery("SELECT `name`, `cat_number` FROM `npc_buff_spells` WHERE `cat_number` < 4000 AND `cat_number` > 3000 ORDER BY `cat_number` ASC LIMIT %u",
- NB_BUFF_PAGE);
- if (result)
- {
- std::string name = "";
- uint32 catNumber = 0;
- do
- {
- Field *fields = result->Fetch();
- name = fields[0].GetString();
- catNumber = fields[1].GetInt32();
- pPlayer->ADD_GOSSIP_ITEM(9, name, GOSSIP_SENDER_MAIN, catNumber);
- }
- while (result->NextRow());
- pPlayer->SEND_GOSSIP_MENU(MSG_BUFF, pCreature->GetGUID());
- return true;
- }
- else
- {
- if (showFromId = 0)
- {
- //all guildhouses are occupied
- pCreature->MonsterWhisper("You don't have enough money.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- else
- {
- //this condition occurs when COUNT(guildhouses) % GOSSIP_COUNT_MAX == 0
- //just show GHs from beginning
- showGmBuff(pPlayer, pCreature, 0);
- }
- }
- return false;
- }
- bool showPlayerTools(Player *pPlayer, Creature *pCreature, uint32 showFromId = 0)
- {
- //show not occupied guildhouses
- QueryResult result;
- result = WorldDatabase.PQuery("SELECT `name`, `cat_number` FROM `npc_buff_spells` WHERE `cat_number` < 5000 AND `cat_number` > 4000 ORDER BY `cat_number` ASC LIMIT %u",
- NB_BUFF_PAGE);
- if (result)
- {
- std::string name = "";
- uint32 catNumber = 0;
- do
- {
- Field *fields = result->Fetch();
- name = fields[0].GetString();
- catNumber = fields[1].GetInt32();
- pPlayer->ADD_GOSSIP_ITEM(9, name, GOSSIP_SENDER_MAIN, catNumber);
- }
- while (result->NextRow());
- pPlayer->SEND_GOSSIP_MENU(MSG_BUFF, pCreature->GetGUID());
- return true;
- }
- else
- {
- if (showFromId = 0)
- {
- //all guildhouses are occupied
- pCreature->MonsterWhisper("You don't have enough money.", pPlayer->GetGUID());
- pPlayer->CLOSE_GOSSIP_MENU();
- }
- else
- {
- //this condition occurs when COUNT(guildhouses) % GOSSIP_COUNT_MAX == 0
- //just show GHs from beginning
- showPlayerTools(pPlayer, pCreature, 0);
- }
- }
- return false;
- }
- void SendDefaultMenu(Player* pPlayer, Creature* pCreature, uint32 uiAction)
- {
- // Not allow in combat
- if (pPlayer->isInCombat())
- {
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->MonsterSay("You are in combat!", LANG_UNIVERSAL, NULL);
- return;
- }
- bool EnableSmallBuff = sConfig->GetBoolDefault("Npc_Buff.EnableSmallBuff", true);
- bool EnableGreatBuff = sConfig->GetBoolDefault("Npc_Buff.EnableGreatBuff", true);
- bool EnableGMBuff = sConfig->GetBoolDefault("Npc_Buff.EnableGMBuff", true);
- bool EnablePlayerTools = sConfig->GetBoolDefault("Npc_Buff.EnablePlayerTools", true);
- bool EnableResSickness = sConfig->GetBoolDefault("Npc_Buff.EnableRemoveResSickness", true);
- bool EnableGivemeGold = sConfig->GetBoolDefault("Npc_Buff.EnableGivemeGold", false);
- //Money Check
- if (pPlayer->GetMoney() < (sConfig->GetFloatDefault("BuffGoldCost",0)))
- {
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->MonsterWhisper("You don't have enough money.", pPlayer->GetGUID());
- return;
- }
- // send name as gossip item
- switch(uiAction)
- {
- case 1000: //Small Buff
- showSmallBuff(pPlayer, pCreature, 0);
- pPlayer->ADD_GOSSIP_ITEM( 7, "<- Main Menu" , GOSSIP_SENDER_MAIN, 5005);
- pPlayer->SEND_GOSSIP_MENU(MSG_BUFF, pCreature->GetGUID());
- break;
- case 2000: //Great Buff
- showGreatBuff(pPlayer, pCreature, 0);
- pPlayer->ADD_GOSSIP_ITEM( 7, "<- Main Menu" , GOSSIP_SENDER_MAIN, 5005);
- pPlayer->SEND_GOSSIP_MENU(MSG_BUFF, pCreature->GetGUID());
- break;
- case 3000: //GM Buff
- showGmBuff(pPlayer, pCreature, 0);
- pPlayer->ADD_GOSSIP_ITEM( 7, "<- Main Menu" , GOSSIP_SENDER_MAIN, 5005);
- pPlayer->SEND_GOSSIP_MENU(MSG_BUFF,pCreature->GetGUID());
- break;
- case 4000: //Player Tools
- // Check config if "Give me Gold" is enabled or not
- if(EnableGivemeGold)
- pPlayer->ADD_GOSSIP_ITEM( 5, "Give me Gold" , GOSSIP_SENDER_MAIN, 4001);
- showPlayerTools(pPlayer, pCreature, 0);
- pPlayer->ADD_GOSSIP_ITEM( 7, "<- Main Menu" , GOSSIP_SENDER_MAIN, 5005);
- pPlayer->SEND_GOSSIP_MENU(MSG_BUFF,pCreature->GetGUID());
- break;
- case 5005: //Back To Main Menu
- // Main Menu
- // Check config if "Small Buff " is enabled or not
- if(EnableSmallBuff)
- pPlayer->ADD_GOSSIP_ITEM( 7, "Small Buff ->" , GOSSIP_SMALLBUFF, 0);
- // Check config if "Great Buff" is enabled or not
- if(EnableGreatBuff)
- pPlayer->ADD_GOSSIP_ITEM( 7, "Great Buff ->" , GOSSIP_LARGEBUFF, 0);
- // Check config if "GM Buff" is enabled or not
- if(EnableGMBuff)
- pPlayer->ADD_GOSSIP_ITEM( 7, "GM Buff ->" , GOSSIP_GMBUFF, 0);
- // Check config if "Player Tools" is enabled or not
- if(EnablePlayerTools)
- pPlayer->ADD_GOSSIP_ITEM( 7, "Player Tools ->" , GOSSIP_PLAYERTOOLS, 0);
- // Check if Ress Sickness option is enabled
- if(EnableResSickness)
- pPlayer->ADD_GOSSIP_ITEM( 10, "Remove Resurrect Sickness" , GOSSIP_SENDER_MAIN, 5000);
- pPlayer->SEND_GOSSIP_MENU(MSG_TYPE, pCreature->GetGUID());
- break;
- //////////////////////////////////////////////////Small Buff///////////////////////////////////////////////////////////////
- case 1001: // Buff me Mark of the Wild
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,48469,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1002: // Buff me Thorns
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,53307,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1003: // Buff me Amplify Magic
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,43017,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1004: // Buff me Arcane Intellect
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,42995,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1005: // Buff me Dalaran Intellect
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,61024,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1006: // Buff me Dampen Magic
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,43015,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1007: // Buff me Blessing of Kings
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,20217,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1008: // Buff me Blessing of Might
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,48932,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1009: // Buff me Blessing of Wisdom
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,48936,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1010: // Buff me Divine Spirit
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,48073,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1011: // Buff me Power Word: Fortitude
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,48161,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 1012: // Buff me Shadow Protection
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,48169,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- //////////////////////////////////////////////////Great Buff///////////////////////////////////////////////////////////////
- case 2001: // Buff me Gift of the Wild
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,48470,true);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2002: // Buff me Arcane Brilliance
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,43002,true);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2003: // Buff me Dalaran Brilliance
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,61316,true);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2004: // Buff me Greater Blessing of Kings
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,25898,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2005: // Buff me Greater Blessing of Might
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,48934,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2006: // Buff me Greater Blessing of Sanctuary
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,25899,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2007: // Buff me Greater Blessing of Wisdom
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,48938,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2008: // Buff me Prayer of Fortitude
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,48162,true);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2009: // Buff me Prayer of Shadow Protection
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,48170,true);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 2010: // Buff me Prayer of Spirit
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,48074,true);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- //////////////////////////////////////////////////GM Buff///////////////////////////////////////////////////////////////
- case 3001: // Buff me Agamaggan's Agility
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,17013,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 3002: // Buff me Agamaggan's Strength
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,16612,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 3003: // Buff me Armor Magic
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,58453,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 3004: // Buff me Armor Penetration
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,34106,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 3005: // Buff me Increased Stamina
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,25661,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 3006: // Buff me Razorhide
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,16610,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 3007: // Buff me Rising Spirit
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,10767,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 3008: // Buff me Spirit of the Wind
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,16618,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 3009: // Buff me Wisdom of Agamaggan
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,7764,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- //////////////////////////////////////////////////Player Tools///////////////////////////////////////////////////////////////
- case 4001://Give me Gold
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,46642,false); // 5000 gold
- break;
- case 4002://Give me Soul Shards
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,24827,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 4003: // Heal me please
- pPlayer->CLOSE_GOSSIP_MENU();
- pCreature->CastSpell(pPlayer,38588,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 4004: // Heal me and party members Please
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,53251,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 4005: // Conjure Refreshment
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,42956,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 4006: // Conjure Mana Gem
- pPlayer->CLOSE_GOSSIP_MENU();
- pPlayer->CastSpell(pPlayer,42985,false);
- pPlayer->ModifyMoney(-(sConfig->GetFloatDefault("BuffGoldCost",0)));
- break;
- case 5000://Remove Res Sickness
- if(!pPlayer->HasAura(SPELL_RESURRECTION_SICKNESS_15007,0))
- {
- pCreature->MonsterWhisper("You don't have resurrection sickness.", pPlayer->GetGUID());
- OnGossipHello(pPlayer, pCreature);
- return;
- }
- pCreature->CastSpell(pPlayer,38588,false); // Healing effect
- pPlayer->RemoveAurasDueToSpell(SPELL_RESURRECTION_SICKNESS_15007,0);
- pPlayer->CLOSE_GOSSIP_MENU();
- break;
- pPlayer->CLOSE_GOSSIP_MENU();
- } // end of switch
- } //end of function
- bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 uiSender, uint32 uiAction)
- {
- // Main menu
- pPlayer->PlayerTalkClass->ClearMenus();
- if (uiSender == GOSSIP_SENDER_MAIN)
- SendDefaultMenu(pPlayer, pCreature, uiAction);
- return true;
- }
- };
- void AddSC_Npc_Buff()
- {
- new npc_buff();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement