lvxinran 2020-05-25 11:54:29 +08:00
commit 8485c18b7f
4 changed files with 26 additions and 15 deletions

View File

@ -43,8 +43,6 @@ public class StartExpeditionBattleRequest extends BaseHandler<Expedition.StartEx
@Override @Override
public void processWithProto(ISession iSession, Expedition.StartExpeditionBattleRequest proto) throws Exception { public void processWithProto(ISession iSession, Expedition.StartExpeditionBattleRequest proto) throws Exception {
//TODO 新需求 玩家未激活异妖(神器)时,敌人阵容中不会出现异妖;激活异妖后,由敌人数据来源方决定战斗时是否有敌方异妖。??
User user = UserManager.getUser(iSession.getUid()); User user = UserManager.getUser(iSession.getUid());
int nodeId = proto.getNodeId(); int nodeId = proto.getNodeId();
int teamId = proto.getTeamId(); int teamId = proto.getTeamId();

View File

@ -83,9 +83,15 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.EXPEDITION_BOX_REWARD); CommonProto.Drop.Builder drop = ItemUtil.drop(user, reward, BIReason.EXPEDITION_BOX_REWARD);
//notify //notify
//updata node
Set<CommonProto.ExpeditionNodeInfo> nodeInfos = ExpeditionLogic.openLay(user,nodeInfo.getLay(),nodeId);
Expedition.ExpeditionNodeInfoIndication.Builder indication = Expedition.ExpeditionNodeInfoIndication.newBuilder();
indication.addAllNodeInfo(nodeInfos);
MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_NOINFO_INDICATION_VALUE, indication.build(), true);
HashSet<Integer> objects = new HashSet<>(); HashSet<Integer> objects = new HashSet<>();
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1); SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
if(sExpeditionSetting == null){ if(sExpeditionSetting == null){
throw new ErrorCodeException(ErrorCode.CFG_NULL); throw new ErrorCodeException(ErrorCode.CFG_NULL);
@ -93,8 +99,6 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
int[][] fourthOpenRule = sExpeditionSetting.getFourthOpenRule(); int[][] fourthOpenRule = sExpeditionSetting.getFourthOpenRule();
if(expeditionManager.getExpeditionLeve()==2){ if(expeditionManager.getExpeditionLeve()==2){
objects.add(3); objects.add(3);
expeditionManager.setExpeditionLeve(expeditionManager.getExpeditionLeve()+1); expeditionManager.setExpeditionLeve(expeditionManager.getExpeditionLeve()+1);
@ -104,14 +108,17 @@ public class TakeLayRewardHandler extends BaseHandler<Expedition.TakeExpeditionB
expeditionManager.setPassTimes(-1);//记录下 expeditionManager.setPassTimes(-1);//记录下
objects.add(4); objects.add(4);
} }
ExpeditionManager manager = user.getExpeditionManager();
manager.clearExpeditionNodeInfos();
}else if(expeditionManager.getExpeditionLeve()==1){ }else if(expeditionManager.getExpeditionLeve()==1){
expeditionManager.setExpeditionLeve(expeditionManager.getExpeditionLeve()+1); expeditionManager.setExpeditionLeve(expeditionManager.getExpeditionLeve()+1);
objects.add(2); objects.add(2);
ExpeditionManager manager = user.getExpeditionManager();
manager.clearExpeditionNodeInfos();
} }
Expedition.TakeExpeditionBoxRewardResponse builder = Expedition.TakeExpeditionBoxRewardResponse.newBuilder().setDrop(drop).addAllLeve(objects).build(); Expedition.TakeExpeditionBoxRewardResponse builder = Expedition.TakeExpeditionBoxRewardResponse.newBuilder().setDrop(drop).addAllLeve(objects).build();
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_TAKE_BOXREWARD_RESONSE_VALUE, builder, true); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EXPEDITION_TAKE_BOXREWARD_RESONSE_VALUE, builder, true);
ExpeditionManager manager = user.getExpeditionManager();
manager.clearExpeditionNodeInfos();
} }
} }

View File

@ -29,6 +29,7 @@ public class ExpeditionManager extends MongoBase {
private int expeditionLeve;//猎妖之路阶段 private int expeditionLeve;//猎妖之路阶段
private Set<ExpeditionItem> propertyItems = new HashSet<>(); private Set<ExpeditionItem> propertyItems = new HashSet<>();
private WorldTreasureReward worldTreasureReward = new WorldTreasureReward() ; private WorldTreasureReward worldTreasureReward = new WorldTreasureReward() ;
private int freshTime;//刷新时间
@Transient @Transient
private Map<Integer, SExpeditionHolyConfig> effectItems = new HashMap<>();//圣物叠加 不入库 private Map<Integer, SExpeditionHolyConfig> effectItems = new HashMap<>();//圣物叠加 不入库
@ -213,6 +214,14 @@ public class ExpeditionManager extends MongoBase {
equipMapTemp.put(equip.getId(),equip); equipMapTemp.put(equip.getId(),equip);
} }
public int getFreshTime() {
return freshTime;
}
public void setFreshTime(int freshTime) {
this.freshTime = freshTime;
updateString("freshTime" , freshTime);
}
public Map<String, Hero> getHeroMapTemp() { public Map<String, Hero> getHeroMapTemp() {
return heroMapTemp; return heroMapTemp;

View File

@ -80,13 +80,11 @@ public class ExpeditionLogic {
//每日重置 //每日重置
public void flushUserdataEveryDay(User user) throws Exception { public void flushUserdataEveryDay(User user) throws Exception {
//TODO 重置时间 每个大闹天宫CD改为持续48小时
ExpeditionManager manager = user.getExpeditionManager(); ExpeditionManager manager = user.getExpeditionManager();
TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Expedition); TimeControllerOfFunction openTimeOfFuntionCacheByType = GlobalDataManaager.getInstance().getOpenTimeOfFuntionCacheByType(FunctionIdEnum.Expedition);
if(manager.getCurrentTime()==openTimeOfFuntionCacheByType.getTimes()){ if(manager.getCurrentTime()==openTimeOfFuntionCacheByType.getTimes()){
return; return;
} }
takeAllReward(user); takeAllReward(user);
manager.clearExpeditionNodeInfos(); manager.clearExpeditionNodeInfos();
manager.setLay(1); manager.setLay(1);
@ -98,10 +96,8 @@ public class ExpeditionLogic {
manager.setCurrentTime(openTimeOfFuntionCacheByType.getTimes()); manager.setCurrentTime(openTimeOfFuntionCacheByType.getTimes());
manager.clearHeroToTemp(); manager.clearHeroToTemp();
manager.clearEquipToTemp(); manager.clearEquipToTemp();
manager.setFreshTime((int)(System.currentTimeMillis()/1000));
checkAndResetTreasure(user);
//TODO
// checkAndResetTreasure(user);
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.Expedition.getFunctionType()); SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.Expedition.getFunctionType());
SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1); SExpeditionSetting sExpeditionSetting = STableManager.getConfig(SExpeditionSetting.class).get(1);
@ -115,7 +111,7 @@ public class ExpeditionLogic {
manager.setSortid(0); manager.setSortid(0);
} }
if (HandlerLogicThread.checkOpen(user,sGlobalSystemConfig)) { if (HandlerLogicThread.checkOpen(user,sGlobalSystemConfig)&&OnlineUserManager.getSessionByUid(user.getId())!=null) {
builder.addAllLay(manager.getRewardBox()); builder.addAllLay(manager.getRewardBox());
builder.addAllHeroInfo(ExpeditionLogic.getInstance().getAllHeroInfo(user)); builder.addAllHeroInfo(ExpeditionLogic.getInstance().getAllHeroInfo(user));
builder.addAllNodeInfo(ExpeditionLogic.getInstance().getNodeInfo(user)); builder.addAllNodeInfo(ExpeditionLogic.getInstance().getNodeInfo(user));
@ -123,6 +119,7 @@ public class ExpeditionLogic {
builder.addAllHeroList(new ArrayList<>()); builder.addAllHeroList(new ArrayList<>());
builder.addAllEquip(new ArrayList<>()); builder.addAllEquip(new ArrayList<>());
builder.addAllEquip(new ArrayList<>()); builder.addAllEquip(new ArrayList<>());
builder.setStartTime(manager.getFreshTime());
} }
MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()), 1, MessageTypeProto.MessageType.ExpeditionResetIndication.getNumber(), builder.build(), true); MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()), 1, MessageTypeProto.MessageType.ExpeditionResetIndication.getNumber(), builder.build(), true);
// reSetNode(user); // reSetNode(user);