0

我正在尝试创建一个 cydia 调整来改变游戏中的一些方法

但我总是收到这个错误

control reaches end of non-void function

这是我的 Tweak.xm 中的代码(我将它们缩短到发生错误的位置)

 %hook Player



 -(void)Jump:(int)jump {

        if ((Upgrade = YES)) {

            jump = 1;

            %orig(jump); 

                            }

        else {

            %orig;

             }

    }
    -(int)GetSkill {

        if ((Upgrade = YES)) {

            return 1;

                             }

        else {

            %orig;

             }

    }

    %end

    %hook MainLayer

    -(int)GetSkill:(int)skill {
        if ((Upgrade = YES)) {

            skill = 1;

            %orig(skill);

                             }
        else {

            %orig;


             }

    }

    %end

我不知道为什么代码块不起作用。对于那个很抱歉

请在这里帮助我,虽然这是一个警告即使我在警报中单击否,代码似乎仍然会改变游戏

4

2 回答 2

1

您的函数-(int)GetSkill:(int)skill 具有int指定的返回类型,但您没有return声明。(void)如果它不打算返回任何东西,那就让它成为一个

如果您有一个returnif 语句内部,则必须至少有 1 个 returnifelse部分才能始终返回,如果没有,它会给你那个警告

旁注:此语句if ((Upgrade = YES))将始终正确,因为它是分配Upgrade而不是进行比较,您可能希望将其更改为if ((Upgrade == YES))

于 2013-02-25T14:49:02.537 回答
0

我没有使用 Theos 的经验,也没有应用程序调整。

话虽如此,我建议您使用return %orig;而不是%orig;.

于 2013-02-25T15:01:24.197 回答