• 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] c++ help

Status
Not open for further replies.

Jameyboor

Retired Staff
See :
Code:
bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action);
On line 29 of your paste?

remove the semicolon ; at the end.
 

Tommy

Founder
If you had better indentation, it would be a lot easier on your eyes to see the error. XD

My indentation isn't perfect because I only did it in a web page.. >.>

I fixed the error, indentation and all. When you add a bracket inside of a case, you normally have to wrap the entire case with brackets, for example:

INCORRECT:
Code:
int hi = 2;
switch (hi)
{
    case 0:
    int x = 23;
    if (x == 23)
    {
        hi = 2;
        x = 24;
    }
    break;
    case 1:
    break;
    case 2:
    break;
}

CORRECT:

Code:
int hi = 2;
switch (hi)
{
    case 0:
    {
        int x = 23;
        if (x == 23)
        {
            hi = 2;
            x = 24;
        }
    }break;
    case 1:
    break;
    case 2:
    break;
}



Your script:

Code:
#include "ScriptPCH.h"

class teleporter : public CreatureScript
{
public:
    teleporter() : CreatureScript("teleporter") { }

    bool OnGossipHello(Player* player, Creature* creature)
    {
         if (player->IsInCombat())
         {
              player->CLOSE_GOSSIP_MENU();
              player->GetSession()->SendNotification("You're in combat!");
              creature->MonsterWhisper("You're in combat!", LANG_UNIVERSAL, NULL);
              return false;
         }

         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK,"Mall",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+1);
         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Cities",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+2);
         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE,"PVP",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+3);
         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR,"Items and repair",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+4);
     

         player->SEND_GOSSIP_MENU(1, creature->GetGUID()); // This sends the menu to the player
         return true;
    }

    bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
    { 
         player->playerTalkClass->ClearMenus();
    
         switch (uiaction)
        {    
              case GOSSIP_ACTION_INFO_DEF+1: //The mall category defined
                  player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,"Gadgetzan",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+5);
                  player->SEND_GOSSIP_MENU(1, creature->GetGUID());
                  break;
            case GOSSIP_ACTION_INFO_DEF+2: //Cities Category
            {
                  if (player->GetTeam() == HORDE)
                 {
                      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1," #FF1919 Horde",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+6);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Orgrimmar",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+7);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"ThunderBluff",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+8);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Undercity",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+9);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Silvermoon",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+10);
                  }
                  else
                 {
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1,"#0000FF Alliance",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+11);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Stormwind",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+12);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Ironforge",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+13);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Darnasus",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+14);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Exodar",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+15);
                 }
                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1,"#FF9900 Neutral",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+16);
                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Dalaran",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+17);
                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Shattrah",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+18);
                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Booty Bay",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+19);
                     player->SEND_GOSSIP_MENU(1, creature->GetGUID());
              }break;
              case GOSSIP_ACTION_INFO_DEF+3: //PvP Category
                  player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE,"Gurubashi Arena",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+20);
                  player->SEND_GOSSIP_MENU(1, creature->GetGUID());
                  break;
              case GOSSIP_ACTION_INFO_DEF+5: //Gadgetzan     
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(1, -7177.15f, -3785.34f, 8.36981f, 6.10237f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+7: //Orgrimmar 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(1, 1629.36f, -4373.39f, 31.2564f, 3.54839f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+8: //Undercity 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(0, 1584.07f, 241.987f, -52.1534f, 0.049647f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+9: // Thunderbluff
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(1, -1277.37f, 124.804f, 131.287f, 5.22274f);
                 break;
              case GOSSIP_ACTION_INFO_DEF+10: //Silvermoon
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(530, 9487.69f, -7279.2f, 14.2866f, 6.16478f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+12: //Stormwind
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(0, -8833.38f, 628.628f, 94.0066f, 1.06535f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+13: //Ironforge
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(0, -4918.88f, -940.406f, 501.564f, 5.42347f);
                  break;        
              case GOSSIP_ACTION_INFO_DEF+14: //Darnasus
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(1, 9949.56f, 2284.21f, 1341.4f, 1.59587f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+15: //Exodar 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(530, -3965.7f, -11653.6f, -138.844f, 0.852154f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+17: //dalaran 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(571, 5804.15f, 624.771f, 647.767f, 1.64f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+18: //shattrah
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(530, -1838.16f, 5301.79f, -12.428f, 5.9517f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+19: //Booty bay 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(0, -14297.2f, 530.993f, 8.77916f, 3.98863f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+4: // Send a vendor to repair
                  player->CLOSE_GOSSIP_MENU();
                  player->GetSession()->SendListInventory(creature->GetGUID());
                  break;
        }
        return true;    
    }    
};


Ha, I didn't catch that semicolon. Perhaps that was the call before the storm!
 
Last edited:

brh11

Respected Member
Thanks so much Jameyboor!.I just have one question on the bottom of the script im trying to use that function to send a vendor menu to the player when they click items and repair.Im currently getting this error http://pastebin.com/u2XuwE0z Thanks so much!
 
Last edited:

Tommy

Founder
Well the error is obvious. The argument for SendListInventory is the vendor's GUID. You don't need to specify the creature's entry ID.

Fixed it for you:

Code:
#include "ScriptPCH.h"

class teleporter : public CreatureScript
{
public:
    teleporter() : CreatureScript("teleporter") { }

    bool OnGossipHello(Player* player, Creature* creature)
    {
         if (player->IsInCombat())
         {
              player->CLOSE_GOSSIP_MENU();
              player->GetSession()->SendNotification("You're in combat!");
              creature->MonsterWhisper("You're in combat!", LANG_UNIVERSAL, NULL);
              return false;
         }

         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK,"Mall",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+1);
         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Cities",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+2);
         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE,"PVP",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+3);
         player->ADD_GOSSIP_ITEM(GOSSIP_ICON_VENDOR,"Items and repair",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+4);
     

         player->SEND_GOSSIP_MENU(1, creature->GetGUID()); // This sends the menu to the player
         return true;
    }

    bool OnGossipSelect(Player* player, Creature* creature, uint32 sender, uint32 action)
    { 
         player->playerTalkClass->ClearMenus();
    
         switch (uiaction)
        {    
              case GOSSIP_ACTION_INFO_DEF+1: //The mall category defined
                  player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT,"Gadgetzan",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+5);
                  player->SEND_GOSSIP_MENU(1, creature->GetGUID());
                  break;
            case GOSSIP_ACTION_INFO_DEF+2: //Cities Category
            {
                  if (player->GetTeam() == HORDE)
                 {
                      player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1," #FF1919 Horde",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+6);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Orgrimmar",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+7);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"ThunderBluff",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+8);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Undercity",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+9);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Silvermoon",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+10);
                  }
                  else
                 {
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1,"#0000FF Alliance",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+11);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Stormwind",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+12);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Ironforge",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+13);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Darnasus",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+14);
                       player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Exodar",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+15);
                 }
                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_INTERACT_1,"#FF9900 Neutral",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+16);
                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Dalaran",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+17);
                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Shattrah",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+18);
                     player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TAXI,"Booty Bay",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+19);
                     player->SEND_GOSSIP_MENU(1, creature->GetGUID());
              }break;
              case GOSSIP_ACTION_INFO_DEF+3: //PvP Category
                  player->ADD_GOSSIP_ITEM(GOSSIP_ICON_BATTLE,"Gurubashi Arena",GOSSIP_SENDER_MAIN,GOSSIP_ACTION_INFO_DEF+20);
                  player->SEND_GOSSIP_MENU(1, creature->GetGUID());
                  break;
              case GOSSIP_ACTION_INFO_DEF+5: //Gadgetzan     
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(1, -7177.15f, -3785.34f, 8.36981f, 6.10237f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+7: //Orgrimmar 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(1, 1629.36f, -4373.39f, 31.2564f, 3.54839f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+8: //Undercity 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(0, 1584.07f, 241.987f, -52.1534f, 0.049647f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+9: // Thunderbluff
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(1, -1277.37f, 124.804f, 131.287f, 5.22274f);
                 break;
              case GOSSIP_ACTION_INFO_DEF+10: //Silvermoon
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(530, 9487.69f, -7279.2f, 14.2866f, 6.16478f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+12: //Stormwind
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(0, -8833.38f, 628.628f, 94.0066f, 1.06535f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+13: //Ironforge
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(0, -4918.88f, -940.406f, 501.564f, 5.42347f);
                  break;        
              case GOSSIP_ACTION_INFO_DEF+14: //Darnasus
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(1, 9949.56f, 2284.21f, 1341.4f, 1.59587f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+15: //Exodar 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(530, -3965.7f, -11653.6f, -138.844f, 0.852154f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+17: //dalaran 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(571, 5804.15f, 624.771f, 647.767f, 1.64f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+18: //shattrah
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(530, -1838.16f, 5301.79f, -12.428f, 5.9517f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+19: //Booty bay 
                  player->CLOSE_GOSSIP_MENU();
                  player->TeleportTo(0, -14297.2f, 530.993f, 8.77916f, 3.98863f);
                  break;
              case GOSSIP_ACTION_INFO_DEF+4: // Send a vendor to repair
                  player->CLOSE_GOSSIP_MENU();
                  player->GetSession()->SendListInventory(creature->GetGUID());
                  break;
        }
        return true;    
    }    
};
 
Status
Not open for further replies.
Top