修改,特技战力加成通过时装表获得

This commit is contained in:
luying
2020-12-23 20:32:58 +08:00
parent 3732c536d2
commit 557ee27f43
9 changed files with 7353 additions and 802 deletions
@@ -76,7 +76,7 @@ export class HeroHandler {
let curHero = await HeroModel.createHero({ let curHero = await HeroModel.createHero({
roleId, serverId, roleName, hid, hName, star, quality, job, skins:[{id: initialSkin, enable: true}] roleId, serverId, roleName, hid, hName, star, quality, job, skins:[{id: initialSkin, enable: true}]
}); });
await calPlayerCeAndSave(sid, roleId, [curHero], HERO_SYSTEM_TYPE.STAR, getAllAttrStage()); await calPlayerCeAndSave(sid, roleId, [curHero], HERO_SYSTEM_TYPE.INIT);
return resResult(STATUS.SUCCESS, {curHero}); return resResult(STATUS.SUCCESS, {curHero});
} }
+3 -4
View File
@@ -1,12 +1,12 @@
// 时装表 // 时装表
import { decodeArrayListStr, readJsonFile, parseNumberList } from '../util'; import { decodeArrayListStr, readJsonFile } from '../util';
import { FILENAME } from '../../consts'; import { FILENAME } from '../../consts';
export interface DicFashions { export interface DicFashions {
// 时装id // 时装id
readonly id: number; readonly id: number;
// 增加的被动技能 // 指向heroSkill表
readonly seid: Array<number>; readonly skillId: number;
// 全局加成 // 全局加成
readonly globalAttr: Array<{id: number, number: number}>; readonly globalAttr: Array<{id: number, number: number}>;
// 单体加成 // 单体加成
@@ -20,7 +20,6 @@ let arr = JSON.parse(str);
export const dicFashions = new Map<number, DicFashions>(); export const dicFashions = new Map<number, DicFashions>();
arr.forEach(o => { arr.forEach(o => {
o.seid = parseNumberList(o.seid);
o.globalAttr = parseAttr(o.globalAttr); o.globalAttr = parseAttr(o.globalAttr);
o.actorAttr = parseAttr(o.actorAttr); o.actorAttr = parseAttr(o.actorAttr);
dicFashions.set(o.id, o); dicFashions.set(o.id, o);
+6 -6
View File
@@ -9,9 +9,9 @@ export interface DicHeroSkill {
// 技能名 // 技能名
readonly name: string; readonly name: string;
// 星级解锁 // 星级解锁
readonly starSeidArr: Array<{star: number, value: number}>; readonly starSeidArr: Array<{star: number, value: number, type: number}>;
// 觉醒解锁 // 觉醒解锁
readonly colorStarSeidArr: Array<{star: number, value: number}>; readonly colorStarSeidArr: Array<{star: number, value: number, type: number}>;
} }
@@ -26,15 +26,15 @@ arr.forEach(o => {
}); });
function parseSeid(str: string) { function parseSeid(str: string) {
let arr = new Array<{star: number, value: number}>(); let arr = new Array<{star: number, value: number, type: number}>();
if(!str) return arr; if(!str) return arr;
let decodeArr = decodeArrayListStr(str); let decodeArr = decodeArrayListStr(str);
for(let [star, value] of decodeArr) { for(let [star, value, type] of decodeArr) {
if(isNaN(parseInt(star)) || isNaN(parseInt(value))) { if(isNaN(parseInt(star)) || isNaN(parseInt(value)) || isNaN(parseInt(type))) {
continue; continue;
} }
arr.push({ star: parseInt(star), value: parseInt(value)}); arr.push({ star: parseInt(star), value: parseInt(value), type: parseInt(type)});
} }
return arr; return arr;
} }
+87 -32
View File
@@ -30,13 +30,13 @@ export function calPlayerCe(globalCeAttr: CeAttr, hero: HeroType, type: number,
if (type == HERO_SYSTEM_TYPE.INIT) { if (type == HERO_SYSTEM_TYPE.INIT) {
reIncAttr = calHeroInitIncAttr(hero, addSeidList, removeSeidList); // args: 升的星盘 reIncAttr = calHeroInitIncAttr(hero, addSeidList, removeSeidList); // args: 升的星盘
} else if (type == HERO_SYSTEM_TYPE.STAR) { } else if (type == HERO_SYSTEM_TYPE.STAR) {
reIncAttr = calHeroStarIncAttr(hero, args, addSeidList); // args: 升的星盘 reIncAttr = calHeroStarIncAttr(hero, args, addSeidList, removeSeidList); // args: 升的星盘
} else if (type == HERO_SYSTEM_TYPE.TRAIN) { } else if (type == HERO_SYSTEM_TYPE.TRAIN) {
reIncAttr = calHeroTrainIncAttr(hero); reIncAttr = calHeroTrainIncAttr(hero);
} else if (type == HERO_SYSTEM_TYPE.STAGEUP) { } else if (type == HERO_SYSTEM_TYPE.STAGEUP) {
reIncAttr = calHeroJobStageUpIncAttr(hero, args, addSeidList, removeSeidList ) reIncAttr = calHeroJobStageUpIncAttr(hero, args, addSeidList, removeSeidList );
} else if (type == HERO_SYSTEM_TYPE.SKIN) { } else if (type == HERO_SYSTEM_TYPE.SKIN) {
reIncAttr = calHeroWearSkinIncAttr(hero, args); reIncAttr = calHeroWearSkinIncAttr(hero, args, addSeidList, removeSeidList );
} else if (type == HERO_SYSTEM_TYPE.FAVOUR) { } else if (type == HERO_SYSTEM_TYPE.FAVOUR) {
reIncAttr = calHeroFavourUpIncAttr(hero, args); reIncAttr = calHeroFavourUpIncAttr(hero, args);
} else if (type == HERO_SYSTEM_TYPE.CONNECT) { } else if (type == HERO_SYSTEM_TYPE.CONNECT) {
@@ -86,6 +86,8 @@ export async function calPlayerCeAndSave(roleId: string, heros: Array<HeroType>,
if (type == HERO_SYSTEM_TYPE.INIT) { if (type == HERO_SYSTEM_TYPE.INIT) {
reIncAttr = calRoleInitIncAttr(heros, role.globalCeAttr); // 全局变量增 reIncAttr = calRoleInitIncAttr(heros, role.globalCeAttr); // 全局变量增
} else if (type == HERO_SYSTEM_TYPE.ADD_SKIN) {
reIncAttr = calHeroAddSkin(args, role.globalCeAttr);
} }
for (let attrName in reIncAttr) { for (let attrName in reIncAttr) {
@@ -110,12 +112,16 @@ export async function calPlayerCeAndSave(roleId: string, heros: Array<HeroType>,
// 初始战力 // 初始战力
export function calHeroInitIncAttr(hero: HeroType, addSeidList: Array<number>, removeSeidList: Array<number>) { export function calHeroInitIncAttr(hero: HeroType, addSeidList: Array<number>, removeSeidList: Array<number>) {
let res1 = calHeroStarIncAttr(hero, getAllAttrStage(), addSeidList); let res1 = calHeroStarIncAttr(hero, getAllAttrStage(), addSeidList, removeSeidList, true);
let hero1 = combineHeroCeAttr(hero, res1) let hero1 = combineHeroCeAttr(hero, res1);
calHeroJobStageUpIncAttr(hero1, [0], addSeidList, removeSeidList);
console.log(JSON.stringify(res1)); let curSkin = hero.skins.find(cur => cur.enable);
return res1 let res2 = calHeroWearSkinIncAttr(hero1, [curSkin?curSkin.id:0, 0], addSeidList, removeSeidList, true);
let hero2 = combineHeroCeAttr(hero, res2);
calHeroJobStageUpIncAttr(hero2, [0], addSeidList, removeSeidList);
return res2
} }
export function calRoleInitIncAttr(heros: HeroType[], globalCeAttr: CeAttr) { export function calRoleInitIncAttr(heros: HeroType[], globalCeAttr: CeAttr) {
@@ -144,18 +150,28 @@ function combineHeroCeAttr(originalHero: HeroType, result: CeAttr) {
return hero; return hero;
} }
export function calHeroStarIncAttr (hero: HeroType, args: Array<number>, addSeidList: Array<number>) { /**
let {star, starStage, quality, colorStar, colorStarStage, ceAttr} = hero; *
* @param hero HeroType 武将更新后的值
* @param args number[] 参数,表示需要更新多少个维
* @param addSeidList number[] 用于更新被动
* @param removeSeidList number[] 用于更新被动
* @param isInit boolean 是否是初次创建武将
*/
export function calHeroStarIncAttr (hero: HeroType, args: Array<number>, addSeidList: Array<number>, removeSeidList: Array<number>, isInit = false) {
let {star, starStage, quality, colorStar, colorStarStage, ceAttr, skins} = hero;
let originStar = star, originColorStar = colorStar;
let res: CeAttr = {}; let res: CeAttr = {};
const dicHero = gameData.hero.get(hero.hid); const dicHero = gameData.hero.get(hero.hid);
const isWake = colorStar > 0; // 是否觉醒,只要激活了觉醒,彩星就会 > 1 const isWake = colorStar > 0; // 是否觉醒,只要激活了觉醒,彩星就会 > 1
if(isWake) { if(isWake) {
if(colorStarStage == ABI_STAGE.START) colorStar = colorStar -1; if(colorStarStage == ABI_STAGE.START) originColorStar = colorStar - 1;
} else { } else {
if(starStage == ABI_STAGE.START) star = star -1; if(starStage == ABI_STAGE.START) originStar = star - 1;
} }
const dicStar = isWake? getHeroWakeByQuality(quality, colorStar): getHeroStarByQuality(quality, star); // 星级表 const dicStar = isWake? getHeroWakeByQuality(quality, originColorStar): getHeroStarByQuality(quality, originStar); // 星级表
for(let stage of args) { for(let stage of args) {
@@ -174,26 +190,43 @@ export function calHeroStarIncAttr (hero: HeroType, args: Array<number>, addSeid
} }
// 解锁技能 // 解锁技能
if(dicHero.skill){ let curSkin = skins.find(cur => cur.enable);
let {starSeidArr, colorStarSeidArr} = gameData.heroSkill.get(dicHero.skill); let curSeidList = getSeidListOfFashion(curSkin.id, star, colorStar);
if(isWake) { let preSeidList = getSeidListOfFashion(curSkin.id, isInit?0:originStar, isInit?0:originColorStar);
for(let {star, value} of starSeidArr){ for(let [type, seid] of curSeidList) {
if(hero.star == star){ if(!preSeidList.has(type)) {
addSeidList.push(value, 0); addSeidList.push(seid, 0);
} }
} }
} else { for(let [type, seid] of preSeidList) {
for(let {star, value} of colorStarSeidArr){ console.log(type, seid)
if(hero.colorStar == star){ if(!curSeidList.has(type)) {
addSeidList.push(value, 0); removeSeidList.push(seid, 0);
}
}
} }
} }
return res;//属性增量可以是多个 return res;//属性增量可以是多个
} }
function getSeidListOfFashion(fashionid: number, originStar: number, originColorStar: number) {
let seidList = new Map<number, number>(); // type => seid
if(!gameData.fashion.has(fashionid)) return seidList;
let { skillId } = gameData.fashion.get(fashionid);
let { starSeidArr, colorStarSeidArr } = gameData.heroSkill.get(skillId);
for(let {star, value, type} of starSeidArr) {
if(originStar >= star) {
seidList.set(type, value);
}
}
for(let {star, value, type} of colorStarSeidArr) {
if(originColorStar >= star) {
seidList.set(type, value);
}
}
return seidList
}
export function getAllAttrStage () { export function getAllAttrStage () {
let attrs = new Array<number>(); // 有升级的属性 1-hp 2-atk 3-def 4-mdef 5-agi 6-luk let attrs = new Array<number>(); // 有升级的属性 1-hp 2-atk 3-def 4-mdef 5-agi 6-luk
for(let stage = ABI_STAGE.START + 1; stage <= ABI_STAGE.END; stage++) { for(let stage = ABI_STAGE.START + 1; stage <= ABI_STAGE.END; stage++) {
@@ -238,21 +271,41 @@ export function calHeroJobStageUpIncAttr(hero: HeroType, args: Array<number>, ad
} }
//穿戴时装 //穿戴时装
export function calHeroWearSkinIncAttr(hero: HeroType, args: Array<number>) { export function calHeroWearSkinIncAttr(hero: HeroType, args: Array<number>, addSeidList: Array<number>, removeSeidList: Array<number>, isInit = false) {
let res: CeAttr = {}; let res: CeAttr = {};
let addSkin = gameData.fashion.get(args[0]); let addSkin = gameData.fashion.get(args[0]);
let delSkin = gameData.fashion.get(args[1]); let delSkin = gameData.fashion.get(args[1]);
let attrName: string; let attrName: string;
for (let attr of delSkin.actorAttr) { if(delSkin) {
attrName = getAtrrNameById(attr.id); for (let attr of delSkin.actorAttr) {
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp}; attrName = getAtrrNameById(attr.id);
res[attrName].fixUp -= attr.number * HERO_CE_RATIO; res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
res[attrName].fixUp -= attr.number * HERO_CE_RATIO;
}
} }
for (let attr of addSkin.actorAttr) { for (let attr of addSkin.actorAttr) {
attrName = getAtrrNameById(attr.id); attrName = getAtrrNameById(attr.id);
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp}; res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
res[attrName].fixUp += attr.number * HERO_CE_RATIO; res[attrName].fixUp += attr.number * HERO_CE_RATIO;
} }
if(!isInit) { // 初始的时候,这一段技能在calHeroStarIncAttr里计算了,不用重复算
let { star, colorStar } = hero;
let curSeidList = getSeidListOfFashion(args[0], star, colorStar);
let preSeidList = getSeidListOfFashion(args[1], star, colorStar);
for(let [type, seid] of curSeidList) {
if(!preSeidList.has(type)) {
removeSeidList.push(seid, 0);
}
}
for(let [type, seid] of preSeidList) {
if(!curSeidList.has(type)) {
addSeidList.push(seid, 0);
}
}
}
return res; return res;
} }
@@ -436,6 +489,8 @@ function getFieldByStage(stage: number, jobid: number) {
// 添加技能增加的被动属性 // 添加技能增加的被动属性
function addSeidEffect(reIncAttr: CeAttr, heroCeAttr: CeAttr,addSeidList: Array<number>, removeSeidList: Array<number>) { function addSeidEffect(reIncAttr: CeAttr, heroCeAttr: CeAttr,addSeidList: Array<number>, removeSeidList: Array<number>) {
console.log('addSeidList', addSeidList)
console.log('removeSeidList', removeSeidList)
let otiginalSeidList = [ let otiginalSeidList = [
{list: addSeidList, multi: 1}, {list: addSeidList, multi: 1},
{list: removeSeidList, multi: -1} {list: removeSeidList, multi: -1}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+409 -9
View File
@@ -367,7 +367,7 @@
"isShow": 1, "isShow": 1,
"gainvalue": "20&48&13&0", "gainvalue": "20&48&13&0",
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "&" "info": "攻击时有20%概率给自身添加一个基于自身最大血量10%护盾"
}, },
{ {
"id": 1038, "id": 1038,
@@ -377,7 +377,7 @@
"isShow": 1, "isShow": 1,
"gainvalue": "20&48&13&10000", "gainvalue": "20&48&13&10000",
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "&" "info": "攻击时有20%概率给自身添加一个基于自身最大血量10%护盾,该次攻击伤害加深提升10%"
}, },
{ {
"id": 1039, "id": 1039,
@@ -387,7 +387,7 @@
"isShow": 1, "isShow": 1,
"gainvalue": "25&48&13&10000", "gainvalue": "25&48&13&10000",
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "&" "info": "攻击时有25%概率给自身添加一个基于自身最大血量10%护盾,该次攻击伤害加深提升10%"
}, },
{ {
"id": 1040, "id": 1040,
@@ -485,9 +485,9 @@
"img": 1, "img": 1,
"type": 205, "type": 205,
"isShow": 1, "isShow": 1,
"gainvalue": "&", "gainvalue": "15&10",
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "&" "info": "攻击时有15%额外获得怒气10点怒气"
}, },
{ {
"id": 1050, "id": 1050,
@@ -495,9 +495,9 @@
"img": 1, "img": 1,
"type": 205, "type": 205,
"isShow": 1, "isShow": 1,
"gainvalue": "&", "gainvalue": "20&10",
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "&" "info": "攻击时有20%额外获得怒气10点怒气"
}, },
{ {
"id": 1051, "id": 1051,
@@ -505,9 +505,9 @@
"img": 1, "img": 1,
"type": 205, "type": 205,
"isShow": 1, "isShow": 1,
"gainvalue": "&", "gainvalue": "25&10",
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "&" "info": "攻击时有25%额外获得怒气10点怒气"
}, },
{ {
"id": 1052, "id": 1052,
@@ -6719,6 +6719,406 @@
"maxOnlyNum": 1, "maxOnlyNum": 1,
"info": "受到的所有治疗效果提升" "info": "受到的所有治疗效果提升"
}, },
{
"id": 1701,
"name": "步甲I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "2&14&5",
"maxOnlyNum": 1,
"info": "受枪兵攻击时,伤害减免提升5%"
},
{
"id": 1702,
"name": "步甲II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "2&14&10",
"maxOnlyNum": 1,
"info": "受枪兵攻击时,伤害减免提升10%"
},
{
"id": 1703,
"name": "长刀I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "2&13&5",
"maxOnlyNum": 1,
"info": "攻击枪兵时,伤害加深提高5%"
},
{
"id": 1704,
"name": "长刀II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "2&13&10",
"maxOnlyNum": 1,
"info": "攻击枪兵时,伤害加深提高10%"
},
{
"id": 1705,
"name": "大盾I",
"img": 1,
"type": 0,
"isShow": 1,
"gainvalue": "&",
"maxOnlyNum": 0,
"info": "物理伤害免减提升10%"
},
{
"id": 1706,
"name": "勇士I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "3&14&5",
"maxOnlyNum": 1,
"info": "受骑兵攻击时,伤害减免提升5%"
},
{
"id": 1707,
"name": "勇士II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "3&14&10",
"maxOnlyNum": 1,
"info": "受骑兵攻击时,伤害减免提升10%"
},
{
"id": 1708,
"name": "横枪I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "3&13&5",
"maxOnlyNum": 1,
"info": "攻击骑兵时,伤害加深提高5%"
},
{
"id": 1709,
"name": "横枪II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "3&13&10",
"maxOnlyNum": 1,
"info": "攻击骑兵时,伤害加深提高10%"
},
{
"id": 1710,
"name": "枪阵I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "13&10000",
"maxOnlyNum": 1,
"info": "物理伤害加深提升10%"
},
{
"id": 1711,
"name": "铁骑I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "4&14&5",
"maxOnlyNum": 1,
"info": "受弓兵攻击时,伤害减免提升5%"
},
{
"id": 1712,
"name": "铁骑II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "4&14&10",
"maxOnlyNum": 1,
"info": "受弓兵攻击时,伤害减免提升10%"
},
{
"id": 1713,
"name": "冲阵I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "4&13&5",
"maxOnlyNum": 1,
"info": "攻击弓兵时,伤害加深提高5%"
},
{
"id": 1714,
"name": "冲阵II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "4&13&10",
"maxOnlyNum": 1,
"info": "攻击弓兵时,伤害加深提高10%"
},
{
"id": 1715,
"name": "呼啸I",
"img": 1,
"type": 0,
"isShow": 1,
"gainvalue": "&",
"maxOnlyNum": 1,
"info": "移动力提升1"
},
{
"id": 1716,
"name": "长守I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "1&14&5",
"maxOnlyNum": 1,
"info": "受步兵攻击时,伤害减免提升5%"
},
{
"id": 1717,
"name": "长守II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "1&14&10",
"maxOnlyNum": 1,
"info": "受步兵攻击时,伤害减免提升10%"
},
{
"id": 1718,
"name": "箭雨I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "1&13&5",
"maxOnlyNum": 1,
"info": "攻击步兵时,伤害加深提高5%"
},
{
"id": 1719,
"name": "箭雨II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "1&13&10",
"maxOnlyNum": 1,
"info": "攻击步兵时,伤害加深提高10%"
},
{
"id": 1720,
"name": "穿杨I",
"img": 1,
"type": 0,
"isShow": 1,
"gainvalue": "&",
"maxOnlyNum": 0,
"info": "射程提升1"
},
{
"id": 1721,
"name": "锤石I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "6&14&5",
"maxOnlyNum": 1,
"info": "受策士攻击时,伤害减免提升5%"
},
{
"id": 1722,
"name": "锤石II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "6&14&10",
"maxOnlyNum": 1,
"info": "受策士攻击时,伤害减免提升10%"
},
{
"id": 1723,
"name": "斗气I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "6&13&5",
"maxOnlyNum": 1,
"info": "攻击策士时,伤害加深提高5%"
},
{
"id": 1724,
"name": "斗气II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "6&13&10",
"maxOnlyNum": 1,
"info": "攻击策士时,伤害加深提高10%"
},
{
"id": 1725,
"name": "怒冲I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "10&5000",
"maxOnlyNum": 0,
"info": "暴击提高5%"
},
{
"id": 1726,
"name": "遁甲I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "7&14&5",
"maxOnlyNum": 1,
"info": "受医者攻击时,伤害减免提升5%"
},
{
"id": 1727,
"name": "遁甲II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "7&14&10",
"maxOnlyNum": 1,
"info": "受医者攻击时,伤害减免提升10%"
},
{
"id": 1728,
"name": "寒心I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "7&13&5",
"maxOnlyNum": 1,
"info": "攻击医者时,伤害加深提高5%"
},
{
"id": 1729,
"name": "寒心II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "7&13&10",
"maxOnlyNum": 1,
"info": "攻击医者时,伤害加深提高10%"
},
{
"id": 1730,
"name": "筹谋I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "13&10000",
"maxOnlyNum": 0,
"info": "策略伤害加深提升10%"
},
{
"id": 1731,
"name": "光盾I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "8&14&5",
"maxOnlyNum": 1,
"info": "受道士攻击时,伤害减免提升5%"
},
{
"id": 1732,
"name": "光盾II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "8&14&10",
"maxOnlyNum": 1,
"info": "受道士攻击时,伤害减免提升10%"
},
{
"id": 1733,
"name": "圣手I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "8&13&5",
"maxOnlyNum": 1,
"info": "攻击道士时,伤害加深提高5%"
},
{
"id": 1734,
"name": "圣手II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "8&13&10",
"maxOnlyNum": 1,
"info": "攻击道士时,伤害加深提高10%"
},
{
"id": 1735,
"name": "灵药I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "14&5000",
"maxOnlyNum": 0,
"info": "伤害减免提升5%"
},
{
"id": 1736,
"name": "卸力I",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "5&14&5",
"maxOnlyNum": 1,
"info": "受斗士攻击时,伤害减免提升5%"
},
{
"id": 1737,
"name": "卸力II",
"img": 1,
"type": 123,
"isShow": 1,
"gainvalue": "5&14&10",
"maxOnlyNum": 1,
"info": "受斗士攻击时,伤害减免提升10%"
},
{
"id": 1738,
"name": "借势I",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "5&13&5",
"maxOnlyNum": 1,
"info": "攻击斗士时,伤害加深提高5%"
},
{
"id": 1739,
"name": "借势II",
"img": 1,
"type": 122,
"isShow": 1,
"gainvalue": "5&13&10",
"maxOnlyNum": 1,
"info": "攻击斗士时,伤害加深提高10%"
},
{
"id": 1740,
"name": "专注I",
"img": 1,
"type": 101,
"isShow": 1,
"gainvalue": "9&5000",
"maxOnlyNum": 0,
"info": "命中提升5%"
},
{ {
"id": 301, "id": 301,
"name": "血量提升", "name": "血量提升",
+110 -1
View File
@@ -1,6 +1,7 @@
[ [
{ {
"id": 1, "id": 1,
"imgId": 2,
"name": "砍一刀", "name": "砍一刀",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -20,6 +21,7 @@
}, },
{ {
"id": 2, "id": 2,
"imgId": 2,
"name": "无双画戟", "name": "无双画戟",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -39,6 +41,7 @@
}, },
{ {
"id": 3, "id": 3,
"imgId": 3,
"name": "温侯斩", "name": "温侯斩",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -58,6 +61,7 @@
}, },
{ {
"id": 4, "id": 4,
"imgId": 4,
"name": "长枪投射I", "name": "长枪投射I",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -77,6 +81,7 @@
}, },
{ {
"id": 5, "id": 5,
"imgId": 5,
"name": "赦免I", "name": "赦免I",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -96,6 +101,7 @@
}, },
{ {
"id": 6, "id": 6,
"imgId": 6,
"name": "连珠三箭 I", "name": "连珠三箭 I",
"hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -115,6 +121,7 @@
}, },
{ {
"id": 7, "id": 7,
"imgId": 7,
"name": "鼓舞 I", "name": "鼓舞 I",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -134,6 +141,7 @@
}, },
{ {
"id": 8, "id": 8,
"imgId": 8,
"name": "猛毒迷雾", "name": "猛毒迷雾",
"hurt_formula": " (ownAtk*1*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*1*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -153,6 +161,7 @@
}, },
{ {
"id": 9, "id": 9,
"imgId": 9,
"name": "投毒", "name": "投毒",
"hurt_formula": " (ownAtk*1.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*1.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -172,6 +181,7 @@
}, },
{ {
"id": 10, "id": 10,
"imgId": 10,
"name": "巨锤震击 I", "name": "巨锤震击 I",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -191,6 +201,7 @@
}, },
{ {
"id": 11, "id": 11,
"imgId": 11,
"name": "虎痴 I", "name": "虎痴 I",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -210,6 +221,7 @@
}, },
{ {
"id": 12, "id": 12,
"imgId": 11,
"name": "薤叶芸香", "name": "薤叶芸香",
"hurt_formula": "ownAtk*1", "hurt_formula": "ownAtk*1",
"gain_formula": "&", "gain_formula": "&",
@@ -229,6 +241,7 @@
}, },
{ {
"id": 13, "id": 13,
"imgId": 11,
"name": "麻沸散", "name": "麻沸散",
"hurt_formula": "ownAtk*1", "hurt_formula": "ownAtk*1",
"gain_formula": "&", "gain_formula": "&",
@@ -248,6 +261,7 @@
}, },
{ {
"id": 14, "id": 14,
"imgId": 14,
"name": "敌阵突破 I", "name": "敌阵突破 I",
"hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -267,6 +281,7 @@
}, },
{ {
"id": 15, "id": 15,
"imgId": 15,
"name": "坚壁 I", "name": "坚壁 I",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -286,6 +301,7 @@
}, },
{ {
"id": 16, "id": 16,
"imgId": 16,
"name": "回春", "name": "回春",
"hurt_formula": "ownAtk*0.6", "hurt_formula": "ownAtk*0.6",
"gain_formula": "&", "gain_formula": "&",
@@ -305,6 +321,7 @@
}, },
{ {
"id": 17, "id": 17,
"imgId": 17,
"name": "反馈", "name": "反馈",
"hurt_formula": "ownAtk*1", "hurt_formula": "ownAtk*1",
"gain_formula": "&", "gain_formula": "&",
@@ -324,6 +341,7 @@
}, },
{ {
"id": 18, "id": 18,
"imgId": 18,
"name": "狼王爪击", "name": "狼王爪击",
"hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -343,6 +361,7 @@
}, },
{ {
"id": 19, "id": 19,
"imgId": 19,
"name": "召唤狼群", "name": "召唤狼群",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -362,6 +381,7 @@
}, },
{ {
"id": 20, "id": 20,
"imgId": 4,
"name": "长枪投射II", "name": "长枪投射II",
"hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -381,6 +401,7 @@
}, },
{ {
"id": 21, "id": 21,
"imgId": 5,
"name": "赦免II", "name": "赦免II",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -400,6 +421,7 @@
}, },
{ {
"id": 22, "id": 22,
"imgId": 14,
"name": "敌阵突破 II", "name": "敌阵突破 II",
"hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -419,6 +441,7 @@
}, },
{ {
"id": 23, "id": 23,
"imgId": 15,
"name": "坚壁 II", "name": "坚壁 II",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -438,6 +461,7 @@
}, },
{ {
"id": 24, "id": 24,
"imgId": 6,
"name": "连珠三箭 II", "name": "连珠三箭 II",
"hurt_formula": " (ownAtk*1.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*1.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -457,6 +481,7 @@
}, },
{ {
"id": 25, "id": 25,
"imgId": 7,
"name": "鼓舞 II", "name": "鼓舞 II",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -476,6 +501,7 @@
}, },
{ {
"id": 26, "id": 26,
"imgId": 8,
"name": "猛毒迷雾", "name": "猛毒迷雾",
"hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*1.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -495,7 +521,8 @@
}, },
{ {
"id": 27, "id": 27,
"name": "投毒", "imgId": 9,
"name": "投毒II",
"hurt_formula": " (ownAtk*1.8*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*1.8*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
"rage_cost": 0, "rage_cost": 0,
@@ -514,6 +541,7 @@
}, },
{ {
"id": 28, "id": 28,
"imgId": 10,
"name": "巨锤震击 II", "name": "巨锤震击 II",
"hurt_formula": " (ownAtk*2.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)", "hurt_formula": " (ownAtk*2.2*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&", "gain_formula": "&",
@@ -533,6 +561,7 @@
}, },
{ {
"id": 29, "id": 29,
"imgId": 11,
"name": "虎痴 II", "name": "虎痴 II",
"hurt_formula": 0, "hurt_formula": 0,
"gain_formula": "&", "gain_formula": "&",
@@ -549,5 +578,85 @@
"skill_info": "恢复自身20%攻击力的血量,并且给自身附加伤害减免15%,4回合内作用2次", "skill_info": "恢复自身20%攻击力的血量,并且给自身附加伤害减免15%,4回合内作用2次",
"skilNameImage": 0, "skilNameImage": 0,
"skillSceneSpine": "&" "skillSceneSpine": "&"
},
{
"id": 5001,
"imgId": 2,
"name": "战龙无双I",
"hurt_formula": " (ownAtk*2.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 100,
"cd": 0,
"attack_area": 5,
"strike_area": 2,
"object": 0,
"skill_class": 1,
"effect": "3348&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "猛击地面造成250%的范围伤害,范围内人数越多总伤害越高,同时给目标添加封怒的以及物攻下降效果,命中的目标会降低少量怒气",
"skilNameImage": 0,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 5002,
"imgId": 2,
"name": "战龙无双II",
"hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 100,
"cd": 0,
"attack_area": 5,
"strike_area": 2,
"object": 0,
"skill_class": 1,
"effect": "3348&",
"actionName": "skill1",
"secondActionName": "skill1_B",
"oppoSecondActionName": "&",
"skill_info": "猛击地面造成300%的范围伤害,范围内人数越多总伤害越高,同时给目标添加封怒的以及物攻下降效果,命中的目标会降低少量怒气",
"skilNameImage": 0,
"skillSceneSpine": "nuqijidonghuablue"
},
{
"id": 5003,
"imgId": 3,
"name": "降龙斩I",
"hurt_formula": " (ownAtk*2.5*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 1,
"strike_area": 1,
"object": 0,
"skill_class": 2,
"effect": "3352&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对敌人连续攻击两次,每击造成250%的伤害",
"skilNameImage": 0,
"skillSceneSpine": "&"
},
{
"id": 5004,
"imgId": 3,
"name": "降龙斩II",
"hurt_formula": " (ownAtk*3*ownTerAddtion/100 - oppoDef*oppoTerAddtion/100)*(1 + ownDamInc/100000 - oppoDamDec/100000)",
"gain_formula": "&",
"rage_cost": 0,
"cd": 3,
"attack_area": 1,
"strike_area": 1,
"object": 0,
"skill_class": 2,
"effect": "3352&",
"actionName": "skill2",
"secondActionName": "&",
"oppoSecondActionName": "&",
"skill_info": "对敌人连续攻击两次,每击造成300%的伤害",
"skilNameImage": 0,
"skillSceneSpine": "&"
} }
] ]