Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 JIT会保护我的dicenumber变量不被操纵吗?_Actionscript 3_Flash_Jit_Avm2 - Fatal编程技术网

Actionscript 3 JIT会保护我的dicenumber变量不被操纵吗?

Actionscript 3 JIT会保护我的dicenumber变量不被操纵吗?,actionscript-3,flash,jit,avm2,Actionscript 3,Flash,Jit,Avm2,我正在制作一个类似于“垄断”的基本游戏。您必须掷骰子并移动骰子掷出的位置数(1-6) 代码示例如下所示: public function RollDice() : int { return randRange(1, 6); } private function randRange(param1:int, param2:int) : int { return Math.floor(Math.random() * (param2 - param1 + 1)) + param1; }

我正在制作一个类似于“垄断”的基本游戏。您必须掷骰子并移动骰子掷出的位置数(1-6)

代码示例如下所示:

public function RollDice() : int
{
    return randRange(1, 6);
}

private function randRange(param1:int, param2:int) : int
{
    return Math.floor(Math.random() * (param2 - param1 + 1)) + param1;
}
但我担心这段代码是否足够安全,可以防止一些可能的操纵(例如使用作弊引擎更改滚动的数字)。实际上,我曾尝试“破解”我的游戏,但只成功地更改了randRange函数的数字,因此我可以掷骰子,比如说,一个特定的数字或一个较短的数字范围。但我只能在玩游戏之前这样做(在游戏中按开始按钮)。当我再次尝试更改这些值时,什么都没有改变(好吧,我不是什么黑客…)

我做了一些研究,发现Actionscript虚拟机的JIT编译器可能是我失败的罪魁祸首,因为它将我的游戏(SWF)编译成在CPU上运行的机器代码。据我所知,JIT编译器直到第一次运行时才编译函数,但一旦编译完成,该函数的SWF字节码就再也不会被访问

现在的问题是:在使用诸如作弊引擎之类的程序调用函数后,有没有办法更改掷骰子的数量

现在的问题是:在使用诸如作弊引擎之类的程序调用函数后,有没有办法更改掷骰子的数量

对。 作为一项规则:如果它是clientside,您可以访问它,从而操纵它

如果你真的担心人们作弊,你所能做的就是让他们更难,但作弊永远是可能的


如果你真的想避免它,那就把它放在服务器端

简而言之,不是。基本上,内存中的每个值都可以访问和操作。