From 4b641f5109af5a0100d694f756bddc3e1f804e4c Mon Sep 17 00:00:00 2001 From: lvxinran Date: Sun, 18 Jul 2021 23:57:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B7=A8=E6=9C=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GetWorldArenaChallengeRequestHandler.java | 8 ++- .../gtw/GetWorldArenaInfoRequestHandler.java | 69 ++----------------- .../crossService/CrossServiceLogic.java | 3 + .../ljsd/jieling/logic/arena/ArenaLogic.java | 28 +++++--- .../jieling/logic/dao/CrossArenaEnemy.java | 8 ++- .../logic/dao/gm/ArenaOfPlayerManager.java | 22 +++++- .../jieling/logic/player/PlayerLogic.java | 7 +- .../logic/rank/rankImpl/CrossArenaRank.java | 6 +- .../java/config/SMServerArenaSetting.java | 6 +- 9 files changed, 74 insertions(+), 83 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java index 03e277fe1..84b7ef4a0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/gtw/GetWorldArenaChallengeRequestHandler.java @@ -204,9 +204,13 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler1000){ + RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(proto.getChallengeUid()), new HashSet<>()); + ArenaLogic.randomRank(proto.getChallengeUid(),9999, crossGroup); + } }else if(rank.getScoreById(iSession.getUid(),String.valueOf(crossGroup)) strings = RedisUtil.getInstence().lGet(RedisKey.WORLD_ARENA_MY_PRON,String.valueOf(iSession.getUid()), 0, -1); builder.setArenaInfo(builder1.build()); MessageUtil.sendMessage(iSession,1, MessageTypeProto.MessageType.GetWorldArenaInfoResponse.getNumber(),builder.build(),true); -// List arenaEnemyList = ArenaLogic.getInstance().getArenaEnemyList(new LinkedList<>(arenaEnemies),strings); -// builder1.setScore(myIndex) -// .addAllArenaEnemys(arenaEnemyList) -// .build(); - - // //根据我的排名获取 -// int myIndex = 9999; -// if (myRank != null) { -// myIndex = myRank.getKey(); -// } -// List arenaEnemies; -// if(proto.getIsPro()){ -// //获取前4名 -// arenaEnemies = new LinkedList<>(); -// for (int i = 1; i <=4 ; i++) { -// ArenaEnemy arenaEnemy = integerIntegerHashMap.get(i); -// if(arenaEnemy.getRank()==0){ -// arenaEnemy.setRank(i); -// } -// arenaEnemies.add(arenaEnemy); -// } -// }else { -// arenaEnemies = ArenaLogic.randomRank(integerIntegerHashMap, rpcMessage.getUid(), myIndex); -// } -// -// builder.setStage(2); -// List strings = RedisUtil.getInstence().lGet(RedisKey.WORLD_ARENA_MY_PRON,String.valueOf(rpcMessage.getUid()), 0, -1); -// List arenaEnemyList = ArenaLogic.getInstance().getArenaEnemyList(new LinkedList<>(arenaEnemies),strings); -// builder1.setScore(myIndex) -// .addAllArenaEnemys(arenaEnemyList) -// .build(); -// -// } catch (Exception e) { -// e.printStackTrace(); -// LOGGER.error(e.toString()); -// } finally { -// // Lockeys.getInstance().reset(); -// } -// builder.setArenaInfo(builder1) -// return builder.build(); - -// if (proto.getStage() != 1) { -// WorldProto.GetWorldArenaInfoResponse.Builder builder = WorldProto.GetWorldArenaInfoResponse.newBuilder(proto); -// SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1); -// if (setting == null) { -// throw new ErrorCodeException(ErrorCode.CFG_NULL); -// } -// TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.World_Arena); -// long diff = (System.currentTimeMillis() - timeControllerOfFunction.getStartTime())/1000; -// -// -// if (!ArenaWorldLogic.checkJoin(String.valueOf(rpcMessage.getUid()))) { -// builder.setEnterable(-1); -// } -// -// proto = builder.build(); -// } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java index fe28d4a56..92f350303 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/crossService/CrossServiceLogic.java @@ -143,6 +143,9 @@ public class CrossServiceLogic { arenaOfPlayerManager.setUserTitle(player.getUserTitle()); arenaOfPlayerManager.setPracticeLevel(user.getHeroManager().getPracticeLevel()); arenaOfPlayerManager.setServerId(GameApplication.serverId); + arenaOfPlayerManager.setGender(player.getSex()); + arenaOfPlayerManager.setSkin(player.getUserSkin()); + arenaOfPlayerManager.setUserMount(player.getUserMount()); try { arenaOfPlayerManager.setServerName(CrossServiceLogic.getInstance().findServerName(GameApplication.serverId)); } catch (UnknownHostException e) { 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 93680732c..4090137be 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 @@ -2,9 +2,9 @@ package com.ljsd.jieling.logic.arena; import com.google.gson.reflect.TypeToken; import com.ljsd.fight.ArenaRecord; +import com.ljsd.fight.FightType; import com.ljsd.jieling.config.clazzStaticCfg.SArenaRobotStaticConfig; import com.ljsd.jieling.core.FunctionIdEnum; -import com.ljsd.fight.FightType; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.VipPrivilegeType; import com.ljsd.jieling.db.mongo.MongoUtil; @@ -35,21 +35,18 @@ import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; import com.ljsd.jieling.logic.redpacket.WelfareRedPackEvent; import com.ljsd.jieling.logic.redpacket.WelfareRedPacketType; -import com.ljsd.jieling.network.server.GlobalidHelper; -import com.ljsd.jieling.network.server.WorldHelper; import com.ljsd.jieling.network.session.ISession; -import org.luaj.vm2.lib.jse.JseMathLib; -import rpc.protocols.ArenaInfoProto; -import rpc.protocols.CommonProto; -import rpc.protocols.FightInfoProto; -import rpc.protocols.MessageTypeProto; -import com.ljsd.jieling.util.*; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; import config.*; import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.data.redis.core.ZSetOperations; -import rpc.world.WorldProto; +import rpc.protocols.ArenaInfoProto; +import rpc.protocols.CommonProto; +import rpc.protocols.FightInfoProto; +import rpc.protocols.MessageTypeProto; import util.MathUtils; import util.StringUtil; import util.TimeUtils; @@ -806,6 +803,7 @@ public class ArenaLogic { if(!lock){ return; } + LOGGER.info("跨服信息初始化..."); RedisUtil.getInstence().expire("WORLD_ARENA_INIT_RANK:" + crossGroup,TimeUtils.ONE_MINUTE * 5); String key1 = RedisUtil.getInstence().getKey(RedisKey.CROSS_ARENA_ROBOT_INFO, String.valueOf(crossGroup)); @@ -831,9 +829,11 @@ public class ArenaLogic { while(--robotIndex>0){ int server = random.nextInt(groupList.size()); rank.addRank(robotIndex,String.valueOf(crossGroup),robotNum-robotIndex); - robotInfo.put(String.valueOf(robotIndex),new CrossArenaEnemy(robotIds.get(robotIndex),robotIndex,groupList.get(server),0,0,random.nextBoolean(),PlayerLogic.getInstance().getRandomName2WithOutVerify())); + SArenaRobotConfig config = SArenaRobotConfig.getsArenaRobotConfigById(robotIds.get(robotIndex)); + robotInfo.put(String.valueOf(robotIndex),new CrossArenaEnemy(robotIds.get(robotIndex),robotIndex,groupList.get(server),0,0,random.nextBoolean(),PlayerLogic.getInstance().getRandomName2WithOutVerify(),config.getTotalForce())); } + LOGGER.info("跨服信息初始化结束"); RedisUtil.getInstence().putMapEntrys(RedisKey.CROSS_ARENA_ROBOT_INFO,String.valueOf(crossGroup),robotInfo); } @@ -945,6 +945,10 @@ public class ArenaLogic { .setName(enemy.getPlayerManager().getName()) .setServername(enemy.getPlayerManager().getServerName()) .setTotalForce(enemy.getHeroManager().getTotalForce()) + .setUserTitle(enemy.getPlayerManager().getUserTitle()) + .setUserMount(enemy.getPlayerManager().getUserMount()) + .setGender(enemy.getPlayerManager().getGender()) + .setUserSkin(enemy.getPlayerManager().getSkin()) .setRank(rank) .build(); return CommonProto.ArenaEnemy.newBuilder() @@ -967,6 +971,8 @@ public class ArenaLogic { .setScore(sArenaRobotConfig.getRobotScore()) .setTotalForce(sArenaRobotConfig.getTotalForce()) .setServername(CrossServiceLogic.getInstance().findServerName(enemy.getServerID())) + .setUserSkin(80012) + .setGender(enemy.isGender()?1:0) .setRank(rank) .build(); } catch (UnknownHostException e) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java index 1fab1fa5f..8525c3903 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CrossArenaEnemy.java @@ -16,6 +16,7 @@ public class CrossArenaEnemy { private int rank;//排名 private boolean gender; private String randomName; + private int totalForce; public CrossArenaEnemy(int enemyId, int enemyId_UUid, int serverID, int enemyType, int enemyStatus, int rank) { this.enemyId = enemyId; @@ -26,11 +27,12 @@ public class CrossArenaEnemy { this.rank = rank; } - public CrossArenaEnemy(int enemyId,int enemyId_UUid, int serverID, int enemyType, int enemyStatus,boolean gender,String randomName) { + public CrossArenaEnemy(int enemyId,int enemyId_UUid, int serverID, int enemyType, int enemyStatus,boolean gender,String randomName,int totalForce) { this(enemyId,enemyId_UUid,serverID,enemyType,enemyStatus); this.gender=gender; this.randomName = randomName; + this.totalForce = totalForce; } public CrossArenaEnemy(int enemyId,int enemyId_UUid, int serverID, int enemyType, int enemyStatus) { this.enemyId = enemyId; @@ -85,4 +87,8 @@ public class CrossArenaEnemy { public String getRandomName() { return randomName; } + + public int getTotalForce() { + return totalForce; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/gm/ArenaOfPlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/gm/ArenaOfPlayerManager.java index dea1eee31..cdaf93f1b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/gm/ArenaOfPlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/gm/ArenaOfPlayerManager.java @@ -32,9 +32,11 @@ public class ArenaOfPlayerManager { private int practiceLevel; private int serverId; private String serverName; + private int gender; + private int skin; - public ArenaOfPlayerManager(int uId, int level, String name, int head, int headFrame, String guildName, int userTitle, int userMount, int practiceLevel, int serverId, String serverName) { + public ArenaOfPlayerManager(int uId, int level, String name, int head, int headFrame, String guildName, int userTitle, int userMount, int practiceLevel, int serverId, String serverName,int gender,int skin) { this.uId = uId; this.level = level; this.name = name; @@ -46,6 +48,8 @@ public class ArenaOfPlayerManager { this.practiceLevel = practiceLevel; this.serverId = serverId; this.serverName = serverName; + this.gender = gender; + this.skin = skin; } public ArenaOfPlayerManager() { @@ -138,4 +142,20 @@ public class ArenaOfPlayerManager { public void setUserMount(int userMount) { this.userMount = userMount; } + + public int getGender() { + return gender; + } + + public void setGender(int gender) { + this.gender = gender; + } + + public int getSkin() { + return skin; + } + + public void setSkin(int skin) { + this.skin = skin; + } } 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 51324863b..335f8e64c 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 @@ -639,9 +639,9 @@ public class PlayerLogic { throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); } SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(id); - CommonProto.TeamOneInfo.Builder oneInfo=null; + CommonProto.TeamOneInfo.Builder oneInfo; if(sArenaRobotConfig!=null){ - getRobotOneInfo(sArenaRobotConfig,info); + oneInfo = getRobotOneInfo(sArenaRobotConfig,info); }else{ oneInfo = getUserTeamOneInfo(id, teamId); if(UserManager.getUser(id).getFriendManager().getMyApplyFriends().contains(id)){ @@ -663,6 +663,7 @@ public class PlayerLogic { CommonProto.TeamOneInfo.Builder builder = CommonProto.TeamOneInfo.newBuilder() .setHead(query.getPlayerManager().getHead()) .setHeadFrame(query.getPlayerManager().getHeadFrame()) + .setUserTitle(query.getPlayerManager().getUserTitle()) .setLevel(query.getPlayerManager().getLevel()) .setName(query.getPlayerManager().getName()) .setGuildName(query.getPlayerManager().getGuildName()) @@ -674,7 +675,7 @@ public class PlayerLogic { teamOneTeamInfo.addTeam(CBean2Proto.getCrossSimpleHero(hero,heroInfo.getPosition())); } for(Map.Entry entry:query.getPokemons().entrySet()){ - CBean2Proto.getSimpleTeamInfoByPokeMon(entry.getValue(),entry.getKey()); + teamOneTeamInfo.addPokemonInfos(CBean2Proto.getSimpleTeamInfoByPokeMon(entry.getValue(), entry.getKey())); } teamOneTeamInfo.setTotalForce(query.getHeroManager().getTotalForce()); builder.setTeam(teamOneTeamInfo.build()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java index 1d53312b4..62fdde755 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/CrossArenaRank.java @@ -7,6 +7,7 @@ import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic; import com.ljsd.jieling.logic.dao.CrossArenaEnemy; import com.ljsd.jieling.logic.dao.gm.ArenaOfUser; import com.ljsd.jieling.logic.dao.root.User; +import config.SArenaRobotConfig; import org.springframework.data.redis.core.ZSetOperations; import rpc.protocols.CommonProto; import rpc.protocols.PlayerInfoProto; @@ -49,20 +50,21 @@ public class CrossArenaRank extends AbstractRank { if(Integer.parseInt(data.getValue())<1000){ CommonProto.RankInfo.Builder everyRankInfo = CommonProto.RankInfo.newBuilder() .setRank(index) - .setParam1(1000000) + .setParam1(0) .setParam2(getParam2(data.getScore())) .setParam3(getParam3(data.getScore())); CrossArenaEnemy mapEntry = RedisUtil.getInstence().getMapEntry(RedisKey.CROSS_ARENA_ROBOT_INFO, String.valueOf(GlobleSystemLogic.getInstence().getCrossGroup()), data.getValue(), CrossArenaEnemy.class); if(mapEntry==null){ return; } + + everyRankInfo.setParam1(mapEntry.getTotalForce()); CommonProto.UserRank.Builder everyRank = CommonProto.UserRank.newBuilder() .setUid(mapEntry.getEnemyId_UUid()) .setUserName(mapEntry.getRandomName()) .setLevel(100) .setUserSkin(80012) .setRankInfo(everyRankInfo) - .setForce(1000000) .setSex(0); builder.addRanks(everyRank); }else{ diff --git a/tablemanager/src/main/java/config/SMServerArenaSetting.java b/tablemanager/src/main/java/config/SMServerArenaSetting.java index 9663b7606..1b1a41a61 100644 --- a/tablemanager/src/main/java/config/SMServerArenaSetting.java +++ b/tablemanager/src/main/java/config/SMServerArenaSetting.java @@ -40,6 +40,8 @@ public class SMServerArenaSetting implements BaseConfig { private int[] fightArea; + private int openWeek; + @Override public void init() throws Exception { @@ -111,5 +113,7 @@ public class SMServerArenaSetting implements BaseConfig { return fightArea; } - + public int getOpenWeek() { + return openWeek; + } } \ No newline at end of file