【发布时间】:2016-11-24 23:11:08
【问题描述】:
所以,我正在尝试为 Minecraft 1.10 版制作一个被黑的客户端(只是为了学习 Java),但我遇到了一些障碍。我已经能够制作许多不同类型的 hack,例如 KillAura、Nuker 等,但我似乎无法弄清楚如何提高玩家的移动速度。同样,我这样做只是为了学习 Java 并了解 Minecraft 是如何工作的。这是我迄今为止尝试过的(所有对 mc 的引用都是Minecraft.getMinecraft()):
尝试 1:
public void onUpdate() {
if (!this.getState()) return;
if (mc.thePlayer.moveForward > 0.0F) {
mc.thePlayer.moveForward = 20F;
}
}
尝试 2(有些成功,但不需要指数级速度增加):
public void onUpdate() {
if (!this.getState()) return;
if (mc.thePlayer.moveForward > 0.0F) {
mc.thePlayer.motionX *= 2;
mc.thePlayer.motionZ *= 2;
}
}
尝试 3:
public void onUpdate() {
if (!this.getState()) return;
if (mc.thePlayer.moveForward > 0.0F && mc.thePlayer.moveForward < 10F) {
mc.thePlayer.motionX *= 2;
mc.thePlayer.motionZ *= 2;
}
}
尝试 4+ 都是 YouTube 上 Minecraft 1.8 的不同教程,我尝试适应 1.10(如果需要,我会更新不同教程的链接)
更新 代码中没有错误,没有创建堆栈跟踪,我只是没有得到想要的效果。在尝试 1 和尝试 4+ 时,激活 hack 时没有改变游戏玩法。通过尝试 2 和 3,玩家的移动增加了,但这是我无法限制的指数(可能不是正确的词)增加。这些都不是预期的效果,而且由于极端的世界生成滞后(由于速度),我似乎无法获得任何类型的工作代码而不会导致游戏崩溃。
提前感谢您的帮助!
附:抱歉发了这么长的帖子
【问题讨论】:
-
有什么问题?你有什么错误吗?
-
我们无法使用该信息重现您的问题。也许你应该阅读How to create a Minimal, Complete, and Verifiable example
-
mc.thePlayer.motionX 在移动时的初始值是多少?例如,如果这是 1.0,您只需执行
if (mc.thePlayer.motionX == 1.0) mc.thePlayer.motionX = 2;即可将速度提高一倍。 -
@jimmycarr 默认值取决于玩家在做什么,而代码又密密麻麻,以至于玩家前进时我看不懂是什么。