我一直在修改这款名为" Outlast"这是基于虚幻引擎3.5已经有一段时间了,而且由于虚幻脚本基于C ++,我遇到了更多与C ++相关的问题:
我在游戏中调用需要字符串和布尔值的现有函数,这就是函数:
event StartNewGameAtCheckpoint(string CheckpointStr, bool bSaveToDisk){
local OLCheckpoint CheckCP, startCP;
local OLHero Hero;
local OLGame CurrentGame;
local OLEngine Engine;
// End:0x33
if(CheckpointStr == "KillHero") >>> this if is new code that I added myself
{
NumBatteries = 86;
NotifyDifficultyChanged();
return;
} ... more irrelevant code comes after this > }
我在这里调用该功能(可能有两种方式):
Method A:
class'OLGFxMoviePlayer'.static.GetOLPC().StartNewGameAtCheckpoint("KillHero", false);
Method B:
Outer.GetOLPC().StartNewGameAtCheckpoint("KillHero", false);
我现在有一个奇怪的问题," KillHero"由于某些原因(两种方法),字符串都没有进入该函数,因此if语句将失败,因为" CheckpointStr"不是" KillHero"根本不是!
对于想知道GetOLPC来自哪里的人来说,它是获得当前的播放器控制器,并且该功能是这样的:
function OLPlayerController GetOLPC(){
return OLPlayerController(GetPC());
//return ReturnValue;
}
通过此功能,您可以访问类" OLPlayerController"其中包含" StartNewGameAtCheckpoint"
我知道它是if if因为如果我放置了numbatteries并且如果它工作正常则无法解决。
它应该在技术上像游戏中的其他地方一样工作:
Outer.consolecommand("camera freecam");
也使用了一个字符串,但这样可以正常工作。
有谁知道错误是什么?
由于
答案 0 :(得分:0)