查看: 2207|回复: 10
打印 上一主题 下一主题

[求助] 如何实现“坐”?

[复制链接]

3

主题

8

回帖

6

积分

Lv.1 新手木匠

UID
8587983
小麦
0
金锭
7
下界之星
0
跳转到指定楼层
楼主
发表于 2021-7-30 01:28:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 IP:广东
想要给椅子实现坐的功能,但是没琢磨明白有大佬提供一下思路吗?以及涉及的一些接口。
具体说下想要的效果:玩家点击椅子,就会坐上去(此时不能移动),现在玩家模型为坐的姿态,当玩家跳跃时离开椅子。

22

主题

317

回帖

174

积分

Lv.4 怪物猎人

UID
373726
小麦
3
金锭
608
下界之星
0

开发者认证勋章

沙发
发表于 2021-7-30 03:44:07 | 只看该作者 IP:山西
你的椅子是方块还是生物?如果是生物的话,参考原版骷髅马的行为,有个minecraft:rideable。如果是方块的话,你就得创建一个无敌的隐形生物和你的方块叠在一起,隐形生物和方块共存亡。如果隐形生物没了,就再创建一个,隐形生物要是检测到自己不在椅子方块里面就摧毁自己,然后检测到玩家点击椅子,就用SetRiderRideEntity让玩家坐在实体上。
还有更麻烦的方法,就是注册脚本驱动节点,给玩家添加动画控制器,然后玩家点击椅子就把玩家移动速度设为0,然后再触发玩家的坐下动画,这样玩家就被固定在椅子上并呈现坐的姿态了,离开椅子可以检测按跳跃键然后把移动速度恢复,再关闭玩家的坐下动画

22

主题

317

回帖

174

积分

Lv.4 怪物猎人

UID
373726
小麦
3
金锭
608
下界之星
0

开发者认证勋章

板凳
发表于 2021-7-30 03:50:35 | 只看该作者 IP:山西
如果要使用第二种方法(不需要生物),禁止玩家移动可以采用客户端SetCanMove不响应移动,循环设置向量为0等方式实现,还是不要修改玩家移动速度了,因为这个会存档,所以你还得在玩家离开时把他的移动速度恢复,不然玩家卸载掉你的mod后,如果当时坐在椅子上,那他再进游戏就动不了了,就像某些贝爷生存一样,玩家卸载了mod血量还是三颗星。

3

主题

8

回帖

6

积分

Lv.1 新手木匠

UID
8587983
小麦
0
金锭
7
下界之星
0
地板
 楼主| 发表于 2021-7-30 15:21:44 | 只看该作者 IP:广东
sevenstars 发表于 2021-7-30 03:44
你的椅子是方块还是生物?如果是生物的话,参考原版骷髅马的行为,有个minecraft:rideable。如果是方块的话 ...

非常感谢!我的椅子是方块的,现在有个疑问:“如果隐形生物没了,就再创建一个”,我应该怎么判断椅子坐标上有没有生物呢?

3

主题

8

回帖

6

积分

Lv.1 新手木匠

UID
8587983
小麦
0
金锭
7
下界之星
0
地下室
 楼主| 发表于 2021-7-31 17:19:09 | 只看该作者 IP:广东
贰柒2700 发表于 2021-7-30 15:21
非常感谢!我的椅子是方块的,现在有个疑问:“如果隐形生物没了,就再创建一个”,我应该怎么判断椅子坐 ...

已解决

27

主题

54

回帖

48

积分

Lv.2 石器学徒

UID
8155379
小麦
0
金锭
206
下界之星
0
6
发表于 2021-8-1 00:38:00 来自手机 | 只看该作者 IP:浙江
请问你是怎么解决的

3

主题

8

回帖

6

积分

Lv.1 新手木匠

UID
8587983
小麦
0
金锭
7
下界之星
0
7
 楼主| 发表于 2021-8-1 01:29:42 来自手机 | 只看该作者 IP:广东
ks小白小桂圆 发表于 2021-8-1 00:38
请问你是怎么解决的

先是用tryplaceblockevent事件,当玩家放置方块时,同时在该位置生成隐形实体。

用GetEngineActor获取所有实体,再根据实体的id用getpos获取他们的坐标,遍历判断每个实体的位置是否和我这个方块重合(我这里实体要比方块高一格的)
如果重合,就让玩家骑上去。

如果隐形实体被移除了,我是通过重新放置该方块或者用木棍点击来重新生成隐形实体。

接着用EntityTickServerEvent获取隐形实体的位置,判断该位置方块是否为椅子,如果不是就移除该实体。

27

主题

54

回帖

48

积分

Lv.2 石器学徒

UID
8155379
小麦
0
金锭
206
下界之星
0
8
发表于 2021-8-1 21:26:47 来自手机 | 只看该作者 IP:浙江
哦哦,谢谢

3

主题

9

回帖

6

积分

Lv.1 新手木匠

UID
8549331
小麦
0
金锭
19
下界之星
0
9
发表于 2021-8-2 13:34:25 来自手机 | 只看该作者 IP:浙江
大佬,知道【您的账号目前无法提审组件】是什么原因吗,怎么解决,知道的话劳烦你帮下忙,急死了,上个月底就开始这样了,这个月也还是这样,反馈给官方也收不到答复

3

主题

8

回帖

6

积分

Lv.1 新手木匠

UID
8587983
小麦
0
金锭
7
下界之星
0
10
 楼主| 发表于 2021-8-2 16:54:28 来自手机 | 只看该作者 IP:广东
给施工队施工 发表于 2021-8-2 13:34
大佬,知道【您的账号目前无法提审组件】是什么原因吗,怎么解决,知道的话劳烦你帮下忙,急死了,上个月底 ...

加QQ群没,私聊一下大喜或者水母

3

主题

9

回帖

6

积分

Lv.1 新手木匠

UID
8549331
小麦
0
金锭
19
下界之星
0
11
发表于 2021-8-2 19:07:41 来自手机 | 只看该作者 IP:浙江
qq群?不知道有群呢,能发一下吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部