MetaValueSetDef.lua 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. local GuideEventConfig = require("config/GuideEventConfig.lua")
  2. local MetaValueSetDef = {
  3. -- 设置当前邮件ID param1=邮件ID
  4. ["MAIL_CURRENT_ID"] = function(param1)
  5. local MailProxy = global.Facade:retrieveProxy(global.ProxyTable.MailProxy)
  6. MailProxy:setCurMailId(param1)
  7. end,
  8. -- 设置当前选中的背包页
  9. ["BAG_PAGE_CUR"] = function(param1)
  10. local BagProxy = global.Facade:retrieveProxy(global.ProxyTable.Bag)
  11. BagProxy:SetCurPage(param1)
  12. end,
  13. -- 设置当前选中的背包页
  14. ["STORGE_PAGE_CUR"] = function(param1)
  15. local NPCStorageProxy = global.Facade:retrieveProxy(global.ProxyTable.NPCStorageProxy)
  16. NPCStorageProxy:SetStoragePageIndex(param1)
  17. end,
  18. ["GAME_DATA"] = function(key, value)
  19. global.ConstantConfig[key] = value
  20. end,
  21. -- 切换聊天频道接收状态 param1=聊天频道
  22. ["CHAT_CHANNEL_RECEIVIND"] = function(param1, param2)
  23. local ChatProxy = global.Facade:retrieveProxy(global.ProxyTable.Chat)
  24. local isReceiving = ChatProxy:isReceiving(param1)
  25. if type(param2) == "boolean" then
  26. ChatProxy:setReceiving(param1, param2)
  27. else
  28. ChatProxy:setReceiving(param1, not isReceiving)
  29. end
  30. end,
  31. -- 当前聊天频道
  32. ["CUR_CHAT_CHANNEL"] = function(param1)
  33. local ChatProxy = global.Facade:retrieveProxy(global.ProxyTable.Chat)
  34. ChatProxy:setChannel(param1)
  35. end,
  36. --
  37. -- 设置的数据 param1=设置ID param2=设置值 table
  38. ["SETTING_VALUE"] = function(param1, param2)
  39. CHANGE_SETTING(param1, param2)
  40. end,
  41. -- 设置捡物品数据 param1=设置ID param2=值
  42. ["SETTING_PICK_VALUE"] = function(param1, param2)
  43. CHANGE_SETTING_PICK(param1, param2)
  44. end,
  45. -- 设置捡物品 组 数据 param1=设置ID param2=值
  46. ["SETTING_PICK_GROUP_VALUE"] = function(param1, param2)
  47. CHANGE_GROUPSETTING_PICK(param1, param2)
  48. end,
  49. --设置 排序的设置相关数据(param1: ID, param2: data)
  50. ["SETTING_RANK_DATA"] = function(param1, param2)
  51. local GameSettingProxy = global.Facade:retrieveProxy(global.ProxyTable.GameSettingProxy)
  52. return GameSettingProxy:setRankData(param1, param2)
  53. end,
  54. --设置boss提示类型
  55. ["BOSS_REMIND_TYPE"] = function(param1)
  56. local GameSettingProxy = global.Facade:retrieveProxy(global.ProxyTable.GameSettingProxy)
  57. return GameSettingProxy:SetBossType(param1)
  58. end,
  59. --设置boss提示值
  60. ["BOS_REMIND_VALUE"] = function(param1)
  61. local GameSettingProxy = global.Facade:retrieveProxy(global.ProxyTable.GameSettingProxy)
  62. GameSettingProxy:SetBossTipsValues(param1)
  63. end,
  64. ---角色面板时装显示开关
  65. ["SUPEREQUIP_SHOW"] = function(param1)
  66. local PlayerProperty = global.Facade:retrieveProxy(global.ProxyTable.PlayerProperty)
  67. return PlayerProperty:SetShowSetting(param1)
  68. end,
  69. --技能快捷键
  70. ["SKILL_KEY"] = function(param1, param2)
  71. local SkillProxy = global.Facade:retrieveProxy(global.ProxyTable.Skill)
  72. return SkillProxy:SetSkillKey(param1, param2)
  73. end,
  74. --是否点击了英雄守护按钮
  75. ["HERO_GUARD_ISCLICK"] = function(param1)
  76. local HeroPropertyProxy = global.Facade:retrieveProxy(global.ProxyTable.HeroPropertyProxy)
  77. return HeroPropertyProxy:setGuardBtnState(param1)
  78. end,
  79. --英雄激活的状态
  80. ["HERO_ACTIVES_STATES"] = function(param1)
  81. local HeroPropertyProxy = global.Facade:retrieveProxy(global.ProxyTable.HeroPropertyProxy)
  82. return HeroPropertyProxy:setStates(param1)
  83. end,
  84. --英雄设置技能快捷键
  85. ["H.SKILL_KEY"] = function(param1, param2)
  86. local HeroSkillProxy = global.Facade:retrieveProxy(global.ProxyTable.HeroSkillProxy)
  87. return HeroSkillProxy:SetSkillKey(param1, param2)
  88. end,
  89. ---英雄面板时装显示开关
  90. ["HERO_SUPEREQUIP_SHOW"] = function(param1)
  91. local HeroPropertyProxy = global.Facade:retrieveProxy(global.ProxyTable.HeroPropertyProxy)
  92. return HeroPropertyProxy:SetShowSetting(param1)
  93. end,
  94. --合成打开的id
  95. ["COMPOUND_OPEN_ID"] = function(param1)
  96. local ItemCompoundProxy = global.Facade:retrieveProxy(global.ProxyTable.ItemCompoundProxy)
  97. ItemCompoundProxy:SetOnCompoundIndex(param1)
  98. end,
  99. -- 开始自动挂机
  100. ["BATTLE_AFK_BEGIN"] = function()
  101. local AutoProxy = global.Facade:retrieveProxy(global.ProxyTable.Auto)
  102. if AutoProxy:IsAFKState() then
  103. return
  104. end
  105. LuaSendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 1)
  106. global.Facade:sendNotification(global.NoticeTable.AFKBegin)
  107. end,
  108. -- 结束自动挂机
  109. ["BATTLE_AFK_END"] = function()
  110. LuaSendMsg(global.MsgType.MSG_CS_AUTOPLAYGAME_REQUEST, 2)
  111. global.Facade:sendNotification(global.NoticeTable.AFKEnd)
  112. end,
  113. -- 开始自动捡物
  114. ["BATTLE_PICK_BEGIN"] = function()
  115. global.Facade:sendNotification(global.NoticeTable.AutoPickBegin)
  116. end,
  117. -- 结束自动捡物
  118. ["BATTLE_PICK_END"] = function()
  119. global.Facade:sendNotification(global.NoticeTable.AutoPickEnd)
  120. end,
  121. -- 开始自动寻路
  122. ["BATTLE_MOVE_BEGIN"] = function(mapID, mapX, mapY, target, type)
  123. local movePos = {
  124. mapID = mapID,
  125. x = mapX,
  126. y = mapY,
  127. autoMoveType = type or global.MMO.AUTO_MOVE_TYPE_MINIMAP
  128. }
  129. global.Facade:sendNotification(global.NoticeTable.AutoMoveBegin, movePos)
  130. -- auto target
  131. if target then
  132. local targetType = target.type == 0 and global.MMO.ACTOR_MONSTER or global.MMO.ACTOR_NPC
  133. local targetIndex = target.index
  134. local moveType = global.MMO.AUTO_MOVE_TYPE_TARGET
  135. local autoTarget =
  136. {
  137. x = mapX,
  138. y = mapY,
  139. mapID = mapID,
  140. targetType = targetType,
  141. targetIndex = targetIndex,
  142. priority = global.MMO.INPUT_PRIORITY_USER,
  143. autoMoveType = moveType
  144. }
  145. local AutoProxy = global.Facade:retrieveProxy(global.ProxyTable.Auto)
  146. AutoProxy:SetAutoTarget(autoTarget)
  147. end
  148. end,
  149. -- 结束自动寻路
  150. ["BATTLE_MOVE_END"] = function()
  151. global.Facade:sendNotification(global.NoticeTable.AutoMoveEnd)
  152. end,
  153. -- 选择目标ID
  154. ["SELECT_TARGET_ID"] = function(targetID)
  155. local PlayerInputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
  156. return PlayerInputProxy:SetTargetID(targetID)
  157. end,
  158. -- PC持续攻击目标
  159. ["SELECT_SHIFT_ATTACK_ID"] = function(attachID)
  160. local PlayerInputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
  161. return PlayerInputProxy:SetAttackTargetID(attachID)
  162. end,
  163. -- 设置战斗状态
  164. ["ATTACK_STATE"] = function(state)
  165. local PlayerInputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
  166. PlayerInputProxy:SetAttackState(state)
  167. end,
  168. -- 设置转向方向
  169. ["TURN_DIR"] = function(dir)
  170. local PlayerInputProxy = global.Facade:retrieveProxy(global.ProxyTable.PlayerInputProxy)
  171. PlayerInputProxy:SetMouseTurnDir(dir)
  172. end,
  173. -- 设置功能菜单参数
  174. ["FUNCDOCK_PARAM"] = function(data)
  175. if data then
  176. local FuncDockProxy = global.Facade:retrieveProxy(global.ProxyTable.FuncDockProxy)
  177. FuncDockProxy:clean()
  178. FuncDockProxy:SetTargetName(data.targetName)
  179. FuncDockProxy:SetTargetId(data.targetId)
  180. FuncDockProxy:SetTargetType(data.type)
  181. FuncDockProxy:SetPlayerBasic(data.basic)
  182. end
  183. end,
  184. -- 设置剪贴板文本
  185. ["CLIPBOARD_TEXT"] = function(str)
  186. if str then
  187. if global.isWindows then
  188. if Win32BridgeCtl then
  189. Win32BridgeCtl:Inst():copyToClipboard(str)
  190. end
  191. else
  192. global.L_NativeBridgeManager:GN_setClipboardText(str)
  193. end
  194. end
  195. end,
  196. --掉落物 飞向的世界坐标 优先级比txt设置的高
  197. ["DROPITEM_FLY_WORLD_POSITION"] = function(x, y)
  198. local PickupSpriteProxy = global.Facade:retrieveProxy(global.ProxyTable.PickupSpriteProxy)
  199. PickupSpriteProxy:setMetaPositon(x, y)
  200. end,
  201. -- 内功技能开关
  202. ["INTERNAL_SKILL_ONOFF"] = function(param1, param2, param3)
  203. local SkillProxy = global.Facade:retrieveProxy(global.ProxyTable.Skill)
  204. return SkillProxy:SetNGSkillOnOff(param1, param2, param3)
  205. end,
  206. ["H.INTERNAL_SKILL_ONOFF"] = function(param1, param2, param3)
  207. local HeroSkillProxy = global.Facade:retrieveProxy(global.ProxyTable.HeroSkillProxy)
  208. return HeroSkillProxy:SetNGSkillOnOff(param1, param2, param3)
  209. end,
  210. -- 设置快捷栏个数
  211. ["QUICK_USE_NUM"] = function(size)
  212. local QuickUseProxy = global.Facade:retrieveProxy(global.ProxyTable.QuickUseProxy)
  213. QuickUseProxy:SetQuickUseSize(size)
  214. end,
  215. -- 通知引导事件开始
  216. ["GUIDE_EVENT_BEGAN"] = function(guideID, needResetPos)
  217. local eventName = GuideEventConfig[guideID] and GuideEventConfig[guideID].startEventTag
  218. if eventName then
  219. global.Facade:sendNotification(global.NoticeTable.GuideEventBegan, { name = eventName })
  220. if needResetPos then
  221. global.Facade:sendNotification(global.NoticeTable.GuideLayerResetPos)
  222. end
  223. end
  224. end,
  225. -- 通知引导事件结束
  226. ["GUIDE_EVENT_END"] = function(guideID)
  227. local eventName = GuideEventConfig[guideID] and GuideEventConfig[guideID].closeEventTag
  228. if eventName then
  229. global.Facade:sendNotification(global.NoticeTable.GuideEventEnded, { name = eventName })
  230. end
  231. end,
  232. -- 修改屏幕分辨率,只能在PC端使用
  233. ["WIN_DEVICE_SIZE"] = function(width, height)
  234. if not global.isWinPlayMode then
  235. return
  236. end
  237. width = ConvertToEven(width)
  238. height = ConvertToEven(height)
  239. local designSize = cc.size(width, height)
  240. local glview = global.Director:getOpenGLView()
  241. glview:setFrameSize(designSize.width, designSize.height)
  242. local resolutionData = {}
  243. resolutionData.rType = global.DesignPolicy
  244. resolutionData.size = designSize
  245. global.Facade:sendNotification(global.NoticeTable.ChangeResolution, resolutionData)
  246. end,
  247. -- 摆摊设置选中物品唯一ID
  248. ["STALL_SELECT_ID"] = function(makeIndex)
  249. local stallProxy = global.Facade:retrieveProxy(global.ProxyTable.StallProxy)
  250. stallProxy:SetSelectItem(makeIndex)
  251. end,
  252. -- 设置PC聊天输入框内容
  253. ["PC_CHAT_INPUT_FILL"] = function(str)
  254. if type(str) == "string" then
  255. global.Facade:sendNotification(global.NoticeTable.PCFillChatInput, str)
  256. end
  257. end,
  258. -- 设置允许组队状态
  259. ["TEAM_STATUS_PERMIT"] = function(status)
  260. if not status then
  261. return
  262. end
  263. local TeamProxy = global.Facade:retrieveProxy(global.ProxyTable.TeamProxy)
  264. TeamProxy:SetPermitStatus(status)
  265. TeamProxy:RequestPermit()
  266. end,
  267. -- 设置允许添加状态
  268. ["ADD_STATUS_PERMIT"] = function(status)
  269. if not status then
  270. return
  271. end
  272. local TeamProxy = global.Facade:retrieveProxy(global.ProxyTable.TeamProxy)
  273. TeamProxy:SetAddStatus(status)
  274. TeamProxy:RequestPermit()
  275. end,
  276. -- 设置允许交易状态
  277. ["DEAL_STATUS_PERMIT"] = function(status)
  278. if not status then
  279. return
  280. end
  281. local TeamProxy = global.Facade:retrieveProxy(global.ProxyTable.TeamProxy)
  282. TeamProxy:SetDealStatus(status)
  283. TeamProxy:RequestPermit()
  284. end,
  285. -- 设置允许显示状态
  286. ["SHOW_STATUS_PERMIT"] = function(status)
  287. if not status then
  288. return
  289. end
  290. local TeamProxy = global.Facade:retrieveProxy(global.ProxyTable.TeamProxy)
  291. TeamProxy:SetShowStatus(status)
  292. TeamProxy:RequestPermit()
  293. end,
  294. -- 手动发起移动 way: 1点击地板 2摇杆
  295. ["USER_TO_MOVE"] = function(destPos, moveDir, moveStep, way)
  296. if not destPos or not next(destPos) then
  297. return
  298. end
  299. if not way or way == 1 then
  300. way = global.MMO.INPUT_MOVE_TYPE_GRID
  301. elseif way == 2 then
  302. way = global.MMO.INPUT_MOVE_TYPE_JOYSTICK
  303. end
  304. local dest = {}
  305. dest.x = destPos.x
  306. dest.y = destPos.y
  307. dest.moveDir = moveDir
  308. dest.moveStep = moveStep
  309. dest.type = way
  310. global.Facade:sendNotification(global.NoticeTable.UserInputMove, dest)
  311. end,
  312. -- 是否接收该分类掉落
  313. ["DROP_TYPE_ISRECEIVE"] = function(type, value)
  314. local ChatProxy = global.Facade:retrieveProxy(global.ProxyTable.Chat)
  315. return ChatProxy:SetDropTypeSwitch(type, value)
  316. end,
  317. -- 自动使用弹窗 添加物品唯一ID param1: 类型 1: 人物 2: 英雄 param2: 装备位 param3: makeIndex
  318. ["AUTOUSE_MAKEINDEX_BY_POS"] = function(param1, param2, param3)
  319. local AutoUseItemProxy = global.Facade:retrieveProxy(global.ProxyTable.AutoUseItemProxy)
  320. return AutoUseItemProxy:SetMakeIndexByPos(param1, param2, param3)
  321. end,
  322. }
  323. return MetaValueSetDef