Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ScriptPCH.h"
- #define TOKEN 123123 // token entry here
- class CUSTOMIZE_NPC : public CreatureScript
- {
- public:
- CUSTOMIZE_NPC() : CreatureScript("CUSTOMIZE_NPC") { }
- bool OnGossipHello(Player* player, Creature* creature)
- {
- player->ADD_GOSSIP_ITEM( GOSSIP_ICON_CHAT, "Rename 1500 tokens", 1500, AT_LOGIN_RENAME );
- player->ADD_GOSSIP_ITEM( GOSSIP_ICON_CHAT, "Change appearance 1500 tokens", 1500, AT_LOGIN_CUSTOMIZE );
- player->ADD_GOSSIP_ITEM( GOSSIP_ICON_CHAT, "Change race 1000 tokens", 1000, AT_LOGIN_CHANGE_RACE );
- player->ADD_GOSSIP_ITEM( GOSSIP_ICON_CHAT, "Change faction 1000 tokens", 1000, AT_LOGIN_CHANGE_FACTION );
- player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
- return true;
- }
- bool OnGossipSelect(Player* player, Creature* creature, uint32 tokens, uint32 action)
- {
- player->PlayerTalkClass->ClearMenus();
- AtLoginFlags flag = (AtLoginFlags)action;
- if(player->HasAtLoginFlag(flag))
- player->GetSession()->SendNotification("Already bought! Relog to use");
- else if(!player->HasItemCount(TOKEN, tokens))
- player->GetSession()->SendNotification("Not enough tokens");
- else
- {
- player->DestroyItemCount(TOKEN, tokens, true);
- if(flag == AT_LOGIN_RENAME)
- player->SetAtLoginFlag(AT_LOGIN_RENAME);
- else
- {
- PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_UPD_ADD_AT_LOGIN_FLAG);
- stmt->setUInt16(0, uint16(flag));
- player->SetAtLoginFlag(flag);
- stmt->setUInt32(1, player->GetGUIDLow());
- CharacterDatabase.Execute(stmt);
- }
- char* msg = "";
- switch(flag)
- {
- case AT_LOGIN_RENAME: msg = "Relog to change name"; break;
- case AT_LOGIN_CUSTOMIZE: msg = "Relog to change appearance"; break;
- case AT_LOGIN_CHANGE_RACE: msg = "Relog to change race"; break;
- case AT_LOGIN_CHANGE_FACTION: msg = "Relog to change faction"; break;
- }
- player->GetSession()->SendAreaTriggerMessage(msg);
- ChatHandler(player).PSendSysMessage(msg);
- }
- OnGossipHello(player, creature);
- return true;
- }
- };
- void AddSC_CUSTOMIZE_NPC()
- {
- new CUSTOMIZE_NPC();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement