bool OnGossipSelect(Player * pPlayer, Creature * pCreature, uint32 sender, uint32 uiAction) { pPlayer->PlayerTalkClass->ClearMenus(); if (sender != GOSSIP_SENDER_MAIN) return false; uint32 dp = SelectDPoints(pPlayer); uint32 vp = SelectVPoints(pPlayer); switch(uiAction) { case 1: // Vip account - locked pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Back to Main Menu", GOSSIP_SENDER_MAIN, 1000); pPlayer->SEND_GOSSIP_MENU(60032, pCreature->GetGUID()); break; case 2: // Vip account - unlocked if (pPlayer->GetSession()->GetSecurity() >= 1) { pPlayer->GetSession()->SendAreaTriggerMessage("You're already VIP or GM."); pPlayer->CLOSE_GOSSIP_MENU(); } else { LoginDatabase.PExecute("UPDATE fusioncms_new.account_data SET dp = '%u' -30 WHERE id = '%u'", dp, pPlayer->GetSession()->GetAccountId()); LoginDatabase.PExecute("INSERT INTO `account_access` (`id`, `gmlevel`, `RealmID`) VALUES (%u, 1, -1);", pPlayer->GetSession()->GetAccountId()); pPlayer->GetSession()->SendAreaTriggerMessage("Successfully upgraded your account to VIP. Quit the game and login again for changes to take effect! Thanks for the support!"); pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); } break; case 3: // VIP only character - locked pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Back to Main Menu", GOSSIP_SENDER_MAIN, 1000); pPlayer->SEND_GOSSIP_MENU(60033, pCreature->GetGUID()); break; case 4: // VIP only character - unlocked if (pPlayer->GetSession()->GetSecurity() >= 1 || pPlayer->HasItemCount(ONE_CHARACTER_VIP, 1)) { pPlayer->GetSession()->SendAreaTriggerMessage("You're already VIP or GM."); pPlayer->CLOSE_GOSSIP_MENU(); } else { LoginDatabase.PExecute("UPDATE fusioncms_new.account_data SET dp = '%u' -7 WHERE id = '%u'", dp, pPlayer->GetSession()->GetAccountId()); pPlayer->GetSession()->SendAreaTriggerMessage("Successfully upgraded this character to VIP! Thanks for the support!"); pPlayer->AddItem(ONE_CHARACTER_VIP, 1); pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); } break; case 5: // Wrathful Offpiece / 1H Weapon / Mount - unlocked LoginDatabase.PExecute("UPDATE fusioncms_new.account_data SET dp = '%u' -1 WHERE id = '%u'", dp, pPlayer->GetSession()->GetAccountId()); pPlayer->AddItem(44990, 25); // 25 Emblems of Relentless (Champion's Seal) pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); break; case 6: // Wrathful Main Piece / 2H Weapon - unlocked LoginDatabase.PExecute("UPDATE fusioncms_new.account_data SET dp = '%u' -2 WHERE id = '%u'", dp, pPlayer->GetSession()->GetAccountId()); pPlayer->AddItem(44990, 50); // 50 Emblems of Relentless (Champion's Seal) pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); break; case 7: // Purchase Legendary Weapon - for Fun realm LoginDatabase.PExecute("UPDATE fusioncms_new.account_data SET dp = '%u' -5 WHERE id = '%u'", dp, pPlayer->GetSession()->GetAccountId()); pPlayer->GetSession()->SendAreaTriggerMessage("Successfully purchased 15 Emblems of Legendary! Speak with Legendary Weapons NPC!"); pPlayer->AddItem(40753, 15); // Emblem of Valor (Emblem of Legendary) pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); break; case 8: // Donation titles if (dp >= 1) { pPlayer->ADD_GOSSIP_ITEM(4, "Conqueror (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 9); pPlayer->ADD_GOSSIP_ITEM(4, "Justicar (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 10); pPlayer->ADD_GOSSIP_ITEM(4, "Battlemaster (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 11); pPlayer->ADD_GOSSIP_ITEM(4, "Scarab Lord (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 12); pPlayer->ADD_GOSSIP_ITEM(4, "Brewmaster (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 13); pPlayer->ADD_GOSSIP_ITEM(4, "The Love Fool (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 14); pPlayer->ADD_GOSSIP_ITEM(4, "Matron (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 15); pPlayer->ADD_GOSSIP_ITEM(4, "Patron (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 16); pPlayer->ADD_GOSSIP_ITEM(4, "The Hallowed (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 17); pPlayer->ADD_GOSSIP_ITEM(4, "Merrymaker (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 18); pPlayer->ADD_GOSSIP_ITEM(4, "The Noble (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 19); pPlayer->ADD_GOSSIP_ITEM(4, "The Pilgrim (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 20); pPlayer->ADD_GOSSIP_ITEM(4, "Flame Keeper (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 21); pPlayer->ADD_GOSSIP_ITEM(4, "Flame Warden (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 22); pPlayer->ADD_GOSSIP_ITEM(4, "Elder (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 23); pPlayer->ADD_GOSSIP_ITEM(4, "Jenkins (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 24); pPlayer->ADD_GOSSIP_ITEM(4, "Back to Main Page", GOSSIP_SENDER_MAIN, 1000); pPlayer->SEND_GOSSIP_MENU(60013, pCreature->GetGUID()); } else if (dp < 1) { pPlayer->ADD_GOSSIP_ITEM(4, "Conqueror (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Justicar (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Battlemaster (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Scarab Lord (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Brewmaster (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "The Love Fool (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Matron (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Patron (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "The Hallowed (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Merrymaker (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "The Noble (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "The Pilgrim (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Flame Keeper (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Flame Warden (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Elder (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Jenkins (|cffD80000Locked|r)", GOSSIP_SENDER_MAIN, 998); pPlayer->ADD_GOSSIP_ITEM(4, "Back to Main Page", GOSSIP_SENDER_MAIN, 1000); pPlayer->SEND_GOSSIP_MENU(60013, pCreature->GetGUID()); } break; case 9: // Conqueror RewardTitle(pPlayer, 47); pPlayer->CLOSE_GOSSIP_MENU(); break; case 10: // Justicar RewardTitle(pPlayer, 48); pPlayer->CLOSE_GOSSIP_MENU(); break; case 11: // Battlemaster RewardTitle(pPlayer, 72); pPlayer->CLOSE_GOSSIP_MENU(); break; case 12: // Scarab Lord RewardTitle(pPlayer, 46); pPlayer->CLOSE_GOSSIP_MENU(); break; case 13: // Brewmaster RewardTitle(pPlayer, 133); pPlayer->CLOSE_GOSSIP_MENU(); break; case 14: // the Love Fool RewardTitle(pPlayer, 135); pPlayer->CLOSE_GOSSIP_MENU(); break; case 15: // Matron RewardTitle(pPlayer, 137); pPlayer->CLOSE_GOSSIP_MENU(); break; case 16: // Patron RewardTitle(pPlayer, 138); pPlayer->CLOSE_GOSSIP_MENU(); break; case 17: // The Hallowed RewardTitle(pPlayer, 124); pPlayer->CLOSE_GOSSIP_MENU(); break; case 18: // Merrymaker RewardTitle(pPlayer, 134); pPlayer->CLOSE_GOSSIP_MENU(); break; case 19: // The Noble RewardTitle(pPlayer, 155); pPlayer->CLOSE_GOSSIP_MENU(); break; case 20: // The Pilgrim RewardTitle(pPlayer, 168); pPlayer->CLOSE_GOSSIP_MENU(); break; case 21: // Flame Keeper RewardTitle(pPlayer, 76); pPlayer->CLOSE_GOSSIP_MENU(); break; case 22: // Flame Warden RewardTitle(pPlayer, 75); pPlayer->CLOSE_GOSSIP_MENU(); break; case 23: // Elder RewardTitle(pPlayer, 74); pPlayer->CLOSE_GOSSIP_MENU(); break; case 24: // Jenkins RewardTitle(pPlayer, 143); pPlayer->CLOSE_GOSSIP_MENU(); break; case 998: // Not enought points pPlayer->GetSession()->SendAreaTriggerMessage("Not enought donation points."); OnGossipHello(pPlayer, pCreature); break; case 999: // Show donate points pPlayer->GetSession()->SendAreaTriggerMessage("Donation points: %u", dp); pPlayer->GetSession()->SendAreaTriggerMessage("Voting points: %u", vp); OnGossipHello(pPlayer, pCreature); break; case 1000: // Back to main menu OnGossipHello(pPlayer, pCreature); break; } return true; }
bool OnGossipSelect(Player * pPlayer, Creature * pCreature, uint32 sender, uint32 uiAction) { pPlayer->PlayerTalkClass->ClearMenus(); if (sender != GOSSIP_SENDER_MAIN) return false; uint32 dp = SelectDPoints(pPlayer); uint32 vp = SelectVPoints(pPlayer); switch (uiAction) { case 1: // Vip account - locked pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Back to Main Menu", GOSSIP_SENDER_MAIN, 1000); pPlayer->SEND_GOSSIP_MENU(60032, pCreature->GetGUID()); break; case 2: // Vip account - unlocked if (pPlayer->GetSession()->GetSecurity() >= 1 || pPlayer->HasItemCount(ONE_CHARACTER_VIP, 1)) { pPlayer->GetSession()->SendAreaTriggerMessage("You're already VIP or GM."); pPlayer->CLOSE_GOSSIP_MENU(); } else { LoginDatabase.PExecute("UPDATE %s.account_data SET dp = '%u' -%u WHERE id = '%u'", website.c_str(), dp, accVipPrice, pPlayer->GetSession()->GetAccountId()); LoginDatabase.PExecute("INSERT INTO `account_access` (`id`, `gmlevel`, `RealmID`) VALUES (%u, 1, -1);", pPlayer->GetSession()->GetAccountId()); pPlayer->GetSession()->SendAreaTriggerMessage("Successfully upgraded your account to VIP. Close the game and login again for changes to take effect! Thanks for the support!"); pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); } break; case 3: // VIP only character - locked pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Back to Main Menu", GOSSIP_SENDER_MAIN, 1000); pPlayer->SEND_GOSSIP_MENU(60033, pCreature->GetGUID()); break; case 4: // VIP only character - unlocked if (pPlayer->GetSession()->GetSecurity() >= 1 || pPlayer->HasItemCount(ONE_CHARACTER_VIP, 1)) { pPlayer->GetSession()->SendAreaTriggerMessage("You're already VIP or GM."); pPlayer->CLOSE_GOSSIP_MENU(); } else { LoginDatabase.PExecute("UPDATE %s.account_data SET dp = '%u' -%u WHERE id = '%u'", website.c_str(), dp, charVipPrice, pPlayer->GetSession()->GetAccountId()); pPlayer->GetSession()->SendAreaTriggerMessage("Successfully upgraded this character to VIP! Thanks for the support!"); pPlayer->AddItem(ONE_CHARACTER_VIP, 1); pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); } break; case 5: // Honor Points - 2000 LoginDatabase.PExecute("UPDATE %s.account_data SET vp = '%u' -%u WHERE id = '%u'", website.c_str(), vp, honorPtsPrice, pPlayer->GetSession()->GetAccountId()); pPlayer->GetSession()->SendAreaTriggerMessage("Successfully earned 2000 Honor Points. Thanks for the support!"); pPlayer->ModifyHonorPoints(2000); pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); break; case 6: // Arena Points - 1000 LoginDatabase.PExecute("UPDATE %s.account_data SET vp = '%u' -%u WHERE id = '%u'", website.c_str(), vp, arenaPtsPrice, pPlayer->GetSession()->GetAccountId()); pPlayer->GetSession()->SendAreaTriggerMessage("Successfully earned 1000 Arena Points. Thanks for the support!"); pPlayer->ModifyArenaPoints(1000); pPlayer->SaveToDB(); pPlayer->CLOSE_GOSSIP_MENU(); break; case 7: // Donation titles if (dp >= titlePrice) { pPlayer->ADD_GOSSIP_ITEM(4, "Conqueror (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 8); pPlayer->ADD_GOSSIP_ITEM(4, "Justicar (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 9); pPlayer->ADD_GOSSIP_ITEM(4, "Battlemaster (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 10); pPlayer->ADD_GOSSIP_ITEM(4, "Scarab Lord (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 11); pPlayer->ADD_GOSSIP_ITEM(4, "Brewmaster (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 12); pPlayer->ADD_GOSSIP_ITEM(4, "The Love Fool (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 13); pPlayer->ADD_GOSSIP_ITEM(4, "Matron (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 14); pPlayer->ADD_GOSSIP_ITEM(4, "Patron (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 15); pPlayer->ADD_GOSSIP_ITEM(4, "The Hallowed (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 16); pPlayer->ADD_GOSSIP_ITEM(4, "Merrymaker (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 17); pPlayer->ADD_GOSSIP_ITEM(4, "The Noble (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 18); pPlayer->ADD_GOSSIP_ITEM(4, "The Pilgrim (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 19); pPlayer->ADD_GOSSIP_ITEM(4, "Flame Keeper (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 20); pPlayer->ADD_GOSSIP_ITEM(4, "Flame Warden (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 21); pPlayer->ADD_GOSSIP_ITEM(4, "Elder (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 22); pPlayer->ADD_GOSSIP_ITEM(4, "Jenkins (|cff009900Unlocked|r)", GOSSIP_SENDER_MAIN, 23); pPlayer->ADD_GOSSIP_ITEM(4, "Back to Main Page", GOSSIP_SENDER_MAIN, 1000); pPlayer->SEND_GOSSIP_MENU(60013, pCreature->GetGUID()); } else if (dp < titlePrice) { pPlayer->ADD_GOSSIP_ITEM(4, "Conqueror (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Justicar (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Battlemaster (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Scarab Lord (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Brewmaster (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "The Love Fool (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Matron (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Patron (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "The Hallowed (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Merrymaker (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "The Noble (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "The Pilgrim (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Flame Keeper (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Flame Warden (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Elder (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Jenkins (|cff980000Locked|r)", GOSSIP_SENDER_MAIN, 999); pPlayer->ADD_GOSSIP_ITEM(4, "Back to Main Page", GOSSIP_SENDER_MAIN, 1000); pPlayer->SEND_GOSSIP_MENU(60013, pCreature->GetGUID()); } break; case 8: // Conqueror RewardTitle(pPlayer, 47); pPlayer->CLOSE_GOSSIP_MENU(); break; case 9: // Justicar RewardTitle(pPlayer, 48); pPlayer->CLOSE_GOSSIP_MENU(); break; case 10: // Battlemaster RewardTitle(pPlayer, 72); pPlayer->CLOSE_GOSSIP_MENU(); break; case 11: // Scarab Lord RewardTitle(pPlayer, 46); pPlayer->CLOSE_GOSSIP_MENU(); break; case 12: // Brewmaster RewardTitle(pPlayer, 133); pPlayer->CLOSE_GOSSIP_MENU(); break; case 13: // the Love Fool RewardTitle(pPlayer, 135); pPlayer->CLOSE_GOSSIP_MENU(); break; case 14: // Matron RewardTitle(pPlayer, 137); pPlayer->CLOSE_GOSSIP_MENU(); break; case 15: // Patron RewardTitle(pPlayer, 138); pPlayer->CLOSE_GOSSIP_MENU(); break; case 16: // The Hallowed RewardTitle(pPlayer, 124); pPlayer->CLOSE_GOSSIP_MENU(); break; case 17: // Merrymaker RewardTitle(pPlayer, 134); pPlayer->CLOSE_GOSSIP_MENU(); break; case 18: // The Noble RewardTitle(pPlayer, 155); pPlayer->CLOSE_GOSSIP_MENU(); break; case 19: // The Pilgrim RewardTitle(pPlayer, 168); pPlayer->CLOSE_GOSSIP_MENU(); break; case 20: // Flame Keeper RewardTitle(pPlayer, 76); pPlayer->CLOSE_GOSSIP_MENU(); break; case 21: // Flame Warden RewardTitle(pPlayer, 75); pPlayer->CLOSE_GOSSIP_MENU(); break; case 22: // Elder RewardTitle(pPlayer, 74); pPlayer->CLOSE_GOSSIP_MENU(); break; case 23: // Jenkins RewardTitle(pPlayer, 143); pPlayer->CLOSE_GOSSIP_MENU(); break; case 999: // Not enought points pPlayer->GetSession()->SendAreaTriggerMessage("Not enought points."); OnGossipHello(pPlayer, pCreature); break; case 1000: // Back to main menu OnGossipHello(pPlayer, pCreature); break; } return true; }