Thanks Rochet for your help, but Im a little retard I think, because I dont use how to use switch, donw know where must it go, then I create an alternative :S Can you or any say if this code is well?
//Original LevelNPC script by - Ghostcrawler336
#include “ScriptPCH.h”
#define TOKEN_ID 90020
class Level_NPC : public CreatureScript
{
public:
Level_NPC() : CreatureScript(“Level_NPC”) {}
bool OnGossipHello(Player* pPlayer, Creature* _creature)
{
pPlayer->ADD_GOSSIP_ITEM(7, “Los sets son PVE, ¡¡Asegurate de tener 15 Espacios en el inventario!!”, GOSSIP_SENDER_MAIN, 111212);
pPlayer->ADD_GOSSIP_ITEM(10, “Druida: Nivel 80 + Healer & Feral & Caster Sets (20 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 1);
pPlayer->ADD_GOSSIP_ITEM(10, “Chaman: Nivel 80 + Healer & DPS & Caster Sets (20 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 2);
pPlayer->ADD_GOSSIP_ITEM(10, “Paladin: Nivel 80 + Healer & DPS & Tank (20 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 3);
pPlayer->ADD_GOSSIP_ITEM(10, “Guerrero: Nivel 80 + DPS & Tank Sets (15 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 4);
pPlayer->ADD_GOSSIP_ITEM(10, “Sacerdote: Nivel 80 + Healer & DPS Sets (15 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 5);
pPlayer->ADD_GOSSIP_ITEM(10, “DK: Nivel 80 + DPS & Tank Sets (15 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 6);
pPlayer->ADD_GOSSIP_ITEM(10, “Picaro: Nivel 80 + DPS Set (10 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 7);
pPlayer->ADD_GOSSIP_ITEM(10, “Cazador: Nivel 80 + DPS Set (10 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 8);
pPlayer->ADD_GOSSIP_ITEM(10, “Mago: Nivel 80 + DPS Set (10 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 9);
pPlayer->ADD_GOSSIP_ITEM(10, “Brujo: Nivel 80 + DPS Set (10 Monedas Conejo)”, GOSSIP_SENDER_MAIN, 10);
pPlayer->PlayerTalkClass->SendGossipMenu(907, _creature->GetGUID());
return true;
}
bool OnGossipSelect(Player* pPlayer, Creature* _creature, uint32 uiSender, uint32 uiAction)
{
pPlayer->PlayerTalkClass->ClearMenus();
switch(uiAction)
{
case 1: // Druid: Level 80 + Healer & Feral & Caster Sets (20 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 20, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200045, 1);
pPlayer->AddItem(200046, 1);
pPlayer->AddItem(200047, 1);
pPlayer->AddItem(200048, 1);
pPlayer->AddItem(200049, 1);
pPlayer->AddItem(200050, 1);
pPlayer->AddItem(200051, 1);
pPlayer->AddItem(200052, 1);
pPlayer->AddItem(200053, 1);
pPlayer->AddItem(200054, 1);
pPlayer->AddItem(200055, 1);
pPlayer->AddItem(200056, 1);
pPlayer->AddItem(200057, 1);
pPlayer->AddItem(200058, 1);
pPlayer->AddItem(200059, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 20, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 2: // Shaman: Level 80 + Healer & DPS & Caster Sets (20 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 20, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200067, 1);
pPlayer->AddItem(200068, 1);
pPlayer->AddItem(200069, 1);
pPlayer->AddItem(200070, 1);
pPlayer->AddItem(200071, 1);
pPlayer->AddItem(200072, 1);
pPlayer->AddItem(200073, 1);
pPlayer->AddItem(200074, 1);
pPlayer->AddItem(200075, 1);
pPlayer->AddItem(200076, 1);
pPlayer->AddItem(200077, 1);
pPlayer->AddItem(200078, 1);
pPlayer->AddItem(200079, 1);
pPlayer->AddItem(200066, 1);
pPlayer->AddItem(200065, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 20, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 3: // Paladin: Level 80 + Healer & DPS & Paladin (20 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 20, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200000, 1);
pPlayer->AddItem(200001, 1);
pPlayer->AddItem(200002, 1);
pPlayer->AddItem(200003, 1);
pPlayer->AddItem(200004, 1);
pPlayer->AddItem(200035, 1);
pPlayer->AddItem(200036, 1);
pPlayer->AddItem(200037, 1);
pPlayer->AddItem(200038, 1);
pPlayer->AddItem(200039, 1);
pPlayer->AddItem(200040, 1);
pPlayer->AddItem(200041, 1);
pPlayer->AddItem(200042, 1);
pPlayer->AddItem(200043, 1);
pPlayer->AddItem(200044, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 20, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 4: // Warrior: Level 80 + DPS & Tank Sets (15 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 15, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200005, 1);
pPlayer->AddItem(200006, 1);
pPlayer->AddItem(200007, 1);
pPlayer->AddItem(200008, 1);
pPlayer->AddItem(200009, 1);
pPlayer->AddItem(200010, 1);
pPlayer->AddItem(200011, 1);
pPlayer->AddItem(200012, 1);
pPlayer->AddItem(200013, 1);
pPlayer->AddItem(200014, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 15, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 5: // Priest: Level 80 + Healer & DPS Sets (15 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 15, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200060, 1);
pPlayer->AddItem(200061, 1);
pPlayer->AddItem(200062, 1);
pPlayer->AddItem(200063, 1);
pPlayer->AddItem(200064, 1);
pPlayer->AddItem(200025, 1);
pPlayer->AddItem(200026, 1);
pPlayer->AddItem(200027, 1);
pPlayer->AddItem(200028, 1);
pPlayer->AddItem(200029, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 15, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 6: // DK: Level 80 + DPS & Tank Sets (15 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 15, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200085, 1);
pPlayer->AddItem(200086, 1);
pPlayer->AddItem(200087, 1);
pPlayer->AddItem(200088, 1);
pPlayer->AddItem(200089, 1);
pPlayer->AddItem(200090, 1);
pPlayer->AddItem(200091, 1);
pPlayer->AddItem(200092, 1);
pPlayer->AddItem(200093, 1);
pPlayer->AddItem(200094, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 15, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 7: // Rogue: Level 80 + DPS Set (10 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 10, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200020, 1);
pPlayer->AddItem(200021, 1);
pPlayer->AddItem(200022, 1);
pPlayer->AddItem(200023, 1);
pPlayer->AddItem(200024, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 10, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 8: // Hunter: Level 80 + DPS Set (10 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 10, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200080, 1);
pPlayer->AddItem(200081, 1);
pPlayer->AddItem(200082, 1);
pPlayer->AddItem(200083, 1);
pPlayer->AddItem(200084, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 10, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 9: // Mage: Level 80 + DPS Set (10 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 10, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200030, 1);
pPlayer->AddItem(200031, 1);
pPlayer->AddItem(200032, 1);
pPlayer->AddItem(200033, 1);
pPlayer->AddItem(200034, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 10, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
case 10: // Warlock: Level 80 + DPS Set (10 Tokens)
if (pPlayer->HasItemCount(TOKEN_ID, 10, true))
{
pPlayer->GiveLevel(80);
pPlayer->AddItem(200015, 1);
pPlayer->AddItem(200016, 1);
pPlayer->AddItem(200017, 1);
pPlayer->AddItem(200018, 1);
pPlayer->AddItem(200019, 1);
pPlayer->DestroyItemCount(TOKEN_ID, 10, true);
_creature->MonsterWhisper(“Ahora eres nivel 80, y tienes los últimos sets PvE de tu Clase”, pPlayer->GetGUID());
pPlayer->PlayerTalkClass->SendCloseGossip();
}
else
{
pPlayer->PlayerTalkClass->SendCloseGossip();
_creature->MonsterWhisper(“No tienes suficientes monedas conejo.”, pPlayer->GetGUID());
return false;
}
break;
}
}
};
void AddSC_Level_NPC()
{
new Level_NPC();
}
if the code is Ok,Exist any method to show only 1 gossip per class ? For example If druid talk with npc, only show “Druid: Level 80 + Healer & Feral & Caster Sets (20 Tokens)”
EDIT: Maybe in each case I must change return false for return true for can store items like Rochet say me? Or if not neccesary at this form?