From c5a704d494b45887961f878546cb7ef8c116a294 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 3 Sep 2019 11:17:52 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E6=B3=95=E5=AE=9D=E8=A1=A8=E5=AF=B9?= =?UTF-8?q?=E5=BA=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/config/SEquipTalismana.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java index 76f837043..716201360 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java @@ -22,6 +22,8 @@ public class SEquipTalismana implements BaseConfig { private int[][] specialProperty; + private int[][] specialSkill + private int[] openSkillRules; public static Map equipTalismanaMap ; @@ -66,5 +68,7 @@ public class SEquipTalismana implements BaseConfig { return openSkillRules; } - + public int[][] getSpecialSkill() { + return specialSkill; + } } \ No newline at end of file From c770a95a09569299002b19550b094e66c9645a00 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 3 Sep 2019 11:18:39 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/ljsd/jieling/config/SEquipTalismana.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java index 716201360..e53dc2295 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java @@ -22,7 +22,7 @@ public class SEquipTalismana implements BaseConfig { private int[][] specialProperty; - private int[][] specialSkill + private int[][] specialSkill; private int[] openSkillRules; From 3f16d2c1cad235674a60db61f3452dad8303670c Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 3 Sep 2019 19:30:40 +0800 Subject: [PATCH 3/9] scene --- .../jieling/battle/UserBloodySnpInfo.java | 6 ++ .../com/ljsd/jieling/battle/actor/Scene.java | 81 ++++++++++++++++--- .../ljsd/jieling/battle/actor/SceneActor.java | 12 ++- .../jieling/battle/actor/SortDataBean.java | 59 ++++++++++++++ .../match/BloodyBattleReallyMatchServer.java | 50 ++++++++++++ .../ljsd/jieling/battle/room/BeanToProto.java | 5 +- .../jieling/battle/room/SceneManager.java | 2 + .../jieling/battle/statics/AnalysisData.java | 41 +++++++++- .../battle/statics/AnalysisDataType.java | 20 +++++ .../statics/BattleAnalysisProcessor.java | 73 +++++++++++++++++ .../statics/DiggerAnalysisProcessor.java | 30 ++++++- .../battle/statics/MessageBoxUtils.java | 23 +++++- .../jieling/config/SBloodyBattleReward.java | 33 ++++++++ .../jieling/config/SBloodyMessagesConfig.java | 10 ++- .../jieling/config/SBloodyRankConfig.java | 51 ++++++++++++ .../com/ljsd/jieling/db/redis/RedisKey.java | 2 + .../com/ljsd/jieling/db/redis/RedisUtil.java | 3 + 17 files changed, 483 insertions(+), 18 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/actor/SortDataBean.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/match/BloodyBattleReallyMatchServer.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisDataType.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyBattleReward.java create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyRankConfig.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/UserBloodySnpInfo.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/UserBloodySnpInfo.java index 98aafc747..7450c9f92 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/UserBloodySnpInfo.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/UserBloodySnpInfo.java @@ -10,6 +10,12 @@ public class UserBloodySnpInfo { private String name; + private int head; + + private int headFrame; + + private int level; + private Map heroAllAttributes = new HashMap<>(5); private Map heroSkills = new HashMap<>(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/Scene.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/Scene.java index e38399619..f54b69ddf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/Scene.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/Scene.java @@ -10,8 +10,11 @@ import com.ljsd.jieling.battle.room.BeanToProto; import com.ljsd.jieling.battle.room.Command; import com.ljsd.jieling.battle.room.SceneManager; import com.ljsd.jieling.battle.statics.AnalysisData; +import com.ljsd.jieling.config.SBloodyBattleReward; import com.ljsd.jieling.config.SBloodyBattleSetting; import com.ljsd.jieling.db.mongo.MongoUtil; +import com.ljsd.jieling.db.redis.RedisKey; +import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; @@ -108,6 +111,10 @@ public class Scene implements Runnable{ private Map monsterRecoryMap = new HashMap<>(); + private int firstBloodyPerson; + + private List cacheMsg = new ArrayList<>(2); + public void monsterReflush(){ Iterator> iterator = monsterRecoryMap.entrySet().iterator(); @@ -142,7 +149,7 @@ public class Scene implements Runnable{ } //消息广播 - if(msgUpdate){ + if(msgUpdate || !cacheMsg.isEmpty()){ for(Integer removeId : builder.getRemoveActorIdList()){ sceneActorMap.remove(removeId); } @@ -153,6 +160,15 @@ public class Scene implements Runnable{ } } } + if(!cacheMsg.isEmpty()){ + int now = (int)(System.currentTimeMillis()/1000); + for(String msg : cacheMsg){ + CommonProto.SceneMsg build = CommonProto.SceneMsg.newBuilder().setMsg(msg).setTime(now).build(); + builder.addSceneMsg(build); + } + cacheMsg.clear(); + } + for(SceneActor sceneActor : sceneActorMap.values()){ if(sceneActor.getType() == ActorType.Player){ ISession sessionByUid = OnlineUserManager.getSessionByUid(sceneActor.getId()); @@ -161,7 +177,9 @@ public class Scene implements Runnable{ } } } + System.out.println("------------------------"); System.out.println(JsonFormat.printToString(builder.build())); + System.out.println("------------------------" + msgUpdate); builder.clear(); willUpdateActors.clear(); msgUpdate = false; @@ -177,6 +195,7 @@ public class Scene implements Runnable{ */ public void processEventUpdate(EventType eventType,Object parm){ msgUpdate = true; + System.out.println("the eventType = "+ eventType); switch (eventType){ case SCENEACTORE_UPDATE: willUpdateActors.add((int)parm); @@ -283,20 +302,48 @@ public class Scene implements Runnable{ //退出操作 public void gameEnd() throws Exception { isEnd = true; - for(SceneActor sceneActor : sceneActorMap.values()){ - if(sceneActor.getType() == ActorType.Player){ - int id = sceneActor.getId(); - User user = UserManager.getUser(id); - user.getRoomInfo().setRoomId(-1); - MatchServerice.clearUidRoomInfo(id); - ISession iSession = OnlineUserManager.getSessionByUid(id); - if(iSession!=null){ - MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.SCENE_GAME_OVER_INDICATION_VALUE, null, true); - } + //结算操作 + List sortDataBeans = new ArrayList<>(); + for(AnalysisData analysisData: analysisDataMap.values()){ + int playId = analysisData.getId(); + Creature creature = (Creature)sceneActorMap.get(playId); + int mineral = creature.getMineral(); + int killNums = analysisData.getKillNums(); + sortDataBeans.add(new SortDataBean(playId,mineral,killNums)); + } + Collections.sort(sortDataBeans); + int rank=1; + int curSeason=1; + SceneFight.SceneEndIndication.Builder builder = SceneFight.SceneEndIndication.newBuilder(); + for(SortDataBean sortDataBean : sortDataBeans){ + SBloodyBattleReward sBloodyBattleReward = SBloodyBattleReward.sBloodyBattleRewardMap.get(rank); + int score = sBloodyBattleReward.getScore(); + int id = sortDataBean.getUid(); + int myscore = 0; + if(curSeason!=0){ + RedisUtil.getInstence().incrementZsetScore(RedisKey.BLOODY_RANK,Integer.toString(curSeason),Integer.toString(id),score); + myscore = RedisUtil.getInstence().getZSetScore(RedisKey.BLOODY_RANK,Integer.toString(curSeason), Integer.toString(id)).intValue(); + if(myscore<0){ + myscore=0; + String mineRankKey = RedisKey.getKey(RedisKey.BLOODY_RANK, String.valueOf(id), false); + RedisUtil.getInstence().zsetAddOne(mineRankKey,Integer.toString(id),myscore); + } + }else{ + score=0; + } + builder.addSceneSimpleRankInfo(SceneFight.SceneSimpleRankInfo.newBuilder().setScore(myscore).setUpdateScore(score).setUid(id).build()); + rank++; + } + + for(SortDataBean sortDataBean : sortDataBeans){ + ISession iSession = OnlineUserManager.getSessionByUid(sortDataBean.getUid()); + if(iSession!=null){ + MessageUtil.sendIndicationMessage(iSession, 1, MessageTypeProto.MessageType.SCENE_GAME_OVER_INDICATION_VALUE, builder.build(), true); } } SceneManager.clearScene(roomId); + MongoUtil.getLjsdMongoTemplate().lastUpdate(); } @@ -398,4 +445,16 @@ public class Scene implements Runnable{ public Map getAnalysisDataMap() { return analysisDataMap; } + + public int getFirstBloodyPerson() { + return firstBloodyPerson; + } + + public void setFirstBloodyPerson(int firstBloodyPerson) { + this.firstBloodyPerson = firstBloodyPerson; + } + + public void addCahceBroadMsg(String msg){ + cacheMsg.add(msg); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/SceneActor.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/SceneActor.java index 7f7ae2431..4d2106d71 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/SceneActor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/actor/SceneActor.java @@ -4,6 +4,9 @@ package com.ljsd.jieling.battle.actor; import com.ljsd.jieling.battle.BattleManager; import com.ljsd.jieling.battle.room.SceneManager; +import com.ljsd.jieling.battle.statics.AnalysisEventType; +import com.ljsd.jieling.battle.statics.AnalysisSourceData; +import com.ljsd.jieling.battle.statics.MessageBoxUtils; import com.ljsd.jieling.config.SBloodyBattleSetting; import java.util.*; @@ -78,6 +81,7 @@ public abstract class SceneActor{ scene.processEventUpdate(EventType.SCENEACTORE_UPDATE,mineral.getId()); } value.updateEffectValue(0,reallyDigger + value.getValues().get(0)); + MessageBoxUtils.onGameEvent(AnalysisEventType.DIGGER,scene,new AnalysisSourceData(value.getTarget(),value.getCaster(),reallyDigger)); } int[][] debuffs = SBloodyBattleSetting.sBloodyBattleSetting.getDebuff(); for(int i=0;i{ + private int uid; + private int mineral; + private int killNums; + + + public SortDataBean(int uid, int mineral, int killNums) { + this.uid = uid; + this.mineral = mineral; + this.killNums = killNums; + } + + @Override + public int compareTo(SortDataBean o) { + if(this.mineral>o.mineral){ + return -1; + } + if(this.mineral == o.mineral){ + if(this.killNums>o.killNums){ + return -1; + } + if(this.killNums == o.killNums){ + if(this.uid < o.uid){ + return -1; + } + } + } + return 1; + } + + public int getUid() { + return uid; + } + + public int getMineral() { + return mineral; + } + + public int getKillNums() { + return killNums; + } + + public static void main(String[] args) { + List sortDataBeans = new ArrayList<>(); + sortDataBeans.add(new SortDataBean(1,2,2)); + sortDataBeans.add(new SortDataBean(2,2,3)); + sortDataBeans.add(new SortDataBean(3,3,2)); + sortDataBeans.add(new SortDataBean(4,4,2)); + sortDataBeans.add(new SortDataBean(5,4,2)); + Collections.sort(sortDataBeans); + System.out.println(sortDataBeans); + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/match/BloodyBattleReallyMatchServer.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/match/BloodyBattleReallyMatchServer.java new file mode 100644 index 000000000..a9a35b846 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/match/BloodyBattleReallyMatchServer.java @@ -0,0 +1,50 @@ +package com.ljsd.jieling.battle.match; + +import com.ljsd.jieling.battle.room.Room; +import com.ljsd.jieling.battle.room.WaitingRoom; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicInteger; + +public class BloodyBattleReallyMatchServer implements IMatch{ + private static WaitingRoom waitingRoom = new WaitingRoom(); + private static Map roomFull = new HashMap<>(); + private static Map uidToRommMap = new HashMap<>(); + static { + roomFull.put(1,10); + } + private static AtomicInteger atomicInteger = new AtomicInteger(10000); + @Override + public void tryMatch(int uid, int type) { + Room room = waitingRoom.findRoom(type, new IMatch.IRoomMatchFilter() { + @Override + public Room filter(List rooms) { + int full = roomFull.get(type); + for (Room room : rooms) { + if (!room.isFull(full)) { + return room; + } + } + return null; + } + }); + } + + @Override + public MatchType getMatchType() { + return null; + } + + @Override + public Room getRoomId(int uid) { + return null; + } + + @Override + public void clearUidRoom(int uid) { + + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/room/BeanToProto.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/room/BeanToProto.java index 3fea038b1..a8e7cf91d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/room/BeanToProto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/room/BeanToProto.java @@ -42,10 +42,13 @@ public class BeanToProto { builder.addHeroInfo(CommonProto.BloodyHeroInfo.newBuilder().setHeroId(heroId).setHeroHp(curHp).setHeroMaxHp(hp).setHeroTid(familyHeroInfo.getTempleteId())); } } + if(creature.getStateType() != StateType.FROZEN){ + builder.addAllPath(creature.getPath()); + } return builder.setCurHp(creature.getLife().getCurHp()) .setMaxHp(creature.getLife().getMaxMp()) .setSpeed(creature.getSpeed()) - .addAllPath(creature.getPath()) + .setCamp(creature.getCamp()) .setMineral(creature.getMineral()) .build(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/room/SceneManager.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/room/SceneManager.java index b2251d7eb..d57ee43ec 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/room/SceneManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/room/SceneManager.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.battle.room; import com.ljsd.jieling.battle.BattleManager; import com.ljsd.jieling.battle.UserBloodySnpInfo; import com.ljsd.jieling.battle.actor.*; +import com.ljsd.jieling.battle.statics.AnalysisData; import com.ljsd.jieling.config.MapPointConfig; import com.ljsd.jieling.config.SBloodyBattleSetting; import com.ljsd.jieling.config.SCMap; @@ -92,6 +93,7 @@ public class SceneManager { playerA.setPos(userInitBirths.remove(0)); playerA.setSpeed(sBloodyBattleSetting.getPlayerSpeed()); scene.addScenActor(playerA); + scene.getAnalysisDataMap().put(uid,new AnalysisData(uid)); } //创建矿点 createMinear(scene,-1,1); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisData.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisData.java index 7fab4687f..6c309995a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisData.java @@ -6,6 +6,7 @@ public class AnalysisData { private int deadNums; //死亡次数 private int diggerTimes; // 连续挖矿次数 private int continuousKillNums;//连续杀敌次数 + private int continuousKillNumsCache;//连续杀敌次数 CACHE private int continuousDeadNums;//连续死亡次数 public AnalysisData(int id) { @@ -16,15 +17,53 @@ public class AnalysisData { killNums++; continuousKillNums++; continuousDeadNums=0; + continuousKillNumsCache++; } public void fail(){ deadNums++; continuousKillNums=0; - continuousDeadNums=0; + continuousDeadNums++; } public void digger(){ diggerTimes++; } + + public void clearDigger(){ + diggerTimes=0; + } + + + public int getId() { + return id; + } + + public int getKillNums() { + return killNums; + } + + public int getDeadNums() { + return deadNums; + } + + public int getDiggerTimes() { + return diggerTimes; + } + + public int getContinuousKillNums() { + return continuousKillNums; + } + + public int getContinuousDeadNums() { + return continuousDeadNums; + } + + public int getContinuousKillNumsCache() { + return continuousKillNumsCache; + } + + public void cleanContinuousKillNumsCache(){ + continuousKillNumsCache=0; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisDataType.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisDataType.java new file mode 100644 index 000000000..29aeff535 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/AnalysisDataType.java @@ -0,0 +1,20 @@ +package com.ljsd.jieling.battle.statics; + +public enum AnalysisDataType { + CONTINUOUS_KILL_NUMS(1),//杀敌 + CONTINUOUS_DIED_NUMS(2),//2被杀 + DIGGER_NUMS(3),//3挖矿 + END_CONTINUOUS_KILL_NUMS(4),// 4终结 + FIRST_BLOODY(5),// 5一血 + SEND_TO_DEATH(6),// 6狂送 + ; + private int type; + + AnalysisDataType(int type) { + this.type = type; + } + + public int getType() { + return type; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/BattleAnalysisProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/BattleAnalysisProcessor.java index 12f0623eb..1db10cdf1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/BattleAnalysisProcessor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/BattleAnalysisProcessor.java @@ -1,7 +1,14 @@ package com.ljsd.jieling.battle.statics; +import com.ljsd.jieling.battle.BattleManager; +import com.ljsd.jieling.battle.UserBloodySnpInfo; import com.ljsd.jieling.battle.actor.Scene; +import com.ljsd.jieling.config.SBloodyMessagesConfig; + +import java.text.MessageFormat; +import java.util.List; + public class BattleAnalysisProcessor implements AnalysisProcessor{ @Override public void process(Scene scene, AnalysisSourceData analysisSourceData){ @@ -13,4 +20,70 @@ public class BattleAnalysisProcessor implements AnalysisProcessor{ } } + + public void analysis(Scene scene,AnalysisData targetAnalysisData,AnalysisSourceData analysisSourceData){ + List sBloodyMessagesConfigs = MessageBoxUtils.analysisEventTypeAnalysisDataTypeMap.get(AnalysisEventType.BATTLE); + for(SBloodyMessagesConfig sBloodyMessagesConfig : sBloodyMessagesConfigs){ + int count = sBloodyMessagesConfig.getCount(); + if(sBloodyMessagesConfig.getType() == AnalysisDataType.FIRST_BLOODY.getType()){ + if(targetAnalysisData.getContinuousKillNums() == count){ + int firstBloodyPerson = scene.getFirstBloodyPerson(); + if(firstBloodyPerson == 0 && targetAnalysisData.getContinuousKillNums() == 1){ + scene.setFirstBloodyPerson(targetAnalysisData.getId()); + int targetId = analysisSourceData.getTargetId(); + int casterId = analysisSourceData.getCaster(); + UserBloodySnpInfo targetBloodySnpInfo = BattleManager.bloodMyHeroInfoMap.get(targetId); + UserBloodySnpInfo casterBloodySnpInfo = BattleManager.bloodMyHeroInfoMap.get(casterId); + String targetName = targetBloodySnpInfo.getName(); + String casterName = casterBloodySnpInfo.getName(); + scene.addCahceBroadMsg(MessageFormat.format(sBloodyMessagesConfig.getMessage(),new String[]{targetName,casterName})); + } + } + return; + } + if(sBloodyMessagesConfig.getType() == AnalysisDataType.CONTINUOUS_KILL_NUMS.getType()){ + if(targetAnalysisData.getContinuousKillNums() == count){ + int id = targetAnalysisData.getId(); + UserBloodySnpInfo userBloodySnpInfo = BattleManager.bloodMyHeroInfoMap.get(id); + String name = userBloodySnpInfo.getName(); + scene.addCahceBroadMsg(MessageFormat.format(sBloodyMessagesConfig.getMessage(),new String[]{name})); + } + return; + } + if(sBloodyMessagesConfig.getType() == AnalysisDataType.CONTINUOUS_DIED_NUMS.getType()){ + if(targetAnalysisData.getContinuousDeadNums() == count){ + int id = targetAnalysisData.getId(); + UserBloodySnpInfo userBloodySnpInfo = BattleManager.bloodMyHeroInfoMap.get(id); + String name = userBloodySnpInfo.getName(); + scene.addCahceBroadMsg(MessageFormat.format(sBloodyMessagesConfig.getMessage(),new String[]{name})); + } + return; + } + if(sBloodyMessagesConfig.getType() == AnalysisDataType.END_CONTINUOUS_KILL_NUMS.getType()){ + int targetId = analysisSourceData.getTargetId(); + int casterId = analysisSourceData.getCaster(); + AnalysisData analysisData = scene.getAnalysisDataMap().get(casterId); + if(analysisData.getContinuousKillNumsCache()>=sBloodyMessagesConfig.getType()){ + analysisData.cleanContinuousKillNumsCache(); + UserBloodySnpInfo targetBloodySnpInfo = BattleManager.bloodMyHeroInfoMap.get(targetId); + UserBloodySnpInfo casterBloodySnpInfo = BattleManager.bloodMyHeroInfoMap.get(casterId); + String targetName = targetBloodySnpInfo.getName(); + String casterName = casterBloodySnpInfo.getName(); + scene.addCahceBroadMsg(MessageFormat.format(sBloodyMessagesConfig.getMessage(),new String[]{targetName,casterName})); + } + return; + } + if(sBloodyMessagesConfig.getType() == AnalysisDataType.SEND_TO_DEATH.getType()){ + if(targetAnalysisData.getContinuousDeadNums() >= count){ + int id = targetAnalysisData.getId(); + UserBloodySnpInfo userBloodySnpInfo = BattleManager.bloodMyHeroInfoMap.get(id); + String name = userBloodySnpInfo.getName(); + scene.addCahceBroadMsg(MessageFormat.format(sBloodyMessagesConfig.getMessage(),new String[]{name})); + } + return; + } + + } + + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/DiggerAnalysisProcessor.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/DiggerAnalysisProcessor.java index c76876aed..3e79f5a41 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/DiggerAnalysisProcessor.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/DiggerAnalysisProcessor.java @@ -1,12 +1,40 @@ package com.ljsd.jieling.battle.statics; +import com.ljsd.jieling.battle.BattleManager; +import com.ljsd.jieling.battle.UserBloodySnpInfo; import com.ljsd.jieling.battle.actor.Scene; +import com.ljsd.jieling.config.SBloodyMessagesConfig; + +import java.text.MessageFormat; +import java.util.List; public class DiggerAnalysisProcessor implements AnalysisProcessor{ @Override public void process(Scene scene, AnalysisSourceData analysisSourceData) { AnalysisData analysisData = scene.getAnalysisDataMap().get(analysisSourceData.getTargetId()); - analysisData.digger(); + int value = analysisSourceData.getValue(); + if(value == -1){ + analysisData.clearDigger(); + }else{ + analysisData.digger(); + } + analysis(scene,analysisData,analysisSourceData); + } + + public void analysis(Scene scene,AnalysisData targetAnalysisData,AnalysisSourceData analysisSourceData){ + List sBloodyMessagesConfigs = MessageBoxUtils.analysisEventTypeAnalysisDataTypeMap.get(AnalysisEventType.DIGGER); + for(SBloodyMessagesConfig sBloodyMessagesConfig : sBloodyMessagesConfigs){ + int count = sBloodyMessagesConfig.getCount(); + if(sBloodyMessagesConfig.getType() == AnalysisDataType.DIGGER_NUMS.getType()){ + if(targetAnalysisData.getDiggerTimes() == count){ + int id = targetAnalysisData.getId(); + UserBloodySnpInfo userBloodySnpInfo = BattleManager.bloodMyHeroInfoMap.get(id); + String name = userBloodySnpInfo.getName(); + scene.addCahceBroadMsg(MessageFormat.format(sBloodyMessagesConfig.getMessage(),new String[]{name})); + break; + } + } + } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/MessageBoxUtils.java b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/MessageBoxUtils.java index 529d98dd7..62a494ce0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/MessageBoxUtils.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/battle/statics/MessageBoxUtils.java @@ -1,18 +1,39 @@ package com.ljsd.jieling.battle.statics; +import com.ljsd.jieling.battle.actor.Scene; +import com.ljsd.jieling.config.SBloodyMessagesConfig; + +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; public class MessageBoxUtils { private static Map analysisEventTypeIntegerMap = new HashMap<>(); + public static Map> analysisEventTypeAnalysisDataTypeMap = new HashMap<>(); static { //更新统计数据 数据汇总聚合 analysisEventTypeIntegerMap.put(AnalysisEventType.BATTLE,new BattleAnalysisProcessor()); analysisEventTypeIntegerMap.put(AnalysisEventType.DIGGER,new DiggerAnalysisProcessor()); } + public static void init(){ + Map sBloodyMessagesConfigMap = SBloodyMessagesConfig.sBloodyMessagesConfigMap; + analysisEventTypeAnalysisDataTypeMap.put(AnalysisEventType.BATTLE,new ArrayList<>()); + analysisEventTypeAnalysisDataTypeMap.put(AnalysisEventType.DIGGER,new ArrayList<>()); + for(SBloodyMessagesConfig sBloodyMessagesConfig:sBloodyMessagesConfigMap.values()){ + int type = sBloodyMessagesConfig.getType(); + if(type == AnalysisDataType.DIGGER_NUMS.getType()){ + analysisEventTypeAnalysisDataTypeMap.get(AnalysisEventType.DIGGER).add(sBloodyMessagesConfig); + continue; + } + analysisEventTypeAnalysisDataTypeMap.get(AnalysisEventType.BATTLE).add(sBloodyMessagesConfig); + } + } - public static void onGameEvent(AnalysisEventType type){ + + public static void onGameEvent(AnalysisEventType type, Scene scene,AnalysisSourceData analysisSourceData){ AnalysisProcessor analysisProcessor = analysisEventTypeIntegerMap.get(type); + analysisProcessor.process(scene,analysisSourceData); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyBattleReward.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyBattleReward.java new file mode 100644 index 000000000..f15832f3b --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyBattleReward.java @@ -0,0 +1,33 @@ +package com.ljsd.jieling.config; + +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.Table; + +import java.util.Map; + +@Table(name ="BloodyBattleReward") +public class SBloodyBattleReward implements BaseConfig { + + private int id; + + private int score; + + public static Map sBloodyBattleRewardMap; + + + @Override + public void init() throws Exception { + sBloodyBattleRewardMap = STableManager.getConfig(SBloodyBattleReward.class); + } + + + public int getId() { + return id; + } + + public int getScore() { + return score; + } + + +} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyMessagesConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyMessagesConfig.java index dedd4cdc1..bbba11936 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyMessagesConfig.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyMessagesConfig.java @@ -1,8 +1,12 @@ package com.ljsd.jieling.config; +import com.ljsd.jieling.battle.statics.MessageBoxUtils; import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.Table; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; import java.util.Map; @Table(name ="BloodyMessagesConfig") @@ -18,10 +22,14 @@ public class SBloodyMessagesConfig implements BaseConfig { private String message; + public static Map> sBloodyMessagesConfigByTypeMap; + public static Map sBloodyMessagesConfigMap; + @Override public void init() throws Exception { - + sBloodyMessagesConfigMap = STableManager.getConfig(SBloodyMessagesConfig.class); + MessageBoxUtils.init(); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyRankConfig.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyRankConfig.java new file mode 100644 index 000000000..29fa1ef1f --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SBloodyRankConfig.java @@ -0,0 +1,51 @@ +package com.ljsd.jieling.config; + +import com.ljsd.jieling.logic.STableManager; +import com.ljsd.jieling.logic.Table; + +import java.util.Map; + +@Table(name ="BloodyRankConfig") +public class SBloodyRankConfig implements BaseConfig { + + private int id; + + private int rank; + + private int stage; + + private int score; + + private int[][] reward; + + private static Map sBloodyRankConfigMap; + + + @Override + public void init() throws Exception { + sBloodyRankConfigMap = STableManager.getConfig(SBloodyRankConfig.class); + } + + + public int getId() { + return id; + } + + public int getRank() { + return rank; + } + + public int getStage() { + return stage; + } + + public int getScore() { + return score; + } + + public int[][] getReward() { + return reward; + } + + +} \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index 3c3a8c302..26dc137f7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -154,6 +154,8 @@ public class RedisKey { public static final String SESSION_OFFLINE = "SESSION_OFFLINE"; + public static final String BLOODY_RANK = "BLOODY_RANK"; + public static String getKey(String type, String key, boolean withoutServerId) { if (withoutServerId) { return GameApplication.areaId + Delimiter_colon + type + Delimiter_colon + String.valueOf(key); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java index 6425cb7c8..13bc3c29d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java @@ -964,6 +964,9 @@ public class RedisUtil { public String getKey(String type,String key){ + if(RedisKey.BLOODY_RANK.equals(key)){ + return type + RedisKey.Delimiter_colon + key; + } return GameApplication.serverId + RedisKey.Delimiter_colon + type + RedisKey.Delimiter_colon + key; } From 463d63a7fb10506a9744c876b7b59b8c8d3a86d6 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 3 Sep 2019 19:41:07 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=B3=95=E5=AE=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/config/SEquipTalismana.java | 16 +++ .../com/ljsd/jieling/globals/BIReason.java | 2 + .../jieling/handler/UpHeroStarHandler.java | 7 +- .../handler/UseAndPriceItemHandler.java | 5 +- .../ljsd/jieling/handler/map/EventType.java | 2 +- .../handler/map/behavior/BehaviorUtil.java | 15 +++ .../map/behavior/FourtyEightBehavior.java | 9 +- .../map/behavior/FourtyNineBehavior.java | 27 +++++ .../ljsd/jieling/logic/dao/EquipManager.java | 17 ++++ .../ljsd/jieling/logic/dao/EspecialEquip.java | 2 +- .../java/com/ljsd/jieling/logic/dao/Hero.java | 4 - .../ljsd/jieling/logic/hero/HeroLogic.java | 44 ++++++--- .../ljsd/jieling/logic/item/ItemLogic.java | 99 ++++++++++++++++++- 13 files changed, 214 insertions(+), 35 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyNineBehavior.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java b/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java index e53dc2295..117c510fd 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/config/SEquipTalismana.java @@ -3,6 +3,7 @@ package com.ljsd.jieling.config; import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.Table; +import java.util.HashMap; import java.util.Map; @Table(name ="EquipTalismana") @@ -26,11 +27,22 @@ public class SEquipTalismana implements BaseConfig { private int[] openSkillRules; + private int[][] resolve; + public static Map equipTalismanaMap ; + + public static Map> equipTalismanaStarMap; @Override public void init() throws Exception { equipTalismanaMap = STableManager.getConfig(SEquipTalismana.class); + equipTalismanaStarMap = new HashMap<>(); + for(Map.Entry entry: equipTalismanaMap.entrySet()){ + if(equipTalismanaStarMap.get(entry.getValue().getTalismanaId())==null){ + equipTalismanaStarMap.put(entry.getValue().getTalismanaId(),new HashMap<>()); + } + equipTalismanaStarMap.get(entry.getValue().getTalismanaId()).put(entry.getValue().getLevel(),entry.getValue()); + } } @@ -71,4 +83,8 @@ public class SEquipTalismana implements BaseConfig { public int[][] getSpecialSkill() { return specialSkill; } + + public int[][] getResolve() { + return resolve; + } } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index d5c84007f..109548aea 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -139,4 +139,6 @@ public interface BIReason { int CHANGE_NAME = 1034; // 改名消耗 + int ESPECIAL_EQUIP_UP_LEVEL_CONSUME = 1035;//法宝进阶消耗 + } \ No newline at end of file diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java index 4761e28fc..abd070f72 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/UpHeroStarHandler.java @@ -1,6 +1,7 @@ package com.ljsd.jieling.handler; import com.ljsd.jieling.logic.hero.HeroLogic; +import com.ljsd.jieling.logic.item.ItemLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.HeroInfoProto; @@ -22,7 +23,11 @@ public class UpHeroStarHandler extends BaseHandler{ HeroInfoProto.UpHeroStarRequest upHeroStarRequest = HeroInfoProto.UpHeroStarRequest.parseFrom(bytes); List consumeMaterialsList = upHeroStarRequest.getConsumeMaterialsList(); String heroId = upHeroStarRequest.getHeroId(); - HeroLogic.getInstance().upHeroStar(iSession,heroId,consumeMaterialsList); + if(upHeroStarRequest.getType()==1){ + HeroLogic.getInstance().upHeroStar(iSession,heroId,consumeMaterialsList); + }else{ + ItemLogic.getInstance().especialEquipUpStar(iSession,heroId,consumeMaterialsList); + } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/UseAndPriceItemHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/UseAndPriceItemHandler.java index 0c85e30f8..012bc8a52 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/UseAndPriceItemHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/UseAndPriceItemHandler.java @@ -36,10 +36,11 @@ public class UseAndPriceItemHandler extends BaseHandler { ItemLogic.getInstance().priceItem(iSession,itemList); } else if (type == 2){ //分解装备 ItemLogic.getInstance().decomposeEquip(iSession,equipIdsList); - }else{ + } else if(type==3){ CommonProto.Drop.Builder baseBuilder =ItemLogic.getInstance().decomposeHero(iSession,heroIdsList,null, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE); ItemLogic.sendUseAndPriceItemMessage(iSession, MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE, baseBuilder); + }else {//分解法宝 + ItemLogic.getInstance().decomposeEspecialEquip(iSession, equipIdsList); } - } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java index 14fb0994b..9b4212724 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/EventType.java @@ -110,7 +110,7 @@ public class EventType { public static final int fourtySix = 46; public static final int fourtySeven = 47; public static final int fourtyEight = 48; - + public static final int fourtyNine = 49; public static final int updatePonintEvent = 1; public static final int fightEvent = 2; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java index 747b8c77f..e4010e44a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/BehaviorUtil.java @@ -13,6 +13,7 @@ import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.handler.map.MapManager; import com.ljsd.jieling.handler.mission.CheckMissionReturn; import com.ljsd.jieling.handler.mission.Mission; +import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.dao.Hero; import com.ljsd.jieling.logic.dao.StoreInfo; import com.ljsd.jieling.logic.dao.StoreManager; @@ -24,8 +25,11 @@ import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.FightInfoProto; import com.ljsd.jieling.protocols.MapInfoProto; +import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.util.CellUtil; +import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MonsterUtil; +import com.ljsd.jieling.util.TimeUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -428,4 +432,15 @@ public class BehaviorUtil { } return monsterTeamList; } + + public static void refreshTimeMonster(User user,int[][] behaviorTypeValues){ + user.getMapManager().updateEndlessCellTime(user.getMapManager().getCurXY(), (int)(TimeUtils.now()/1000)+behaviorTypeValues[0][1]); + Map cellRefreshTime = user.getMapManager().getEndlessMapInfo().getCellRefreshTime(); + MapInfoProto.EndlessTimeIndication.Builder indication = MapInfoProto.EndlessTimeIndication.newBuilder(); + for(Map.Entry entry:cellRefreshTime.entrySet()){ + CommonProto.EndlessRefreshInfo info = CommonProto.EndlessRefreshInfo.newBuilder().setCellId(entry.getKey()).setTime(entry.getValue()).build(); + indication.addInfos(info); + } + MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1, MessageTypeProto.MessageType.ENDLESS_REFRESH_INDICAITON_VALUE,indication.build(),true); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyEightBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyEightBehavior.java index 703c99f3b..bc9d6070e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyEightBehavior.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyEightBehavior.java @@ -34,14 +34,7 @@ public class FourtyEightBehavior extends BaseBehavior{ @Override public boolean afterFight(User user, int[][] behaviorTypeValues, FightInfoProto.FightEndResponse.Builder fightEndResponse){ - user.getMapManager().updateEndlessCellTime(user.getMapManager().getCurXY(), (int)(TimeUtils.now()/1000)+behaviorTypeValues[0][1]); - Map cellRefreshTime = user.getMapManager().getEndlessMapInfo().getCellRefreshTime(); - MapInfoProto.EndlessTimeIndication.Builder indication = MapInfoProto.EndlessTimeIndication.newBuilder(); - for(Map.Entry entry:cellRefreshTime.entrySet()){ - CommonProto.EndlessRefreshInfo info = CommonProto.EndlessRefreshInfo.newBuilder().setCellId(entry.getKey()).setTime(entry.getValue()).build(); - indication.addInfos(info); - } - MessageUtil.sendIndicationMessage(OnlineUserManager.getSessionByUid(user.getId()),1, MessageTypeProto.MessageType.ENDLESS_REFRESH_INDICAITON_VALUE,indication.build(),true); + BehaviorUtil.refreshTimeMonster(user,behaviorTypeValues); return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyNineBehavior.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyNineBehavior.java new file mode 100644 index 000000000..b10dcc878 --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/behavior/FourtyNineBehavior.java @@ -0,0 +1,27 @@ +package com.ljsd.jieling.handler.map.behavior; + +import com.ljsd.jieling.handler.map.EventType; +import com.ljsd.jieling.logic.OnlineUserManager; +import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.MapInfoProto; +import com.ljsd.jieling.protocols.MessageTypeProto; +import com.ljsd.jieling.util.MessageUtil; +import com.ljsd.jieling.util.TimeUtils; +import org.springframework.stereotype.Component; + +import java.util.Map; + +@Component +public class FourtyNineBehavior extends BaseBehavior { + @Override + public int getBehaviorType() { + return EventType.fourtyNine; + } + + @Override + public boolean process(int optionId, User user, int[][] behaviorTypeValues, MapInfoProto.EventUpdateResponse.Builder eventUpdateResponse) throws Exception { + BehaviorUtil.refreshTimeMonster(user,behaviorTypeValues); + return true; + } +} 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 f9abea113..19d52f535 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 @@ -42,6 +42,13 @@ public class EquipManager extends MongoBase { especialEquipMap.put(especialEquip.getId(), especialEquip); } + public void removeEspecialEquip(String equip){ + if(especialEquipMap.containsKey(equip)){ + removeString(getMongoKey()+".especialEquipMap."+equip); + especialEquipMap.remove(equip); + } + + } public void remove(String equipId){ if (equipMap.containsKey(equipId)){ removeString(getMongoKey()+".equipMap." + equipId); @@ -76,4 +83,14 @@ public class EquipManager extends MongoBase { public Map getEquipHandBook() { return equipHandBook; } + + public void upStarEspecialEquip(String equipId){ + EspecialEquip especialEquip = especialEquipMap.get(equipId); + if(especialEquip ==null){ + return; + } + especialEquip.setStar(especialEquip.getStar()+1); + especialEquipMap.put(equipId,especialEquip); + updateString("especialEquipMap."+equipId+".star",especialEquip.getStar()+1); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EspecialEquip.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EspecialEquip.java index 66abf057d..a03053ad0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EspecialEquip.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/EspecialEquip.java @@ -12,7 +12,7 @@ public class EspecialEquip extends PropertyItem { super(); super.setId(KeyGenUtils.produceIdByModule(UUIDEnum.ESPECIAL_EQUIP, uid)); super.setEquipId(equipTid); - this.star = 1; + this.star = 8; } public EspecialEquip() { this.setRootCollection(User._COLLECTION_NAME); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java index b11c0d263..36e09b7af 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/Hero.java @@ -208,10 +208,6 @@ public class Hero extends MongoBase { this.especialEquip = especialEquip; updateString("especialEquip",especialEquip); } - public void removeEspecial() { - removeString(getMongoKey()+".especialEquip"); - especialEquip=""; - } public String getEspecialEquip() { return especialEquip; 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 f2eb88af5..18d0c3dca 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 @@ -6,10 +6,8 @@ import com.ljsd.jieling.config.*; import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.core.VipPrivilegeType; -import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; -import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.*; @@ -17,7 +15,6 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.item.ItemLogic; import com.ljsd.jieling.logic.mission.GameEvent; -import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; @@ -843,6 +840,23 @@ public class HeroLogic { } return sb; } + //法宝技能 + String especialEquipId = hero.getEspecialEquip(); + if(!StringUtil.isEmpty(especialEquipId)){ + EspecialEquip especialEquip = user.getEquipManager().getEspecialEquipMap().get(especialEquipId); + SEquipTalismana sEquipTalismana = SEquipTalismana.equipTalismanaStarMap.get(especialEquip.getEquipId()).get(especialEquip.getStar()); + for(int skill:sEquipTalismana.getOpenSkillRules()){ + sb.append(skill).append(DIVISION); + } + SCHero tempHero = SCHero.getsCHero().get(hero.getTemplateId()); + int[][] specialSkill = sEquipTalismana.getSpecialSkill(); + for(int i = 0 ; i < specialSkill.length;i++){ + if(tempHero.getProfession()==specialSkill[i][0]){ + sb.append(specialSkill[i][1]).append(DIVISION); + } + } + } + return sb; } @@ -1110,17 +1124,19 @@ public class HeroLogic { Map especialEquipMap = user.getEquipManager().getEspecialEquipMap(); int equipTempId = especialEquipMap.get(especialEquip).getEquipId(); int tempStar = especialEquipMap.get(especialEquip).getStar(); - Map equipTalismanaMap = SEquipTalismana.equipTalismanaMap; - for(Map.Entry entry:equipTalismanaMap.entrySet()){ - SEquipTalismana equipTali = entry.getValue(); - if(equipTali.getTalismanaId()!=equipTempId){ - continue; + Map> equipTalismanaMap = SEquipTalismana.equipTalismanaStarMap; + + SEquipTalismana equipTali = equipTalismanaMap.get(equipTempId).get(tempStar); + combinedAttribute(equipTali.getProperty(),heroAllAttribute); + //法宝职业额外加成 + SCHero tempHero = SCHero.getsCHero().get(hero.getTemplateId()); + int[][] specialProperty = equipTali.getSpecialProperty(); + for(int i = 0 ; i < specialProperty.length;i++){ + if(tempHero.getProfession()==specialProperty[i][0]){ + int [][] property = new int[1][]; + property[0] = new int[]{specialProperty[i][1],specialProperty[i][2]}; + combinedAttribute(property, heroAllAttribute); } - if(equipTali.getLevel()!=tempStar){ - continue; - } - combinedAttribute(equipTali.getProperty(),heroAllAttribute); - break; } } @@ -1370,7 +1386,7 @@ public class HeroLogic { hero.removeEquip(position); } }else if(type==2){ - hero.removeEspecial(); + hero.updateEspecial(""); } //发送成功消息 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 c5aa717df..489c304d2 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 @@ -1,9 +1,6 @@ package com.ljsd.jieling.logic.item; -import com.ljsd.jieling.config.SCHeroRankUpConfig; -import com.ljsd.jieling.config.SGameSetting; -import com.ljsd.jieling.config.SHeroLevlConfig; -import com.ljsd.jieling.config.SItem; +import com.ljsd.jieling.config.*; import com.ljsd.jieling.globals.BIReason; import com.ljsd.jieling.globals.Global; import com.ljsd.jieling.handler.map.MapManager; @@ -12,6 +9,7 @@ import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; +import com.ljsd.jieling.protocols.HeroInfoProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.util.CBean2Proto; @@ -182,6 +180,34 @@ public class ItemLogic { sendUseAndPriceItemMessage(iSession, msgId, drop); } + /** + * 分解法宝 + * @param iSession + * @param equipIdsList + * @throws Exception + */ + public void decomposeEspecialEquip(ISession iSession, List equipIdsList) throws Exception { + int msgId = MessageTypeProto.MessageType.USER_AND_PRICE_ITEM_RESPONSE_VALUE; + int uid = iSession.getUid(); + User user = UserManager.getUser(uid); + EquipManager equipManager = user.getEquipManager(); + Map reward = new HashMap<>(); + for (String equipId : equipIdsList) { + EspecialEquip equip= equipManager.getEspecialEquipMap().get(equipId); + int[][] resolve = SEquipTalismana.equipTalismanaStarMap.get(equip.getEquipId()).get(equip.getStar()).getResolve(); + for(int i = 0;i equipIdsList,EquipManager equipManager) { if (equipIdsList.size() == 0){ return "无可分解装备"; @@ -351,4 +377,69 @@ public class ItemLogic { } MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); } + + /** + * 法宝进阶 + * @param session + * @param equipId + * @param materials + */ + public void especialEquipUpStar(ISession session, String equipId, List materials) throws Exception { + User user = UserManager.getUser(session.getUid()); + EspecialEquip especialEquip = user.getEquipManager().getEspecialEquipMap().get(equipId); + SEquipTalismana sEquipTalismana = SEquipTalismana.equipTalismanaStarMap.get(especialEquip.getEquipId()).get(especialEquip.getStar()); + Map equipTalismanaRankupMap = SEquipTalismanaRankup.equipTalismanaRankupMap; + boolean success = true; + //按槽位遍历所需材料 + for(int i = 0 ; i heroIdsList = material.getHeroIdsList(); + Iterator iterator = heroIdsList.iterator(); + while (iterator.hasNext()){ + user.getEquipManager().removeEspecialEquip(iterator.next()); + } + } + 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,"材料不足"); + + } + } } From 26ab22db5645fd5b38cb53b93e1b11b55e44297c Mon Sep 17 00:00:00 2001 From: wangyuan Date: Tue, 3 Sep 2019 20:16:44 +0800 Subject: [PATCH 5/9] activity --- .../java/com/ljsd/jieling/logic/activity/ActivityLogic.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index dca5fe3d2..e6d03a6c5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -211,6 +211,11 @@ public class ActivityLogic { if (activityMission != null) { continue; } + AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(activityId); + if (null==abstractActivity) { + continue; + } + abstractActivity.initActivity(user); if(!initOtherActivity(user, sGlobalActivity)){ activityManager.initAllActivityMission(activityId); } From 3caea6d9d296cff85ef2e98023274f993337baa6 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Tue, 3 Sep 2019 20:49:14 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E6=88=91=E8=A6=81=E5=8F=98=E5=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/activity/ToBeStrongerHandler.java | 7 ++++--- .../jieling/logic/activity/ActivityLogic.java | 16 +++++++++------- .../ljsd/jieling/logic/dao/CumulationData.java | 2 ++ .../ljsd/jieling/logic/mission/GameEvent.java | 2 ++ .../ljsd/jieling/logic/mission/MissionLoigc.java | 3 +++ .../ljsd/jieling/logic/mission/MissionType.java | 4 +++- .../mission/data/DataManagerDistributor.java | 1 + .../logic/mission/data/StrongerManager.java | 12 ++++++++++++ .../mission/event/MissionEventDistributor.java | 5 +++++ 9 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/StrongerManager.java diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/ToBeStrongerHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/ToBeStrongerHandler.java index 946ed17c7..8ba5bbf66 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/ToBeStrongerHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/activity/ToBeStrongerHandler.java @@ -2,20 +2,21 @@ package com.ljsd.jieling.handler.activity; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.activity.ActivityLogic; +import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import org.springframework.stereotype.Component; @Component -public class ToBeStrongerHandler extends BaseHandler{ +public class ToBeStrongerHandler extends BaseHandler{ @Override public MessageTypeProto.MessageType getMessageCode() { return MessageTypeProto.MessageType.TO_BE_STRONGER_REQUEST; } @Override - public void processWithProto(ISession iSession, PlayerInfoProto.GetToBeStrongerRequest proto){ - ActivityLogic.getInstance().toBeStronger(iSession,proto.getTempId(),MessageTypeProto.MessageType.TO_BE_STRONGER_RESPONSE); + public void process(ISession iSession, PacketNetData netData) throws Exception { + ActivityLogic.getInstance().toBeStronger(iSession,MessageTypeProto.MessageType.TO_BE_STRONGER_RESPONSE); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java index dca5fe3d2..2ad6a5ed3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ActivityLogic.java @@ -1053,12 +1053,14 @@ public class ActivityLogic { * @param session * @param messageType */ - public void toBeStronger(ISession session, int tempId,MessageTypeProto.MessageType messageType){ - PlayerInfoProto.GetToBeStrongerResponse.Builder response = PlayerInfoProto.GetToBeStrongerResponse.newBuilder(); - for(int i = 0 ; i <6;i++){ - CommonProto.StrongerInfo.Builder info = CommonProto.StrongerInfo.newBuilder().setCurScore(1000).setMaxScore(6000); - response.addInfos(info.build()); - } - MessageUtil.sendMessage(session,1,messageType.getNumber(),response.build(),true); + public void toBeStronger(ISession session,MessageTypeProto.MessageType messageType) throws Exception { + User user = UserManager.getUser(session.getUid()); + user.getUserMissionManager().onGameEvent(user,GameEvent.TO_BE_STRONGER); +// PlayerInfoProto.GetToBeStrongerResponse.Builder response = PlayerInfoProto.GetToBeStrongerResponse.newBuilder(); +// for(int i = 0 ; i <6;i++){ +// CommonProto.StrongerInfo.Builder info = CommonProto.StrongerInfo.newBuilder().setCurScore(1000).setMaxScore(6000); +// response.addInfos(info.build()); +// } + MessageUtil.sendMessage(session,1,messageType.getNumber(),null,true); } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java index f18700065..308642124 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java @@ -90,6 +90,7 @@ public class CumulationData { public int takeSenvenLoinRewardTimes;// 领取七日登录奖励次数达到 public int takeDailyBoxTimes;// 领取日常任务宝箱奖励次数达到 public int wearEquipTimes;// 妖灵师穿戴装备件数达到 + public int toBeStronger; public Map synthesisHeroStarTimesMap = new HashMap<>();// 碎片合成%s星妖灵师次数达到 public Map heroUpStarTimesMap = new HashMap<>();//将妖灵师%s进阶次数达到 @@ -156,6 +157,7 @@ public class CumulationData { givePresents=0; friendNums=0; monsterAttackTimes = 0; + toBeStronger = 0; } private void clearArray(int[] source){ 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 e1b4ef1cd..82222ae31 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 @@ -52,4 +52,6 @@ public enum GameEvent { MONSTER_ATTACK_PLAY,//参与兽潮来袭 MONSTER_ATTACK_LEVEL, // 兽潮来袭到达层 + TO_BE_STRONGER,//我要变强 + } 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 2f3eb9cd5..c7d1daa24 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 @@ -584,6 +584,9 @@ public class MissionLoigc { case MONSTER_ATTACK_LEVEL: count = user.getMapManager().getLastMonsterAttack() - 1; break; + case TO_BE_STRONGER: + count = cumulationData.toBeStronger; + 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 3a1a724a0..041904e9a 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 @@ -76,7 +76,7 @@ public enum MissionType { JOIN_MONSTER_ATTACK_TIMES(56),//参与兽潮来袭的次数 MONSTER_ATTACK_LEVEL(57),//兽潮来袭到达x层 - + TO_BE_STRONGER(58) ; @@ -206,6 +206,8 @@ public enum MissionType { return JOIN_MONSTER_ATTACK_TIMES;//参与兽潮来袭的次数 case 57: return MONSTER_ATTACK_LEVEL;//兽潮来袭到达x层 + case 58: + return TO_BE_STRONGER; 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 212391602..a50327a89 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 @@ -97,6 +97,7 @@ 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()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/StrongerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/StrongerManager.java new file mode 100644 index 000000000..7007ef9bd --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mission/data/StrongerManager.java @@ -0,0 +1,12 @@ +package com.ljsd.jieling.logic.mission.data; + +import com.ljsd.jieling.logic.dao.CumulationData; +import com.ljsd.jieling.logic.mission.MissionType; + +public class StrongerManager implements BaseDataManager { + @Override + public CumulationData.Result updateData(CumulationData data, MissionType missionType, Object... parm) { + data.toBeStronger++; + 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 5b2198b03..c5e430d03 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 @@ -241,6 +241,11 @@ public class MissionEventDistributor { eventEnumListMap.put(GameEvent.MONSTER_ATTACK_LEVEL,typeList); eventProcessor.put(GameEvent.MONSTER_ATTACK_LEVEL,new CumulationDataEventProcessor()); + typeList = new ArrayList<>(); + typeList.add(MissionType.TO_BE_STRONGER); + eventEnumListMap.put(GameEvent.TO_BE_STRONGER,typeList); + eventProcessor.put(GameEvent.TO_BE_STRONGER,new CumulationDataEventProcessor()); + } private static final ThreadLocal>> threadMissionChangeList = From bf9bf974c62526467e802d12e50a31623aaf950f Mon Sep 17 00:00:00 2001 From: wangyuan Date: Wed, 4 Sep 2019 10:37:12 +0800 Subject: [PATCH 7/9] fix buygood logic --- .../main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java index 90cbd3fb1..3f12863bc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/BuyGoodsLogic.java @@ -71,10 +71,10 @@ public class BuyGoodsLogic { if(isDiscount!=0){ price=(int)(sRechargeCommodityConfig.getPrice() * (10 + isDiscount)/10f); } - if(!openId.equals("gm-test")&&price*10!=amount){ + if(!openId.equals("gm-test")&&price*100!=amount){ resultRes.setResultCode(0); resultRes.setResultMsg("amount is wrong"); - LOGGER.info("the uid={},shuld pay={},amount={}",uid,price,amount); + LOGGER.info("the uid={},should pay={},amount={}",uid,price*100,amount); return resultRes; } buyCount=buyCount+1; From 6de5deaa4015813c0c2c9538c71c54eca3313683 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 4 Sep 2019 11:08:47 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=88=91=E8=A6=81=E5=8F=98=E5=BC=BA?= =?UTF-8?q?=E7=AD=89=E7=BA=A7=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/core/FunctionIdEnum.java | 2 ++ .../java/com/ljsd/jieling/core/HandlerLogicThread.java | 7 ++++++- .../src/main/java/com/ljsd/jieling/globals/GlobalGm.java | 1 + .../com/ljsd/jieling/handler/GameGM/GMRequestHandler.java | 3 +++ .../java/com/ljsd/jieling/logic/dao/CumulationData.java | 2 +- .../java/com/ljsd/jieling/logic/mission/MissionType.java | 2 +- 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java index e558d3a2f..62bdf48b2 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/FunctionIdEnum.java @@ -36,6 +36,8 @@ public enum FunctionIdEnum { Store(20), Endless(46), + + ToBeStronger(48), WorkShopTech(101), WorkShopCreateEquip(102), WorkShopCreateProtectEquip(103), diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java b/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java index 1a8f2d2cc..9440657dc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/HandlerLogicThread.java @@ -90,7 +90,6 @@ public class HandlerLogicThread extends Thread{ - } public ConcurrentLinkedQueue handlerLinkedQueue = new ConcurrentLinkedQueue(); public ConcurrentLinkedQueue ayyncWorkerConcurrentLinkedQueue = new ConcurrentLinkedQueue(); @@ -272,6 +271,12 @@ public class HandlerLogicThread extends Thread{ return false; } break; + case MessageTypeProto.MessageType.TO_BE_STRONGER_REQUEST_VALUE: + sGlobalSystemConfig = SGlobalSystemConfig.getsGlobalSystemConfigByFunctionId(FunctionIdEnum.ToBeStronger); + if (checkOpen(user,sGlobalSystemConfig)) { + return false; + } + break; } } catch (Exception e) { e.printStackTrace(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java index 6185968cf..911d2c1e7 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/GlobalGm.java @@ -19,4 +19,5 @@ public interface GlobalGm { int MONSTER_JUMP = 16;//跳到兽潮层 int OUT_BLOODY_BATTLE = 17;//退出血战 + int MISSION_LEAD = 18;//任务指引 } 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 42b87f860..356fadd74 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 @@ -233,6 +233,9 @@ public class GMRequestHandler extends BaseHandler{ } break; + case GlobalGm.MISSION_LEAD: + + break; default: } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java index 308642124..d8a6f5a2b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/CumulationData.java @@ -90,7 +90,7 @@ public class CumulationData { public int takeSenvenLoinRewardTimes;// 领取七日登录奖励次数达到 public int takeDailyBoxTimes;// 领取日常任务宝箱奖励次数达到 public int wearEquipTimes;// 妖灵师穿戴装备件数达到 - public int toBeStronger; + public int toBeStronger;//我要变强 public Map synthesisHeroStarTimesMap = new HashMap<>();// 碎片合成%s星妖灵师次数达到 public Map heroUpStarTimesMap = new HashMap<>();//将妖灵师%s进阶次数达到 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 041904e9a..3f2f988db 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 @@ -76,7 +76,7 @@ public enum MissionType { JOIN_MONSTER_ATTACK_TIMES(56),//参与兽潮来袭的次数 MONSTER_ATTACK_LEVEL(57),//兽潮来袭到达x层 - TO_BE_STRONGER(58) + TO_BE_STRONGER(58)//我要变强点击:%s次 ; From 3f0bc58b510d5dbe609b8ed253748fc0772299b8 Mon Sep 17 00:00:00 2001 From: lvxinran Date: Wed, 4 Sep 2019 11:46:18 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E6=97=A0=E5=B0=BD=E5=89=AF=E6=9C=AC?= =?UTF-8?q?=E6=88=98=E5=8A=9B=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/ljsd/jieling/handler/map/Cell.java | 11 +++++++++++ .../java/com/ljsd/jieling/handler/map/MapLogic.java | 12 ++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/Cell.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/Cell.java index d135a99eb..a3c5dee56 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/Cell.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/Cell.java @@ -1,5 +1,8 @@ package com.ljsd.jieling.handler.map; +import com.ljsd.jieling.config.MapPointConfig; +import com.ljsd.jieling.util.MonsterUtil; + public class Cell { private int cellId; @@ -18,6 +21,14 @@ public class Cell { this.cellId = cellId; this.pointId = pointId; this.eventId = eventId; + MapPointConfig mapPointConfig = MapPointConfig.scMapEventMap.get(pointId); + int[] isShowFightAbility = mapPointConfig.getIsShowFightAbility(); + if(isShowFightAbility !=null&& isShowFightAbility.length>0){ + if(isShowFightAbility[0]!=0){ + int force = MonsterUtil.getMonsterForce(isShowFightAbility); + this.setForce(force); + } + } } public int getCellId() { 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 e97b988b3..2844ee9c0 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 @@ -421,13 +421,7 @@ public class MapLogic { continue; } Cell cellValue = new Cell(xy, mapPointConfig.getInitialEventId(), mapPointConfig.getId()); - int[] isShowFightAbility = mapPointConfig.getIsShowFightAbility(); - if(isShowFightAbility !=null&& isShowFightAbility.length>0){ - if(isShowFightAbility[0]!=0){ - int force = MonsterUtil.getMonsterForce(isShowFightAbility); - cellValue.setForce(force); - } - } + newMap.put(xy, cellValue); } if (user.getPlayerInfoManager().getMapId() == 100) { @@ -1353,7 +1347,7 @@ public class MapLogic { } } else { int[] option = sEventPointConfig.getOption(); - if (option == null) { + if (option == null||option.length<1) { LOGGER.info("option == null sEventPointConfig.getId()=>{}", sEventPointConfig.getId()); MessageUtil.sendErrorResponse(session, 0, messageType.getNumber(), ""); return; @@ -1514,6 +1508,8 @@ public class MapLogic { if(SChallengeConfig.sChallengeConfigs.get(mapManager.getCurMapId()).getType()==4){ Cell cell = mapManager.getMapInfo().get(triggerXY); MapPointConfig mapPointConfig = MapPointConfig.getScMapEventMap().get(cell.getPointId()); + Map map= SCMap.sCMap.get(mapManager.getCurMapId()); + if(mapPointConfig.getStyle()==1){ BehaviorUtil.destoryApointXY(user, triggerXY); }