#include "ScriptPCH.h" #include #include "ObjectMgr.h" class donorrewarder : public CreatureScript { public: donorrewarder() : CreatureScript("donorrewarder") { } void RewardItem(Player* player, Creature* pCreature, int item , int count, int cost) { char str[200]; if (!player->HasItemCount(37711, cost, true)) { sprintf(str,"You don't have enough points for this item, you must donate on www.unforgivenwow.com!"); player->MonsterWhisper(str,player->GetGUID(),true); } else { if (player->AddItem(item, count)) { std::string DateTime = "%Y-%m-%d %H:%M:%S"; ItemTemplate const* itemTemplate = sObjectMgr->GetItemTemplate(item); player->DestroyItemCount(37711, cost, true); LoginDatabase.PQuery("INSERT INTO realmd.donation_purchases (account_id, character_name, character_guid, donation_item_id, donation_item_name, donation_item_amount, date) VALUES ('%u', '%s', '%u', '%u', '%s', '%u', DATE_FORMAT(date, '%s'))", player->GetSession()->GetAccountId(), player->GetName(), player->GetGUIDLow(), item, itemTemplate->Name1.c_str(), count, DateTime.c_str()); sprintf(str,"Your points are taken and your item is given!!!"); player->MonsterWhisper(str,player->GetGUID(),true); player->SaveToDB(); } else { sprintf(str,"Item can't be given maybe your bag is full or you already got the item!"); player->MonsterWhisper(str,player->GetGUID(),true); } } player->PlayerTalkClass->ClearMenus(); OnGossipHello(player, pCreature); } bool HasCheatCooldown(Player* player) { QueryResult result = CharacterDatabase.PQuery("SELECT * FROM character_cooldown WHERE guid = '%u' AND cooldown=1", player->GetGUIDLow()); if(result) return true; return false; } bool HasCheatCasttime(Player* player) { QueryResult result = CharacterDatabase.PQuery("SELECT * FROM character_casttime WHERE guid = '%u' AND casttime=1", player->GetGUIDLow()); if(result) return true; return false; } bool HasCheatPower(Player* player) { QueryResult result = CharacterDatabase.PQuery("SELECT * FROM character_cheatpower WHERE guid = '%u' AND cheatpower=1", player->GetGUIDLow()); if(result) return true; return false; } bool OnGossipHello(Player* player, Creature* pCreature) { player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Get a preview of the donor items", GOSSIP_SENDER_MAIN, 9998); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "NEW: Cheats", GOSSIP_SENDER_MAIN, 5400); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donor Weapons", GOSSIP_SENDER_MAIN, 2000); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Rings/Trinkets/Amulets", GOSSIP_SENDER_MAIN, 3000); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Armors", GOSSIP_SENDER_MAIN, 300); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "FROSTMOURNE - 50 DP", GOSSIP_SENDER_MAIN, 9997); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Special Items", GOSSIP_SENDER_MAIN, 5000); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Special Tokens", GOSSIP_SENDER_MAIN, 4000); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donor Shirts - 15 DP", GOSSIP_SENDER_MAIN, 10000); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donor Talisman - 30 DP", GOSSIP_SENDER_MAIN, 11000); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donor Set - 100 DP", GOSSIP_SENDER_MAIN, 12000); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Invincible Offset - 35 DP", GOSSIP_SENDER_MAIN, 305); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Emblem of Voting x2 - 1 DP", GOSSIP_SENDER_MAIN, 4005); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Unforgiven Gems 5 DP - 3 Gems", GOSSIP_SENDER_MAIN, 5100); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Portable Mailbox - 10 DP", GOSSIP_SENDER_MAIN, 5200); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Multi Vendor - 10 DP", GOSSIP_SENDER_MAIN, 5300); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; } bool OnGossipSelect(Player* player, Creature* pCreature, uint32 /*uiSender*/, uint32 uiAction) { player->PlayerTalkClass->ClearMenus(); switch (uiAction) { case 5400: player->PlayerTalkClass->ClearMenus(); if(!HasCheatCooldown(player)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Cooldown Cheat - 15 DP", GOSSIP_SENDER_MAIN, 5401); if(!HasCheatCasttime(player)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Casttime Cheat - 15 DP", GOSSIP_SENDER_MAIN, 5402); if(!HasCheatPower(player)) player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Power Cheat - 10 DP", GOSSIP_SENDER_MAIN, 5403); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 5401: RewardItem(player, pCreature,24,1,15); break; case 5402: RewardItem(player, pCreature,25,1,15); break; case 5403: RewardItem(player, pCreature,26,1,10); break; case 5200: RewardItem(player, pCreature,40768,1,10); break; case 5300: RewardItem(player, pCreature,37298,1,10); break; case 5100: RewardItem(player, pCreature,29765,3,5); break; case 300: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Cloak - 15 DP", GOSSIP_SENDER_MAIN, 301); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Tabard - 20 DP", GOSSIP_SENDER_MAIN, 302); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Bag - 5 DP", GOSSIP_SENDER_MAIN, 303); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Quiver - 5 DP", GOSSIP_SENDER_MAIN, 1303); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Shield - 15 DP", GOSSIP_SENDER_MAIN, 304); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 1303: if(player->getClass() != CLASS_HUNTER) { char str[200]; sprintf(str,"Your not a Hunter, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature,7278,1,10); player->PlayerTalkClass->SendCloseGossip(); } break; case 12: RewardItem(player, pCreature,24368,1,20); break; case 301: RewardItem(player, pCreature,21394,1,15); break; case 302: RewardItem(player, pCreature,20131,1,20); break; case 303: RewardItem(player, pCreature,20400,1,5); break; case 304: RewardItem(player, pCreature,34185,1,15); break; case 305: // invincible off set switch(player->getClass()) { case CLASS_WARRIOR: RewardItem(player, pCreature, 66073,1,35); break; case CLASS_PALADIN: RewardItem(player, pCreature, 66077,1,35); break; case CLASS_HUNTER: RewardItem(player, pCreature, 66071,1,35); break; case CLASS_ROGUE: RewardItem(player, pCreature, 66072,1,35); break; case CLASS_PRIEST: RewardItem(player, pCreature, 66074,1,35); break; case CLASS_DEATH_KNIGHT: RewardItem(player, pCreature, 66070,1,35); break; case CLASS_SHAMAN: RewardItem(player, pCreature, 66078,1,35); break; case CLASS_MAGE: RewardItem(player, pCreature, 66079,1,35); break; case CLASS_WARLOCK: RewardItem(player, pCreature, 66076,1,35); break; case CLASS_DRUID: RewardItem(player, pCreature, 66075,1,35); break; default: break; } break; case 1000: RewardItem(player, pCreature, 0, 0, 0); break; case 2000: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "One-Handed Weapons", GOSSIP_SENDER_MAIN, 2001); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Two-Handed Weapons", GOSSIP_SENDER_MAIN, 2002); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Staves", GOSSIP_SENDER_MAIN, 2003); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Ranged", GOSSIP_SENDER_MAIN, 2004); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Off-Hand Weapons", GOSSIP_SENDER_MAIN, 2005); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Main-Hand Weapons", GOSSIP_SENDER_MAIN, 2006); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 2001: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Sword - 15 DP", GOSSIP_SENDER_MAIN, 2101); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Dagger - 15 DP", GOSSIP_SENDER_MAIN, 2102); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Axe - 15 DP", GOSSIP_SENDER_MAIN, 2103); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Mace - 15 DP", GOSSIP_SENDER_MAIN, 2103); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 2101: RewardItem(player, pCreature,50672,1,15); break; case 2102: if(player->getClass() != CLASS_ROGUE) { char str[200]; sprintf(str,"Your not a Rogue, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature,32044,1,15); } break; case 2103: RewardItem(player, pCreature,50759,1,15); break; case 2104: RewardItem(player, pCreature,46017,1,15); break; case 2002: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Two-Hand Sword - 30 DP", GOSSIP_SENDER_MAIN, 2201); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Two-Hand Axe - 30 DP", GOSSIP_SENDER_MAIN, 2202); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Two-Hand Mace - 30 DP", GOSSIP_SENDER_MAIN, 2203); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Hunters Two-Hand Polearm - 30 DP", GOSSIP_SENDER_MAIN, 2204); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 2201: RewardItem(player, pCreature,50761,1,30); break; case 2202: RewardItem(player, pCreature,49623,1,30); break; case 2203: RewardItem(player, pCreature,33663,1,30); break; case 2204: if(player->getClass() != CLASS_HUNTER) { char str[200]; sprintf(str,"Your not a Hunter, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature,50425,1,30); player->PlayerTalkClass->SendCloseGossip(); } break; case 2003: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Staff - 20 DP", GOSSIP_SENDER_MAIN, 2301); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Feral Staff - 20 DP", GOSSIP_SENDER_MAIN, 2302); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 2301: if(player->getClass() == CLASS_PALADIN || player->getClass() == CLASS_ROGUE || player->getClass() == CLASS_WARRIOR || player->getClass() == CLASS_DEATH_KNIGHT || player->getClass() == CLASS_HUNTER) { char str[200]; sprintf(str,"Your not a Caster, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature,54806,1,20); player->PlayerTalkClass->SendCloseGossip(); } break; case 2302: if(player->getClass() != CLASS_DRUID) { char str[200]; sprintf(str,"Your not a Druid, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature,40348,1,20); player->PlayerTalkClass->SendCloseGossip(); } break; case 2004: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Bow - 15 DP", GOSSIP_SENDER_MAIN, 2401); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Gun - 15 DP", GOSSIP_SENDER_MAIN, 2402); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Wand - 15 DP", GOSSIP_SENDER_MAIN, 2403); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 2401: RewardItem(player, pCreature,34334,1,15); break; case 2402: RewardItem(player, pCreature,51450,1,15); break; case 2403: if(player->getClass() == CLASS_PALADIN || player->getClass() == CLASS_ROGUE || player->getClass() == CLASS_WARRIOR || player->getClass() == CLASS_DEATH_KNIGHT || player->getClass() == CLASS_HUNTER) { char str[200]; sprintf(str,"Your not a Caster, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature,37177,1,15); player->PlayerTalkClass->SendCloseGossip(); } break; case 2005: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Warglaive (Off Hand) - 20 DP", GOSSIP_SENDER_MAIN, 2501); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Fist (Off Hand) - 15 DP", GOSSIP_SENDER_MAIN, 2502); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 2501: RewardItem(player, pCreature, 1951,1,20); break; case 2502: RewardItem(player, pCreature, 34203,1,15); break; case 2006: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Warglaive (Main Hand) - 20 DP", GOSSIP_SENDER_MAIN, 2601); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Fist (Main Hand) - 15 DP", GOSSIP_SENDER_MAIN, 2602); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 2601: RewardItem(player, pCreature, 1469,1,20); break; case 2602: RewardItem(player, pCreature, 34331,1,15); break; case 3000: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Ancient Box - 30 DP", GOSSIP_SENDER_MAIN, 3001); if (player->GetTeam() == HORDE) { player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Medallion of the Horde - 20 DP", GOSSIP_SENDER_MAIN, 3002); } else { player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Medallion of the Alliance - 20 DP", GOSSIP_SENDER_MAIN, 3012); } if(player->getClass() == CLASS_ROGUE) { player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Necklace of the Assassin - 20 DP", GOSSIP_SENDER_MAIN, 3004); } player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Card Destruction (melee) - 20 DP", GOSSIP_SENDER_MAIN, 3003); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Card Judgement (spell) - 20 DP", GOSSIP_SENDER_MAIN, 3015); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Trinket of the Comet - 15 DP", GOSSIP_SENDER_MAIN, 3005); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 3001: RewardItem(player, pCreature, 4632,1,30); break; case 3002: RewardItem(player, pCreature, 42126,1,20); break; case 3003: RewardItem(player, pCreature, 42989,1,20); break; case 3004: RewardItem(player, pCreature, 39246,1,20); break; case 3005: RewardItem(player, pCreature, 19336,1,20); break; case 3012: RewardItem(player, pCreature, 38589,1,20); break; case 3013: RewardItem(player, pCreature, 45609,1,15); break; case 3015: RewardItem(player, pCreature, 19288,1,20); break; case 4000: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Faction Change Token - 5 DP", GOSSIP_SENDER_MAIN, 4001); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Race Change Token - 5 DP", GOSSIP_SENDER_MAIN, 14002); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Name Change Token - 5 DP", GOSSIP_SENDER_MAIN, 4002); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Re-Customize Token - 5 DP", GOSSIP_SENDER_MAIN, 4003); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Max Level - 5 DP", GOSSIP_SENDER_MAIN, 4009); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Levelup Token x255 - 5 DP", GOSSIP_SENDER_MAIN, 5040); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "200 Event Coins - 5 DP", GOSSIP_SENDER_MAIN, 4004); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Berserk Token x25 - 5 DP", GOSSIP_SENDER_MAIN, 4006); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Honor Booster x5 - 5 DP", GOSSIP_SENDER_MAIN, 4007); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Shadowmourne Visual - 10 DP", GOSSIP_SENDER_MAIN, 14010); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "V.I.P Rank - 80 DP", GOSSIP_SENDER_MAIN, 4008); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Arena Token - 10 DP", GOSSIP_SENDER_MAIN, 4028); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Group Summoning Token - 10 DP", GOSSIP_SENDER_MAIN, 4029); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Temporary Item Token x2 - 1 DP", GOSSIP_SENDER_MAIN, 4030); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Custom Enchant Token - 7 DP", GOSSIP_SENDER_MAIN, 4031); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Friendlystep - 8 DP", GOSSIP_SENDER_MAIN, 4032); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 4032: RewardItem(player, pCreature, 985410,1,8); break; case 4031: RewardItem(player, pCreature, 41596,1,7); break; case 5040: RewardItem(player, pCreature, 44728,255,5); break; case 4030: RewardItem(player, pCreature, 9850100,2,1); break; case 4038: RewardItem(player, pCreature, 29435,1,12); break; case 4029: RewardItem(player, pCreature, 190,1,10); break; case 4028: RewardItem(player, pCreature, 29436,1,10); break; case 14002: RewardItem(player, pCreature, 81,1,5); break; case 14010: RewardItem(player, pCreature, 133337,1,10); break; case 4001: RewardItem(player, pCreature, 5,1,5); break; case 4002: RewardItem(player, pCreature, 6,1,5); break; case 4003: RewardItem(player, pCreature, 1,1,5); break; case 4004: RewardItem(player, pCreature, 16,1,5); break; case 4005: RewardItem(player, pCreature, 40753,2,1); break; case 4006: RewardItem(player, pCreature, 31,25,5); break; case 4007: RewardItem(player, pCreature, 44115,5,10); break; case 4008: RewardItem(player, pCreature, 22,1,80); break; case 4009: RewardItem(player, pCreature, 7,1,5); break; case 4010: RewardItem(player, pCreature, 11,1,10); break; case 5000: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Idol - 15 DP", GOSSIP_SENDER_MAIN, 5001); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Thrown - 15 DP", GOSSIP_SENDER_MAIN, 5002); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Totem - 15 DP", GOSSIP_SENDER_MAIN, 5003); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Sigil - 15 DP", GOSSIP_SENDER_MAIN, 5004); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Donors Libram - 15 DP", GOSSIP_SENDER_MAIN, 5005); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "[Main Menu]", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 5001: if(player->getClass() != CLASS_DRUID) { char str[200]; sprintf(str,"Your not a Druid, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature, 50456,1,15); } break; case 5002: if(player->getClass() != CLASS_ROGUE) { char str[200]; sprintf(str,"Your not a Rogue, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature, 30025,1,15); } break; case 5003: if(player->getClass() != CLASS_SHAMAN) { char str[200]; sprintf(str,"Your not a Shaman, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature, 45169,1,15); } break; case 5004: if(player->getClass() != 6) { char str[200]; sprintf(str,"Your not a Death Knight, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature, 45144,1,15); } break; case 5005: if(player->getClass() != CLASS_PALADIN) { char str[200]; sprintf(str,"Your not a Paladin, so you cant buy this item!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature, 50461,1,15); } break; case 5006: RewardItem(player, pCreature, 4633,1,2); break; case 10000: switch(player->getClass()) { case CLASS_WARRIOR: RewardItem(player, pCreature, 61009,1,15); break; case CLASS_PALADIN: RewardItem(player, pCreature, 61007,1,15); break; case CLASS_HUNTER: RewardItem(player, pCreature, 63005,1,15); break; case CLASS_ROGUE: RewardItem(player, pCreature, 61004,1,15); break; case CLASS_PRIEST: RewardItem(player, pCreature, 61010,1,15); break; case CLASS_DEATH_KNIGHT: RewardItem(player, pCreature, 61006,1,15); break; case CLASS_SHAMAN: RewardItem(player, pCreature, 61001,1,15); break; case CLASS_MAGE: RewardItem(player, pCreature, 61008,1,15); break; case CLASS_WARLOCK: RewardItem(player, pCreature, 61003,1,15); break; case CLASS_DRUID: RewardItem(player, pCreature, 61000,1,15); break; default: break; } break; case 11000: // donors talisman switch(player->getClass()) { case CLASS_WARRIOR: RewardItem(player, pCreature, 32485,1,30); break; case CLASS_PALADIN: RewardItem(player, pCreature, 32489,1,30); break; case CLASS_HUNTER: RewardItem(player, pCreature, 32487,1,30); break; case CLASS_ROGUE: RewardItem(player, pCreature, 32492,1,30); break; case CLASS_PRIEST: RewardItem(player, pCreature, 32490,1,30); break; case CLASS_DEATH_KNIGHT: RewardItem(player, pCreature, 21670,1,30); break; case CLASS_SHAMAN: RewardItem(player, pCreature, 32491,1,30); break; case CLASS_MAGE: RewardItem(player, pCreature, 32488,1,30); break; case CLASS_WARLOCK: RewardItem(player, pCreature, 32493,1,30); break; case CLASS_DRUID: RewardItem(player, pCreature, 32486,1,30); break; default: break; } break; case 12000: // donors set switch(player->getClass()) { case CLASS_WARRIOR: RewardItem(player, pCreature, 65073,1,100); break; case CLASS_PALADIN: RewardItem(player, pCreature, 65077,1,100); break; case CLASS_HUNTER: RewardItem(player, pCreature, 65071,1,100); break; case CLASS_ROGUE: RewardItem(player, pCreature, 65072,1,100); break; case CLASS_PRIEST: RewardItem(player, pCreature, 65074,1,100); break; case CLASS_DEATH_KNIGHT: RewardItem(player, pCreature, 65070,1,100); break; case CLASS_SHAMAN: RewardItem(player, pCreature, 65078,1,100); break; case CLASS_MAGE: RewardItem(player, pCreature, 65079,1,100); break; case CLASS_WARLOCK: RewardItem(player, pCreature, 65076,1,100); break; case CLASS_DRUID: RewardItem(player, pCreature, 65075,1,100); break; default: break; } break; case 9997: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Are you sure you wish to buy frostmourne?", GOSSIP_SENDER_MAIN, 9997); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "Yes.", GOSSIP_SENDER_MAIN, 9996); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_DOT, "No.", GOSSIP_SENDER_MAIN, 9999); player->PlayerTalkClass->SendGossipMenu(85002, pCreature->GetGUID()); return true; break; case 9996: if(player->HasItemCount(27769, 1)) { char str[200]; sprintf(str,"You already have a Frostmourne, so you cant buy it!"); player->MonsterWhisper(str,player->GetGUID(),true); player->PlayerTalkClass->SendCloseGossip(); } else { RewardItem(player, pCreature, 27769,1,50); player->PlayerTalkClass->SendCloseGossip(); } break; case 9998: player->GetSession()->SendListInventory(pCreature->GetGUID()); break; case 9999: player->PlayerTalkClass->ClearMenus(); OnGossipHello(player, pCreature); break; } return true; } }; void AddSC_donorrewarder() { new donorrewarder(); }