鸿蒙阵1.2

back_recharge
duhui 2020-12-28 09:41:49 +08:00
parent 3834f8321f
commit 73cc224b50
4 changed files with 87 additions and 51 deletions

View File

@ -50,6 +50,8 @@ public class UseAndPriceItemHandler extends BaseHandler<PlayerInfoProto.UseAndPr
} }
CommonProto.Drop.Builder baseBuilder =ItemLogic.getInstance().decomposeHero(iSession,heroIdsList,null, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE); CommonProto.Drop.Builder baseBuilder =ItemLogic.getInstance().decomposeHero(iSession,heroIdsList,null, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE);
ItemLogic.sendUseAndPriceItemMessage(iSession, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE, baseBuilder); ItemLogic.sendUseAndPriceItemMessage(iSession, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE, baseBuilder);
//鸿蒙阵
HeroLogic.getInstance().addOrUpdateHongmeng(iSession);
}else if(type==4){//分解宝器 }else if(type==4){//分解宝器
ItemLogic.getInstance().decomposeJewel(iSession,equipIdsList); ItemLogic.getInstance().decomposeJewel(iSession,equipIdsList);
}else if(type==6){ }else if(type==6){

View File

@ -7,6 +7,7 @@ import com.ljsd.jieling.logic.hero.HeroLogic;
import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.network.session.ISession;
import com.ljsd.jieling.protocols.HeroInfoProto; import com.ljsd.jieling.protocols.HeroInfoProto;
import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.MessageTypeProto;
import config.SSpecialConfig;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@Component @Component
@ -22,7 +23,7 @@ public class HongmengResonanceRequestHandler extends BaseHandler<HeroInfoProto.R
if (proto.getType() == 1) { if (proto.getType() == 1) {
HeroLogic.getInstance().resonance(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, proto.getHeroId(), proto.getGridId()); HeroLogic.getInstance().resonance(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, proto.getHeroId(), proto.getGridId());
} else if (proto.getType() == 2){ } else if (proto.getType() == 2){
HeroLogic.getInstance().unLoadResonance(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, proto.getGridId()); HeroLogic.getInstance().unLoadResonance(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, proto.getGridId(), SSpecialConfig.getIntegerValue(SSpecialConfig.HONGMENG_LATTICE_WAIT_TIME));
} }
else if (proto.getType() == 3){ else if (proto.getType() == 3){
HeroLogic.getInstance().unLoadHongmengTableHero(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, proto.getGridId()); HeroLogic.getInstance().unLoadHongmengTableHero(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, proto.getGridId());

View File

@ -1061,9 +1061,10 @@ public class HeroLogic{
// recyleHeroBySystem(user,removeHeroIds); // recyleHeroBySystem(user,removeHeroIds);
rankUpHeroExecute(targetHero); rankUpHeroExecute(targetHero);
Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar())); Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getTemplateId(),targetHero.getStar()));
if(targetHero.getStar()>=5&&targetHero.getStar()!=15){ if (targetHero.getStar()>=5&&targetHero.getStar()!=15){
if(SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5) if (SItem.getsItemMap().get(scHero.getId()).getQuantity()>=5) {
Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId(),targetHero.getStar())); Poster.getPoster().dispatchEvent(new HeroFiveStarGetEvent(user.getId(), targetHero.getStar()));
}
} }
// if(targetHero.getStar()==5){ // if(targetHero.getStar()==5){
@ -3437,7 +3438,7 @@ public class HeroLogic{
MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true);
} }
// ================共鸣、鸿蒙碑========= // ================================共鸣、鸿蒙碑========================= //
/** /**
* 鸿 * 鸿
@ -3455,12 +3456,12 @@ public class HeroLogic{
List<HeroInfoProto.HongmengHeroInfo> hongmengHeroInfos = new ArrayList<>(); List<HeroInfoProto.HongmengHeroInfo> hongmengHeroInfos = new ArrayList<>();
Map<Integer, String> resonances = heroManager.getResonances(); Map<Integer, String> resonances = heroManager.getResonances();
Map<Integer, Long> resonancesTime = heroManager.getResonancesTime(); Map<Integer, Long> resonancesTime = heroManager.getResonancesTime();
long now = TimeUtils.now(); long now = TimeUtils.now()/1000;
for (Map.Entry<Integer, String> entry : resonances.entrySet()) { for (Map.Entry<Integer, String> entry : resonances.entrySet()) {
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder() HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
.setGridId(entry.getKey()) .setGridId(entry.getKey())
.setHeroId(entry.getValue()) .setHeroId(entry.getValue())
.setTime(resonancesTime.containsKey(entry.getKey()) ? (resonancesTime.get(entry.getKey()) - now < 0 ? 0 : (resonancesTime.get(entry.getKey()) - now) / 1000) : 0) .setTime(resonancesTime.containsKey(entry.getKey()) ? (resonancesTime.get(entry.getKey()) - now < 0 ? 0 : (resonancesTime.get(entry.getKey()) - now)) : 0)
.build(); .build();
hongmengHeroInfos.add(hongmengHeroInfo); hongmengHeroInfos.add(hongmengHeroInfo);
} }
@ -3471,7 +3472,7 @@ public class HeroLogic{
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder() HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
.setGridId(entry.getKey()) .setGridId(entry.getKey())
.setHeroId(entry.getValue()) .setHeroId(entry.getValue())
.setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now) / 1000) : 0) .setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now)) : 0)
.build(); .build();
hongmengGuardsProto.add(hongmengHeroInfo); hongmengGuardsProto.add(hongmengHeroInfo);
} }
@ -3523,7 +3524,15 @@ public class HeroLogic{
return Integer.compare(hero2.getStar(), hero1.getStar()); return Integer.compare(hero2.getStar(), hero1.getStar());
} }
}); });
Map<Integer, String> hongmengs = new HashMap<>();
heroes.forEach((item)->{
System.out.println("hero========================:"+item.getId());
});
// 限制表 鸿蒙守卫数量#鸿蒙碑使者等级
String[] openLevel = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_UPGRADE_LIMIT).split("#");
Map<Integer, String> hongmengs = new HashMap<>(Integer.parseInt(openLevel[0]));
int defaultValue = 1000; int defaultValue = 1000;
// 只要任意鸿蒙守卫中有未穿戴装备的部位,就不会触发装备共鸣,共鸣区域放入神将时不再自动卸下装备 -1:不用卸下装备,其他表示装备星级 // 只要任意鸿蒙守卫中有未穿戴装备的部位,就不会触发装备共鸣,共鸣区域放入神将时不再自动卸下装备 -1:不用卸下装备,其他表示装备星级
HongMengAddAttribute hongMengAddAttributeEquip = new HongMengAddAttribute(0, defaultValue); HongMengAddAttribute hongMengAddAttributeEquip = new HongMengAddAttribute(0, defaultValue);
@ -3540,16 +3549,20 @@ public class HeroLogic{
// 是否开启鸿蒙碑 // 是否开启鸿蒙碑
int tablet = 1; int tablet = 1;
// 共鸣英雄池 // 共鸣英雄池
Collection<String> values2 = heroManager.getResonances().values(); Map<Integer, String> resonances = heroManager.getResonances();
// 限制表 鸿蒙守卫数量#鸿蒙碑使者等级
String[] openLevel = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_UPGRADE_LIMIT).split("#");
int key = 1; int key = 1;
for (int i = 0; i < heroes.size(); i++) { for (int i = 0; i < heroes.size(); i++) {
Hero hero = heroes.get(i); Hero hero = heroes.get(i);
if (values2.contains(hero.getId())) { resonances.forEach((k,v)->{
if (v.equals(hero.getId())){
continue; try {
} // 共鸣格子更新
unLoadResonance(session, MessageTypeProto.MessageType.HONGMENG_RESONANCE_RESPONSE, k, 0);
} catch (Exception e) {
e.printStackTrace();
}
}
});
// 是否开启鸿蒙碑 // 是否开启鸿蒙碑
if (hero.getOriginalLevel() < Integer.parseInt(openLevel[1])) { if (hero.getOriginalLevel() < Integer.parseInt(openLevel[1])) {
tablet = 0; tablet = 0;
@ -3561,6 +3574,13 @@ public class HeroLogic{
break; break;
} }
} }
// 不够6个无法开启鸿蒙阵
/*if (hongmengs.size() < Integer.parseInt(openLevel[0])) {
return;
}*/
// 更新鸿蒙使者
heroManager.setHongmengGuards(hongmengs);
// 守卫/使者英雄池 // 守卫/使者英雄池
Map<Integer, String> guards = heroManager.getHongmengGuards(); Map<Integer, String> guards = heroManager.getHongmengGuards();
// 英雄装备 // 英雄装备
@ -3579,13 +3599,7 @@ public class HeroLogic{
especialAdd(especialEquipLevel, hero); especialAdd(especialEquipLevel, hero);
} }
// 不够6个无法开启鸿蒙阵
/*if (hongmengs.size() < Integer.parseInt(openLevel[0])) {
return;
}*/
// 第一个格子免费开启 // 第一个格子免费开启
Map<Integer, String> resonances = heroManager.getResonances();
if (!resonances.containsKey(1)) { if (!resonances.containsKey(1)) {
resonances.put(1, ""); resonances.put(1, "");
heroManager.setResonances(resonances); heroManager.setResonances(resonances);
@ -3593,19 +3607,19 @@ public class HeroLogic{
// 计算共鸣属性 // 计算共鸣属性
Map<HongMengAttributeEnum, HongMengAddAttribute> resonanceAddition = heroManager.getResonanceAddition(); Map<HongMengAttributeEnum, HongMengAddAttribute> resonanceAddition = heroManager.getResonanceAddition();
resonanceAddition.clear(); resonanceAddition.clear();
if (resonanceLevel.value == defaultValue) { if (resonanceLevel.value == defaultValue || hongmengs.size() < Integer.parseInt(openLevel[0])) {
resonanceLevel.value = 0; resonanceLevel.value = 0;
} }
if (hongMengAddAttributeEquip.value == defaultValue) { if (hongMengAddAttributeEquip.value == defaultValue || hongmengs.size() < Integer.parseInt(openLevel[0])) {
hongMengAddAttributeEquip.value = 0; hongMengAddAttributeEquip.value = 0;
} }
if (soulEquip.value == defaultValue) { if (soulEquip.value == defaultValue || hongmengs.size() < Integer.parseInt(openLevel[0])) {
soulEquip.value = 0; soulEquip.value = 0;
} }
if (spiritEquip.value == defaultValue) { if (spiritEquip.value == defaultValue || hongmengs.size() < Integer.parseInt(openLevel[0])) {
spiritEquip.value = 0; spiritEquip.value = 0;
} }
if (especialEquipLevel.value == defaultValue) { if (especialEquipLevel.value == defaultValue || hongmengs.size() < Integer.parseInt(openLevel[0])) {
especialEquipLevel.value = 0; especialEquipLevel.value = 0;
} }
resonanceAddition.put(HongMengAttributeEnum.LEVEL, resonanceLevel); resonanceAddition.put(HongMengAttributeEnum.LEVEL, resonanceLevel);
@ -3626,7 +3640,8 @@ public class HeroLogic{
hero.setLevel(user, 1); hero.setLevel(user, 1);
} }
} }
long now = TimeUtils.now(); long now = TimeUtils.now()/1000;
// 鸿蒙守卫
List<HeroInfoProto.HongmengHeroInfo> hongmengGuardsProto = new ArrayList<>(); List<HeroInfoProto.HongmengHeroInfo> hongmengGuardsProto = new ArrayList<>();
Map<Integer, String> hongmengGuards = heroManager.getHongmengGuards(); Map<Integer, String> hongmengGuards = heroManager.getHongmengGuards();
Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime(); Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime();
@ -3634,10 +3649,11 @@ public class HeroLogic{
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder() HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
.setGridId(entry.getKey()) .setGridId(entry.getKey())
.setHeroId(entry.getValue()) .setHeroId(entry.getValue())
.setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now) / 1000) : 0) .setTime(hongmengGuardTime.containsKey(entry.getKey()) ? (hongmengGuardTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengGuardTime.get(entry.getKey()) - now)) : 0)
.build(); .build();
hongmengGuardsProto.add(hongmengHeroInfo); hongmengGuardsProto.add(hongmengHeroInfo);
} }
// 共鸣属性
List<HeroInfoProto.HongmengAddition> hongmengAdditions = new ArrayList<>(); List<HeroInfoProto.HongmengAddition> hongmengAdditions = new ArrayList<>();
for (Map.Entry<HongMengAttributeEnum, HongMengAddAttribute> entry : resonanceAddition.entrySet()) { for (Map.Entry<HongMengAttributeEnum, HongMengAddAttribute> entry : resonanceAddition.entrySet()) {
HeroInfoProto.HongmengAddition hongmengAddition = HeroInfoProto.HongmengAddition HeroInfoProto.HongmengAddition hongmengAddition = HeroInfoProto.HongmengAddition
@ -3648,9 +3664,22 @@ public class HeroLogic{
.build(); .build();
hongmengAdditions.add(hongmengAddition); hongmengAdditions.add(hongmengAddition);
} }
// 共鸣使者
List<HeroInfoProto.HongmengHeroInfo> hongmengResonancesProto = new ArrayList<>();
Map<Integer, String> hongmengResonances = heroManager.getResonances();
Map<Integer, Long> hongmengResonanceTime = heroManager.getResonancesTime();
for (Map.Entry<Integer, String> entry : hongmengResonances.entrySet()) {
HeroInfoProto.HongmengHeroInfo hongmengHeroInfo = HeroInfoProto.HongmengHeroInfo.newBuilder()
.setGridId(entry.getKey())
.setHeroId(entry.getValue())
.setTime(hongmengResonanceTime.containsKey(entry.getKey()) ? (hongmengResonanceTime.get(entry.getKey()) - now < 0 ? 0 : (hongmengResonanceTime.get(entry.getKey()) - now)) : 0)
.build();
hongmengResonancesProto.add(hongmengHeroInfo);
}
HeroInfoProto.HongmengInfoIndication hongmengInfoIndication = HeroInfoProto.HongmengInfoIndication.newBuilder() HeroInfoProto.HongmengInfoIndication hongmengInfoIndication = HeroInfoProto.HongmengInfoIndication.newBuilder()
.addAllHongmengGuards(hongmengGuardsProto) .addAllHongmengGuards(hongmengGuardsProto)
.addAllHongmengAdditions(hongmengAdditions) .addAllHongmengAdditions(hongmengAdditions)
.addAllHongmengResonacnes(hongmengResonancesProto)
.build(); .build();
MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.HONGMENG_INFO_INDICATION.getNumber(),hongmengInfoIndication,true); MessageUtil.sendIndicationMessage(session,1,MessageTypeProto.MessageType.HONGMENG_INFO_INDICATION.getNumber(),hongmengInfoIndication,true);
@ -3674,6 +3703,11 @@ public class HeroLogic{
* @param hero * @param hero
*/ */
public void especialAdd(HongMengAddAttribute especialEquipLevel, Hero hero) { public void especialAdd(HongMengAddAttribute especialEquipLevel, Hero hero) {
if (hero.getEspecialEquipLevel() <= 1){
especialEquipLevel.value = -1;
especialEquipLevel.heroTid = 0;
return;
}
if (hero.getEspecialEquipLevel() < especialEquipLevel.value) { if (hero.getEspecialEquipLevel() < especialEquipLevel.value) {
especialEquipLevel.value = hero.getEspecialEquipLevel(); especialEquipLevel.value = hero.getEspecialEquipLevel();
especialEquipLevel.heroTid = hero.getTemplateId(); especialEquipLevel.heroTid = hero.getTemplateId();
@ -3689,18 +3723,19 @@ public class HeroLogic{
*/ */
public void soulOrSpirit(HongMengAddAttribute soulEquip, HongMengAddAttribute spiritEquip, Map<String, PropertyItem> equipMap, Hero hero) { public void soulOrSpirit(HongMengAddAttribute soulEquip, HongMengAddAttribute spiritEquip, Map<String, PropertyItem> equipMap, Hero hero) {
if (hero.getJewelInfo().isEmpty()) { if (hero.getJewelInfo().isEmpty()) {
soulEquip.value = 0; soulEquip.value = -1;
spiritEquip.value = 0; spiritEquip.value = -1;
soulEquip.heroTid = 0; soulEquip.heroTid = 0;
spiritEquip.heroTid = 0; spiritEquip.heroTid = 0;
} else { } else {
for (String jewel : hero.getJewelInfo()) { for (String jewel : hero.getJewelInfo()) {
PropertyItem propertyItem = equipMap.get(jewel); PropertyItem propertyItem = equipMap.get(jewel);
if (propertyItem == null) { if (propertyItem == null) {
soulEquip.value = 0; soulEquip.value = -1;
soulEquip.heroTid = 0; soulEquip.heroTid = 0;
spiritEquip.value = 0; spiritEquip.value = -1;
spiritEquip.heroTid = 0; spiritEquip.heroTid = 0;
break;
} else { } else {
SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(propertyItem.getEquipId()); SJewelConfig config = STableManager.getConfig(SJewelConfig.class).get(propertyItem.getEquipId());
if (config == null) { if (config == null) {
@ -3811,7 +3846,7 @@ public class HeroLogic{
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF); throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF);
} }
Map<Integer, Long> resonancesTime = heroManager.getResonancesTime(); Map<Integer, Long> resonancesTime = heroManager.getResonancesTime();
if (resonancesTime.get(index) != null && resonancesTime.get(index) > TimeUtils.now()) { if (resonancesTime.get(index) != null && resonancesTime.get(index) > TimeUtils.now()/1000) {
LOGGER.info("resonance uid=>{} time =>{}", user.getId(), resonancesTime.get(index)); LOGGER.info("resonance uid=>{} time =>{}", user.getId(), resonancesTime.get(index));
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF); throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF);
} }
@ -3832,9 +3867,10 @@ public class HeroLogic{
* @param session * @param session
* @param messageType * @param messageType
* @param index * @param index
* @param time
* @throws Exception * @throws Exception
*/ */
public void unLoadResonance(ISession session, MessageTypeProto.MessageType messageType, int index) throws Exception{ public void unLoadResonance(ISession session, MessageTypeProto.MessageType messageType, int index, int time) throws Exception{
User user = UserManager.getUser(session.getUid()); User user = UserManager.getUser(session.getUid());
HeroManager heroManager = user.getHeroManager(); HeroManager heroManager = user.getHeroManager();
Map<Integer, String> resonances = heroManager.getResonances(); Map<Integer, String> resonances = heroManager.getResonances();
@ -3848,12 +3884,11 @@ public class HeroLogic{
LOGGER.info("unLoadResonance uid=>{} cur hero is null {}", user.getId(), heroId); LOGGER.info("unLoadResonance uid=>{} cur hero is null {}", user.getId(), heroId);
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF); throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF);
} }
heroManager.updateResonances(index, ""); heroManager.updateResonances(index, "");
heroManager.updateResonancesTime(index, TimeUtils.now() + SSpecialConfig.getIntegerValue(SSpecialConfig.HONGMENG_LATTICE_WAIT_TIME) * 1000); heroManager.updateResonancesTime(index, TimeUtils.now()/1000 + time);
HeroInfoProto.ResonanceResponse resonanceResponse = HeroInfoProto.ResonanceResponse
.newBuilder() HeroInfoProto.ResonanceResponse resonanceResponse = HeroInfoProto.ResonanceResponse.newBuilder().setLeftTime(time).build();
.setLeftTime(SSpecialConfig.getIntegerValue(SSpecialConfig.HONGMENG_LATTICE_WAIT_TIME))
.build();
MessageUtil.sendMessage(session, 1, messageType.getNumber(), resonanceResponse); MessageUtil.sendMessage(session, 1, messageType.getNumber(), resonanceResponse);
} }
@ -3867,6 +3902,7 @@ public class HeroLogic{
public void cleanTime(ISession session, MessageTypeProto.MessageType messageType, int index, int type) throws Exception { public void cleanTime(ISession session, MessageTypeProto.MessageType messageType, int index, int type) throws Exception {
User user = UserManager.getUser(session.getUid()); User user = UserManager.getUser(session.getUid());
HeroManager heroManager = user.getHeroManager(); HeroManager heroManager = user.getHeroManager();
long now = TimeUtils.now()/1000;
if (type == 1) { if (type == 1) {
Map<Integer, String> resonances = heroManager.getResonances(); Map<Integer, String> resonances = heroManager.getResonances();
String resonanceInfo = resonances.get(index); String resonanceInfo = resonances.get(index);
@ -3876,12 +3912,12 @@ public class HeroLogic{
} }
Map<Integer, Long> resonancesTime = heroManager.getResonancesTime(); Map<Integer, Long> resonancesTime = heroManager.getResonancesTime();
Long unloadTime = resonancesTime.get(index); Long unloadTime = resonancesTime.get(index);
if (unloadTime == null || unloadTime <= TimeUtils.now()) { if (unloadTime == null || unloadTime <= now) {
LOGGER.info("cleanTime uid=>{} time =>{}", user.getId(), unloadTime); LOGGER.info("cleanTime uid=>{} time =>{}", user.getId(), unloadTime);
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF); throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF);
} }
String[] stringValue = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_LATTICE_PRICE).split("#"); String[] stringValue = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_LATTICE_PRICE).split("#");
long time = (unloadTime - TimeUtils.now())/1000; long time = (unloadTime - now);
int count = (int) (time / Integer.parseInt(stringValue[0]) *Integer.parseInt(stringValue[2]) ); int count = (int) (time / Integer.parseInt(stringValue[0]) *Integer.parseInt(stringValue[2]) );
Map<Integer, Integer> cost = new HashMap<>(1); Map<Integer, Integer> cost = new HashMap<>(1);
cost.put(Integer.parseInt(stringValue[1]), count); cost.put(Integer.parseInt(stringValue[1]), count);
@ -3891,7 +3927,7 @@ public class HeroLogic{
throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH);
} }
ItemUtil.itemCost(user, cost, BIReason.CLEAR_HONGMENG_GRAID, index); ItemUtil.itemCost(user, cost, BIReason.CLEAR_HONGMENG_GRAID, index);
heroManager.updateResonancesTime(index, 0L); heroManager.updateResonancesTime(index, 0);
} else { } else {
if (heroManager.getHongmengTablet() == 0) { if (heroManager.getHongmengTablet() == 0) {
LOGGER.info("cleanTime uid=>{} the HongmengTablet not open=>{}", user.getId(), index); LOGGER.info("cleanTime uid=>{} the HongmengTablet not open=>{}", user.getId(), index);
@ -3905,13 +3941,13 @@ public class HeroLogic{
} }
Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime(); Map<Integer, Long> hongmengGuardTime = heroManager.getHongmengGuardTime();
Long unloadTime = hongmengGuardTime.get(index); Long unloadTime = hongmengGuardTime.get(index);
if (unloadTime == null || unloadTime <= TimeUtils.now()) { if (unloadTime == null || unloadTime <= now) {
LOGGER.info("cleanTime uid=>{} time =>{}", user.getId(), unloadTime); LOGGER.info("cleanTime uid=>{} time =>{}", user.getId(), unloadTime);
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF); throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF);
} }
String[] stringValue = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_LATTICE_PRICE).split("#"); String[] stringValue = SSpecialConfig.getStringValue(SSpecialConfig.HONGMENG_LATTICE_PRICE).split("#");
long time = unloadTime - TimeUtils.now(); long time = unloadTime - now;
int count = (int) (time / 1000 * Integer.parseInt(stringValue[0])); int count = (int) (time * Integer.parseInt(stringValue[0]));
Map<Integer, Integer> cost = new HashMap<>(1); Map<Integer, Integer> cost = new HashMap<>(1);
cost.put(Integer.parseInt(stringValue[1]), count); cost.put(Integer.parseInt(stringValue[1]), count);
boolean checkCost = ItemUtil.checkCost(user, cost); boolean checkCost = ItemUtil.checkCost(user, cost);
@ -3995,7 +4031,7 @@ public class HeroLogic{
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF); throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF);
} }
Map<Integer, Long> resonancesTime = heroManager.getHongmengGuardTime(); Map<Integer, Long> resonancesTime = heroManager.getHongmengGuardTime();
if (resonancesTime.get(index) != null && resonancesTime.get(index) > TimeUtils.now()) { if (resonancesTime.get(index) != null && resonancesTime.get(index) > TimeUtils.now()/1000) {
LOGGER.info("addHongmengTableHero uid=>{} time =>{}", user.getId(), resonancesTime.get(index)); LOGGER.info("addHongmengTableHero uid=>{} time =>{}", user.getId(), resonancesTime.get(index));
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF); throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF);
} }
@ -4031,7 +4067,7 @@ public class HeroLogic{
throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF); throw new ErrorCodeException(ErrorCode.SERVER_DEFINE_SELF);
} }
heroManager.updateHongmengGuards(index, ""); heroManager.updateHongmengGuards(index, "");
heroManager.updateHongmengGuardTime(index, TimeUtils.now() + SSpecialConfig.getIntegerValue(SSpecialConfig.HONGMENG_LATTICE_WAIT_TIME) * 1000); heroManager.updateHongmengGuardTime(index, TimeUtils.now()/1000 + SSpecialConfig.getIntegerValue(SSpecialConfig.HONGMENG_LATTICE_WAIT_TIME));
HeroInfoProto.ResonanceResponse resonanceResponse = HeroInfoProto.ResonanceResponse HeroInfoProto.ResonanceResponse resonanceResponse = HeroInfoProto.ResonanceResponse
.newBuilder() .newBuilder()
.setLeftTime(SSpecialConfig.getIntegerValue(SSpecialConfig.HONGMENG_LATTICE_WAIT_TIME)) .setLeftTime(SSpecialConfig.getIntegerValue(SSpecialConfig.HONGMENG_LATTICE_WAIT_TIME))

View File

@ -544,9 +544,6 @@ public class ItemLogic {
ReportUtil.onReportEvent(user, ReportEventEnum.SEND_HERO.getType(),heroIdReport,heroLevelReport,heroStarReport,new ArrayList<>(baseItemMap.keySet()),new ArrayList<>(baseItemMap.values())); ReportUtil.onReportEvent(user, ReportEventEnum.SEND_HERO.getType(),heroIdReport,heroLevelReport,heroStarReport,new ArrayList<>(baseItemMap.keySet()),new ArrayList<>(baseItemMap.values()));
} }
//鸿蒙阵
HeroLogic.getInstance().addOrUpdateHongmeng(iSession);
return ItemUtil.drop(user,itemReturnPercent(itemArray,rankUpReturnPercent),reson); return ItemUtil.drop(user,itemReturnPercent(itemArray,rankUpReturnPercent),reson);
} }