Kyokuki
想做一个随机传送,但是遇到一个问题,怎么才能保证玩家能准确传送到地面而不是某个矿洞里呢(或者直接卡墙里了haha)
试过吧Y设置到100,但是我感觉很傻,且会影响到我写的其他功能
大佬有什么好的提议吗

火星浮云
先随机x和z坐标,然后y坐标从255向下遍历,直到碰到第一个实体方块为止?

Kyokuki
火星浮云 发表于 2019-3-24 09:01
先随机x和z坐标,然后y坐标从255向下遍历,直到碰到第一个实体方块为止?

我也是这么想的但是我是会吧一整个服务器的玩家都做同样的操作,会不会直接爆炸hahah

skyliye
残雪、 发表于 2019-3-24 09:07
我也是这么想的但是我是会吧一整个服务器的玩家都做同样的操作,会不会直接爆炸hahah ...

可以设置一个冷却时间比如1分钟左右,另外可以设置每次传送需要一定量的金币,服务器玩家数量较大时有必要设置世界边界并预加载地图,地狱和末地不建议开启传送

GiNYAi
本帖最后由 GiNYAi 于 2019-3-24 11:58 编辑

Bukkit:

World#getHighestBlockAt

Sponge:
Extent#getHighestPositionAt
Sponge.getTeleportHelper().getSafeLocation();

William_Shi
wetsponge方便,bukkit是世界名.getHighestBlockAt(某个Location);

Kyokuki
GiNYAi 发表于 2019-3-24 11:53
Bukkit:

World#getHighestBlockAt

要的就是这个,谢谢:)

GameCreator
残雪、 发表于 2019-3-25 07:24
要的就是这个,谢谢:)

这个方法底层用的也是从上往下遍历方块. 对于这种简单的功能来说你所担心的多个玩家同时使用会大量消耗资源是完全不存在的. 你可以监听一下移动事件或是 MOD 的GUI渲染事件, 都是每秒十数次乃至数十次调用. 相比之下你这点计算是比较简单的了.....

在 bukkit 开发中只要不涉及 IO, 你可以基本上可以随心所欲, 不用担心性能消耗问题. 因为仅仅一个登录插件带来的消耗就远远超过你所说的了.

Kyokuki
GameCreator 发表于 2019-3-25 07:53
这个方法底层用的也是从上往下遍历方块. 对于这种简单的功能来说你所担心的多个玩家同时使用会大量消耗资 ...

谢谢讲解

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