diff --git a/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java index 304970926..130f92319 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/chat/logic/ChatLogic.java @@ -102,7 +102,11 @@ public class ChatLogic { switch (chatType){ case 1: //0|content需要解字符串 - String s = message.split("|",3)[2]; + String s = message; + String[] strs = message.split("|",3); + if(strs.length<3){ + s = strs[2]; + } result = ShieldedWordUtils.checkName(user,s,false,ChatContentType.WORLD_CHAT); break; case 2: 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 63b5ddeef..a4fd58663 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 @@ -38,13 +38,14 @@ public class EquipManager extends MongoBase { public void addEquip(User user,Equip equip) throws Exception { updateString("equipMap." + equip.getId(), equip); equipMap.put(equip.getId(),equip); - addEquipHandBook(equip.getEquipId()); +// addEquipHandBook(equip.getEquipId()); user.getUserMissionManager().onGameEvent(user, GameEvent.GET_EQUIP,equip.getEquipId()); Poster.getPoster().dispatchEvent(new EquipEvent(user.getId(),equip.getEquipId())); } public void addEspecialEquip(User user,EspecialEquip especialEquip){ updateString("especialEquipMap." + especialEquip.getId(), especialEquip); + addEquipHandBook(especialEquip.getEquipId()); especialEquipMap.put(especialEquip.getId(), especialEquip); } @@ -96,7 +97,7 @@ public class EquipManager extends MongoBase { this.unDetermined = unDetermined; } public void addEquipHandBook(int equipId){ - if(equipHandBook.containsKey(equipId)|| SEquipConfig.getsEquipConfigById(equipId).getIfShow()!=1){ + if(equipHandBook.containsKey(equipId)){ return; } equipHandBook.put(equipId,0); @@ -118,7 +119,7 @@ public class EquipManager extends MongoBase { return equipHandBook; } - public void upStarEspecialEquip(String equipId){ + public void upStarEspecialEquip(String equipId) throws Exception { EspecialEquip especialEquip = especialEquipMap.get(equipId); if(especialEquip ==null){ return; 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 c27bf4c12..2039e7d54 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 @@ -293,7 +293,7 @@ public class GuildFightLogic { redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT, String.valueOf(guildInfo.getId()), String.valueOf(entry.getKey()), fightInfo); familyTotalStar+=fightInfo.getStarCount(); } - for(Integer star:guildSetting.getStarNum()){ + for(Integer star:guildSetting.getBuildingStar()){ familyTotalStar+=star; } redisUtil.putMapEntry(RedisKey.FAMILY_FIGHT_TOTAL_STAR,"",String.valueOf(gid),familyTotalStar); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java index a029c456e..8360ef6c9 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/item/ItemLogic.java @@ -8,6 +8,7 @@ import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.HeroInfoProto; @@ -486,6 +487,7 @@ public class ItemLogic { } } user.getEquipManager().upStarEspecialEquip(equipId); + user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP,especialEquip.getStar()+1); MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true); }else{ MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,"材料不足"); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java index aa715d8f1..4717be94e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/GameEvent.java @@ -58,4 +58,6 @@ public enum GameEvent { BLOODY_END,// 血战结束 + ESPECIAL_EQUIP//获得法宝 + } 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 a660852dd..fa14d3b42 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 @@ -631,6 +631,9 @@ public class MissionLoigc { case ENDLESS_CONSUME_ACTION: count = cumulationData.consumeAction; break; + case ESPECIAL_EQUIP: + count = cumulationData.especialEquipStar.get(missionSubType[0]); + 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 366a678d6..2a180dd54 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 @@ -78,7 +78,8 @@ public enum MissionType { MONSTER_ATTACK_LEVEL(57),//兽潮来袭到达x层 TO_BE_STRONGER(58),//我要变强点击:%s次 BLOODY_KILL_NUMS(59),// 血战每日击杀人数 - ENDLESS_CONSUME_ACTION(60)//无尽消耗行动力 + ENDLESS_CONSUME_ACTION(60),//无尽消耗行动力 + ESPECIAL_EQUIP(62)//拥有%s星级法宝的数量为:%s ; private int missionType; @@ -213,6 +214,8 @@ public enum MissionType { return BLOODY_KILL_NUMS; case 60: return ENDLESS_CONSUME_ACTION; + case 62: + return ESPECIAL_EQUIP; 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 0c9f45925..3e231f0df 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 @@ -99,6 +99,8 @@ public class DataManagerDistributor { judges.put(MissionType.JOIN_MONSTER_ATTACK_TIMES,new JoinMonsterAttackManager()); judges.put(MissionType.MONSTER_ATTACK_LEVEL,new DefaultDataManager()); judges.put(MissionType.TO_BE_STRONGER,new StrongerManager()); + judges.put(MissionType.ESPECIAL_EQUIP,new EspecialStarManager()); + } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/EspecialStarManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/EspecialStarManager.java new file mode 100644 index 000000000..386451dbe --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/EspecialStarManager.java @@ -0,0 +1,21 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +import java.util.Map; + +public class EspecialStarManager implements BaseDataManager { + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + int equipStar = (int) parm[0]; + Map especialEquipStar = data.especialEquipStar; + if(especialEquipStar.containsKey(equipStar)){ + especialEquipStar.put(equipStar,especialEquipStar.get(equipStar)+1); + }else{ + especialEquipStar.put(equipStar,1); + } + return new CumulationData.Result(missionType); + + } +} 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 fa6771b76..158caf14e 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 @@ -254,6 +254,11 @@ public class MissionEventDistributor { eventEnumListMap.put(GameEvent.BLOODY_END,typeList); eventProcessor.put(GameEvent.BLOODY_END,new CumulationDataEventProcessor()); + typeList = new ArrayList<>(); + typeList.add(MissionType.ESPECIAL_EQUIP); + eventEnumListMap.put(GameEvent.ESPECIAL_EQUIP,typeList); + eventProcessor.put(GameEvent.ESPECIAL_EQUIP,new CumulationDataEventProcessor()); + } private static final ThreadLocal>> threadMissionChangeList = 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 f8d380347..b7bbfe249 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/ItemUtil.java @@ -894,6 +894,7 @@ public class ItemUtil { especialEquip.setStar(item.getQuantity()); especialEquipList.add(CBean2Proto.getEquipProto(especialEquip)); equipManager.addEspecialEquip(user,especialEquip); + user.getUserMissionManager().onGameEvent(user, GameEvent.ESPECIAL_EQUIP, especialEquip.getStar()); }else if(itemType==GlobalItemType.SOUL_MARK){ SoulEquip soulEquip = new SoulEquip(user.getId(),equipId); equipManager.addSoulEquip(soulEquip);