我一直在尝试在 C++ 中为游戏服务器 DLL 创建一个函数,该函数在将新字符串返回到 Lua 进行处理之前将给定的文本对齐到中心。我花了很多时间查看各个站点上的示例,但只能找到“cout”,它会在控制台应用程序中打印它,我不希望它这样做。
我是 C++ 新手,我真的很困惑如何处理这个问题。如果有人能够提供一个例子并解释它是如何工作的,我将能够学习如何在未来做到这一点。
基本上,它这样做:
- 将我们的字符串从 Lua 转发到 C++。
- C++ 将我们刚刚转发的字符串居中。
- 将完成的字符串返回给 Lua。
这是我一直在尝试做的一个示例:
int CScriptBind_GameRules::CentreTextForConsole(IFunctionHandler *pH, const char *input)
{
if (input)
{
int l=strlen(input);
int pos=(int)((113-l)/2);
for(int i=0;i<pos;i++)
std::cout<<" ";
std::cout<<input;
return pH->EndFunction(input);
}
else
{
CryLog("[System] Error in CScriptBind_GameRules::CentreTextForConsole: Failed to align");
return pH->EndFunction();
}
return pH->EndFunction();
}
哪个构建但它将文本打印到控制台,而不是转发回完整的字符串。