查看: 919|回复: 3
打印 上一主题 下一主题

[求助] 在联机客户端监听到事件时,加入了游戏的主机都会监听到该事件

[复制链接]

6

主题

5

回帖

9

积分

Lv.1 新手木匠

UID
7839539
小麦
0
金锭
50
下界之星
0
跳转到指定楼层
楼主
发表于 2020-8-15 23:33:37 来自手机 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 IP:浙江
我使用的联机方式如下:
我开启了两个游戏,这里称A和B吧
A游戏通过mc studio的开发测试功能直接创建好地图并加载好组件
B游戏通过mod pc开发包的好友选项,进入A的游戏
我在客户端的监听中,监听了玩家捡起掉落物的事件,也就是ActorAcquiredItemServerEvent事件,随后在该事件的回调函数中输出了获得物品的玩家实体id和捡起的物品identifier
开启了两个客户端后会出现两个脚本测试日志,分别对应A游戏和B游戏
这之后某些奇怪的事情出现了
在A游戏里捡起一个物品后(例如捡起一个红石),A游戏的脚本测试日志正常的输出了A游戏内玩家的实体id以及红石的物品identifier
但是同时B游戏的脚本测试日志内也出现了B游戏内玩家的实体id以及红石的物品identifier
问题是B根本就没有捡起东西,只是因为A捡起了物品,B就同样认为B内的玩家也捡到了物品,并且B的脚本测试日志中显示捡起物品的玩家实体id是B中的玩家,被捡起的物品同样是红石
我希望知道这是怎么回事,当然,这也有可能是因为我用一个台电脑开了两个游戏导致的(可能上述两种启动游戏的方法调用的是一个游戏的文件,两个游戏用同一个游戏的文件导致出现了某些问题)
如果是因为我用一台电脑开了两个游戏导致的,那只要确定这一点就够了
感谢各位大神!
而如果不是因为这个原因,我希望得到具体的解答
在服务端没有出现这种情况,这肯定是由于加入游戏的主机不会加载服务端的组件

2

主题

40

回帖

13

积分

Lv.1 新手木匠

UID
6899770
小麦
0
金锭
186
下界之星
0
沙发
发表于 2020-8-16 09:42:31 | 只看该作者 IP:福建
?ActorAcquiredItemServerEvent是服务的的事件啊

2

主题

40

回帖

13

积分

Lv.1 新手木匠

UID
6899770
小麦
0
金锭
186
下界之星
0
板凳
发表于 2020-8-16 09:46:53 | 只看该作者 IP:福建
看错了,客户端也有,但是这是只要有一个玩家触发就会执行的事件啊,你要判断actor是否等于clientApi.GetLocalPlayerId()

6

主题

5

回帖

9

积分

Lv.1 新手木匠

UID
7839539
小麦
0
金锭
50
下界之星
0
地板
 楼主| 发表于 2020-8-16 16:22:51 来自手机 | 只看该作者 IP:浙江
好像确实打错了,打成了服务端的事件,但是为什么会出现这种只要有一个玩家触发,所有的客户端都会触发的事件呢,这是什么原理我蛮好奇的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部