Ph-苯
本帖最后由 Ph-苯 于 2021-8-2 22:10 编辑

在不修改客户端、仅修改服务端的前提下,我想让玩家在满足某条件的情况下才能拉弓射箭,于是我注册了UseItemCallback并在其中某if分支返回TypedActionResult.fail,以取消使用物品。
但是,这样会让客户端仍然继续拉弓,并在玩家松开鼠标时在客户端消耗1支箭,造成客户端和服务端物品不同步。
请问,如何让服务端取消使用物品时,客户端也能跟着取消使用物品?

msls1441
你失败的原因很简单,因为客户端的ActionResult没有改变,客户端理所当然的要消失一根箭
仅修改服务端是不可能的,因为mojang让客户端也拥有了服务端的类,客户端完全可以无视服务端执行一些动作

Ph-苯
msls1441 发表于 2021-8-1 15:47
你失败的原因很简单,因为客户端的ActionResult没有改变,客户端理所当然的要消失一根箭
仅修改服务端是不 ...

我知道的,所以我来是想问问有没有S2C包可以改变客户端的ActionResult

msls1441
Ph-苯 发表于 2021-8-1 18:32
我知道的,所以我来是想问问有没有S2C包可以改变客户端的ActionResult

你想没想过这么做的前提是客户端有做出操作的东西?
mojang和fabric都没有理由做出这种东西来
乖乖的让双端都有mod吧

Ph-苯
msls1441 发表于 2021-8-1 23:13
你想没想过这么做的前提是客户端有做出操作的东西?
mojang和fabric都没有理由做出这种东西来
乖乖的让双 ...

那……bukkit和paper端有这种东西吗?

msls1441
Ph-苯 发表于 2021-8-2 13:31
那……bukkit和paper端有这种东西吗?

泻药,没写过,更没遇到过哪个服务器不需要客户端mod的配合就能够做到这个,你可以去找一下
另外,paper不是只是在基础上优化吗,为什么会有新东西

Ph-苯
msls1441 发表于 2021-8-2 15:43
泻药,没写过,更没遇到过哪个服务器不需要客户端mod的配合就能够做到这个,你可以去找一下
另外,paper ...

呃,因为我不了解所以才问问,谢谢回答。

第一页 上一页 下一页 最后一页