diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/Global.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/Global.java index bb729790d..3274462fb 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/Global.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/Global.java @@ -15,8 +15,8 @@ public interface Global { int CHANGENAME = 64; // 改名卡 int EXP = 17;//经验 int TREASURE_SCORE = 68;//孙龙宝藏积分 - int DAILY_TASK_REMOVE_ITEM = 30;//日常任务道具 + int DAILY_TASK_REMOVE_ITEM = 30;//日常任务道具 int MISSING_ROOM_ITEM = 79; int SEND_CARD_COUNT = 20; // 每页发送卡牌个数 int SEND_ITEM_COUNT = 200; // 每页发送道具个数 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index f5a618c91..4288a2fe1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -80,7 +80,8 @@ public class Hero extends MongoBase { } this.equipByPositionMap = new HashMap<>(); - this.soulEquipByPositionMap = hero.soulEquipByPositionMap; + // this.soulEquipByPositionMap = hero.soulEquipByPositionMap; + this.soulEquipByPositionMap = new HashMap<>(); this.breakId = hero.breakId; this.createTime = (int)(System.currentTimeMillis()/1000); this.speed = hero.speed; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 03a13363b..d1f5f4e0d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -8,6 +8,7 @@ import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.map.behavior.BehaviorUtil; import com.ljsd.jieling.logic.GlobalDataManaager; @@ -26,6 +27,7 @@ import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.Expedition; +import com.ljsd.jieling.protocols.HeroInfoProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.util.*; import config.*; @@ -146,7 +148,7 @@ public class ExpeditionLogic { continue; } if(user.getExpeditionManager().getLay()<=entry.getKey()){//条件未达成 - continue; + continue; } itemArrs.add(entry.getValue()); } @@ -235,7 +237,7 @@ public class ExpeditionLogic { //移除已经删除的hero Set removeId = heroHP.keySet().stream().filter(k -> { if(heroMap.keySet().contains(k)) - return heroMap.get(k).getLevel()<20; + return heroMap.get(k).getLevel()<20; if(heroMapTemp.keySet().contains(k)) return heroMapTemp.get(k).getLevel()<20; return !heroMap.keySet().contains(k) && !heroMapTemp.keySet().contains(k); @@ -325,21 +327,21 @@ public class ExpeditionLogic { } Set> typedTuples = RedisUtil.getInstence().rangeByScoreWithScores(RedisKey.AREDEF_TEAM_FORCE_RANK, "", 0, randomForce); - // if (typedTuples.size() == 0) { - //战力没有获取到 从机器人中选 + // if (typedTuples.size() == 0) { + //战力没有获取到 从机器人中选 // Set set = ArenaLogic.randomRobot(SArenaSetting.getSArenaSetting().getScore(), 1); //// if (set.size() == 0) { //// throw new ErrorCodeException(ErrorCode.CFG_NULL); //// } // int robotId = set.iterator().next(); - //提前战力排序 支持战力查找机器人 - int robotId= SArenaRobotStaticConfig.getFloorForce2robotId((int)randomForce); - SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(robotId); - snapOneFightInfo(nodeInfo, sArenaRobotConfig); - // } else { - // String serarchIdFromRank = typedTuples.iterator().next().getValue(); - // snapOneFightInfo(user, nodeInfo, Integer.valueOf(serarchIdFromRank)); - // } + //提前战力排序 支持战力查找机器人 + int robotId= SArenaRobotStaticConfig.getFloorForce2robotId((int)randomForce); + SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(robotId); + snapOneFightInfo(nodeInfo, sArenaRobotConfig); + // } else { + // String serarchIdFromRank = typedTuples.iterator().next().getValue(); + // snapOneFightInfo(user, nodeInfo, Integer.valueOf(serarchIdFromRank)); + // } } if(nodeInfo.getType()==ExpeditionLogic.NODETYPE_GREED||nodeInfo.getType() ==ExpeditionLogic.NODETYPE_TRY){ @@ -836,14 +838,17 @@ public class ExpeditionLogic { finalstar=50; } SCHero hero1 = SCHero.getsCHero().get(tempid); - if (null != hero1) { - SCHeroRankUpConfig scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(hero1.getStar()); - if(null !=scHeroRankUpConfig&&finalstar>scHeroRankUpConfig.getOpenLevel()){ - finalstar=scHeroRankUpConfig.getOpenLevel(); - } - + if (hero1 == null) { + throw new ErrorCodeException(ErrorCode.CFG_NULL); } + SCHeroRankUpConfig scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(hero1.getStar()); + if (null != scHeroRankUpConfig && finalstar > scHeroRankUpConfig.getOpenLevel()) { + finalstar = scHeroRankUpConfig.getOpenLevel(); + } + + + //random tempid Hero newHero = new Hero(uid,tempid,finalstar,hero); @@ -867,6 +872,14 @@ public class ExpeditionLogic { PropertyItem propertyItem = user.getEquipManager().getEquipMap().get(jewel); if (propertyItem == null) continue; + + SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(propertyItem.getEquipId()); + if(config==null){ + continue; + } + if(hero1.getPropertyName()!=config.getRace()){ + continue; + } Jewel j = (Jewel) propertyItem; Jewel newequip = new Jewel(user.getId(), j.getEquipId()); @@ -877,6 +890,33 @@ public class ExpeditionLogic { // } newHero.addJewel(newequip.getId()); } + + + Map soulEquipByPositionMap = hero.getSoulEquipByPositionMap(); + for (Map.Entry entry:soulEquipByPositionMap.entrySet()) { + SEquipConfig sEquipConfig = STableManager.getConfig(SEquipConfig.class).get(entry.getValue()); + if (sEquipConfig == null) { + continue; + } + + Set cacheIds = new HashSet<>(); + int equipId = entry.getValue(); + if (sEquipConfig.getRangeHeroTids() != null && !sEquipConfig.getRangeHeroTids().contains(tempid)) { + continue; + } + if (sEquipConfig.getLimit() == 1) { + user.getHeroManager().getHeroMap().values().forEach(itemHero -> { + cacheIds.addAll(itemHero.getSoulEquipByPositionMap().values()); + }); + if (cacheIds.contains(equipId)) { + cacheIds.add(equipId); + continue; + } + } + newHero.updateSoulEquipPositionMap(entry.getKey(),entry.getValue()); + } + + if(isTemp){ user.getExpeditionManager().addHeroToTemp(newHero,nodeId); }else { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index b33473b5a..7815e8a58 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -488,7 +488,7 @@ public class MissionLoigc { if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD); - user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,missionId,user); + // user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,missionId,user); ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type); PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DailyTaskManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DailyTaskManager.java index 3451797cc..8e868fc20 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DailyTaskManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DailyTaskManager.java @@ -19,7 +19,7 @@ public class DailyTaskManager extends AbstractDataManager{ public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { ItemManager itemManager = ((User)parm[1]).getItemManager(); Item item = itemManager.getItem(Global.DAILY_TASK_REMOVE_ITEM); - data.setDaily_task_remove_item(Math.max(data.getDaily_task_remove_item(),item.getItemNum())); + data.setDaily_task_remove_item(data.getDaily_task_remove_item()+(int)parm[0]); return new CumulationData.Result(missionType); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 3c171585b..aa55d378a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -624,6 +624,9 @@ public class ItemUtil { } else if (sItem.getItemType() == GlobalItemType.SOUL_MARK) { user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), itemNum); } + if(sItem.getId()==Global.DAILY_TASK_REMOVE_ITEM){ + user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_TASK_TYPE,itemNum,user); + } //日志记录 ItemLogic.getInstance().addItemLog(new ItemLog(user.getId(),0,user.getPlayerInfoManager().getLevel(),String.valueOf(TimeUtils.now()),reason,sItem.getId(),itemNum,item.getItemNum())); }