NativeDB 库 - 获取3D坐标中Z轴的地面位置 (已弃用 新版地址:https://nativedb.aoe.top/RDR2/)

3DM MOD站/ 荒野大镖客2/ NativeDB/ GAMEPLAY

主要内容

更新时间:2020-01-14 11:38:10
更新用户:◕小莫◕
编辑
  • 大概含义
    获取3D坐标中Z轴的地面位置

  • 函数名称
    GET_GROUND_Z_FOR_3D_COORD
  • 代码格式
    GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(float x, float y, float z, float* groundZ, BOOL unk)

  • 返回类型
    BOOL

  • Hash值
    0x24FA4267BB8D2431

  • 传递参数
    float x, float y, float z, float* groundZ, BOOL unk

详细说明

获取坐标轴中的Z轴在地面的位置,一般在传送时使用,防止传送到地底或者高空,但仅在距离较短的时候有效; 如果找到返回true,未找到则返回false;
同时返回找到的Z轴坐标groundZ
下面示例是传送到目标点的示例

代码示例

Vector3 coords = RADAR::GET_WAYPOINT_COORDS_3D();	//获取地图标记点的3D坐标
if (!GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(coords.x, coords.y, 100.0, &coords.z, FALSE))	//如果没有获取到地图标记点的Z轴坐标
{
	static const float groundCheckHeight[] = {	//检测高度
		100.0, 150.0, 50.0, 0.0, 200.0, 250.0, 300.0, 350.0, 400.0,
		450.0, 500.0, 550.0, 600.0, 650.0, 700.0, 750.0, 800.0
	};
	for each (float height in groundCheckHeight)
	{
		ENTITY::SET_ENTITY_COORDS_NO_OFFSET(e, coords.x, coords.y, height, 0, 0, 1);	//设置实体无延迟
		WaitAndDraw(100);	//等待0.1秒
		if (GAMEPLAY::GET_GROUND_Z_FOR_3D_COORD(coords.x, coords.y, height, &coords.z, FALSE))	//如果获取到了Z轴坐标
		{
			coords.z += 3.0;	//Z坐标+3.0
			break;	//跳出循环
		}
	}
}
ENTITY::SET_ENTITY_COORDS(e, coords.x, coords.y, coords.z, 0, 0, 1, FALSE);	//将玩家传送到标记点

更新记录

  • 1.0|初始发布
  • 1.1|由◕小莫◕于2020-01-14 11:33:41编辑
  • 1.2|由◕小莫◕于2020-01-14 11:38:10编辑
会员登录
自动登录   |    忘记密码 新会员注册