Merge branch 'master_test_gn_practiceSkill' into master_test_gn
# Conflicts: # serverlogic/src/main/java/com/ljsd/jieling/exception/ErrorCode.java # serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java # serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java # serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.javaback_recharge
commit
db2b1d7283
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.core;
|
||||||
|
|
||||||
public interface GlobalsDef {
|
public interface GlobalsDef {
|
||||||
String DEFAULT_NAME = "无名妖灵师";
|
String DEFAULT_NAME = "无名妖灵师";
|
||||||
|
int VERSION_CODE=1;//后端兼容版本号
|
||||||
int MAP_MISSION_RETURN = -9999;
|
int MAP_MISSION_RETURN = -9999;
|
||||||
int MAP_MISSION_FAILURE = -10000;
|
int MAP_MISSION_FAILURE = -10000;
|
||||||
|
|
||||||
|
|
|
@ -175,6 +175,7 @@ public enum ErrorCode implements IErrorCode {
|
||||||
SIXIANG_UP_LIMIT(144,"强化已达上限"),
|
SIXIANG_UP_LIMIT(144,"强化已达上限"),
|
||||||
CROSS_YXLD_OVER(145,"赛季结算中"),
|
CROSS_YXLD_OVER(145,"赛季结算中"),
|
||||||
RIDING_SWARD_BET_TWO(146,"一轮比赛最多押注两次!"),
|
RIDING_SWARD_BET_TWO(146,"一轮比赛最多押注两次!"),
|
||||||
|
PRACTICE_LEVE_DOWN(147,"修行等级不足"),
|
||||||
;
|
;
|
||||||
private static final Set<Integer> CodeSet = new HashSet<>();
|
private static final Set<Integer> CodeSet = new HashSet<>();
|
||||||
|
|
||||||
|
|
|
@ -365,4 +365,5 @@ public interface BIReason {
|
||||||
int RIDING_SWARD_BET = 1216;//御剑行押注消耗
|
int RIDING_SWARD_BET = 1216;//御剑行押注消耗
|
||||||
|
|
||||||
int LEVEL_UP_REWARD = 1220;// 玩家升级赠与的道具
|
int LEVEL_UP_REWARD = 1220;// 玩家升级赠与的道具
|
||||||
|
int PRACTICE_SKILL_UP_COST=1221;//修行技能升级消耗
|
||||||
}
|
}
|
|
@ -2,6 +2,7 @@ package com.ljsd.jieling.handler;
|
||||||
|
|
||||||
import com.ljsd.GameApplication;
|
import com.ljsd.GameApplication;
|
||||||
import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig;
|
import com.ljsd.jieling.config.clazzStaticCfg.HeroStaticConfig;
|
||||||
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
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;
|
||||||
import com.ljsd.jieling.globals.Global;
|
import com.ljsd.jieling.globals.Global;
|
||||||
|
@ -158,6 +159,10 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (playerInfoManager.getVersionCode()!= GlobalsDef.VERSION_CODE) {
|
||||||
|
calPractiveSkillData(user);
|
||||||
|
playerInfoManager.setVersionCode(GlobalsDef.VERSION_CODE);
|
||||||
|
}
|
||||||
// 处理玩家旧头像框,兼容,一个玩家只执行一次
|
// 处理玩家旧头像框,兼容,一个玩家只执行一次
|
||||||
PlayerLogic.getInstance().checkOldHeadFrame(user);
|
PlayerLogic.getInstance().checkOldHeadFrame(user);
|
||||||
// 魂印图鉴,旧数据容错
|
// 魂印图鉴,旧数据容错
|
||||||
|
@ -181,6 +186,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
||||||
List<CommonProto.SixiangxinfaInfo> sixiangxinfaInfos = getSixiangxinfaInfos(heroManager);
|
List<CommonProto.SixiangxinfaInfo> sixiangxinfaInfos = getSixiangxinfaInfos(heroManager);
|
||||||
int randomCount =SLotterySpecialConfig.getLotteryListByDifferentType(7).iterator().next().getCount()- user.getHeroManager().getRandomPoolByType().getOrDefault(11,new HashMap<>()).getOrDefault(7,0);
|
int randomCount =SLotterySpecialConfig.getLotteryListByDifferentType(7).iterator().next().getCount()- user.getHeroManager().getRandomPoolByType().getOrDefault(11,new HashMap<>()).getOrDefault(7,0);
|
||||||
StoreLogic.reloadStoreInfo(user,7);//重载功能商店
|
StoreLogic.reloadStoreInfo(user,7);//重载功能商店
|
||||||
|
List<CommonProto.PracticeSkillInfo>practiceSkillInfos=getPracticeSkillInfos(heroManager);
|
||||||
// 开服时间戳
|
// 开服时间戳
|
||||||
long openTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime());
|
long openTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime());
|
||||||
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
|
PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse
|
||||||
|
@ -229,6 +235,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
||||||
.addAllSixiangInfos(sixiangxinfaInfos)
|
.addAllSixiangInfos(sixiangxinfaInfos)
|
||||||
.setServerOpenTime((int) (openTime / 1000))
|
.setServerOpenTime((int) (openTime / 1000))
|
||||||
.setXiuweiLevel(heroManager.getXiuweiLevel())
|
.setXiuweiLevel(heroManager.getXiuweiLevel())
|
||||||
|
.addAllPracticeSkillInfos(practiceSkillInfos)
|
||||||
.build();
|
.build();
|
||||||
ReportUtil.onReportEvent(user, ReportEventEnum.APP_LOGIN.getType());
|
ReportUtil.onReportEvent(user, ReportEventEnum.APP_LOGIN.getType());
|
||||||
try {
|
try {
|
||||||
|
@ -252,6 +259,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///登录获取四象心法数据
|
||||||
private List<CommonProto.SixiangxinfaInfo> getSixiangxinfaInfos(HeroManager heroManager) {
|
private List<CommonProto.SixiangxinfaInfo> getSixiangxinfaInfos(HeroManager heroManager) {
|
||||||
Map<Integer,SixiangProfessionInfo> sixiangDataMap = heroManager.getSixiangDataMap();
|
Map<Integer,SixiangProfessionInfo> sixiangDataMap = heroManager.getSixiangDataMap();
|
||||||
List<CommonProto.SixiangxinfaInfo> sixiangxinfaInfos = new ArrayList<>(sixiangDataMap.size());
|
List<CommonProto.SixiangxinfaInfo> sixiangxinfaInfos = new ArrayList<>(sixiangDataMap.size());
|
||||||
|
@ -277,6 +285,18 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
||||||
return sixiangxinfaInfos;
|
return sixiangxinfaInfos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private List<CommonProto.PracticeSkillInfo> getPracticeSkillInfos(HeroManager heroManager) {
|
||||||
|
List<CommonProto.PracticeSkillInfo>practiceSkillInfos=new ArrayList<>(heroManager.getPracticeSkillMap().size());
|
||||||
|
for (Map.Entry<Integer, Integer> entry : heroManager.getPracticeSkillMap().entrySet()) {
|
||||||
|
CommonProto.PracticeSkillInfo skillInfo=CommonProto.PracticeSkillInfo.newBuilder()
|
||||||
|
.setSkillId(entry.getKey())
|
||||||
|
.setSkillLv(entry.getValue())
|
||||||
|
.build();
|
||||||
|
practiceSkillInfos.add(skillInfo);
|
||||||
|
}
|
||||||
|
return practiceSkillInfos;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化英雄星级map(针对老号)
|
* 初始化英雄星级map(针对老号)
|
||||||
* @param user
|
* @param user
|
||||||
|
@ -311,5 +331,16 @@ public class GetPlayerInfoHandler extends BaseHandler{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//修行技能数据兼容
|
||||||
|
private void calPractiveSkillData(User user) {
|
||||||
|
Map<Integer, SXiuXian> xiuxianConfigMap = STableManager.getConfig(SXiuXian.class);
|
||||||
|
for (int i = 1; i <= user.getHeroManager().getPracticeLevel(); i++) {
|
||||||
|
SXiuXian xiuxianConfig = xiuxianConfigMap.get(i);
|
||||||
|
if (xiuxianConfig.getPlayerSkill() == null) continue;
|
||||||
|
for (int skillId : xiuxianConfig.getPlayerSkill()) {
|
||||||
|
user.getHeroManager().setPracticeSkillMap(skillId, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -159,9 +159,10 @@ public class GetWorldArenaChallengeRequestHandler extends BaseHandler<WorldProto
|
||||||
int defendForce = 0;
|
int defendForce = 0;
|
||||||
if (proto.getChallengeUid()>1000) {
|
if (proto.getChallengeUid()>1000) {
|
||||||
ArenaOfUser arenaOfUser = CrossServiceLogic.getInstance().query(proto.getChallengeUid());
|
ArenaOfUser arenaOfUser = CrossServiceLogic.getInstance().query(proto.getChallengeUid());
|
||||||
teamInfo = FightUtil.makeCrossPersonData(arenaOfUser,proto.getTeamId());
|
|
||||||
arenaEnemys =ArenaLogic.getInstance().getUserCrossArenaEnemy(crossGroup,arenaOfUser,proto.getChallengeRank(),false).build();
|
|
||||||
defendForce = arenaOfUser.getHeroManager().getTotalForceByTeam().get(proto.getTeamId());
|
defendForce = arenaOfUser.getHeroManager().getTotalForceByTeam().get(proto.getTeamId());
|
||||||
|
teamInfo = FightUtil.makeCrossPersonData(arenaOfUser,proto.getTeamId(),defendForce);
|
||||||
|
arenaEnemys =ArenaLogic.getInstance().getUserCrossArenaEnemy(crossGroup,arenaOfUser,proto.getChallengeRank(),false).build();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
//机器人
|
//机器人
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
package com.ljsd.jieling.handler.hero;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.exception.ErrorCode;
|
||||||
|
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||||
|
import com.ljsd.jieling.globals.BIReason;
|
||||||
|
import com.ljsd.jieling.handler.BaseHandler;
|
||||||
|
import com.ljsd.jieling.logic.dao.HeroManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.SixiangProfessionInfo;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
|
import config.SFourQuadrantConfig;
|
||||||
|
import config.SPlayerSkill;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import rpc.protocols.CommonProto;
|
||||||
|
import rpc.protocols.HeroInfoProto;
|
||||||
|
import rpc.protocols.MessageTypeProto;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class PracticeSkillUpRequestHandler extends BaseHandler<HeroInfoProto.PracticeSkillUpRequest> {
|
||||||
|
@Override
|
||||||
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
|
return MessageTypeProto.MessageType.PRACTICE_SKILL_UP_REQUEST;
|
||||||
|
}
|
||||||
|
|
||||||
|
//修行技能升级协议
|
||||||
|
@Override
|
||||||
|
public void processWithProto(ISession session, HeroInfoProto.PracticeSkillUpRequest proto) throws Exception {
|
||||||
|
int skillId=proto.getSkillId();//修行技能id
|
||||||
|
int uid = session.getUid();
|
||||||
|
User user = UserManager.getUser(uid);
|
||||||
|
HeroManager heroManager=user.getHeroManager();
|
||||||
|
int practiceLv=heroManager.getPracticeLevel();
|
||||||
|
int skillLv=0;
|
||||||
|
if (heroManager.getPracticeSkillMap().containsKey(skillId)){
|
||||||
|
skillLv=heroManager.getPracticeSkillMap().get(skillId);
|
||||||
|
}
|
||||||
|
int nextSkillLv=skillLv+1;
|
||||||
|
SPlayerSkill nextPlayerSkill=SPlayerSkill.GetSPlayerSkill(skillId,nextSkillLv);
|
||||||
|
if (nextPlayerSkill==null||practiceLv<nextPlayerSkill.getXiuxianId()){
|
||||||
|
LOGGER.error("修行等级不足");
|
||||||
|
throw new ErrorCodeException(ErrorCode.PRACTICE_LEVE_DOWN);
|
||||||
|
}
|
||||||
|
SPlayerSkill curPlayerSkill=SPlayerSkill.GetSPlayerSkill(skillId,skillLv);
|
||||||
|
int[][]costArr=curPlayerSkill.getLvupCost();
|
||||||
|
boolean costResult = ItemUtil.itemCost(user,costArr, BIReason.PRACTICE_SKILL_UP_COST,skillId);
|
||||||
|
if (!costResult){
|
||||||
|
LOGGER.error("修行技能升级材料不足");
|
||||||
|
throw new ErrorCodeException(ErrorCode.HERO_ITEM_NOT);
|
||||||
|
}
|
||||||
|
heroManager.setPracticeSkillMap(skillId,nextSkillLv);
|
||||||
|
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.PRACTICE_SKILL_UP_RESPONSE_VALUE,null,true);
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,6 +15,7 @@ import com.ljsd.jieling.network.session.ISession;
|
||||||
import com.ljsd.jieling.util.CBean2Proto;
|
import com.ljsd.jieling.util.CBean2Proto;
|
||||||
import com.ljsd.jieling.util.ItemUtil;
|
import com.ljsd.jieling.util.ItemUtil;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
|
import config.SPlayerSkill;
|
||||||
import config.SXiuXian;
|
import config.SXiuXian;
|
||||||
import config.SXiuXianSkill;
|
import config.SXiuXianSkill;
|
||||||
import manager.STableManager;
|
import manager.STableManager;
|
||||||
|
@ -24,6 +25,7 @@ import rpc.protocols.HeroInfoProto;
|
||||||
import rpc.protocols.MessageTypeProto;
|
import rpc.protocols.MessageTypeProto;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Author hj
|
* @Author hj
|
||||||
|
@ -90,6 +92,12 @@ public class UpPracticeLevelHandler extends BaseHandler<HeroInfoProto.UpPractice
|
||||||
// 推送神印信息
|
// 推送神印信息
|
||||||
HeroLogic.sendMessageBySeal(user.getId());
|
HeroLogic.sendMessageBySeal(user.getId());
|
||||||
}
|
}
|
||||||
|
///判断修行技能解锁
|
||||||
|
if (xiuXian2.getPlayerSkill()!=null){
|
||||||
|
for (int practiceSkillId : xiuXian2.getPlayerSkill()) {
|
||||||
|
user.getHeroManager().setPracticeSkillMap(practiceSkillId,1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 升级返回
|
// 升级返回
|
||||||
HeroInfoProto.UpPracticeLevelResponse build = HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build();
|
HeroInfoProto.UpPracticeLevelResponse build = HeroInfoProto.UpPracticeLevelResponse.newBuilder().setPracticeLevel(xiuXian2.getId()).build();
|
||||||
|
|
|
@ -277,6 +277,7 @@ public class BehaviorUtil {
|
||||||
.addAllFightUnitList(heroFightInfos)
|
.addAllFightUnitList(heroFightInfos)
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
||||||
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId))
|
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user,teamId))
|
||||||
|
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -670,7 +670,7 @@ public class ArenaLogic {
|
||||||
//跨服切磋
|
//跨服切磋
|
||||||
ArenaOfUser user = CrossServiceLogic.getInstance().query(challengeUid);
|
ArenaOfUser user = CrossServiceLogic.getInstance().query(challengeUid);
|
||||||
deforce = user.getHeroManager().getTotalForceByTeam().get(myteamId);
|
deforce = user.getHeroManager().getTotalForceByTeam().get(myteamId);
|
||||||
deffightTeamInfo = FightUtil.makeCrossPersonData(user,myteamId);
|
deffightTeamInfo = FightUtil.makeCrossPersonData(user,myteamId,deforce);
|
||||||
}
|
}
|
||||||
if(myforce<deforce){
|
if(myforce<deforce){
|
||||||
deffightTeamInfo = CommonProto.FightTeamInfo.newBuilder().mergeFrom(deffightTeamInfo).setFirstCamp(1).build();
|
deffightTeamInfo = CommonProto.FightTeamInfo.newBuilder().mergeFrom(deffightTeamInfo).setFirstCamp(1).build();
|
||||||
|
|
|
@ -71,6 +71,11 @@ public class HeroManager extends MongoBase {
|
||||||
* 修为等级(根据最大战斗力和修行等级决定)
|
* 修为等级(根据最大战斗力和修行等级决定)
|
||||||
*/
|
*/
|
||||||
private int xiuweiLevel;
|
private int xiuweiLevel;
|
||||||
|
/**
|
||||||
|
* 修行技能数据
|
||||||
|
* key: 技能id value:技能等级
|
||||||
|
*/
|
||||||
|
private Map<Integer,Integer> practiceSkillMap = new HashMap<>();
|
||||||
/**
|
/**
|
||||||
* 紫府神印
|
* 紫府神印
|
||||||
*/
|
*/
|
||||||
|
@ -453,6 +458,15 @@ public class HeroManager extends MongoBase {
|
||||||
return practiceLevel;
|
return practiceLevel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Map<Integer, Integer> getPracticeSkillMap() {
|
||||||
|
return practiceSkillMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPracticeSkillMap(int skillId,int skillLv) {
|
||||||
|
this.practiceSkillMap.put(skillId,skillLv);
|
||||||
|
updateString("practiceSkillMap."+skillId, skillLv);
|
||||||
|
}
|
||||||
|
|
||||||
public void setPracticeLevel(int practiceLevel) {
|
public void setPracticeLevel(int practiceLevel) {
|
||||||
this.practiceLevel = practiceLevel;
|
this.practiceLevel = practiceLevel;
|
||||||
updateString("practiceLevel", practiceLevel);
|
updateString("practiceLevel", practiceLevel);
|
||||||
|
|
|
@ -72,6 +72,8 @@ public class PlayerManager extends MongoBase {
|
||||||
|
|
||||||
private int maxForce; //玩家历史最高战力
|
private int maxForce; //玩家历史最高战力
|
||||||
|
|
||||||
|
private int versionCode;//兼容版本号
|
||||||
|
|
||||||
private Map<Integer,Integer> guidePoints = new HashMap<>();
|
private Map<Integer,Integer> guidePoints = new HashMap<>();
|
||||||
|
|
||||||
private Map<Integer,VipInfo> vipInfo = new HashMap<>();
|
private Map<Integer,VipInfo> vipInfo = new HashMap<>();
|
||||||
|
@ -1283,13 +1285,21 @@ public class PlayerManager extends MongoBase {
|
||||||
this.sevenWorldRelic.put(id,status);
|
this.sevenWorldRelic.put(id,status);
|
||||||
updateString("sevenWorldRelic",sevenWorldRelic);
|
updateString("sevenWorldRelic",sevenWorldRelic);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getRidingSwardNum() {
|
public int getRidingSwardNum() {
|
||||||
return ridingSwardNum;
|
return ridingSwardNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRidingSwardNum(int ridingSwardNum) {
|
public void setRidingSwardNum(int ridingSwardNum) {
|
||||||
this.ridingSwardNum = ridingSwardNum;
|
this.ridingSwardNum = ridingSwardNum;
|
||||||
updateString("ridingSwardNum",ridingSwardNum);
|
updateString("ridingSwardNum", ridingSwardNum);
|
||||||
|
}
|
||||||
|
public int getVersionCode() {
|
||||||
|
return versionCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersionCode(int versionCode) {
|
||||||
|
this.versionCode = versionCode;
|
||||||
|
updateString("versionCode",versionCode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -293,6 +293,7 @@ public class FightUtil {
|
||||||
newBuilder()
|
newBuilder()
|
||||||
.addAllFightUnitList(heroFightInfos)
|
.addAllFightUnitList(heroFightInfos)
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
||||||
|
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -339,6 +340,7 @@ public class FightUtil {
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
||||||
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user, teamId))
|
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user, teamId))
|
||||||
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId, user))
|
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId, user))
|
||||||
|
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,6 +407,7 @@ public class FightUtil {
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
||||||
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user, teamId))
|
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user, teamId))
|
||||||
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId, user))
|
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId, user))
|
||||||
|
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -444,6 +447,7 @@ public class FightUtil {
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
||||||
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user, teamId))
|
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user, teamId))
|
||||||
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId, user))
|
.setSpecialPassive(SpecialForTeamBuildEnum.toParm(teamId, user))
|
||||||
|
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -486,6 +490,7 @@ public class FightUtil {
|
||||||
.addAllFightUnitList(heroFightInfos)
|
.addAllFightUnitList(heroFightInfos)
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
||||||
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user, teamId))
|
.setTeamPassiveList(HeroLogic.getInstance().getPokenmonPassiveSkills(user, teamId))
|
||||||
|
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -533,6 +538,7 @@ public class FightUtil {
|
||||||
.addAllFightUnitList(heroFightInfos)
|
.addAllFightUnitList(heroFightInfos)
|
||||||
// .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
// .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
||||||
.setTeamPassiveList(HeroLogic.getInstance().getRobotPokenmonPassiveSkills(sArenaRobotConfig))
|
.setTeamPassiveList(HeroLogic.getInstance().getRobotPokenmonPassiveSkills(sArenaRobotConfig))
|
||||||
|
.setForceScore(sArenaRobotConfig.getTotalForce())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -588,6 +594,7 @@ public class FightUtil {
|
||||||
.addAllFightUnitList(heroFightInfos)
|
.addAllFightUnitList(heroFightInfos)
|
||||||
// .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
// .addAllPokemonUnitList(HeroLogic.getInstance().getPokemonSkills(user))
|
||||||
.setTeamPassiveList(HeroLogic.getInstance().getRobotPokenmonPassiveSkills(sArenaRobotConfig))
|
.setTeamPassiveList(HeroLogic.getInstance().getRobotPokenmonPassiveSkills(sArenaRobotConfig))
|
||||||
|
.setForceScore(sArenaRobotConfig.getTotalForce())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -633,7 +640,7 @@ public class FightUtil {
|
||||||
return robotInfo;
|
return robotInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static CommonProto.FightTeamInfo makeCrossPersonData(ArenaOfUser arenaOfUser, int teamId) {
|
public static CommonProto.FightTeamInfo makeCrossPersonData(ArenaOfUser arenaOfUser, int teamId,long deforce) {
|
||||||
List<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
|
List<CommonProto.FightUnitInfo> heroFightInfos = new ArrayList<>();
|
||||||
ArenaOfHeroManager heroManager = arenaOfUser.getHeroManager();
|
ArenaOfHeroManager heroManager = arenaOfUser.getHeroManager();
|
||||||
List<TeamPosHeroInfo> teamPosHeroInfos = heroManager.getTeams().get(teamId);
|
List<TeamPosHeroInfo> teamPosHeroInfos = heroManager.getTeams().get(teamId);
|
||||||
|
@ -662,6 +669,7 @@ public class FightUtil {
|
||||||
.addAllFightUnitList(heroFightInfos)
|
.addAllFightUnitList(heroFightInfos)
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getCrossPokemonSkills(arenaOfUser))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getCrossPokemonSkills(arenaOfUser))
|
||||||
.setTeamPassiveList("")
|
.setTeamPassiveList("")
|
||||||
|
.setForceScore(deforce)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -704,6 +712,7 @@ public class FightUtil {
|
||||||
.addAllFightUnitList(heroFightInfos)
|
.addAllFightUnitList(heroFightInfos)
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getCrossPokemonSkills(user))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getCrossPokemonSkills(user))
|
||||||
.setTeamPassiveList("")
|
.setTeamPassiveList("")
|
||||||
|
.setForceScore(HeroLogic.getInstance().calTeamForce(user,teamId))
|
||||||
.build();
|
.build();
|
||||||
} else {
|
} else {
|
||||||
//其他服玩家
|
//其他服玩家
|
||||||
|
@ -741,6 +750,7 @@ public class FightUtil {
|
||||||
.addAllFightUnitList(heroFightInfos)
|
.addAllFightUnitList(heroFightInfos)
|
||||||
.addAllPokemonUnitList(HeroLogic.getInstance().getCrossPokemon(crossArenaManager))
|
.addAllPokemonUnitList(HeroLogic.getInstance().getCrossPokemon(crossArenaManager))
|
||||||
.setTeamPassiveList("")
|
.setTeamPassiveList("")
|
||||||
|
.setForceScore(addforcerpc)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,7 @@ import config.*;
|
||||||
import manager.STableManager;
|
import manager.STableManager;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.data.mongodb.core.aggregation.ArithmeticOperators;
|
||||||
import rpc.protocols.*;
|
import rpc.protocols.*;
|
||||||
import sun.security.ssl.Debug;
|
import sun.security.ssl.Debug;
|
||||||
import util.MathUtils;
|
import util.MathUtils;
|
||||||
|
@ -2380,9 +2381,29 @@ public class HeroLogic{
|
||||||
.setPosition(entry.getKey())
|
.setPosition(entry.getKey())
|
||||||
.setStar(pokemon.getStar())
|
.setStar(pokemon.getStar())
|
||||||
.setProperty(propertyBuilder.toString())
|
.setProperty(propertyBuilder.toString())
|
||||||
.setUnitId(String.valueOf(pokemon.getTmpId())).setUnitSkillIds(String.valueOf(sSpiritAnimalSkill.getId())).build();
|
.setUnitId(String.valueOf(pokemon.getTmpId()))
|
||||||
|
.setUnitSkillIds(String.valueOf(sSpiritAnimalSkill.getId()))
|
||||||
|
.build();
|
||||||
pokemonInfos.add(info);
|
pokemonInfos.add(info);
|
||||||
}
|
}
|
||||||
|
String skillStr="";
|
||||||
|
for (Map.Entry<Integer, Integer> entry : user.getHeroManager().getPracticeSkillMap().entrySet()) {
|
||||||
|
int skillId=SPlayerSkill.GetSPlayerSkill(entry.getKey(),entry.getValue()).getId();
|
||||||
|
if (skillStr.isEmpty()){
|
||||||
|
skillStr+= skillId;
|
||||||
|
}else{
|
||||||
|
skillStr+= "#"+skillId;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CommonProto.FightUnitInfo skillInfo = CommonProto.FightUnitInfo
|
||||||
|
.newBuilder()
|
||||||
|
.setUnitId("0")
|
||||||
|
.setUnitSkillIds(skillStr)
|
||||||
|
.setProperty("0")
|
||||||
|
.setPosition(100)
|
||||||
|
.setSkinId(0)
|
||||||
|
.build();
|
||||||
|
pokemonInfos.add(skillInfo);
|
||||||
return pokemonInfos;
|
return pokemonInfos;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3123,6 +3144,24 @@ public class HeroLogic{
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
///获取最高战斗力
|
||||||
|
public long calTeamForce(User user,int teamId){
|
||||||
|
return user.getPlayerInfoManager().getMaxForce();
|
||||||
|
//之前是当前编队战斗力
|
||||||
|
/*long teamForce = 0;
|
||||||
|
List<TeamPosHeroInfo> teamHeros = user.getTeamPosManager().getTeamPosForHero().get(teamId);
|
||||||
|
if (teamHeros==null||teamHeros.isEmpty()) {
|
||||||
|
return teamForce;
|
||||||
|
}
|
||||||
|
for (TeamPosHeroInfo teamHero : teamHeros) {
|
||||||
|
Hero _hero = user.getHeroManager().getHero(teamHero.getHeroId());
|
||||||
|
long heroForce = calHeoForce(user, _hero, teamId);
|
||||||
|
teamForce += heroForce;
|
||||||
|
}
|
||||||
|
LOGGER.info("编队id:{} 战斗力:{}",teamId,teamForce);
|
||||||
|
return teamForce;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public int calForce( Map<Integer, Long> heroAllAttribute ){
|
public int calForce( Map<Integer, Long> heroAllAttribute ){
|
||||||
double result = 0;
|
double result = 0;
|
||||||
|
|
|
@ -0,0 +1,98 @@
|
||||||
|
package config;
|
||||||
|
|
||||||
|
import manager.STableManager;
|
||||||
|
import manager.Table;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Table(name ="PlayerSkill")
|
||||||
|
public class SPlayerSkill implements BaseConfig {
|
||||||
|
|
||||||
|
private int id;
|
||||||
|
|
||||||
|
private int skillID;
|
||||||
|
|
||||||
|
private int xiuxianId;
|
||||||
|
|
||||||
|
private int[]skillIDList;
|
||||||
|
|
||||||
|
private int[]releasePoint;
|
||||||
|
|
||||||
|
private int[][]releaseLimit;
|
||||||
|
|
||||||
|
private int cDCount;
|
||||||
|
|
||||||
|
private int level;
|
||||||
|
|
||||||
|
private int[][] lvupCost;
|
||||||
|
|
||||||
|
private int sort;
|
||||||
|
|
||||||
|
private static Map<Integer, Map<Integer,SPlayerSkill>>mapData;
|
||||||
|
|
||||||
|
public static Map<Integer,SPlayerSkill> sPrivilegeTypeConfigMap;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() throws Exception {
|
||||||
|
mapData=new HashMap<>();
|
||||||
|
sPrivilegeTypeConfigMap= STableManager.getConfig(SPlayerSkill.class);
|
||||||
|
for (Map.Entry<Integer, SPlayerSkill> integer : sPrivilegeTypeConfigMap.entrySet()) {
|
||||||
|
SPlayerSkill skill=integer.getValue();
|
||||||
|
if (!mapData.containsKey(skill.getSkillID())){
|
||||||
|
Map<Integer,SPlayerSkill>skillMap=new HashMap<>();
|
||||||
|
mapData.put(skill.getSkillID(),skillMap);
|
||||||
|
}
|
||||||
|
mapData.get(skill.getSkillID()).put(skill.getLevel(),skill);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSkillID() {
|
||||||
|
return skillID;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getXiuxianId() {
|
||||||
|
return xiuxianId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getSkillIDList() {
|
||||||
|
return skillIDList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getReleasePoint() {
|
||||||
|
return releasePoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[][] getReleaseLimit() {
|
||||||
|
return releaseLimit;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getcDCount() {
|
||||||
|
return cDCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getLevel() {
|
||||||
|
return level;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[][] getLvupCost() {
|
||||||
|
return lvupCost;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getSort() {
|
||||||
|
return sort;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SPlayerSkill GetSPlayerSkill(int skillId,int skillLv){
|
||||||
|
if (!mapData.containsKey(skillId)||!mapData.get(skillId).containsKey(skillLv))return null;
|
||||||
|
return mapData.get(skillId).get(skillLv);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Map<Integer, Map<Integer, SPlayerSkill>> getMapData() {
|
||||||
|
return mapData;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue