竞技场重写二版

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) {
result.setResultMsg("Cmd Illegal");
LOGGER.error("e={}", ex.getMessage());
ex.printStackTrace();
return result;
}
result.setResultCode(0);

View File

@ -22,7 +22,7 @@ import java.util.*;
/**
* 线
* // arenafalsedata serverId
* //arenafalsedata 10023
*/
public class Cmd_arenafalsedata extends GmAbstract {
@ -33,6 +33,7 @@ public class Cmd_arenafalsedata extends GmAbstract {
@Override
public String exec2(String[] args) {
long start = TimeUtils.now();
String arg = args[0];
int serverId = Integer.parseInt(arg);
List<Integer> localRooms = SArenaRoom.getLocalRooms();
@ -47,9 +48,11 @@ public class Cmd_arenafalsedata extends GmAbstract {
for (Integer roomId : crossRooms) {
initFalseArenaRank(getRandomUsers(allUser), roomId);
}
LOGGER.info("竞技场假数据全部制作完成...耗时:{}",TimeUtils.now()-start);
return "success";
}
public void initFalseArenaRank(List<User> users, int roomId){
LOGGER.info("竞技场假数据房间id{},用户数量:{}",roomId, users.size());
if (users.isEmpty()){
return;
}
@ -62,37 +65,47 @@ public class Cmd_arenafalsedata extends GmAbstract {
if (personInfo == null){
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);
LOGGER.info("竞技场假数据第一拍脸uid{}房间id{}",first.getId(),roomId);
}
}
NewArenaRank rank = (NewArenaRank) RankEnum.toRank(RankEnum.NEW_ARENA_RANK.getType());
for (User user : users) {
int uid = user.getId();
int randomArenaLv = getRandomArenaLv();
int randomScore = getRandomScore();
// 竞技场缓存
ArenaInfo info = new ArenaInfo();
info.setUid(user.getId());
info.setUid(uid);
info.setArenaLv(randomArenaLv);
info.setScore(randomScore);
info.setRoomId(roomId);
info.setFightNum(0);
info.setReceivedBox(new HashSet<>());
info.setArenaRecord(new HashMap<>());
ArenaLogic.saveArenaInfo(info);
ArenaLogic.getInstance().refreshArenaOpponentList(user);
LOGGER.info("竞技场假数据处理玩家竞技场缓存uid{}房间id{},段位:{},竞技分:{}", uid,roomId,randomArenaLv,randomScore);
// 玩家身上
ArenaManager arenaManager = user.getArenaManager();
arenaManager.setNewArenaLv(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()){
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);
}
LOGGER.info("竞技场假数据房间id{},用户数量:{}, 完成...",roomId, users.size());
}
public static List<User> getRandomUsers(List<User> users) {

View File

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