enum eRanks
{
PRIVATE = 1,
CORPORAL = 2,
SERGEANT = 3,
MASTER_SERGEANT = 4,
SERGEANT_MAJOR = 5,
KNIGHT = 6,
KNIGHT_LIEUTENANT = 7,
KNIGHT_CAPTAIN = 8,
KNIGHT_CHAMPION = 9,
LIEUTENANT_COMMANDER = 10,
COMMANDER = 11,
MARSHAL = 12,
FIELD_MARSHAL = 13,
GRAND_MARSHAL = 14,
SCOUT = 15,
GRUNT = 16,
SERGEANT_H = 17,
SENIOR_SERGEANT = 18,
FIRST_SERGEANT = 19,
STONE_GUARD = 20,
BLOOD_GUARD = 21,
LEGIONNAIRE = 22,
CENTURION = 23,
CHAMPION = 24,
LIEUTENANT_GENERAL = 25,
GENERAL = 26,
WARLORD = 27,
HIGH_WARLORD = 28,
};
enum eKills
{
KILLS_1 = 1,
KILLS_2 = 50,
KILLS_3 = 100,
KILLS_4 = 250,
KILLS_5 = 500,
KILLS_6 = 750,
KILLS_7 = 1000,
KILLS_8 = 1500,
KILLS_9 = 3000,
KILLS_10 = 5000,
KILLS_11 = 7500,
KILLS_12 = 10000,
KILLS_13 = 15000,
KILLS_14 = 30000,
};
class npc_honor_gossip : public CreatureScript
{
public:
npc_honor_gossip() : CreatureScript("npc_honor_gossip") { }
bool OnGossipHello(Player* player, Creature* creature)
{
if (player->GetTeam() == HORDE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "|TInterface/icons/Achievement_Arena_2v2_2:30|tPVP Titles", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
else
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, "|TInterface/icons/Achievement_Arena_2v2_2:30|tPVP Titles", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
player->ADD_GOSSIP_ITEM(7, "|TInterface\\icons\\Ability_Spy:30|tExit|r", GOSSIP_SENDER_MAIN, 102);
player->SEND_GOSSIP_MENU(1, creature->GetGUID());
return true;
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 actions)
{
player->PlayerTalkClass->ClearMenus();
switch(actions)
{
case GOSSIP_ACTION_INFO_DEF+1:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "SCOUT.(1 Kill)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 10);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "GRUNT.(50 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 11);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "SERGEANT_H.(100 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 12);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "SENIOR_SERGEANT.(250 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 13);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "FIRST_SERGEANT.(500 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 14);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "STONE_GUARD.(750 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 15);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "BLOOD_GUARD.(1000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 16);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "LEGIONNAIRE.(1500 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 17);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "CENTURION.(3000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 18);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "CHAMPION.(5000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 19);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "LIEUTENANT_GENERAL.(7500 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 20);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "GENERAL.(10000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 21);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "WARLORD.(15000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 22);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "HIGH_WARLORD.(30000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 23);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Nevermind", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+99);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+2:
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "PRIVATE.(1 Kill)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 30);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "CORPORAL.(50 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 31);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "SERGEANT.(100 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 32);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "MASTER_SERGEANT.(250 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 33);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "SERGEANT_MAJOR.(500 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 34);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "KNIGHT.(750 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 35);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "KNIGHT_LIEUTENANT.(1000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 36);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "KNIGHT_CAPTAIN.(1500 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 37);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "KNIGHT_CHAMPION.(3000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 38);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "LIEUTENANT_COMMANDER.(5000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 39);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "COMMANDER.(7500 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 40);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "MARSHAL.(10000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 41);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "FIELD_MARSHAL.(15000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 42);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "GRAND_MARSHAL.(30000 Kills)", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 43);
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "Nevermind", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+99);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, _creature->GetGUID());
break;
case GOSSIP_ACTION_INFO_DEF+10:
AddTitle(player, 1, SCOUT);
break;
case GOSSIP_ACTION_INFO_DEF+11:
AddTitle(player, 50, GRUNT);
break;
case GOSSIP_ACTION_INFO_DEF+12:
AddTitle(player, 100, SERGEANT_H);
break;
case GOSSIP_ACTION_INFO_DEF+13:
AddTitle(player, 250, SENIOR_SERGEANT);
break;
case GOSSIP_ACTION_INFO_DEF+14:
AddTitle(player, 500, FIRST_SERGEANT);
break;
case GOSSIP_ACTION_INFO_DEF+15:
AddTitle(player, 750, STONE_GUARD);
break;
case GOSSIP_ACTION_INFO_DEF+16:
AddTitle(player, 1000, BLOOD_GUARD);
break;
case GOSSIP_ACTION_INFO_DEF+17:
AddTitle(player, 1500, LEGIONNAIRE);
break;
case GOSSIP_ACTION_INFO_DEF+18:
AddTitle(player, 3000, CENTURION);
break;
case GOSSIP_ACTION_INFO_DEF+19:
AddTitle(player, 5000, CHAMPION);
break;
case GOSSIP_ACTION_INFO_DEF+20:
AddTitle(player, 7500, LIEUTENANT_GENERAL);
break;
case GOSSIP_ACTION_INFO_DEF+21:
AddTitle(player, 10000, GENERAL);
break;
case GOSSIP_ACTION_INFO_DEF+22:
AddTitle(player, 15000, WARLORD);
break;
case GOSSIP_ACTION_INFO_DEF+23:
AddTitle(player, 30000, HIGH_WARLORD);
break;
case GOSSIP_ACTION_INFO_DEF+30:
AddTitle(player, 1, PRIVATE);
break;
case GOSSIP_ACTION_INFO_DEF+31:
AddTitle(player, 50, CORPORAL);
break;
case GOSSIP_ACTION_INFO_DEF+32:
AddTitle(player, 100, SERGEANT);
break;
case GOSSIP_ACTION_INFO_DEF+33:
AddTitle(player, 250, MASTER_SERGEANT);
break;
case GOSSIP_ACTION_INFO_DEF+34:
AddTitle(player, 500, SERGEANT_MAJOR);
break;
case GOSSIP_ACTION_INFO_DEF+35:
AddTitle(player, 750, KNIGHT);
break;
case GOSSIP_ACTION_INFO_DEF+36:
AddTitle(player, 1000, KNIGHT_LIEUTENANT);
break;
case GOSSIP_ACTION_INFO_DEF+37:
AddTitle(player, 1500, KNIGHT_CAPTAIN);
break;
case GOSSIP_ACTION_INFO_DEF+38:
AddTitle(player, 3000, KNIGHT_CHAMPION);
break;
case GOSSIP_ACTION_INFO_DEF+39:
AddTitle(player, 5000, LIEUTENANT_COMMANDER);
break;
case GOSSIP_ACTION_INFO_DEF+40:
AddTitle(player, 7500, COMMANDER);
break;
case GOSSIP_ACTION_INFO_DEF+41:
AddTitle(player, 10000, MARSHAL);
break;
case GOSSIP_ACTION_INFO_DEF+42:
AddTitle(player, 15000, FIELD_MARSHAL);
break;
case GOSSIP_ACTION_INFO_DEF+43:
AddTitle(player, 30000, GRAND_MARSHAL);
break;
case GOSSIP_ACTION_INFO_DEF+99:
player->CLOSE_GOSSIP_MENU();
break;
}
return true;
}
void AddTitle(Player* player, uint32 kills, uint32 title)
{
if(player->GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORABLE_KILLS) >= kills)
player->SetTitle(sCharTitlesStore.LookupEntry(title));
else
player->GetSession()->SendNotification("You don't have enough Life Time Kills!!");
}
};
void AddSC_honor_gossip()
{
new npc_honor_gossip;
}