我有下面的代碼文本塊發送到用戶的遊戲控制檯(孤島危機戰爭):消息格式化南轅北轍
CMCCPlayer(player, "================================================================================================================");
CMCCPlayer(player, "$4#### ### ### ###### ####");
CMCCPlayer(player, "$4## ### ### ## ## ##");
CMCCPlayer(player, "$4## ### ### ## ##");
CMCCPlayer(player, "$4## ### ##### ###### ### ##");
CMCCPlayer(player, "$4## ### ### ## ##");
CMCCPlayer(player, "$4## ### ### ## ## ## ");
CMCCPlayer(player, "$4#### ### ### ###### ####");
CMCCPlayer(player, "================================================================================================================");
但我得到這樣的結果:
這個問題實際上困擾着Crysis Wars的開發者社區,而且現在還沒有真正的解決方案。代碼格式很好,如果我直接從C++執行它,而不是從Lua到C++,那麼這一定是Lua方面的問題。
我試着將消息計時到1ms,這導致一些消息丟失(可能是因爲最近的消息覆蓋了舊的消息)。 你們對這個問題有什麼建議或解決方案嗎?如果你提供了一個可行的解決方案,你會在Crysis Wars開發者社區中非常有名,因爲你可以解決一個非常煩人的bug。我會提供我的一些聲譽,但不幸的是我今天早上將獎金授予某人解決另一個問題。發送消息
功能代碼:
function CMCCPlayer(player, msg)
g_gameRules.game:SendConsoleMessage(player.id, g_gameRules.game:CentreTextForConsole(msg));
end
如果這能幫助什麼,這裏的C++ SendConsoleMessage代碼:
int CScriptBind_GameRules::SendConsoleMessage(IFunctionHandler *pH, ScriptHandle playerId, const char *msg)
{
CGameRules *pGameRules=GetGameRules(pH);
if (!pGameRules)
return pH->EndFunction();
int channelId=pGameRules->GetChannelId((EntityId)playerId.n);
pGameRules->SendTextMessage(eTextMessageConsole, msg, eRMI_ToClientChannel, channelId);
msg=0; //Null the message.
return pH->EndFunction();
}
編輯:
請注意,這不是用於居中的文本,而是下面的圖像和文本塊僅作爲示例提供;這個問題發生在每一段發送的代碼上。
我有這樣的問題,使用MFC文本小部件。看來MFC沒有對齊輸出。這可能是一樣的問題你有嗎? – andre
可能。如果是,請觀看這個空間! :) – cybermonkey
您可以粘貼(或鏈接到)CentreTextForConsole功能嗎? –