Merge branch 'master_test_gn' into master_prb_gn
commit
a5e82c01a0
|
@ -102,10 +102,10 @@ public class CheckFight {
|
||||||
args.set("maxRound",maxTime);
|
args.set("maxRound",maxTime);
|
||||||
LuaValue result = func.call( args,fightData,optionData);
|
LuaValue result = func.call( args,fightData,optionData);
|
||||||
int status = result.get("result").toint();
|
int status = result.get("result").toint();
|
||||||
int duration = result.get("duration").toint();
|
long duration = result.get("duration").tolong();
|
||||||
long[] resultCache = new long[8];//对方阵容走配置 Todo 后面结构走配置
|
long[] resultCache = new long[8];//对方阵容走配置 Todo 后面结构走配置
|
||||||
resultCache[0]= (long) status;
|
resultCache[0]= status;
|
||||||
resultCache[1]= (long) duration;
|
resultCache[1]= duration;
|
||||||
LOGGER.info(" lua check test fight result : "+ status);
|
LOGGER.info(" lua check test fight result : "+ status);
|
||||||
for (int i = 1; i <= result.length(); i++) {
|
for (int i = 1; i <= result.length(); i++) {
|
||||||
long tolong = result.rawget(i).tolong();
|
long tolong = result.rawget(i).tolong();
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class ConfMessage {
|
||||||
File file = new File("conf/plat-configure.json");
|
File file = new File("conf/plat-configure.json");
|
||||||
// File file = new File("C://ljsd/gameserver_new/conf/plat-configure.json");
|
// File file = new File("C://ljsd/gameserver_new/conf/plat-configure.json");
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
LOGGER.error("the file plat-configure.json is not exists");
|
// LOGGER.error("the file plat-configure.json is not exists");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
InputStream in = new FileInputStream(file);
|
InputStream in = new FileInputStream(file);
|
||||||
|
|
|
@ -28,5 +28,6 @@ public interface GlobalGm {
|
||||||
// int TECNOLOGY_MAX = 21;//科技树一键满级
|
// int TECNOLOGY_MAX = 21;//科技树一键满级
|
||||||
// int POKEMAN_MAX = 22;//一键获得所有满级异妖
|
// int POKEMAN_MAX = 22;//一键获得所有满级异妖
|
||||||
int HARD_STAGE =25;//一键通关山河社稷图特定关卡之前的所有关卡
|
int HARD_STAGE =25;//一键通关山河社稷图特定关卡之前的所有关卡
|
||||||
|
int FOUR_SPIRITS =26;//一键通关山河社稷图特定关卡之前的所有关卡
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ public class GMRequestHandler extends BaseHandler{
|
||||||
CommonProto.GMCommand gmCommand = CommonProto.GMCommand.parseFrom(message);
|
CommonProto.GMCommand gmCommand = CommonProto.GMCommand.parseFrom(message);
|
||||||
String command = gmCommand.getCommand();
|
String command = gmCommand.getCommand();
|
||||||
int uid = iSession.getUid();
|
int uid = iSession.getUid();
|
||||||
LOGGER.error("gm commond is {}",command);
|
LOGGER.info("gm commond is {}",command);
|
||||||
// if(command.startsWith("//check_fight")){
|
// if(command.startsWith("//check_fight")){
|
||||||
// FIGHT_LOGGER.error(command);
|
// FIGHT_LOGGER.error(command);
|
||||||
// CommonProto.GmResponse.Builder gmBuilder = CommonProto.GmResponse.newBuilder();
|
// CommonProto.GmResponse.Builder gmBuilder = CommonProto.GmResponse.newBuilder();
|
||||||
|
@ -97,9 +97,9 @@ public class GMRequestHandler extends BaseHandler{
|
||||||
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, gmBuilder.build(), true);
|
MessageUtil.sendMessage(iSession, 1, MessageTypeProto.MessageType.GM_RESPONSE_VALUE, gmBuilder.build(), true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!GameApplication.serverProperties.isDebug()){
|
// if(!GameApplication.serverProperties.isDebug()){
|
||||||
throw new ErrorCodeException("In a formal setting");
|
// throw new ErrorCodeException("In a formal setting");
|
||||||
}
|
// }
|
||||||
if (!command.contains("#") || command.split("#").length < 3) {
|
if (!command.contains("#") || command.split("#").length < 3) {
|
||||||
LOGGER.error("wrong command :" + command);
|
LOGGER.error("wrong command :" + command);
|
||||||
return;
|
return;
|
||||||
|
@ -456,6 +456,12 @@ public class GMRequestHandler extends BaseHandler{
|
||||||
HardStageLogic.test(cUser,id);
|
HardStageLogic.test(cUser,id);
|
||||||
HardStageLogic.sendHardStageIndication(cUser);
|
HardStageLogic.sendHardStageIndication(cUser);
|
||||||
break;
|
break;
|
||||||
|
case GlobalGm.FOUR_SPIRITS:
|
||||||
|
//四灵试炼跳关
|
||||||
|
prarm1 = Integer.parseInt(commandArray[1]);
|
||||||
|
prarm2 = Integer.parseInt(commandArray[2]);
|
||||||
|
cUser.getPlayerInfoManager().updateFourChallengeByIndex(prarm1, prarm2);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,14 +8,14 @@ import rpc.protocols.HeroInfoProto;
|
||||||
import rpc.protocols.MessageTypeProto;
|
import rpc.protocols.MessageTypeProto;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class HongmengGetInfoRequestHandler extends BaseHandler<HeroInfoProto.ResonanceRequest> {
|
public class HongmengGetInfoRequestHandler extends BaseHandler<HeroInfoProto.GetHongmengInfoRequest> {
|
||||||
@Override
|
@Override
|
||||||
public MessageTypeProto.MessageType getMessageCode() {
|
public MessageTypeProto.MessageType getMessageCode() {
|
||||||
return MessageTypeProto.MessageType.HONGMENG_GET_INFO_REQUEST;
|
return MessageTypeProto.MessageType.HONGMENG_GET_INFO_REQUEST;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void processWithProto(ISession session, HeroInfoProto.ResonanceRequest proto) throws Exception {
|
public void processWithProto(ISession session, HeroInfoProto.GetHongmengInfoRequest proto) throws Exception {
|
||||||
HeroLogic.getInstance().getHongmengInfo(session, MessageTypeProto.MessageType.HONGMENG_GET_INFO_RESPONSE);
|
HeroLogic.getInstance().addOrUpdateHongmeng(session, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -537,6 +537,9 @@ public class GlobalDataManaager implements IManager {
|
||||||
|
|
||||||
|
|
||||||
public TimeControllerOfFunction getOpenTimeOfFuntionCacheByType(FunctionIdEnum functionIdEnum ) {
|
public TimeControllerOfFunction getOpenTimeOfFuntionCacheByType(FunctionIdEnum functionIdEnum ) {
|
||||||
|
if (functionIdEnum == null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
List<Integer> ids = SGlobalSystemConfig.idsByType.get(functionIdEnum.getFunctionType());
|
List<Integer> ids = SGlobalSystemConfig.idsByType.get(functionIdEnum.getFunctionType());
|
||||||
if(ids!=null && !ids.isEmpty()){
|
if(ids!=null && !ids.isEmpty()){
|
||||||
for(Integer id : ids){
|
for(Integer id : ids){
|
||||||
|
|
|
@ -82,7 +82,7 @@ public enum ActivityTypeEnum {
|
||||||
SUPERFUND328(ActivityType.SUPERFUND328,SuperFundActivity::new),//超值基金328
|
SUPERFUND328(ActivityType.SUPERFUND328,SuperFundActivity::new),//超值基金328
|
||||||
PREPARE_FIFTEEN_ACTIVITY(ActivityType.PREPARE_FIFTEEN_ACTIVITY,DefaultEmptyActivity::new),//超值基金328
|
PREPARE_FIFTEEN_ACTIVITY(ActivityType.PREPARE_FIFTEEN_ACTIVITY,DefaultEmptyActivity::new),//超值基金328
|
||||||
THEME_ACTIVITY_SHOP(ActivityType.THEME_ACTIVITY_SHOP,DefaultEmptyActivity::new),
|
THEME_ACTIVITY_SHOP(ActivityType.THEME_ACTIVITY_SHOP,DefaultEmptyActivity::new),
|
||||||
//XUN_BAO_MI_ZONG(ActivityType.XUN_BAO_MI_ZONG,XunBaoMiZongActivity::new)
|
XUN_BAO_MI_ZONG(ActivityType.XUN_BAO_MI_ZONG,XunBaoMiZongActivity::new)
|
||||||
;
|
;
|
||||||
|
|
||||||
private int type;
|
private int type;
|
||||||
|
|
|
@ -20,7 +20,7 @@ public class GuildMyInfo extends MongoBase {
|
||||||
private long preMoveTimestamp; //上次更新时间
|
private long preMoveTimestamp; //上次更新时间
|
||||||
private int maxBossHurt; //工会boss最高伤害
|
private int maxBossHurt; //工会boss最高伤害
|
||||||
private int lastHurt; //上一次伤害
|
private int lastHurt; //上一次伤害
|
||||||
private Map<Integer,Integer> deathMaxDamage = new HashMap<>();
|
private Map<Integer,Long> deathMaxDamage = new HashMap<>();
|
||||||
|
|
||||||
//公会祭祀
|
//公会祭祀
|
||||||
private int fetetype;//祭祀类型
|
private int fetetype;//祭祀类型
|
||||||
|
@ -201,11 +201,11 @@ public class GuildMyInfo extends MongoBase {
|
||||||
updateString("guildSkill",guildSkill);
|
updateString("guildSkill",guildSkill);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<Integer, Integer> getDeathMaxDamage() {
|
public Map<Integer, Long> getDeathMaxDamage() {
|
||||||
return deathMaxDamage;
|
return deathMaxDamage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDeathMaxDamage(int pathId, int damage) {
|
public void setDeathMaxDamage(int pathId, Long damage) {
|
||||||
deathMaxDamage.put(pathId,damage);
|
deathMaxDamage.put(pathId,damage);
|
||||||
updateString("deathMaxDamage",deathMaxDamage);
|
updateString("deathMaxDamage",deathMaxDamage);
|
||||||
|
|
||||||
|
|
|
@ -84,16 +84,17 @@ public class CrossDeathPathLogic {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加跨服排行
|
* 添加跨服排行
|
||||||
* @param uid
|
|
||||||
* @param damage
|
|
||||||
* @param guildId
|
|
||||||
* @param pathId
|
|
||||||
*/
|
*/
|
||||||
void addCrossDeathPathRank(int uid, int damage, int guildId, int pathId) throws Exception {
|
void addCrossDeathPathRank(DeathPathTask task) throws Exception {
|
||||||
|
long damage = task.getDamage();
|
||||||
|
int uid = task.getUid();
|
||||||
|
int pathId = task.getPathId();
|
||||||
|
int guildId = task.getGuildId();
|
||||||
|
|
||||||
RedisUtil redisUtil = RedisUtil.getInstence();
|
RedisUtil redisUtil = RedisUtil.getInstence();
|
||||||
//操作每个关的公会、个人数据
|
//操作每个关的公会、个人数据
|
||||||
BigDecimal decimal = new BigDecimal(String.valueOf(damage)).divide(new BigDecimal(String.valueOf(Math.pow(10,15))));
|
BigDecimal decimal = new BigDecimal(String.valueOf(damage)).divide(new BigDecimal(String.valueOf(Math.pow(10,15))));
|
||||||
long everyGuildChangeScore = (long)damage*1000;
|
long everyGuildChangeScore = damage*1000;
|
||||||
AbstractRank everyPerson = RankContext.getRankEnum(RankEnum.DEATH_PATH_EVERY_PERSON_RANK.getType());
|
AbstractRank everyPerson = RankContext.getRankEnum(RankEnum.DEATH_PATH_EVERY_PERSON_RANK.getType());
|
||||||
if(redisUtil.getZSetScore(everyPerson.getCrossRedisKey(),String.valueOf(pathId), String.valueOf(uid), false)==-1){
|
if(redisUtil.getZSetScore(everyPerson.getCrossRedisKey(),String.valueOf(pathId), String.valueOf(uid), false)==-1){
|
||||||
//记录人数操作
|
//记录人数操作
|
||||||
|
|
|
@ -361,7 +361,7 @@ public class DeathPathLogic {
|
||||||
SGuildWarConfig config = STableManager.getConfig(SGuildWarConfig.class).get(pathId);
|
SGuildWarConfig config = STableManager.getConfig(SGuildWarConfig.class).get(pathId);
|
||||||
PVEFightEvent pveFightEvent = new PVEFightEvent(user.getId(), GlobalsDef.DEATH_PATH_TEAM, SGuildSetting.sGuildSetting.getWarTime(), "", GameFightType.DeathPathChallenge, config.getMonsterId(), 3);
|
PVEFightEvent pveFightEvent = new PVEFightEvent(user.getId(), GlobalsDef.DEATH_PATH_TEAM, SGuildSetting.sGuildSetting.getWarTime(), "", GameFightType.DeathPathChallenge, config.getMonsterId(), 3);
|
||||||
FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
|
FightResult fightResult = FightDispatcher.dispatcher(pveFightEvent);
|
||||||
int damage = (int) fightResult.getCheckResult()[1];
|
long damage = fightResult.getCheckResult()[1];
|
||||||
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
|
CommonProto.FightData fightData = CommonProto.FightData.newBuilder()
|
||||||
.setFightMaxTime(SGuildSetting.sGuildSetting.getWarTime())
|
.setFightMaxTime(SGuildSetting.sGuildSetting.getWarTime())
|
||||||
.setFightSeed(fightResult.getSeed())
|
.setFightSeed(fightResult.getSeed())
|
||||||
|
@ -388,8 +388,8 @@ public class DeathPathLogic {
|
||||||
RedisUtil.getInstence().putMapEntry(RedisKey.GUILD_INFO_CACHE,"",String.valueOf(guildId),guildInfoCache);
|
RedisUtil.getInstence().putMapEntry(RedisKey.GUILD_INFO_CACHE,"",String.valueOf(guildId),guildInfoCache);
|
||||||
|
|
||||||
CommonProto.Drop.Builder drop = ItemUtil.drop(user, config.getReward(), BIReason.DEATH_PATH_CHALLENGE);
|
CommonProto.Drop.Builder drop = ItemUtil.drop(user, config.getReward(), BIReason.DEATH_PATH_CHALLENGE);
|
||||||
Map<Integer, Integer> deathMaxDamage = user.getGuildMyInfo().getDeathMaxDamage();
|
Map<Integer, Long> deathMaxDamage = user.getGuildMyInfo().getDeathMaxDamage();
|
||||||
int maxDamage = deathMaxDamage.getOrDefault(pathId, 0);
|
long maxDamage = deathMaxDamage.getOrDefault(pathId, 0L);
|
||||||
Family.ChallengeDeathPathResponse response = Family.ChallengeDeathPathResponse.newBuilder().setDamage(damage).setFightData(fightData).setDrop(drop).setHistoryMax(maxDamage).build();
|
Family.ChallengeDeathPathResponse response = Family.ChallengeDeathPathResponse.newBuilder().setDamage(damage).setFightData(fightData).setDrop(drop).setHistoryMax(maxDamage).build();
|
||||||
if(!deathMaxDamage.containsKey(pathId)||deathMaxDamage.get(pathId)<damage){
|
if(!deathMaxDamage.containsKey(pathId)||deathMaxDamage.get(pathId)<damage){
|
||||||
user.getGuildMyInfo().setDeathMaxDamage(pathId,damage);
|
user.getGuildMyInfo().setDeathMaxDamage(pathId,damage);
|
||||||
|
@ -436,7 +436,7 @@ public class DeathPathLogic {
|
||||||
//跨服
|
//跨服
|
||||||
if(getInstance().getGroupId()>0){
|
if(getInstance().getGroupId()>0){
|
||||||
try {
|
try {
|
||||||
CrossDeathPathLogic.getInstance().addCrossDeathPathRank(task.getUid(),task.getDamage(),task.getGuildId(),task.getPathId());
|
CrossDeathPathLogic.getInstance().addCrossDeathPathRank(task);
|
||||||
LOGGER.info("==================跨服十绝阵上榜处理:{}",task.toString());
|
LOGGER.info("==================跨服十绝阵上榜处理:{}",task.toString());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("==================跨服十绝阵上榜异常:{}",e.getMessage());
|
LOGGER.error("==================跨服十绝阵上榜异常:{}",e.getMessage());
|
||||||
|
@ -516,9 +516,9 @@ public class DeathPathLogic {
|
||||||
.setPathId(pathId).setServerName(serverName).build();
|
.setPathId(pathId).setServerName(serverName).build();
|
||||||
Family.DeathPathFirstChangeIndication indication = Family.DeathPathFirstChangeIndication.newBuilder().setChangeInfo(info).build();
|
Family.DeathPathFirstChangeIndication indication = Family.DeathPathFirstChangeIndication.newBuilder().setChangeInfo(info).build();
|
||||||
GuildLogic.sendIndicationToMember(guildInfo, MessageTypeProto.MessageType.DEATH_PATH_FIRST_CHANGE_INDICATION,indication);
|
GuildLogic.sendIndicationToMember(guildInfo, MessageTypeProto.MessageType.DEATH_PATH_FIRST_CHANGE_INDICATION,indication);
|
||||||
}else{
|
}/*else{
|
||||||
LOGGER.error("Exception公会信息为空,不能发送推送,公会id为{}",n.getValue());
|
LOGGER.error("Exception公会信息为空,不能发送推送,公会id为{}",n.getValue());
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
LOGGER.info("信息修改,需要推送");
|
LOGGER.info("信息修改,需要推送");
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,13 +10,13 @@ public class DeathPathTask {
|
||||||
|
|
||||||
private int guildId;
|
private int guildId;
|
||||||
|
|
||||||
private int damage;
|
private long damage;
|
||||||
|
|
||||||
private int pathId;
|
private int pathId;
|
||||||
|
|
||||||
private int groupId;
|
private int groupId;
|
||||||
|
|
||||||
public DeathPathTask(int uid, int guildId, int damage, int pathId,int groupId) {
|
public DeathPathTask(int uid, int guildId, long damage, int pathId,int groupId) {
|
||||||
this.uid = uid;
|
this.uid = uid;
|
||||||
this.guildId = guildId;
|
this.guildId = guildId;
|
||||||
this.damage = damage;
|
this.damage = damage;
|
||||||
|
@ -40,11 +40,11 @@ public class DeathPathTask {
|
||||||
this.guildId = guildId;
|
this.guildId = guildId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getDamage() {
|
public long getDamage() {
|
||||||
return damage;
|
return damage;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDamage(int damage) {
|
public void setDamage(long damage) {
|
||||||
this.damage = damage;
|
this.damage = damage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package com.ljsd.jieling.logic.fight.passiveSkillCal;
|
package com.ljsd.jieling.logic.fight.passiveSkillCal;
|
||||||
|
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
import config.SCHero;
|
import config.SCHero;
|
||||||
import config.SPropertyConfig;
|
import config.SPropertyConfig;
|
||||||
|
|
||||||
|
@ -52,10 +54,15 @@ public enum PassiveskillCalEnum {
|
||||||
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue);
|
heroSkillAdMap.put(sPropertyConfig.getPropertyId(),heroSkillAdMap.getOrDefault(sPropertyConfig.getPropertyId(), Long.valueOf(0))+extraValue);
|
||||||
}),
|
}),
|
||||||
HEROAFTER100ADD(171,(config,hero,heroSkillAdMap)->{
|
HEROAFTER100ADD(171,(config,hero,heroSkillAdMap)->{
|
||||||
|
int uid = Integer.parseInt(hero.getId().substring(0, 8));
|
||||||
|
User user = UserManager.getUserInMem(uid);
|
||||||
|
if (user == null){
|
||||||
|
return;
|
||||||
|
}
|
||||||
float[] value = config.getValue();
|
float[] value = config.getValue();
|
||||||
int battlePropertyId = (int) value[0];
|
int battlePropertyId = (int) value[0];
|
||||||
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId);
|
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByBattlePID(battlePropertyId);
|
||||||
int level = hero.getOriginalLevel();
|
int level = hero.getLevel(user.getHeroManager());
|
||||||
int times=level-100;
|
int times=level-100;
|
||||||
if(times<=0){
|
if(times<=0){
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -17,6 +17,10 @@ public enum HeroAttributeEnum {
|
||||||
TreatFacter(58),
|
TreatFacter(58),
|
||||||
DifferDemonsReduceFactor(59),
|
DifferDemonsReduceFactor(59),
|
||||||
AntiCritDamageFactor(60),
|
AntiCritDamageFactor(60),
|
||||||
|
HP_ADD_PERCENT(61), // 血量 加成百分比
|
||||||
|
ATTACK_ADD_PERCENT(62), // 攻击 加成百分比
|
||||||
|
PHYSICAL_DEFENCE_ADD_PERCENT(63), // 护甲 加成百分比
|
||||||
|
MAGIC_DEFENCE_ADD_PERCENT(64), // 魔抗 加成百分比
|
||||||
DifferDemonsBocusFactor(66),
|
DifferDemonsBocusFactor(66),
|
||||||
CurHpExtra(67),
|
CurHpExtra(67),
|
||||||
CurHpSpecialExtra(68),
|
CurHpSpecialExtra(68),
|
||||||
|
@ -34,6 +38,7 @@ public enum HeroAttributeEnum {
|
||||||
LandDamageReduceFactor(110),
|
LandDamageReduceFactor(110),
|
||||||
LightDamageReduceFactor(111),
|
LightDamageReduceFactor(111),
|
||||||
DarkDamageReduceFactor(112),
|
DarkDamageReduceFactor(112),
|
||||||
|
CritDamageReduceFactor(113), // 暴伤减免
|
||||||
EquipForce(9999),
|
EquipForce(9999),
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
|
@ -2747,11 +2747,11 @@ public class HeroLogic{
|
||||||
|
|
||||||
public int calForce( Map<Integer, Long> heroAllAttribute ){
|
public int calForce( Map<Integer, Long> heroAllAttribute ){
|
||||||
double result = 0;
|
double result = 0;
|
||||||
|
// 旧战力计算
|
||||||
for(Map.Entry<Integer, Long> item : heroAllAttribute.entrySet()){
|
for(Map.Entry<Integer, Long> item : heroAllAttribute.entrySet()){
|
||||||
Integer propertyId = item.getKey();
|
Integer propertyId = item.getKey();
|
||||||
float propertyValue = item.getValue();
|
float propertyValue = item.getValue();
|
||||||
if(propertyId == HeroAttributeEnum.EquipForce.getPropertyId()){
|
if(propertyId == HeroAttributeEnum.EquipForce.getPropertyId()){
|
||||||
// LOGGER.info("the equipScore={}",propertyValue);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByPID(propertyId);
|
SPropertyConfig sPropertyConfig = SPropertyConfig.getsPropertyConfigByPID(propertyId);
|
||||||
|
@ -2761,9 +2761,52 @@ public class HeroLogic{
|
||||||
float score = sPropertyConfig.getScore();
|
float score = sPropertyConfig.getScore();
|
||||||
|
|
||||||
result += propertyValue*score;
|
result += propertyValue*score;
|
||||||
// LOGGER.info("the propertyId={} the value is ={},propertyValue={},score={},result ={},the value={}",propertyId,propertyValue*score,propertyValue,score,result,propertyValue*score);
|
|
||||||
}
|
}
|
||||||
// System.out.println(result);
|
|
||||||
|
|
||||||
|
// SPropertyConfig sPropertyConfigHP = SPropertyConfig.getsPropertyConfigByPID(HeroAttributeEnum.Hp.getPropertyId());
|
||||||
|
// float hpScore = sPropertyConfigHP.getScore();
|
||||||
|
// SPropertyConfig sPropertyConfigAttack = SPropertyConfig.getsPropertyConfigByPID(HeroAttributeEnum.Attack.getPropertyId());
|
||||||
|
// float attackScore = sPropertyConfigAttack.getScore();
|
||||||
|
// SPropertyConfig sPropertyConfigPhysicalDefence = SPropertyConfig.getsPropertyConfigByPID(HeroAttributeEnum.PhysicalDefence.getPropertyId());
|
||||||
|
// float pdScore = sPropertyConfigPhysicalDefence.getScore();
|
||||||
|
// SPropertyConfig sPropertyConfigMagicDefence = SPropertyConfig.getsPropertyConfigByPID(HeroAttributeEnum.MagicDefence.getPropertyId());
|
||||||
|
// float mdScore = sPropertyConfigMagicDefence.getScore();
|
||||||
|
//
|
||||||
|
// // 新战力计算2021 9 17
|
||||||
|
// // 面板最大生命值
|
||||||
|
// float xishu = 10000;
|
||||||
|
// float finalHp = heroAllAttribute.getOrDefault(HeroAttributeEnum.Hp.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 面板攻击
|
||||||
|
// float finalAttack = heroAllAttribute.getOrDefault(HeroAttributeEnum.Attack.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 面板护甲
|
||||||
|
// float finalPhysicalDefence = heroAllAttribute.getOrDefault(HeroAttributeEnum.PhysicalDefence.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 面板魔抗
|
||||||
|
// float magicDefence = heroAllAttribute.getOrDefault(HeroAttributeEnum.MagicDefence.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 伤害加成
|
||||||
|
// float damageBocusFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.DamageBocusFactor.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 伤害减免
|
||||||
|
// float damageReduceFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.DamageReduceFactor.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 命中几率
|
||||||
|
// float hit = heroAllAttribute.getOrDefault(HeroAttributeEnum.Hit.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 闪避几率
|
||||||
|
// float dodge = heroAllAttribute.getOrDefault(HeroAttributeEnum.Dodge.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 暴击几率
|
||||||
|
// float critFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.CritFactor.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 抗暴几率
|
||||||
|
// float antiCritDamageFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.AntiCritDamageFactor.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 暴伤加成
|
||||||
|
// float critDamageFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.CritDamageFactor.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 暴伤减免
|
||||||
|
// float critDamageReduceFactor = heroAllAttribute.getOrDefault(HeroAttributeEnum.CritDamageReduceFactor.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 受疗加成
|
||||||
|
// float cureFacter = heroAllAttribute.getOrDefault(HeroAttributeEnum.CureFacter.getPropertyId(), 0L).floatValue();
|
||||||
|
// // 治疗加成
|
||||||
|
// float treatFacter = heroAllAttribute.getOrDefault(HeroAttributeEnum.TreatFacter.getPropertyId(), 0L).floatValue();
|
||||||
|
//
|
||||||
|
// result = (finalHp * hpScore + finalAttack * attackScore + finalPhysicalDefence * pdScore + magicDefence * mdScore)
|
||||||
|
// * (1 + (damageBocusFactor + damageReduceFactor + hit + dodge + critFactor +
|
||||||
|
// antiCritDamageFactor + critDamageFactor + critDamageReduceFactor + cureFacter + treatFacter) / 2 / xishu);
|
||||||
return (int)result;
|
return (int)result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4316,41 +4359,33 @@ public class HeroLogic{
|
||||||
if(isInTeam(user,heroId,1)){
|
if(isInTeam(user,heroId,1)){
|
||||||
Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid()));
|
Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
|
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================================共鸣、鸿蒙碑========================= //
|
// ================================共鸣、鸿蒙碑========================= //
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取鸿蒙阵信息
|
* 推送鸿蒙阵信息
|
||||||
* @param session
|
* @param session
|
||||||
* @param messageType
|
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public void getHongmengInfo(ISession session, MessageTypeProto.MessageType messageType) throws Exception {
|
public void addOrUpdateHongmeng(ISession session) throws Exception {
|
||||||
// 刷新鸿蒙阵
|
addOrUpdateHongmeng(session,false);
|
||||||
addOrUpdateHongmeng(session);
|
|
||||||
|
|
||||||
HeroInfoProto.GetHongmengInfoResponse getHongmengInfoResponse = HeroInfoProto.GetHongmengInfoResponse.newBuilder().build();
|
|
||||||
MessageUtil.sendMessage(session, 1, messageType.getNumber(), getHongmengInfoResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 添加或更新鸿蒙守卫
|
* 添加或更新鸿蒙守卫
|
||||||
* @param session
|
* @param session
|
||||||
|
* @param judge true:返回,false:推送
|
||||||
*/
|
*/
|
||||||
public void addOrUpdateHongmeng(ISession session) throws Exception {
|
public void addOrUpdateHongmeng(ISession session, boolean judge) throws Exception {
|
||||||
User user = UserManager.getUser(session.getUid());
|
User user = UserManager.getUser(session.getUid());
|
||||||
|
HeroInfoProto.HongmengInfoIndication.Builder hongmengInfoIndication = HeroInfoProto.HongmengInfoIndication.newBuilder();
|
||||||
|
|
||||||
// 鸿蒙阵开启条件
|
|
||||||
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.HongMeng.getFunctionType());
|
SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(FunctionIdEnum.HongMeng.getFunctionType());
|
||||||
boolean open = HandlerLogicThread.checkOpen(user, sGlobalSystemConfig);
|
boolean open = HandlerLogicThread.checkOpen(user, sGlobalSystemConfig);
|
||||||
if (!open) {
|
// 鸿蒙阵开启条件
|
||||||
return;
|
if (open) {
|
||||||
}
|
|
||||||
|
|
||||||
/** ========================== 共鸣信息初始化 =========================== **/
|
/** ========================== 共鸣信息初始化 =========================== **/
|
||||||
// 限制表 鸿蒙守卫数量#鸿蒙碑使者等级
|
// 限制表 鸿蒙守卫数量#鸿蒙碑使者等级
|
||||||
String[] openLevel = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_UPGRADE_LIMIT).split("#");
|
String[] openLevel = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_UPGRADE_LIMIT).split("#");
|
||||||
|
@ -4545,14 +4580,15 @@ public class HeroLogic{
|
||||||
.build();
|
.build();
|
||||||
hongmengResonancesProto.add(hongmengHeroInfo);
|
hongmengResonancesProto.add(hongmengHeroInfo);
|
||||||
}
|
}
|
||||||
HeroInfoProto.HongmengInfoIndication hongmengInfoIndication = HeroInfoProto.HongmengInfoIndication.newBuilder()
|
hongmengInfoIndication.addAllHongmengGuards(hongmengGuardsProto).addAllHongmengAdditions(hongmengAdditions)
|
||||||
.addAllHongmengGuards(hongmengGuardsProto)
|
.addAllHongmengResonacnes(hongmengResonancesProto).setHongmengTabletMax(tabletMax).build();
|
||||||
.addAllHongmengAdditions(hongmengAdditions)
|
}
|
||||||
.addAllHongmengResonacnes(hongmengResonancesProto)
|
// 返回协议
|
||||||
.setHongmengTabletMax(tabletMax)
|
if (judge){
|
||||||
.build();
|
MessageUtil.sendMessage(session, 1, MessageTypeProto.MessageType.HONGMENG_GET_INFO_RESPONSE_VALUE, hongmengInfoIndication.build(), true);
|
||||||
|
}else {
|
||||||
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.HONGMENG_INFO_INDICATION.getNumber(),hongmengInfoIndication,true);
|
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.HONGMENG_INFO_INDICATION_VALUE,hongmengInfoIndication.build(),true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue