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 0141b1743..6b8d1c32e 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 @@ -3019,7 +3019,7 @@ public class HeroLogic{ SSpiritAnimal animalConfig = STableManager.getConfig(SSpiritAnimal.class).get(tmpId); Map costMap = new HashMap<>(); costMap.put(animalConfig.getReturnCost()[0], animalConfig.getReturnCost()[1]); - if (ItemUtil.checkCost(user, costMap)) { + if (!ItemUtil.checkCost(user, costMap)) { throw new ErrorCodeException(ErrorCode.ITEM_NOT_ENOUGH); } Map returnMap = new HashMap<>(); @@ -3033,6 +3033,8 @@ public class HeroLogic{ returnMap.put(tmpId, returnMap.getOrDefault(tmpId, 0) + sumItemNum); } ItemUtil.itemCost(user, costMap, BIReason.SPECIAL_BACK_CONSUME, 1); + pokemonManager.updatePokemonLevel(pokemonId,1); + pokemonManager.updatePokemonStar(pokemonId,0); CommonProto.Drop.Builder drop = ItemUtil.drop(user, ItemUtil.mapToArray(returnMap), BIReason.SPECIAL_MONSTER_REWARD); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java index dfa9ae736..8d6b652db 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java @@ -113,7 +113,7 @@ public class FightDataUtil { enemyData.rawset(i+1, unitData); } - enemyData.set("teamSkill", getTeamSkill(data.getTeamSkillList().trim())); + enemyData.set("monsterList", getTeamSkill(data.getTeamSkillList().trim(),1)); enemyData.set("teamPassive", new LuaTable()); return enemyData; @@ -190,9 +190,10 @@ public class FightDataUtil { for (int i = 1; i <= heroTeam.getFightUnitListCount(); i++) { playerData.rawset(i, getHeroFightUnit(heroTeam.getFightUnitList(i - 1),position)); } - playerData.set("teamSkill", getTeamSkill(heroTeam.getTeamSkillList())); + playerData.set("teamSkill",""); playerData.set("teamPassive", getTeamPassive(heroTeam.getTeamPassiveList())); playerData.set("outData",heroTeam.getSpecialPassive()); + playerData.set("monsterList", getTeamSkill(heroTeam.getTeamSkillList(),0)); playerData.set("firstCamp",first?1:0); return playerData; } @@ -234,18 +235,54 @@ public class FightDataUtil { return passivityData; } - private static LuaValue getTeamSkill(String pokemonSkill) { + //组装灵兽技能数据 camp=0 自己 1 对方 + private static LuaValue getTeamSkill(String pokemonSkill,int camp) { LuaValue teamSkill = new LuaTable(); if (StringUtil.isEmpty(pokemonSkill)){ return teamSkill; } - String[] skills = pokemonSkill.trim().split("\\|"); + String[] skills = pokemonSkill.trim().split("#"); for (int i = 0; i < skills.length; i++) { String skillAndPos = skills[i]; - String[] skillAndPosItem = skillAndPos.split("#"); - if (Integer.parseInt(skillAndPosItem[1])>0){ - teamSkill.rawset(i + 1, getSkill(skillAndPosItem[1],skillAndPosItem[0])); + if(skillAndPos.equals("0")){ + continue; } + SSpiritAnimalSkill sSpiritAnimalSkill = STableManager.getConfig(SSpiritAnimalSkill.class).get(Integer.valueOf(skillAndPos)); + LuaValue monster = new LuaTable(); + monster.set("id",sSpiritAnimalSkill.getSpiritAnimalMatch()); + monster.set("star",sSpiritAnimalSkill.getStarMatch()); + monster.set("camp",camp); + monster.set("position",i+1); + LuaValue skill= new LuaTable(); + int[] skillIDList = sSpiritAnimalSkill.getSkillIDList(); + for(int j = 0 ; j 0&&releaseLimit[0].length>0){ + for(int l = 0 ; l0){ +// teamSkill.rawset(i + 1, getSkill(skillAndPosItem[1],skillAndPosItem[0])); +// } + teamSkill.rawset(i+1,monster); } return teamSkill; }