战报功能二版
parent
ce1de8c9af
commit
c11dd1b1ce
|
@ -18,6 +18,9 @@ public enum FightType {
|
||||||
|
|
||||||
EXPEDITION(13), // 远征
|
EXPEDITION(13), // 远征
|
||||||
GuildChallenge(14), //公会副本
|
GuildChallenge(14), //公会副本
|
||||||
|
NewGeneral(15),//新将
|
||||||
|
TenDespairArray(16),//十绝阵
|
||||||
|
Firend(17),//好友
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.ljsd.jieling.handler.Expedition;
|
package com.ljsd.jieling.handler.Expedition;
|
||||||
|
|
||||||
|
import com.ljsd.fight.FightType;
|
||||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
import com.ljsd.jieling.db.redis.RedisKey;
|
import com.ljsd.jieling.db.redis.RedisKey;
|
||||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||||
|
@ -13,6 +14,7 @@ import com.ljsd.jieling.logic.dao.*;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.expedition.ExpeditionLogic;
|
import com.ljsd.jieling.logic.expedition.ExpeditionLogic;
|
||||||
import com.ljsd.jieling.logic.fight.DefFightSnapData;
|
import com.ljsd.jieling.logic.fight.DefFightSnapData;
|
||||||
|
import com.ljsd.jieling.logic.fight.FightRecordLogic;
|
||||||
import com.ljsd.jieling.logic.fight.FightUtil;
|
import com.ljsd.jieling.logic.fight.FightUtil;
|
||||||
import com.ljsd.jieling.logic.fight.specialparm.SpecialForTeamBuildEnum;
|
import com.ljsd.jieling.logic.fight.specialparm.SpecialForTeamBuildEnum;
|
||||||
import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
|
import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
|
||||||
|
@ -119,12 +121,19 @@ public class StartExpeditionBattleRequest extends BaseHandler<Expedition.StartEx
|
||||||
|
|
||||||
|
|
||||||
FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder();
|
FightInfoProto.FightStartResponse.Builder fightStartResponse = FightInfoProto.FightStartResponse.newBuilder();
|
||||||
fightStartResponse.setFightData(CommonProto.FightData.newBuilder()
|
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
|
||||||
.setFightMaxTime(maxTime)
|
.setFightMaxTime(maxTime)
|
||||||
.setFightSeed(seed)
|
.setFightSeed(seed)
|
||||||
.setHeroFightInfos(fightTeamInfo)
|
.setHeroFightInfos(fightTeamInfo)
|
||||||
.addMonsterList(deffightTeamInfo)
|
.addMonsterList(deffightTeamInfo)
|
||||||
.build());
|
.setFightType(FightType.StoryFight.getType())
|
||||||
|
.setFightId(FightUtil.getFightId(user.getId(), FightType.StoryFight.getType()))
|
||||||
|
.build();
|
||||||
|
fightStartResponse.setFightData(fightData);
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||||
|
|
||||||
MessageUtil.sendMessage(iSession, 1,MessageTypeProto.MessageType.EXPEDITION_START_BATTLE_RESONSE_VALUE, fightStartResponse.build(), true);
|
MessageUtil.sendMessage(iSession, 1,MessageTypeProto.MessageType.EXPEDITION_START_BATTLE_RESONSE_VALUE, fightStartResponse.build(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,10 +14,7 @@ import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.family.GuildFightLogic;
|
import com.ljsd.jieling.logic.family.GuildFightLogic;
|
||||||
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
import com.ljsd.jieling.logic.fight.*;
|
||||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
|
||||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
|
||||||
import com.ljsd.jieling.logic.fight.PVPFightEvent;
|
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||||
|
@ -143,6 +140,11 @@ public class FastChallengeHandler extends BaseHandler<FightInfoProto.FastFightCh
|
||||||
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fightData.toBuilder().setFightId(FightUtil.getFightId(uid,fightData.getFightType()));
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||||
|
|
||||||
guildInfo.addCarFightSb(uid);
|
guildInfo.addCarFightSb(uid);
|
||||||
user.getGuildMyInfo().setCarPlayTime(TimeUtils.nowInt());
|
user.getGuildMyInfo().setCarPlayTime(TimeUtils.nowInt());
|
||||||
FightInfoProto.FastFightChallengeResponse build = FightInfoProto.FastFightChallengeResponse.newBuilder().setHurt(hurt).setScore(gainScore).setFightData(fightData).build();
|
FightInfoProto.FastFightChallengeResponse build = FightInfoProto.FastFightChallengeResponse.newBuilder().setHurt(hurt).setScore(gainScore).setFightData(fightData).build();
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ljsd.jieling.handler.activity;
|
package com.ljsd.jieling.handler.activity;
|
||||||
|
|
||||||
import com.google.protobuf.GeneratedMessage;
|
import com.google.protobuf.GeneratedMessage;
|
||||||
|
import com.ljsd.fight.FightType;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
import com.ljsd.jieling.exception.ErrorCode;
|
import com.ljsd.jieling.exception.ErrorCode;
|
||||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||||
|
@ -8,10 +9,7 @@ import com.ljsd.jieling.globals.BIReason;
|
||||||
import com.ljsd.jieling.handler.BaseHandler;
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
import com.ljsd.jieling.logic.fight.*;
|
||||||
import com.ljsd.jieling.logic.fight.FightUtil;
|
|
||||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
|
||||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||||
import com.ljsd.jieling.protocols.ActivityProto;
|
import com.ljsd.jieling.protocols.ActivityProto;
|
||||||
|
@ -83,17 +81,20 @@ public class NewGeneralAttackHandler extends BaseHandler<ActivityProto.NewGenera
|
||||||
}
|
}
|
||||||
|
|
||||||
// 战斗逻辑
|
// 战斗逻辑
|
||||||
PVEFightEvent pveFightEvent = new PVEFightEvent(user.getId(), GlobalsDef.FORMATION_NORMAL, 1000, "", GameFightType.GuildChallenge, monsterGroupId, 3);
|
PVEFightEvent pveFightEvent = new PVEFightEvent(user.getId(), GlobalsDef.FORMATION_NORMAL, 1000, "", GameFightType.NewGeneral, monsterGroupId, 3);
|
||||||
FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
|
FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
|
||||||
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
|
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
|
||||||
.setFightMaxTime(20)
|
.setFightMaxTime(20)
|
||||||
.setFightSeed(fightResult.getSeed())
|
.setFightSeed(fightResult.getSeed())
|
||||||
.setHeroFightInfos(fightResult.getFightTeamInfo())
|
.setHeroFightInfos(fightResult.getFightTeamInfo())
|
||||||
.addAllMonsterList(fightResult.getMonsterTeamList())
|
.addAllMonsterList(fightResult.getMonsterTeamList())
|
||||||
.setFightType(GameFightType.DailyChallenge.getFightType().getType())
|
.setFightType(FightType.NewGeneral.getType())
|
||||||
.setFightId(FightUtil.getFightId(user.getId(),GameFightType.DailyChallenge))
|
.setFightId(FightUtil.getFightId(user.getId(), FightType.NewGeneral.getType()))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||||
|
|
||||||
// 战斗结果,第二位是伤害
|
// 战斗结果,第二位是伤害
|
||||||
int[] checkResult = fightResult.getCheckResult();
|
int[] checkResult = fightResult.getCheckResult();
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
@Deprecated
|
||||||
public class AdventureBossChallengeHandler extends BaseHandler{
|
public class AdventureBossChallengeHandler extends BaseHandler{
|
||||||
@Override
|
@Override
|
||||||
public MessageTypeProto.MessageType getMessageCode() {
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
|
|
@ -7,6 +7,7 @@ import com.ljsd.jieling.globals.BIReason;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
||||||
|
import com.ljsd.jieling.logic.fight.FightRecordLogic;
|
||||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
import com.ljsd.jieling.logic.fight.GameFightType;
|
||||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
|
@ -506,6 +507,9 @@ public class JourneyMap {
|
||||||
pveFightEvent.setMonsterRemainHp(hps);
|
pveFightEvent.setMonsterRemainHp(hps);
|
||||||
FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
|
FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightResult.getFightData());
|
||||||
|
|
||||||
int[] checkResult = fightResult.getCheckResult();
|
int[] checkResult = fightResult.getCheckResult();
|
||||||
MapInfoProto.JourneyFightResponse.Builder response =MapInfoProto.JourneyFightResponse.newBuilder();
|
MapInfoProto.JourneyFightResponse.Builder response =MapInfoProto.JourneyFightResponse.newBuilder();
|
||||||
|
|
||||||
|
|
|
@ -3153,6 +3153,10 @@ public class MapLogic {
|
||||||
.build();
|
.build();
|
||||||
int[] checkResult = fightResult.getCheckResult();
|
int[] checkResult = fightResult.getCheckResult();
|
||||||
builder.setFightData(fightData);
|
builder.setFightData(fightData);
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||||
|
|
||||||
if(checkResult[0]>0){
|
if(checkResult[0]>0){
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sDailyChallengeConfig.getReward(), 1, 0, 1);
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sDailyChallengeConfig.getReward(), 1, 0, 1);
|
||||||
builder.setDrop(drop);
|
builder.setDrop(drop);
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
package com.ljsd.jieling.handler.map.behavior;
|
package com.ljsd.jieling.handler.map.behavior;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.googlecode.protobuf.format.JsonFormat;
|
import com.googlecode.protobuf.format.JsonFormat;
|
||||||
import com.ljsd.fight.FightType;
|
import com.ljsd.fight.FightType;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
import com.ljsd.jieling.handler.map.TrailHero;
|
import com.ljsd.jieling.handler.map.TrailHero;
|
||||||
|
import com.ljsd.jieling.logic.fight.FightRecordLogic;
|
||||||
import com.ljsd.jieling.logic.fight.FightUtil;
|
import com.ljsd.jieling.logic.fight.FightUtil;
|
||||||
import com.ljsd.jieling.logic.fight.specialparm.SpecialForTeamBuildEnum;
|
import com.ljsd.jieling.logic.fight.specialparm.SpecialForTeamBuildEnum;
|
||||||
import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
|
import com.ljsd.jieling.logic.hero.HeroAttributeEnum;
|
||||||
|
@ -195,6 +197,8 @@ public class BehaviorUtil {
|
||||||
fightData.setFightId(FightUtil.getFightId(user.getId(),FightType.MapExploreFight.getType()));
|
fightData.setFightId(FightUtil.getFightId(user.getId(),FightType.MapExploreFight.getType()));
|
||||||
fightStartRespons.setFightData(fightData);
|
fightStartRespons.setFightData(fightData);
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData.build());
|
||||||
|
|
||||||
String key = RedisKey.getKey(RedisKey.FIGHT, Integer.toString(user.getId()), false);
|
String key = RedisKey.getKey(RedisKey.FIGHT, Integer.toString(user.getId()), false);
|
||||||
Map<String,Object> fightInfo = new HashMap<>();
|
Map<String,Object> fightInfo = new HashMap<>();
|
||||||
|
@ -341,7 +345,7 @@ public class BehaviorUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void getLevelDifficultyifficuFightInfo(User user,FightType fightType,int groupId,int teamId, int maxTime,FightInfoProto.FightStartResponse.Builder fightStartRespons,String fightKey) {
|
public static void getLevelDifficultyifficuFightInfo(User user,FightType fightType,int groupId,int teamId, int maxTime,FightInfoProto.FightStartResponse.Builder fightStartRespons,String fightKey) throws JsonProcessingException {
|
||||||
CommonProto.FightData.Builder fightData = CommonProto.FightData.newBuilder();
|
CommonProto.FightData.Builder fightData = CommonProto.FightData.newBuilder();
|
||||||
CommonProto.FightTeamInfo fightTeamInfo = getFightTeamInfo(user, teamId,true);
|
CommonProto.FightTeamInfo fightTeamInfo = getFightTeamInfo(user, teamId,true);
|
||||||
fightData.setHeroFightInfos(fightTeamInfo);
|
fightData.setHeroFightInfos(fightTeamInfo);
|
||||||
|
@ -361,6 +365,8 @@ public class BehaviorUtil {
|
||||||
fightData.setFightId(FightUtil.getFightId(user.getId(),fightType.getType()));
|
fightData.setFightId(FightUtil.getFightId(user.getId(),fightType.getType()));
|
||||||
fightStartRespons.setFightData(fightData);
|
fightStartRespons.setFightData(fightData);
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData.build());
|
||||||
|
|
||||||
String key = RedisKey.getKey(fightKey,Integer.toString(user.getId()), false);
|
String key = RedisKey.getKey(fightKey,Integer.toString(user.getId()), false);
|
||||||
Map<String,Object> fightInfo = new HashMap<>();
|
Map<String,Object> fightInfo = new HashMap<>();
|
||||||
|
|
|
@ -18,6 +18,7 @@ import com.ljsd.jieling.logic.OnlineUserManager;
|
||||||
import com.ljsd.jieling.logic.dao.*;
|
import com.ljsd.jieling.logic.dao.*;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
||||||
|
import com.ljsd.jieling.logic.fight.FightRecordLogic;
|
||||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
import com.ljsd.jieling.logic.fight.GameFightType;
|
||||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
|
@ -287,6 +288,10 @@ public class EndlessMap extends AbstractMap{
|
||||||
fastFightResponseBuilder.setEnventDrop(drop.build());
|
fastFightResponseBuilder.setEnventDrop(drop.build());
|
||||||
fastFightResponseBuilder.setResult(resultCode);
|
fastFightResponseBuilder.setResult(resultCode);
|
||||||
fastFightResponseBuilder.setFightData(fightResult.getFightData());
|
fastFightResponseBuilder.setFightData(fightResult.getFightData());
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightResult.getFightData());
|
||||||
|
|
||||||
//todo 临时粘贴
|
//todo 临时粘贴
|
||||||
mapManager.updateEndlessFightCount(1+mapManager.getEndlessMapInfo().getFightCount());
|
mapManager.updateEndlessFightCount(1+mapManager.getEndlessMapInfo().getFightCount());
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@ import com.ljsd.jieling.logic.dao.TeamPosManager;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
||||||
|
import com.ljsd.jieling.logic.fight.FightRecordLogic;
|
||||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
import com.ljsd.jieling.logic.fight.GameFightType;
|
||||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
|
@ -501,6 +502,9 @@ public class TowerMap extends AbstractMap {
|
||||||
fastFightResponseBuilder.setResult(resultCode);
|
fastFightResponseBuilder.setResult(resultCode);
|
||||||
fastFightResponseBuilder.setEssenceValue(trialInfo.getEnergy());
|
fastFightResponseBuilder.setEssenceValue(trialInfo.getEnergy());
|
||||||
fastFightResponseBuilder.setFightData(fightResult.getFightData());
|
fastFightResponseBuilder.setFightData(fightResult.getFightData());
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightResult.getFightData());
|
||||||
// LOGGER.info("endFight() uid=>{},nextEventId=>{}", uid, nextEventId);
|
// LOGGER.info("endFight() uid=>{},nextEventId=>{}", uid, nextEventId);
|
||||||
MapMissionManager.updateMapMission(user, EventType.fightEvent, groupId, checkResult[1]);
|
MapMissionManager.updateMapMission(user, EventType.fightEvent, groupId, checkResult[1]);
|
||||||
ReportUtil.onReportEvent(user,ReportEventEnum.CHALLENGE_PANOPTIC_MIRROR_ENEMY.getType(),trialInfo.getFloor(),resultCode==1?"胜利":"失败");
|
ReportUtil.onReportEvent(user,ReportEventEnum.CHALLENGE_PANOPTIC_MIRROR_ENEMY.getType(),trialInfo.getFloor(),resultCode==1?"胜利":"失败");
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
package com.ljsd.jieling.handler.monsterAttack;
|
package com.ljsd.jieling.handler.monsterAttack;
|
||||||
|
|
||||||
|
import com.ljsd.fight.FightType;
|
||||||
import com.ljsd.jieling.core.HandlerLogicThread;
|
import com.ljsd.jieling.core.HandlerLogicThread;
|
||||||
import com.ljsd.jieling.core.TransTask;
|
import com.ljsd.jieling.core.TransTask;
|
||||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
|
@ -96,8 +97,13 @@ public class QuickStartMonsterFighter extends BaseHandler<FightInfoProto.QuickSt
|
||||||
.setFightSeed(fightResult.getSeed())
|
.setFightSeed(fightResult.getSeed())
|
||||||
.setHeroFightInfos(fightResult.getFightTeamInfo())
|
.setHeroFightInfos(fightResult.getFightTeamInfo())
|
||||||
.addAllMonsterList(fightResult.getMonsterTeamList())
|
.addAllMonsterList(fightResult.getMonsterTeamList())
|
||||||
|
.setFightType(FightType.MonterFight.getType())
|
||||||
|
.setFightId(FightUtil.getFightId(uid,FightType.MonterFight.getType()))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightDataBuild);
|
||||||
|
|
||||||
if (resultCode == 0) {
|
if (resultCode == 0) {
|
||||||
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder();
|
||||||
FightInfoProto.QuickStartMonsterFightResponse builder = FightInfoProto.QuickStartMonsterFightResponse.newBuilder()
|
FightInfoProto.QuickStartMonsterFightResponse builder = FightInfoProto.QuickStartMonsterFightResponse.newBuilder()
|
||||||
|
|
|
@ -261,6 +261,10 @@ public class SituationLogic {
|
||||||
.build();
|
.build();
|
||||||
int[] checkResult = fightResult.getCheckResult();
|
int[] checkResult = fightResult.getCheckResult();
|
||||||
builder.setFightData(fightData);
|
builder.setFightData(fightData);
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||||
|
|
||||||
//挑战成功
|
//挑战成功
|
||||||
if(checkResult[0]>0){
|
if(checkResult[0]>0){
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sRaceTowerConfig.getFirstReward(), 1, 0, BIReason.SITUATION_CHALLENGE_REWARD);
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, sRaceTowerConfig.getFirstReward(), 1, 0, BIReason.SITUATION_CHALLENGE_REWARD);
|
||||||
|
@ -309,6 +313,7 @@ public class SituationLogic {
|
||||||
.setFightId(FightUtil.getFightId(fightEvent.getAttackUid(),fightEvent.getFightType()))
|
.setFightId(FightUtil.getFightId(fightEvent.getAttackUid(),fightEvent.getFightType()))
|
||||||
.build();
|
.build();
|
||||||
builder.setFightData(fightData);
|
builder.setFightData(fightData);
|
||||||
|
|
||||||
return builder.build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.arena;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import com.ljsd.fight.FightType;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||||
|
@ -179,8 +180,14 @@ public class ArenaLogic {
|
||||||
.setFightSeed(seed)
|
.setFightSeed(seed)
|
||||||
.setHeroFightInfos(fightTeamInfo)
|
.setHeroFightInfos(fightTeamInfo)
|
||||||
.addMonsterList(deffightTeamInfo)
|
.addMonsterList(deffightTeamInfo)
|
||||||
|
.setFightType(FightType.ArenaFight.getType())
|
||||||
|
.setFightId(FightUtil.getFightId(mine.getId(),FightType.ArenaFight.getType()))
|
||||||
.build();
|
.build();
|
||||||
builder.setFightData(build);
|
builder.setFightData(build);
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(mine,build);
|
||||||
|
|
||||||
//数据互换
|
//数据互换
|
||||||
byte[] snapRecord = build.toByteArray();
|
byte[] snapRecord = build.toByteArray();
|
||||||
arenaRecord.setFightData(snapRecord);
|
arenaRecord.setFightData(snapRecord);
|
||||||
|
@ -546,7 +553,12 @@ public class ArenaLogic {
|
||||||
.setFightSeed(seed)
|
.setFightSeed(seed)
|
||||||
.setHeroFightInfos(fightTeamInfo)
|
.setHeroFightInfos(fightTeamInfo)
|
||||||
.addMonsterList(deffightTeamInfo)
|
.addMonsterList(deffightTeamInfo)
|
||||||
|
.setFightType(FightType.Firend.getType())
|
||||||
|
.setFightId(FightUtil.getFightId(mine.getId(),FightType.Firend.getType()))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ArenaInfoProto.PlayWithSbResponse response = ArenaInfoProto.PlayWithSbResponse.newBuilder().setFightData(build).build();
|
ArenaInfoProto.PlayWithSbResponse response = ArenaInfoProto.PlayWithSbResponse.newBuilder().setFightData(build).build();
|
||||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.PLAY_WITH_SB_RESPONSE_VALUE,response,true);
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.PLAY_WITH_SB_RESPONSE_VALUE,response,true);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ljsd.jieling.logic.family;
|
package com.ljsd.jieling.logic.family;
|
||||||
|
|
||||||
import com.ljsd.common.mogodb.util.BlockingUniqueQueue;
|
import com.ljsd.common.mogodb.util.BlockingUniqueQueue;
|
||||||
|
import com.ljsd.fight.FightType;
|
||||||
import com.ljsd.jieling.chat.logic.ChatLogic;
|
import com.ljsd.jieling.chat.logic.ChatLogic;
|
||||||
import com.ljsd.jieling.core.FunctionIdEnum;
|
import com.ljsd.jieling.core.FunctionIdEnum;
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
|
@ -18,9 +19,7 @@ import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
import com.ljsd.jieling.logic.fight.*;
|
||||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
|
||||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||||
|
@ -322,7 +321,13 @@ public class DeathPathLogic {
|
||||||
.setFightSeed(fightResult.getSeed())
|
.setFightSeed(fightResult.getSeed())
|
||||||
.setHeroFightInfos(fightResult.getFightTeamInfo())
|
.setHeroFightInfos(fightResult.getFightTeamInfo())
|
||||||
.addAllMonsterList(fightResult.getMonsterTeamList())
|
.addAllMonsterList(fightResult.getMonsterTeamList())
|
||||||
|
.setFightType(FightType.TenDespairArray.getType())
|
||||||
|
.setFightId(FightUtil.getFightId(uid,FightType.TenDespairArray.getType()))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||||
|
|
||||||
//更新排行榜数据
|
//更新排行榜数据
|
||||||
tasks.offer(new DeathPathTask(uid,guildId,damage,pathId));
|
tasks.offer(new DeathPathTask(uid,guildId,damage,pathId));
|
||||||
//挑战次数记录
|
//挑战次数记录
|
||||||
|
|
|
@ -15,9 +15,7 @@ import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
import com.ljsd.jieling.logic.dao.root.GuildCache;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
import com.ljsd.jieling.logic.fight.*;
|
||||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
|
||||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||||
|
@ -339,7 +337,12 @@ public class GuildChallengeLogic {
|
||||||
response.setDrop(drop);
|
response.setDrop(drop);
|
||||||
|
|
||||||
if(fightData!=null){
|
if(fightData!=null){
|
||||||
|
fightData.toBuilder().setFightId(FightUtil.getFightId(uid,fightData.getFightType()));
|
||||||
|
|
||||||
response.setFightData(fightData);
|
response.setFightData(fightData);
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(user,fightData);
|
||||||
}
|
}
|
||||||
|
|
||||||
response.setKill(kill);
|
response.setKill(kill);
|
||||||
|
|
|
@ -521,7 +521,13 @@ public class GuildFightLogic {
|
||||||
.setFightSeed(dispatcher.getSeed())
|
.setFightSeed(dispatcher.getSeed())
|
||||||
.setHeroFightInfos(dispatcher.getFightTeamInfo())
|
.setHeroFightInfos(dispatcher.getFightTeamInfo())
|
||||||
.addMonsterList(dispatcher.getDefFightTeamInfo())
|
.addMonsterList(dispatcher.getDefFightTeamInfo())
|
||||||
|
.setFightType(FightType.GuildFight.getType())
|
||||||
|
.setFightId(FightUtil.getFightId(userAttack.getId(),FightType.GuildFight.getType()))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
// 记录战报
|
||||||
|
FightRecordLogic.getInstance().addRecordMap(userAttack,fightData);
|
||||||
|
|
||||||
Family.FamilyFightAttackResponse response = Family.FamilyFightAttackResponse.newBuilder().setResult(fightResult[0]).setStarCount(getStar).setData(fightData).build();
|
Family.FamilyFightAttackResponse response = Family.FamilyFightAttackResponse.newBuilder().setResult(fightResult[0]).setStarCount(getStar).setData(fightData).build();
|
||||||
userAttack.getUserMissionManager().onGameEvent(userAttack, GameEvent.FAMILY_FIGHT_ATTACK);
|
userAttack.getUserMissionManager().onGameEvent(userAttack, GameEvent.FAMILY_FIGHT_ATTACK);
|
||||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
|
MessageUtil.sendMessage(session, 1, messageType.getNumber(), response, true);
|
||||||
|
|
|
@ -17,10 +17,7 @@ public class FightDispatcher {
|
||||||
// 获取类型
|
// 获取类型
|
||||||
GameFightType fightType = fightEvent.getFightType();
|
GameFightType fightType = fightEvent.getFightType();
|
||||||
// 战斗逻辑
|
// 战斗逻辑
|
||||||
FightResult fightResult = fightType.getFightEventProcesor().process(fightEvent);
|
return fightType.getFightEventProcesor().process(fightEvent);
|
||||||
// 记录战报
|
|
||||||
FightRecordLogic.getInstance().addRecordMap(fightEvent,fightResult);
|
|
||||||
return fightResult;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//gs-fight
|
//gs-fight
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.logic.fight;
|
||||||
|
|
||||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
import com.googlecode.protobuf.format.JsonFormat;
|
import com.googlecode.protobuf.format.JsonFormat;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||||
import com.ljsd.jieling.protocols.CommonProto;
|
import com.ljsd.jieling.protocols.CommonProto;
|
||||||
import org.springframework.util.LinkedMultiValueMap;
|
import org.springframework.util.LinkedMultiValueMap;
|
||||||
|
@ -9,7 +10,6 @@ import org.springframework.util.MultiValueMap;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
public class FightRecordLogic {
|
public class FightRecordLogic {
|
||||||
|
@ -32,35 +32,38 @@ public class FightRecordLogic {
|
||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
ConcurrentHashMap<Integer,MultiValueMap<Integer,String>> recordMap = new ConcurrentHashMap<>();
|
private ConcurrentHashMap<Integer,MultiValueMap<Integer,String>> recordMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
public ConcurrentHashMap<Integer, MultiValueMap<Integer, String>> getRecordMap() {
|
public ConcurrentHashMap<Integer, MultiValueMap<Integer, String>> getRecordMap() {
|
||||||
return recordMap;
|
return recordMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 一种类型存储上限
|
||||||
|
private static int max = 18;
|
||||||
|
|
||||||
public void setRecordMap(ConcurrentHashMap<Integer, MultiValueMap<Integer, String>> recordMap) {
|
public void setRecordMap(ConcurrentHashMap<Integer, MultiValueMap<Integer, String>> recordMap) {
|
||||||
this.recordMap = recordMap;
|
this.recordMap = recordMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addRecordMap(FightEvent fightEvent, FightResult fightResult) throws JsonProcessingException {
|
public void addRecordMap(User user, CommonProto.FightData fightData) throws JsonProcessingException {
|
||||||
// 玩家id
|
// 玩家id
|
||||||
int uid = fightEvent.getAttackUid();
|
int uid = user.getId();
|
||||||
// 战斗类型
|
// 战斗类型
|
||||||
int multiKey = fightEvent.getFightType().getFightType().getType();
|
int multiKey = fightData.getFightType();
|
||||||
// 获取玩家的战斗数据
|
// 获取玩家的战斗数据
|
||||||
MultiValueMap<Integer, String> multiValueMap = recordMap.getOrDefault(uid, new LinkedMultiValueMap<Integer, String>());
|
MultiValueMap<Integer, String> multiValueMap = recordMap.getOrDefault(uid, new LinkedMultiValueMap<Integer, String>());
|
||||||
// 根据类型获取战斗数据
|
// 根据类型获取战斗数据
|
||||||
List<String> strings = multiValueMap.getOrDefault(multiKey,new ArrayList<>());
|
List<String> strings = multiValueMap.getOrDefault(multiKey,new ArrayList<>());
|
||||||
// 类型大于十条删除最早的一条
|
// 类型大于十条删除最早的一条
|
||||||
if (strings.size() >= 10){
|
if (strings.size() >= max){
|
||||||
strings.remove(0);
|
strings.remove(0);
|
||||||
}
|
}
|
||||||
// protobuf转字符串
|
// protobuf转字符串
|
||||||
String str = JsonFormat.printToString(fightResult.getFightData());
|
String str = JsonFormat.printToString(fightData);
|
||||||
strings.add(str);
|
strings.add(str);
|
||||||
// 重新赋值
|
// 重新赋值
|
||||||
multiValueMap.put(multiKey,strings);
|
multiValueMap.put(multiKey,strings);
|
||||||
System.out.println("fightId======================="+fightResult.getFightData().getFightId());
|
System.out.println("fightId======================="+fightData.getFightId());
|
||||||
recordMap.put(uid,multiValueMap);
|
recordMap.put(uid,multiValueMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ public enum GameFightType {
|
||||||
CarBossChallenge(FightType.CarBossFight,new DefaultWithoutHandFightHandler(),null),
|
CarBossChallenge(FightType.CarBossFight,new DefaultWithoutHandFightHandler(),null),
|
||||||
CarPersonChallenge(FightType.CarBossFight,new PVPFightHandler(),null),
|
CarPersonChallenge(FightType.CarBossFight,new PVPFightHandler(),null),
|
||||||
GuildChallenge(FightType.GuildChallenge,new DefaultWithoutHandFightHandler(),null),
|
GuildChallenge(FightType.GuildChallenge,new DefaultWithoutHandFightHandler(),null),
|
||||||
|
NewGeneral(FightType.GuildChallenge,new DefaultWithoutHandFightHandler(),null),
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,8 @@ public class SGlobalSystemConfig implements BaseConfig {
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
private int[] openRules;
|
private int[] openRules;
|
||||||
|
|
||||||
private String systemOpen;
|
private String systemOpen;
|
||||||
|
@ -62,7 +64,11 @@ public class SGlobalSystemConfig implements BaseConfig {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int[] getOpenRules() {
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getOpenRules() {
|
||||||
return openRules;
|
return openRules;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue