mirror of
https://github.com/ornfelt/azerothcore_lua_scripts
synced 2026-08-22 06:26:03 -04:00
110 lines
No EOL
3.8 KiB
C++
110 lines
No EOL
3.8 KiB
C++
#include "ScriptPCH.h"
|
|
|
|
class Exchanger_NPC : public CreatureScript
|
|
{
|
|
public:
|
|
Exchanger_NPC() : CreatureScript("Exchanger_NPC") { }
|
|
|
|
bool OnGossipHello(Player *player, Creature *_creature)
|
|
{
|
|
if (player->isInCombat())
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
_creature->MonsterWhisper("You are in combat!", player->GetGUID());
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
player->ADD_GOSSIP_ITEM( 7, "100 BoJ --> 10000 Honor Pts." , GOSSIP_SENDER_MAIN, 1);
|
|
player->ADD_GOSSIP_ITEM( 5, "100 BoJ --> 100 Arena Pts." , GOSSIP_SENDER_MAIN, 2);
|
|
player->ADD_GOSSIP_ITEM( 8, "100 Arena Pts. --> 10000 Honor Pts." , GOSSIP_SENDER_MAIN, 3);
|
|
player->ADD_GOSSIP_ITEM( 8, "60000 Honor Pts. -> 1 S8 BG Token." , GOSSIP_SENDER_MAIN, 4);
|
|
}
|
|
|
|
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
|
|
return true;
|
|
}
|
|
|
|
bool OnGossipSelect(Player *player, Creature *_creature, uint32 sender, uint32 uiAction)
|
|
{
|
|
if (sender == GOSSIP_SENDER_MAIN)
|
|
{
|
|
player->PlayerTalkClass->ClearMenus();
|
|
switch(uiAction)
|
|
{
|
|
|
|
|
|
|
|
case 1:
|
|
if (player->HasItemCount( 29434, 100, false ))
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
player->DestroyItemCount(29434, 100, true, false);
|
|
player->ModifyHonorPoints(+10000);
|
|
_creature->MonsterWhisper("You exchanged succesfully!", player->GetGUID());
|
|
}
|
|
else
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
_creature->MonsterWhisper("Don't even try it!", player->GetGUID());
|
|
return false;
|
|
}
|
|
break;
|
|
|
|
case 2:
|
|
if (player->HasItemCount( 29434, 100, false ))
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
player->DestroyItemCount(29434, 100, true, false);
|
|
player->ModifyArenaPoints(+100);
|
|
_creature->MonsterWhisper("You exchanged succesfully!", player->GetGUID());
|
|
}
|
|
else
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
_creature->MonsterWhisper("Don't even try it!", player->GetGUID());
|
|
return false;
|
|
}
|
|
break;
|
|
|
|
case 3:
|
|
if (player->GetArenaPoints () >= 100)
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
player->ModifyArenaPoints(-100);
|
|
player->ModifyHonorPoints(+10000);
|
|
_creature->MonsterWhisper("You exchanged succesfully!", player->GetGUID());
|
|
}
|
|
else
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
_creature->MonsterWhisper("Don't even try it!", player->GetGUID());
|
|
return false;
|
|
}
|
|
break;
|
|
case 4:
|
|
if (player->GetHonorPoints () >= 60000)
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
player->AddItem(37829,1);
|
|
player->ModifyHonorPoints(-60000);
|
|
_creature->MonsterWhisper("You exchanged succesfully!", player->GetGUID());
|
|
}
|
|
else
|
|
{
|
|
player->CLOSE_GOSSIP_MENU();
|
|
_creature->MonsterWhisper("Don't even try it!", player->GetGUID());
|
|
return false;
|
|
}
|
|
break;
|
|
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
};
|
|
|
|
void AddSC_Exchanger_NPC()
|
|
{
|
|
new Exchanger_NPC();
|
|
} |