diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/crossServer/CrossYuxulundaoChallengeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/crossServer/CrossYuxulundaoChallengeHandler.java index 328d17b28..16ba5176b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/crossServer/CrossYuxulundaoChallengeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/crossServer/CrossYuxulundaoChallengeHandler.java @@ -48,10 +48,7 @@ import rpc.protocols.CommonProto; import rpc.protocols.MessageTypeProto; import util.TimeUtils; -import java.util.Arrays; -import java.util.Calendar; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; public class CrossYuxulundaoChallengeHandler extends BaseHandler { @@ -326,7 +323,7 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler> teamPosForHero = user.getTeamPosManager().getTeamPosForHero(); + if(!teamPosForHero.containsKey(myteamId[i]) || teamPosForHero.get(myteamId[i]).size() == 0){ + result[i] = 0; + if (GameApplication.serverId == csPlayer.getServerId()) { + User defuser = UserManager.getUser(csPlayer.getUserId()); + int addforce = HeroLogic.getInstance().calTeamTotalForce(defuser, myteamId[i], false); + arenaRecord.getYxldDefForce().add(addforce); + }else{ + List teamPosHeroInfos = crossArenaManager.getTeams().getOrDefault(myteamId[i], new ArrayList<>()); + int addforcerpc = crossArenaManager.getTotalForceByTeam().get(myteamId[i]); + arenaRecord.getYxldDefForce().add(addforcerpc); + } + return false; + } + return true; + } + public static boolean updateResult(User user,int i, int[] myteamId, int[] defTeamId, int[] result){ //没有队伍时候 直接断定对方赢 Map> teamPosForHero = user.getTeamPosManager().getTeamPosForHero(); if(!teamPosForHero.containsKey(myteamId[i]) || teamPosForHero.get(myteamId[i]).size() == 0){ @@ -380,7 +395,6 @@ public class CrossYuxulundaoChallengeHandler extends BaseHandler activityProgressInfoMap = activityMission.getActivityMissionMap(); //0是领取最后奖励 if(missionId==0){ - for(ActivityProgressInfo activityProgressInfo : activityProgressInfoMap.values()){ - if(activityProgressInfo.getState() != 1){ + for (Map.Entry inter : activityProgressInfoMap.entrySet()) { + ActivityProgressInfo activityProgressInfo=inter.getValue(); + int activityMissionId=inter.getKey(); + SActivityRewardConfig missonConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(activityMissionId); + if(activityProgressInfo.getState() != 1&&missonConfig.getSort()==1){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } } for(Map.Entry item: activityProgressInfoMap.entrySet()){ - item.getValue().setState(2); - activityMission.getActivityMissionMap().put(item.getKey(),item.getValue()); + SActivityRewardConfig missonConfig= SActivityRewardConfig.getsActivityRewardConfigByMissionId(item.getKey()); + if (missonConfig.getSort()==1){ + item.getValue().setState(2); + activityMission.getActivityMissionMap().put(item.getKey(),item.getValue()); + } } - sendActivityProgress(session, activityMission, null); List sActivityRewardConfigs = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id); CommonProto.Drop.Builder drop = ItemUtil.drop(user, sActivityRewardConfigs.get(0).getReward(), BIReason.TAKE_ACTIVITY_REWARD); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java index 052d18dec..f91cd1ffd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/NewWelfareTypeEnum.java @@ -3,7 +3,10 @@ package com.ljsd.jieling.logic.activity.event; public enum NewWelfareTypeEnum { LEVEL_FIGHT(1), LOGIN_TIMES(2), - RECHARGE_BUY(3) + RECHARGE_BUY(3), + EXPLORE(4),//极速探索n次 + UPSTAR(5),//指定英雄升级至x星 + ALL_MISSION_FIN(6)//sort为2所有任务完成 ; private int type; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/CrossYuxulundaoLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/CrossYuxulundaoLogic.java index b1557f852..144a11975 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/CrossYuxulundaoLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/CrossYuxulundaoLogic.java @@ -367,17 +367,23 @@ public class CrossYuxulundaoLogic { public static CommonProto.crossYxldPlayerRecordInfo getCrossYxldPlayerRecordInfo(int uid,ArenaRecord arenaRecord,boolean isSend) throws Exception { - CommonProto.FightData fightDataProto1 = null; - CommonProto.FightData fightDataProto2 = null; - CommonProto.FightData fightDataProto3 = null; + CommonProto.FightData fightDataProto1 ; + CommonProto.FightData fightDataProto2 ; + CommonProto.FightData fightDataProto3; if(arenaRecord.getYxldFightData1() != null){ fightDataProto1 = CommonProto.FightData.parseFrom(arenaRecord.getYxldFightData1()); + }else{ + fightDataProto1 = CommonProto.FightData.newBuilder().build(); } if(arenaRecord.getYxldFightData2() != null){ fightDataProto2 = CommonProto.FightData.parseFrom(arenaRecord.getYxldFightData2()); + }else{ + fightDataProto2 = CommonProto.FightData.newBuilder().build(); } if(arenaRecord.getYxldFightData3() != null){ fightDataProto3 = CommonProto.FightData.parseFrom(arenaRecord.getYxldFightData3()); + }else{ + fightDataProto3 = CommonProto.FightData.newBuilder().build(); } List result = null;// if (arenaRecord.getYxldResult() == null) { @@ -389,6 +395,7 @@ public class CrossYuxulundaoLogic { result = Arrays.stream(arenaRecord.getYxldResult()).boxed().collect(Collectors.toList()); } if(isSend){ + CSPlayer csPlayer = CrossServiceLogic.getPlayerByRedis(uid); CSPlayer defPlayer = CrossServiceLogic.getPlayerByRedis(arenaRecord.getDefUid()); String myServerName = CrossDeathPathLogic.getInstance().getServerNameByDeathPath(csPlayer.getServerId()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index 1f11ce946..a950b4242 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -19,6 +19,8 @@ import com.ljsd.jieling.ktbeans.KTGameType; import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.activity.event.NewWelfareEvent; +import com.ljsd.jieling.logic.activity.event.NewWelfareTypeEnum; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.SecretEvent; import com.ljsd.jieling.logic.activity.fourChallenge.FourChallengeLogic; @@ -234,7 +236,9 @@ public class CombatLogic { user.getUserMissionManager().onGameEvent(user,GameEvent.PlAY_STORY,9999,1); Poster.getPoster().dispatchEvent(new SecretEvent(user.getId())); user.getUserMissionManager().onGameEvent(user, GameEvent.TAKE_ADVENTURE_REWARD_COUNT,1); + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user, NewWelfareTypeEnum.EXPLORE.getType(),1)); } + FightInfoProto.TakeAventureRewardResponse build = FightInfoProto.TakeAventureRewardResponse.newBuilder().setDrop(adventureFastReward.get(1)).setRandomDrop(adventureFastReward.get(2)).build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ADVENTURE_REWARD_RESPONSE_VALUE,build,true); KtEventUtils.onKtEvent(user,ParamEventBean.UserGameType,KTGameType.TAKE_SECURE_REWARD.getIndex(),type*10); 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 50144da8b..2b47d1f15 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 @@ -1541,7 +1541,7 @@ public class HeroLogic{ rankUpHeroExecute(targetHero); user.getHeroManager().addHeroStar(targetHero.getTemplateId(),targetHero.getStar()); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); - + Poster.getPoster().dispatchEvent(new NewWelfareEvent(user,NewWelfareTypeEnum.UPSTAR.getType(),targetHero.getTemplateId())); targetHero.setStarBreakId(scHeroRankUpConfig.getId()); user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2,targetHero.getTemplateId(),targetHero.getStar()); user.getUserMissionManager().onGameEvent(user,GameEvent.GET_HERO,targetHero.getTemplateId(),targetHero.getStar());