虚幻脚本代码修改奇怪的问题

时间:2016-03-31 17:33:25

标签: c++ unrealscript

我一直在修改这款名为" 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");

也使用了一个字符串,但这样可以正常工作。

有谁知道错误是什么?

由于

1 个答案:

答案 0 :(得分:0)

好吧......我现在觉得自己很傻哈哈!由于我是十六进制修改游戏,我需要使用7A,即#34; EqualEqual_StringString"但是我使用了FE,它是" EqualEqual_NameName"它非常具有欺骗性,因为它们代表" =="的xD