请选择 进入手机版 | 继续访问电脑版
查看: 246|回复: 4

[求助] UINode出了点问题qwq

[复制链接]

7

主题

20

回帖

15

积分

Lv.1 新手木匠

UID
7224146
小麦
1
金锭
55
下界之星
0
发表于 2023-2-28 18:03:03 | 显示全部楼层 |阅读模式 IP:河北
我的UINode脚本哪个大佬看看啊,没报错也不能用,甚至好多都是从示例照搬的qwq
from Preset.Model.PartBase import PartBase
from Preset.Model.GameObject import registerGenericClass


@registerGenericClass("UILogicPart")
class UILogicPart(PartBase):
   def __init__(self):
      PartBase.__init__(self)
      # 零件名称
      self.name = "空零件"
      self.ep = ""

   def InitClient(self):
      import mod.client.extraClientApi as clientApi
      ClientSystem = clientApi.GetSystem("Minecraft", "preset")

      """
      @description 客户端的零件对象初始化入口
      """
      PartBase.InitClient(self)
      self.DefineEvent('openUI1')
      self.ListenForEvent(clientApi.GetEngineNamespace(), clientApi.GetEngineSystemName(), "openUI1", self, self.UI1)

   def UI1(self, args):
      self.SetVisible(self.ep,True)

   def InitServer(self):
      import mod.server.extraServerApi as serverApi
      serverSystem = serverApi.GetSystem("Minecraft", "preset")
      serverSystem.ListenForEvent(serverApi.GetEngineNamespace(), serverApi.GetEngineSystemName(), "ServerChatEvent", self, self.OnServerChat)
      """
      @description 服务端的零件对象初始化入口
      """
      PartBase.InitServer(self)

   def OnServerChat(self, args):
      import mod.server.extraServerApi as serverApi
      playerId = args["playerId"]
      comp = serverApi.CreateComponent(playerId, "Minecraft", "item")
      if args["message"] == "核弹":
         self.NotifyToClient(playerId,"openUI1", args)

   def TickClient(self):
      """
      @description 客户端的零件对象逻辑驱动入口
      """
      PartBase.TickClient(self)

   def TickServer(self):
      """
      @description 服务端的零件对象逻辑驱动入口
      """
      PartBase.TickServer(self)

   def DestroyClient(self):
      """
      @description 客户端的零件对象销毁逻辑入口
      """
      PartBase.DestroyClient(self)

   def UnListenEvent(self):
      # 取消自定义的事件
      self.UnDefineEvent('openUI1')
   def DestroyServer(self):
      """
      @description 服务端的零件对象销毁逻辑入口
      """
      PartBase.DestroyServer(self)


13

主题

501

回帖

145

积分

Lv.4 怪物猎人

UID
7945930
小麦
0
金锭
422
下界之星
0
发表于 2023-3-1 17:28:03 | 显示全部楼层 IP:广东
你客户端监听函数写错了。前面那两个参数好像填的是self,我也记不太清楚了。你直接获取的是sdk监听系统事件的写法
如果是用一个零件中的服务端到客户端通信,你可以用下这个试试ListenSelfEvent,这个前两个参数是self,零件本身

7

主题

20

回帖

15

积分

Lv.1 新手木匠

UID
7224146
小麦
1
金锭
55
下界之星
0
 楼主| 发表于 2023-3-3 14:48:03 | 显示全部楼层 IP:河北
locgy 发表于 2023-3-1 17:28 广东
你客户端监听函数写错了。前面那两个参数好像填的是self,我也记不太清楚了。你直接获取的是sdk监听系统事 ...

emm,那个target参数写啥

7

主题

20

回帖

15

积分

Lv.1 新手木匠

UID
7224146
小麦
1
金锭
55
下界之星
0
 楼主| 发表于 2023-3-3 14:51:40 | 显示全部楼层 IP:河北
会了谢谢

7

主题

20

回帖

15

积分

Lv.1 新手木匠

UID
7224146
小麦
1
金锭
55
下界之星
0
 楼主| 发表于 2023-3-3 15:02:47 | 显示全部楼层 IP:河北
        def UI1(self, args):
                print "ok"
                self.SetUiActive(self.ep, True)
                self.SetUiVisible(self.ep,True)这print能打印了,但是告诉我SetUiActive有问题?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

返回顶部