diff --git a/luafight/Modules/Battle/Logic/Base/Passivity.lua b/luafight/Modules/Battle/Logic/Base/Passivity.lua index 91ffc76f7..57641fc1b 100644 --- a/luafight/Modules/Battle/Logic/Base/Passivity.lua +++ b/luafight/Modules/Battle/Logic/Base/Passivity.lua @@ -1434,5 +1434,58 @@ local passivityList = { end role.Event:AddEvent(BattleEventName.RoleBeDamaged, OnBeDamaged) end, + --战斗中,若自己是[a],[d]改变[b]属性[c]。 + --a[职业],b[属性],c[float],d[改变类型] + [76] = function(role, args) + local i1 = args[1] + local pro = args[2] + local f1 = args[3] + local ct = args[4] + + if role.roleData.professionId == i1 then + if ct == 1 then --加算 + role.data:AddValue(propertyList[pro], f1) + elseif ct == 2 then --乘加算(百分比属性加算) + role.data:AddPencentValue(propertyList[pro], f1) + elseif ct == 3 then --减算 + role.data:SubValue(propertyList[pro], f1) + elseif ct == 4 then --乘减算(百分比属性减算) + role.data:SubPencentValue(propertyList[pro], f1) + end + end + end, + --战斗开始时,为自身施加[a]*[b]的护盾,持续[c]秒(0为无限)。 + --a[属性],b[float],c[int] + [77] = function(role, args) + local pro1 = args[1] + local f1 = args[2] + local f2 = args[3] + + local val = floor(BattleUtil.FP_Mul(f1, role:GetRoleData(propertyList[pro1]))) + role:AddBuff(Buff.Create(role, BuffName.Shield, f2, val, 0)) + end, + --战斗开始时,为自身回复[a]*[b]的血量。 + --a[属性],b[float] + [78] = function(role, args) + local pro = args[1] + local f1 = args[2] + + local val = floor(BattleUtil.FP_Mul(f1, role:GetRoleData(propertyList[pro]))) + BattleUtil.CalTreat(role, role, val) + end, + --战斗结束时,为自身回复[a]*[b]的血量。 + --a[属性],b[float] + [79] = function(role, args) + local pro = args[1] + local f1 = args[2] + + local OnEnd = function(order) + if order == BattleLogic.TotalOrder then + local val = floor(BattleUtil.FP_Mul(f1, role:GetRoleData(propertyList[pro]))) + BattleUtil.CalTreat(role, role, val) + end + end + BattleLogic.Event:AddEvent(BattleEventName.BattleOrderEnd, OnEnd) + end, } return passivityList \ No newline at end of file diff --git a/luafight/Modules/Battle/Logic/BattleLogic.lua b/luafight/Modules/Battle/Logic/BattleLogic.lua index ddd6f670c..7780fd827 100644 --- a/luafight/Modules/Battle/Logic/BattleLogic.lua +++ b/luafight/Modules/Battle/Logic/BattleLogic.lua @@ -439,7 +439,7 @@ function BattleLogic.Update() end end end - if bEnemyAllDead and BattleLogic.CurOrder < BattleLogic.TotalOrder then + if bEnemyAllDead then BattleLogic.Event:DispatchEvent(BattleEventName.BattleOrderEnd, BattleLogic.CurOrder) end end diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java index 414fd547f..01d7fd6b4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/LimitRandomCardActivity.java @@ -60,7 +60,7 @@ public class LimitRandomCardActivity extends AbstractActivity { randomRank.addRank(cardEvent.getUid(),String.valueOf(id),scoreById+cardEvent.getScore()); Predicate pre = a-> (SCHero.getHeroByPieceId(a[0])!=null&&SCHero.getHeroByPieceId(a[0]).getNatural()>=13); - Consumer consumer = a->RankContext.getRankEnum(RankEnum.RANDOM_CARD_PERFECT_RANK.getType()).addRank(cardEvent.getUid(),String.valueOf(id), TimeUtils.now()/1000,a[0]); + Consumer consumer = a->RankContext.getRankEnum(RankEnum.RANDOM_CARD_PERFECT_RANK.getType()).addRank(cardEvent.getUid(),String.valueOf(id), TimeUtils.now()/1000,a[0],a[1]); Stream.of(cardEvent.getHeros()).filter(pre).forEach(consumer); update(UserManager.getUser(cardEvent.getUid()),cardEvent.getScore()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index 65e1a1ca9..29b55de3f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -546,7 +546,7 @@ public class ChampionshipLogic { MemberInfo memberInfo = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_JOIN, "", Integer.toString(uid), MemberInfo.class); FamilyFightInfo fightInfo = memberInfo.getFightInfo(); if(fightInfo == null || progress%10%4 == 0){ - return PlayerLogic.getInstance().getUserTeamOneInfo(uid,201); + return PlayerLogic.getInstance().getUserTeamOneInfo(uid,GlobalsDef.TEAM_ARENA_DEFENSE); } User user = UserManager.getUser(uid); @@ -716,7 +716,7 @@ public class ChampionshipLogic { public static void snapOneFightInfo(int uid,Map joinMembers) throws Exception { - int snapTeamId = 201; + int snapTeamId = GlobalsDef.TEAM_ARENA_DEFENSE; Map config = STableManager.getConfig(SArenaRobotConfig.class); if(config.containsKey(uid)){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index e5d32dcfc..f7544955a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -1,6 +1,5 @@ package com.ljsd.jieling.logic.family; -import com.google.gson.Gson; import com.google.protobuf.GeneratedMessage; import com.ljsd.GameApplication; import com.ljsd.jieling.core.GlobalsDef; @@ -21,7 +20,6 @@ import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankEnum; -import com.ljsd.jieling.logic.rank.RankLogic; import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.session.ISession; @@ -35,13 +33,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import util.StringUtil; import util.TimeUtils; -import util.CellUtil; import java.util.*; public class GuildLogic { private static final Logger LOGGER = LoggerFactory.getLogger(GuildLogic.class); - private static Gson gson = new Gson(); public static int getMemberType(int targetUid, Map> members ){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index fb2a6b489..91a0f9c4a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -1924,7 +1924,7 @@ public class HeroLogic{ } Map sDifferDemonsComonpentsConfigMap = SDifferDemonsComonpentsConfig.getsDifferDemonsComonpentsConfigMap(comonpentId); - if(!sDifferDemonsComonpentsConfigMap.containsKey(oldLevel)){ + if(!sDifferDemonsComonpentsConfigMap.containsKey(oldLevel) || !sDifferDemonsComonpentsConfigMap.containsKey(oldLevel+1)){ LOGGER.info("the pokenId={},the comId={},sDifferDemonsConfig={},the oldLevel={}",pokemonId,comonpentId,oldLevel); return true; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/RandomCardPerfectRank.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/RandomCardPerfectRank.java index 6c04647fa..96b1c4d1e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/RandomCardPerfectRank.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankImpl/RandomCardPerfectRank.java @@ -33,7 +33,7 @@ public class RandomCardPerfectRank extends AbstractRank { doubles[2] = uid; // data[0]+"_"+data[1]+"_"+RedisUtil.getInstence().incrementZsetScore() Gson gson = new Gson(); - String heroKey = gson.toJson(new RandomCardSpecialKey(uid, Double.valueOf(data[1]).intValue(), RedisUtil.getInstence().incr("incr_Card", 1))); + String heroKey = gson.toJson(new RandomCardSpecialKey(uid, Double.valueOf(data[1]).intValue(),Double.valueOf(data[2]).intValue(),RedisUtil.getInstence().incr("incr_Card", 1))); RedisUtil.getInstence().zsetAddOne(key, heroKey, getScore(doubles)); } @@ -47,7 +47,7 @@ public class RandomCardPerfectRank extends AbstractRank { .setRank(index) .setParam1(getParam1(data.getScore())) .setParam2(randomCardSpecialKey.getHeroId()) - .setParam3(0) + .setParam3(randomCardSpecialKey.getHeroNum()) .build(); int guildId = everyUser.getPlayerInfoManager().getGuildId(); String familyName = ""; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankKey/RandomCardSpecialKey.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankKey/RandomCardSpecialKey.java index 5cc38c398..a40df07ea 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankKey/RandomCardSpecialKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/rank/rankKey/RandomCardSpecialKey.java @@ -8,6 +8,7 @@ package com.ljsd.jieling.logic.rank.rankKey; public class RandomCardSpecialKey { private int uid; private int heroId; + private int heroNum; private long version; public void setUid(int uid) { @@ -22,9 +23,18 @@ public class RandomCardSpecialKey { this.version = version; } - public RandomCardSpecialKey(int uid, int heroId, long version) { + public int getHeroNum() { + return heroNum; + } + + public void setHeroNum(int heroNum) { + this.heroNum = heroNum; + } + + public RandomCardSpecialKey(int uid, int heroId,int heroNum, long version) { this.uid = uid; this.heroId = heroId; + this.heroNum = heroNum; this.version = version; }