From c536c8c6a5860eeab63a7fb3117ef0a599e11525 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 22 Oct 2019 14:06:50 +0800 Subject: [PATCH 1/6] fix adventure reward --- .../com/ljsd/jieling/handler/GameGM/GMRequestHandler.java | 1 + .../java/com/ljsd/jieling/logic/fight/CombatLogic.java | 8 -------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java index 2af1cdd94..df2d5eed4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GameGM/GMRequestHandler.java @@ -141,6 +141,7 @@ public class GMRequestHandler extends BaseHandler{ break; } } + break; case GlobalGm.ADOPT_FIGHT_BY_VALUE: int fightId = cUser.getMainLevelManager().getFightId(); if(SMainLevelConfig.biggerThanFight(fightId,prarm1)){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java index 76ebfa3c0..2ffb3a43e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/fight/CombatLogic.java @@ -251,14 +251,6 @@ public class CombatLogic { } int fightId = mainLevelManager.getFightId(); SMainLevelConfig targetMainLevelConfig = SMainLevelConfig.config.get(fightId); - if(mainLevelManager.getState()==-1){ - for( SMainLevelConfig sMainLevelConfig : SMainLevelConfig.config.values() ){ - if(sMainLevelConfig.getNextLevel() == mainLevelManager.getFightId()){ - targetMainLevelConfig = sMainLevelConfig; - break; - } - } - } int lastTime = mainLevelManager.getLastTime(); int now = (int) (System.currentTimeMillis() / 1000); int times = (now - lastTime)/STableManager.getFigureConfig(CommonStaticConfig.class).getGameSetting().getAdventureRefresh(); From 49453817c2dd0d42abe105f2597e79083fe10183 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 23 Oct 2019 22:12:14 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E8=83=8C=E5=8C=85=E5=B7=B2=E6=BB=A1?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ljsd/jieling/util/ItemUtil.java | 57 +++++++++++++++---- 1 file changed, 47 insertions(+), 10 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java index 1b90691b4..311715312 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -37,6 +37,7 @@ import util.TimeUtils; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.stream.Collectors; public class ItemUtil { private static Map dropRewardMap = new ConcurrentHashMap<>(); @@ -918,6 +919,24 @@ public class ItemUtil { StringBuilder reward = new StringBuilder(); List equipList = new CopyOnWriteArrayList<>(); List especialEquip = new CopyOnWriteArrayList<>(); + int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EquipTalismana_limit); + if(equipMap.entrySet().stream().filter(k ->{ + int itemType = SItem.getsItemMap().get(k.getKey()).getItemType(); + if(itemType==GlobalItemType.ESPECIAL_EQUIP){ + return true; + } + return false; + }).collect(Collectors.toSet()).size()>0){ + if (user.getEquipManager().getEspecialEquipMap().size() >=limit){ + String bagTitle = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_title"); + String bagContent = SErrorCodeEerverConfig.getI18NMessage("EquipTalismana_bag_limit_txt"); + String bagReward = getLimitReward(equipMap,filter); + int nowTime =(int) (TimeUtils.now()/1000); + MailLogic.getInstance().sendMail(user.getId(),bagTitle,bagContent,bagReward,nowTime,Global.MAIL_EFFECTIVE_TIME); + MessageUtil.nofityBagIsFull(user); + return; + } + } for (Map.Entry entry : equipMap.entrySet()) { int itemType = SItem.getsItemMap().get(entry.getKey()).getItemType(); if(!filter.contains(itemType)){ @@ -955,17 +974,35 @@ public class ItemUtil { List equipList = new CopyOnWriteArrayList<>(); List filter = new ArrayList<>(); filter.add(GlobalItemType.SOUL_MARK); - int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT); - if (user.getEquipManager().getSoulEquipMap().size() >=limit){ - String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title"); - String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt"); - String reward = getLimitReward(equipMap,filter); - int nowTime =(int) (TimeUtils.now()/1000); - MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME); - MessageUtil.nofityBagIsFull(user); - return; - } +// int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT); +// if (user.getEquipManager().getSoulEquipMap().size() >=limit){ +// String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title"); +// String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt"); +// String reward = getLimitReward(equipMap,filter); +// int nowTime =(int) (TimeUtils.now()/1000); +// MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME); +// MessageUtil.nofityBagIsFull(user); +// return; +// } + if(equipMap.entrySet().stream().filter(k ->{ + int itemType = SItem.getsItemMap().get(k.getKey()).getItemType(); + if(itemType==GlobalItemType.SOUL_MARK){ + return true; + } + return false; + }).collect(Collectors.toSet()).size()>0){ + int limit = SSpecialConfig.getIntegerValue(SSpecialConfig.EQUIPSIGN_LIMIT); + if (user.getEquipManager().getSoulEquipMap().size() >=limit){ + String title = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("EquipSign_bag_limit_txt"); + String reward = getLimitReward(equipMap,filter); + int nowTime =(int) (TimeUtils.now()/1000); + MailLogic.getInstance().sendMail(user.getId(),title,content,reward,nowTime,Global.MAIL_EFFECTIVE_TIME); + MessageUtil.nofityBagIsFull(user); + return; + } + } for (Map.Entry entry : equipMap.entrySet()) { int itemType = SItem.getsItemMap().get(entry.getKey()).getItemType(); if(itemType!=GlobalItemType.SOUL_MARK){ From e5a1eb23cfa4221de537f925587aa61b2c8f341d Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 23 Oct 2019 23:37:04 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=88=98=E6=96=97=E5=90=8C=E6=AD=A50.94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Battle/Logic/Base/Passivity.lua | 12 ++++---- luafight/Modules/Battle/Logic/Base/Skill.lua | 29 +++++++++++++------ luafight/Modules/Battle/Logic/BattleLogic.lua | 3 -- .../Modules/Battle/Logic/Misc/BattleUtil.lua | 13 +++++++-- 4 files changed, 37 insertions(+), 20 deletions(-) diff --git a/luafight/Modules/Battle/Logic/Base/Passivity.lua b/luafight/Modules/Battle/Logic/Base/Passivity.lua index 11140edb4..8b33d9a82 100644 --- a/luafight/Modules/Battle/Logic/Base/Passivity.lua +++ b/luafight/Modules/Battle/Logic/Base/Passivity.lua @@ -1124,19 +1124,19 @@ local passivityList = { end role.Event:AddEvent(BattleEventName.RoleBeHit, OnBeHit) end, - --发动技能后,有[a]的概率为自身及相邻加持攻击[b]%的护盾,持续[c]秒。 - --a[float],b[float],c[int] + --发动技能后,有[a]的概率为自身及相邻加持[b][c]%的护盾,持续[d]秒。 + --a[float],b[属性],c[float],d[int] [62] = function(role, args) local f1 = args[1] - local f2 = args[2] - local f3 = args[3] + local pro = args[2] + local f2 = args[3] + local f3 = args[4] local OnSkillCastEnd = function(skill) BattleUtil.RandomAction(f1, function () - role:AddBuff(Buff.Create(role, BuffName.Shield, f3, floor(role:GetRoleData(RoleDataName.Attack) * f2), 0)) local list = BattleLogic.GetNeighbor(role, 1) for i=1, #list do - list[i]:AddBuff(Buff.Create(role, BuffName.Shield, f3, floor(role:GetRoleData(RoleDataName.Attack) * f2), 0)) + list[i]:AddBuff(Buff.Create(role, BuffName.Shield, f3, floor(role:GetRoleData(propertyList[pro]) * f2), 0)) end end) end diff --git a/luafight/Modules/Battle/Logic/Base/Skill.lua b/luafight/Modules/Battle/Logic/Base/Skill.lua index f47f03014..760049e17 100644 --- a/luafight/Modules/Battle/Logic/Base/Skill.lua +++ b/luafight/Modules/Battle/Logic/Base/Skill.lua @@ -141,17 +141,28 @@ function Skill:Cast() end if not self.isTeamSkill then - if self.owner.superSkill == self then - --绝技读条时间=max(9-速度/(8*(等级+10)),3) - local time = max(9-self.owner:GetRoleData(RoleDataName.Speed)/(8*(self.owner:GetRoleData(RoleDataName.Level)+10)), 3) - self.owner.sp = 0 - self.owner.spPass = floor(BattleUtil.ErrorCorrection(time) * BattleLogic.GameFrameRate) + local type = BattleLogic.Type + local isPVEMonster = self.owner.camp == 1 and (type == 1 or type == 2 or type == 4 or type == 5) + local time = 0 + if isPVEMonster then + if self.owner.superSkill == self then + --怪物绝技读条时间=max(10-速度/(8*(等级+10)),2) + time = max(10-self.owner:GetRoleData(RoleDataName.Speed)/(8*(self.owner:GetRoleData(RoleDataName.Level)+10)), 2) + else + --怪物普技读条时间==max(9-速度/(8*(等级+10)),1) + time = max(9-self.owner:GetRoleData(RoleDataName.Speed)/(8*(self.owner:GetRoleData(RoleDataName.Level)+10)), 1) + end else - --普技读条时间=max(7-速度/(8*(等级+10)),1.5) - local time = max(7-self.owner:GetRoleData(RoleDataName.Speed)/(8*(self.owner:GetRoleData(RoleDataName.Level)+10)), 1.5) - self.owner.sp = 0 - self.owner.spPass = floor(BattleUtil.ErrorCorrection(time) * BattleLogic.GameFrameRate) + if self.owner.superSkill == self then + --绝技读条时间=max(9-速度/(8*(等级+10)),3) + time = max(9-self.owner:GetRoleData(RoleDataName.Speed)/(8*(self.owner:GetRoleData(RoleDataName.Level)+10)), 3) + else + --普技读条时间=max(7-速度/(8*(等级+10)),1.5) + time = max(7-self.owner:GetRoleData(RoleDataName.Speed)/(8*(self.owner:GetRoleData(RoleDataName.Level)+10)), 1.5) + end end + self.owner.sp = 0 + self.owner.spPass = floor(BattleUtil.ErrorCorrection(time) * BattleLogic.GameFrameRate) else self.owner.curSkill = self end diff --git a/luafight/Modules/Battle/Logic/BattleLogic.lua b/luafight/Modules/Battle/Logic/BattleLogic.lua index fe2f973f7..8d49d811a 100644 --- a/luafight/Modules/Battle/Logic/BattleLogic.lua +++ b/luafight/Modules/Battle/Logic/BattleLogic.lua @@ -9,9 +9,6 @@ local curUid local curBuffId local curFrame -local playerMP -local enemyMP - local playerSkillUsable local enemySkillUsable diff --git a/luafight/Modules/Battle/Logic/Misc/BattleUtil.lua b/luafight/Modules/Battle/Logic/Misc/BattleUtil.lua index fc93ab5fe..c42ea0352 100644 --- a/luafight/Modules/Battle/Logic/Misc/BattleUtil.lua +++ b/luafight/Modules/Battle/Logic/Misc/BattleUtil.lua @@ -230,6 +230,7 @@ function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor, ignoreDe local baseDamage ignoreDef = 1 - (ignoreDef or 0) bCrit = Random.Range01() <= clamp(atkRole:GetRoleData(RoleDataName.Crit)-defRole:GetRoleData(RoleDataName.Tenacity), 0, 1) + bCrit = bCrit or defRole.isFlagCrit == true local defence = 0 if damageType == 1 then --1 物理 2 魔法 defence = defRole:GetRoleData(RoleDataName.PhysicalDefence) @@ -238,7 +239,7 @@ function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor, ignoreDe end local attack = atkRole:GetRoleData(RoleDataName.Attack) --计算暴击 - if bCrit or defRole.isFlagCrit then + if bCrit then local critDamageFactor = atkRole:GetRoleData(RoleDataName.CritDamageFactor) --加入被动效果 local critFunc = function(critEx) critDamageFactor = critEx end @@ -267,7 +268,15 @@ function BattleUtil.CalDamage(atkRole, defRole, damageType, baseFactor, ignoreDe baseDamage = BattleUtil.FP_Mul(baseDamage, baseFactor, 1 + atkRole:GetRoleData(RoleDataName.DamageBocusFactor) - defRole:GetRoleData(RoleDataName.DamageReduceFactor), (1 + atkRole:GetRoleData(RoleDataName.ElementDamageBocusFactor) - defRole:GetRoleData(elementDamageReduceFactor))) - baseDamage = floor(max(baseDamage, 0.1 * attack)) + + --属性克制关系:光暗互克,地克风克水克火克地 + local restrain = atkRole.element == 1 and defRole.element == 4 or + atkRole.element == 4 and defRole.element == 2 or + atkRole.element == 2 and defRole.element == 3 or + atkRole.element == 3 and defRole.element == 1 or + atkRole.element == 5 and defRole.element == 6 or + atkRole.element == 6 and defRole.element == 5 + baseDamage = restrain and floor(max(baseDamage*1.5, 0.1*attack)) or floor(max(baseDamage, 0.1*attack)) for i=1, atkRole.exCalDmgList.size do local func = atkRole.exCalDmgList.buffer[i] From 3fad81a218155d42c35060d47805c290b9fcd5a2 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Thu, 24 Oct 2019 00:11:43 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E5=85=AC=E4=BC=9A=E6=88=98=E5=AE=89?= =?UTF-8?q?=E6=85=B0=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/family/GuildFightLogic.java | 11 +++++++++++ tablemanager/src/main/java/config/SGuildSetting.java | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java index 4287f30e7..6fcb755b2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildFightLogic.java @@ -834,6 +834,17 @@ public class GuildFightLogic { if(zsetreverseRangeWithScores.size()<1){ continue; } + Map defendInfo = guildInfo.getDefendInfo(); + String particapateReward = SGuildSetting.sGuildSetting.getParticipation(); + for(Integer uid:defendInfo.keySet()){ + Integer attackCount = redisUtil.getMapEntry(RedisKey.FAMILY_FIGHT_ATTACK_COUNT,"",String.valueOf(uid),Integer.class); + if(attackCount!=null&&attackCount>0){ + continue; + } + String title = SErrorCodeEerverConfig.getI18NMessage("family_fight_reward_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("family_fight_reward_txt"); + MailLogic.getInstance().sendMail(uid,title,content,particapateReward,(int) (TimeUtils.now()/1000), Global.MAIL_EFFECTIVE_TIME); + } Iterator> it = zsetreverseRangeWithScores.iterator(); int userRank = 0; int userResultRank = 0; diff --git a/tablemanager/src/main/java/config/SGuildSetting.java b/tablemanager/src/main/java/config/SGuildSetting.java index 03819eee6..511b0990d 100644 --- a/tablemanager/src/main/java/config/SGuildSetting.java +++ b/tablemanager/src/main/java/config/SGuildSetting.java @@ -62,6 +62,8 @@ public class SGuildSetting implements BaseConfig { private int recruitCD; + private String participation; + public static SGuildSetting sGuildSetting; @@ -183,4 +185,8 @@ public class SGuildSetting implements BaseConfig { public int getRecruitCD() { return recruitCD; } + + public String getParticipation() { + return participation; + } } \ No newline at end of file From 5ed723c9da0dd7990e6bdc2b418e58eaecab9252 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 23 Oct 2019 14:48:40 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E5=89=AF=E6=9C=AC?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/handler/map/MapLogic.java | 137 +++++++++--------- .../jieling/logic/GlobalDataManaager.java | 2 +- 2 files changed, 71 insertions(+), 68 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java index ef5963895..46ab50eaa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/MapLogic.java @@ -1235,7 +1235,10 @@ public class MapLogic { } int groupId = option[0]; if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4) { - groupId =STableManager.getFigureConfig(MapStaticConfig.class).getDifficultyMonster().get(groupId); + Integer newGroupId= STableManager.getFigureConfig(MapStaticConfig.class).getDifficultyMonster().get(groupId); + if(newGroupId!=null){ + groupId = newGroupId; + } } int destoryXY = mapManager.getTriggerXY(); CommonProto.FightTeamInfo fightTeamInfo = BehaviorUtil.getFightTeamInfo(user, mapManager.getTeamId(), true); @@ -1277,14 +1280,13 @@ public class MapLogic { if (resultCode == 0) { //todo 无尽副本不复活记得改回去 if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4) { -// //无尽副本复活消耗 +// //无尽副本复活消耗 reviveConsumeExecution(user); - } -// for(Map.Entry> entry: mapManager.getHeroAllAttributeMap().entrySet()){ -// mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0); -// mapManager.updateEndlessHeroHp(entry.getKey(),0); -// } -// }else { + for(Map.Entry> entry: mapManager.getHeroAllAttributeMap().entrySet()){ + mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0); + mapManager.updateEndlessHeroHp(entry.getKey(),0); + } + }else { // 失败需要等待n秒后复活所有英雄 int dieCount = user.getMapManager().getDieCount(); dieCount++; @@ -1308,7 +1310,7 @@ public class MapLogic { remainHp.add(heroAttributeMap.get(HeroAttributeEnum.CurHP.getPropertyId())); } } -// } + } CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); FightInfoProto.FastFightResponse build = FightInfoProto.FastFightResponse .newBuilder() @@ -1515,67 +1517,67 @@ public class MapLogic { mapManager.setLastFightResult(resultCode); if (resultCode == 0 || dropout == 1) { //todo 无尽副本复活 - if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ + if (SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType() == 4) { //无尽副本复活消耗 reviveConsumeExecution(user); -// for(Map.Entry> entry: mapManager.getHeroAllAttributeMap().entrySet()){ -// mapManager.updateHeroOneAttribute(entry.getKey(),HeroAttributeEnum.CurHP.getPropertyId(),0); -// mapManager.updateEndlessHeroHp(entry.getKey(),0); -// } - } -// else{ - // 失败需要等待n秒后复活所有英雄 - int dieCount = user.getMapManager().getDieCount(); - dieCount++; - user.getMapManager().setDieCount(dieCount); - int[] reviveTime = sChallengeConfig.getReviveTime(); - long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); - user.getMapManager().setCanMoveTime(TimeUtils.now() + time); - int leftTime = getLeftTime(user, true); - remainHp.clear(); - if (leftTime <= (int) (time / 1000)) { - resetMapInfo(user, false); + for (Map.Entry> entry : mapManager.getHeroAllAttributeMap().entrySet()) { + mapManager.updateHeroOneAttribute(entry.getKey(), HeroAttributeEnum.CurHP.getPropertyId(), 0); + mapManager.updateEndlessHeroHp(entry.getKey(), 0); + } } else { - initTeamInfo(mapManager.getTeamId(), uid, user, mapManager,2); - Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); - List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); - for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { - Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); - if (hero == null) { - continue; + // 失败需要等待n秒后复活所有英雄 + int dieCount = user.getMapManager().getDieCount(); + dieCount++; + user.getMapManager().setDieCount(dieCount); + int[] reviveTime = sChallengeConfig.getReviveTime(); + long time = (long) (MathUtils.calABX(dieCount, reviveTime) * 1000); + user.getMapManager().setCanMoveTime(TimeUtils.now() + time); + int leftTime = getLeftTime(user, true); + remainHp.clear(); + if (leftTime <= (int) (time / 1000)) { + resetMapInfo(user, false); + } else { + initTeamInfo(mapManager.getTeamId(), uid, user, mapManager, 2); + Map> heroAllAttributeMap = mapManager.getHeroAllAttributeMap(); + List teamPosHeroInfos = user.getTeamPosManager().getTeamPosForHero().get(mapManager.getTeamId()); + for (TeamPosHeroInfo heroInfo : teamPosHeroInfos) { + Hero hero = user.getHeroManager().getHero(heroInfo.getHeroId()); + if (hero == null) { + continue; + } + remainHp.add(heroAllAttributeMap.get(hero.getId()).get(HeroAttributeEnum.CurHP.getPropertyId())); } - remainHp.add(heroAllAttributeMap.get(hero.getId()).get(HeroAttributeEnum.CurHP.getPropertyId())); } } - CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); - FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse - .newBuilder(); - fightEndResponse.setResult(resultCode); - fightEndResponse.setEnventDrop(dropBuilder); - fightEndResponse.addAllRemainHpList(remainHp); - fightEndResponse.setLastXY(mapManager.getLastXY()); - mapManager.setCurXY(mapManager.getLastXY()); - if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==2){ - fightEndResponse.setLastTowerTime((int)(mapManager.getCurrTowerTime()/1000)); - } + CommonProto.Drop.Builder dropBuilder = CommonProto.Drop.newBuilder(); + FightInfoProto.FightEndResponse.Builder fightEndResponse = FightInfoProto.FightEndResponse + .newBuilder(); + fightEndResponse.setResult(resultCode); + fightEndResponse.setEnventDrop(dropBuilder); + fightEndResponse.addAllRemainHpList(remainHp); + fightEndResponse.setLastXY(mapManager.getLastXY()); + mapManager.setCurXY(mapManager.getLastXY()); + if (SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType() == 2) { + fightEndResponse.setLastTowerTime((int) (mapManager.getCurrTowerTime() / 1000)); + } - if(sOptionConfig!=null){ - int[][] jumpTypeValues = sOptionConfig.getJumpTypeValues(); - if(jumpTypeValues.length>0 && sOptionConfig.getJumpType() == 3){ - SOptionAddCondition sOptionAddConditions = SOptionAddCondition.sOptionAddConditionMap.get(jumpTypeValues[1][1]); - if(sOptionAddConditions!=null && sOptionAddConditions.getType() == 7){ - Cell cell = mapManager.getMapInfo().get(triggerXY); - if (cell != null ) { - nextEventId = getNextEventId(user, cell, sOptionConfig); - cell.setEventId(nextEventId); - mapManager.addOrUpdateCell(triggerXY, cell); - fightEndResponse.setEventId(nextEventId); + if (sOptionConfig != null) { + int[][] jumpTypeValues = sOptionConfig.getJumpTypeValues(); + if (jumpTypeValues.length > 0 && sOptionConfig.getJumpType() == 3) { + SOptionAddCondition sOptionAddConditions = SOptionAddCondition.sOptionAddConditionMap.get(jumpTypeValues[1][1]); + if (sOptionAddConditions != null && sOptionAddConditions.getType() == 7) { + Cell cell = mapManager.getMapInfo().get(triggerXY); + if (cell != null) { + nextEventId = getNextEventId(user, cell, sOptionConfig); + cell.setEventId(nextEventId); + mapManager.addOrUpdateCell(triggerXY, cell); + fightEndResponse.setEventId(nextEventId); + } } } } - } - MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); - return; + MessageUtil.sendMessage(session, 1, messageType.getNumber(), fightEndResponse.build(), true); + return; } for (int i = 2; i < checkResult.length; i++) { if (checkResult[i] <= 0) { @@ -1588,13 +1590,14 @@ public class MapLogic { List team = user.getTeamPosManager().getTeamPosForHero().get(teamId); if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4&&teamId==401){ mapManager.updateEndlessFightCount(mapManager.getEndlessMapInfo().getFightCount()+1); - for (int i = 0 ; i heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); - int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000); - mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per); - mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); - + if(checkResult[0]>0){ + for (int i = 0 ; i heroAllAttribute = HeroLogic.getInstance().calHeroNotBufferAttribute(user, hero,false,teamId); + int per =(int) (checkResult[i+2] / (double) heroAllAttribute.get(HeroAttributeEnum.Hp.getPropertyId())*10000); + mapManager.updateEndlessHeroHp(team.get(i).getHeroId(),per); + mapManager.updateHeroOneAttribute(team.get(i).getHeroId(), HeroAttributeEnum.CurHP.getPropertyId(), checkResult[i+2]); + } } // if(!cacheRemove.isEmpty()){ // Iterator iterator = team.iterator(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index da94017c0..4caef3e30 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -386,7 +386,7 @@ public class GlobalDataManaager { } int size = (int)(users.size()*0.85); if(size ==0){ - return -1; + return 1; } int level = 0; for(int i = 0 ; i Date: Wed, 23 Oct 2019 15:11:53 +0800 Subject: [PATCH 6/6] fix adventure rewrd --- .../main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java index c0139379b..2ba323db0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/MainLevelManager.java @@ -77,8 +77,8 @@ public class MainLevelManager extends MongoBase { this.lastTime = now; }else{ int adventureRefresh = gameSetting.getAdventureRefresh(); - this.startTime = startTime+hadTakeTimes*adventureRefresh; this.lastTime = lastTime+lastTakes*adventureRefresh; + this.startTime = lastTime; } updateString("lastTime",state);