巅峰赛数据

back_recharge
wangyuan 2019-12-13 21:13:42 +08:00
parent f49bfe6f1f
commit 95b94c95f2
15 changed files with 5872 additions and 879 deletions

View File

@ -2,9 +2,10 @@ package com.ljsd.common.mogodb;
import org.springframework.data.annotation.Transient;
import java.io.Serializable;
import java.lang.ref.WeakReference;
//使用下划线是为了在json转换时能转为正确的值
public abstract class MongoBase {
public abstract class MongoBase implements Serializable {
public static final String _COLLECTION_NAME = "user";
private int rootId;

View File

@ -200,6 +200,7 @@ public class RedisKey {
public final static String CHAMPION_JOIN = "CHAMPION_JOIN";
public final static String CHAMPION_ARENA_RECORD = "CHAMPION_ARENA_RECORD";
public final static String CHAMPION_CUR_JOIN_IDS = "CHAMPION_CUR_JOIN_IDS";
public final static String CHAMPION_FINAL_JOIN_IDS = "CHAMPION_CUR_JOIN_IDS";
public final static String CHAMPION_MY_BATTLLE_IDS = "CHAMPION_MY_BATTLLE_IDS";
public final static String CHAMPION_CUR_BETID = "CHAMPION_CUR_BETID";
@ -208,7 +209,7 @@ public class RedisKey {
public final static String CHAMPION_CHOSE_TEAM_INFO = "CHAMPION_CHOSE_TEAM_INFO";
public final static String CHAMPION_FINAL_TEAM_INFO = "CHAMPION_FINAL_TEAM_INFO";
public final static String CHAMPION_PROGRESS = "CHAMPION_PROGRESS"; //
public final static String CHAMPION_BET_MINE = "CHAMPION_BET_MINE"; // 我的竞猜
public final static String CHAMPION_BET_ALL = "CHAMPION_BET_ALL"; // 竞猜信息
public final static String CHAMPION_BET_RANK = "CHAMPION_BET_RANK"; // 巅峰赛排名

View File

@ -0,0 +1,19 @@
package com.ljsd.jieling.handler.champion;
import com.ljsd.jieling.handler.BaseHandler;
import com.ljsd.jieling.logic.championship.ChampionshipLogic;
import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.ArenaInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto;
public class ChampionViewFinalHandler extends BaseHandler<ArenaInfoProto.ChampionViewFinalRequest> {
@Override
public MessageTypeProto.MessageType getMessageCode() {
return MessageTypeProto.MessageType.CHAMPION_VIEW_FINAL_REQUEST;
}
@Override
public void processWithProto(ISession iSession, ArenaInfoProto.ChampionViewFinalRequest proto) throws Exception {
ChampionshipLogic.viewFinalInfo(iSession,proto.getType());
}
}

View File

@ -245,7 +245,11 @@ public class GlobalDataManaager implements IManager {
new UserLevelEventHandler();
new RemoveEventHeroHandler();
new FightMainEventHandler();
ChampionshipLogic.whenStart();
// ChampionshipLogic. start();
ChampionshipLogic.minuteCheck(true);
// ChampionshipLogic. selectToBattle();
// ChampionshipLogic. switchBet();
} catch (Exception e) {
LOGGER.error("e",e);
}

View File

@ -19,6 +19,7 @@ import com.ljsd.jieling.logic.blood.BloodLogic;
import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.fight.*;
import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
@ -55,11 +56,43 @@ public class ChampionshipLogic {
private static Map<Integer,GameFightType> gameFightTypeMap = new HashMap<>();
static {
gameFightTypeMap.put(0,GameFightType.ArenaRobotFight);
gameFightTypeMap.put(1,GameFightType.ArenaPersonFight);
gameFightTypeMap.put(0,GameFightType.ArenaPersonFight);
gameFightTypeMap.put(1,GameFightType.ArenaRobotFight);
gameFightTypeMap.put(2,GameFightType.Arena2RobotFight);
}
public static void viewFinalInfo(ISession iSession, int type) throws Exception {
if(schedule!=2){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
Type valueType = new TypeToken<List<Integer>>() {
}.getType();
Map<Integer, List<Integer>> finalmemberOfTeam = RedisUtil.getInstence().getMapValues(RedisKey.CHAMPION_FINAL_TEAM_INFO, "", Integer.class, valueType);
List<String> arenaRecodeds = RedisUtil.getInstence().lGet(RedisKey.CHAMPION_FINAL_JOIN_IDS, "", 0, -1);
List<Object> arenaIds = new ArrayList<>(arenaRecodeds);
List<ArenaRecord> arenaRecords = RedisUtil.getInstence().getMapEntrys(RedisKey.CHAMPION_ARENA_RECORD, "", arenaIds, ArenaRecord.class);
Map<Integer, SArenaRobotConfig> config = STableManager.getConfig(SArenaRobotConfig.class);
for(ArenaRecord arenaRecord : arenaRecords){
int attackId = arenaRecord.getAttackId();
int defUid = arenaRecord.getDefUid();
String attackName = getRoleNameById(attackId,config);
String defName = getRoleNameById(attackId,config);
int fightResult = arenaRecord.getFightResult();
if(progress%10%4 != 0){
fightResult =-1;
}
}
public static String getRoleNameById(int uid,Map<Integer,SArenaRobotConfig> config ) throws Exception {
if(config.containsKey(uid)){
return config.get(uid).getRobotName();
}
return UserManager.getUser(uid).getPlayerInfoManager().getNickName();
}
public static class MemberInfo{
private int uid;
@ -368,6 +401,10 @@ public class ChampionshipLogic {
int myRank = RedisUtil.getInstence().getZSetreverseRank(RedisKey.CHAMPION_RANK, "", Integer.toString(uid)).intValue();
String myCurJoinBattleId = getMyCurJoinBattleId(uid);
ArenaInfoProto.ChampionGetInfoResponse.Builder builder = ArenaInfoProto.ChampionGetInfoResponse.newBuilder().setProgress(progress).setEndTime(endTime).setMyrank(myRank);
if(myRank!=-1){
MemberInfo memberInfo = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_JOIN, "", Integer.toString(uid), MemberInfo.class);
builder.setMyscore(memberInfo.getScore());
}
if(!StringUtil.isEmpty(myCurJoinBattleId)){
builder.setJoinState(1);
ArenaRecord arenaRecord =RedisUtil.getInstence().getMapValue(RedisKey.CHAMPION_ARENA_RECORD,"",myCurJoinBattleId,ArenaRecord.class);
@ -377,10 +414,13 @@ public class ChampionshipLogic {
enemyId = arenaRecord.getAttackId();
fightResult=1^fightResult;
}
CommonProto.ChampionBattleInfo.Builder builder1 = CommonProto.ChampionBattleInfo.newBuilder();
if(progress%10%4 != 0){
fightResult =-1;
}else{
builder1.setFightData( CommonProto.FightData.parseFrom(arenaRecord.getFightData()));
}
builder.setChampionBattleInfo(CommonProto.ChampionBattleInfo.newBuilder()
builder.setChampionBattleInfo(builder1
.setMyInfo(getChampionBattleInfo(uid))
.setEnemyInfo(getChampionBattleInfo(enemyId))
.setResult(fightResult)
@ -393,11 +433,14 @@ public class ChampionshipLogic {
public static void getChampionBetInfo(ISession session,int type) throws Exception {
int uid = session.getUid();
if(progress==-1){
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
String selectIdForRedis = getSelectIdForRedis();
ArenaInfoProto.ChampionGetBetResponse.Builder builder = ArenaInfoProto.ChampionGetBetResponse.newBuilder();
if(!StringUtil.isEmpty(selectIdForRedis)){
builder.setChampionBetInfo(getBetOdds());
ArenaRecord arenaRecord = RedisUtil.getInstence().getMapValue(RedisKey.CHAMPION_JOIN, "", selectIdForRedis, ArenaRecord.class);
ArenaRecord arenaRecord = RedisUtil.getInstence().getMapValue(RedisKey.CHAMPION_ARENA_RECORD, "", selectIdForRedis, ArenaRecord.class);
if(type == 0){
int fightResult=arenaRecord.getFightResult();
if(progress%10%4 != 0){
@ -412,14 +455,19 @@ public class ChampionshipLogic {
if(coins == null){
myGuessID = 0;
}
builder.setChampionBattleInfo(CommonProto.ChampionBattleInfo.newBuilder()
CommonProto.ChampionBattleInfo.Builder builder1 = CommonProto.ChampionBattleInfo.newBuilder()
.setMyInfo(getChampionBattleInfo(arenaRecord.getAttackId()))
.setEnemyInfo(getChampionBattleInfo(arenaRecord.getDefUid()))
.setResult(fightResult)
.setResult(fightResult);
if(fightResult!=-1){
builder1.setFightData( CommonProto.FightData.parseFrom(arenaRecord.getFightData()));
}
builder.setChampionBattleInfo(builder1
.build());
builder.setWinUid(myGuessID);
}
}
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.CHAMPION_BET_INFO_RESPONSE_VALUE,builder.build(),true);
}
private static CommonProto.TeamOneInfo.Builder getChampionBattleInfo(int uid) throws Exception {
@ -440,23 +488,21 @@ public class ChampionshipLogic {
.setHeadFrame(playerManager.getHeadFrame())
.setLevel(playerManager.getLevel())
.setName(playerManager.getNickName()).setUid(uid);
TeamPosManager teamPosManager = user.getTeamPosManager();
CommonProto.TeamOneTeamInfo.Builder teamInfo = CommonProto.TeamOneTeamInfo.newBuilder();
teamInfo.setTotalForce(fightInfo.getForce());
// teamInfo.addPokemonInfos(fightInfo.getPokenmonIds());
/* if(teamPosManager.getTeamPosForHero().containsKey(teamId)){
for (TeamPosHeroInfo heroInfo:teamPosManager.getTeamPosForHero().get(teamId)) {
Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId());
teamInfo.addTeam(CBean2Proto.getSimpleTeamInfoByHero(hero));
}
}*/
int guildId = user.getPlayerInfoManager().getGuildId();
if(guildId!=0){
if(GuilidManager.guildInfoMap.containsKey(guildId)){
String name = GuilidManager.guildInfoMap.get(guildId).getName();
oneInfo.setGuildName(name);
if(!fightInfo.getPokenmonIds().isEmpty()){
teamInfo.addAllPokemonInfos(fightInfo.getPokenmonIds());
}
for(Map.Entry<String, FamilyHeroInfo> entry:fightInfo.getHeroAttribute().entrySet()){
FamilyHeroInfo familyHeroInfo = entry.getValue();
teamInfo.addTeam(CommonProto.TeamSimpleInfo.newBuilder()
.setHeroid(entry.getKey())
.setHeroTid(familyHeroInfo.getTempleteId())
.setStar(familyHeroInfo.getStar())
.setLevel(familyHeroInfo.getLevel())
.build()
);
}
oneInfo.setTeam(teamInfo);
return oneInfo;
@ -483,10 +529,10 @@ public class ChampionshipLogic {
int uid = session.getUid();
MemberInfo memberInfo = getJoinMemberInfo(uid);
if(memberInfo == null){
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE);
}
int teamId = memberInfo.getTeamId();
List<Integer> memberIds = RedisUtil.getInstence().getMapValue(RedisKey.CHAMPION_CHOSE_TEAM_INFO, "", Integer.toString(teamId), List.class);
List<Integer> memberIds = getMermberTeam().get(memberInfo.getTeamId());
Map<Integer, SArenaRobotConfig> robotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
List<CommonProto.ChampionTeamPersonInfo> championTeamPersonInfoList = new ArrayList<>(memberIds.size());
@ -530,6 +576,7 @@ public class ChampionshipLogic {
List<Object> ids = new ArrayList<>(mapValues.keySet());
List<ArenaRecord> myArenaRecordInfos = RedisUtil.getInstence().getMapEntrys(RedisKey.CHAMPION_ARENA_RECORD, "", ids, ArenaRecord.class);
ArenaInfoProto.ChanpionGetAllMyBattleHistoryResponse.Builder builder = ArenaInfoProto.ChanpionGetAllMyBattleHistoryResponse.newBuilder();
Map<Integer, SArenaRobotConfig> robotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
for(ArenaRecord arenaRecord : myArenaRecordInfos){
int enemyId = arenaRecord.getDefUid();
if(arenaRecord.getDefUid() == uid){
@ -548,7 +595,8 @@ public class ChampionshipLogic {
if(fightResult!=-1 && enemyId!=arenaRecord.getDefUid()){
fightResult = 1^0;
}
CommonProto.ArenaEnemy arenaEnemy = ArenaLogic.getInstance().getArenaEnemy(enemyId, arenaRecord.getType());
int enemyType = robotConfigMap.containsKey(enemyId)?0:1;
CommonProto.ArenaEnemy arenaEnemy = ArenaLogic.getInstance().getArenaEnemy(enemyId, enemyType);
ArenaInfoProto.ChampionTwoEnemInfo build = ArenaInfoProto.ChampionTwoEnemInfo.newBuilder().setBlueEnemy(arenaEnemy).setRoundTimes(arenaRecord.getRoundTims()).setFightResult(fightResult).build();
builder.addEnemyPairInfo(build);
}
@ -567,11 +615,25 @@ public class ChampionshipLogic {
snapOneFightInfo(attackId,memberInfoMap);
snapOneFightInfo(defUid,memberInfoMap);
long id =FightDispatcher.getFIghtId();
EndFightProcessor endFightProcessor = new AreFightPro();
((AreFightPro) endFightProcessor).setArenaRecord(arenaRecord);
FightDispatcher.getMap().put(id, endFightProcessor) ;
PVPFightEvent pvpFightEvent = new PVPFightEvent(attackId,snapTeamId,warTime,"",gameFightTypeMap.get(arenaRecord.getType()),defUid,snapTeamId);
MemberInfo attackMemberInfo = memberInfoMap.get(attackId);
MemberInfo defMemberInfo = memberInfoMap.get(defUid);
if(defMemberInfo.getType() == 0){
FamilyFightInfo fightInfo = defMemberInfo.getFightInfo();
pvpFightEvent.setDefFightSnapData(new DefFightSnapData(fightInfo.getHeroAttribute(),fightInfo.getHeroSkills(),fightInfo.getPokenmonSkills()));
}
if(attackMemberInfo.getType() == 0){
FamilyFightInfo fightInfo = attackMemberInfo.getFightInfo();
pvpFightEvent.setAttackFightSnapData(new DefFightSnapData(fightInfo.getHeroAttribute(),fightInfo.getHeroSkills(),fightInfo.getPokenmonSkills()));
}
FightDispatcher.dispatcherAsync(pvpFightEvent,id);
}
@ -610,8 +672,10 @@ public class ChampionshipLogic {
}
String pokenmonSkills = HeroLogic.getInstance().getPokenmonSkills(user, snapTeamId);
fightInfo.setPokenmonSkills(pokenmonSkills);
RedisUtil.getInstence().putMapEntry(RedisKey.CHAMPION_FIGHT, "", String.valueOf(uid), fightInfo);
// RedisUtil.getInstence().putMapEntry(RedisKey.CHAMPION_FIGHT, "", String.valueOf(uid), fightInfo);
memberInfo.setFightInfo(fightInfo);
joinMembers.put(memberInfo.getUid(),memberInfo);
RedisUtil.getInstence().putMapEntry(RedisKey.CHAMPION_JOIN,"",String.valueOf(uid),memberInfo);
}
/**
@ -671,7 +735,7 @@ public class ChampionshipLogic {
public static void guess(ISession session, int winUid,int chip) throws Exception {
int uid = session.getUid();
String selectUid = getSelectIdForRedis();
if(progress%10%4!=2 || StringUtil.isEmpty(selectUid)){
if(progress%10%4!=1 || StringUtil.isEmpty(selectUid)){
LOGGER.error("the uid={} not in time",uid);
throw new ErrorCodeException(ErrorCode.SYS_ERROR_CODE);
}
@ -693,7 +757,7 @@ public class ChampionshipLogic {
RedisUtil.getInstence().incrementZsetScore(RedisKey.CHAMPION_BET_ALL,"",selectUid +":" + winUid,chip);
RedisUtil.getInstence().putMapEntry(RedisKey.CHAMPION_BET_MINE,selectUid +":" + winUid,Integer.toString(uid),chip);
// MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.CHAMPION_BET_RESPONSE_VALUE,null,true);
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.CHAMPION_BET_GUESS_RESPONSE_VALUE,null,true);
}
@ -776,9 +840,12 @@ public class ChampionshipLogic {
List<Object> ids = new ArrayList<>(guessIds);
List<ArenaRecord> arenaRecords = RedisUtil.getInstence().getMapEntrys(RedisKey.CHAMPION_ARENA_RECORD, "", ids, ArenaRecord.class);
String selectIdForRedis = getSelectIdForRedis();
Map<Integer, SArenaRobotConfig> arenaRobotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
for(ArenaRecord arenaRecord: arenaRecords){
CommonProto.ArenaEnemy attackEnemy = ArenaLogic.getInstance().getArenaEnemy(arenaRecord.getAttackId(), arenaRecord.getType());
CommonProto.ArenaEnemy defEnemy = ArenaLogic.getInstance().getArenaEnemy(arenaRecord.getDefUid(), arenaRecord.getType());
int attactkUidType = arenaRobotConfigMap.containsKey(arenaRecord.getAttackId())?0:1;
int defUidType = arenaRobotConfigMap.containsKey(arenaRecord.getAttackId())?0:1;
CommonProto.ArenaEnemy attackEnemy = ArenaLogic.getInstance().getArenaEnemy(arenaRecord.getAttackId(), attactkUidType);
CommonProto.ArenaEnemy defEnemy = ArenaLogic.getInstance().getArenaEnemy(arenaRecord.getDefUid(), defUidType);
int fightResult = arenaRecord.getFightResult();
int guessState = 3;
if(arenaRecord.getId().equals(selectIdForRedis)){
@ -795,6 +862,7 @@ public class ChampionshipLogic {
if(fightResult == -2){
fightResult =-1;
}
ArenaInfoProto.ChampionMyBetDetail.Builder betDetailBuilder = ArenaInfoProto.ChampionMyBetDetail.newBuilder();
if(fightResult>=0){
int winner = arenaRecord.getAttackId();
if(fightResult == 0){
@ -804,8 +872,9 @@ public class ChampionshipLogic {
if(coins!=null){
guessState = 2;
}
// betDetailBuilder.setFightData(CommonProto.FightData.parseFrom(arenaRecord.getFightData()));
}
builder.addChampionMyBetDetails(ArenaInfoProto.ChampionMyBetDetail.newBuilder().setBetResult(guessState).setEnemyPairInfo(
builder.addChampionMyBetDetails(betDetailBuilder.setBetResult(guessState).setEnemyPairInfo(
ArenaInfoProto.ChampionTwoEnemInfo.newBuilder().setRedEnemy(attackEnemy).setBlueEnemy(defEnemy).setFightResult(fightResult)
));
}
@ -847,7 +916,6 @@ public class ChampionshipLogic {
Map<Integer, MemberInfo> joinMembers = RedisUtil.getInstence().getMapValues(RedisKey.CHAMPION_JOIN, "", Integer.class, MemberInfo.class);
if(joinIndexs != null){
Map<Integer, List<Integer>> memberOfTeam =getMermberTeam();
RedisUtil.getInstence().getMapValues(RedisKey.CHAMPION_CUR_JOIN_IDS, "", Integer.class, List.class);
for(int[] joinIndex : joinIndexs){
int joinIndexRed = joinIndex[0]-1;
int joinIndexBlue = joinIndex[1]-1;
@ -907,6 +975,7 @@ public class ChampionshipLogic {
RedisUtil.getInstence().putMapEntrys(RedisKey.CHAMPION_ARENA_RECORD,"",arenaRecordMap);
arenaRecordIds.addAll(arenaRecordMap.keySet());
RedisUtil.getInstence().lSet(RedisKey.CHAMPION_CUR_JOIN_IDS,"",arenaRecordIds);
RedisUtil.getInstence().lSet(RedisKey.CHAMPION_FINAL_JOIN_IDS,"",arenaRecordIds);
Map<Integer, SArenaRobotConfig> robotConfigMap = STableManager.getConfig(SArenaRobotConfig.class);
arenaRecordMap.forEach((id,arenaRecord)->{
int defUid = arenaRecord.getDefUid();
@ -1092,7 +1161,7 @@ public class ChampionshipLogic {
.build();
}
public static void minuteCheck() throws Exception {
public static void minuteCheck(boolean isServerStart) throws Exception {
TimeControllerOfFunction timeControllerOfFunction = GlobalDataManaager.getInstance().getTimeControllerOfFunctionByFunctinoType(FunctionIdEnum.TopBattle);
if( null == timeControllerOfFunction){
progress = -1;
@ -1127,9 +1196,11 @@ public class ChampionshipLogic {
if(progressTmp == progress){
return;
}
endTime = (int)( startTime/1000 + round*duration + getDuratimeByProgressState(progressState));
endTime = (int)( startTime/1000 + (round-1)*duration + getDuratimeByProgressState(progressState));
progress = progressTmp;
RedisUtil.getInstence().set(RedisUtil.getInstence().getKey(RedisKey.CHAMPION_PROGRESS,""),Integer.toString(progress));
if(isServerStart){
return;
}
if(progress%10%4==0){
selectToBattle();

View File

@ -19,7 +19,7 @@ import java.util.concurrent.CopyOnWriteArraySet;
public class PlayerManager extends MongoBase {
private String openId;
private transient String openId;
private int pid;

View File

@ -1,10 +1,13 @@
package com.ljsd.jieling.logic.fight;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.logic.championship.ChampionshipLogic;
import com.ljsd.jieling.logic.dao.ArenaRecord;
import com.ljsd.jieling.logic.fight.result.FightResult;
import com.ljsd.jieling.protocols.CommonProto;
import manager.STableManager;
public class AreFightPro implements EndFightProcessor {
ArenaRecord arenaRecord;
@ -19,6 +22,9 @@ public class AreFightPro implements EndFightProcessor {
failerUid = arenaRecord.getAttackId();
}
ChampionshipLogic.setScoreForSuccess(winnerUid,failerUid);
int warTime = STableManager.getFigureConfig(CommonStaticConfig.class).getsChampionshipSetting().getWarTime();
CommonProto.FightData build = CommonProto.FightData.newBuilder().setFightType(9).setHeroFightInfos(fightResult.getFightTeamInfo()).addMonsterList(fightResult.getDefFightTeamInfo()).setFightSeed(fightResult.getSeed()).setFightMaxTime(warTime).build();
arenaRecord.setFightData(build.toByteArray());
RedisUtil.getInstence().putMapEntry(RedisKey.CHAMPION_ARENA_RECORD,"",arenaRecord.getId(),arenaRecord);
}

View File

@ -84,13 +84,15 @@ public class FightUtil {
public static FightResult getFightForPVP(FightEvent fightEvent){
PVPFightEvent pvpFightEvent = (PVPFightEvent)fightEvent;
int fightSeed =getFightSeed();
CommonProto.FightTeamInfo fightTeamInfo = null;
CommonProto.FightTeamInfo deffightTeamInfo = null;
if(pvpFightEvent.getAttackFightSnapData()!=null){
fightTeamInfo = makeFightWithSnapData(pvpFightEvent.getAttackFightSnapData());
}
if(pvpFightEvent.getDefFightSnapData()!=null){
deffightTeamInfo = makeFightWithSnapData(pvpFightEvent.getDefFightSnapData());
}else{
} else{
if(fightEvent.getFightType() == GameFightType.ArenaPersonFight){
User defInMem = UserManager.getUserInMem(pvpFightEvent.getDefUid());
deffightTeamInfo = makePersonFightData(defInMem, pvpFightEvent.getDefTeamId(),null);
@ -99,9 +101,11 @@ public class FightUtil {
}
}
if(fightEvent.getFightType()!=GameFightType.Arena2RobotFight){
if( fightEvent.getFightType()!=GameFightType.Arena2RobotFight){
if(fightTeamInfo==null){
User userInMem = UserManager.getUserInMem(pvpFightEvent.getAttackUid());
fightTeamInfo = makePersonFightData(userInMem, pvpFightEvent.getTeamId(),pvpFightEvent.getAttackBloodMap());
}
}else{
fightTeamInfo = makeRobotFightData(pvpFightEvent.getDefUid());
}

View File

@ -8,6 +8,8 @@ public class PVPFightEvent extends FightEvent {
//对手快照
private DefFightSnapData defFightSnapData;
//进攻快照
private DefFightSnapData attackFightSnapData;
public PVPFightEvent(int attackUid, int teamId, int mostTime, String frams, GameFightType fightType, int defUid, int defTeamId) {
super(attackUid, teamId, mostTime, frams, fightType);
@ -30,4 +32,12 @@ public class PVPFightEvent extends FightEvent {
public void setDefFightSnapData(DefFightSnapData defFightSnapData) {
this.defFightSnapData = defFightSnapData;
}
public DefFightSnapData getAttackFightSnapData() {
return attackFightSnapData;
}
public void setAttackFightSnapData(DefFightSnapData attackFightSnapData) {
this.attackFightSnapData = attackFightSnapData;
}
}

View File

@ -64,6 +64,8 @@ public class FightResult {
this.defFightTeamInfo = defFightTeamInfo;
}
public FightResult build(){
FightResult fightResult = new FightResult();
fightResult.setCheckResult(this.checkResult);

View File

@ -69,7 +69,7 @@ public class MinuteTask extends Thread {
CoreLogic.getInstance().checkCoreCdk();
BuyGoodsLogic.minuteCheckReharge();
RedisUtil.getInstence().set(RedisKey.ONLINE_NUM+RedisKey.Delimiter_colon+GameApplication.serverId, String.valueOf(OnlineUserManager.sessionMap.entrySet().size()));
ChampionshipLogic.minuteCheck();
ChampionshipLogic.minuteCheck(false);
LOGGER.info("MinuteTask end...");
} catch (Exception e) {
LOGGER.error("e",e);