魂印过滤及日常刷新

zhangshanxue 2020-10-19 00:33:42 +08:00
parent 171d86addf
commit ab8815cfcd
6 changed files with 66 additions and 22 deletions

View File

@ -15,8 +15,8 @@ public interface Global {
int CHANGENAME = 64; // 改名卡 int CHANGENAME = 64; // 改名卡
int EXP = 17;//经验 int EXP = 17;//经验
int TREASURE_SCORE = 68;//孙龙宝藏积分 int TREASURE_SCORE = 68;//孙龙宝藏积分
int DAILY_TASK_REMOVE_ITEM = 30;//日常任务道具
int DAILY_TASK_REMOVE_ITEM = 30;//日常任务道具
int MISSING_ROOM_ITEM = 79; int MISSING_ROOM_ITEM = 79;
int SEND_CARD_COUNT = 20; // 每页发送卡牌个数 int SEND_CARD_COUNT = 20; // 每页发送卡牌个数
int SEND_ITEM_COUNT = 200; // 每页发送道具个数 int SEND_ITEM_COUNT = 200; // 每页发送道具个数

View File

@ -80,7 +80,8 @@ public class Hero extends MongoBase {
} }
this.equipByPositionMap = new HashMap<>(); this.equipByPositionMap = new HashMap<>();
this.soulEquipByPositionMap = hero.soulEquipByPositionMap; // this.soulEquipByPositionMap = hero.soulEquipByPositionMap;
this.soulEquipByPositionMap = new HashMap<>();
this.breakId = hero.breakId; this.breakId = hero.breakId;
this.createTime = (int)(System.currentTimeMillis()/1000); this.createTime = (int)(System.currentTimeMillis()/1000);
this.speed = hero.speed; this.speed = hero.speed;

View File

@ -8,6 +8,7 @@ import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.exception.ErrorCodeException;
import com.ljsd.jieling.globals.BIReason;
import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.handler.map.behavior.BehaviorUtil; import com.ljsd.jieling.handler.map.behavior.BehaviorUtil;
import com.ljsd.jieling.logic.GlobalDataManaager; 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.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.Expedition; import com.ljsd.jieling.protocols.Expedition;
import com.ljsd.jieling.protocols.HeroInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.util.*; import com.ljsd.jieling.util.*;
import config.*; import config.*;
@ -146,7 +148,7 @@ public class ExpeditionLogic {
continue; continue;
} }
if(user.getExpeditionManager().getLay()<=entry.getKey()){//条件未达成 if(user.getExpeditionManager().getLay()<=entry.getKey()){//条件未达成
continue; continue;
} }
itemArrs.add(entry.getValue()); itemArrs.add(entry.getValue());
} }
@ -235,7 +237,7 @@ public class ExpeditionLogic {
//移除已经删除的hero //移除已经删除的hero
Set<String> removeId = heroHP.keySet().stream().filter(k -> { Set<String> removeId = heroHP.keySet().stream().filter(k -> {
if(heroMap.keySet().contains(k)) if(heroMap.keySet().contains(k))
return heroMap.get(k).getLevel()<20; return heroMap.get(k).getLevel()<20;
if(heroMapTemp.keySet().contains(k)) if(heroMapTemp.keySet().contains(k))
return heroMapTemp.get(k).getLevel()<20; return heroMapTemp.get(k).getLevel()<20;
return !heroMap.keySet().contains(k) && !heroMapTemp.keySet().contains(k); return !heroMap.keySet().contains(k) && !heroMapTemp.keySet().contains(k);
@ -325,21 +327,21 @@ public class ExpeditionLogic {
} }
Set<ZSetOperations.TypedTuple<String>> typedTuples = RedisUtil.getInstence().rangeByScoreWithScores(RedisKey.AREDEF_TEAM_FORCE_RANK, "", 0, randomForce); Set<ZSetOperations.TypedTuple<String>> typedTuples = RedisUtil.getInstence().rangeByScoreWithScores(RedisKey.AREDEF_TEAM_FORCE_RANK, "", 0, randomForce);
// if (typedTuples.size() == 0) { // if (typedTuples.size() == 0) {
//战力没有获取到 从机器人中选 //战力没有获取到 从机器人中选
// Set<Integer> set = ArenaLogic.randomRobot(SArenaSetting.getSArenaSetting().getScore(), 1); // Set<Integer> set = ArenaLogic.randomRobot(SArenaSetting.getSArenaSetting().getScore(), 1);
//// if (set.size() == 0) { //// if (set.size() == 0) {
//// throw new ErrorCodeException(ErrorCode.CFG_NULL); //// throw new ErrorCodeException(ErrorCode.CFG_NULL);
//// } //// }
// int robotId = set.iterator().next(); // int robotId = set.iterator().next();
//提前战力排序 支持战力查找机器人 //提前战力排序 支持战力查找机器人
int robotId= SArenaRobotStaticConfig.getFloorForce2robotId((int)randomForce); int robotId= SArenaRobotStaticConfig.getFloorForce2robotId((int)randomForce);
SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(robotId); SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(robotId);
snapOneFightInfo(nodeInfo, sArenaRobotConfig); snapOneFightInfo(nodeInfo, sArenaRobotConfig);
// } else { // } else {
// String serarchIdFromRank = typedTuples.iterator().next().getValue(); // String serarchIdFromRank = typedTuples.iterator().next().getValue();
// snapOneFightInfo(user, nodeInfo, Integer.valueOf(serarchIdFromRank)); // snapOneFightInfo(user, nodeInfo, Integer.valueOf(serarchIdFromRank));
// } // }
} }
if(nodeInfo.getType()==ExpeditionLogic.NODETYPE_GREED||nodeInfo.getType() ==ExpeditionLogic.NODETYPE_TRY){ if(nodeInfo.getType()==ExpeditionLogic.NODETYPE_GREED||nodeInfo.getType() ==ExpeditionLogic.NODETYPE_TRY){
@ -836,14 +838,17 @@ public class ExpeditionLogic {
finalstar=50; finalstar=50;
} }
SCHero hero1 = SCHero.getsCHero().get(tempid); SCHero hero1 = SCHero.getsCHero().get(tempid);
if (null != hero1) { if (hero1 == null) {
SCHeroRankUpConfig scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(hero1.getStar()); throw new ErrorCodeException(ErrorCode.CFG_NULL);
if(null !=scHeroRankUpConfig&&finalstar>scHeroRankUpConfig.getOpenLevel()){
finalstar=scHeroRankUpConfig.getOpenLevel();
}
} }
SCHeroRankUpConfig scHeroRankUpConfig = STableManager.getConfig(SCHeroRankUpConfig.class).get(hero1.getStar());
if (null != scHeroRankUpConfig && finalstar > scHeroRankUpConfig.getOpenLevel()) {
finalstar = scHeroRankUpConfig.getOpenLevel();
}
//random tempid //random tempid
Hero newHero = new Hero(uid,tempid,finalstar,hero); Hero newHero = new Hero(uid,tempid,finalstar,hero);
@ -867,6 +872,14 @@ public class ExpeditionLogic {
PropertyItem propertyItem = user.getEquipManager().getEquipMap().get(jewel); PropertyItem propertyItem = user.getEquipManager().getEquipMap().get(jewel);
if (propertyItem == null) if (propertyItem == null)
continue; 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 j = (Jewel) propertyItem;
Jewel newequip = new Jewel(user.getId(), j.getEquipId()); Jewel newequip = new Jewel(user.getId(), j.getEquipId());
@ -877,6 +890,33 @@ public class ExpeditionLogic {
// } // }
newHero.addJewel(newequip.getId()); newHero.addJewel(newequip.getId());
} }
Map<Integer, Integer> soulEquipByPositionMap = hero.getSoulEquipByPositionMap();
for (Map.Entry<Integer,Integer> entry:soulEquipByPositionMap.entrySet()) {
SEquipConfig sEquipConfig = STableManager.getConfig(SEquipConfig.class).get(entry.getValue());
if (sEquipConfig == null) {
continue;
}
Set<Integer> 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){ if(isTemp){
user.getExpeditionManager().addHeroToTemp(newHero,nodeId); user.getExpeditionManager().addHeroToTemp(newHero,nodeId);
}else { }else {

View File

@ -488,7 +488,7 @@ public class MissionLoigc {
if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){ if(missionStateChangeInfos!=null && !missionStateChangeInfos.isEmpty()){
CommonProto.Drop.Builder drop = ItemUtil.drop(user, missionStateChangeInfos.get(0).getRewwardGroups(), BIReason.TAKE_MISSION_REWARD); 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); ReportUtil.onReportEvent(user, ReportEventEnum.MISSION_COMPLETE.getType(),String.valueOf(missionId),type);
PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build(); PlayerInfoProto.TakeMissionRewardResponse build = PlayerInfoProto.TakeMissionRewardResponse.newBuilder().setDrop(drop).build();
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.TAKE_MISSION_REWARD_RESPONSE_VALUE,build,true);

View File

@ -19,7 +19,7 @@ public class DailyTaskManager extends AbstractDataManager{
public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) {
ItemManager itemManager = ((User)parm[1]).getItemManager(); ItemManager itemManager = ((User)parm[1]).getItemManager();
Item item = itemManager.getItem(Global.DAILY_TASK_REMOVE_ITEM); 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); return new CumulationData.Result(missionType);
} }

View File

@ -624,6 +624,9 @@ public class ItemUtil {
} else if (sItem.getItemType() == GlobalItemType.SOUL_MARK) { } else if (sItem.getItemType() == GlobalItemType.SOUL_MARK) {
user.getUserMissionManager().onGameEvent(user, GameEvent.GOT_SOUL_MARK, sItem.getId(), itemNum); 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())); ItemLogic.getInstance().addItemLog(new ItemLog(user.getId(),0,user.getPlayerInfoManager().getLevel(),String.valueOf(TimeUtils.now()),reason,sItem.getId(),itemNum,item.getItemNum()));
} }