KLTalkBtnPanel.lua 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. ---@class KLTalkBtnPanel:UIKmlLuaPanelBase
  2. ---@field view KLTalkBtnPanelView
  3. local KLTalkBtnPanel = class(UIKmlLuaPanelBase)
  4. local this = KLTalkBtnPanel
  5. ---创建时调用一次
  6. function this:Init()
  7. GUI:SetActive(self.view.TalkPanel,false)
  8. end
  9. ---创建或者刷新界面数据时调用
  10. function this:Refresh()
  11. SL:RegisterLUAEvent(LUA_EVENT_NPC_ARRIVE_NEAR,this.LUA_EVENT_NPC_ARRIVE_NEAR,self)
  12. SL:RegisterLUAEvent(LUA_EVENT_NPC_LEAVE_NEAR,this.LUA_EVENT_NPC_LEAVE_NEAR,self)
  13. SL:RegisterLUAEvent(LUA_EVENT_MAPINFOCHANGE,this.LUA_EVENT_NPC_LEAVE_NEAR,self)
  14. end
  15. ---注册UI事件和服务器消息
  16. function this:RegistEvents()
  17. GUI:AddOnClickEvent(self.view.TalkBtn, self, function()
  18. SL:TalkToNpc(self.args.cfgid)
  19. end)
  20. end
  21. function this.CloseBtn()
  22. end
  23. function this:Close()
  24. SL:UnRegisterLUAEvent(LUA_EVENT_NPC_ARRIVE_NEAR,this.LUA_EVENT_NPC_ARRIVE_NEAR)
  25. SL:UnRegisterLUAEvent(LUA_EVENT_NPC_LEAVE_NEAR,this.LUA_EVENT_NPC_LEAVE_NEAR)
  26. end
  27. function this:LUA_EVENT_NPC_ARRIVE_NEAR(_,message)
  28. GUI:SetActive(self.view.TalkPanel,true)
  29. self.args=message
  30. end
  31. function this:LUA_EVENT_NPC_LEAVE_NEAR()
  32. GUI:SetActive(self.view.TalkPanel,false)
  33. end
  34. return this