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 51350b58b..2ba57d596 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 {