| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- --- 英雄皮肤
- 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
- function SendSkinInfoByMoney(human, nMoney, nItemID)
- if not human or 0 >= nMoney then
- return
- end
- local ret = {}
- for id,cfg in pairs(HeroSkinExcel) do
- local nBuyID = cfg.buyId
- local tBuyCfg = BuyExcel[nBuyID]
- if tBuyCfg then
- local region = human.region or "CN"
- local nTrueMoney = tBuyCfg[region]
- if nMoney == nTrueMoney then
- ret[#ret+1] = genSkinUnit(human,id)
- end
- end
- end
- local data = {
- list = ret
- }
- local msgRet = Msg.gc.GC_ITEM_SKIN_INFO
- msgRet.nItemID = nItemID
- msgRet.data = Json.Encode(data)
- Msg.send(msgRet,human.fd)
- end
- function BuySkinBySuiPian(human, nSkinID, nItemID)
- local skinCfg
- for _,cfg in pairs(HeroSkinExcel) do
- if cfg.content[1] == nSkinID 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)
- BagLogic.delItem(human, nItemID, 1, "item_use")
- end
|