ArcEmu: Lua Functionality - Movement - 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

Read:

When submitting patches - READ: http://arcemu.org/fo...?showtopic=2355 -
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Lua Functionality - Movement

#1 User is offline   salamanda 

  • Enthusiast
  • PipPipPip
  • Group: Members
  • Posts: 161
  • Joined: 10-July 08

Posted 28 August 2011 - 03:36 PM

Patch Title: Lua Functionality - Movement

What feature it adds: It adds MoveJump, MoveCharge and MoveKnockback to the Lua engine functions.

Detailed Explanation: Basically gets the parameters required and then calls the AIInterface function.

Tested: Tested all functions, appears to work fine though my C++ knowledge is very limited.

Patch:
Index: FunctionTables.h
===================================================================
--- FunctionTables.h	(revision 4496)
+++ FunctionTables.h	(working copy)
@@ -536,6 +536,9 @@
 	{ "CastSpellAoE", &LuaUnit::CastSpellAoF },
 	{ "SetFlag", &LuaUnit::SetFlag },
 	{ "SetSelectedGO", &LuaUnit::SetSelectedGO },
+	{ "MoveJump", &LuaUnit::MoveJump },
+	{ "MoveKnockback", &LuaUnit::MoveKnockback },
+	{ "MoveCharge", &LuaUnit::MoveCharge },
 	{ NULL, NULL },
 };
 
Index: UnitFunctions.h
===================================================================
--- UnitFunctions.h	(revision 4496)
+++ UnitFunctions.h	(working copy)
@@ -5991,5 +5991,37 @@
 				lua_pushnil(L);
 			return 1;
 		}
+
+		static int MoveJump(lua_State* L, Unit* ptr)
+		{
+			TEST_UNITPLAYER();
+			float x = CHECK_FLOAT(L,1);
+			float y = CHECK_FLOAT(L,2);
+			float z = CHECK_FLOAT(L,3);
+			ptr->GetAIInterface()->MoveJump(x,y,z);
+			return 1;
+		}
+
+		static int MoveKnockback(lua_State* L, Unit* ptr)
+		{
+			TEST_UNITPLAYER();
+			float x = CHECK_FLOAT(L,1);
+			float y = CHECK_FLOAT(L,2);
+			float z = CHECK_FLOAT(L,3);
+			float h = CHECK_FLOAT(L,4);
+			float v = CHECK_FLOAT(L,5);
+			ptr->GetAIInterface()->MoveKnockback(x,y,z,h,v);
+			return 1;
+		}
+
+		static int MoveCharge(lua_State* L, Unit* ptr)
+		{
+			TEST_UNITPLAYER();
+			float x = CHECK_FLOAT(L,1);
+			float y = CHECK_FLOAT(L,2);
+			float z = CHECK_FLOAT(L,3);
+			ptr->GetAIInterface()->MoveCharge(x,y,z);
+			return 1;
+		}
 };
 #endif


http://pastebin.com/mqD8NRxR

Attached File(s)


0

#2 User is offline   jackpoz 

  • ArcEmu Lemon Priest
  • PipPipPipPipPipPipPipPip
  • Group: Developers
  • Posts: 2,153
  • Joined: 19-June 08
  • Gender:Male
  • Location:Italy
  • Server OS:Windows

Posted 28 August 2011 - 05:16 PM

why are you calling TEST_UNITPLAYER() and then checking if ptr is NULL ? did you read what TEST_UNITPLAYER() do?
Posted Image We develop dreams. Your dreams ;)
Posted ImagePosted Image
0

#3 User is offline   salamanda 

  • Enthusiast
  • PipPipPip
  • Group: Members
  • Posts: 161
  • Joined: 10-July 08

Posted 29 August 2011 - 04:47 AM

Well, when you say it like that it's kind of obvious that it is not required. :P TEST_UNITPLAYER <- Test for unit/player.

#define TEST_UNITPLAYER() if(ptr == NULL || !ptr->IsInWorld() || !ptr->IsUnit()) { return 0; }

Updating main post.
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