ArcEmu: C++ Command - ArcEmu

Jump to content

Toggle shoutbox Lastest Announcements

dfighter  : (07 December 2014 - 12:06 PM) Arcemu is in hibernation mode, please read http://arcemu.org/fo...showtopic=26903
dfighter  : (01 January 2013 - 05:56 PM) Arcemu wishes you all a happy new year!
Hasbro  : (12 September 2012 - 10:01 AM) Please excuse our outage from the web! Our web host had a major malfunction!
dfighter  : (01 September 2012 - 04:05 PM) Since the spam bots just don't want to stop, I've enabled admin verification when registering.
dfighter  : (23 January 2012 - 09:56 PM) Please note that from now on you will need to confirm your email on the wiki in order to edit it!
Hasbro  : (31 December 2011 - 12:50 PM) Happy New Years all!
Navid  : (26 December 2011 - 04:09 AM) Merry Christmas !!!!!! Happy holidays all :)
WAmadeus  : (24 December 2011 - 03:54 PM) Merry Christmas to all!
dfighter  : (24 December 2011 - 11:05 AM) The Arcemu team wishes y'all a Merry Christmukkah!
Hasbro  : (05 October 2011 - 12:53 PM) Looking for web designers for upcoming web related project. If you're interested in designing user interfaces contact me
dfighter  : (02 September 2011 - 03:47 PM) So who here wants vehicles in Arcemu? :P http://arcemu.org/fo...showtopic=25440
Hasbro  : (14 August 2011 - 03:25 PM) Join us on irc, grab an irc client and connect to irc.freenode.net join channel #arcemu /server irc.freenode.net:6667 /join #arcemu
jackpoz  : (03 August 2011 - 05:33 AM) to all Lua Engine (old one) users: please check http://arcemu.org/fo...showtopic=25274
Hasbro  : (20 May 2011 - 05:27 PM) Looking for people experienced with CMake configuration and setup! Contact me asap
Hasbro  : (15 May 2011 - 05:03 PM) ArcEmu is recruiting C++ programmers, contact Hasbro if interested.
paroxysm  : (03 May 2011 - 06:26 PM) Updated luabridge gossip example to describe the whole gossip creation process rather than just how to create menu. Gossip tutorial
paroxysm  : (23 April 2011 - 11:35 AM) Lua writers can refer to the Luabridge Tutorials section in the Wiki to learn how to write gossip code correctly.
Hasbro  : (20 April 2011 - 05:22 PM) Thank you for your continuous contribution of bug reports, we are working on them.
Hasbro  : (17 April 2011 - 03:20 AM) Please consider donating to support our bills. Donations can be sent using PayPal to donations@arcemu.org - Thank you for your support.
paroxysm  : (10 April 2011 - 12:43 AM) Refer to the Luabridge Tutorials section in the Wiki to learn the new syntax of luabridge.
Resize Shouts Area

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

C++ Command I probably need alot of help

#1 User is offline   b14d3r11 

  • Member
  • Pip
  • Group: Members
  • Posts: 48
  • Joined: 01-May 09

Posted 05 April 2011 - 01:23 PM

I just started realizing what C++ commands do in this script I had someone tweak to my "expectations" per say. But I dont think it does ALL that i asked for so I am asking you guys if it does. What I am wanting for this script to do is:

Is player GM Level D1
If so then Open Code Input
Player types name in
checks to see if Targetplayer name is correct
then checks to see if Targetplayer is online
then checks to see if Targetplayer is in the party as the player issuing the command
then teleport to Targetplayer

#include "StdAfx.h"
#include "Setup.h"

#ifdef WIN32
#pragma warning(disable:4305)		// warning C4305: 'argument' : truncation from 'double' to 'float'
#endif

#define ITEM_ID     123456
#define GM_LEVEL    'D1'

class SCRIPT_DECL GMPorter : public GossipScript
{
public:

	void GossipHello(Object* pObject, Player* Plr, bool AutoSend);
	void GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char* Code);
	void GossipEnd(Object* pObject, Player* Plr);
	void Destroy()
	{
		delete this;
	}
};

void GMPorter::GossipHello(Object* pObject, Player* Plr, bool AutoSend)
{
	GossipMenu* Menu;
	objmgr.CreateGossipMenuForPlayer(&Menu, pObject->GetGUID(), 2593, Plr);

	//Check to see if the player has the appropriate GM level
	if(Plr->GetSession()->CanUseCommand(GM_LEVEL))
		Menu->AddItem(0, "Port To Player", 1, 1);
	Menu->AddItem(0, "[Exit]", 0);

	if(AutoSend)
		Menu->SendTo(Plr);
}

void GMPorter::GossipSelectOption(Object* pObject, Player* Plr, uint32 Id, uint32 IntId, const char* Code)
{
	GossipMenu* Menu;

	switch(IntId)
	{
	case 0:      //End Gossip
		Plr->Gossip_Complete();
		break;

	case 1:      //Port to Player
		{
				//No name entered
				if(!Code)
				{
					Plr->BroadcastMessage("%s You have not entered a name to port to!", MSG_COLOR_RED);
					Plr->Gossip_Complete();
				}

				Player* pPlayer = objmgr.GetPlayer(Code, false);

				//Can't find the player entered
				if(!pPlayer)
				{
					Plr->BroadcastMessage("%s Player is not online or could not be found.", MSG_COLOR_RED);
					Plr->Gossip_Complete();
				}

				//If player has a group
				if(pPlayer->GetGroup() != NULL)
				{
					Plr->BroadcastMessage("%s Player has a group, thus you cannot teleport to him.", MSG_COLOR_RED);
					Plr->Gossip_Complete();
				}

				else
				{
					float XLoc = pPlayer->GetPositionX();
					float YLoc = pPlayer->GetPositionY();
					float ZLoc = pPlayer->GetPositionZ();
					float OLoc = pPlayer->GetOrientation();
					uint32 Map = pPlayer->GetMapId();

					Plr->EventTeleport(Map, XLoc, YLoc, ZLoc);
					Plr->SetOrientation(OLoc);
					Plr->BroadcastMessage("%s You have been successfully teleported to %s .", MSG_COLOR_RED, pPlayer->GetName());
					Plr->Gossip_Complete();
				}
		}break;
	}
};

void GMPorter::GossipEnd(Object* pObject, Player* Plr)
{
	GossipScript::GossipEnd(pObject, Plr);
};

void SetupGMPorter(ScriptMgr* mgr)
{
	GossipScript* gs = (GossipScript*) new GMPorter();
	mgr->register_item_gossip_script(ITEM_ID, gs);
};

0

#2 User is offline   paroxysm 

  • Chatty Cathy
  • Group: Retired
  • Posts: 320
  • Joined: 25-June 08
  • Gender:Male
  • Server OS:Windows

Posted 05 April 2011 - 06:04 PM

The syntax for using gossip changed so that old code won't work or even register.
0

#3 User is offline   b14d3r11 

  • Member
  • Pip
  • Group: Members
  • Posts: 48
  • Joined: 01-May 09

Posted 05 April 2011 - 07:07 PM

really.... did it also change for LUA too? If so then im SOL then arent I... :huh:
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users