| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- --- 英雄皮肤
- local Grid = require("bag.Grid")
- local BuyExcel = require("excel.buy").buy
- local BagLogic = require("bag.BagLogic")
- local HeroSkinExcel = require("excel.present").heroSkin
- local SkinExcel = require("excel.skin").skin
- local SkinLogic = require("skin.SkinLogic")
- local HeadFrameExcel = require("excel.role").headFrame
- local RoleHeadLogic = require("role.RoleHeadLogic")
- local Msg = require("core.Msg")
- local Json = require("common.Json")
- local BuyLogic = require("topup.BuyLogic")
- local GC_SKIN_QUERY = 54
- local function genSkinUnit(human,id)
- local cfg = HeroSkinExcel[id]
- local buyCfg = BuyExcel[cfg.buyId]
- local region = human.region or "CN"
- local buyItem = {}
- BuyLogic.fontBuyItem(human, buyItem, cfg.buyId)
- local skinId = cfg.content[1]
- local skinCfg = SkinExcel[skinId]
- local attrs = {}
- for _,v in pairs(skinCfg.attrs) do
- attrs[#attrs + 1] = {
- key = v[1],
- value = v[2],
- }
- end
- local iconframeId = cfg.content[2]
- local iconframeCfg = HeadFrameExcel[iconframeId]
- local headNet = {}
- headNet.id = iconframeId
- headNet.desc = iconframeCfg.desc or ""
- headNet.keepTime = iconframeCfg.keepTime
- headNet.name = iconframeCfg.name or ""
- headNet.camp = iconframeCfg.camp or 0
- local len = #iconframeCfg.attrs
- headNet.attrs = {}
- for i = 1,len do
- headNet.attrs[i] = {
- key = iconframeCfg.attrs[i][1],
- value = iconframeCfg.attrs[i][2],
- }
- end
- return {
- id = id,
- buyItem = buyItem,
- skinData = {
- Id = skinId,
- attrs = attrs
- },
- Iconframe = headNet
- }
- end
- -----------------------------------------
- function query(human,panelId)
- local ret = {}
- for id,cfg in pairs(HeroSkinExcel) do
- if cfg.panelId == panelId then
- ret[#ret+1] = genSkinUnit(human,id)
- end
- end
- return {
- list = ret
- }
- end
- function buy(human,buyId)
- local skinCfg
- for _,cfg in pairs(HeroSkinExcel) do
- if cfg.buyId == buyId then
- skinCfg = cfg
- break
- end
- end
- assert(skinCfg,"invalid buyId")
- -- 解锁皮肤和头像
- SkinLogic.skinUnlock(human,skinCfg.content[1]) --BagLogic.addItemList(human,skinCfg.content,"skin_buy")
- RoleHeadLogic.active(human,RoleHeadLogic.HEAD_TYPE_2,skinCfg.content[2])
- --刷新
- local data=query(human,skinCfg.panelId)
- RefreshClient(human,GC_SKIN_QUERY,data)
- end
- function RefreshClient(human,type,data)
- local msgRet = Msg.gc.GC_ROLE_CHANGE_BASEINFO
- msgRet.ret = type
- msgRet.tip = Json.Encode(data)
- Msg.send(msgRet,human.fd)
- end
|