diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java index d31ec56ce..e8590ee6c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/Expedition/HeroNodeGetInfoRequestHandler.java @@ -88,8 +88,8 @@ public class HeroNodeGetInfoRequestHandler extends BaseHandler { +public class AllBookEnableHandler extends BaseHandler { @Override public MessageTypeProto.MessageType getMessageCode() { return MessageTypeProto.MessageType.POKEMON_BOOK_ENABLE_REQUEST; } @Override - public void processWithProto(ISession iSession, HeroInfoProto.PokemonBookEnableRequest proto) throws Exception { - HeroLogic.getInstance().pokemonBookEnable(iSession,proto.getBookId(),MessageTypeProto.MessageType.POKEMON_BOOK_ENABLE_REPONSE); + public void processWithProto(ISession iSession, HeroInfoProto.AllBookEnableRequest proto) throws Exception { + HeroLogic.getInstance().AllBookEnable(iSession,proto.getBookId(),MessageTypeProto.MessageType.POKEMON_BOOK_ENABLE_REPONSE); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllPropertyInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllPropertyInfoHandler.java new file mode 100644 index 000000000..922ab3fcd --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/pokemon/GetAllPropertyInfoHandler.java @@ -0,0 +1,24 @@ +package com.ljsd.jieling.handler.pokemon; + +import com.ljsd.jieling.handler.BaseHandler; +import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; +import com.ljsd.jieling.network.session.ISession; +import rpc.protocols.MessageTypeProto; + +/** + * Description: des + * Author: zsx + * CreateDate: 2021/3/19 16:40 + */ +public class GetAllPropertyInfoHandler extends BaseHandler { + @Override + public MessageTypeProto.MessageType getMessageCode() { + return MessageTypeProto.MessageType.GET_ALL_PROPERTY_INFO_REQUEST; + } + + @Override + public void process(ISession iSession, PacketNetData netData) throws Exception { + HeroLogic.getInstance().allBookFetter(iSession,MessageTypeProto.MessageType.GET_ALL_PROPERTY_INFO_RESPONSE); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java index d807361d7..4137e88e1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EquipManager.java @@ -1,18 +1,19 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; -import com.ljsd.jieling.logic.activity.event.EquipEvent; -import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.mission.GameEvent; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; public class EquipManager extends MongoBase { private Map equipMap; + private Set equipBookEnabled = new HashSet<>(); + private Set equipList; private Equip unDetermined; @@ -81,4 +82,15 @@ public class EquipManager extends MongoBase { return equipHandBook; } + + public Set getEquipBookEnabled() { + return equipBookEnabled; + } + + public void addEquipBookEnabled(int bookId) { + equipBookEnabled.add(bookId); + updateString("equipBookEnabled", equipBookEnabled); + + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java index 0f49d619a..cd413db03 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/HeroManager.java @@ -6,9 +6,11 @@ import com.ljsd.jieling.logic.activity.event.RemoveHeroEvent; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HongMengAttributeEnum; import config.SSpecialConfig; -import org.luaj.vm2.ast.Str; -import java.util.*; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; public class HeroManager extends MongoBase { @@ -21,6 +23,7 @@ public class HeroManager extends MongoBase { private Map mustRandomCount= new HashMap<>(); private Map heroHandBook = new HashMap<>(); + private Set heroHandBookEnabled = new HashSet<>(); private Map skinInfo = new HashMap<>(); @@ -240,5 +243,15 @@ public class HeroManager extends MongoBase { } } + public Set getHeroHandBookEnabled() { + return heroHandBookEnabled; + } + + public void addHeroHandBookEnabled(int bookId) { + heroHandBookEnabled.add(bookId); + updateString("heroHandBookEnabled", heroHandBookEnabled); + + } + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java index e5ba12937..8fee7500e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ItemManager.java @@ -1,13 +1,9 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; -import com.ljsd.jieling.db.mongo.MongoKey; -import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.logic.dao.root.User; -import java.util.HashSet; import java.util.Map; -import java.util.Set; import java.util.concurrent.ConcurrentHashMap; public class ItemManager extends MongoBase { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PokemonManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PokemonManager.java index de6e2569e..691e93e8f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PokemonManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PokemonManager.java @@ -1,7 +1,6 @@ package com.ljsd.jieling.logic.dao; import com.ljsd.common.mogodb.MongoBase; -import com.ljsd.jieling.db.mongo.MongoKey; import com.ljsd.jieling.logic.dao.root.User; import java.util.HashMap; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java index 5f6bd61d3..fbd35ddc3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/expedition/ExpeditionLogic.java @@ -1,50 +1,40 @@ package com.ljsd.jieling.logic.expedition; -import com.ljsd.fight.FamilyHeroInfo; -import com.ljsd.jieling.config.clazzStaticCfg.*; +import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; +import com.ljsd.jieling.config.clazzStaticCfg.PlayStaticConfig; +import com.ljsd.jieling.config.clazzStaticCfg.WorldBossTreasureStaticConfig; import com.ljsd.jieling.core.FunctionIdEnum; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.HandlerLogicThread; -import com.ljsd.jieling.db.redis.RedisKey; -import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.map.behavior.BehaviorUtil; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.blood.BloodLogic; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.fight.FightUtil; -import com.ljsd.jieling.logic.fight.robot.RobotInfo; import com.ljsd.jieling.logic.fight.specialparm.SpecialForTeamBuildEnum; import com.ljsd.jieling.logic.hero.HeroAttributeEnum; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; -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.logic.store.BuyGoodsLogic; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.session.ISession; -import rpc.protocols.CommonProto; -import rpc.protocols.Expedition; -import rpc.protocols.MessageTypeProto; -import com.ljsd.jieling.util.*; +import com.ljsd.jieling.util.ItemUtil; +import com.ljsd.jieling.util.MessageUtil; +import com.ljsd.jieling.util.MonsterUtil; import config.*; import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.data.redis.core.ZSetOperations; -import rpc.protocols.PlayerInfoProto; +import rpc.protocols.CommonProto; +import rpc.protocols.Expedition; +import rpc.protocols.MessageTypeProto; import util.MathUtils; -import util.StringUtil; import util.TimeUtils; -import java.rmi.server.UID; import java.util.*; import java.util.stream.Collectors; 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 db4f9dc61..9a738010a 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 @@ -60,7 +60,6 @@ public class HeroLogic{ Poster.getPoster().listenEvent(new LeveGiftEventHander(), UserLevelEvent.class); } - public static List transTemplate = new ArrayList<>(); public static List equipSkillPositionTemaplge = new ArrayList<>(6); private static Map> transTemplateByHeroPropertyName = new HashMap<>(); @@ -3074,7 +3073,94 @@ public class HeroLogic{ } //============= 灵兽(异妖)系统 ======================== + public void allBookFetter(ISession session,MessageTypeProto.MessageType messageType) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + EquipManager equipManager = user.getEquipManager(); + Map equipHandBook = equipManager.getEquipHandBook(); + HeroInfoProto.GetAllPropertyInfoResponse.Builder builder = HeroInfoProto.GetAllPropertyInfoResponse.newBuilder(); + //添加灵兽羁绊 + for(int enabled:user.getPokemonManager().getPokemonBookEnabled()){ + builder.addAllBookEnabled(enabled); + } + //添加英雄羁绊 + for (int enabled:user.getHeroManager().getHeroHandBookEnabled()){ + builder.addAllBookEnabled(enabled); + } + //添加魂印羁绊 + for (int enabled:user.getEquipManager().getEquipBookEnabled()){ + builder.addAllBookEnabled(enabled); + } + for (Map.Entry entry:equipHandBook.entrySet()){ + if (entry.getValue()!=0){ + builder.addEquipGot(entry.getKey()); + } + } + MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.GET_ALL_PROPERTY_INFO_RESPONSE_VALUE,builder.build(),true); + } + /** + * 激活所有图鉴 + * @param session + * @param bookId + * @param messageType + */ + public void AllBookEnable(ISession session, int bookId, MessageTypeProto.MessageType messageType) throws Exception { + int uid = session.getUid(); + User user = UserManager.getUser(uid); + SSpiritAnimalBook bookConfig = STableManager.getConfig(SSpiritAnimalBook.class).get(bookId); + if(bookConfig==null){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + if(user.getPlayerInfoManager().getLevel() heroHandBook = heroManager.getHeroHandBook(); + Set hero=new HashSet<>(); + //将拥有的神将放到set集和中 + for(Map.Entry entry:heroHandBook.entrySet()){ + if (entry.getValue()!=0){ + hero.add(entry.getKey()); + } + } + //判断羁绊神将是否在集合 + for(int tmp:teamers){ + if(!hero.contains(tmp)){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + } + //将羁绊加入神将羁绊集合 + heroManager.addHeroHandBookEnabled(bookId); + } + //魂印激活 + if(bookConfig.getFetterType()==2){ + + } + //灵兽激活 + if(bookConfig.getFetterType()==3){ + PokemonManager pokemonManager = user.getPokemonManager(); + if(pokemonManager.getPokemonBookEnabled().contains(bookId)){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + for(int pokemon:teamers){ + if(!pokemonManager.getPokemonGot().contains(pokemon)){ + throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); + } + } + pokemonManager.addPokemonBookEnabled(bookId); + } + + Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid())); + MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); + + } /** * 获取所有异妖 * @param iSession @@ -3118,8 +3204,8 @@ public class HeroLogic{ teamPokemonInfos.add(teamPokemonInfo); } builder.addAllTeamPokemonInfos(teamPokemonInfos) - .addAllPokemonGot(pokemonManager.getPokemonGot()) - .addAllPokemonBookEnabled(pokemonManager.getPokemonBookEnabled()); + .addAllPokemonGot(pokemonManager.getPokemonGot()); + /*.addAllPokemonBookEnabled(pokemonManager.getPokemonBookEnabled());*/ } MessageUtil.sendMessage(iSession,1,MessageTypeProto.MessageType.GET_ALL_POKEMON_RESPONSE_VALUE,builder.build(),true); } @@ -3501,38 +3587,6 @@ public class HeroLogic{ } - /** - * 激活灵兽图鉴 - * @param session - * @param bookId - * @param messageType - */ - public void pokemonBookEnable(ISession session, int bookId, MessageTypeProto.MessageType messageType) throws Exception { - int uid = session.getUid(); - User user = UserManager.getUser(uid); - PokemonManager pokemonManager = user.getPokemonManager(); - if(pokemonManager.getPokemonBookEnabled().contains(bookId)){ - throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); - } - SSpiritAnimalBook bookConfig = STableManager.getConfig(SSpiritAnimalBook.class).get(bookId); - if(bookConfig==null){ - throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); - } - - int[] teamers = bookConfig.getTeamers(); - - for(int pokemon:teamers){ - if(!pokemonManager.getPokemonGot().contains(pokemon)){ - throw new ErrorCodeException(ErrorCode.SERVER_SELF_DEFINE); - } - } - - pokemonManager.addPokemonBookEnabled(bookId); - - Poster.getPoster().dispatchEvent(new UserMainTeamForceEvent(session.getUid())); - - MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); - } /** * 获取所有皮肤信息 diff --git a/serverlogic/src/main/resources/application.properties b/serverlogic/src/main/resources/application.properties index a77f4f5f0..8a90108ef 100644 --- a/serverlogic/src/main/resources/application.properties +++ b/serverlogic/src/main/resources/application.properties @@ -1,5 +1,5 @@ #server info -server.id = 10153 +server.id = 10161 server.openTime = 20190101000101 server.num = 1 server.debug = true @@ -33,7 +33,7 @@ spring.redis.expireTime = -1 #spring.data.mongodb.uri = mongodb://mongouser:ysj#2017#ljsd@111.231.54.96:27017/ysj_wx_1 #spring.data.mongodb2.uri = mongodb://mongouser:ysj#2017#ljsd@111.231.54.96:27017/develop_ysj_wx_1 #mongodb2 develop -spring.data.mongodb.uri = mongodb://60.1.1.14:27017/jieling_10153 +spring.data.mongodb.uri = mongodb://60.1.1.14:27017/jieling_10161 spring.data.mongodbcore.uri = mongodb://60.1.1.14:27017/jl_core #spring.data.mongodb.uri = mongodb://60.1.1.14:27017/jieling_10212 mongodb.options.maxWaitTime = 120000 @@ -62,7 +62,7 @@ netty.allTimeout=35 #core -services.core.ip=60.1.1.153 +services.core.ip=60.1.1.161 services.core.port=7900 services.core.area=1000 services.core.id=1 diff --git a/tablemanager/src/main/java/config/SSpiritAnimalBook.java b/tablemanager/src/main/java/config/SSpiritAnimalBook.java index 55d770422..8e07ab9ee 100644 --- a/tablemanager/src/main/java/config/SSpiritAnimalBook.java +++ b/tablemanager/src/main/java/config/SSpiritAnimalBook.java @@ -16,6 +16,12 @@ public class SSpiritAnimalBook implements BaseConfig { private int activeForce; + private int fetterType; + + private int[][] reward; + + private int openLevel; + @Override public void init() throws Exception { @@ -39,5 +45,17 @@ public class SSpiritAnimalBook implements BaseConfig { return activeForce; } + public int getFetterType() { + return fetterType; + } + + public int[][] getReward() { + return reward; + } + + public int getOpenLevel() { + return openLevel; + } + } \ No newline at end of file