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 afd7f7093..bd955cff0 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 @@ -3,7 +3,6 @@ package com.ljsd.jieling.logic.fight; import com.ljsd.jieling.config.*; import com.ljsd.jieling.core.GlobalsDef; -import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.handler.map.MapManager; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; @@ -15,7 +14,6 @@ import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.util.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import redis.clients.jedis.Jedis; import java.util.*; @@ -49,6 +47,7 @@ public class CombatLogic { result.add(CBean2Proto.getAdventureStateInfo(item,item.getPosition())); hasAdventure =true; } + FightInfoProto.GetAdventureStateInfoResponse.Builder responseBuilder = FightInfoProto.GetAdventureStateInfoResponse.newBuilder(); if(hasAdventure){ responseBuilder.addAllAdventureStateInfoList(result); @@ -73,9 +72,8 @@ public class CombatLogic { } LOGGER.info("the uid={},offlineTimeLong={}",uid,offLineTime); } + MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.GET_ADVENTURE_INFO_RESPONSE_VALUE,responseBuilder.build(),true); - - } public void adventureStation(ISession session,int position,List heroIds) throws Exception { @@ -83,6 +81,11 @@ public class CombatLogic { int uid = session.getUid(); User user = UserManager.getUser(uid); SAdventureConfig sAdventureConfig = SAdventureConfig.getSAdventureConfigByPosition(position); + if( null == sAdventureConfig){ + LOGGER.error("the uid={},the request position={}",uid,position); + MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,""); + return; + } if(sAdventureConfig.getOpenLevel() > user.getPlayerInfoManager().getLevel()){ MessageUtil.sendErrorResponse(session,0, MessageTypeProto.MessageType.ADVENTURE_STATION_RESPONSE_VALUE,"等级不够"); return; @@ -152,8 +155,8 @@ public class CombatLogic { //消耗道具全部加一遍基础奖励。 public Map calAdvenrureReward(User user, boolean isOnLine,int position) throws Exception { Map tempDropRation = new HashMap<>(); - Map onlineReward = new HashMap<>(); AdventureManager adventureManager = user.getAdventureManager(); + CommonProto.Drop.Builder notShowdropBuilder = CommonProto.Drop.newBuilder(); Map adventureStateInfoMap = adventureManager.getAdventureStateInfoMap(); int now = (int)(System.currentTimeMillis()/1000); int adventureRefresh = SGameSetting.getGameSetting().getAdventureRefresh(); @@ -188,36 +191,33 @@ public class CombatLogic { } } if(onlineTimesOfOffline!=0){ - onlineReward.put(baseRewardGroup,rewardRation * onlineTimesOfOffline); + ItemUtil.activityDrop(user,notShowdropBuilder,baseRewardGroup,rewardRation * onlineTimesOfOffline); while (onlineTimesOfOffline>0){ - adventureManager.updateTemp(sAdventureConfig.getRandomRewardGroup(),rewardRation); + ItemUtil.activityDrop(user,notShowdropBuilder,sAdventureConfig.getRandomRewardGroup(),rewardRation); onlineTimesOfOffline--; } } }else{ - onlineReward.put(baseRewardGroup,rewardRation * times); + ItemUtil.activityDrop(user,notShowdropBuilder,baseRewardGroup,rewardRation * times); while (times>0){ - adventureManager.updateTemp(sAdventureConfig.getRandomRewardGroup(),rewardRation); + ItemUtil.drop(user,sAdventureConfig.getRandomRewardGroup(),rewardRation,0); times--; } } - } } Map result = new HashMap<>(2); - if(!onlineReward.isEmpty()){ - result.put(1,ItemUtil.drop(user, onlineReward)); - } - CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + result.put(1,notShowdropBuilder); if(!isOnLine){ - dropBuilder = ItemUtil.drop(user, tempDropRation); + CommonProto.Drop.Builder showdropBuilder = CommonProto.Drop.newBuilder(); + showdropBuilder = ItemUtil.drop(user, tempDropRation); List tempDropRatioList = adventureManager.getTempDropRatio(); for(TempDropInfo tempDropInfo : tempDropRatioList){ - ItemUtil.activityDrop(user,dropBuilder,tempDropInfo.getDropGroupIds(),tempDropInfo.getDropRatio()); + ItemUtil.activityDrop(user,showdropBuilder,tempDropInfo.getDropGroupIds(),tempDropInfo.getDropRatio()); } adventureManager.clearTemp(); - result.put(2,dropBuilder); + result.put(2,showdropBuilder); } return result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java index a48d72971..470314203 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java @@ -59,9 +59,10 @@ public class MailLogic { cMailList.add(cMail); } //超过邮件上限, 删除时间最早的一封 - if (cMailList.size() > Global.MAIL_BOX_CAPACITY){ + int size = cMailList.size(); + if (size > Global.MAIL_BOX_CAPACITY){ Collections.sort(cMailList, Comparator.comparingInt(Mail::getSendTime)); - for(int i = 0; i < (cMailList.size()-Global.MAIL_BOX_CAPACITY); i++){ + for(int i = 0; i < (size - Global.MAIL_BOX_CAPACITY); i++){ cMailList.remove(0); mailManager.removeMail(cMailList.get(0).getId()); }