diff --git a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java index 9b6ff7829..1816884d8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/CBean2Proto.java @@ -256,6 +256,7 @@ public class CBean2Proto { monsterBuilder.setProperty(monsterPropertyList.toString()); monsterBuilder.setUnitSkillIds(monsterSkillList.toString()); monsterBuilder.setUnitId(String.valueOf(sMonsterConfig.getId())); + monsterBuilder.setSkinId(sMonsterConfig.getSkinId()); return monsterBuilder; } 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 6d7cd84a9..954561721 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/util/FightDataUtil.java @@ -92,17 +92,18 @@ public class FightDataUtil { unitData.set("position",unitInfo.getPosition()); unitData.set("quality", sMonster.getQuality()); unitData.set("element",sMonster.getPropertyName()); + unitData.set("skinId",sMonster.getSkinId()); if (unitSkill.length==1){ - unitData.set("skill", getSkill(unitSkill[0])); + unitData.set("skill", getSkill(unitSkill[0],sMonster.getSkinId())); unitData.set("superSkill", new LuaTable()); unitData.set("passivity", new LuaTable()); }else if (unitSkill.length==2){ - unitData.set("skill", getSkill(unitSkill[0])); - unitData.set("superSkill", getSkill(unitSkill[1])); + unitData.set("skill", getSkill(unitSkill[0],sMonster.getSkinId())); + unitData.set("superSkill", getSkill(unitSkill[1],sMonster.getSkinId())); unitData.set("passivity", new LuaTable()); }else { - unitData.set("skill", getSkill(unitSkill[0])); - unitData.set("superSkill", getSkill(unitSkill[1])); + unitData.set("skill", getSkill(unitSkill[0],sMonster.getSkinId())); + unitData.set("superSkill", getSkill(unitSkill[1],sMonster.getSkinId())); unitData.set("passivity", getPassivity(unitSkill)); } unitData.set("ai", getMonsterAi(sMonster.getMonsterAi())); @@ -269,7 +270,7 @@ public class FightDataUtil { }else{ triggerCondition.rawset(1,LuaValue.valueOf(0)); } - oneSkill.set("effect",getSkill(String.valueOf(skillIDList[j]))); + oneSkill.set("effect",getSkill(String.valueOf(skillIDList[j]),0)); oneSkill.set("triggerCondition",triggerCondition); oneSkill.set("maxCount",sSpiritAnimalSkill.getWarEffectCount()[j]); @@ -310,11 +311,11 @@ public class FightDataUtil { unitData.set("position", data.getPosition()); unitData.set("element", hero.getPropertyName()); - unitData.set("skill", getSkill(skillIds[0])); + unitData.set("skill", getSkill(skillIds[0],data.getSkinId())); if(skillIds.length == 1){ - unitData.set("superSkill", getSkill(null)); + unitData.set("superSkill", getSkill(null,data.getSkinId())); }else { - unitData.set("superSkill", getSkill(skillIds[1])); + unitData.set("superSkill", getSkill(skillIds[1],data.getSkinId())); } unitData.set("passivity", getPassivity(skillIds)); unitData.set("property", getProperty(property)); @@ -331,7 +332,7 @@ public class FightDataUtil { return property; } - private static LuaValue getSkill(String skillId,String...args) { + private static LuaValue getSkill(String skillId,int skinId) { LuaValue skill = new LuaTable(); if (StringUtil.isEmpty(skillId)){ return skill; @@ -343,7 +344,14 @@ public class FightDataUtil { // cd+=Integer.parseInt(args[0]); // } skill.rawset(1, LuaValue.valueOf(skillId)); - int skillDisplay =sSkillLogicVo.getSkillDisplay(); + int[][] display =sSkillLogicVo.getSkillDisplay(); + int skillDisplay = display[0][0]; + for(int[] skillArray:display){ + if(skillArray[0]==skinId){ + skillDisplay = skillArray[1]; + break; + } + } SCombatControl sCombatControl = STableManager.getConfig(SCombatControl.class).get(skillDisplay); int KeyFrame = sCombatControl.getKeyFrame(); int SkillDuration = sCombatControl.getSkillDuration(); diff --git a/tablemanager/src/main/java/config/SMonsterConfig.java b/tablemanager/src/main/java/config/SMonsterConfig.java index 471633dba..b7769b5c0 100644 --- a/tablemanager/src/main/java/config/SMonsterConfig.java +++ b/tablemanager/src/main/java/config/SMonsterConfig.java @@ -58,6 +58,8 @@ public class SMonsterConfig implements BaseConfig { private int[] monsterAi; + private int skinId; + @Override @@ -177,4 +179,8 @@ public class SMonsterConfig implements BaseConfig { public int[] getMonsterAi() { return monsterAi; } + + public int getSkinId() { + return skinId; + } } \ No newline at end of file diff --git a/tablemanager/src/main/java/config/SSkillLogicConfig.java b/tablemanager/src/main/java/config/SSkillLogicConfig.java index 2d9a3e9d7..7aec64b3d 100644 --- a/tablemanager/src/main/java/config/SSkillLogicConfig.java +++ b/tablemanager/src/main/java/config/SSkillLogicConfig.java @@ -24,7 +24,7 @@ public class SSkillLogicConfig implements BaseConfig { private float cd; - private int skillDisplay; + private int[][] skillDisplay; @Override public void init() throws Exception { @@ -66,7 +66,7 @@ public class SSkillLogicConfig implements BaseConfig { return cd; } - public int getSkillDisplay() { + public int[][] getSkillDisplay() { return skillDisplay; }