• This is a read only backup of the old Emudevs forum. If you want to have anything removed, please message me on Discord: KittyKaev

[SOLVED] Need help with script

Status
Not open for further replies.

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
 

Rochet2

Moderator / Eluna Dev
if the above doesnt work, then you are using the function wrong in your original script.
its used like this AddGossipItemFor(player, GOSSIP_ICON_DOT, OZ_GM_GOSSIP1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 3);
 
Status
Not open for further replies.
Top