Merge branch 'master_test_gn' into master_test_gn_xxp
commit
8db77db94c
|
@ -336,6 +336,8 @@ public class RedisKey {
|
||||||
|
|
||||||
// 跨服 排行
|
// 跨服 排行
|
||||||
public static final String CROSS_SERVICE_ARENA = "CROSS_SERVICE_ARENA";
|
public static final String CROSS_SERVICE_ARENA = "CROSS_SERVICE_ARENA";
|
||||||
|
// 跨服 挑战状态
|
||||||
|
public static final String CROSS_SERVICE_ARENA_STATE = "CROSS_SERVICE_ARENA_STATE";
|
||||||
//跨服机器人信息
|
//跨服机器人信息
|
||||||
public static final String CROSS_ARENA_ROBOT_INFO = "CROSS_ARENA_ROBOT_INFO";
|
public static final String CROSS_ARENA_ROBOT_INFO = "CROSS_ARENA_ROBOT_INFO";
|
||||||
|
|
||||||
|
|
|
@ -121,7 +121,6 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler<WorldProto
|
||||||
CommonProto.ArenaEnemy arenaEnemys ;
|
CommonProto.ArenaEnemy arenaEnemys ;
|
||||||
CommonProto.ArenaEnemy arenaAttack ;
|
CommonProto.ArenaEnemy arenaAttack ;
|
||||||
|
|
||||||
int force;
|
|
||||||
//当前分组
|
//当前分组
|
||||||
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
|
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
|
||||||
AbstractRank rank = RankContext.getRankEnum(RankEnum.CROSS_SERVICE_ARENA.getType());
|
AbstractRank rank = RankContext.getRankEnum(RankEnum.CROSS_SERVICE_ARENA.getType());
|
||||||
|
|
|
@ -79,7 +79,7 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
|
||||||
if(rankByKey.size()<1){
|
if(rankByKey.size()<1){
|
||||||
builder.setStage(1);
|
builder.setStage(1);
|
||||||
}else{
|
}else{
|
||||||
builder.setStage(ArenaLogic.getState());
|
builder.setStage(ArenaLogic.getInstance().getState());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (diff > setting.getRestTime()[0] && diff < setting.getRestTime()[1]) {
|
if (diff > setting.getRestTime()[0] && diff < setting.getRestTime()[1]) {
|
||||||
|
@ -109,7 +109,7 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
|
||||||
builder1.setScore(score==-1?9999:(int)score);
|
builder1.setScore(score==-1?9999:(int)score);
|
||||||
|
|
||||||
//如果是攻击阶段
|
//如果是攻击阶段
|
||||||
if(ArenaLogic.getState()==ArenaLogic.BATTLE_STATE){
|
if(ArenaLogic.getInstance().getState()==ArenaLogic.BATTLE_STATE){
|
||||||
List<CommonProto.ArenaEnemy> arenaEnemyList = ArenaLogic.randomRank(iSession.getUid(), score == -1 ? 9999 : (int) score,crossGroup);
|
List<CommonProto.ArenaEnemy> arenaEnemyList = ArenaLogic.randomRank(iSession.getUid(), score == -1 ? 9999 : (int) score,crossGroup);
|
||||||
builder1.addAllArenaEnemys(arenaEnemyList);
|
builder1.addAllArenaEnemys(arenaEnemyList);
|
||||||
}else{
|
}else{
|
||||||
|
|
|
@ -71,8 +71,6 @@ public class ArenaLogic {
|
||||||
private int curSeason;
|
private int curSeason;
|
||||||
private int viewSeason;
|
private int viewSeason;
|
||||||
|
|
||||||
|
|
||||||
private static int state = 0;
|
|
||||||
public final static int NORMAL_STATE = 1;
|
public final static int NORMAL_STATE = 1;
|
||||||
public final static int BATTLE_STATE = 2;
|
public final static int BATTLE_STATE = 2;
|
||||||
public final static int RELAX_STATE = 3;
|
public final static int RELAX_STATE = 3;
|
||||||
|
@ -718,22 +716,24 @@ public class ArenaLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void worldSendReward(){
|
public void worldSendReward(){
|
||||||
|
|
||||||
checkState();
|
checkState();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static int getState() {
|
public int getState() {
|
||||||
return state;
|
String key = RedisUtil.getInstence().getKey(RedisKey.CROSS_SERVICE_ARENA_STATE, "");
|
||||||
|
return Optional.ofNullable(RedisUtil.getInstence().get(key))
|
||||||
|
.map(v->Integer.valueOf(v.toString()))
|
||||||
|
.orElse(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setState(int state) {
|
public void setState(int state) {
|
||||||
ArenaLogic.state = state;
|
String key = RedisUtil.getInstence().getKey(RedisKey.CROSS_SERVICE_ARENA_STATE, "");
|
||||||
|
RedisUtil.getInstence().set(key,String.valueOf(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void b2r(){
|
private void b2r(){
|
||||||
if(state != RELAX_STATE){
|
if(getState() != RELAX_STATE){
|
||||||
if(state==BATTLE_STATE){
|
if(getState()==BATTLE_STATE){
|
||||||
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||||
for(Map.Entry<Integer,ISession> entry:sessionMap.entrySet()){
|
for(Map.Entry<Integer,ISession> entry:sessionMap.entrySet()){
|
||||||
MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE,null,true);
|
MessageUtil.sendIndicationMessage(entry.getValue(),1,MessageTypeProto.MessageType.GetWorldArenaInfoIndication_VALUE,null,true);
|
||||||
|
@ -748,7 +748,7 @@ public class ArenaLogic {
|
||||||
TreeMap<Integer, SMServerArenaReward> rewardMapByRank = SMServerArenaReward.rewardMapByRank;
|
TreeMap<Integer, SMServerArenaReward> rewardMapByRank = SMServerArenaReward.rewardMapByRank;
|
||||||
|
|
||||||
Set<ZSetOperations.TypedTuple<String>> rankInfo= rank.getRankByKey(String.valueOf(crossGroup), 0, -1);
|
Set<ZSetOperations.TypedTuple<String>> rankInfo= rank.getRankByKey(String.valueOf(crossGroup), 0, -1);
|
||||||
int index = 0;
|
int index = 0;
|
||||||
Iterator<ZSetOperations.TypedTuple<String>> iterator = rankInfo.iterator();
|
Iterator<ZSetOperations.TypedTuple<String>> iterator = rankInfo.iterator();
|
||||||
while (iterator.hasNext()){
|
while (iterator.hasNext()){
|
||||||
index++;
|
index++;
|
||||||
|
@ -758,7 +758,7 @@ public class ArenaLogic {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
User user = UserManager.getUser(uid, true);
|
User user = UserManager.getUserNotCache(uid);
|
||||||
if(user==null){
|
if(user==null){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -780,34 +780,31 @@ public class ArenaLogic {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
MongoUtil.getLjsdMongoTemplate().lastUpdate();
|
MongoUtil.getLjsdMongoTemplate().lastUpdate();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LOGGER.info("罗浮争霸:转到休息状态,nowstate:{} to RELAX_STATE",state);
|
LOGGER.info("罗浮争霸:转到休息状态,nowstate:{} to RELAX_STATE",getState());
|
||||||
setState(RELAX_STATE);
|
getInstance().setState(RELAX_STATE);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void r2e(){
|
public void r2e(){
|
||||||
|
if(getState() != NORMAL_STATE){
|
||||||
if(state != NORMAL_STATE){
|
LOGGER.info("罗浮争霸:转到未开始状态,nowstate:{} to NORMAL_STATE",getState());
|
||||||
LOGGER.info("罗浮争霸:转到未开始状态,nowstate:{} to NORMAL_STATE",state);
|
getInstance().setState(NORMAL_STATE);
|
||||||
setState(NORMAL_STATE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void e2b(){
|
public void e2b(){
|
||||||
if(state != BATTLE_STATE){
|
if(getState() != BATTLE_STATE){
|
||||||
LOGGER.info("罗浮争霸:转到战斗状态,nowstate:{} to BATTLE_STATE",state);
|
LOGGER.info("罗浮争霸:转到战斗状态,nowstate:{} to BATTLE_STATE",getState());
|
||||||
if(state!=0){
|
// if(getState()!=0){
|
||||||
initRank();
|
// initRank();
|
||||||
}
|
// }
|
||||||
setState(BATTLE_STATE);
|
getInstance().setState(BATTLE_STATE);
|
||||||
initRank();
|
initRank();
|
||||||
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
Map<Integer, ISession> sessionMap = OnlineUserManager.sessionMap;
|
||||||
for(Map.Entry<Integer,ISession> entry:sessionMap.entrySet()){
|
for(Map.Entry<Integer,ISession> entry:sessionMap.entrySet()){
|
||||||
|
@ -817,7 +814,6 @@ public class ArenaLogic {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkState(){
|
private void checkState(){
|
||||||
long now = System.currentTimeMillis();
|
|
||||||
TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.World_Arena);
|
TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.World_Arena);
|
||||||
if(null ==timeControllerOfFunction){
|
if(null ==timeControllerOfFunction){
|
||||||
return;
|
return;
|
||||||
|
@ -831,8 +827,8 @@ public class ArenaLogic {
|
||||||
} else if (diff > setting.getRestTime()[1]) {
|
} else if (diff > setting.getRestTime()[1]) {
|
||||||
r2e();
|
r2e();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static List<Integer> randomCrossRobot(int start, int end, int nums) {
|
static List<Integer> randomCrossRobot(int start, int end, int nums) {
|
||||||
List<Integer> robotIds = new LinkedList<>();
|
List<Integer> robotIds = new LinkedList<>();
|
||||||
int index = 0;
|
int index = 0;
|
||||||
|
@ -850,11 +846,9 @@ public class ArenaLogic {
|
||||||
//初始化机器人信息
|
//初始化机器人信息
|
||||||
private void initRank(){
|
private void initRank(){
|
||||||
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
|
int crossGroup = GlobleSystemLogic.getInstence().getCrossGroup();
|
||||||
|
|
||||||
if(crossGroup==-1){
|
if(crossGroup==-1){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//分布式锁,保证一个组只有一个服进行初始化
|
//分布式锁,保证一个组只有一个服进行初始化
|
||||||
boolean lock = RedisUtil.getInstence().lock("WORLD_ARENA_INIT_RANK:" + crossGroup, TimeUtils.ONE_MINUTE * 5);
|
boolean lock = RedisUtil.getInstence().lock("WORLD_ARENA_INIT_RANK:" + crossGroup, TimeUtils.ONE_MINUTE * 5);
|
||||||
if(!lock){
|
if(!lock){
|
||||||
|
@ -875,7 +869,7 @@ public class ArenaLogic {
|
||||||
List<Integer> groupList = new ArrayList<>(8);
|
List<Integer> groupList = new ArrayList<>(8);
|
||||||
|
|
||||||
groupValues.forEach((k,v)->{
|
groupValues.forEach((k,v)->{
|
||||||
if(v==crossGroup) groupList.add(k);
|
if(v==crossGroup){ groupList.add(k);}
|
||||||
});
|
});
|
||||||
|
|
||||||
int[] fightArea = STableManager.getConfig(SMServerArenaSetting.class).get(1).getFightArea();
|
int[] fightArea = STableManager.getConfig(SMServerArenaSetting.class).get(1).getFightArea();
|
||||||
|
|
|
@ -126,7 +126,7 @@ public class MessageUtil {
|
||||||
if(redType == GlobalsDef.MAIL_RED_TYPE){
|
if(redType == GlobalsDef.MAIL_RED_TYPE){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
User user = UserManager.getUserInMem(sendUid);
|
User user = UserManager.getUserNotCache(sendUid);
|
||||||
if (user == null){
|
if (user == null){
|
||||||
LOGGER.error("发送红点报错,uid:{},type:{}",sendUid,redType);
|
LOGGER.error("发送红点报错,uid:{},type:{}",sendUid,redType);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue