From 25b2245f5c8d58d9b0457efa386a09dad17625fe Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 14 Jan 2021 00:08:59 +0800 Subject: [PATCH 01/10] =?UTF-8?q?5=E7=82=B9=E6=94=B90=E7=82=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/ServerFiveHandler.java | 23 ---------- .../jieling/handler/ServerZeroHandler.java | 2 +- .../jieling/logic/GlobalDataManaager.java | 7 +-- .../ljsd/jieling/logic/SituationLogic.java | 9 ++-- .../logic/activity/NewEightActivity.java | 2 +- .../ljsd/jieling/thread/task/MinuteTask.java | 43 +++---------------- 6 files changed, 12 insertions(+), 74 deletions(-) delete mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/ServerFiveHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerFiveHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerFiveHandler.java deleted file mode 100644 index 4d2363331..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerFiveHandler.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.ljsd.jieling.handler; - -import com.ljsd.jieling.logic.GlobalDataManaager; -import com.ljsd.jieling.logic.dao.UserManager; -import com.ljsd.jieling.netty.cocdex.PacketNetData; -import com.ljsd.jieling.network.session.ISession; -import rpc.protocols.MessageTypeProto; -import rpc.protocols.PlayerInfoProto; -import org.springframework.stereotype.Component; - -@Component -public class ServerFiveHandler extends BaseHandler{ - @Override - public MessageTypeProto.MessageType getMessageCode() { - return MessageTypeProto.MessageType.SERVER_FIVE_REQEUST; - } - - @Override - public void process(ISession iSession, PacketNetData netData) throws Exception { - GlobalDataManaager.checkNeedReFlush(iSession, UserManager.getUser(iSession.getUid()), PlayerInfoProto.FivePlayerUpdateIndication.newBuilder()); - - } -} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerZeroHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerZeroHandler.java index 852b408db..f10c19bce 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerZeroHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerZeroHandler.java @@ -25,7 +25,7 @@ public class ServerZeroHandler extends BaseHandler { GlobalDataManaager.flushGoodsTimes(user); PlayerLogic.getInstance().sendDayilyMail(user,-1); user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0); - + GlobalDataManaager.checkNeedReFlush(session, UserManager.getUser(session.getUid()), PlayerInfoProto.FivePlayerUpdateIndication.newBuilder()); // int indicationIndex = session.getIndicationIndex(); // byte[] byteBuf = MessageUtil.wrappedBuffer(session.getUid(), session.getToken(), indicationIndex,1, MessageTypeProto.MessageType.ZeroPlayerUpdateIndication_VALUE, PlayerInfoProto.ZeroPlayerUpdateIndication.newBuilder().build()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index c7933b72e..00cdfd114 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -331,7 +331,7 @@ public class GlobalDataManaager implements IManager { public static void checkNeedReFlush(ISession session,User user,PlayerInfoProto.FivePlayerUpdateIndication.Builder fBuilder) throws Exception { // 需要隔天刷新的字段统一在这里处理 - if (TimeUtils.isOverTime(5,user.getPlayerInfoManager().getLoginTime())) { + if (TimeUtils.isOverTime(0,user.getPlayerInfoManager().getLoginTime())) { //活动刷新 ActivityLogic.getInstance().flushEveryDay(user,fBuilder); PlayerLogic.getInstance().vipflushEveryDay(user,fBuilder); @@ -345,7 +345,7 @@ public class GlobalDataManaager implements IManager { PlayerLogic.getInstance().sendTimingMail(user); user.getGuildMyInfo().setLastHurt(0); // GuildChallengeLogic.getInstance().resetBossDamage(user); - if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,5)){ + if(TimeUtils.isSpanTime(user.getPlayerInfoManager().getLoginTime(),TimeUtils.now(),1,0)){ user.getPlayerInfoManager().updateSituationPass(new HashMap<>()); } if(fBuilder!=null){ @@ -450,9 +450,6 @@ public class GlobalDataManaager implements IManager { case 0: number = MessageTypeProto.MessageType.SERVER_ZERO_REQUEST_VALUE; break; - case 5: - number = MessageTypeProto.MessageType.SERVER_FIVE_REQEUST_VALUE; - break; default:{ LOGGER.info("everTask wrong case=>{}", hour); break; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java index a288b09c6..f9504a597 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/SituationLogic.java @@ -69,7 +69,7 @@ public class SituationLogic { overTime = new int[4]; doCheck(); }else{ - if(TimeUtils.getHourOfDay()!=5){ + if(TimeUtils.getHourOfDay()!=0){ return; } doCheck(); @@ -82,9 +82,6 @@ public class SituationLogic { long now = TimeUtils.now(); int hourOfDay = TimeUtils.getHourOfDay(); int week = TimeUtils.getDayOfWeek(); - if(hourOfDay<5){ - week = week==1?7:week-1; - } boolean isIndication = false; for(int[] config:openConfig){ boolean isOpen = false; @@ -98,12 +95,12 @@ public class SituationLogic { isIndication = true; } status[config[0]-1] = isOpen?1:0; - overTime[config[0]-1] =isOpen?(int)(TimeUtils.getLastOrUnderHour(now,5,0,false)/1000):0; + overTime[config[0]-1] =isOpen?(int)(TimeUtils.getLastOrUnderHour(now,0,0,false)/1000):0; } if(isIndication){ //周一刷新 boolean remove = false; - if(TimeUtils.getDayOfWeek()==1&&TimeUtils.getHourOfDay()==5&&TimeUtils.getMiunte()==0){ + if(TimeUtils.getDayOfWeek()==1&&TimeUtils.getHourOfDay()==0&&TimeUtils.getMiunte()==0){ remove = true; } if(remove){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java index f03faa4c1..f222d9f72 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/NewEightActivity.java @@ -21,7 +21,7 @@ public class NewEightActivity extends AbstractActivity { @Override boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { User user = UserManager.getUser(session.getUid()); - if(TimeUtils.getOverTimeCount(user.getPlayerInfoManager().getCreateTime(),System.currentTimeMillis(),5){}",e.toString()); } - try { - everyFiveTask(); - }catch (Exception e){ - e.printStackTrace(); - LOGGER.error("Exception::=>{}",e.toString()); - } try { everyMondyFiveClockTask(); }catch (Exception e){ @@ -167,23 +161,7 @@ public class MinuteTask extends Thread { } } - //弃用 -// private void fiveMinuteOnlineSend() { -// Calendar calendar = Calendar.getInstance(); -// int minute = calendar.get(Calendar.MINUTE); -// if(minute%5 == 0){ -// KTAppOnline ktAppOnline = new KTAppOnline(); -// int onlineNum = OnlineUserManager.sessionMap.size(); -// ParamEventBean paramEventBean = new ParamEventBean(ParamEventBean.OnlineEvent); -// int time =(int)(calendar.getTimeInMillis()/1000); -// paramEventBean.add(String.valueOf(time)); -// paramEventBean.add(String.valueOf(onlineNum)); -// ktAppOnline.setParam_event(paramEventBean); -// ktAppOnline.setParam_data(KtBeanBuilderUtils.paramDataBuildForSystem()); -// ktAppOnline.getParam_data().setCategory_s(LoginParamType.DATA_CATEGORY_APP); -// DataMessageUtils.addLogQueue(ktAppOnline); -// } -// } + //每分钟异步上报在线人数 private void reportUserOnline() { new OnlineUserReportTask().start(); @@ -205,28 +183,17 @@ public class MinuteTask extends Thread { LOGGER.info("everyHourTask end ..."); } } + + //每日凌晨零点执行 public void everyZeroTask() throws Exception { Calendar calendar = Calendar.getInstance(); int hour = calendar.get(Calendar.HOUR_OF_DAY); int minute = calendar.get(Calendar.MINUTE); if(hour == 0 && minute ==0){ - LOGGER.info("DailyOfZeroTask start ..."); - ArenaLogic.getInstance().sendReward(GlobalsDef.ARENA_DAILY_REWARD); - GlobalDataManaager.everTask(0); - LOGGER.info("DailyOfZeroTask end ..."); - } - } - - - //每日凌晨五点执行 - public void everyFiveTask() throws Exception { - Calendar calendar = Calendar.getInstance(); - int hour = calendar.get(Calendar.HOUR_OF_DAY); - int minute = calendar.get(Calendar.MINUTE); - if(hour == 5 && minute ==0){ //保证每分钟线程 try { + ArenaLogic.getInstance().sendReward(GlobalsDef.ARENA_DAILY_REWARD); Map guildInfoMap = GuilidManager.guildInfoMap; for(Map.Entry guildInfoEntry:guildInfoMap.entrySet()){ RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false)); @@ -264,7 +231,7 @@ public class MinuteTask extends Thread { LOGGER.info("DailyOfFiveTask start ..."); - GlobalDataManaager.everTask(5); + GlobalDataManaager.everTask(0); LOGGER.info("DailyOfFiveTask end ..."); } } From 127a5f4abde4b363607fe1d6809adb18d570e677 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Fri, 8 Jan 2021 13:58:36 +0800 Subject: [PATCH 02/10] =?UTF-8?q?0=E7=82=B95=E7=82=B9=E9=81=97=E7=95=99?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/RechargeTotalActivity.java | 2 +- .../com/ljsd/jieling/logic/dao/PlayerManager.java | 9 +++------ .../ljsd/jieling/logic/dao/UserMissionManager.java | 12 ++++++------ .../ljsd/jieling/logic/dao/WorldTreasureReward.java | 2 +- .../jieling/logic/family/GuildChallengeLogic.java | 2 +- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java index 006ad5b28..416b60903 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/RechargeTotalActivity.java @@ -21,7 +21,7 @@ class RechargeTotalActivity extends AbstractActivity { long now = TimeUtils.now(); User user = UserManager.getUser(session.getUid()); RechargeInfo rechargeInfo = user.getPlayerInfoManager().getRechargeInfo(); - int days = TimeUtils.differentDaysByHour(rechargeInfo.getCreateTime(), now,5) + 1; + int days = TimeUtils.differentDaysByHour(rechargeInfo.getCreateTime(), now,0) + 1; if (missionProgress/1000 < values[0][0] || days < values[0][1]) { return false; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 119584bc7..e3e55c3da 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -399,12 +399,9 @@ public class PlayerManager extends MongoBase { }else { maxTime = TimeUtils.now()/1000+config.getContinueTime()[0]; } - //todo 记得删掉 - if(privilageId==4013){ - maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000,5,0,true)/1000); - }else{ - maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000,0,0,true)/1000); - } + + maxTime = (int)(TimeUtils.getLastOrUnderHour(maxTime*1000,0,0,true)/1000); + newVipInfo.setEffectTime((int)maxTime); } this.vipInfo.put(privilageId,newVipInfo); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java index f078c191d..02c4ecdc3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserMissionManager.java @@ -100,7 +100,7 @@ public class UserMissionManager extends MongoBase { int activityId = (int) parm[0];//当前轮次青龙秘宝的活动ID int[] refreshIds = resetTreasureTaskInfo(1,activityId,missionTypeEnumListMap,treasureCumulationData); treasureCumulationData = new CumulationData(); - int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5, 0,false)/1000); + int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0, 0,false)/1000); CommonProto.RefreshTask.Builder task = treasureIndicationBuild(1, refreshIds).setRefreshTime(dayRefreshTime); PlayerInfoProto.TreasureRefreshIndication indication1 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task.build()).build(); MessageUtil.sendIndicationMessage(session,1, MessageTypeProto.MessageType.TREASURE_REFRESH_INDICATION_VALUE,indication1,true); @@ -110,7 +110,7 @@ public class UserMissionManager extends MongoBase { int[] weekRefreshIds = resetTreasureTaskInfo(2,aId,missionTypeEnumListMap,treasureWeekCumulationData); if(weekRefreshIds != null){ treasureWeekCumulationData = new CumulationData(); - int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000); + int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,0)/1000); user.getPlayerInfoManager().clearVipCount(VipPrivilegeType.DRAGON_TREASURE_SUPPLY); CommonProto.RefreshTask.Builder task2= treasureIndicationBuild(2, weekRefreshIds).setRefreshTime(weekRefreshTime); PlayerInfoProto.TreasureRefreshIndication indication2 = PlayerInfoProto.TreasureRefreshIndication.newBuilder().addTasks(task2.build()).build(); @@ -541,14 +541,14 @@ public class UserMissionManager extends MongoBase { } do{ startTime += TimeUtils.WEEK; - }while(startTime+5*TimeUtils.HOUR Date: Fri, 8 Jan 2021 15:01:21 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=9A=82=E6=97=B6=E4=B8=8D=E6=89=93?= =?UTF-8?q?=E5=8D=B0=E6=97=A0=E7=94=A8=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/util/MessageUtil.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java index a0f239593..775c184d0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/MessageUtil.java @@ -37,8 +37,8 @@ public class MessageUtil { backMessage = new byte[0]; } else { backMessage = generatedMessage.toByteArray(); - if (backMessage.length != 0) - LOGGER.info("wrappedBuffer uid=>{}, generatedMessage=>{}", uid, JsonFormat.printToString(generatedMessage)); +// if (backMessage.length != 0) +// LOGGER.info("wrappedBuffer uid=>{}, generatedMessage=>{}", uid, JsonFormat.printToString(generatedMessage)); } return wrappedBuffer(uid, token, index, result, msgId, backMessage); From 98967d13ce3e505804aad10618d9feebd37082a6 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 11 Jan 2021 11:14:27 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E6=96=B0=E5=B0=86=E6=89=93=E7=82=B9?= =?UTF-8?q?=E5=92=8C=E5=A5=96=E5=8A=B1=E8=AE=A1=E7=AE=97=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/NewGeneralAttackHandler.java | 20 ++++++++++++------- .../ljsd/jieling/ktbeans/ReportEventEnum.java | 2 +- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/NewGeneralAttackHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/NewGeneralAttackHandler.java index 4cc904e61..a94581f19 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/NewGeneralAttackHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/NewGeneralAttackHandler.java @@ -13,6 +13,7 @@ import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.fight.*; import com.ljsd.jieling.logic.fight.result.FightResult; +import com.ljsd.jieling.logic.item.ItemLogic; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.util.ItemUtil; import config.SMonsterConfig; @@ -59,6 +60,7 @@ public class NewGeneralAttackHandler extends BaseHandler dropResult = new ArrayList<>(); for (int i = 0; i < hurtList.length; i++) { // 当前类型奖励次数 - float v = b / hurtList[i][0]; + int v = (int)b / hurtList[i][0]; dropList[0] = hurtList[i][1]; ItemUtil.drop(user, dropList,drop,v,0, BIReason.NEW_GENERAL_ATTACK); - dropResult.add(dropList[0] + "#" + v); } // 消耗道具 PlayerLogic.getInstance().checkAndUpdate(user, proto.getPrivilageTypeId(),1); + // 战报记录,奖励信息 + List dropResult = new ArrayList<>(); + List list = drop.build().getItemlistList(); + for (int i = 0; i < list.size(); i++) { + String str = list.get(i).getItemId() + "#" + list.get(i).getItemNum(); + dropResult.add(str); + } + // 埋点 - ReportUtil.onReportEvent(user, ReportEventEnum.VANQUISH_BOSS.getType(), monsterGroupId,checkResult[0],hurtResult,dropResult); + ReportUtil.onReportEvent(user, ReportEventEnum.VANQUISH_BOSS.getType(), monsterId,(int)lessBlood,dropResult); return ActivityProto.NewGeneralAttackResponse.newBuilder().setFightData(fightData).setDrop(drop).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 68926f388..a0c2fdb20 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportEventEnum.java @@ -95,7 +95,7 @@ public enum ReportEventEnum { ARENA_CHALLENGE(66,"arena_challenge",CommonEventHandler.getInstance(),new String[]{"battle_result","own_integral_num","rewards_num","own_new_integral_num","own_ranking","role_id","enemy_integral_num","new_enemy_integral_num","enemy_ranking","hero1","hero2","hero3","hero4","hero5","hero6","attack_pokemon","defend_hero1","defend_hero2","defend_hero3","defend_hero4","defend_hero5","defend_hero6","defend_pokemon"}), CEREMONY(67,"ceremony",CommonEventHandler.getInstance(),new String[]{"cost_item_id","integral_num","new_integral_num","own_ranking","guild_ranking"}), TREASURE_SUMMON(68,"treasure_summon",CommonEventHandler.getInstance(),new String[]{"beast_id","summon_type","cost_item_id","cost_amount","reward_nums_list"}),// 降妖夺宝 - VANQUISH_BOSS(69,"vanquish_boss",CommonEventHandler.getInstance(),new String[]{"boss_id","battle_result","damage_num","reward_nums_list"}),// 新将来袭 + VANQUISH_BOSS(69,"vanquish_boss",CommonEventHandler.getInstance(),new String[]{"boss_id","damage_num","reward_nums_list"}),// 新将来袭 VIP_LEVEL_UP(100,"", new VipLevelUpEventHandler(),new String[]{""}); From 188952ad47e0ae98f55c168475b670e3f724ea2a Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 11 Jan 2021 17:13:17 +0800 Subject: [PATCH 05/10] =?UTF-8?q?=E6=88=98=E6=8A=A5=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E5=A5=BD=E5=8F=8B=E7=B1=BB=E5=9E=8B=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E5=92=8C=E6=8A=A5=E9=94=99=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- serverlogic/src/main/java/com/ljsd/GmService.java | 2 +- .../src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java | 3 ++- .../java/com/ljsd/jieling/logic/fight/FightRecordLogic.java | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/GmService.java b/serverlogic/src/main/java/com/ljsd/GmService.java index cf3e03406..4eeba5540 100644 --- a/serverlogic/src/main/java/com/ljsd/GmService.java +++ b/serverlogic/src/main/java/com/ljsd/GmService.java @@ -127,7 +127,7 @@ public class GmService implements RPCRequestGMIFace.Iface { if (cmd.contains("delete")) { FightRecordLogic.getInstance().delete(); } else if (cmd.contains("all")){ - String allValue = FightRecordLogic.getInstance().getAll(Integer.parseInt(parameters[2])); + String allValue = FightRecordLogic.getInstance().getAll(Integer.parseInt(parameters[1])); result.setResultMsg(allValue); } else { String oneRecord = FightRecordLogic.getInstance().getOneRecord(parameters[0]); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java index b5523350f..ec21822b5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/arena/ArenaLogic.java @@ -617,7 +617,8 @@ public class ArenaLogic { .setFightId(FightUtil.getFightId(mine.getId(),FightType.Firend.getType())) .build(); - + // 记录战报 + FightRecordLogic.getInstance().addRecordMap(mine,build); ArenaInfoProto.PlayWithSbResponse response = ArenaInfoProto.PlayWithSbResponse.newBuilder().setFightData(build).build(); MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.PLAY_WITH_SB_RESPONSE_VALUE,response,true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightRecordLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightRecordLogic.java index ca5c873d9..72ad635c1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightRecordLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightRecordLogic.java @@ -85,7 +85,7 @@ public class FightRecordLogic { } // 获取类型数据 List strings = valueMap.get(multiKey); - if (strings.isEmpty()){ + if (strings == null || strings.isEmpty()){ return null; } // 遍历 From 0c4041c74db60305c297b23df63b02cedefb5aa9 Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 13 Jan 2021 21:12:52 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E8=BD=A6=E8=BF=9F=E6=96=97=E6=B3=95?= =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=8C=E6=A0=B9=E6=8D=AEboss=E6=9B=B4?= =?UTF-8?q?=E6=8D=A2=E6=8E=92=E8=A1=8C=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/function/CarDelayFunction.java | 7 ++++- .../java/config/SWorldBossRewardConfig.java | 29 +++++++++++++++---- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java index 70c1f2959..99cb628e6 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/CarDelayFunction.java @@ -44,9 +44,14 @@ public class CarDelayFunction implements FunctionManager { @Override public void closeAction() throws Exception { - Map> rewardByTypeAndRankMap = SWorldBossRewardConfig.rewardByTypeAndRankMap; + // 获取车迟斗法当前boss的索引id + int indexId = GuildFightLogic.carDelayProgressIndication.getBossIndexId(); + // 根据索引id取出当前的奖励配置 + Map> rewardByTypeAndRankMap = SWorldBossRewardConfig.rewardByBossIdMap.get(indexId); + TreeMap personRewardConfigTreeMap = rewardByTypeAndRankMap.get(2); TreeMap guildRewardConfigTreeMap = rewardByTypeAndRankMap.get(1); + Set> personRangeWithScores = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.CAR_DEALY_RANK, "", 0, -1); int rank=0; String personTitle = SErrorCodeEerverConfig.getI18NMessage("family_fight_rank_personreward_title"); diff --git a/tablemanager/src/main/java/config/SWorldBossRewardConfig.java b/tablemanager/src/main/java/config/SWorldBossRewardConfig.java index 213a7433c..8456952da 100644 --- a/tablemanager/src/main/java/config/SWorldBossRewardConfig.java +++ b/tablemanager/src/main/java/config/SWorldBossRewardConfig.java @@ -19,23 +19,36 @@ public class SWorldBossRewardConfig implements BaseConfig { private int type; - public static Map> rewardByTypeAndRankMap = new HashMap<>(); + private int bossId; + /** + * 类型,排名,奖励 + */ + public static Map> rewardByTypeAndRankMap = new HashMap<>(); + /** + * boss索引id,类型,排名,奖励 + */ + public static Map>> rewardByBossIdMap = new HashMap<>(); @Override public void init() throws Exception { Map config = STableManager.getConfig(SWorldBossRewardConfig.class); - Map> rewardByTypeAndRankMapTmp = new HashMap<>(); + Map> rewardByTypeAndRankMapTmp = new HashMap<>(); + Map>> rewardByBossIdMapTmp = new HashMap<>(); config.forEach((id,item)->{ rewardByTypeAndRankMapTmp.putIfAbsent(item.getType(),new TreeMap<>()); rewardByTypeAndRankMapTmp.get(item.getType()).put(item.getSection()[0], StringUtil.parseArrayToString(item.getReward())); - }); - rewardByTypeAndRankMap = rewardByTypeAndRankMapTmp; + rewardByBossIdMapTmp.putIfAbsent(item.getBossId(),new TreeMap<>()); + rewardByBossIdMapTmp.get(item.getBossId()).putIfAbsent(item.getType(),new TreeMap<>()); + rewardByBossIdMapTmp.get(item.getBossId()).get(item.getType()).put(item.getSection()[0], StringUtil.parseArrayToString(item.getReward())); + }); + + rewardByTypeAndRankMap = rewardByTypeAndRankMapTmp; + rewardByBossIdMap = rewardByBossIdMapTmp; } - - public int getId() { + public int getId() { return id; } @@ -50,4 +63,8 @@ public class SWorldBossRewardConfig implements BaseConfig { public int getType() { return type; } + + public int getBossId() { + return bossId; + } } \ No newline at end of file From 9894eab18d357a565cb814453986017da9e2119c Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 16 Jan 2021 20:24:14 +0800 Subject: [PATCH 07/10] =?UTF-8?q?=E6=B4=BB=E5=8A=A85=E7=82=B9=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/activity/ActivityLogic.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index a3eb2462c..a2f3c3532 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1333,12 +1333,12 @@ public class ActivityLogic implements IEventHandler{ } public void getTreasureNextRefreshTime(ISession session,MessageTypeProto.MessageType messageType) throws Exception { - int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, false)/1000); + int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0,0, false)/1000); int uid = session.getUid(); User user = UserManager.getUser(uid); PlayerInfoProto.TreasureRefreshTimeResponse response; if(user.getActivityManager().getActivityMissionMap().containsKey(801)){ - int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000); + int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,0)/1000); response = PlayerInfoProto.TreasureRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime(weekRefreshTime).build(); }else{ long weekRefresh = user.getUserMissionManager().getTreasureMissionIdsType().getWeekRefresh(); @@ -1348,8 +1348,8 @@ public class ActivityLogic implements IEventHandler{ } public void getJadeDynastyNextRefreshTime(ISession session,MessageTypeProto.MessageType messageType) throws Exception { - int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 5,0, false)/1000); - int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,5)/1000); + int dayRefreshTime=(int) (TimeUtils.getLastOrUnderHour(TimeUtils.now(), 0,0, false)/1000); + int weekRefreshTime = (int)(TimeUtils.getNextWeekendStartTime(1,0)/1000); PlayerInfoProto.JadeDynastyRefreshTimeResponse response = PlayerInfoProto.JadeDynastyRefreshTimeResponse.newBuilder().setDayTime(dayRefreshTime).setWeekTime(weekRefreshTime).build(); MessageUtil.sendMessage(session,1,messageType.getNumber(),response,true); } From ef2f1617f3d89f67580d7cf70812f5ccf953c2ac Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sat, 16 Jan 2021 21:15:13 +0800 Subject: [PATCH 08/10] =?UTF-8?q?=E7=A4=BE=E7=A8=B7=E5=A4=A7=E5=85=B8?= =?UTF-8?q?=E5=BC=80=E5=A7=8B=E6=B8=85=E9=99=A4=E5=BE=80=E6=9C=9F=E9=81=93?= =?UTF-8?q?=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/globals/BIReason.java | 2 ++ .../com/ljsd/jieling/logic/activity/SheJiActivity.java | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index 84fcafd60..6e07634af 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -306,4 +306,6 @@ public interface BIReason { int NEW_GENERAL_ATTACK = 1076;//新将来袭 int WORLD_ARENA = 1077;//跨服竞技场 + + int SHEJI_ACTIVITY_INIT_CONSUME = 1078;//社稷大典开始清除往期道具 } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SheJiActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SheJiActivity.java index 6dfca6d42..f4f485c6c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SheJiActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/SheJiActivity.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.core.Lockeys; import com.ljsd.jieling.core.SimpleTransaction; import com.ljsd.jieling.db.mongo.MongoUtil; +import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.jbean.ActivityProgressInfo; @@ -12,6 +13,7 @@ import com.ljsd.jieling.logic.activity.event.CommitSheJiEvent; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.GuilidManager; +import com.ljsd.jieling.logic.dao.Item; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.GuildInfo; import com.ljsd.jieling.logic.dao.root.User; @@ -61,6 +63,12 @@ class SheJiActivity extends AbstractActivity { // } // } + int costItemId = 50003;//社稷赏 + Item item = user.getItemManager().getItem(costItemId); + + if(item!=null&&item.getItemNum()!=0){ + ItemUtil.itemCost(user,new int[][]{{costItemId,item.getItemNum()}}, BIReason.SHEJI_ACTIVITY_INIT_CONSUME,1); + } } From f6ff2bed3dd9606a26265548b1c3d487ffaaebec Mon Sep 17 00:00:00 2001 From: lvxinran Date: Mon, 18 Jan 2021 16:25:55 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=88=98=E6=96=97?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fightmanager/src/main/java/com/ljsd/fight/CheckFight.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fightmanager/src/main/java/com/ljsd/fight/CheckFight.java b/fightmanager/src/main/java/com/ljsd/fight/CheckFight.java index 4fadbf029..74ae97c52 100644 --- a/fightmanager/src/main/java/com/ljsd/fight/CheckFight.java +++ b/fightmanager/src/main/java/com/ljsd/fight/CheckFight.java @@ -106,7 +106,7 @@ public class CheckFight { int[] resultCache = new int[8];//对方阵容走配置 Todo 后面结构走配置 resultCache[0]=status; resultCache[1]=duration; - // LOGGER.info(" lua check test fight result : "+ status); + LOGGER.info(" lua check test fight result : "+ status); for (int i = 1; i <= result.length(); i++) { long tolong = result.rawget(i).tolong(); if(tolong>0){ @@ -115,7 +115,7 @@ public class CheckFight { resultCache[i+1]= (int)Math.max((long) Integer.MIN_VALUE,tolong); } resultCache[i+1] = result.rawget(i).toint(); - // LOGGER.info(i+" --> 单位剩余血量 : "+ resultCache[i+1]); + LOGGER.info(i+" --> 单位剩余血量 : "+ resultCache[i+1]); } return resultCache; From 0b580e8ce344755fdc090c3218d855f5a406a17b Mon Sep 17 00:00:00 2001 From: duhui Date: Wed, 13 Jan 2021 11:38:48 +0800 Subject: [PATCH 10/10] =?UTF-8?q?0120=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=201=E3=80=81=E7=AB=9E=E6=8A=80=E5=9C=BA=E6=9C=BA=E5=99=A8?= =?UTF-8?q?=E4=BA=BA=E8=8B=B1=E9=9B=84=E6=98=BE=E7=A4=BAbug=E5=A4=84?= =?UTF-8?q?=E7=90=86=202=E3=80=81=E5=BF=83=E9=AD=94=E8=AF=95=E7=82=BC?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8E=92=E5=90=8D=E5=A5=96=E5=8A=B1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SArenaRobotStaticConfig.java | 23 +++++-- .../handler/GetDemonsTrialRewardHandler.java | 61 +++++++++++++++++++ .../jieling/handler/GetPlayerInfoHandler.java | 3 +- .../ljsd/jieling/handler/map/MapManager.java | 21 +++++++ .../com/ljsd/jieling/kefu/Cmd_role_gm.java | 9 +-- .../logic/expedition/ExpeditionLogic.java | 8 +-- .../ljsd/jieling/logic/fight/FightUtil.java | 8 +-- .../ljsd/jieling/logic/hero/HeroLogic.java | 60 +++++++++++++++--- .../jieling/logic/player/PlayerLogic.java | 9 ++- .../logic/rank/rankImpl/AbstractRank.java | 12 +++- .../com/ljsd/jieling/util/CBean2Proto.java | 5 +- .../main/java/config/SArenaRobotConfig.java | 31 +++++----- .../src/main/java/config/SFloodConfig.java | 10 +++ 13 files changed, 206 insertions(+), 54 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/GetDemonsTrialRewardHandler.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/SArenaRobotStaticConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/SArenaRobotStaticConfig.java index 7a83dd8e4..c0e50ab46 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/SArenaRobotStaticConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/clazzStaticCfg/SArenaRobotStaticConfig.java @@ -1,5 +1,6 @@ package com.ljsd.jieling.config.clazzStaticCfg; +import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.logic.hero.HeroLogic; import config.SArenaRobotConfig; import config.SCHero; @@ -7,6 +8,7 @@ import config.SWorkShopTechnology; import manager.AbstractClassStaticConfig; import manager.STableManager; import manager.Table; +import rpc.protocols.CommonProto; import util.MathUtils; import java.util.*; @@ -25,17 +27,28 @@ public class SArenaRobotStaticConfig extends AbstractClassStaticConfig { for(SArenaRobotConfig sArenaRobotConfig : integerSArenaRobotConfigMap.values()){ List heroList = sArenaRobotConfig.getHeroList(); - int heroLevel = sArenaRobotConfig.getRobotLevel(); - Map starHeroMap = new HashMap<>(); + int heroLevel = sArenaRobotConfig.getRoleLv(); + + Map heroMap = new HashMap<>(); for(Integer heroTid :heroList){ SCHero scHero = SCHero.getsCHero().get(heroTid); if(null ==scHero){ throw new IllegalArgumentException("sArenaRobotConfig id "+sArenaRobotConfig.getId()+"机器人英雄模板id找不到 heroTid:"+heroTid); } - int heroBreakId = HeroLogic.getInstance().calRobotStarByLevel(heroTid, heroLevel,starHeroMap); - sArenaRobotConfig.setBreakId(heroBreakId); - sArenaRobotConfig.setStarOfHeroMap(starHeroMap); + + CommonProto.Hero.Builder heroBuilder = CommonProto.Hero.newBuilder(); + + int heroStarBreakId = HeroLogic.getInstance().calRobotStarByLevel(heroTid,heroLevel,heroBuilder); + int heroBreakId = HeroLogic.getInstance().calRobotBreaByLevel(heroTid,heroLevel,heroBuilder); + + heroBuilder.setId(String.valueOf(scHero.getId())); + heroBuilder.setHeroId(scHero.getId()); + heroBuilder.setLevel(heroLevel); + heroBuilder.setStarBreakId(heroStarBreakId); + heroBuilder.setBreakId(heroBreakId); + heroMap.put(heroTid,heroBuilder.build()); } + sArenaRobotConfig.setHeroMapList(heroMap); int totleForce = HeroLogic.getInstance().calRobotTotalForce(sArenaRobotConfig); sArenaRobotConfig.setTotalForce(totleForce); LinkedList integers = force2robotId.get(totleForce); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetDemonsTrialRewardHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetDemonsTrialRewardHandler.java new file mode 100644 index 000000000..5428dd9ba --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetDemonsTrialRewardHandler.java @@ -0,0 +1,61 @@ +package com.ljsd.jieling.handler; + +import com.google.protobuf.GeneratedMessage; +import com.ljsd.jieling.exception.ErrorCode; +import com.ljsd.jieling.exception.ErrorCodeException; +import com.ljsd.jieling.globals.BIReason; +import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.logic.item.ItemLogic; +import com.ljsd.jieling.util.ItemUtil; +import config.SFloodConfig; +import manager.STableManager; +import org.springframework.stereotype.Component; +import rpc.protocols.CommonProto; +import rpc.protocols.MapInfoProto; +import rpc.protocols.MessageTypeProto; + +import java.util.Set; + +/** + * 心魔试炼领取奖励 + */ +@Component +public class GetDemonsTrialRewardHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.DemonsTrialRewardRequest; + } + + @Override + public GeneratedMessage processWithProto(int uid, MapInfoProto.DemonsTrialRewardRequest proto) throws Exception { + + // 用户信息 + User user = UserManager.getUser(uid); + if (user == null) { + throw new ErrorCodeException(ErrorCode.UNKNOWN); + } + // 层id + int layerId = proto.getLayerId(); + // 奖励是否已经领取 + Set rewardInfo = user.getMapManager().getDemonsTrialRewardInfo(); + if (rewardInfo.contains(layerId)) { + throw new ErrorCodeException(ErrorCode.HAD_TAKE_REWARD); + } + // 表里是否有配置 + SFloodConfig sFloodConfig = STableManager.getConfig(SFloodConfig.class).get(layerId); + int[][] reward = sFloodConfig.getSpecialReward(); + if (reward == null || reward.length <= 0) { + throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE); + } + + // 道具逻辑,封装好的 + CommonProto.Drop.Builder drop = CommonProto.Drop.newBuilder(); + // 领取奖励 + ItemUtil.drop(user, reward, drop, BIReason.MONSTERATTACK_REWARD); + + user.getMapManager().addDemonsTrialRewardInfo(layerId); + + return MapInfoProto.DemonsTrialRewardResponse.newBuilder().setDrop(drop).build(); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index a7eac2c1c..485ae1d84 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -27,7 +27,6 @@ import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import rpc.protocols.CommonProto; import rpc.protocols.MessageTypeProto; -import rpc.protocols.PlayerInfoProto; import com.ljsd.jieling.thread.task.RPCServerTask; import com.ljsd.jieling.util.CBean2Proto; import com.ljsd.jieling.util.ItemUtil; @@ -37,6 +36,7 @@ import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import rpc.protocols.PlayerInfoProto; import util.TimeUtils; import java.util.*; @@ -220,6 +220,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ .setHadLuckTime( user.getPlayerInfoManager().getLuckWheelLimitTime()) .setHadAdvanceLuckTime(user.getPlayerInfoManager().getLuckAdvanceWheelLimitTime()) .setWorldLeve(GlobleSystemLogic.getGloableWorldLeveCache()) + .addAllDemonsTrialRewardInfo(user.getMapManager().getDemonsTrialRewardInfo()) .build(); ReportUtil.onReportEvent(user, ReportEventEnum.APP_LOGIN.getType()); try { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java index 5477c8a8b..beec5d133 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapManager.java @@ -107,6 +107,8 @@ public class MapManager extends MongoBase { private int lastMonsterAttack =1;//兽潮来袭波数 + private Set demonsTrialRewardInfo;// 心魔试炼已领取奖励 + private Set playedMapType = new HashSet<>(); private TrialInfo trialInfo = new TrialInfo(); @@ -860,7 +862,26 @@ public class MapManager extends MongoBase { public void setCurrentJourneyId(int currentJourneyId) { this.currentJourneyId = currentJourneyId; updateString("currentJourneyId",currentJourneyId); + } + public Set getDemonsTrialRewardInfo() { + if (demonsTrialRewardInfo == null){ + return new TreeSet<>(); + } + return demonsTrialRewardInfo; + } + + public void setDemonsTrialRewardInfo(Set demonsTrialRewardInfos) { + demonsTrialRewardInfo = demonsTrialRewardInfos; + updateString("demonsTrialRewardInfo",demonsTrialRewardInfo); + } + + public void addDemonsTrialRewardInfo(int layerId) { + if (demonsTrialRewardInfo == null){ + demonsTrialRewardInfo = new TreeSet<>(); + } + demonsTrialRewardInfo.add(layerId); + updateString("demonsTrialRewardInfo",demonsTrialRewardInfo); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_role_gm.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_role_gm.java index 370b01a3c..267a9d5ac 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_role_gm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_role_gm.java @@ -16,6 +16,7 @@ import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.expedition.ExpeditionLogic; import com.ljsd.jieling.logic.hero.HeroLogic; +import rpc.protocols.CommonProto; import rpc.protocols.Expedition; import rpc.protocols.MessageTypeProto; import com.ljsd.jieling.util.MessageUtil; @@ -156,14 +157,14 @@ public class Cmd_role_gm extends GmRoleAbstract { SnapFightInfo fightInfo = new SnapFightInfo(); int force = sArenaRobotConfig.getTotalForce(); Map heroAllAttribute = new HashMap<>(); - Map heroStarsMap = sArenaRobotConfig.getStarOfHeroMap(); + Map heroMapList = sArenaRobotConfig.getHeroMapList(); Map bossHP = new HashMap<>(); int inner=1; - for (Map.Entry item : heroStarsMap.entrySet()) { + for (Map.Entry item : heroMapList.entrySet()) { StringBuilder skillSb = new StringBuilder(); Integer heroTid = item.getKey(); - Integer heroStar = item.getValue(); + Integer heroStar = item.getValue().getStar(); SCHero scHero = SCHero.getsCHero().get(heroTid); List skillIds = scHero.getSkillListByStar(heroStar); @@ -175,7 +176,7 @@ public class Cmd_role_gm extends GmRoleAbstract { int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId(); int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv(); int robotLevel = sArenaRobotConfig.getRoleLv(); - Map robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, sArenaRobotConfig.getBreakId(), differDemonsId, differDemonsLv, false); + Map robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, 0, differDemonsId, differDemonsLv, false); heroAllAttribute.put(heroTid.toString(), new FamilyHeroInfo(heroTid, robotLevel, heroStar, robotHeroAttribute,inner++)); // String property = HeroLogic.getInstance().getRobotHeroProperty(sArenaRobotConfig,scHero,propertySb,robotHeroAttribute).toString(); } 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 644c3dbe4..685bfa6ac 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 @@ -525,14 +525,14 @@ public class ExpeditionLogic { SnapFightInfo fightInfo = new SnapFightInfo(); int force = sArenaRobotConfig.getTotalForce(); Map heroAllAttribute = new HashMap<>(); - Map heroStarsMap = sArenaRobotConfig.getStarOfHeroMap(); + Map heroMapList = sArenaRobotConfig.getHeroMapList(); Map bossHP = new HashMap<>(); int innerPosition= 1; - for (Map.Entry item : heroStarsMap.entrySet()) { + for (Map.Entry item : heroMapList.entrySet()) { StringBuilder skillSb = new StringBuilder(); Integer heroTid = item.getKey(); - Integer heroStar = item.getValue(); + Integer heroStar = item.getValue().getStar(); SCHero scHero = SCHero.getsCHero().get(heroTid); List skillIds = scHero.getSkillListByStar(heroStar); @@ -544,7 +544,7 @@ public class ExpeditionLogic { int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId(); int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv(); int robotLevel = sArenaRobotConfig.getRoleLv(); - Map robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, sArenaRobotConfig.getBreakId(), differDemonsId, differDemonsLv, false); + Map robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, robotLevel, 0, differDemonsId, differDemonsLv, false); heroAllAttribute.put(heroTid.toString(), new FamilyHeroInfo(heroTid, robotLevel, heroStar, robotHeroAttribute,innerPosition++)); // String property = HeroLogic.getInstance().getRobotHeroProperty(sArenaRobotConfig,scHero,propertySb,robotHeroAttribute).toString(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java index d58fda5c9..98466940c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/FightUtil.java @@ -418,13 +418,13 @@ public class FightUtil { } private static CommonProto.FightTeamInfo getRobotFightTeamInfo(SArenaRobotConfig sArenaRobotConfig,Map remainHp) { List heroFightInfos = new ArrayList<>(); - Map heroStarsMap = sArenaRobotConfig.getStarOfHeroMap(); + Map heroMapList = sArenaRobotConfig.getHeroMapList(); int i=0; - for(Map.Entry item : heroStarsMap.entrySet()){ + for(Map.Entry item : heroMapList.entrySet()){ StringBuilder skillSb = new StringBuilder(); StringBuilder propertySb = new StringBuilder(); Integer heroTid = item.getKey(); - Integer heroStar = item.getValue(); + Integer heroStar = item.getValue().getStar(); SCHero scHero = SCHero.getsCHero().get(heroTid); List skillIds = scHero.getSkillListByStar(heroStar); String heroSkill = HeroLogic.getInstance().getRobotHeroSkills(skillIds,skillSb).toString(); @@ -432,7 +432,7 @@ public class FightUtil { int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId(); int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv(); int robotLevel = sArenaRobotConfig.getRoleLv(); - Map robotHeroAttribute =HeroLogic.getInstance(). calRobotHeroAttribute(scHero, robotLevel, sArenaRobotConfig.getBreakId(), differDemonsId, differDemonsLv,false); + Map robotHeroAttribute =HeroLogic.getInstance(). calRobotHeroAttribute(scHero, robotLevel, 0, differDemonsId, differDemonsLv,false); if(remainHp!=null&&remainHp.containsKey(heroTid.toString())){ robotHeroAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),(int)(remainHp.getOrDefault(heroTid.toString(),1d)*robotHeroAttribute.get(HeroAttributeEnum.Hp.getPropertyId()))); 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 cf4a5fe42..16bee6f2d 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 @@ -1185,21 +1185,55 @@ public class HeroLogic{ return result; } - //根据英雄等级计算出brealId,从而也可以获取星级 - public int calRobotStarByLevel(int heroTid,int heroLevel,Map starHeroMap){ + /** + * 根据英雄等级计算出starBrealId + * @param heroTid + * @param heroLevel + * @param heroBuilder + * @return + */ + public int calRobotStarByLevel(int heroTid,int heroLevel,CommonProto.Hero.Builder heroBuilder){ SCHero scHero = SCHero.getsCHero().get(heroTid); int star = scHero.getStar(); Map scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.UP_STAR_TYPE,scHero.getStar()); if(scHeroRankUpConfigByType == null){ - scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar()); + return 0; + } + // 无奈方式,代码写死验证机器人等级小于100级为未升星 + if (heroLevel <= 100){ + return 0; } for(SCHeroRankUpConfig scHeroRankUpConfig : scHeroRankUpConfigByType.values()){ - if (heroLevel>=scHeroRankUpConfig.getLimitLevel() && heroLevel <= scHeroRankUpConfig.getOpenLevel()){ - starHeroMap.put(heroTid,scHeroRankUpConfig.getOpenStar()); + if (heroLevel <= scHeroRankUpConfig.getOpenLevel()){ + heroBuilder.setStar(scHeroRankUpConfig.getOpenStar()); return scHeroRankUpConfig.getId(); } } - starHeroMap.put(heroTid,star); + heroBuilder.setStar(star); + return 0; + } + + /** + * 根据英雄等级计算出BrealId + * @param heroTid + * @param heroLevel + * @param heroBuilder + * @return + */ + public int calRobotBreaByLevel(int heroTid,int heroLevel,CommonProto.Hero.Builder heroBuilder){ + SCHero scHero = SCHero.getsCHero().get(heroTid); + int star = scHero.getStar(); + Map scHeroRankUpConfigByType = STableManager.getFigureConfig(HeroStaticConfig.class).getScHeroRankUpConfigByShow(GlobalsDef.BREAK_TYPE,scHero.getStar()); + if(scHeroRankUpConfigByType == null){ + return 0; + } + for(SCHeroRankUpConfig scHeroRankUpConfig : scHeroRankUpConfigByType.values()){ + if (heroLevel >= scHeroRankUpConfig.getLimitLevel() && heroLevel <= scHeroRankUpConfig.getOpenLevel()){ + heroBuilder.setStar(scHeroRankUpConfig.getOpenStar()); + return scHeroRankUpConfig.getId(); + } + } + heroBuilder.setStar(star); return 0; } @@ -1860,7 +1894,16 @@ public class HeroLogic{ return builder.toString(); } - + /** + * 计算机器人英雄熟悉 + * @param scHero + * @param heroLevel + * @param heroBrekId 调用方法calRobotHeroAllAttribute未使用该参数,所以可以传0 + * @param pokemonIds + * @param pokemonLevel + * @param isForce + * @return + */ public Map calRobotHeroAttribute(SCHero scHero,int heroLevel,int heroBrekId,int[] pokemonIds,int pokemonLevel,boolean isForce){ Map heroAllAttribute = calRobotHeroAllAttribute(scHero.getId(),heroLevel,heroBrekId,isForce); heroAllAttribute.put(HeroAttributeEnum.CurHP.getPropertyId(),heroAllAttribute.get(GlobalsDef.HP_TYPE)); @@ -2297,9 +2340,8 @@ public class HeroLogic{ int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv(); int heroLevel = sArenaRobotConfig.getRoleLv(); for(Integer heroTid :heroList){ - int heroBreakId = sArenaRobotConfig.getBreakId(); SCHero scHero = SCHero.getsCHero().get(heroTid); - Map robotHeroAttribute = calRobotHeroAttribute(scHero, heroLevel, heroBreakId, differDemonsId, differDemonsLv,true); + Map robotHeroAttribute = calRobotHeroAttribute(scHero, heroLevel, 0, differDemonsId, differDemonsLv,true); totalForce+=calForce(robotHeroAttribute); } return totalForce; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 2ee79ede0..fb66a0263 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -612,9 +612,9 @@ public class PlayerLogic { } teamInfo.setTotalForce(sArenaRobotConfig.getTotalForce()); int position = 1; - for(Map.Entry item : sArenaRobotConfig.getStarOfHeroMap().entrySet()){ + for(Map.Entry item : sArenaRobotConfig.getHeroMapList().entrySet()){ Integer heroTid = item.getKey(); - Integer heroStar = item.getValue(); + Integer heroStar = item.getValue().getStar(); teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder().setHeroid(String.valueOf(heroTid)).setHeroTid(heroTid).setLevel(sArenaRobotConfig.getRoleLv()).setStar(heroStar).setPosition(position++).build()); } oneInfo.setTeam(teamInfo); @@ -648,16 +648,15 @@ public class PlayerLogic { int[] differDemonsId = sArenaRobotConfig.getDifferDemonsId(); int differDemonsLv = sArenaRobotConfig.getDifferDemonsLv(); int heroLevel = sArenaRobotConfig.getRoleLv(); - int heroBreakId = sArenaRobotConfig.getBreakId(); SCHero scHero = SCHero.getsCHero().get(Integer.parseInt(robotHeroId)); - Map robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, heroLevel, heroBreakId, differDemonsId, differDemonsLv,true); + Map robotHeroAttribute = HeroLogic.getInstance().calRobotHeroAttribute(scHero, heroLevel, 0, differDemonsId, differDemonsLv,true); for(Map.Entry item : robotHeroAttribute.entrySet()){ builder.addSpecialEffects(CommonProto.SpecialEffects.newBuilder().setPropertyId(item.getKey()).setPropertyValue(item.getValue()).build()); } builder.setForce(HeroLogic.getInstance().calForce(robotHeroAttribute)); - builder.setHero(CBean2Proto.getRobotHero(scHero,sArenaRobotConfig)); + builder.setHero(sArenaRobotConfig.getHeroMapList().get(scHero.getId())); int resMsgId = MessageTypeProto.MessageType.VIEW_HERO_INFO_RESPONSE_VALUE; MessageUtil.sendMessage(session,1,resMsgId,builder.build(),true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java index 00c500e94..7afef9e6d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/AbstractRank.java @@ -6,10 +6,10 @@ import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.rank.IRank; import rpc.protocols.CommonProto; -import rpc.protocols.PlayerInfoProto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.ZSetOperations; +import rpc.protocols.PlayerInfoProto; import java.util.Objects; import java.util.Set; @@ -34,7 +34,7 @@ public abstract class AbstractRank implements IRank { * @return 当前排行榜数据 * @throws Exception */ - public PlayerInfoProto.RankResponse getRank(int uid,String rkey,int page,int rankEndLine) throws Exception { + public PlayerInfoProto.RankResponse getRank(int uid, String rkey, int page, int rankEndLine) throws Exception { if(rankEndLine==-1){ rankEndLine = 100; } @@ -102,6 +102,9 @@ public abstract class AbstractRank implements IRank { } ZSetOperations.TypedTuple data = rankByKey.iterator().next(); User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true); + if (everyUser == null){ + return builder; + } CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder() .setRank(1) .setParam1(getParam1(data.getScore())) @@ -121,9 +124,12 @@ public abstract class AbstractRank implements IRank { }); return builder; } - protected void getOptional(int index,ZSetOperations.TypedTuple data,PlayerInfoProto.RankResponse.Builder builder) throws Exception { + protected void getOptional(int index,ZSetOperations.TypedTuple data,PlayerInfoProto.RankResponse.Builder builder) throws Exception { User everyUser = UserManager.getUser(Integer.parseInt(data.getValue()), true); + if (everyUser == null){ + return; + } CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder() .setRank(index) .setParam1(getParam1(data.getScore())) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 7af63dc10..227b26eec 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -110,7 +110,7 @@ public class CBean2Proto { .build(); } - public static CommonProto.Hero getRobotHero(SCHero scHero, SArenaRobotConfig sArenaRobotConfig) throws Exception { + /* public static CommonProto.Hero getRobotHero(SCHero scHero, SArenaRobotConfig sArenaRobotConfig) throws Exception { return CommonProto.Hero .newBuilder() .setId(String.valueOf(scHero.getId())) @@ -118,8 +118,9 @@ public class CBean2Proto { .setLevel(sArenaRobotConfig.getRoleLv()) .setStar(sArenaRobotConfig.getStarOfHeroMap().get(scHero.getId())) .setBreakId(sArenaRobotConfig.getBreakId()) + .setStarBreakId(sArenaRobotConfig.getStarBreakId()) .build(); - } + }*/ public static CommonProto.Mail getMail(Mail mail){ CommonProto.Mail.Builder mailProto = CommonProto.Mail diff --git a/tablemanager/src/main/java/config/SArenaRobotConfig.java b/tablemanager/src/main/java/config/SArenaRobotConfig.java index fc81af7c3..a72e0ec2c 100644 --- a/tablemanager/src/main/java/config/SArenaRobotConfig.java +++ b/tablemanager/src/main/java/config/SArenaRobotConfig.java @@ -2,6 +2,7 @@ package config; import manager.STableManager; import manager.Table; +import rpc.protocols.CommonProto; import java.util.ArrayList; import java.util.HashMap; @@ -34,11 +35,15 @@ public class SArenaRobotConfig implements BaseConfig { private int breakId; + private int starBreakId; + private Map starOfHeroMap; + private Map heroMapList; + private static Map> sArenaRobotConfigByPoolMap; - private static Map sArenaRobotConfigMap; + private static Map sArenaRobotConfigMap; @Override @@ -123,23 +128,15 @@ public class SArenaRobotConfig implements BaseConfig { this.totalForce = totalForce; } - public Map getStarOfHeroMap() { - return starOfHeroMap; - } - - public int getBreakId() { - return breakId; - } - - public void setBreakId(int breakId) { - this.breakId = breakId; - } - - public void setStarOfHeroMap(Map starOfHeroMap) { - this.starOfHeroMap = starOfHeroMap; - } - public int getRobotLevel() { return robotLevel; } + + public Map getHeroMapList() { + return heroMapList; + } + + public void setHeroMapList(Map heroMapList) { + this.heroMapList = heroMapList; + } } \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SFloodConfig.java b/tablemanager/src/main/java/config/SFloodConfig.java index 01fd9f758..9f30ec9d7 100644 --- a/tablemanager/src/main/java/config/SFloodConfig.java +++ b/tablemanager/src/main/java/config/SFloodConfig.java @@ -13,6 +13,10 @@ public class SFloodConfig implements BaseConfig { private int battleTime; + private int force; + + private int[][] specialReward; + @Override public void init() throws Exception { } @@ -34,5 +38,11 @@ public class SFloodConfig implements BaseConfig { return battleTime; } + public int getForce() { + return force; + } + public int[][] getSpecialReward() { + return specialReward; + } } \ No newline at end of file