From 4a50b29266441684f0da94498161bc4e666cf646 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 4 Aug 2020 20:37:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E4=BB=A3=E7=A0=81=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../StartExpeditionBattleRequest.java | 3 + .../handler/equip/ComplexEquipHandler.java | 5 ++ .../ComplexJewelEquipRequestHandler.java | 5 ++ .../ljsd/jieling/handler/map/MapLogic.java | 28 ++++++++- .../ljsd/jieling/ktbeans/ReportEventEnum.java | 26 ++++----- .../ljsd/jieling/logic/family/GuildLogic.java | 4 +- .../ljsd/jieling/logic/hero/HeroLogic.java | 57 ++++++++++++++++++- .../ljsd/jieling/logic/item/ItemLogic.java | 48 +++++++++++++++- .../logic/rank/rankImpl/ForceCurrRank.java | 44 ++++++++------ .../java/com/ljsd/jieling/util/ItemUtil.java | 3 +- 10 files changed, 182 insertions(+), 41 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/StartExpeditionBattleRequest.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/StartExpeditionBattleRequest.java index dc406344a..a83ae5600 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/StartExpeditionBattleRequest.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/StartExpeditionBattleRequest.java @@ -7,6 +7,8 @@ import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.handler.map.behavior.BehaviorUtil; +import com.ljsd.jieling.ktbeans.ReportEventEnum; +import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.expedition.ExpeditionLogic; @@ -124,6 +126,7 @@ public class StartExpeditionBattleRequest extends BaseHandler(consumeMap.keySet()),consumeMap.values()); } else { @@ -184,6 +188,7 @@ public class ComplexEquipHandler extends BaseHandler(countMap.keySet()),"",new ArrayList<>(consumeMap.keySet()),consumeMap.values()); MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.EQUIP_COMPLEX_RESPONSE_VALUE, response.build(), true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipRequestHandler.java index 1a26bd6bf..f85d55b6d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/equip/ComplexJewelEquipRequestHandler.java @@ -6,6 +6,8 @@ import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.ktbeans.ReportEventEnum; +import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.logic.dao.Jewel; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -114,6 +116,8 @@ public class ComplexJewelEquipRequestHandler extends BaseHandler(consumeMap.keySet()),consumeMap.values()); + } else { @@ -204,6 +208,7 @@ public class ComplexJewelEquipRequestHandler extends BaseHandler(consumeMap.keySet()),new ArrayList<>(consumeMap.values()),new ArrayList<>(consumeMap.keySet()),consumeMap.values()); ItemUtil.itemCost(user, consumeMap, BIReason.COMPLEX_EQUIP_CONSUME, 0); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index 5725fac8d..091c62cbe 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -2147,7 +2147,7 @@ public class MapLogic { // String rankKey = RedisKey.getKey(RedisKey.MAINLEVEL_RANK, "", false); // RedisUtil.getInstence().zsetAddOne(rankKey, String.valueOf(user.getId()), sMainLevelConfig.getVirtureId()); RankContext.getRankEnum(RankEnum.MAIN_LEVEL_RANK.getType()).addRank(uid,"",sMainLevelConfig.getVirtureId(),user.getPlayerInfoManager().getMaxForce()); - ReportUtil.onReportEvent(user, ReportEventEnum.PASS_STAGE.getType(),String.valueOf(fightId),"",sMainLevelConfig.getReward()); + ReportUtil.onReportEvent(user, ReportEventEnum.PASS_STAGE.getType(),String.valueOf(fightId),"",sMainLevelConfig.getReward(),new Date()); } @@ -2229,6 +2229,7 @@ public class MapLogic { BehaviorUtil.getLevelDifficultyifficuFightInfo(user,FightType.MonterFight, sFloodConfig.getMonster(), teamId, sFloodConfig.getBattleTime(), fightStartResponse, RedisKey.CHALLENGE_MONSTER_ATTACK); user.getUserMissionManager().onGameEvent(user,GameEvent.MONSTER_ATTACK_PLAY); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightStartResponse.build(), true); + ReportUtil.onReportEvent(user,ReportEventEnum.START_XINMO.getType(),fightId,sFloodConfig.getMonster(),MonsterUtil.getMonsterForce(new int[]{sFloodConfig.getMonster()}),""); } @@ -2283,6 +2284,15 @@ public class MapLogic { user.getMapManager().setLastMonsterAttack(checkFightId + 1); user.getUserMissionManager().onGameEvent(user,GameEvent.MONSTER_ATTACK_LEVEL); MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); + + List itemDrop = drop.getItemlistList(); + List itemIdList = new ArrayList<>(); + List itemNumList = new ArrayList<>(); + itemDrop.forEach(item->{ + itemIdList.add(item.getItemId()); + itemIdList.add(item.getItemNum()); + }); + ReportUtil.onReportEvent(user,ReportEventEnum.START_XINMO.getType(),checkFightId,sFloodConfig.getMonster(),MonsterUtil.getMonsterForce(new int[]{sFloodConfig.getMonster()}),new Date(),"",itemIdList,itemNumList); } @@ -3013,6 +3023,7 @@ public class MapLogic { // throw new ErrorCodeException(ErrorCode.REFRESH_WHEL_TIME_NOT); // } boolean consumeCount = false; + boolean isFailed = false; Set dailyPass = playerInfoManager.getDailyPass(); if(type==2){ if(!dailyPass.contains(id)){ @@ -3067,17 +3078,30 @@ public class MapLogic { builder.setDrop(drop); playerInfoManager.addDailyPass(id); consumeCount = true; + }else{ + isFailed = true; } }else{ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } - + ReportUtil.onReportEvent(user,ReportEventEnum.START_DAILY_DUNGEON.getType(),id,sDailyChallengeConfig.getMonsterId(),MonsterUtil.getMonsterForce(new int[]{sDailyChallengeConfig.getMonsterId()}),"",0); if(consumeCount){ boolean consume = PlayerLogic.getInstance().checkAndUpdate(user, sDailyChallengeConfig.getPrivilegeId()[1], 1); if(!consume){ throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } } + CommonProto.Drop drop = builder.getDrop(); + if(!isFailed){ + List itemDrop = drop.getItemlistList(); + List itemIdList = new ArrayList<>(); + List itemNumList = new ArrayList<>(); + itemDrop.forEach(item->{ + itemIdList.add(item.getItemId()); + itemIdList.add(item.getItemNum()); + }); + ReportUtil.onReportEvent(user,ReportEventEnum.COMPLETE_DAILY_DUNGEON.getType(),id,sDailyChallengeConfig.getMonsterId(),MonsterUtil.getMonsterForce(new int[]{sDailyChallengeConfig.getMonsterId()}),new Date(),"",0,itemIdList,itemNumList,type==1?"挑战":"扫荡"); + } user.getUserMissionManager().onGameEvent(user,GameEvent.DAILY_CHALLENGE,sDailyChallengeConfig.getType()); MessageUtil.sendMessage(session,1,messageType.getNumber(),builder.build()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java index a228f99e1..600dfc7aa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java @@ -45,16 +45,13 @@ public enum ReportEventEnum { ALLOW_FRIENDS_ASK(31,"allow_friends_ask", new CommonEventHandler(),new String[]{"target_id","target_name","target_level","entrance"}), SEND_MESSAGE(32,"send_message", new CommonEventHandler(),new String[]{"message_type","message_content"}), OPEN_MAIL(33,"open_mail", new CommonEventHandler(),new String[]{""}), - START_DAILY_DUNGEON(34,"start_daily_dungeon", new CommonEventHandler(),new String[]{""}), - COMPLETE_DAILY_DUNGEON(35,"complete_daily_dungeon", new CommonEventHandler(),new String[]{""}), - START_XINMO(36,"start_xinmo", new CommonEventHandler(),new String[]{""}), + START_DAILY_DUNGEON(34,"start_daily_dungeon", new CommonEventHandler(),new String[]{"stage_id","enemy_id","enemy_capacity","enemy_hero_list","left_challenge_nums"}), + COMPLETE_DAILY_DUNGEON(35,"complete_daily_dungeon", new CommonEventHandler(),new String[]{"stage_id","enemy_id","enemy_capacity","start_time","enemy_hero_list","left_challenge_nums","rewards_id_list","rewards_num_list","pass_type"}), + START_XINMO(36,"start_xinmo", new CommonEventHandler(),new String[]{"stage_id","enemy_id","enemy_capacity","enemy_hero_list"}), - COMPLETE_XINMO(37,"complete_xinmo", new CommonEventHandler(),new String[]{""}), + COMPLETE_XINMO(37,"complete_xinmo", new CommonEventHandler(),new String[]{"stage_id","enemy_id","enemy_capacity","start_time","enemy_hero_list","rewards_id_list","rewards_num_list"}), - - START_CHECHI(38,"start_chechi", new CommonEventHandler(),new String[]{""}), - - COMPLETE_CHECHI(39,"complete_chechi", new CommonEventHandler(),new String[]{""}), + COMPLETE_CHECHI(39,"complete_chechi", new CommonEventHandler(),new String[]{"stage_id","enemy_id","enemy_capacity","start_time","enemy_hero_list","left_challenge_nums","rewards_id_list","rewards_num_list"}), START_PANOPTIC_MIRROR(40,"start_panoptic_mirror", new CommonEventHandler(),new String[]{""}), @@ -62,21 +59,22 @@ public enum ReportEventEnum { COMPLETE_PANOPTIC_MIRROR(42,"complete_panoptic_mirror", new CommonEventHandler(),new String[]{""}), - EQUIP_SYNTHESIS(43,"equip_synthesis", new CommonEventHandler(),new String[]{""}), + EQUIP_SYNTHESIS(43,"equip_synthesis", new CommonEventHandler(),new String[]{"item_id","item_name","cost_item_id","cost_amount"}), - TREASURE_SYNTHESIS(44,"treasure_synthesis", new CommonEventHandler(),new String[]{""}), + TREASURE_SYNTHESIS(44,"treasure_synthesis", new CommonEventHandler(),new String[]{"item_id","item_name","cost_item_id","cost_amount"}), - FATALITY_SYNTHESIS(45,"fatality_synthesis", new CommonEventHandler(),new String[]{""}), + FATALITY_SYNTHESIS(45,"fatality_synthesis", new CommonEventHandler(),new String[]{"item_id","item_name","cost_item_id"}), NORMAL_SUMMON(46,"Normal_summon", new CommonEventHandler(),new String[]{"hero_id","summon_type","cost_item_id","cost_amount","hero_id_quality_list"}), FRIENDSHIP_SUMMON(47,"friendship_summon", new CommonEventHandler(),new String[]{"hero_id","summon_type","cost_item_id","cost_amount","hero_id_quality_list"}), GODS_SUMMON(48,"gods_summon", new CommonEventHandler(),new String[]{"hero_id","summon_type","cost_item_id","cost_amount","hero_id_quality_list"}), - SUMMON_HERO(49,"summon_hero", new CommonEventHandler(),new String[]{""}),//四元阵 - HERO_COMPOSITION(50,"hero_composition", new CommonEventHandler(),new String[]{""}), + SUMMON_HERO(49,"summon_hero", new CommonEventHandler(),new String[]{"item_id","hero_group","get_amount"}),//四元阵 - SEND_HERO(51,"send_hero", new CommonEventHandler(),new String[]{""}), + HERO_COMPOSITION(50,"hero_composition", new CommonEventHandler(),new String[]{"hero_id","hero_level","hero_quality","reward_list","reward_nums_list"}), + + SEND_HERO(51,"send_hero", new CommonEventHandler(),new String[]{"hero_id","hero_level","hero_quality","reward_list","reward_nums_list"}), TREASURE_DECOMPOSITION(52,"treasure_decomposition", new CommonEventHandler(),new String[]{""}), VIP_LEVEL_UP(100,"", new VipLevelUpEventHandler(),new String[]{""}); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index 30787e8bf..a3b6c7929 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -211,10 +211,8 @@ public class GuildLogic { if(StringUtil.isEmpty(familyName)){ throw new ErrorCodeException(ErrorCode.NULL_NAME); } - boolean result = true; if(!StringUtil.isEmpty(announce)){ - result = ShieldedWordUtils.checkName(user,announce,false,ChatContentType.FAMILY_NAME); - if (!result) { + if (!ShieldedWordUtils.checkName(user,familyName,false,ChatContentType.FAMILY_NAME)||!ShieldedWordUtils.checkName(user,announce,false,ChatContentType.FAMILY_NAME)) { throw new ErrorCodeException(ErrorCode.FAMILY_IN_SENSITIVE); } } 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 333668772..5964bbd82 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 @@ -220,6 +220,7 @@ public class HeroLogic{ //检验消耗 boolean allowFree = false; + int[] costAmount = new int[1]; int privilege = sLotterySetting.getFreeTimes(); if(privilege!=0){ allowFree = PlayerLogic.getInstance().checkAndUpdate(user,privilege, perCount); @@ -230,6 +231,7 @@ public class HeroLogic{ int [][] costItems = new int[][]{cost}; enoughCost = ItemUtil.itemCost(user, costItems,BIReason.RANDOM_HERO_CONSUME,type); if(enoughCost){ + costAmount = cost; break; } } @@ -250,6 +252,8 @@ public class HeroLogic{ resultRandom[i] =sLotteryRewardConfig.getReward(); index = i; } + //上报抽卡 + reportRandom(user,sLotterySetting,resultRandom,costAmount); for(int i = 0;i result = new ArrayList<>(resultRandom.length); + for(int[] random:resultRandom){ + SCHero scHero = SCHero.getsCHero().get(random[0]); + if(scHero==null){ + result.add(String.valueOf(random[0])); + }else{ + result.add(random[0]+"-"+scHero.getStar()); + } + } + ReportUtil.onReportEvent(user,eventEnum.getType(),"",String.valueOf(sLotterySetting.getPerCount()),String.valueOf(costItem[0]),String.valueOf(costItem[1]),result); + } catch (Exception e) { + e.printStackTrace(); + } + } + /** * 每次抽取 * @param user @@ -2357,6 +2403,14 @@ public class HeroLogic{ throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT); } CommonProto.Drop.Builder drop = heroBackDrop(user, heroList, returnPercent, BIReason.HERO_BACK_REWARD,false); + List itemList = drop.getItemlistList(); + List itemId = new ArrayList<>(itemList.size()); + List itemNum = new ArrayList<>(itemList.size()); + itemList.forEach(item->{ + itemId.add(item.getItemId()); + itemNum.add(item.getItemNum()); + }); + ReportUtil.onReportEvent(user,ReportEventEnum.HERO_COMPOSITION.getType(),String.valueOf(hero.getTemplateId()),hero.getLevel(),hero.getStar(),itemId,itemNum); hero.setLevel(user,1); hero.setBreakId(0); HeroInfoProto.HeroReturnResponse build = HeroInfoProto.HeroReturnResponse.newBuilder().setDrop(drop).build(); @@ -2420,7 +2474,6 @@ public class HeroLogic{ resultDrop[index] = new int[]{entry.getKey(),entry.getValue()}; index++; } - CommonProto.Drop.Builder drop = ItemUtil.drop(user, resultDrop, reason); return drop; @@ -2579,7 +2632,7 @@ public class HeroLogic{ HeroInfoProto.MergeSoulResponse build = HeroInfoProto.MergeSoulResponse.newBuilder().setDrop(dropBuilder).build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.SOUL_MERGE_RESPONSE_VALUE,build,true); - + ReportUtil.onReportEvent(user,ReportEventEnum.FATALITY_SYNTHESIS.getType(),targetId,"",soulIdList); } public static void unloadSoulEquipOpt(ISession iSession, String heroId, List equipIdsList) throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index eb1762e55..add2b1c6d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -8,6 +8,8 @@ import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.map.MapManager; +import com.ljsd.jieling.ktbeans.ReportEventEnum; +import com.ljsd.jieling.ktbeans.ReportUtil; import com.ljsd.jieling.logic.activity.event.EspecialEquipUpEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.UserMainTeamForceEvent; @@ -272,6 +274,9 @@ public class ItemLogic { Map equipMap = user.getEquipManager().getEquipMap(); List items = new ArrayList<>(); StringBuilder reward = new StringBuilder(); + List jewelIdReport = new ArrayList<>(); + List jewelLevelReport = new ArrayList<>(); + List jewelQualityReport = new ArrayList<>(); for (String jewelId : jewelList) { if(!equipMap.containsKey(jewelId)) throw new ErrorCodeException(ErrorCode.ITEM_DECOMPOSE_NO_EQUIP); @@ -317,14 +322,21 @@ public class ItemLogic { } } SItem sItem = SItem.getsItemMap().get(propertyItem.getEquipId()); + jewelIdReport.add(propertyItem.getEquipId()); + jewelLevelReport.add(propertyItem.getLevel()); + jewelQualityReport.add(((Jewel) propertyItem).getBuildLevel()); reward = getStringBuilder(reward, 1, sItem.getResolveReward()); } + + for (String jewelId : jewelList) { user.getEquipManager().remove(jewelId); } int[][] dropItems = items.toArray(new int[items.size()][]); + Map reportMap = ItemUtil.arrayToMap(dropItems); + ReportUtil.onReportEvent(user,ReportEventEnum.TREASURE_DECOMPOSITION.getType(),jewelIdReport,jewelLevelReport,jewelQualityReport,new ArrayList<>(reportMap.keySet()),reportMap.values()); CommonProto.Drop.Builder drop = ItemUtil.drop(user, StringUtil.parseFiledInt(reward.toString()), 1, 0,BIReason.JEWEL_DECOMPOSE); ItemUtil.drop(user,dropItems,drop,BIReason.JEWEL_DECOMPOSE); sendUseAndPriceItemMessage(session,MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE,drop); @@ -378,8 +390,14 @@ public class ItemLogic { //2有过突破的卡 =当前等级返还升级材料+突破表返还材料 Map baseItemMap = new HashMap<>(); int rankUpReturnPercent= SSpecialConfig.getIntegerValue(SSpecialConfig.HERO_SACRIFICE_PERCENT); + List heroIdReport = new ArrayList<>(); + List heroLevelReport = new ArrayList<>(); + List heroStarReport = new ArrayList<>(); for (String heroId : heroIdsList) { Hero hero = heroManager.getHeroMap().get(heroId); + heroIdReport.add(hero.getTemplateId()); + heroLevelReport.add(hero.getLevel()); + heroStarReport.add(hero.getStar()); heroManager.removeHero(uid,heroId); int[][] sumConsume = SHeroLevlConfig.getsHeroLevlConfigMap().get(hero.getLevel()).getSumConsume(); SHeroSacrifice starSHeroSacrifice = STableManager.getFigureConfig(HeroStaticConfig.class).getsHeroSacrificeMap(1, hero.getStar()); @@ -427,9 +445,37 @@ public class ItemLogic { }else { user.getUserMissionManager().onGameEvent(user,GameEvent.DESPOSE_HERO,heroIdsList.size()); } + if(reson== BIReason.DECOMPOS_HERO_REWARD){ + ReportUtil.onReportEvent(user, ReportEventEnum.SEND_HERO.getType(),heroIdReport,heroLevelReport,heroStarReport,new ArrayList<>(baseItemMap.keySet()),baseItemMap.values()); + } return ItemUtil.drop(user,itemReturnPercent(itemArray,rankUpReturnPercent),reson); } + /** + * 法宝归元所得 + */ + private Map heroEspecialEquipReturnItem(Hero hero){ + int especialEquipLevel = hero.getEspecialEquipLevel(); + if(especialEquipLevel==1||especialEquipLevel==0){ + return null; + } + SCHero scHero = SCHero.getsCHero().get(hero.getTemplateId()); + int[] equipTalismana = scHero.getEquipTalismana(); + if(equipTalismana==null||equipTalismana.length<2){ + return null; + } + Map baseItemMap = new HashMap<>(); + TreeMap levelMap = (TreeMap) (SEquipTalismana.equipTalismanaStarMap.get(equipTalismana[1])); + Map returnMap = levelMap.subMap(1, hero.getEspecialEquipLevel()); + for(Map.Entry entry:returnMap.entrySet()){ + int[][] rankupBasicMaterial = entry.getValue().getRankupBasicMaterial(); + for(int[] rankUpConsume:rankupBasicMaterial){ + baseItemMap.put(rankUpConsume[0],baseItemMap.getOrDefault(rankUpConsume[0],0)+rankUpConsume[1]); + } + } + return baseItemMap; + } + /** * 返回数量乘比值 * @param sumConsume @@ -582,7 +628,7 @@ public class ItemLogic { * @param equipid * @return */ - public static int getEquipByID(User user, int equipId) throws Exception { + public static int getEquipByID(User user, int equipId){ Item item = user.getItemManager().getItemMap().get(equipId); if(item==null){ return 0; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ForceCurrRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ForceCurrRank.java index bc470229a..5b9b2ebb1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ForceCurrRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/ForceCurrRank.java @@ -60,27 +60,35 @@ public class ForceCurrRank extends AbstractRank implements IEventHandler{ if(infoQueue.isEmpty()){ return; } - int size = infoQueue.size(); - List eventList = new ArrayList<>(size); + try{ + int size = infoQueue.size(); + List eventList = new ArrayList<>(size); - //看队列长度和每次最多传输多少比较,找最小 - int transport = Math.min(size,TRANSPORT_SIZE); + //看队列长度和每次最多传输多少比较,找最小 + int transport = Math.min(size,TRANSPORT_SIZE); - for(int i = 0 ; i < transport;i++){ - eventList.add(infoQueue.poll()); - } - - Set changeId = new HashSet<>(); - eventList.forEach(n->changeId.add(n.getUid())); - changeId.forEach(i-> { - try { - User user = UserManager.getUser(i); - int force = HeroLogic.getInstance().calTeamTotalForce(user, 1, false); - addRank(i,"",force); - } catch (Exception e) { - e.printStackTrace(); + for(int i = 0 ; i < transport;i++){ + UserMainTeamForceEvent event = infoQueue.poll(); + if(event!=null){ + eventList.add(event); + } } - }); + + Set changeId = new HashSet<>(); + eventList.forEach(n->changeId.add(n.getUid())); + changeId.forEach(i-> { + try { + User user = UserManager.getUser(i); + int force = HeroLogic.getInstance().calTeamTotalForce(user, 1, false); + addRank(i,"",force); + } catch (Exception e) { + e.printStackTrace(); + } + }); + + }catch (Exception e){ + e.printStackTrace(); + } } } 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 523c42b61..c55f5ef64 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -598,7 +598,7 @@ public class ItemUtil { // } // KtEventUtils.onKtEvent(user, eventType,reason,GlobalsDef.addReason,entry.getKey(),itemNum,item.getItemNum()); ReportUtil.onReportEvent(user,ReportEventEnum.GET_ITEM.getType(),itemNum,String.valueOf(reason),item.getItemId()); - baseItemReport(user,item.getItemId(),itemNum,2,reason); + baseItemReport(user,item.getItemId(),itemNum,1,reason); if(sItem.getItemType() == GlobalItemType.POKENMON_COMONPENT && sItem.getQuantity()>=SSpecialConfig.getIntegerValue(SSpecialConfig.lamp_lottery_differ_content_parm)){ SDifferDemonsConfig sDifferDemonsConfig = SDifferDemonsConfig.sDifferDemonsConfigMapByComId.get(sItem.getId()); @@ -616,6 +616,7 @@ public class ItemUtil { sendToFront.add(CBean2Proto.getItem(item,-1)); if(sItem.getItemType()==GlobalItemType.EQUIP){ user.getUserMissionManager().onGameEvent(user,GameEvent.GET_EQUIP,sItem.getId(),itemNum); + ReportUtil.onReportEvent(user,ReportEventEnum.GET_EQUIP.getType(),sItem.getId(),itemNum,reason); } } if (dropBuilder != null) {