mirror of
https://github.com/ornfelt/azerothcore_lua_scripts
synced 2026-08-22 06:26:03 -04:00
111 lines
No EOL
3.7 KiB
C++
111 lines
No EOL
3.7 KiB
C++
#include "ScriptPCH.h"
|
|
#include "Chat.h"
|
|
|
|
class player_berserking : public CreatureScript
|
|
{
|
|
public:
|
|
|
|
player_berserking()
|
|
: CreatureScript("player_berserking")
|
|
{
|
|
}
|
|
|
|
bool OnGossipHello(Player* pPlayer, Creature* pCreature)
|
|
{
|
|
if(!pPlayer->HasAura(68378))
|
|
{
|
|
if(pPlayer->GetSession()->GetSecurity() >= 1)
|
|
{
|
|
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "VIP BERSERKING - 1 VP", GOSSIP_SENDER_MAIN, 1002);
|
|
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "VIP BERSERKING - 10 Event Coins", GOSSIP_SENDER_MAIN, 1004);
|
|
} else {
|
|
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "PLAYER BERSERKING - 2 VP", GOSSIP_SENDER_MAIN, 1000);
|
|
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "PLAYER BERSERKING - 20 Event Coins", GOSSIP_SENDER_MAIN, 1003);
|
|
}
|
|
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Exit.", GOSSIP_SENDER_MAIN, 1001);
|
|
pPlayer->PlayerTalkClass->SendGossipMenu(907, pCreature->GetGUID());
|
|
|
|
} else {
|
|
ChatHandler(pPlayer).PSendSysMessage("You are already berserking.");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction)
|
|
{
|
|
pPlayer->PlayerTalkClass->ClearMenus();
|
|
|
|
|
|
switch (uiAction)
|
|
{
|
|
case 1000:
|
|
if(pPlayer->HasItemCount(40753, 2))
|
|
{
|
|
pPlayer->AddAura(68378, pPlayer);
|
|
pPlayer->DestroyItemCount(40753, 2, true);
|
|
ChatHandler(pPlayer).PSendSysMessage("YOU ARE NOW BERSERKING UNTIL YOU LEAVE THIS INSTANCE!");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
} else {
|
|
ChatHandler(pPlayer).PSendSysMessage("To get berserked like this you need 2 Emblem of Voting.");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
}
|
|
break;
|
|
|
|
case 1002:
|
|
if(pPlayer->HasItemCount(40753, 1))
|
|
{
|
|
pPlayer->AddAura(68378, pPlayer);
|
|
pPlayer->DestroyItemCount(40753, 1, true);
|
|
ChatHandler(pPlayer).PSendSysMessage("YOU ARE NOW BERSERKING UNTIL YOU LEAVE THIS INSTANCE!");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
} else {
|
|
ChatHandler(pPlayer).PSendSysMessage("To get berserked like this you need 1 Emblem of Voting.");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
}
|
|
break;
|
|
|
|
case 1003:
|
|
if(pPlayer->HasItemCount(23247, 20))
|
|
{
|
|
pPlayer->AddAura(68378, pPlayer);
|
|
pPlayer->DestroyItemCount(23247, 20, true);
|
|
ChatHandler(pPlayer).PSendSysMessage("YOU ARE NOW BERSERKING UNTIL YOU LEAVE THIS INSTANCE!");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
} else {
|
|
ChatHandler(pPlayer).PSendSysMessage("To get berserked like this you need 20 Event Coins.");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
}
|
|
break;
|
|
|
|
case 1004:
|
|
if(pPlayer->HasItemCount(23247, 10))
|
|
{
|
|
pPlayer->AddAura(68378, pPlayer);
|
|
pPlayer->DestroyItemCount(23247, 10, true);
|
|
ChatHandler(pPlayer).PSendSysMessage("YOU ARE NOW BERSERKING UNTIL YOU LEAVE THIS INSTANCE!");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
} else {
|
|
ChatHandler(pPlayer).PSendSysMessage("To get berserked like this you need 10 Event Coins.");
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
}
|
|
break;
|
|
|
|
case 1001:
|
|
pCreature->MonsterSay("Come again anytime you wish to get ZERKED!", LANG_UNIVERSAL, NULL);
|
|
pPlayer->PlayerTalkClass->SendCloseGossip();
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
return true;
|
|
}
|
|
|
|
};
|
|
|
|
void AddSC_player_beserking()
|
|
{
|
|
new player_berserking();
|
|
} |