ArcEmu: [c++] Getting Started With Gameobjects - 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++] Getting Started With Gameobjects

#1 User is offline   Datastream1 

  • Member
  • Pip
  • Group: Members
  • Posts: 87
  • Joined: 15-April 09
  • Gender:Male
  • Location:the great US&A
  • Server OS:Other

  Posted 31 May 2010 - 05:51 PM

Hi all just thought i would contribute this guide to the community, because i have not contributed much... and who knows, this could get you to fix something, or script something that isn't ^^


so lets get started.

Things to note:

Keywords are in BLUE
The name of the Script is in RED

First off, what kind of script do you want?
  • Teleporter
  • (going to add more when i have the time)

  • Teleporter
class TeleporterName: public GameObjectAIScript
{
public:

TeleporterName(GameObject* goinstance) : GameObjectAIScript( goinstance ) {}

static GameObjectAIScript *Create(GameObject * GO)
{
 	return new TeleporterName(GO);
}


confused? ill try clearing this up for you :)

class - creates a new class
TeleporterName - Is your new class's name

now, lets continue (The code in green is code we've already covered)

class TeleporterName : public GameObjectAIScript
{
public:

TeleporterName(GameObject* goinstance) : GameObjectAIScript( goinstance ) {}

static GameObjectAIScript *Create(GameObject * GO)
{
	return newTeleporterName(GO);
}

voidOnSpawn()
{
	RegisterAIUpdateEvent(1000);
}

void AIUpdate()
{
 	Player * pPlayer = _gameobject->GetMapMgr()->GetInterface()->GetPlayerNearestCoords(_gameobject->GetPositionX(), _gameobject->GetPositionY(), _gameobject->GetPositionZ());
 	if(!pPlayer)
 	return;

 	if (_gameobject->CalcDistance( _gameobject, pPlayer ) <= 2.0f)
 	{
 	pPlayer->EventTeleport( MAPID, X, Y, Z );
 	}
	}
};

void SetupTeleporterName(ScriptMgr* mgr)
{
 	mgr->register_gameobject_script(GameObjectEntryId, &TeleporterName::Create);
}


RegisterAIUpdateEvent(1000); - this is saying to run the function "void AIUpdate()" every second (you can change this, but remember the time is in miliseconds, ex; 2000 = 2 seconds)

Player * pPlayer = - Saying that the pointer pPlayer is calling the gameobject to get the closest player near it

if(!pPlayer) - if pPlayer returns false(0) then it wont look at the rest of the code

if (_gameobject->CalcDistance( _gameobject, pPlayer ) <= 2.0f)
- this check if the Player is within 2 feet of the object, it will Teleport the player as stated here:
pPlayer->EventTeleport( MAPID, X, Y, Z );

More to come, kind of ran out of time but i will add more to this.. :P
Posted Image
need halp with a C++ script? message me! :P
0

#2 User is offline   sanctum32 

  • Occasional Poster
  • PipPip
  • Group: Members
  • Posts: 118
  • Joined: 28-November 10
  • Gender:Male

Posted 28 February 2011 - 02:28 AM

even not tryed, but object gossip menu is working?
-- sorry for bad eng
Posted Image
Posted Image
Sorry for my bad english
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