皮肤:修改皮肤推送逻辑
This commit is contained in:
@@ -153,7 +153,8 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
|
||||
pinus.app.get('channelService').pushMessageByUids('onItemUpdate', resResult(STATUS.SUCCESS, { goods: bagInfos }), uids);
|
||||
|
||||
|
||||
let skinInfos: {skins: HeroSkin[], hid: number}[] = []; // 皮肤推送信息
|
||||
let heroskins: {skins: HeroSkin[], hid: number}[] = []; // 皮肤推送信息
|
||||
let skinInfos: {id: number, hid: number }[] = [];
|
||||
let figureInfos:{ heads: Figure[], frames: Figure[], spines: Figure[] }[] = []; // 头像变化推送信息
|
||||
let calAllHeroResult = undefined; // 全局战力变化推送
|
||||
|
||||
@@ -164,13 +165,14 @@ export async function addItems(roleId: string, roleName: string, sid: string, go
|
||||
showItems.push({ id: skinId, count: 1 });
|
||||
figureInfos.push(result.figureInfo);
|
||||
if(result.hero) {
|
||||
skinInfos.push({ skins: result.hero.skins, hid: result.hero.hid });
|
||||
heroskins.push({ skins: result.hero.skins, hid: result.hero.hid });
|
||||
if(result.calAllHeroResult) calAllHeroResult = result.calAllHeroResult;
|
||||
}
|
||||
skinInfos.push({ id: skinId, hid: result.hero?.hid||0 })
|
||||
}
|
||||
}
|
||||
if (!!skinInfos.length) {
|
||||
pushHeroSkinMsg(skinInfos, uids); // 推送onHeroSkinChange
|
||||
pushHeroSkinMsg(heroskins, skinInfos, uids); // 推送onHeroSkinChange
|
||||
}
|
||||
// 推送全局加成信息
|
||||
if(calAllHeroResult) await pushCalAllHeroCe(roleId, sid, calAllHeroResult);
|
||||
@@ -378,12 +380,12 @@ export async function createHero(roleId: string, roleName: string, sid: string,
|
||||
|
||||
/**
|
||||
* 皮肤数据变化去重、推送
|
||||
* @param skinInfos 推送的皮肤
|
||||
* @param heroskins 推送的皮肤
|
||||
* @param uids 玩家
|
||||
*/
|
||||
function pushHeroSkinMsg(skinInfos: {skins: HeroSkin[], hid: number}[], uids: {uid: string, sid: string}[]) {
|
||||
function pushHeroSkinMsg(heroskins: {skins: HeroSkin[], hid: number}[], skinInfos: {id: number, hid: number }[], uids: {uid: string, sid: string}[]) {
|
||||
let pushSkinInfos: {skins: HeroSkin[], hid: number}[] = []; // 可能会有重复的
|
||||
for(let { skins, hid } of skinInfos) {
|
||||
for(let { skins, hid } of heroskins) {
|
||||
let index = pushSkinInfos.findIndex(cur => cur.hid == hid);
|
||||
if(index == -1) {
|
||||
pushSkinInfos.push({skins, hid});
|
||||
@@ -393,7 +395,7 @@ function pushHeroSkinMsg(skinInfos: {skins: HeroSkin[], hid: number}[], uids: {u
|
||||
}
|
||||
}
|
||||
}
|
||||
if(pushSkinInfos.length > 0) {
|
||||
pinus.app.get('channelService').pushMessageByUids('onHeroSkinChange', resResult(STATUS.SUCCESS, { skinInfos }), uids);
|
||||
if(pushSkinInfos.length > 0 || skinInfos.length > 0) {
|
||||
pinus.app.get('channelService').pushMessageByUids('onHeroSkinChange', resResult(STATUS.SUCCESS, { heros: heroskins, skins: skinInfos }), uids);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user