***付费内容***
C++源代码(武侠世界)
// 定义 LuaFnTbl 类中的 LuaFnGetWorldPos 函数,使用默认的调用约定
INT LuaFnGetWorldPos(Lua_State* L)
{
LUA_ENTER_FUNCTION // 宏,通常用于函数入口的初始化、异常处理或日志记录
// 从 Lua 栈中获取第一个参数并转换为 SceneID_t 类型
SceneID_t sceneId = Lua_ValueToNumber(L, 1); // 场景 ID
// 从 Lua 栈中获取第二个参数并转换为 ObjID_t 类型
ObjID_t selfId = Lua_ValueToNumber(L, 2); // 对象 ID
BEGINCHARCTERDEFINE("LuaFnGetWorldPos") // 宏,通常用于定义当前操作的角色对象 `pCharacter`,进行预处理
// 将角色的世界坐标 X 位置推送到 Lua 栈中
Lua_PushNumber(L, pCharacter->getWorldPos()->m_fX); // 角色的 X 坐标
// 将角色的世界坐标 Z 位置推送到 Lua 栈中
Lua_PushNumber(L, pCharacter->getWorldPos()->m_fZ); // 角色的 Z 坐标
return 2; // 返回 2,表示向 Lua 返回了两个值(X 和 Z 坐标)
ENDCHARCTERDEFINE // 宏,通常用于结束当前操作的角色定义,进行后处理
// 如果角色定义失败或发生错误,推送两个 -1 到 Lua 栈中
Lua_PushNumber(L, -1); // 错误时的 X 坐标占位符
Lua_PushNumber(L, -1); // 错误时的 Z 坐标占位符
return 2; // 返回 2,表示向 Lua 返回了两个值(错误占位符)
LUA_LEAVE_FUNCTION // 宏,通常用于函数出口的清理、异常处理或日志记录
// 如果在异常处理路径中,推送两个 -1 到 Lua 栈中
Lua_PushNumber(L, -1); // 异常时的 X 坐标占位符
Lua_PushNumber(L, -1); // 异常时的 Z 坐标占位符
return 2; // 返回 2,表示向 Lua 返回了两个值(异常占位符)
}
剩余 24% 内容需要支付 2.00
金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
|