| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- local RemoteProxy = requireProxy("remote/RemoteProxy")
- local MeridianProxy = class("MeridianProxy", RemoteProxy)
- MeridianProxy.NAME = global.ProxyTable.MeridianProxy
- local cjson = require("cjson")
- function MeridianProxy:ctor()
- MeridianProxy.super.ctor(self)
- -- 人物
- self._meridianLvList = {}
- self._meridianOpenList = {}
- -- 英雄
- self._heroMeridianLvList = {}
- self._heroMeridianOpenList = {}
- self._config = {}
- self._ng_hud_show = true -- 内功hud显示
- self:LoadConfig()
- end
- function MeridianProxy:LoadConfig()
- self._config = requireGameConfig("cfg_PulsDesc")
- end
- function MeridianProxy:GetTipsConfig()
- return self._config
- end
- function MeridianProxy:GetAucPointStateByType(type, isHero)
- if type then
- if isHero then
- return self["_mHeroAucPointList_".. type] or {}
- else
- return self["_mAucPointList_".. type] or {}
- end
- end
- return nil
- end
- function MeridianProxy:GetMeridianOpenList(isHero)
- if isHero then
- return self._heroMeridianOpenList
- else
- return self._meridianOpenList
- end
- end
- function MeridianProxy:GetMeridianLvByType(type, isHero)
- if isHero then
- return self._heroMeridianLvList[type] or 0
- else
- return self._meridianLvList[type] or 0
- end
- end
- function MeridianProxy:GetNGHudShow()
- return self._ng_hud_show
- end
- function MeridianProxy:SetNGHudShow( state )
- self._ng_hud_show = state
- end
- function MeridianProxy:OnRefreshNGHudShow()
- local optionsUtils = requireProxy( "optionsUtils" )
- local players = global.playerManager:GetPlayersInCurrViewField()
- for i,player in ipairs(players) do
- if player then
- optionsUtils:InitHUDVisibleValue(player, global.MMO.HUD_NGBAR_VISIBLE)
- optionsUtils:CheckHUDNGBarVisible(player)
- end
- end
- end
- function MeridianProxy:RequestAucPointOpen(typeID, aucPointID, isHero)
- LuaSendMsg(global.MsgType.MSG_CS_MERIDIAN_ACUPOINT_OPEN, typeID, aucPointID, isHero and 1 or 0)
- end
- function MeridianProxy:RequestMeridianLevelUp(typeID, isHero)
- LuaSendMsg(global.MsgType.MSG_CS_MERIDIAN_LEVELUP, typeID, isHero and 1 or 0)
- end
- function MeridianProxy:RequestGetMeridianInfo(isHero)
- LuaSendMsg(global.MsgType.MSG_CS_MERIDIAN_GET_INFO, isHero and 1 or 0)
- end
- -- 经络ID 冲脉=1 阴跷=2 阴维=3 任脉=4 奇经=5 (服务端-1)
- function MeridianProxy:handle_MSG_SC_MERIDIAN_GET_INFO(msg)
- local jsonData = ParseRawMsgToJson(msg)
- if not jsonData then
- return
- end
- local header = msg:GetHeader()
- local type = header.param1
- dump(jsonData, "________handle_MSG_SC_MERIDIAN_GET_INFO"..type)
- if type == 0 then --人物
- -- 各经络对应等级
- self._meridianLvList = jsonData.NGPulseMainLv
- -- 各经络各穴位开关状态 0为未激活 1已激活
- for i = 1, 5 do
- if not self["_mAucPointList_".. i] then
- self["_mAucPointList_".. i] = {}
- end
- self["_mAucPointList_" .. i] = jsonData["NGPulseSubLv" .. i]
- end
- -- 各经络开关状态
- self._meridianOpenList = jsonData.NGPulseState
- SLBridge:onLUAEvent(LUA_EVENT_MERIDIAN_DATA_REFRESH)
- elseif type == 1 then -- 英雄
- self._heroMeridianLvList = jsonData.NGPulseMainLv
- for i = 1, 5 do
- if not self["_mHeroAucPointList_".. i] then
- self["_mHeroAucPointList_".. i] = {}
- end
- self["_mHeroAucPointList_" .. i] = jsonData["NGPulseSubLv" .. i]
- end
- self._heroMeridianOpenList = jsonData.NGPulseState
- SLBridge:onLUAEvent(LUA_EVENT_HERO_MERIDIAN_DATA_REFRESH)
- end
- end
- function MeridianProxy:handle_MSG_SC_MERIDIAN_INFO_UPDATE(msg)
- local jsonData = ParseRawMsgToJson(msg)
- if not jsonData then
- return
- end
- local header = msg:GetHeader()
- local type = header.param1
- dump(jsonData, "_______handle_MSG_SC_MERIDIAN_INFO_UPDATE"..type)
- if type == 0 then
- -- 各经络对应等级
- if jsonData.NGPulseMainLv then
- self._meridianLvList = jsonData.NGPulseMainLv
- end
- -- 各经络各穴位开关状态
- for i = 1, 5 do
- if jsonData["NGPulseSubLv" .. i] then
- self["_mAucPointList_" .. i] = jsonData["NGPulseSubLv" .. i]
- end
- end
- -- 各经络开关状态
- if jsonData.NGPulseState then
- self._meridianOpenList = jsonData.NGPulseState
- end
- SLBridge:onLUAEvent(LUA_EVENT_MERIDIAN_DATA_REFRESH)
- else
- -- 各经络对应等级
- if jsonData.NGPulseMainLv then
- self._heroMeridianLvList = jsonData.NGPulseMainLv
- end
- -- 各经络各穴位开关状态
- for i = 1, 5 do
- if jsonData["NGPulseSubLv" .. i] then
- self["_mHeroAucPointList_" .. i] = jsonData["NGPulseSubLv" .. i]
- end
- end
- -- 各经络开关状态
- if jsonData.NGPulseState then
- self._heroMeridianOpenList = jsonData.NGPulseState
- end
- SLBridge:onLUAEvent(LUA_EVENT_HERO_MERIDIAN_DATA_REFRESH)
- end
- end
- function MeridianProxy:RegisterMsgHandler()
- MeridianProxy.super.RegisterMsgHandler(self)
- local msgType = global.MsgType
- LuaRegisterMsgHandler(msgType.MSG_SC_MERIDIAN_GET_INFO, handler(self, self.handle_MSG_SC_MERIDIAN_GET_INFO)) -- 初始化经络信息
- LuaRegisterMsgHandler(msgType.MSG_SC_MERIDIAN_INFO_UPDATE, handler(self, self.handle_MSG_SC_MERIDIAN_INFO_UPDATE)) -- 刷新经络信息
- end
- return MeridianProxy
|