Deadzshammy
Emulation Addict
Code:
/*********************
* Made by: KuSaNaGy *
*********************/
/*
//#include "ScriptPCH.h" este script include no se debe usar en los scritp custom
*/
#include "Player.h"
#include "PlayerDump.h"
#include "ScriptMgr.h"
#include "ScriptedGossip.h"
/*
cualquier inquietud comunicate conmigo
karlos kaxtilla tkd
https://www.facebook.com/carlos.castilla.79
*/
class npc_promo : public CreatureScript
{
public:
npc_promo() : CreatureScript("npc_promo") { }
bool OnGossipHello(Player* player, Creature* creature)
{
player->AddGossipItemFor(7, "Seleccione tu Promo: ", GOSSIP_SENDER_MAIN, 99); //7 igual nuemero restringido del menu
switch (player->getClass())
{
case CLASS_DRUID: player->AddGossipItemFor(10, "Promocion - Druida", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 30); break; //10 actuacion 30a 39 numeros de casos
case CLASS_SHAMAN: player->AddGossipItemFor(10, "Promocion - Shaman", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 31); break;
case CLASS_PALADIN: player->AddGossipItemFor(10, "Promocion - Paladin", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 32); break;
case CLASS_WARRIOR: player->AddGossipItemFor(10, "Promocion - Guerrero", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 33); break;
case CLASS_PRIEST: player->AddGossipItemFor(10, "Promocion - Sacerdote", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 34); break;
case CLASS_DEATH_KNIGHT: player->AddGossipItemFor(10, "Promocion - DK", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 35); break;
case CLASS_ROGUE: player->AddGossipItemFor(10, "Promocion - Picaro", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 36); break;
case CLASS_HUNTER: player->AddGossipItemFor(10, "Promocion - Cazador", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 37); break;
case CLASS_MAGE: player->AddGossipItemFor(10, "Promocion - Mago", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 38); break;
case CLASS_WARLOCK: player->AddGossipItemFor(10, "Promocion - Brujo", GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF +3 9); break;
}
player->SendGossipMenuFor(1, creature->GetGUID());
return true;
}
bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 actions)
{
if (player->getLevel() == 1) //confirmamos si player es lvl igual o estricto a 1 continuamos
{
uint32 accountID = player->GetSession()->GetAccountId();
QueryResult result = CharacterDatabase.PQuery("SELECT COUNT(`guid`) FROM `characters` WHERE `account`=%u", accountID);
Field *fields = result->Fetch();
uint32 personajes = fields[0].GetUInt32();
if (personajes == 2) //aqui damos la instruciones para cuantos player necesitamos que reciban promocion
{
if (actions == 99) //condicional de actuacion de casos
{
ClearGossipMenuFor(player);
return false;
}
player->GetSession()->SendAreaTriggerMessage("Felicidades!! has obtenido tu Promocion!.");
//aca podemos colocar que el npc de a cualquier player que venga por promo para no repetir en cada uno estas instruciones
player->GiveLevel(80);
player->SetMoney(200000000);
//podemos colocar spell, dinero, item, emblemas lo que deses
switch(actions)
{
case GOSSIP_ACTION_INFO_DEF + 30: // Druid
player->AddItem(45983, 1); // por ejemplo player->AddItem(42584, 1);// reliquia pvp dps donde (primero va la ID del items, luego cantidad)
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 31: // Shaman
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 32: // Paladin
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 33: // Warrior
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 34: // Priest
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 35: // DK
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 36: // Rogue
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 37: // Hunter
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 38: // Mage
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
case GOSSIP_ACTION_INFO_DEF + 39: // Warlock
player->AddItem(45983, 1);
player->CloseGossipMenuFor();
break;
}
}
if (personajes > 2) //si el personaje es mayor a 1 entonce diga tal mensaje
{
player->GetSession()->SendAreaTriggerMessage("La promocion solo es para 2 Personaje por Cuenta y tiene que tener Lvl 1 para poder reclamar su Promo.");
return true;
}
ClearGossipMenuFor(player); //cierro el menu completo
}
return true;
}
};
void AddSC_npc_promo()
{
new npc_promo();
}
Please.help me fix this script.
I don't know what's wrong with it.
Here is a screenshot of the errors.
http://prnt.sc/dscf5k