diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 diff --git a/luafight/Modules/Battle/Logic/Base/Passivity.lua b/luafight/Modules/Battle/Logic/Base/Passivity.lua index 30d1664aa..6a106f4d1 100644 --- a/luafight/Modules/Battle/Logic/Base/Passivity.lua +++ b/luafight/Modules/Battle/Logic/Base/Passivity.lua @@ -697,17 +697,17 @@ local passivityList = { local ct2 = args[7] local i1 = args[8] - local auraBuff = Buff.Create(role, BuffName.Aura, 0, function (role) - local changeBuff1 = Buff.Create(role, BuffName.PropertyChange, 0, propertyList[pro1], f2, ct1) + local auraBuff = Buff.Create(role, BuffName.Aura, 0, function (r) + local changeBuff1 = Buff.Create(r, BuffName.PropertyChange, 0, propertyList[pro1], f2, ct1) changeBuff1.cover = true changeBuff1.maxLayer = i1 - local changeBuff2 = Buff.Create(role, BuffName.PropertyChange, 0, propertyList[pro2], f3, ct2) + local changeBuff2 = Buff.Create(r, BuffName.PropertyChange, 0, propertyList[pro2], f3, ct2) changeBuff2.cover = true changeBuff2.maxLayer = i1 - role:AddBuff(changeBuff1) - role:AddBuff(changeBuff2) + r:AddBuff(changeBuff1) + r:AddBuff(changeBuff2) end) auraBuff.interval = f1 role:AddBuff(auraBuff) @@ -719,8 +719,8 @@ local passivityList = { local f1 = args[1] local f2 = args[2] - local auraBuff = Buff.Create(role, BuffName.Aura, 0, function (role) - BattleUtil.CalTreat(role, role, f2) + local auraBuff = Buff.Create(role, BuffName.Aura, 0, function (r) + BattleUtil.CalTreat(r, r, f2) end) auraBuff.interval = f1 role:AddBuff(auraBuff) diff --git a/luafight/Modules/Battle/Logic/RoleLogic.lua b/luafight/Modules/Battle/Logic/RoleLogic.lua index f6ac0df3c..7f78694da 100644 --- a/luafight/Modules/Battle/Logic/RoleLogic.lua +++ b/luafight/Modules/Battle/Logic/RoleLogic.lua @@ -50,6 +50,7 @@ function RoleLogic:Init(uid, data) self.roleData = data self.data:Init(self, data.property) + self.isDead = self:GetRoleData(RoleDataName.Hp) <= 0 self.camp = data.camp --阵营 0:我方 1:敌方 self.name = data.name @@ -92,7 +93,6 @@ function RoleLogic:Init(uid, data) self.aiIndex = 1 self.aiTempCount = 0 - self.isDead = self:GetRoleData(RoleDataName.Hp) <= 0 self.Auto = true self.IsDebug = false 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 1027e725c..75bad0e63 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 @@ -194,7 +194,7 @@ public class MapLogic { List teamPosForHero = user.getTeamPosManager().getTeamPosForHero().get(teamId); for (int i = 0; i synthesisHeroStarTimesMap = new HashMap<>();// 碎片合成%s星妖灵师次数达到 + public Map heroUpStarTimesMap = new HashMap<>();// 碎片合成%s星妖灵师次数达到 + public int consumerStamina; //消耗体力数量达到 + public Set differentHeros = new HashSet<>(); + //任务重置 @@ -134,6 +136,8 @@ public class CumulationData { clearArray(sEquipQualityCount); clearArray(heroQualityCount); consumerStamina=0; + differentHeros.clear(); + heroUpStarTimesMap.clear(); } private void clearArray(int[] source){ @@ -174,6 +178,14 @@ public class CumulationData { } } + public void updateHeroUpStarTimes(int heroTid){ + Integer count = heroUpStarTimesMap.get(heroTid); + if(count == null){ + count = 0; + } + heroUpStarTimesMap.put(heroTid,count+1); + } + public int getSecretRandomCount() { return secretRandomCount; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java index b8c71678e..96150d933 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/GuilidManager.java @@ -61,6 +61,10 @@ public class GuilidManager { public static void addGuildLog(GuildLog guildLog) throws Exception { MongoUtil.getInstence().getMyMongoTemplate().save(guildLog); + if(!guildLogInfoMap.containsKey(guildLog.getGuildId())){ + guildLogInfoMap.put(guildLog.getGuildId(),new ArrayList<>()); + } + guildLogInfoMap.get(guildLog.getGuildId()).add(guildLog); } public static void init() throws Exception { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java index c7bc773bd..f0fbbcd63 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/UserManager.java @@ -31,23 +31,6 @@ public class UserManager { return userMap.containsKey(uid); } -// public static User getUserForLogin(int uid) throws Exception { -// User user = userMap.get(uid); -// if (user != null) { -// user = MongoUtil.getInstence().getMyMongoTemplate().findById(User.getCollectionName(), Integer.toString(uid), User.class); -// } -// if (user == null) { -// user = registerUser(uid); -// }else{ -// refreshUserLoginInfo(user); -// } -// return user; -// } -// -// private static void refreshUserLoginInfo(User user) { -// //TODO -// } - public static User userLogin(int uid,String openId) throws Exception { User user = null; if (!UserManager.isUserExist(uid)){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildDef.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildDef.java index 731e81cb0..1f249c820 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildDef.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildDef.java @@ -5,5 +5,8 @@ public interface GuildDef { int CREATE = 1; int JOIN = 2; int KICK = 3; + int TRANSFER = 4; //转让 + int APPOINTMENT = 5; //委任 + int LEVEL = 6; //离开宗门 } } 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 9b03efce5..191c5392f 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 @@ -229,7 +229,7 @@ public class GuildLogic { User user = UserManager.getUser(uid); int msgId = MessageTypeProto.MessageType.FAMILY_GET_LOG_RESPOSNE_VALUE; if(user.getPlayerInfoManager().getGuildId()==0){ - MessageUtil.sendErrorResponse(session,0,msgId,"已加入过公会"); + MessageUtil.sendErrorResponse(session,0,msgId,"未加入公会"); return; } Family.GetFamilyLogResponse.Builder builder = Family.GetFamilyLogResponse.newBuilder(); @@ -461,10 +461,14 @@ public class GuildLogic { guildInfo.removeMember(targetType,targetUid); guildInfo.addMembers(position,targetUid); sendPositionChange(targetUid,position); + User targetUser = UserManager.getUser(targetUid); if(position == GlobalsDef.CHAIRMAN){ guildInfo.removeMember(GlobalsDef.CHAIRMAN,uid); guildInfo.addMembers(GlobalsDef.MEMBER,uid); sendPositionChange(uid,GlobalsDef.MEMBER); + addGuildLog(guildInfo.getId(),GuildDef.Log.TRANSFER,targetUser.getPlayerInfoManager().getNickName()); + }else{ + addGuildLog(guildInfo.getId(),GuildDef.Log.APPOINTMENT,targetUser.getPlayerInfoManager().getNickName()); } MessageUtil.sendMessage(session,1,msgId,null,true); @@ -627,6 +631,7 @@ public class GuildLogic { } guildInfo.removeMember(uidType,uid); user.getPlayerInfoManager().setGuildId(0); + addGuildLog(guildInfo.getId(),GuildDef.Log.LEVEL,user.getPlayerInfoManager().getNickName()); MessageUtil.sendMessage(session,1,msgId,null,true); } @@ -674,54 +679,31 @@ public class GuildLogic { } case GuildDef.Log.JOIN: { // 加入宗门 - GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name})); + GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logJoin", new Object[]{name})); GuilidManager.addGuildLog(cGuildLog); break; } - case 3: { + case GuildDef.Log.KICK: { // 退出宗门 - GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name})); + GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logKick", new Object[]{name})); GuilidManager.addGuildLog(cGuildLog); - break; } - case 4: { - // 宗门任免 - GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name})); - GuilidManager.addGuildLog(cGuildLog); - - break; - } - case 5: { + case GuildDef.Log.TRANSFER: { // 宗门转让 - GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name})); - GuilidManager.addGuildLog(cGuildLog); - - break; - } - case 6: { - // 宗门改名和改图腾 - GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name})); - GuilidManager.addGuildLog(cGuildLog); - - break; - } - case 7: { - // 宗门公告 - GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name})); + GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logTransfer", new Object[]{name})); GuilidManager.addGuildLog(cGuildLog); break; } - case 8: { - // 宗门宣言 - GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name})); + case GuildDef.Log.APPOINTMENT: { + // 宗门任免 + GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logAppointment", new Object[]{name})); GuilidManager.addGuildLog(cGuildLog); - break; } - case 9: { - // 15天转让 - GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logCreate", new Object[]{name})); + case GuildDef.Log.LEVEL: { + // 宗门退出 + GuildLog cGuildLog = new GuildLog(guildId,name, SErrorCodeEerverConfig.getI18NMessage("guild.logLevel", new Object[]{name})); GuilidManager.addGuildLog(cGuildLog); break; } 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 d1c0f39a6..8c44279bb 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 @@ -632,7 +632,7 @@ public class HeroLogic { recyleHeroBySystem(user,removeHeroIds); targetHero.upStar( 1 ); targetHero.setStarBreakId(scHeroRankUpConfig.getId()); - user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2); + user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2,targetHero.getTemplateId()); MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true); if(targetHero.getStar()>=7){ String message = SErrorCodeEerverConfig.getI18NMessage("lamp_rankup_hero_content", new Object[]{user.getPlayerInfoManager().getNickName(), scHero.getReadingName(),targetHero.getStar()}); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java index 5be905f70..45d28193b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionLoigc.java @@ -496,9 +496,19 @@ public class MissionLoigc { if(missionProgress!=null){ count = missionProgress; } + break; case USER_CONSUMER_STAMINA: count= cumulationData.consumerStamina; break; + case COLLECT_DIFFERENT_HEROS: + count= cumulationData.differentHeros.size(); + break; + case ONE_HERO_UP_STAR_TIMES: + Integer num= cumulationData.heroUpStarTimesMap.get(missionSubType[0]); + if(num!=null){ + count = num; + } + break; default: count = 0; break; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java index d201a3c87..9c294f367 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/MissionType.java @@ -61,6 +61,8 @@ public enum MissionType { HERO_WEAR_EQUIP_TIMES(46),//妖灵师穿戴装备件数达到 SYNTHESIS_HERO_STAR_TIMES(47),//碎片合成%s星妖灵师次数达到 USER_CONSUMER_STAMINA(48),//消耗体力数量达到 + COLLECT_DIFFERENT_HEROS(49), // 收集不同妖灵师数目达到 + ONE_HERO_UP_STAR_TIMES(50), // 收集不同妖灵师数目达到 ; private int missionType; @@ -171,6 +173,10 @@ public enum MissionType { return SYNTHESIS_HERO_STAR_TIMES; case 48: return USER_CONSUMER_STAMINA; + case 49: + return COLLECT_DIFFERENT_HEROS; + case 50: + return ONE_HERO_UP_STAR_TIMES; default: return null; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java index 6be3e9819..c441bd30d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/DataManagerDistributor.java @@ -13,6 +13,7 @@ public class DataManagerDistributor { judges.put(MissionType.RECRUITMENT_RANDOM_HEROES,new RandomHeroDataManager()); judges.put(MissionType.ELEMENT_RANDOM_TIMES,new RandomHeroDataManager()); judges.put(MissionType.COLLECT_QUALITY_HERO,new GetHeroManager()); + judges.put(MissionType.COLLECT_DIFFERENT_HEROS,new GetHeroManager()); judges.put(MissionType.HERO_LEVLE_COUNT,new HeroLevelUpManager()); @@ -71,6 +72,7 @@ public class DataManagerDistributor { judges.put(MissionType.HERO_BREAK_TIMES,new HeroUpDataManager()); judges.put(MissionType.HERO_UP_STAR_TIMES,new HeroUpDataManager()); + judges.put(MissionType.ONE_HERO_UP_STAR_TIMES,new HeroUpDataManager()); judges.put(MissionType.TAKE_CHAPTER_REWARD_TIMES,new TakeActivityRewardHandler()); judges.put(MissionType.TAKE_ONLINE_REWARD_TIMES,new TakeActivityRewardHandler()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GetHeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GetHeroManager.java index e56463d0d..c4b0c2837 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GetHeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/GetHeroManager.java @@ -15,6 +15,12 @@ public class GetHeroManager implements BaseDataManager { SCHero scHero = SCHero.getsCHero().get(heroTid); data.updateHeroQualityCount(scHero.getStar()); result = new CumulationData.Result(missionType); + }else if(missionType == MissionType.COLLECT_DIFFERENT_HEROS){ + if(!data.differentHeros.contains(heroTid)){ + data.differentHeros.add(heroTid); + result = new CumulationData.Result(missionType); + } + } return result; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HeroUpDataManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HeroUpDataManager.java index 753058cbc..1b84977c9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HeroUpDataManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/HeroUpDataManager.java @@ -11,6 +11,9 @@ public class HeroUpDataManager implements BaseDataManager { data.heroBreakTimes++; }else if(missionType == MissionType.HERO_UP_STAR_TIMES && type == 2){ data.heroUpStarTimes++; + }else if(missionType == MissionType.ONE_HERO_UP_STAR_TIMES && type == 2){ + int heroTid = (int) parm[1]; + data.updateHeroUpStarTimes(heroTid); }else{ return null; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java index 21e9f8469..098f1236e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/event/MissionEventDistributor.java @@ -50,6 +50,7 @@ public class MissionEventDistributor { typeList = new ArrayList<>(); typeList.add(MissionType.COLLECT_QUALITY_HERO); + typeList.add(MissionType.COLLECT_DIFFERENT_HEROS); eventEnumListMap.put(GameEvent.GET_HERO,typeList); eventProcessor.put(GameEvent.GET_HERO,new CumulationDataEventProcessor()); @@ -186,6 +187,7 @@ public class MissionEventDistributor { typeList = new ArrayList<>(); typeList.add(MissionType.HERO_BREAK_TIMES); typeList.add(MissionType.HERO_UP_STAR_TIMES); + typeList.add(MissionType.ONE_HERO_UP_STAR_TIMES); eventEnumListMap.put(GameEvent.HERO_UP,typeList); eventProcessor.put(GameEvent.HERO_UP,new CumulationDataEventProcessor()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 03a51cbb5..e583099aa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -369,8 +369,10 @@ public class PlayerLogic { .setHead(1) .setHeadFrame(playerManager.getHeadFrame()) .setName(playerManager.getNickName()).setUid(session.getUid()).setTeam(team); - for(TeamPosForPokenInfo posForPokenInfo:teamPosManager.getTeamPosForPoken().get(1)){ - playerTeamInfo.addPokemonInfos(posForPokenInfo.getPokenId()); + if(teamPosManager.getTeamPosForPoken().get(1)!=null&&teamPosManager.getTeamPosForPoken().get(1).size()>0){ + for(TeamPosForPokenInfo posForPokenInfo:teamPosManager.getTeamPosForPoken().get(1)){ + playerTeamInfo.addPokemonInfos(posForPokenInfo.getPokenId()); + } } MessageUtil.sendMessage(session,1,messageType.getNumber(),playerTeamInfo.build(),true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 853fa88d0..e98ed4c67 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -362,7 +362,7 @@ public class CBean2Proto { boolean online = OnlineUserManager.checkUidOnline(user.getId()); int outTime = 0; if(!online){ - outTime = (int)(System.currentTimeMillis() - user.getPlayerInfoManager().getLoginTime()); + outTime = (int)((System.currentTimeMillis() - user.getPlayerInfoManager().getLoginTime())/1000); } return Family.FamilyUserInfo.newBuilder().setRoleUid(user.getId()) .setUserName(user.getPlayerInfoManager().getNickName()) @@ -381,7 +381,7 @@ public class CBean2Proto { boolean online = OnlineUserManager.checkUidOnline(user.getId()); int outTime = 0; if(!online){ - outTime = (int)(System.currentTimeMillis() - user.getPlayerInfoManager().getLoginTime()); + outTime = (int)((System.currentTimeMillis() - user.getPlayerInfoManager().getLoginTime())/1000); } return Family.FamilyApply.newBuilder() .setRoleUid(user.getId())