跨服提交
parent
7f991f8045
commit
de27c8aea3
|
|
@ -1150,6 +1150,17 @@ public class TimeUtils {
|
|||
int minute = calendar.get(Calendar.MINUTE);
|
||||
return minute;
|
||||
}
|
||||
/**
|
||||
* 获得当前时间是今天的几点(整点)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
public static int getMiunte(long time) {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
calendar.setTimeInMillis(time);
|
||||
int minute = calendar.get(Calendar.MINUTE);
|
||||
return minute;
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 获取的一个月的最大的天数
|
||||
|
|
|
|||
|
|
@ -7,8 +7,10 @@ import com.ljsd.jieling.logic.mission.GameEvent;
|
|||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
@Component
|
||||
public class ServerZeroHandler extends BaseHandler {
|
||||
|
|
@ -18,11 +20,17 @@ public class ServerZeroHandler extends BaseHandler {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void process(ISession iSession, PacketNetData netData) throws Exception {
|
||||
User user = UserManager.getUser(iSession.getUid());
|
||||
public void process(ISession session, PacketNetData netData) throws Exception {
|
||||
User user = UserManager.getUser(session.getUid());
|
||||
GlobalDataManaager.flushGoodsTimes(user);
|
||||
PlayerLogic.getInstance().sendDayilyMail(user,-1);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0);
|
||||
|
||||
|
||||
// int indicationIndex = session.getIndicationIndex();
|
||||
// byte[] byteBuf = MessageUtil.wrappedBuffer(session.getUid(), session.getToken(), indicationIndex,1, MessageTypeProto.MessageType.ZeroPlayerUpdateIndication_VALUE, PlayerInfoProto.ZeroPlayerUpdateIndication.newBuilder().build());
|
||||
MessageUtil.sendIndicationMessage(session, 1, MessageTypeProto.MessageType.ZeroPlayerUpdateIndication_VALUE, PlayerInfoProto.ZeroPlayerUpdateIndication.newBuilder().build(), true);
|
||||
|
||||
//发送每日孙龙邮件l
|
||||
// 这段暂时注掉,青龙秘宝没有这个需求,防止活动开启后发送错误的邮件
|
||||
/*if(user.getPlayerInfoManager().getHadBuyTreasure()!=0){
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
|
|||
if(diff>setting.getRestTime()[0]&&diff<setting.getRestTime()[1]){
|
||||
WorldProto.GetWorldArenaInfoRequest.Builder builder = WorldProto.GetWorldArenaInfoRequest.newBuilder(proto);
|
||||
builder.setIsPro(true);
|
||||
proto = builder.build();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -43,10 +43,11 @@ public class GetWorldArenaInfoResponseHandler extends gtGBaseHandler<WorldProto.
|
|||
|
||||
if (diff > setting.getRestTime()[0] && diff < setting.getRestTime()[1]) {
|
||||
builder.setStage(3);
|
||||
builder.setEndTime((int)(timeControllerOfFunction.getStartTime()/1000+setting.getRestTime()[1]));
|
||||
//多加1分钟 周期间隔后 client再发起请求
|
||||
builder.setEndTime((int)(timeControllerOfFunction.getStartTime()/1000+setting.getRestTime()[1])+61);
|
||||
} else if (diff > setting.getBattleTime()[0] && diff < setting.getBattleTime()[1]) {
|
||||
builder.setStage(2);
|
||||
builder.setEndTime((int)(timeControllerOfFunction.getStartTime()/1000+setting.getBattleTime()[1]));
|
||||
builder.setEndTime((int)(timeControllerOfFunction.getStartTime()/1000+setting.getBattleTime()[1])+10);
|
||||
} else {
|
||||
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,47 +65,51 @@ public class ArenaWorldLogic {
|
|||
|
||||
public static void close() throws Exception {
|
||||
int myGroup = GlobalidHelper.getWorldInfo().getMyGroup();
|
||||
PlayerInfoProto.RankResponse rankResponse = WorldHelper.sendMessageToWorldWithResult(0, WorldProto.GetRankRequest.newBuilder().setUid(0).setAcitvityId(0).setType(28).setCrossId(myGroup).build(), PlayerInfoProto.RankResponse.class);
|
||||
|
||||
if(rankResponse==null){
|
||||
LOGGER.error("Exception::rank null");
|
||||
if(myGroup==0){
|
||||
return;
|
||||
}
|
||||
Map<Integer, SMServerArenaReward> config = STableManager.getConfig(SMServerArenaReward.class);
|
||||
Map<Integer, SMServerArenaReward> rewardsMap = new HashMap<>();
|
||||
config.forEach((k, v) -> {
|
||||
int minRank = v.getMinRank();
|
||||
int maxRank = v.getMaxRank();
|
||||
while (minRank <= maxRank) {
|
||||
rewardsMap.put(minRank++, v);
|
||||
}
|
||||
|
||||
});
|
||||
List<CommonProto.UserRank> ranksList = rankResponse.getRanksList();
|
||||
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.World_Arena.getFunctionType());
|
||||
|
||||
Map<Integer, SArenaRobotConfig> robotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
|
||||
int nowTime = (int) (TimeUtils.now() / 1000);
|
||||
Set<Integer> joinUids = new HashSet<>(128);
|
||||
try {
|
||||
for (CommonProto.UserRank item : ranksList) {
|
||||
int uid = item.getUid();
|
||||
if (robotConfigMap.containsKey(uid)) {
|
||||
continue;
|
||||
}
|
||||
joinUids.add(uid);
|
||||
User user = UserManager.getUser(uid);
|
||||
SMServerArenaReward smServerArenaReward = rewardsMap.get(item.getRankInfo().getRank());
|
||||
if (user.getArenaManager().getTopMaxRank() == 0 || user.getArenaManager().getTopMaxRank() > item.getRankInfo().getRank()) {
|
||||
user.getArenaManager().setTopMaxRank(item.getRankInfo().getRank());
|
||||
}
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("receive_activity_title", new Object[]{sGlobalSystemConfig.getName()});
|
||||
String content = SErrorCodeEerverConfig.getI18NMessage("receive_activity_txt", new Object[]{sGlobalSystemConfig.getName()});
|
||||
MailLogic.getInstance().sendMail(user.getId(), title, content, ItemUtil.getMailReward(smServerArenaReward.getSeasonReward()), nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
}
|
||||
}catch (Exception e){
|
||||
LOGGER.info("Exception e = "+"size"+ ranksList.size()+ e.toString());
|
||||
}
|
||||
//赛季结束清除排行
|
||||
// PlayerInfoProto.RankResponse rankResponse = WorldHelper.sendMessageToWorldWithResult(0, WorldProto.GetRankRequest.newBuilder().setUid(0).setAcitvityId(0).setType(28).setCrossId(myGroup).build(), PlayerInfoProto.RankResponse.class);
|
||||
//
|
||||
// if(rankResponse==null){
|
||||
// LOGGER.error("Exception::rank null");
|
||||
// return;
|
||||
// }
|
||||
// Map<Integer, SMServerArenaReward> config = STableManager.getConfig(SMServerArenaReward.class);
|
||||
// Map<Integer, SMServerArenaReward> rewardsMap = new HashMap<>();
|
||||
// config.forEach((k, v) -> {
|
||||
// int minRank = v.getMinRank();
|
||||
// int maxRank = v.getMaxRank();
|
||||
// while (minRank <= maxRank) {
|
||||
// rewardsMap.put(minRank++, v);
|
||||
// }
|
||||
//
|
||||
// });
|
||||
// List<CommonProto.UserRank> ranksList = rankResponse.getRanksList();
|
||||
// SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.World_Arena.getFunctionType());
|
||||
//
|
||||
// Map<Integer, SArenaRobotConfig> robotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
|
||||
// int nowTime = (int) (TimeUtils.now() / 1000);
|
||||
// Set<Integer> joinUids = new HashSet<>(128);
|
||||
// try {
|
||||
// for (CommonProto.UserRank item : ranksList) {
|
||||
// int uid = item.getUid();
|
||||
// if (robotConfigMap.containsKey(uid)) {
|
||||
// continue;
|
||||
// }
|
||||
// joinUids.add(uid);
|
||||
// User user = UserManager.getUser(uid);
|
||||
// SMServerArenaReward smServerArenaReward = rewardsMap.get(item.getRankInfo().getRank());
|
||||
// if (user.getArenaManager().getTopMaxRank() == 0 || user.getArenaManager().getTopMaxRank() > item.getRankInfo().getRank()) {
|
||||
// user.getArenaManager().setTopMaxRank(item.getRankInfo().getRank());
|
||||
// }
|
||||
// String title = SErrorCodeEerverConfig.getI18NMessage("receive_activity_title", new Object[]{sGlobalSystemConfig.getName()});
|
||||
// String content = SErrorCodeEerverConfig.getI18NMessage("receive_activity_txt", new Object[]{sGlobalSystemConfig.getName()});
|
||||
// MailLogic.getInstance().sendMail(user.getId(), title, content, ItemUtil.getMailReward(smServerArenaReward.getSeasonReward()), nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||
// }
|
||||
// }catch (Exception e){
|
||||
// LOGGER.info("Exception e = "+"size"+ ranksList.size()+ e.toString());
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -151,6 +151,12 @@ public class MinuteTask extends Thread {
|
|||
LOGGER.error("Exception::=>{}",e.toString());
|
||||
}
|
||||
|
||||
try {
|
||||
ArenaLogic.getInstance().worldSendReward();
|
||||
}catch (Exception e){
|
||||
e.printStackTrace();
|
||||
LOGGER.error("Exception::=>{}",e.toString());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import manager.STableManager;
|
|||
import manager.Table;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
@Table(name ="MServerArenaReward")
|
||||
public class SMServerArenaReward implements BaseConfig {
|
||||
|
|
@ -16,10 +17,18 @@ public class SMServerArenaReward implements BaseConfig {
|
|||
|
||||
private int[][] seasonReward;
|
||||
|
||||
|
||||
public static TreeMap<Integer,SMServerArenaReward> rewardMapByRank;
|
||||
|
||||
@Override
|
||||
public void init() throws Exception {
|
||||
|
||||
Map<Integer, SMServerArenaReward> config = STableManager.getConfig(SMServerArenaReward.class);
|
||||
TreeMap<Integer, SMServerArenaReward> rewardTreeMap = new TreeMap<>();
|
||||
for (Map.Entry<Integer,SMServerArenaReward> entry:config.entrySet()){
|
||||
rewardTreeMap.put(entry.getValue().getMinRank(),entry.getValue());
|
||||
}
|
||||
rewardMapByRank = rewardTreeMap;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
package com.world.handler;
|
||||
|
||||
import com.google.protobuf.GeneratedMessage;
|
||||
import com.world.logic.arean.ArenaEnemy;
|
||||
import com.world.logic.arean.ArenaLogic;
|
||||
import rpc.net.RpcMessage;
|
||||
import rpc.net.gtGBaseHandler;
|
||||
import rpc.world.WorldProto;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Description: des
|
||||
* Author: lxr
|
||||
* CreateDate: 2020/12/22 4:27
|
||||
*/
|
||||
public class GetArenaRankRewardRequestHandler extends gtGBaseHandler<WorldProto.GetArenaRankRewardRequest> {
|
||||
@Override
|
||||
public WorldProto.GetArenaRankRewardResponse processWithProto(RpcMessage rpcMessage, WorldProto.GetArenaRankRewardRequest proto) throws Exception {
|
||||
int serverId = rpcMessage.getServerId();
|
||||
WorldProto.GetArenaRankRewardResponse.Builder response = WorldProto.GetArenaRankRewardResponse.newBuilder();
|
||||
if(proto.getGroupId()==0){
|
||||
return response.build();
|
||||
}
|
||||
Map<Integer, ArenaEnemy> rankMap = ArenaLogic.ranInfo.get(proto.getGroupId());
|
||||
for(Map.Entry<Integer, ArenaEnemy> entry:rankMap.entrySet()){
|
||||
if(entry.getValue().getServerID()!=serverId){
|
||||
continue;
|
||||
}
|
||||
response.addRankInfo(WorldProto.ArenaRank.newBuilder().setRank(entry.getKey()).setUid(entry.getValue().getEnemyId()).build());
|
||||
}
|
||||
return response.build();
|
||||
}
|
||||
}
|
||||
|
|
@ -42,7 +42,7 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
|
|||
}
|
||||
|
||||
|
||||
Lockeys.getInstance().lock("arena", rpcMessage.getServerId());
|
||||
// Lockeys.getInstance().lock("arena", rpcMessage.getServerId());
|
||||
|
||||
try {
|
||||
//TODO 校验需要对手是否在匹配范围内
|
||||
|
|
@ -117,13 +117,22 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
|
|||
Map.Entry<Integer, ArenaEnemy> myRank = ArenaLogic.getKey(integerIntegerHashMap, rpcMessage.getUid());
|
||||
if (myRank != null) {
|
||||
builder.setOldrank(myRank.getKey());
|
||||
integerIntegerHashMap.put(myRank.getKey(), arenaEnemy);
|
||||
integerIntegerHashMap.put(proto.getChallengeRank(), myRank.getValue());
|
||||
if(myRank.getKey()>proto.getChallengeRank()){
|
||||
arenaInfoBuild.setScore(proto.getChallengeRank());
|
||||
ArenaEnemy temp = new ArenaEnemy();
|
||||
temp = myRank.getValue();
|
||||
integerIntegerHashMap.put(myRank.getKey(), arenaEnemy);
|
||||
integerIntegerHashMap.put(proto.getChallengeRank(), temp);
|
||||
arenaInfoBuild.setScore(proto.getChallengeRank());
|
||||
}else{
|
||||
arenaInfoBuild.setScore(myRank.getKey());
|
||||
}
|
||||
if (arenaEnemy.getEnemyType() == 0) {
|
||||
//清空匹配
|
||||
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK_MY_MATH, String.valueOf(arenaEnemy.getEnemyId()), new HashSet<>());
|
||||
}
|
||||
} else {
|
||||
arenaInfoBuild.setScore(proto.getChallengeRank());
|
||||
builder.setOldrank(9999);
|
||||
integerIntegerHashMap.put(proto.getChallengeRank(), new ArenaEnemy(rpcMessage.getUid(), rpcMessage.getServerId(), 1, 0));
|
||||
}
|
||||
|
|
@ -136,7 +145,6 @@ public class GetWorldArenaChallengeRequestHandler extends gtGBaseHandler<WorldPr
|
|||
List<String> strings = RedisUtil.getInstence().lGet(RedisKey.WORLD_ARENA_MY_PRON,String.valueOf(rpcMessage.getUid()), 0, -1);
|
||||
List<CommonProto.ArenaEnemy> arenaEnemyList = ArenaLogic.getInstance().getArenaEnemyList(new LinkedList<>(arenaEnemies),new LinkedList<>(strings));
|
||||
arenaInfoBuild.addAllArenaEnemys(arenaEnemyList);
|
||||
arenaInfoBuild.setScore(proto.getChallengeRank());
|
||||
builder.setRank(myRank == null ? 9999 : myRank.getKey());
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ public class GetWorldArenaInfoRequestHandler extends gtGBaseHandler<WorldProto.G
|
|||
WorldProto.GetWorldArenaInfoResponse.Builder builder = WorldProto.GetWorldArenaInfoResponse.newBuilder();
|
||||
CommonProto.ArenaInfo.Builder builder1 = CommonProto.ArenaInfo.newBuilder();
|
||||
try {
|
||||
Lockeys.getInstance().lock("arena", rpcMessage.getServerId());
|
||||
// Lockeys.getInstance().lock("arena", rpcMessage.getServerId());
|
||||
int serverId = rpcMessage.getServerId();
|
||||
Integer integer = ArenaLogic.serverSplit.get(String.valueOf(serverId));
|
||||
HashMap<Integer, ArenaEnemy> integerIntegerHashMap = ArenaLogic.ranInfo.get(integer);
|
||||
|
|
@ -46,7 +46,11 @@ public class GetWorldArenaInfoRequestHandler extends gtGBaseHandler<WorldProto.G
|
|||
//获取前4名
|
||||
arenaEnemies = new LinkedList<>();
|
||||
for (int i = 1; i <=4 ; i++) {
|
||||
arenaEnemies.add(integerIntegerHashMap.get(i));
|
||||
ArenaEnemy arenaEnemy = integerIntegerHashMap.get(i);
|
||||
if(arenaEnemy.getRank()==0){
|
||||
arenaEnemy.setRank(i);
|
||||
}
|
||||
arenaEnemies.add(arenaEnemy);
|
||||
}
|
||||
}else {
|
||||
arenaEnemies = ArenaLogic.randomRank(integerIntegerHashMap, rpcMessage.getUid(), myIndex);
|
||||
|
|
@ -63,7 +67,7 @@ public class GetWorldArenaInfoRequestHandler extends gtGBaseHandler<WorldProto.G
|
|||
e.printStackTrace();
|
||||
LOGGER.error(e.toString());
|
||||
} finally {
|
||||
Lockeys.getInstance().reset();
|
||||
// Lockeys.getInstance().reset();
|
||||
}
|
||||
return builder.setArenaInfo(builder1).build();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public class GetWorldArenaProudRequestHandler extends gtGBaseHandler<WorldProto.
|
|||
|
||||
try {
|
||||
//check 膜拜 在逻辑服做
|
||||
Lockeys.getInstance().lock("arena", rpcMessage.getServerId());
|
||||
// Lockeys.getInstance().lock("arena", rpcMessage.getServerId());
|
||||
|
||||
Integer integer = ArenaLogic.serverSplit.get(String.valueOf(rpcMessage.getServerId()));
|
||||
HashMap<Integer, ArenaEnemy> integerIntegerHashMap = ArenaLogic.ranInfo.get(integer);
|
||||
|
|
@ -37,14 +37,25 @@ public class GetWorldArenaProudRequestHandler extends gtGBaseHandler<WorldProto.
|
|||
return builder.build();
|
||||
}
|
||||
RedisUtil.getInstence().lSet(RedisKey.WORLD_ARENA_MY_PRON+":"+rpcMessage.getUid(),String.valueOf(arenaEnemy.getEnemyId_UUid()));
|
||||
arenaEnemy.addWorshipTime();
|
||||
|
||||
// builder.setDrop()
|
||||
builder.setWorshipTime(arenaEnemy.getWorshipTime());
|
||||
if(arenaEnemy.getEnemyType()==0){
|
||||
Object get = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT_ROBOT, arenaEnemy.getEnemyId_UUid());
|
||||
|
||||
int proudTime = get==null?1:Integer.parseInt((String)get)+1;
|
||||
RedisUtil.getInstence().hset(RedisKey.ARENA_PROUD_COUNT_ROBOT,arenaEnemy.getEnemyId_UUid(),proudTime);
|
||||
builder.setWorshipTime(proudTime);
|
||||
}else{
|
||||
Object get = RedisUtil.getInstence().hget(RedisKey.ARENA_PROUD_COUNT, String.valueOf(arenaEnemy.getEnemyId()));
|
||||
|
||||
int proudTime = get==null?1:Integer.parseInt((String)get)+1;
|
||||
RedisUtil.getInstence().hset(RedisKey.ARENA_PROUD_COUNT,String.valueOf(arenaEnemy.getEnemyId()),proudTime);
|
||||
builder.setWorshipTime(proudTime);
|
||||
}
|
||||
// builder.setDrop()
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}finally {
|
||||
Lockeys.getInstance().reset();
|
||||
// Lockeys.getInstance().reset();
|
||||
}
|
||||
|
||||
//todo 添加掉落
|
||||
|
|
|
|||
|
|
@ -46,10 +46,10 @@ public class GetWorldArenaRecordInfoRequestHandler extends gtGBaseHandler<WorldP
|
|||
collect.sort(Comparator.comparingInt(WorldProto.WroldBattleRecord::getAttackTime));
|
||||
Collections.reverse(collect);
|
||||
int size = arenaRecordList.size();
|
||||
if (size > 20) {
|
||||
String[] removeMapKeys = new String[size - 10];
|
||||
for (int i = 0; i < size - 10; i++) {
|
||||
WorldProto.WroldBattleRecord remove = collect.remove(0);
|
||||
if (size > 15) {
|
||||
String[] removeMapKeys = new String[size - 15];
|
||||
for (int i = 0; i < size - 15; i++) {
|
||||
WorldProto.WroldBattleRecord remove = collect.remove(size-i-1);
|
||||
String removeId = remove.getRecordId();
|
||||
removeMapKeys[i] = (removeId);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ package com.world.logic.arean;
|
|||
import com.ljsd.jieling.util.KeyGenUtils;
|
||||
import com.ljsd.jieling.util.UUIDEnum;
|
||||
|
||||
public class ArenaEnemy extends Object{
|
||||
public class ArenaEnemy {
|
||||
private int enemyId;
|
||||
private String enemyId_UUid;//机器人唯一ID
|
||||
private int serverID;
|
||||
|
|
@ -13,18 +13,25 @@ public class ArenaEnemy extends Object{
|
|||
// 0:未挑战,1:挑战成功,2:挑战失败
|
||||
private int enemyStatus;
|
||||
private int rank;//排名
|
||||
private int worshipTime;//膜拜次数
|
||||
private boolean gender;
|
||||
|
||||
public ArenaEnemy(int enemyId, String enemyId_UUid, int serverID, int enemyType, int enemyStatus, int rank, int worshipTime) {
|
||||
public ArenaEnemy(int enemyId, String enemyId_UUid, int serverID, int enemyType, int enemyStatus, int rank) {
|
||||
this.enemyId = enemyId;
|
||||
this.enemyId_UUid = enemyId_UUid;
|
||||
this.serverID = serverID;
|
||||
this.enemyType = enemyType;
|
||||
this.enemyStatus = enemyStatus;
|
||||
this.rank = rank;
|
||||
this.worshipTime = worshipTime;
|
||||
}
|
||||
|
||||
public ArenaEnemy(int enemyId, int serverID, int enemyType, int enemyStatus,boolean gender) {
|
||||
this.enemyId = enemyId;
|
||||
this.enemyId_UUid=enemyType==0? KeyGenUtils.produceIdByModule(UUIDEnum.EXPEDITION, 0):String.valueOf(enemyId);
|
||||
this.serverID = serverID;
|
||||
this.enemyType = enemyType;
|
||||
this.enemyStatus = enemyStatus;
|
||||
this.gender=gender;
|
||||
}
|
||||
public ArenaEnemy(int enemyId, int serverID, int enemyType, int enemyStatus) {
|
||||
this.enemyId = enemyId;
|
||||
this.enemyId_UUid=enemyType==0? KeyGenUtils.produceIdByModule(UUIDEnum.EXPEDITION, 0):String.valueOf(enemyId);
|
||||
|
|
@ -33,6 +40,10 @@ public class ArenaEnemy extends Object{
|
|||
this.enemyStatus = enemyStatus;
|
||||
}
|
||||
|
||||
public ArenaEnemy(){
|
||||
|
||||
}
|
||||
|
||||
public String getEnemyId_UUid() {
|
||||
return enemyId_UUid;
|
||||
}
|
||||
|
|
@ -67,14 +78,7 @@ public class ArenaEnemy extends Object{
|
|||
return enemyStatus;
|
||||
}
|
||||
|
||||
|
||||
public int getWorshipTime() {
|
||||
return worshipTime;
|
||||
public boolean isGender() {
|
||||
return gender;
|
||||
}
|
||||
|
||||
public synchronized void addWorshipTime() {
|
||||
this.worshipTime+=1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -118,11 +118,12 @@ public class ArenaLogic {
|
|||
int[] fightArea = STableManager.getConfig(SMServerArenaSetting.class).get(1).getFightArea();
|
||||
SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1);
|
||||
int robotNum = setting.getRobotNum();
|
||||
Random random = new Random();
|
||||
map.forEach((integer, strings) -> {
|
||||
List<Integer> robotIds = randomRobot(fightArea[0], fightArea[1], robotNum);
|
||||
HashMap<Integer, ArenaEnemy> orDefault = ranInfo.getOrDefault(integer, new HashMap<>());
|
||||
for (int i = 1; i <= robotIds.size(); i++) {
|
||||
orDefault.put(i, new ArenaEnemy(robotIds.get(i - 1), 0, 0, 0));
|
||||
orDefault.put(i, new ArenaEnemy(robotIds.get(i - 1), 0, 0, 0,random.nextBoolean()));
|
||||
}
|
||||
ranInfo.put(integer, orDefault);
|
||||
RedisUtil.getInstence().set(RedisKey.WORLD_ARENA_RANK, String.valueOf(integer), orDefault, new TypeToken<HashMap<Integer, ArenaEnemy>>() {
|
||||
|
|
@ -169,13 +170,14 @@ public class ArenaLogic {
|
|||
int enemyId = arenaEnemy.getEnemyId();
|
||||
int enemyType = arenaEnemy.getEnemyType();
|
||||
int rank = arenaEnemy.getRank();//only robot
|
||||
boolean gender = arenaEnemy.isGender();
|
||||
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())));
|
||||
arenaEnemyList.add(getArenaEnemy(enemyId, arenaEnemy.getServerID(), enemyType, rank,hget==null?0:Integer.parseInt((String)hget),myPro.contains(arenaEnemy.getEnemyId_UUid()),gender));
|
||||
}
|
||||
}
|
||||
return arenaEnemyList;
|
||||
|
|
@ -198,8 +200,11 @@ public class ArenaLogic {
|
|||
|
||||
|
||||
}
|
||||
|
||||
public CommonProto.ArenaEnemy getArenaEnemy(int enemyId, int serverId, int enemyType, int rank,int proTime,boolean isContain) throws Exception {
|
||||
return getArenaEnemy(enemyId,serverId,enemyType,rank,proTime,isContain,false);
|
||||
}
|
||||
|
||||
public CommonProto.ArenaEnemy getArenaEnemy(int enemyId, int serverId, int enemyType, int rank,int proTime,boolean isContain,boolean gender) throws Exception {
|
||||
|
||||
if (enemyType == 0) { //机器人
|
||||
SArenaRobotConfig sArenaRobotConfig = SArenaRobotConfig.getsArenaRobotConfigById(enemyId);
|
||||
|
|
@ -211,6 +216,7 @@ public class ArenaLogic {
|
|||
.setScore(sArenaRobotConfig.getRobotScore())
|
||||
.setTotalForce(sArenaRobotConfig.getTotalForce())
|
||||
.setRank(rank)
|
||||
.setGender(gender?0:1)
|
||||
.setServername(MongoUtil.getInstence().getServerNameById(serverId))
|
||||
.build();
|
||||
return CommonProto.ArenaEnemy.newBuilder()
|
||||
|
|
@ -400,6 +406,7 @@ public class ArenaLogic {
|
|||
.setUserName(sArenaRobotConfig.getRobotName())
|
||||
.setRankInfo(everyRankInfo)
|
||||
.setForce(sArenaRobotConfig.getTotalForce())
|
||||
.setLevel(sArenaRobotConfig.getRobotLevel())
|
||||
.setServerName(MongoUtil.getInstence().getServerNameById(arenaEnemy.getServerID()));
|
||||
builder.addRanks(everyRank);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -43,4 +43,7 @@ public class RedisKey {
|
|||
|
||||
public static final String DEATH_PATH_EVERY_OVER_HASH = "DEATH_PATH_EVERY_OVER_HASH";//结算标识
|
||||
|
||||
public static final String ARENA_PROUD_COUNT = "ARENA_PROUD_COUNT";
|
||||
public static final String ARENA_PROUD_COUNT_ROBOT = "ARENA_PROUD_COUNT_ROBOT";
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,10 +22,19 @@ public class MinuteTask extends Thread {
|
|||
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
|
||||
try {
|
||||
LOGGER.info("MinuteTask everyZeroTask start...");
|
||||
everyZeroTask();
|
||||
LOGGER.info("MinuteTaskV everyZeroTask end...");
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("e",e);
|
||||
}
|
||||
try {
|
||||
LOGGER.info("MinuteTask start...");
|
||||
ArenaLogic.getInstance().minCheck();
|
||||
everyZeroTask();
|
||||
|
||||
LOGGER.info("MinuteTask end...");
|
||||
} catch (Exception e) {
|
||||
LOGGER.error("e",e);
|
||||
|
|
|
|||
Loading…
Reference in New Issue