跨服修改

back_recharge
lvxinran 2021-07-18 23:57:59 +08:00
parent 3c3299acfa
commit 4b641f5109
9 changed files with 74 additions and 83 deletions

View File

@ -204,9 +204,13 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler<WorldProto
if(myRank==-1){
//第一次 没有上榜的时候
rank.removeOneRankByPiece(String.valueOf(crossGroup),String.valueOf(proto.getChallengeRank()));
rank.removeOneRankByPiece(String.valueOf(crossGroup),String.valueOf(proto.getChallengeUid()));
rank.addRank(iSession.getUid(), String.valueOf(crossGroup), score);
newRank = rank.getRankIndexByKey(String.valueOf(crossGroup),iSession.getUid());
if(proto.getChallengeUid()>1000){
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))<rank.getScoreById(proto.getChallengeUid(),String.valueOf(crossGroup))){
//在榜上 且排名要升高
rank.addRank(proto.getChallengeUid(),String.valueOf(crossGroup),rank.getScoreById(iSession.getUid(),String.valueOf(crossGroup)));
@ -239,6 +243,8 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler<WorldProto
builder.setOldrank(newRank==-1?9999:newRank);
RedisUtil.getInstence().putMapEntry(RedisKey.WORLD_ARENA_RRECORD, Integer.toString(proto.getChallengeUid()), s, builder.build().toByteArray());
}
//保存自己的编队
CrossServiceLogic.getInstance().dispose(user);
}

View File

@ -50,8 +50,11 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
WorldProto.GetWorldArenaInfoResponse.Builder builder = WorldProto.GetWorldArenaInfoResponse.newBuilder();
long lastOrUnderHour = TimeUtils.getLastOrUnderHour(GameApplication.serverConfig.getCacheOpenTime(), 1, 0, 0, true);
lastOrUnderHour+=TimeUtils.WEEK*3;
SMServerArenaSetting setting = STableManager.getConfig(SMServerArenaSetting.class).get(1);
if(setting==null){
throw new ErrorCodeException(ErrorCode.CFG_NULL);
}
lastOrUnderHour+=TimeUtils.WEEK*setting.getOpenWeek();
if(TimeUtils.now()<lastOrUnderHour){
builder.setIsStart(0);
}else{
@ -61,10 +64,7 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
throw new ErrorCodeException(ErrorCode.ACTIVITY_NOT_OPEN);
}
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;
@ -132,62 +132,5 @@ public class GetWorldArenaInfoRequestHandler extends BaseHandler<WorldProto.GetW
// List<String> 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<CommonProto.ArenaEnemy> arenaEnemyList = ArenaLogic.getInstance().getArenaEnemyList(new LinkedList<>(arenaEnemies),strings);
// builder1.setScore(myIndex)
// .addAllArenaEnemys(arenaEnemyList)
// .build();
// //根据我的排名获取
// int myIndex = 9999;
// if (myRank != null) {
// myIndex = myRank.getKey();
// }
// List<ArenaEnemy> 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<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),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();
// }
}
}

View File

@ -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) {

View File

@ -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) {

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<Integer,Pokemon> 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());

View File

@ -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{

View File

@ -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;
}
}