90 lines
2.0 KiB
C++
90 lines
2.0 KiB
C++
#include "stdafx.h"
|
|
#include "Logger.h"
|
|
#include "SE_funcs.h"
|
|
|
|
int l2c_getPos( lua_State *L )
|
|
{
|
|
int nArgs = lua_gettop( L );
|
|
if( nArgs != 0 )
|
|
{
|
|
lua_pushnumber( L, 0 );
|
|
lua_pushnumber( L, 0 );
|
|
lua_pushnumber( L, 0 );
|
|
return 3;
|
|
}
|
|
IL2Client *cl = L2C_func_getClient( L );
|
|
if( !cl )
|
|
{
|
|
lua_pushnumber( L, 0 );
|
|
lua_pushnumber( L, 0 );
|
|
lua_pushnumber( L, 0 );
|
|
return 3;
|
|
}
|
|
UserInfo *usr = cl->get_UserInfo();
|
|
lua_pushnumber( L, usr->x );
|
|
lua_pushnumber( L, usr->y );
|
|
lua_pushnumber( L, usr->z );
|
|
return 3;
|
|
}
|
|
|
|
int l2c_moveTo( lua_State *L )
|
|
{
|
|
int nArgs = lua_gettop( L );
|
|
if( nArgs < 2 ) return 0;
|
|
IL2Client *cl = L2C_func_getClient( L );
|
|
if( !cl ) return 0;
|
|
double x = lua_tonumber( L, 1 );
|
|
double y = lua_tonumber( L, 2 );
|
|
int z = 0x7FFFFFFF;
|
|
if( nArgs == 3 ) z = (int)lua_tonumber( L, 3 );
|
|
//log_error_np( LOG_OK, "LUA: lua_moveto( %d, %d, %d ) [%d]\n", (int)x, (int)y, (int)z, nArgs );
|
|
cl->game_MoveBackwardToLocation( (int)x, (int)y, z );
|
|
return 0;
|
|
}
|
|
|
|
int l2c_moveToDelta( lua_State *L )
|
|
{
|
|
int nArgs = lua_gettop( L );
|
|
if( nArgs < 2 ) return 0;
|
|
IL2Client *cl = L2C_func_getClient( L );
|
|
if( !cl ) return 0;
|
|
double x = lua_tonumber( L, 1 );
|
|
double y = lua_tonumber( L, 2 );
|
|
double z = 0.0;
|
|
if( nArgs == 3 ) z = lua_tonumber( L, 3 );
|
|
//log_error_np( LOG_OK, "LUA: l2c_movetodelta( %d, %d, %d ) [%d]\n", (int)x, (int)y, (int)z, nArgs );
|
|
cl->game_MoveToDelta( (int)x, (int)y, (int)z );
|
|
return 0;
|
|
}
|
|
|
|
int l2c_getSitRun( lua_State *L )
|
|
{
|
|
IL2Client *cl = L2C_func_getClient( L );
|
|
if( !cl )
|
|
{
|
|
lua_pushboolean( L, 0 );
|
|
lua_pushboolean( L, 1 );
|
|
return 2;
|
|
}
|
|
UserInfo *usr = cl->get_UserInfo();
|
|
lua_pushboolean( L, usr->isSitting );
|
|
lua_pushboolean( L, usr->isRunning );
|
|
return 2;
|
|
}
|
|
|
|
int l2c_sitStand( lua_State *L )
|
|
{
|
|
IL2Client *cl = L2C_func_getClient( L );
|
|
if( !cl ) return 0;
|
|
cl->game_SitStand();
|
|
return 0;
|
|
}
|
|
|
|
int l2c_runWalk( lua_State *L )
|
|
{
|
|
IL2Client *cl = L2C_func_getClient( L );
|
|
if( !cl ) return 0;
|
|
cl->game_RunWalk();
|
|
return 0;
|
|
}
|