From a4144852d34c3708255bd078cdb66e5028be1553 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 12 Aug 2019 10:28:49 +0800 Subject: [PATCH] =?UTF-8?q?mission=20=E5=90=88=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/logic/hero/HeroLogic.java | 4 +--- .../logic/mission/event/MissionEventDistributor.java | 12 ++++++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index d76a823ad..d7da89403 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -159,19 +159,17 @@ public class HeroLogic { } } - boolean isSpecial = false; if(sLotterySetting.getOrderBoxPool()!=null && sLotterySetting.getOrderBoxPool().length>0){ pooId = getOrderBoxPoolId(sLotterySetting); if(pooId == 0){ MessageUtil.sendErrorResponse(session, 0, MessageTypeProto.MessageType.HERO_RAND_RESPONSE_VALUE,""); return; } - isSpecial = true; } //检验消耗 boolean allowFree = false; - if(perCount == 1){ + if(perCount == 1 && sLotterySetting.getLotteryType() == 1){ allowFree = user.getPlayerInfoManager().check(VipPrivilegeType.FREE_HERO_RANDOM, 1); } if(!allowFree){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index d14acb259..e05d29085 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -263,17 +263,21 @@ public class MissionEventDistributor { User user = UserManager.getUser(session.getUid()); Map> missionTypeEnumListMap = threadMissionChangeList.get(); if (sendIndication) { + PlayerInfoProto.MissionUpdateListIndication.Builder builder = PlayerInfoProto.MissionUpdateListIndication.newBuilder(); for(Map.Entry> misionTypeListEntry : missionTypeEnumListMap.entrySet()){ - sendMissionUpdate(session,user,misionTypeListEntry.getValue(),misionTypeListEntry.getKey()); + buildMissionUpdate(user,misionTypeListEntry.getValue(),misionTypeListEntry.getKey(),builder); } + if(builder.getUserMissionInfoCount()>0){ + MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.MISSION_UPDATE_INDICATION_VALUE,builder.build(),true); + } + } } - private static void sendMissionUpdate(ISession session, User user ,List missionStateChangeInfos,GameMisionType gameMisionType) { + private static void buildMissionUpdate(User user,List missionStateChangeInfos, GameMisionType gameMisionType,PlayerInfoProto.MissionUpdateListIndication.Builder builder) { if(missionStateChangeInfos.isEmpty()){ return; } - PlayerInfoProto.MissionUpdateListIndication.Builder builder = PlayerInfoProto.MissionUpdateListIndication.newBuilder(); for(MissionStateChangeInfo missionStateChangeInfo : missionStateChangeInfos){ MissionState missionState = missionStateChangeInfo.getMissionState(); int state = missionState.getState(); @@ -315,7 +319,7 @@ public class MissionEventDistributor { } builder.addUserMissionInfo(CommonProto.UserMissionInfo.newBuilder().setMissionId(missionStateChangeInfo.getMissionId()).setType(gameMisionType.getType()).setState(state).setProgress(progress).setTakeTimes(missionStateChangeInfo.getHadTakes())); } - MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.MISSION_UPDATE_INDICATION_VALUE,builder.build(),true); + } public static Map> onGameEvent(User user, GameEvent event, Object ... parm) throws Exception {