bool OnGossipHello(Player * pPlayer, Creature * pCreature)
	{
		// TODO: Prevent exploiting the FusionCMS donate points
		if (pPlayer->GetSession()->GetSecurity() < 5 && SelectDPoints(pPlayer) > 50)
		{
			pPlayer->GetSession()->SendAreaTriggerMessage("You have large amount of Donation points: %u. This is probably a website related problem, please immediately contact the administrator via ticket about this issue.", SelectDPoints(pPlayer));
			pPlayer->CLOSE_GOSSIP_MENU();
			return false;
		}

		// VIP Account
		if (SelectDPoints(pPlayer) < 30)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Purchase VIP Account (|cffD80000Locked|r / Click for Information)", GOSSIP_SENDER_MAIN, 1);
		else if (SelectDPoints(pPlayer) >= 30)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Purchase VIP Account (|cff009900Unlocked|r / Click to use)", GOSSIP_SENDER_MAIN, 2);

		// VIP only for current char
		if (SelectDPoints(pPlayer) < 7)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "VIP only for current character (|cffD80000Locked|r / Click for Information)", GOSSIP_SENDER_MAIN, 3);
		else if (SelectDPoints(pPlayer) >= 7)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "VIP only for current character (|cff009900Unlocked|r / Click to use)", GOSSIP_SENDER_MAIN, 4);


		// WF weapons 1H
		if (SelectDPoints(pPlayer) < 1)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Wrathful Offpiece/1H Weapon/Exotic Mount (|cffD80000Locked|r / Min 1 Donation Point needed)", GOSSIP_SENDER_MAIN, 998);
		else if (SelectDPoints(pPlayer) >= 1)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Wrathful Offpiece/1H Weapon/Exotic Mount (|cff009900Unlocked|r / Click to use)", GOSSIP_SENDER_MAIN, 5);

		// WF weapon 2H
		if (SelectDPoints(pPlayer) < 2)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Wrathful Main Piece/2H Weapon (|cffD80000Locked|r / Min 2 Donation Points needed)", GOSSIP_SENDER_MAIN, 998);
		else if (SelectDPoints(pPlayer) >= 2)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Wrathful Main Piece/2H Weapon (|cff009900Unlocked|r / Click to use)", GOSSIP_SENDER_MAIN, 6);

		// Custom Legendary Weapon
		if (SelectDPoints(pPlayer) < 5)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Custom Legendary Weapon (|cffD80000Locked|r / Min 5 Donation Points)", GOSSIP_SENDER_MAIN, 998);
		else if (SelectDPoints(pPlayer) >= 5)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Custom Legendary Weapon (|cff009900Unlocked|r / Click to use)", GOSSIP_SENDER_MAIN, 7);


		// Titles
		if (SelectDPoints(pPlayer) < 1)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Purchase Character Title (|cffD80000Locked|r / Min 1 Donation Point needed)", GOSSIP_SENDER_MAIN, 8);
		else if (SelectDPoints(pPlayer) >= 1)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Purchase Character Title (|cff009900Unlocked|r / Click to use)", GOSSIP_SENDER_MAIN, 8);

		// Show Donate and Voting Points when GossipHello
		std::stringstream points;
		points << "My Donation Points: " << SelectDPoints(pPlayer) << "\n";
		points << "My Voting Points: " << SelectVPoints(pPlayer) << "\n";

		pPlayer->ADD_GOSSIP_ITEM(4, points.str().c_str(), GOSSIP_SENDER_MAIN, 999);
		pPlayer->SEND_GOSSIP_MENU(60031, pCreature->GetGUID());
		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->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;
	}
示例#3
0
	bool OnGossipHello(Player * pPlayer, Creature * pCreature)
	{
		std::stringstream purchaseHonor;
		std::stringstream purchaseArena;
		std::stringstream points;
		std::stringstream purchaseTitle;

		// TODO: Prevent exploiting the FusionCMS donate points
		if (pPlayer->GetSession()->GetSecurity() < 5 && SelectDPoints(pPlayer) > 50)
		{
			pPlayer->GetSession()->SendAreaTriggerMessage("You have large amount of Donation points: %u. This is probably a website related problem, please "
				"immediately contact the administrator via ticket about this issue.", SelectDPoints(pPlayer));
			pPlayer->CLOSE_GOSSIP_MENU();
			return false;
		}

		// Purchase VIP Account
		if (SelectDPoints(pPlayer) < accVipPrice)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Purchase VIP Account (|cff980000Locked|r / Click for Information)", GOSSIP_SENDER_MAIN, 1);
		else if (SelectDPoints(pPlayer) >= 30)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "Purchase VIP Account (|cff009900Unlocked|r / Click to use)", GOSSIP_SENDER_MAIN, 2);

		// Purchase VIP only for current char
		if (SelectDPoints(pPlayer) < charVipPrice)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "VIP only for current character (|cff980000Locked|r / Click for Information)", GOSSIP_SENDER_MAIN, 3);
		else if (SelectDPoints(pPlayer) >= 7)
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, "VIP only for current character (|cff009900Unlocked|r / Click to use)", GOSSIP_SENDER_MAIN, 4);

		// Allow players to get honor points by using their voting points
		if (SelectVPoints(pPlayer) < honorPtsPrice)
		{
			purchaseHonor << "Purchase 2k Honor Points (|cff980000Locked|r / Min " << honorPtsPrice << " VP needed)";
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, purchaseHonor.str().c_str(), GOSSIP_SENDER_MAIN, 999);
		}
		else if (SelectVPoints(pPlayer) >= honorPtsPrice)
		{
			purchaseHonor << "Purchase 2k Honor Points (|cff009900Unlocked|r / Click to use)";
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, purchaseHonor.str().c_str(), GOSSIP_SENDER_MAIN, 5);
		}

		// Allow player to get arena points by using their voting points
		if (SelectVPoints(pPlayer) < arenaPtsPrice)
		{
			purchaseArena << "Purchase 1k Arena Points (|cff980000Locked|r / Min " << arenaPtsPrice << " VP needed)";
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, purchaseArena.str().c_str(), GOSSIP_SENDER_MAIN, 999);
		}
		else if (SelectVPoints(pPlayer) >= arenaPtsPrice)
		{
			purchaseArena << "Purchase 1k Arena Points (|cff009900Unlocked|r / Click to use)";
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, purchaseArena.str().c_str(), GOSSIP_SENDER_MAIN, 6);
		}


		// Allow player to get arena points by using their voting points
		if (SelectDPoints(pPlayer) < titlePrice)
		{
			purchaseTitle << "Purchase Character Title (|cff980000Locked|r / Min " << titlePrice << " DP needed)";
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, purchaseTitle.str().c_str(), GOSSIP_SENDER_MAIN, 7);
		}
		else if (SelectDPoints(pPlayer) >= titlePrice)
		{
			purchaseTitle << "Purchase Character Title (|cff009900Unlocked|r / Click to use)";
			pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1, purchaseTitle.str().c_str(), GOSSIP_SENDER_MAIN, 7);
		}

		// Show Donate and Voting Points when GossipHello
		points << "My Donation Points amount: " << SelectDPoints(pPlayer);
		points << "\n" << "My Voting Points amount: " << SelectVPoints(pPlayer);

		pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, points.str().c_str(), GOSSIP_SENDER_MAIN, 100); // No action here, just to show points
		pPlayer->SEND_GOSSIP_MENU(60031, pCreature->GetGUID());
		return true;
	}
示例#4
0
	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;
	}