diff --git a/worldserver/src/main/java/com/world/logic/arean/ArenaLogic.java b/worldserver/src/main/java/com/world/logic/arean/ArenaLogic.java index 7dad6aa82..2e23554b3 100644 --- a/worldserver/src/main/java/com/world/logic/arean/ArenaLogic.java +++ b/worldserver/src/main/java/com/world/logic/arean/ArenaLogic.java @@ -34,6 +34,7 @@ import rpc.protocols.PlayerInfoProto; import rpc.world.WorldProto; import util.MathUtils; import util.StringUtil; +import util.TimeUtils; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -92,18 +93,20 @@ public class ArenaLogic { public void minCheck() { RedisUtil redisUtil = RedisUtil.getInstence(); - String matched = redisUtil.getObject(RedisKey.MATCHED_VERSION, String.class);//global 分组日期 - String myVersion = redisUtil.getObject(RedisKey.MATCHED_MY_VERSION, String.class); - if (null == matched || Integer.valueOf(matched) == 0) { - return; - } +// String matched = redisUtil.getObject(RedisKey.MATCHED_VERSION, String.class);//global 分组日期 +// String myVersion = redisUtil.getObject(RedisKey.MATCHED_MY_VERSION, String.class); +// if (null == matched || Integer.valueOf(matched) == 0) { +// return; +// } - if (null != myVersion && !myVersion.equals("")) { - if (!myVersion.equals(matched) ) { + long time = TimeUtils.now() + TimeUtils.ONE_MINUTE * 2; + //刷新 + if(TimeUtils.getDayOfWeek(time)==6&&TimeUtils.getHourOfDay(time)==0&&TimeUtils.getMiunte(time)==0){ + { onfinish(); //TODO start //重新获取分组信息 - redisUtil.set(RedisKey.MATCHED_MY_VERSION, matched); +// redisUtil.set(RedisKey.MATCHED_MY_VERSION, matched); Map serverSplit = RedisUtil.getInstence().getMapValues(RedisKey.SERVER_SPLIT_INFO, String.class, Integer.class); serverSplit.forEach((s, integer) -> { HashSet strings = map.getOrDefault(integer, new HashSet<>()); @@ -127,6 +130,9 @@ public class ArenaLogic { }); } } +// if (null != myVersion && !myVersion.equals("")) { +// if (!myVersion.equals(matched) ) +// } //定时入库 lastSaved(); } @@ -140,10 +146,18 @@ public class ArenaLogic { delKeys.add(RedisUtil.getInstence().getKey(RedisKey.WORLD_ARENA_RRECORD, "")); delKeys.add(RedisUtil.getInstence().getKey(RedisKey.WORLD_ARENA_MY_PRON, "")); -// Cursor cursor = RedisUtil.getInstence().scan("WORLD_ARENA_MY_PRON:*", -1); -// while (cursor.hasNext()) { -// delKeys.add(cursor.next()); -// } + Cursor cursor = RedisUtil.getInstence().scan("WORLD_ARENA_RANK_MY_MATH:*", -1); + while (cursor.hasNext()) { + String next = cursor.next(); + System.out.println("清除:"+next); + delKeys.add(next); + } + Cursor curso1 = RedisUtil.getInstence().scan("WORLD_ARENA_RRECORD:*", -1); + while (curso1.hasNext()) { + String next = curso1.next(); + System.out.println("清除:"+next); + delKeys.add(next); + } RedisUtil.getInstence().del(delKeys.toArray(new String[0])); } @@ -155,7 +169,14 @@ public class ArenaLogic { int enemyId = arenaEnemy.getEnemyId(); int enemyType = arenaEnemy.getEnemyType(); int rank = arenaEnemy.getRank();//only robot - arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank,arenaEnemy.getWorshipTime(),myPro.contains(arenaEnemy.getEnemyId_UUid()))); + if(enemyType==0){ + Object hget = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT_ROBOT, String.valueOf(arenaEnemy.getEnemyId_UUid())); + arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank,hget==null?0:Integer.parseInt((String)hget),myPro.contains(arenaEnemy.getEnemyId_UUid()))); + }else{ + Object hget = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(enemyId)); + + arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank,hget==null?0:Integer.parseInt((String)hget),myPro.contains(arenaEnemy.getEnemyId_UUid()))); + } } return arenaEnemyList; } @@ -359,7 +380,8 @@ public class ArenaLogic { int enemyType = arenaEnemy.getEnemyType(); int rank = arenaEnemy.getRank();//only robot List strings = RedisUtil.getInstence().lGet(RedisKey.WORLD_ARENA_MY_PRON,String.valueOf(uid), 0, -1); - CommonProto.ArenaEnemy arenaEnemy1 = getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank, arenaEnemy.getWorshipTime(), strings.contains(arenaEnemy.getEnemyId_UUid())); + Object proudGet = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(enemyId)); + CommonProto.ArenaEnemy arenaEnemy1 = getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank, proudGet==null?0:Integer.parseInt((String)proudGet), strings.contains(arenaEnemy.getEnemyId_UUid())); CommonProto.RankInfo everyRankInfo = CommonProto.RankInfo.newBuilder() .setRank(i).setParam1(arenaEnemy1.getPersonInfo().getTotalForce()).build(); CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder() @@ -383,8 +405,8 @@ public class ArenaLogic { } } - if(uid!=0){ - CommonProto.ArenaEnemy arenaEnemy1 = getArenaEnemy(uid, serverID, 1, myIndex,0, true); + CommonProto.ArenaEnemy arenaEnemy1 = getArenaEnemy(uid, serverID, 1, myIndex,0, true); + if(arenaEnemy1!=null&&uid!=0){ CommonProto.RankInfo everyRankInfo = CommonProto.RankInfo.newBuilder() .setRank(myIndex) .setParam1(arenaEnemy1.getPersonInfo().getTotalForce())