竞技场重写二版

master_dev
grimm 2024-02-06 15:09:27 +08:00
parent 6bf881b06d
commit 745dde1d59
3 changed files with 20 additions and 5 deletions

View File

@ -110,6 +110,7 @@ public class GmService implements RPCRequestGMIFace.Iface {
} catch (final Exception ex) { } catch (final Exception ex) {
result.setResultMsg("Cmd Illegal"); result.setResultMsg("Cmd Illegal");
LOGGER.error("e={}", ex.getMessage()); LOGGER.error("e={}", ex.getMessage());
ex.printStackTrace();
return result; return result;
} }
result.setResultCode(0); result.setResultCode(0);

View File

@ -22,7 +22,7 @@ import java.util.*;
/** /**
* 线 * 线
* // arenafalsedata serverId * //arenafalsedata 10023
*/ */
public class Cmd_arenafalsedata extends GmAbstract { public class Cmd_arenafalsedata extends GmAbstract {
@ -33,6 +33,7 @@ public class Cmd_arenafalsedata extends GmAbstract {
@Override @Override
public String exec2(String[] args) { public String exec2(String[] args) {
long start = TimeUtils.now();
String arg = args[0]; String arg = args[0];
int serverId = Integer.parseInt(arg); int serverId = Integer.parseInt(arg);
List<Integer> localRooms = SArenaRoom.getLocalRooms(); List<Integer> localRooms = SArenaRoom.getLocalRooms();
@ -47,9 +48,11 @@ public class Cmd_arenafalsedata extends GmAbstract {
for (Integer roomId : crossRooms) { for (Integer roomId : crossRooms) {
initFalseArenaRank(getRandomUsers(allUser), roomId); initFalseArenaRank(getRandomUsers(allUser), roomId);
} }
LOGGER.info("竞技场假数据全部制作完成...耗时:{}",TimeUtils.now()-start);
return "success"; return "success";
} }
public void initFalseArenaRank(List<User> users, int roomId){ public void initFalseArenaRank(List<User> users, int roomId){
LOGGER.info("竞技场假数据房间id{},用户数量:{}",roomId, users.size());
if (users.isEmpty()){ if (users.isEmpty()){
return; return;
} }
@ -62,37 +65,47 @@ public class Cmd_arenafalsedata extends GmAbstract {
if (personInfo == null){ if (personInfo == null){
redisUtil.putmap(RedisKey.NEW_ARENA_FIRST_PUSH, ArenaLogic.FIRST_PUSH, CBean2Proto.getNewArenaPlayerProto(first.getId(), roomId)); redisUtil.putmap(RedisKey.NEW_ARENA_FIRST_PUSH, ArenaLogic.FIRST_PUSH, CBean2Proto.getNewArenaPlayerProto(first.getId(), roomId));
redisUtil.expireMills(RedisKey.NEW_ARENA_FIRST_PUSH, TimeUtils.ONE_MINUTE * 10); redisUtil.expireMills(RedisKey.NEW_ARENA_FIRST_PUSH, TimeUtils.ONE_MINUTE * 10);
LOGGER.info("竞技场假数据第一拍脸uid{}房间id{}",first.getId(),roomId);
} }
} }
NewArenaRank rank = (NewArenaRank) RankEnum.toRank(RankEnum.NEW_ARENA_RANK.getType()); NewArenaRank rank = (NewArenaRank) RankEnum.toRank(RankEnum.NEW_ARENA_RANK.getType());
for (User user : users) { for (User user : users) {
int uid = user.getId();
int randomArenaLv = getRandomArenaLv(); int randomArenaLv = getRandomArenaLv();
int randomScore = getRandomScore(); int randomScore = getRandomScore();
// 竞技场缓存 // 竞技场缓存
ArenaInfo info = new ArenaInfo(); ArenaInfo info = new ArenaInfo();
info.setUid(user.getId()); info.setUid(uid);
info.setArenaLv(randomArenaLv); info.setArenaLv(randomArenaLv);
info.setScore(randomScore); info.setScore(randomScore);
info.setRoomId(roomId); info.setRoomId(roomId);
info.setFightNum(0); info.setFightNum(0);
info.setReceivedBox(new HashSet<>()); info.setReceivedBox(new HashSet<>());
info.setArenaRecord(new HashMap<>()); info.setArenaRecord(new HashMap<>());
ArenaLogic.saveArenaInfo(info);
ArenaLogic.getInstance().refreshArenaOpponentList(user); ArenaLogic.getInstance().refreshArenaOpponentList(user);
LOGGER.info("竞技场假数据处理玩家竞技场缓存uid{}房间id{},段位:{},竞技分:{}", uid,roomId,randomArenaLv,randomScore);
// 玩家身上 // 玩家身上
ArenaManager arenaManager = user.getArenaManager(); ArenaManager arenaManager = user.getArenaManager();
arenaManager.setNewArenaLv(randomArenaLv); arenaManager.setNewArenaLv(randomArenaLv);
SArenaLevel arenaLevel = SArenaLevel.getMap().get(randomArenaLv); SArenaLevel arenaLevel = SArenaLevel.getMap().get(randomArenaLv);
arenaManager.setNewArenaLvScore(arenaLevel.getArenaLevelIntegral()[0]+5); int arenaLvScore = arenaLevel.getArenaLevelIntegral()[0] + 5;
arenaManager.setNewArenaLvScore(arenaLvScore);
LOGGER.info("竞技场假数据处理玩家竞技场缓存uid{}房间id{},段位:{},段位分:{}", uid,roomId,randomArenaLv,arenaLvScore);
// 重置标记 // 重置标记
if (isGetResetMark()){ if (isGetResetMark()){
int randomRanking = getRandomRanking(); int randomRanking = getRandomRanking();
ArenaLogic.getInstance().setNewArenaResetMark(user.getId(), roomId, randomRanking); ArenaLogic.getInstance().setNewArenaResetMark(uid, roomId, randomRanking);
LOGGER.info("竞技场假数据重置标记uid{}房间id{}", uid,roomId);
} }
// 排行榜 // 排行榜
rank.addRank(user.getId(), String.valueOf(roomId), randomScore); rank.addRank(uid, String.valueOf(roomId), randomScore);
LOGGER.info("竞技场假数据排行榜数据uid{}房间id{}, 竞技分:{}", uid,roomId,randomScore);
CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user); CrossServiceLogic.getInstance().saveBasicPlayerToRedis(user);
} }
LOGGER.info("竞技场假数据房间id{},用户数量:{}, 完成...",roomId, users.size());
} }
public static List<User> getRandomUsers(List<User> users) { public static List<User> getRandomUsers(List<User> users) {

View File

@ -991,6 +991,7 @@ public class ArenaLogic {
info.setFightNum(0); info.setFightNum(0);
info.setReceivedBox(new HashSet<>()); info.setReceivedBox(new HashSet<>());
info.setArenaRecord(new HashMap<>()); info.setArenaRecord(new HashMap<>());
saveArenaInfo(info);
refreshArenaOpponentList(user); refreshArenaOpponentList(user);
return info; return info;
} }