Unreal Script код моддинга странная проблема

Я модифицировал эту игру под названием «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 > }

Я вызываю эту функцию здесь (возможно 2 способа):

Method A:
class'OLGFxMoviePlayer'.static.GetOLPC().StartNewGameAtCheckpoint("KillHero", false);
Method B:
Outer.GetOLPC().StartNewGameAtCheckpoint("KillHero", false);

В данный момент у меня есть одна странная проблема: строка «KillHero» по какой-то причине не попадает в эту функцию (оба метода), поэтому оператор if завершится ошибкой, поскольку «CheckpointStr» вообще не является «KillHero» !

Для тех, кто интересуется, откуда берется GetOLPC, он должен получить текущий playercontroller, и эта функция выглядит следующим образом:

function OLPlayerController GetOLPC(){
return OLPlayerController(GetPC());
//return ReturnValue;
}

И с помощью этой функции вы можете получить доступ к классу «OLPlayerController», который содержит «StartNewGameAtCheckpoint»

Я знаю, что это потому что, если я помещаю numbatteries и notifydifficultychange за пределами if, это работает нормально.

Технически это должно работать так же, как в другом месте игры:

Outer.consolecommand("camera freecam");

который также использует строку внутри, но это прекрасно работает.

Кто-нибудь знает в чем дело?

Спасибо

0

Решение

Ну … сейчас я чувствую себя очень глупо, ха-ха! Так как я занимался шестнадцатеричным моддингом игры, мне нужно было использовать 7A, который равен «EqualEqual_StringString», но я использовал FE, который равен «EqualEqual_NameName», это очень обманчиво, так как оба представляют «==» xD

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]