所以,我正在尝试为Minecraft版本1.10制作一个被黑客入侵的客户端(仅仅是为了学习Java),但是我已经遇到了一些障碍。我已经能够制作许多不同类型的黑客,如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+时,在激活黑客攻击时没有改变游戏玩法。尝试2和3时,玩家的移动增加了,但这是一个指数(可能不是正确的单词)增加,我无法限制。这些都不是预期的效果,而且由于极端的世界代滞后(由于速度),我似乎无法获得任何类型的工作代码而不会导致游戏崩溃。
提前感谢您的帮助!
P.S。对不起,长篇文章
答案 0 :(得分:0)
@Override
public void onUpdate() {
if((mc.thePlayer.moveForward != 0 || mc.thePlayer.moveStrafing != 0)
&& !mc.thePlayer.isSneaking() && mc.thePlayer.onGround) {
mc.thePlayer.jump();
mc.thePlayer.motionX *= 1.4;
mc.thePlayer.motionY *= 0.4;
mc.thePlayer.motionZ *= 1.4;
}
}
此代码将检查玩家是否在地面上,移动并且不会偷偷摸摸然后将其速度提高1.4倍默认值并且y轴将被改变以使它们跳跃但也允许它们增加他们的速度更快,因为他们不会长时间在空中。这也可以作为一些不良反应的旁路。
对于较新版本(1.11+),请使用播放器而不是播放器