更新
This commit is contained in:
parent
73126e8a05
commit
a0889bdba6
Binary file not shown.
BIN
excel/cha.xlsx
BIN
excel/cha.xlsx
Binary file not shown.
BIN
excel/enemy.xlsx
BIN
excel/enemy.xlsx
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
excel/item.xlsx
BIN
excel/item.xlsx
Binary file not shown.
Binary file not shown.
BIN
excel/level.xlsx
BIN
excel/level.xlsx
Binary file not shown.
@ -1,33 +1,33 @@
|
||||
[
|
||||
{"id":1,"type":1,"effectAttribute":"attack","battleValue":[1,10],"iconId":1},
|
||||
{"id":2,"type":1,"effectAttribute":"hp","battleValue":[1,10],"iconId":2},
|
||||
{"id":3,"type":1,"effectAttribute":"swordAtk","battleValue":[1,10],"iconId":3},
|
||||
{"id":4,"type":2,"effectAttribute":"swordWearBase","battleValue":[1,10],"iconId":4},
|
||||
{"id":5,"type":2,"effectAttribute":"swordWearSpe","battleValue":[1,10],"iconId":5},
|
||||
{"id":6,"type":2,"effectAttribute":"fireAtk","battleValue":[1,10],"iconId":6},
|
||||
{"id":7,"type":2,"effectAttribute":"iceAtk","battleValue":[1,10],"iconId":7},
|
||||
{"id":8,"type":2,"effectAttribute":"lightAtk","battleValue":[1,10],"iconId":8},
|
||||
{"id":9,"type":2,"effectAttribute":"shadowAtk","battleValue":[1,10],"iconId":9},
|
||||
{"id":10,"type":1,"effectAttribute":"fireDef","battleValue":[1,10],"iconId":10},
|
||||
{"id":11,"type":1,"effectAttribute":"iceDef","battleValue":[1,10],"iconId":11},
|
||||
{"id":12,"type":1,"effectAttribute":"lightDef","battleValue":[1,10],"iconId":12},
|
||||
{"id":13,"type":1,"effectAttribute":"shadowDef","battleValue":[1,10],"iconId":13},
|
||||
{"id":14,"type":2,"effectAttribute":"attackRate","battleValue":[1,10],"iconId":14},
|
||||
{"id":15,"type":2,"effectAttribute":"hpRate","battleValue":[1,10],"iconId":15},
|
||||
{"id":16,"type":1,"effectAttribute":"atkSpeed","battleValue":[1,10],"iconId":16},
|
||||
{"id":20,"type":2,"effectAttribute":"critRate","battleValue":[1,10],"iconId":17},
|
||||
{"id":21,"type":2,"effectAttribute":"critDamageRate","battleValue":[1,10],"iconId":18},
|
||||
{"id":22,"type":2,"effectAttribute":"atkSpeedRate","battleValue":[1,10],"iconId":19},
|
||||
{"id":23,"type":2,"effectAttribute":"cdRate","battleValue":[1,10],"iconId":20},
|
||||
{"id":24,"type":1,"effectAttribute":"mpBonus","battleValue":[1,10],"iconId":21},
|
||||
{"id":25,"type":2,"effectAttribute":"mpReduceRate","battleValue":[1,10],"iconId":22},
|
||||
{"id":26,"type":1,"effectAttribute":"mpRecoverBonus","battleValue":[1,10],"iconId":23},
|
||||
{"id":27,"type":2,"effectAttribute":"vampireRate","battleValue":[1,10],"iconId":24},
|
||||
{"id":28,"type":2,"effectAttribute":"coinBonus","battleValue":[1,10],"iconId":25},
|
||||
{"id":50,"type":1,"effectAttribute":"wearNumber","battleValue":[1,10],"iconId":26},
|
||||
{"id":51,"type":1,"effectAttribute":"skillNumber","battleValue":[1,10],"iconId":27},
|
||||
{"id":52,"type":1,"effectAttribute":"extraAttributeNumber","battleValue":[1,10],"iconId":28},
|
||||
{"id":53,"type":1,"effectAttribute":"elementNumber","battleValue":[1,10],"iconId":29},
|
||||
{"id":54,"type":1,"effectAttribute":"elementDefNumber","battleValue":[1,10],"iconId":30},
|
||||
{"id":55,"type":1,"effectAttribute":"gemNumber","battleValue":[1,10],"iconId":31}
|
||||
{"id":1,"type":1,"effectAttribute":"attack","battleValue":[1,10],"iconId":1,"nameId":201},
|
||||
{"id":2,"type":1,"effectAttribute":"hp","battleValue":[1,10],"iconId":2,"nameId":202},
|
||||
{"id":3,"type":1,"effectAttribute":"swordAtk","battleValue":[1,10],"iconId":3,"nameId":203},
|
||||
{"id":4,"type":2,"effectAttribute":"swordWearBase","battleValue":[1,10],"iconId":4,"nameId":204},
|
||||
{"id":5,"type":2,"effectAttribute":"swordWearSpe","battleValue":[1,10],"iconId":5,"nameId":205},
|
||||
{"id":6,"type":2,"effectAttribute":"fireAtk","battleValue":[1,10],"iconId":6,"nameId":206},
|
||||
{"id":7,"type":2,"effectAttribute":"iceAtk","battleValue":[1,10],"iconId":7,"nameId":207},
|
||||
{"id":8,"type":2,"effectAttribute":"lightAtk","battleValue":[1,10],"iconId":8,"nameId":208},
|
||||
{"id":9,"type":2,"effectAttribute":"shadowAtk","battleValue":[1,10],"iconId":9,"nameId":209},
|
||||
{"id":10,"type":1,"effectAttribute":"fireDef","battleValue":[1,10],"iconId":10,"nameId":210},
|
||||
{"id":11,"type":1,"effectAttribute":"iceDef","battleValue":[1,10],"iconId":11,"nameId":211},
|
||||
{"id":12,"type":1,"effectAttribute":"lightDef","battleValue":[1,10],"iconId":12,"nameId":212},
|
||||
{"id":13,"type":1,"effectAttribute":"shadowDef","battleValue":[1,10],"iconId":13,"nameId":213},
|
||||
{"id":14,"type":2,"effectAttribute":"attackRate","battleValue":[1,10],"iconId":14,"nameId":214},
|
||||
{"id":15,"type":2,"effectAttribute":"hpRate","battleValue":[1,10],"iconId":15,"nameId":215},
|
||||
{"id":16,"type":2,"effectAttribute":"atkSpeed","battleValue":[1,10],"iconId":16,"nameId":216},
|
||||
{"id":20,"type":2,"effectAttribute":"critRate","battleValue":[1,10],"iconId":17,"nameId":220},
|
||||
{"id":21,"type":2,"effectAttribute":"critDamageRate","battleValue":[1,10],"iconId":18,"nameId":221},
|
||||
{"id":22,"type":2,"effectAttribute":"atkSpeedRate","battleValue":[1,10],"iconId":19,"nameId":222},
|
||||
{"id":23,"type":2,"effectAttribute":"cdRate","battleValue":[1,10],"iconId":20,"nameId":223},
|
||||
{"id":24,"type":1,"effectAttribute":"mpBonus","battleValue":[1,10],"iconId":21,"nameId":224},
|
||||
{"id":25,"type":2,"effectAttribute":"mpReduceRate","battleValue":[1,10],"iconId":22,"nameId":225},
|
||||
{"id":26,"type":1,"effectAttribute":"mpRecoverBonus","battleValue":[1,10],"iconId":23,"nameId":226},
|
||||
{"id":27,"type":2,"effectAttribute":"vampireRate","battleValue":[1,10],"iconId":24,"nameId":227},
|
||||
{"id":28,"type":2,"effectAttribute":"coinBonus","battleValue":[1,10],"iconId":25,"nameId":228},
|
||||
{"id":50,"type":1,"effectAttribute":"wearNumber","battleValue":[1,10],"iconId":26,"nameId":250},
|
||||
{"id":51,"type":1,"effectAttribute":"skillNumber","battleValue":[1,10],"iconId":27,"nameId":251},
|
||||
{"id":52,"type":1,"effectAttribute":"extraAttributeNumber","battleValue":[1,10],"iconId":28,"nameId":252},
|
||||
{"id":53,"type":1,"effectAttribute":"elementNumber","battleValue":[1,10],"iconId":29,"nameId":253},
|
||||
{"id":54,"type":1,"effectAttribute":"elementDefNumber","battleValue":[1,10],"iconId":30,"nameId":254},
|
||||
{"id":55,"type":1,"effectAttribute":"gemNumber","battleValue":[1,10],"iconId":31,"nameId":255}
|
||||
]
|
@ -1,3 +1,3 @@
|
||||
[
|
||||
{"id":1,"name":1,"attack":100,"hp":2000,"walkSpeed":10,"atkSpeed":1}
|
||||
{"id":1,"name":1,"attack":100,"hp":2000,"walkSpeed":10,"atkSpeed":100}
|
||||
]
|
@ -1,5 +1,5 @@
|
||||
[
|
||||
{"id":1,"type":1,"name":1,"attack":83,"hp":400,"walkSpeed":8,"attackSpeed":1,"model":"Thief"},
|
||||
{"id":2,"type":1,"name":2,"attack":30,"hp":300,"walkSpeed":8,"attackSpeed":1,"model":"Thief"},
|
||||
{"id":1,"type":1,"name":1,"attack":20,"hp":1700,"walkSpeed":8,"attackSpeed":1,"model":"Thief"},
|
||||
{"id":2,"type":1,"name":2,"attack":20,"hp":1700,"walkSpeed":8,"attackSpeed":1,"model":"Thief"},
|
||||
{"id":1000,"type":2,"name":1000,"attack":120,"hp":1000,"walkSpeed":4,"attackSpeed":1,"model":"Thief"}
|
||||
]
|
@ -1,18 +1,18 @@
|
||||
[
|
||||
{"id":40000,"type":1,"name":40000,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40001,"type":1,"name":40001,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40002,"type":1,"name":40002,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40003,"type":1,"name":40003,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40004,"type":1,"name":40004,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40005,"type":1,"name":40005,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40006,"type":1,"name":40006,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40007,"type":1,"name":40007,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40008,"type":1,"name":40008,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40009,"type":1,"name":40009,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40010,"type":1,"name":40010,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40011,"type":1,"name":40011,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40012,"type":1,"name":40012,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40013,"type":1,"name":40013,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40014,"type":1,"name":40014,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40015,"type":1,"name":40015,"attributes":[14,200,10,15,200,10,16,100,0],"modelName":"Zeus","recycle":10}
|
||||
{"id":40000,"type":1,"name":40000,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40001,"type":1,"name":40001,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40002,"type":1,"name":40002,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40003,"type":1,"name":40003,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40004,"type":1,"name":40004,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40005,"type":1,"name":40005,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40006,"type":1,"name":40006,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40007,"type":1,"name":40007,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40008,"type":1,"name":40008,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40009,"type":1,"name":40009,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40010,"type":1,"name":40010,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40011,"type":1,"name":40011,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40012,"type":1,"name":40012,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40013,"type":1,"name":40013,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40014,"type":1,"name":40014,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10},
|
||||
{"id":40015,"type":1,"name":40015,"attributes":[14,200,10,15,200,10,16,150,0],"modelName":"Zeus","recycle":10}
|
||||
]
|
@ -1,17 +1,29 @@
|
||||
[
|
||||
{"id":1,"cost":[1,500]},
|
||||
{"id":2,"cost":[1,500]},
|
||||
{"id":3,"cost":[1,500]},
|
||||
{"id":4,"cost":[1,500]},
|
||||
{"id":5,"cost":[1,500]},
|
||||
{"id":6,"cost":[1,500]},
|
||||
{"id":7,"cost":[1,500]},
|
||||
{"id":8,"cost":[1,500]},
|
||||
{"id":9,"cost":[1,500]},
|
||||
{"id":10,"cost":[1,500]},
|
||||
{"id":11,"cost":[1,500]},
|
||||
{"id":12,"cost":[1,500]},
|
||||
{"id":13,"cost":[1,500]},
|
||||
{"id":14,"cost":[1,500]},
|
||||
{"id":15,"cost":[1,500]}
|
||||
{"id":1,"cost":[2,10]},
|
||||
{"id":2,"cost":[2,20]},
|
||||
{"id":3,"cost":[2,30]},
|
||||
{"id":4,"cost":[2,40]},
|
||||
{"id":5,"cost":[2,60]},
|
||||
{"id":6,"cost":[2,80]},
|
||||
{"id":7,"cost":[2,100]},
|
||||
{"id":8,"cost":[2,120]},
|
||||
{"id":9,"cost":[2,140]},
|
||||
{"id":10,"cost":[2,160]},
|
||||
{"id":11,"cost":[2,180]},
|
||||
{"id":12,"cost":[2,200]},
|
||||
{"id":13,"cost":[2,220]},
|
||||
{"id":14,"cost":[2,240]},
|
||||
{"id":15,"cost":[2,260]},
|
||||
{"id":16,"cost":[2,280]},
|
||||
{"id":17,"cost":[2,300]},
|
||||
{"id":18,"cost":[2,320]},
|
||||
{"id":19,"cost":[2,340]},
|
||||
{"id":20,"cost":[2,360]},
|
||||
{"id":21,"cost":[2,380]},
|
||||
{"id":22,"cost":[2,400]},
|
||||
{"id":23,"cost":[2,420]},
|
||||
{"id":24,"cost":[2,440]},
|
||||
{"id":25,"cost":[2,460]},
|
||||
{"id":26,"cost":[2,480]},
|
||||
{"id":27,"cost":[2,500]}
|
||||
]
|
@ -1,6 +1,43 @@
|
||||
[
|
||||
{"id":100006,"text":"Coin+{0}"},
|
||||
{"id":100007,"text":"Score+{0}"},
|
||||
{"id":101,"text":"普通"},
|
||||
{"id":102,"text":"精良"},
|
||||
{"id":103,"text":"传奇"},
|
||||
{"id":104,"text":"史诗"},
|
||||
{"id":105,"text":"卓越"},
|
||||
{"id":106,"text":"传说"},
|
||||
{"id":107,"text":"传说+1"},
|
||||
{"id":108,"text":"传说+2"},
|
||||
{"id":201,"text":"攻击"},
|
||||
{"id":202,"text":"血量"},
|
||||
{"id":203,"text":"飞剑基础伤害"},
|
||||
{"id":204,"text":"飞剑穿戴额外伤害"},
|
||||
{"id":205,"text":"飞剑穿戴额外特殊伤害"},
|
||||
{"id":206,"text":"火焰伤害"},
|
||||
{"id":207,"text":"冰霜伤害"},
|
||||
{"id":208,"text":"雷电伤害"},
|
||||
{"id":209,"text":"暗影伤害"},
|
||||
{"id":210,"text":"火焰抗性"},
|
||||
{"id":211,"text":"冰霜抗性"},
|
||||
{"id":212,"text":"雷电抗性"},
|
||||
{"id":213,"text":"暗影抗性"},
|
||||
{"id":214,"text":"攻击"},
|
||||
{"id":215,"text":"血量"},
|
||||
{"id":216,"text":"攻速"},
|
||||
{"id":220,"text":"暴击率"},
|
||||
{"id":221,"text":"暴击"},
|
||||
{"id":222,"text":"攻击速度加成"},
|
||||
{"id":223,"text":"冷却时间"},
|
||||
{"id":224,"text":"资源上限"},
|
||||
{"id":225,"text":"资源消耗减免"},
|
||||
{"id":226,"text":"资源回复速度"},
|
||||
{"id":227,"text":"吸血"},
|
||||
{"id":228,"text":"金币掉落加成"},
|
||||
{"id":250,"text":"上阵穿戴数量上限"},
|
||||
{"id":251,"text":"技能数量上限"},
|
||||
{"id":252,"text":"额外属性数量上限"},
|
||||
{"id":253,"text":"元素属性数量上限"},
|
||||
{"id":254,"text":"元素抗性数量上限"},
|
||||
{"id":255,"text":"宝石数量上限"},
|
||||
{"id":40000,"text":"测试装备1"},
|
||||
{"id":40001,"text":"测试装备2"},
|
||||
{"id":40002,"text":"测试装备3"},
|
||||
|
@ -1,331 +1,59 @@
|
||||
[
|
||||
{"id":2,"text":"token异常"},
|
||||
{"id":3,"text":"消息序列号异常"},
|
||||
{"id":10,"text":"服务器火爆"},
|
||||
{"id":11,"text":"服务器维护"},
|
||||
{"id":12,"text":"服务器预开启"},
|
||||
{"id":13,"text":"当前所选服务器处于爆满状态,无法新建账号"},
|
||||
{"id":14,"text":"当前所选服务器处于未开服状态,无法新建账号"},
|
||||
{"id":15,"text":"当前所选服务器处于维护状态,请等待维护结束"},
|
||||
{"id":16,"text":"当前账号未经认证"},
|
||||
{"id":20,"text":"该账号被封禁,剩余时间:{0}"},
|
||||
{"id":21,"text":"该账号已被永久封禁"},
|
||||
{"id":22,"text":"战斗数据异常"},
|
||||
{"id":23,"text":"战斗数据异常."},
|
||||
{"id":24,"text":"预开服"},
|
||||
{"id":25,"text":"新服"},
|
||||
{"id":26,"text":"火爆"},
|
||||
{"id":27,"text":"爆满"},
|
||||
{"id":28,"text":"维护"},
|
||||
{"id":30,"text":"道具数量不足"},
|
||||
{"id":31,"text":"已到达购买数量上限"},
|
||||
{"id":32,"text":"已达到最大等级"},
|
||||
{"id":33,"text":"请勿重复触发"},
|
||||
{"id":34,"text":"已达触发次数上限"},
|
||||
{"id":35,"text":"请勿重复领取"},
|
||||
{"id":36,"text":"补货失败,道具不足"},
|
||||
{"id":37,"text":"成功补货"},
|
||||
{"id":38,"text":"输入内容包含敏感词"},
|
||||
{"id":39,"text":"暂无可分解内容"},
|
||||
{"id":100,"text":"输出"},
|
||||
{"id":101,"text":"控制"},
|
||||
{"id":102,"text":"盾甲兵"},
|
||||
{"id":103,"text":"药师"},
|
||||
{"id":104,"text":"潜行者"},
|
||||
{"id":105,"text":"增伤"},
|
||||
{"id":106,"text":"冰剑修"},
|
||||
{"id":107,"text":"英雄"},
|
||||
{"id":108,"text":"弓箭手"},
|
||||
{"id":109,"text":"唐门门主"},
|
||||
{"id":110,"text":"拳王"},
|
||||
{"id":200,"text":"黎明时代"},
|
||||
{"id":201,"text":"石器时代"},
|
||||
{"id":202,"text":"农耕时代"},
|
||||
{"id":600,"text":"早餐"},
|
||||
{"id":601,"text":"午餐"},
|
||||
{"id":602,"text":"晚餐"},
|
||||
{"id":1000,"text":"普攻"},
|
||||
{"id":1001,"text":"近距离攻击敌方"},
|
||||
{"id":1002,"text":"劈砍"},
|
||||
{"id":1003,"text":"挥舞大刀对近距离的敌人进行劈砍,对其造成伤害"},
|
||||
{"id":1004,"text":"重甲"},
|
||||
{"id":1005,"text":"身着重甲防御较高,但移动缓慢。使用单手剑对近距离的敌人进行劈砍,对其造成伤害"},
|
||||
{"id":1006,"text":"偷袭"},
|
||||
{"id":1007,"text":"快速移动到战场后方,近距离攻击敌方"},
|
||||
{"id":1008,"text":"长弓"},
|
||||
{"id":1009,"text":"使用长弓远距离对的敌人造成伤害,敌人中箭越多移速越慢"},
|
||||
{"id":1010,"text":"普通攻击"},
|
||||
{"id":1011,"text":"远距离释放毒气,造成范围伤害"},
|
||||
{"id":1012,"text":"眩晕箭"},
|
||||
{"id":1013,"text":"射出弓箭,远距离攻击敌方,有概率使目标眩晕"},
|
||||
{"id":1014,"text":"寒冰剑"},
|
||||
{"id":1015,"text":"远距离释放冰霜,减速周围敌人,并造成少量伤害"},
|
||||
{"id":1016,"text":"治疗"},
|
||||
{"id":1017,"text":"对目标施加治疗,恢复少量生命值"},
|
||||
{"id":1018,"text":"攻击提升"},
|
||||
{"id":1019,"text":"对目标友军施加增益,短时间内增加目标攻击力"},
|
||||
{"id":1020,"text":"长枪"},
|
||||
{"id":1021,"text":"使用长枪对中等距离的敌人造成伤害,并附带击退效果。(无法对肉盾、英雄目标造成击退)"},
|
||||
{"id":1022,"text":"冲锋"},
|
||||
{"id":1023,"text":"接近目标时,骑兵发起冲锋对敌人造成伤害与击退效果,冲锋期间击杀敌人后,可继续冲锋。(无法对肉盾、英雄目标造成击退)"},
|
||||
{"id":1100,"text":"[小队]:首次攻击时,额外召唤1名刀兵"},
|
||||
{"id":1101,"text":"[小队]额外召唤1个[暗影刀兵]"},
|
||||
{"id":1102,"text":"首次攻击时,同时投掷[捕网],眩晕敌方4秒"},
|
||||
{"id":1103,"text":"[捕网]进化成[暗影网]:向首个进入目标范围内敌人,投掷暗影网,重复命中敌方时叠加控制时长"},
|
||||
{"id":1104,"text":"火焰进化为硫化火焰。附加灼烧伤害3秒"},
|
||||
{"id":1105,"text":"出战战士数量+1"},
|
||||
{"id":1106,"text":"爆炸时,对灼烧目标,有20%概率眩晕敌人1秒"},
|
||||
{"id":1107,"text":"灼烧效果会持续到目标直至死亡。"},
|
||||
{"id":1150,"text":"每攻击5次,释放一次重刺穿透直线上的3个敌人"},
|
||||
{"id":1151,"text":"重刺附带撕裂效果,技能伤害+60%"},
|
||||
{"id":1152,"text":"重刺附带击退效果"},
|
||||
{"id":1153,"text":"技能伤害+60%"},
|
||||
{"id":1154,"text":"重刺后附带横扫技,对范围内的敌人造成伤害,技能伤害+30%"},
|
||||
{"id":1155,"text":"横扫会反向再次横扫1次,本次横扫伤害-20%"},
|
||||
{"id":1156,"text":"技能对冰冻状态下的敌人,伤害+200%"},
|
||||
{"id":1157,"text":"技能击杀1个敌人,自身攻击力提升2%,直至死亡"},
|
||||
{"id":1200,"text":"每攻击5次,恢复自身血量10%,"},
|
||||
{"id":1201,"text":"单次承伤损失血量,最多不超过自身血量上限的25%"},
|
||||
{"id":1202,"text":"第一次生命低于30%时,会在接下来的3秒恢复最大生命15%"},
|
||||
{"id":1203,"text":"单次承伤损失血量,最多不超过自身血量上限的15%"},
|
||||
{"id":1204,"text":"恢复血量时,有10%概率再次恢复(针对攻击触发技能)"},
|
||||
{"id":1205,"text":"每次恢复血量时,恢复效果+20%"},
|
||||
{"id":1206,"text":"攻击异常状态敌人时,有概率额外恢复自身生命2%的生命"},
|
||||
{"id":1207,"text":"血量为0时,有20%概率恢复自身血量50%(仅触发一次)"},
|
||||
{"id":1250,"text":"召唤后,冲锋路径上的敌人,造成200%攻击力的伤害,每击杀1个敌人后可持续冲锋,每次击杀伤害递减20%,直至无击杀目标后停止"},
|
||||
{"id":1251,"text":"冲锋结束后,附带击退效果,伤害+60%"},
|
||||
{"id":1252,"text":"冲锋状态经过的友军,获得50%移速加成,持续3秒"},
|
||||
{"id":1253,"text":"骑兵冲锋数量+1,伤害-20%"},
|
||||
{"id":1254,"text":"冲锋状态结束时,对击退目标有5%造成2秒眩晕"},
|
||||
{"id":1255,"text":"冲锋状态下,首个命中的敌人对其额外造成200%的伤害"},
|
||||
{"id":1256,"text":"冲锋状态下,对异常状态敌人伤害+200%"},
|
||||
{"id":1257,"text":"冲锋过程中,冲锋伤害不递减。"},
|
||||
{"id":1300,"text":"每普攻5次,发射一枚霜冻箭附加冰霜效果,降低敌人10%移速(霜冻箭最大上限:30%),持续时间:5S"},
|
||||
{"id":1301,"text":"普攻发射弓箭数量+1,伤害-20%"},
|
||||
{"id":1302,"text":"霜冻箭攻击减速达到30%的目标,使用霜冻箭命中有20%触发1秒冰冻效果"},
|
||||
{"id":1303,"text":"普攻发射弓箭数量+1"},
|
||||
{"id":1304,"text":"弓箭攻击,附带减速效果的敌人时,伤害+20%"},
|
||||
{"id":1305,"text":"霜冻箭击杀敌人时,向扇形发射4枚碎冰造成伤害(伤害1次)"},
|
||||
{"id":1306,"text":"弓箭对冻结状态下的敌人伤害+100%"},
|
||||
{"id":1307,"text":"攻击冰冻目标,有5%概率,额外造成目标最大生命上限1%的伤害"},
|
||||
{"id":1350,"text":"每攻击5次,释放1个高爆燃油弹,对落点区域的敌人造成小范围伤害"},
|
||||
{"id":1351,"text":"承受到伤害的敌人,附带灼烧效果,持续3秒"},
|
||||
{"id":1352,"text":"释放2个高爆燃油弹,对落点区域的敌人造成伤害"},
|
||||
{"id":1353,"text":"被击中的目标,附带30%的减速效果,持续时间:3秒"},
|
||||
{"id":1354,"text":"爆炸区域的敌人,眩晕1.5秒"},
|
||||
{"id":1355,"text":"爆炸造成伤害时,增加100%伤害"},
|
||||
{"id":1356,"text":"燃烧弹对冻结的怪物造成伤害+200%"},
|
||||
{"id":1357,"text":"每次投掷燃烧弹时,有5%概率投出子母弹,对相同区域投掷2枚燃烧弹"},
|
||||
{"id":1500,"text":"建筑等级上限"},
|
||||
{"id":1501,"text":"加成提升"},
|
||||
{"id":2000,"text":"凝聚火焰之力,朝前方释放一道炽热的烈焰冲击,对范围内敌人造成{0}%+{1}伤害"},
|
||||
{"id":2001,"text":"进入狂化状态,自身体型变大,提升自身攻速与移速100%"},
|
||||
{"id":2002,"text":"召唤3道闪电,造成{0}%+{1}范围伤害,并带麻痹效果"},
|
||||
{"id":2003,"text":"召唤一个图腾,提升友军伤害30%,持续3秒,结束后图腾爆炸,造成{0}%+{1}范围伤害"},
|
||||
{"id":2004,"text":"召唤一本死亡之书,存在3秒,每0.5秒造成{0}%+{1}范围伤害,并造成牵引效果"},
|
||||
{"id":2005,"text":"化身天外飞仙,连续攻击目标,并造成大量伤害"},
|
||||
{"id":2006,"text":"狂化"},
|
||||
{"id":2007,"text":"进入狂化状态,自身体型变大,提升自身攻速与移速100%"},
|
||||
{"id":2008,"text":"陨石"},
|
||||
{"id":2009,"text":"召唤陨石攻击前方敌人,对范围内的敌人造成伤害,并附带减速效果"},
|
||||
{"id":2010,"text":"混沌陨石"},
|
||||
{"id":2011,"text":"召唤陨石攻击前方敌人,对范围内的敌人造成大量伤害,并附带长时间眩晕"},
|
||||
{"id":2012,"text":"冲锋"},
|
||||
{"id":2013,"text":"向前冲锋对敌方造成伤害并推走沿途敌人"},
|
||||
{"id":2014,"text":"治疗"},
|
||||
{"id":2015,"text":"治疗自己和周围友军"},
|
||||
{"id":2016,"text":"向前飞行多次造成伤害并且向技能飞行方向击退敌人"},
|
||||
{"id":3000,"text":"时装5品1_先锋宝藏"},
|
||||
{"id":3001,"text":"时装5品2_先锋宝藏"},
|
||||
{"id":3002,"text":"时装5品3_先锋宝藏"},
|
||||
{"id":3003,"text":"时装5品4_先锋宝藏"},
|
||||
{"id":3004,"text":"时装5品5_先锋宝藏"},
|
||||
{"id":3005,"text":"时装5品6_先锋宝藏"},
|
||||
{"id":3050,"text":"时装6品1_先锋宝藏"},
|
||||
{"id":3051,"text":"时装6品2_先锋宝藏"},
|
||||
{"id":3052,"text":"时装6品3_先锋宝藏"},
|
||||
{"id":3053,"text":"时装6品4_先锋宝藏"},
|
||||
{"id":3054,"text":"时装6品5_先锋宝藏"},
|
||||
{"id":3055,"text":"时装6品6_先锋宝藏"},
|
||||
{"id":3056,"text":"时装6品7"},
|
||||
{"id":3057,"text":"时装6品8"},
|
||||
{"id":3058,"text":"时装6品9"},
|
||||
{"id":3059,"text":"时装6品10"},
|
||||
{"id":3009,"text":"独立测试"},
|
||||
{"id":4000,"text":"武器4品1_首充"},
|
||||
{"id":4001,"text":"武器4品2"},
|
||||
{"id":4002,"text":"武器4品3"},
|
||||
{"id":4050,"text":"武器5品1_先锋宝藏"},
|
||||
{"id":4051,"text":"武器5品2_先锋宝藏"},
|
||||
{"id":4052,"text":"武器5品3_先锋宝藏"},
|
||||
{"id":4100,"text":"武器6品1_先锋宝藏"},
|
||||
{"id":4101,"text":"武器6品2_先锋宝藏"},
|
||||
{"id":4102,"text":"武器6品3_先锋宝藏"},
|
||||
{"id":4103,"text":"武器6品4_先锋宝藏"},
|
||||
{"id":4104,"text":"武器6品5_先锋宝藏"},
|
||||
{"id":4105,"text":"武器6品6_先锋宝藏"},
|
||||
{"id":4106,"text":"武器6品7"},
|
||||
{"id":4107,"text":"武器6品8"},
|
||||
{"id":4108,"text":"武器6品9"},
|
||||
{"id":4109,"text":"武器6品10"},
|
||||
{"id":5000,"text":"按住屏幕左右\\n移动英雄"},
|
||||
{"id":5001,"text":"点击召唤同伴"},
|
||||
{"id":5002,"text":"释放技能\\n获得强大效果"},
|
||||
{"id":5003,"text":"金币可用于召唤同伴\\n也能提升金库等级"},
|
||||
{"id":10007,"text":"锻造石"},
|
||||
{"id":10008,"text":"洗炼符"},
|
||||
{"id":10009,"text":"科技图纸"},
|
||||
{"id":10010,"text":"木材"},
|
||||
{"id":10011,"text":"强化剂"},
|
||||
{"id":10050,"text":"银钥匙"},
|
||||
{"id":10051,"text":"金钥匙"},
|
||||
{"id":10052,"text":"招募令"},
|
||||
{"id":10060,"text":"通用英雄皮肤材料-4"},
|
||||
{"id":10061,"text":"通用英雄皮肤材料-5"},
|
||||
{"id":10062,"text":"通用英雄皮肤材料-6"},
|
||||
{"id":10063,"text":"通用英雄皮肤材料-7"},
|
||||
{"id":10070,"text":"通用武器皮肤材料-4"},
|
||||
{"id":10071,"text":"通用武器皮肤材料-5"},
|
||||
{"id":10072,"text":"通用武器皮肤材料-6"},
|
||||
{"id":10073,"text":"通用武器皮肤材料-7"},
|
||||
{"id":10100,"text":"战场积分"},
|
||||
{"id":10101,"text":"军团积分"},
|
||||
{"id":10102,"text":"薪火积分"},
|
||||
{"id":10103,"text":"赛季积分"},
|
||||
{"id":10104,"text":"荣耀积分"},
|
||||
{"id":10105,"text":"元素积分"},
|
||||
{"id":10106,"text":"终末积分"},
|
||||
{"id":10107,"text":"危机积分"},
|
||||
{"id":10200,"text":"头盔图纸"},
|
||||
{"id":10201,"text":"护臂图纸"},
|
||||
{"id":10202,"text":"衣服图纸"},
|
||||
{"id":10203,"text":"裤子图纸"},
|
||||
{"id":10204,"text":"鞋子图纸"},
|
||||
{"id":10205,"text":"手套图纸"},
|
||||
{"id":11100,"text":"宠物1碎片"},
|
||||
{"id":11101,"text":"宠物2碎片"},
|
||||
{"id":11102,"text":"宠物3碎片"},
|
||||
{"id":11103,"text":"宠物4碎片"},
|
||||
{"id":11104,"text":"宠物5碎片"},
|
||||
{"id":11105,"text":"宠物6碎片"},
|
||||
{"id":11106,"text":"宠物7碎片"},
|
||||
{"id":11107,"text":"宠物8碎片"},
|
||||
{"id":11108,"text":"宠物9碎片"},
|
||||
{"id":11109,"text":"宠物10碎片"},
|
||||
{"id":11110,"text":"宠物11碎片"},
|
||||
{"id":11111,"text":"宠物12碎片"},
|
||||
{"id":11112,"text":"宠物13碎片"},
|
||||
{"id":11113,"text":"宠物14碎片"},
|
||||
{"id":11114,"text":"宠物15碎片"},
|
||||
{"id":11115,"text":"宠物16碎片"},
|
||||
{"id":11116,"text":"宠物17碎片"},
|
||||
{"id":11117,"text":"宠物18碎片"},
|
||||
{"id":11118,"text":"宠物19碎片"},
|
||||
{"id":11119,"text":"宠物20碎片"},
|
||||
{"id":20007,"text":"锻造石详情"},
|
||||
{"id":20008,"text":"洗炼符详情"},
|
||||
{"id":20009,"text":"科技图纸详情"},
|
||||
{"id":20010,"text":"木材详情"},
|
||||
{"id":20050,"text":"银钥匙详情"},
|
||||
{"id":20051,"text":"金钥匙详情"},
|
||||
{"id":20052,"text":"招募令详情"},
|
||||
{"id":20060,"text":"通用英雄皮肤材料-4详情"},
|
||||
{"id":20061,"text":"通用英雄皮肤材料-5详情"},
|
||||
{"id":20062,"text":"通用英雄皮肤材料-6详情"},
|
||||
{"id":20063,"text":"通用英雄皮肤材料-7详情"},
|
||||
{"id":20070,"text":"通用武器皮肤材料-4详情"},
|
||||
{"id":20071,"text":"通用武器皮肤材料-5详情"},
|
||||
{"id":20072,"text":"通用武器皮肤材料-6详情"},
|
||||
{"id":20073,"text":"通用武器皮肤材料-7详情"},
|
||||
{"id":20100,"text":"战场积分详情"},
|
||||
{"id":20101,"text":"军团积分详情"},
|
||||
{"id":20102,"text":"薪火积分详情"},
|
||||
{"id":20103,"text":"赛季积分详情"},
|
||||
{"id":20104,"text":"荣耀积分详情"},
|
||||
{"id":20105,"text":"元素积分详情"},
|
||||
{"id":20106,"text":"终末积分详情"},
|
||||
{"id":20107,"text":"危机积分详情"},
|
||||
{"id":20200,"text":"头盔图纸详情"},
|
||||
{"id":20201,"text":"护臂图纸详情"},
|
||||
{"id":20202,"text":"衣服图纸详情"},
|
||||
{"id":20203,"text":"裤子图纸详情"},
|
||||
{"id":20204,"text":"鞋子图纸详情"},
|
||||
{"id":20205,"text":"手套图纸详情"},
|
||||
{"id":10500,"text":"1分钟加速"},
|
||||
{"id":10501,"text":"10分钟加速"},
|
||||
{"id":10502,"text":"半小时加速"},
|
||||
{"id":10503,"text":"1小时加速"},
|
||||
{"id":10504,"text":"6小时加速"},
|
||||
{"id":110000,"text":"技能1"},
|
||||
{"id":110001,"text":"技能2"},
|
||||
{"id":110002,"text":"技能3"},
|
||||
{"id":110003,"text":"技能4"},
|
||||
{"id":110004,"text":"技能5"},
|
||||
{"id":110005,"text":"技能6"},
|
||||
{"id":110006,"text":"技能7"},
|
||||
{"id":110007,"text":"技能8"},
|
||||
{"id":110008,"text":"技能9"},
|
||||
{"id":110009,"text":"技能10"},
|
||||
{"id":110010,"text":"技能11"},
|
||||
{"id":110011,"text":"技能12"},
|
||||
{"id":310001,"text":"头盔·普通"},
|
||||
{"id":310002,"text":"头盔·精良"},
|
||||
{"id":310003,"text":"头盔·卓越"},
|
||||
{"id":320001,"text":"护臂·普通"},
|
||||
{"id":320002,"text":"护臂·精良"},
|
||||
{"id":320003,"text":"护臂·卓越"},
|
||||
{"id":330001,"text":"衣服·普通"},
|
||||
{"id":330002,"text":"衣服·精良"},
|
||||
{"id":330003,"text":"衣服·卓越"},
|
||||
{"id":340001,"text":"裤子·普通"},
|
||||
{"id":340002,"text":"裤子·精良"},
|
||||
{"id":340003,"text":"裤子·卓越"},
|
||||
{"id":350001,"text":"鞋子·普通"},
|
||||
{"id":350002,"text":"鞋子·精良"},
|
||||
{"id":350003,"text":"鞋子·卓越"},
|
||||
{"id":360001,"text":"手套·普通"},
|
||||
{"id":360002,"text":"手套·精良"},
|
||||
{"id":360003,"text":"手套·卓越"},
|
||||
{"id":411000,"text":"头盔·普通宝石"},
|
||||
{"id":421000,"text":"护臂·普通宝石"},
|
||||
{"id":431000,"text":"衣服·普通宝石"},
|
||||
{"id":441000,"text":"裤子·普通宝石"},
|
||||
{"id":451000,"text":"鞋子·普通宝石"},
|
||||
{"id":461000,"text":"手套·普通宝石"},
|
||||
{"id":412000,"text":"头盔·精良宝石"},
|
||||
{"id":422000,"text":"护臂·精良宝石"},
|
||||
{"id":432000,"text":"衣服·精良宝石"},
|
||||
{"id":442000,"text":"裤子·精良宝石"},
|
||||
{"id":452000,"text":"鞋子·精良宝石"},
|
||||
{"id":462000,"text":"手套·精良宝石"},
|
||||
{"id":413000,"text":"头盔·卓越宝石"},
|
||||
{"id":423000,"text":"护臂·卓越宝石"},
|
||||
{"id":433000,"text":"衣服·卓越宝石"},
|
||||
{"id":443000,"text":"裤子·卓越宝石"},
|
||||
{"id":453000,"text":"鞋子·卓越宝石"},
|
||||
{"id":463000,"text":"手套·卓越宝石"},
|
||||
{"id":414000,"text":"头盔·完美宝石"},
|
||||
{"id":424000,"text":"护臂·完美宝石"},
|
||||
{"id":434000,"text":"衣服·完美宝石"},
|
||||
{"id":444000,"text":"裤子·完美宝石"},
|
||||
{"id":454000,"text":"鞋子·完美宝石"},
|
||||
{"id":464000,"text":"手套·完美宝石"},
|
||||
{"id":415000,"text":"头盔·传说宝石"},
|
||||
{"id":425000,"text":"护臂·传说宝石"},
|
||||
{"id":435000,"text":"衣服·传说宝石"},
|
||||
{"id":445000,"text":"裤子·传说宝石"},
|
||||
{"id":455000,"text":"鞋子·传说宝石"},
|
||||
{"id":465000,"text":"手套·传说宝石"},
|
||||
{"id":416000,"text":"头盔·绝世宝石"},
|
||||
{"id":426000,"text":"护臂·绝世宝石"},
|
||||
{"id":436000,"text":"衣服·绝世宝石"},
|
||||
{"id":446000,"text":"裤子·绝世宝石"},
|
||||
{"id":456000,"text":"鞋子·绝世宝石"},
|
||||
{"id":466000,"text":"手套·绝世宝石"},
|
||||
{"id":417000,"text":"头盔·至尊宝石"},
|
||||
{"id":427000,"text":"护臂·至尊宝石"},
|
||||
{"id":437000,"text":"衣服·至尊宝石"},
|
||||
{"id":447000,"text":"裤子·至尊宝石"},
|
||||
{"id":457000,"text":"鞋子·至尊宝石"},
|
||||
{"id":467000,"text":"手套·至尊宝石"}
|
||||
{"id":101,"text":"普通"},
|
||||
{"id":102,"text":"精良"},
|
||||
{"id":103,"text":"传奇"},
|
||||
{"id":104,"text":"史诗"},
|
||||
{"id":105,"text":"卓越"},
|
||||
{"id":106,"text":"传说"},
|
||||
{"id":107,"text":"传说+1"},
|
||||
{"id":108,"text":"传说+2"},
|
||||
{"id":201,"text":"攻击"},
|
||||
{"id":202,"text":"血量"},
|
||||
{"id":203,"text":"飞剑基础伤害"},
|
||||
{"id":204,"text":"飞剑穿戴额外伤害"},
|
||||
{"id":205,"text":"飞剑穿戴额外特殊伤害"},
|
||||
{"id":206,"text":"火焰伤害"},
|
||||
{"id":207,"text":"冰霜伤害"},
|
||||
{"id":208,"text":"雷电伤害"},
|
||||
{"id":209,"text":"暗影伤害"},
|
||||
{"id":210,"text":"火焰抗性"},
|
||||
{"id":211,"text":"冰霜抗性"},
|
||||
{"id":212,"text":"雷电抗性"},
|
||||
{"id":213,"text":"暗影抗性"},
|
||||
{"id":214,"text":"攻击"},
|
||||
{"id":215,"text":"血量"},
|
||||
{"id":216,"text":"攻速"},
|
||||
{"id":220,"text":"暴击率"},
|
||||
{"id":221,"text":"暴击"},
|
||||
{"id":222,"text":"攻击速度加成"},
|
||||
{"id":223,"text":"冷却时间"},
|
||||
{"id":224,"text":"资源上限"},
|
||||
{"id":225,"text":"资源消耗减免"},
|
||||
{"id":226,"text":"资源回复速度"},
|
||||
{"id":227,"text":"吸血"},
|
||||
{"id":228,"text":"金币掉落加成"},
|
||||
{"id":250,"text":"上阵穿戴数量上限"},
|
||||
{"id":251,"text":"技能数量上限"},
|
||||
{"id":252,"text":"额外属性数量上限"},
|
||||
{"id":253,"text":"元素属性数量上限"},
|
||||
{"id":254,"text":"元素抗性数量上限"},
|
||||
{"id":255,"text":"宝石数量上限"},
|
||||
{"id":100006,"text":"Coin+{0}"},
|
||||
{"id":100007,"text":"Score+{0}"},
|
||||
{"id":40000,"text":"测试装备1"},
|
||||
{"id":40001,"text":"测试装备2"},
|
||||
{"id":40002,"text":"测试装备3"},
|
||||
{"id":40003,"text":"测试装备4"},
|
||||
{"id":40004,"text":"测试装备5"},
|
||||
{"id":40005,"text":"测试装备6"},
|
||||
{"id":40006,"text":"测试装备7"},
|
||||
{"id":40007,"text":"测试装备8"},
|
||||
{"id":40008,"text":"测试装备9"},
|
||||
{"id":40009,"text":"测试装备10"},
|
||||
{"id":40010,"text":"测试装备11"},
|
||||
{"id":40011,"text":"测试装备12"},
|
||||
{"id":40012,"text":"测试装备13"},
|
||||
{"id":40013,"text":"测试装备14"},
|
||||
{"id":40014,"text":"测试装备15"},
|
||||
{"id":40015,"text":"测试装备16"}
|
||||
]
|
@ -1,52 +1,52 @@
|
||||
[
|
||||
{"id":1,"type":1,"timeLimit":null,"atkBonus":500,"hpBonus":500,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":2,"type":1,"timeLimit":null,"atkBonus":520,"hpBonus":520,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":3,"type":1,"timeLimit":null,"atkBonus":540,"hpBonus":540,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":4,"type":1,"timeLimit":null,"atkBonus":560,"hpBonus":560,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":5,"type":2,"timeLimit":60,"atkBonus":1050,"hpBonus":1050,"wave":[[10,1000,1]]},
|
||||
{"id":6,"type":1,"timeLimit":null,"atkBonus":600,"hpBonus":600,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":7,"type":1,"timeLimit":null,"atkBonus":620,"hpBonus":620,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":8,"type":1,"timeLimit":null,"atkBonus":640,"hpBonus":640,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":9,"type":1,"timeLimit":null,"atkBonus":660,"hpBonus":660,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":10,"type":2,"timeLimit":60,"atkBonus":1100,"hpBonus":1100,"wave":[[10,1000,1]]},
|
||||
{"id":11,"type":1,"timeLimit":null,"atkBonus":700,"hpBonus":700,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":12,"type":1,"timeLimit":null,"atkBonus":720,"hpBonus":720,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":13,"type":1,"timeLimit":null,"atkBonus":740,"hpBonus":740,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":14,"type":1,"timeLimit":null,"atkBonus":760,"hpBonus":760,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":15,"type":2,"timeLimit":60,"atkBonus":1150,"hpBonus":1150,"wave":[[10,1000,1]]},
|
||||
{"id":16,"type":1,"timeLimit":null,"atkBonus":800,"hpBonus":800,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":17,"type":1,"timeLimit":null,"atkBonus":820,"hpBonus":820,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":18,"type":1,"timeLimit":null,"atkBonus":840,"hpBonus":840,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":19,"type":1,"timeLimit":null,"atkBonus":860,"hpBonus":860,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":20,"type":2,"timeLimit":60,"atkBonus":1250,"hpBonus":1250,"wave":[[10,1000,1]]},
|
||||
{"id":21,"type":1,"timeLimit":null,"atkBonus":900,"hpBonus":900,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":22,"type":1,"timeLimit":null,"atkBonus":920,"hpBonus":920,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":23,"type":1,"timeLimit":null,"atkBonus":940,"hpBonus":940,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":24,"type":1,"timeLimit":null,"atkBonus":960,"hpBonus":960,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":25,"type":2,"timeLimit":60,"atkBonus":1350,"hpBonus":1350,"wave":[[10,1000,1]]},
|
||||
{"id":26,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":27,"type":1,"timeLimit":null,"atkBonus":1020,"hpBonus":1020,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":28,"type":1,"timeLimit":null,"atkBonus":1040,"hpBonus":1040,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":29,"type":1,"timeLimit":null,"atkBonus":1060,"hpBonus":1060,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":30,"type":2,"timeLimit":60,"atkBonus":1500,"hpBonus":1500,"wave":[[10,1000,1]]},
|
||||
{"id":31,"type":1,"timeLimit":null,"atkBonus":1100,"hpBonus":1100,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":32,"type":1,"timeLimit":null,"atkBonus":1120,"hpBonus":1120,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":33,"type":1,"timeLimit":null,"atkBonus":1140,"hpBonus":1140,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":34,"type":1,"timeLimit":null,"atkBonus":1160,"hpBonus":1160,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":35,"type":2,"timeLimit":60,"atkBonus":2000,"hpBonus":2000,"wave":[[10,1000,1]]},
|
||||
{"id":36,"type":1,"timeLimit":null,"atkBonus":1200,"hpBonus":1200,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":37,"type":1,"timeLimit":null,"atkBonus":1220,"hpBonus":1220,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":38,"type":1,"timeLimit":null,"atkBonus":1240,"hpBonus":1240,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":39,"type":1,"timeLimit":null,"atkBonus":1260,"hpBonus":1260,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":40,"type":2,"timeLimit":60,"atkBonus":2500,"hpBonus":2500,"wave":[[10,1000,1]]},
|
||||
{"id":41,"type":1,"timeLimit":null,"atkBonus":1300,"hpBonus":1300,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":42,"type":1,"timeLimit":null,"atkBonus":1320,"hpBonus":1320,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":43,"type":1,"timeLimit":null,"atkBonus":1340,"hpBonus":1340,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":44,"type":1,"timeLimit":null,"atkBonus":1360,"hpBonus":1360,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":45,"type":2,"timeLimit":60,"atkBonus":3000,"hpBonus":3000,"wave":[[10,1000,1]]},
|
||||
{"id":46,"type":1,"timeLimit":null,"atkBonus":1400,"hpBonus":1400,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":47,"type":1,"timeLimit":null,"atkBonus":1420,"hpBonus":1420,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":48,"type":1,"timeLimit":null,"atkBonus":1440,"hpBonus":1440,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":49,"type":1,"timeLimit":null,"atkBonus":1460,"hpBonus":1460,"wave":[[10,1,1,50,1,1]]},
|
||||
{"id":50,"type":2,"timeLimit":60,"atkBonus":3500,"hpBonus":3500,"wave":[[10,1000,1]]}
|
||||
{"id":1,"type":1,"timeLimit":null,"atkBonus":500,"hpBonus":500,"wave":[[10,1,1,50,1,1]],"finishRewards":[50000,1]},
|
||||
{"id":2,"type":1,"timeLimit":null,"atkBonus":520,"hpBonus":520,"wave":[[10,1,1,50,1,1]],"finishRewards":[50001,1]},
|
||||
{"id":3,"type":1,"timeLimit":null,"atkBonus":540,"hpBonus":540,"wave":[[10,1,1,50,1,1]],"finishRewards":[50002,1]},
|
||||
{"id":4,"type":1,"timeLimit":null,"atkBonus":560,"hpBonus":560,"wave":[[10,1,1,50,1,1]],"finishRewards":[50003,1]},
|
||||
{"id":5,"type":2,"timeLimit":60,"atkBonus":1050,"hpBonus":1050,"wave":[[10,1000,1]],"finishRewards":[50004,1]},
|
||||
{"id":6,"type":1,"timeLimit":null,"atkBonus":600,"hpBonus":600,"wave":[[10,1,1,50,1,1]],"finishRewards":[50005,1]},
|
||||
{"id":7,"type":1,"timeLimit":null,"atkBonus":620,"hpBonus":620,"wave":[[10,1,1,50,1,1]],"finishRewards":[50006,1]},
|
||||
{"id":8,"type":1,"timeLimit":null,"atkBonus":640,"hpBonus":640,"wave":[[10,1,1,50,1,1]],"finishRewards":[50007,1]},
|
||||
{"id":9,"type":1,"timeLimit":null,"atkBonus":660,"hpBonus":660,"wave":[[10,1,1,50,1,1]],"finishRewards":[50008,1]},
|
||||
{"id":10,"type":2,"timeLimit":60,"atkBonus":1100,"hpBonus":1100,"wave":[[10,1000,1]],"finishRewards":[50009,1]},
|
||||
{"id":11,"type":1,"timeLimit":null,"atkBonus":700,"hpBonus":700,"wave":[[10,1,1,50,1,1]],"finishRewards":[50010,1]},
|
||||
{"id":12,"type":1,"timeLimit":null,"atkBonus":720,"hpBonus":720,"wave":[[10,1,1,50,1,1]],"finishRewards":[50011,1]},
|
||||
{"id":13,"type":1,"timeLimit":null,"atkBonus":740,"hpBonus":740,"wave":[[10,1,1,50,1,1]],"finishRewards":[50012,1]},
|
||||
{"id":14,"type":1,"timeLimit":null,"atkBonus":760,"hpBonus":760,"wave":[[10,1,1,50,1,1]],"finishRewards":[50013,1]},
|
||||
{"id":15,"type":2,"timeLimit":60,"atkBonus":1150,"hpBonus":1150,"wave":[[10,1000,1]],"finishRewards":[50014,1]},
|
||||
{"id":16,"type":1,"timeLimit":null,"atkBonus":800,"hpBonus":800,"wave":[[10,1,1,50,1,1]],"finishRewards":[50015,1]},
|
||||
{"id":17,"type":1,"timeLimit":null,"atkBonus":820,"hpBonus":820,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":18,"type":1,"timeLimit":null,"atkBonus":840,"hpBonus":840,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":19,"type":1,"timeLimit":null,"atkBonus":860,"hpBonus":860,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":20,"type":2,"timeLimit":60,"atkBonus":1250,"hpBonus":1250,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":21,"type":1,"timeLimit":null,"atkBonus":900,"hpBonus":900,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":22,"type":1,"timeLimit":null,"atkBonus":920,"hpBonus":920,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":23,"type":1,"timeLimit":null,"atkBonus":940,"hpBonus":940,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":24,"type":1,"timeLimit":null,"atkBonus":960,"hpBonus":960,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":25,"type":2,"timeLimit":60,"atkBonus":1350,"hpBonus":1350,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":26,"type":1,"timeLimit":null,"atkBonus":1000,"hpBonus":1000,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":27,"type":1,"timeLimit":null,"atkBonus":1020,"hpBonus":1020,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":28,"type":1,"timeLimit":null,"atkBonus":1040,"hpBonus":1040,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":29,"type":1,"timeLimit":null,"atkBonus":1060,"hpBonus":1060,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":30,"type":2,"timeLimit":60,"atkBonus":1500,"hpBonus":1500,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":31,"type":1,"timeLimit":null,"atkBonus":1100,"hpBonus":1100,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":32,"type":1,"timeLimit":null,"atkBonus":1120,"hpBonus":1120,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":33,"type":1,"timeLimit":null,"atkBonus":1140,"hpBonus":1140,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":34,"type":1,"timeLimit":null,"atkBonus":1160,"hpBonus":1160,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":35,"type":2,"timeLimit":60,"atkBonus":2000,"hpBonus":2000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":36,"type":1,"timeLimit":null,"atkBonus":1200,"hpBonus":1200,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":37,"type":1,"timeLimit":null,"atkBonus":1220,"hpBonus":1220,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":38,"type":1,"timeLimit":null,"atkBonus":1240,"hpBonus":1240,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":39,"type":1,"timeLimit":null,"atkBonus":1260,"hpBonus":1260,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":40,"type":2,"timeLimit":60,"atkBonus":2500,"hpBonus":2500,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":41,"type":1,"timeLimit":null,"atkBonus":1300,"hpBonus":1300,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":42,"type":1,"timeLimit":null,"atkBonus":1320,"hpBonus":1320,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":43,"type":1,"timeLimit":null,"atkBonus":1340,"hpBonus":1340,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":44,"type":1,"timeLimit":null,"atkBonus":1360,"hpBonus":1360,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":45,"type":2,"timeLimit":60,"atkBonus":3000,"hpBonus":3000,"wave":[[10,1000,1]],"finishRewards":[]},
|
||||
{"id":46,"type":1,"timeLimit":null,"atkBonus":1400,"hpBonus":1400,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":47,"type":1,"timeLimit":null,"atkBonus":1420,"hpBonus":1420,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":48,"type":1,"timeLimit":null,"atkBonus":1440,"hpBonus":1440,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":49,"type":1,"timeLimit":null,"atkBonus":1460,"hpBonus":1460,"wave":[[10,1,1,50,1,1]],"finishRewards":[]},
|
||||
{"id":50,"type":2,"timeLimit":60,"atkBonus":3500,"hpBonus":3500,"wave":[[10,1000,1]],"finishRewards":[]}
|
||||
]
|
@ -2,5 +2,6 @@
|
||||
{"id":1,"key":"quality_bonus","intValue":null,"stringValue":null,"intArray":[100,125,150,200,275,375]},
|
||||
{"id":2,"key":"level_get_bonus","intValue":null,"stringValue":null,"intArray":[5,2]},
|
||||
{"id":3,"key":"mob_died_get","intValue":null,"stringValue":null,"intArray":[2,10]},
|
||||
{"id":4,"key":"default_weapon","intValue":null,"stringValue":"Sword","intArray":[]}
|
||||
{"id":4,"key":"default_weapon","intValue":null,"stringValue":"Sword","intArray":[]},
|
||||
{"id":5,"key":"quality_show","intValue":null,"stringValue":null,"intArray":[101,102,103,104,105,106,107,108]}
|
||||
]
|
76
src/ReplicatedStorage/Modules/IncrementalCostManager.luau
Normal file
76
src/ReplicatedStorage/Modules/IncrementalCostManager.luau
Normal file
@ -0,0 +1,76 @@
|
||||
-- 递增消耗管理器
|
||||
local IncrementalCostManager = {}
|
||||
|
||||
--> Dependencies
|
||||
local Utils = require(script.Parent.Parent.Tools.Utils)
|
||||
|
||||
-- 递增消耗计算函数
|
||||
function IncrementalCostManager:CalculateCost(currentLevel: number, configData: table, costIndex: number?)
|
||||
if not configData then
|
||||
warn("配置数据无效")
|
||||
return 0
|
||||
end
|
||||
|
||||
costIndex = costIndex or 2 -- 默认使用第二个消耗值
|
||||
|
||||
-- 根据当前等级获取对应的消耗配置
|
||||
local levelData = Utils:GetIdDataFromJson(configData, currentLevel)
|
||||
if not levelData or not levelData.cost or not levelData.cost[costIndex] then
|
||||
warn("无法获取等级", currentLevel, "的消耗配置")
|
||||
return 0
|
||||
end
|
||||
|
||||
return levelData.cost[costIndex]
|
||||
end
|
||||
|
||||
-- 计算当前等级可以进行的操作次数
|
||||
function IncrementalCostManager:CalculateOperationCount(currentValue: number, currentLevel: number, configData: table, costIndex: number?)
|
||||
local cost = self:CalculateCost(currentLevel, configData, costIndex)
|
||||
if cost <= 0 then return 0 end
|
||||
|
||||
return math.floor(currentValue / cost)
|
||||
end
|
||||
|
||||
-- 计算下一次升级需要的资源
|
||||
function IncrementalCostManager:CalculateNextUpgradeCost(currentLevel: number, configData: table, costIndex: number?)
|
||||
local nextLevel = currentLevel + 1
|
||||
local maxLevel = Utils:GetMaxIdFromJson(configData)
|
||||
|
||||
if nextLevel > maxLevel then
|
||||
return 0 -- 已达到最高等级
|
||||
end
|
||||
|
||||
return self:CalculateCost(nextLevel, configData, costIndex)
|
||||
end
|
||||
|
||||
-- 检查是否可以升级
|
||||
function IncrementalCostManager:CanUpgrade(currentValue: number, currentLevel: number, configData: table, costIndex: number?)
|
||||
local nextCost = self:CalculateNextUpgradeCost(currentLevel, configData, costIndex)
|
||||
return currentValue >= nextCost
|
||||
end
|
||||
|
||||
-- 获取升级后的剩余资源
|
||||
function IncrementalCostManager:GetRemainingAfterUpgrade(currentValue: number, currentLevel: number, configData: table, costIndex: number?)
|
||||
local cost = self:CalculateCost(currentLevel, configData, costIndex)
|
||||
return currentValue - cost
|
||||
end
|
||||
|
||||
-- 批量计算多个等级的消耗
|
||||
function IncrementalCostManager:CalculateBatchCosts(startLevel: number, endLevel: number, configData: table, costIndex: number?)
|
||||
local costs = {}
|
||||
for level = startLevel, endLevel do
|
||||
costs[level] = self:CalculateCost(level, configData, costIndex)
|
||||
end
|
||||
return costs
|
||||
end
|
||||
|
||||
-- 计算从当前等级到目标等级的总消耗
|
||||
function IncrementalCostManager:CalculateTotalCost(currentLevel: number, targetLevel: number, configData: table, costIndex: number?)
|
||||
local totalCost = 0
|
||||
for level = currentLevel, targetLevel do
|
||||
totalCost = totalCost + self:CalculateCost(level, configData, costIndex)
|
||||
end
|
||||
return totalCost
|
||||
end
|
||||
|
||||
return IncrementalCostManager
|
@ -10,5 +10,4 @@ function Handles:valueExistsInTable(tab, value)
|
||||
return false
|
||||
end
|
||||
|
||||
|
||||
return Handles
|
||||
|
@ -14,10 +14,24 @@ local JsonLanguage_Zh_CN = require(ReplicatedStorage.Json.Language_Zh_CN)
|
||||
local JsonImage_En_US = require(ReplicatedStorage.Json.Image_En_US)
|
||||
local JsonImage_Zh_CN = require(ReplicatedStorage.Json.Image_Zh_CN)
|
||||
|
||||
local JsonParam = require(ReplicatedStorage.Json.Param)
|
||||
|
||||
--> Variables
|
||||
local LocalPlayer = game.Players.LocalPlayer
|
||||
local SystemLocaleId = LocalizationService.SystemLocaleId
|
||||
|
||||
--> Color
|
||||
local QUALITY_COLOR = {
|
||||
[1] = Color3.fromRGB(255, 255, 255), -- 白色
|
||||
[2] = Color3.fromRGB(0, 255, 0), -- 绿色
|
||||
[3] = Color3.fromRGB(0, 150, 255), -- 蓝色
|
||||
[4] = Color3.fromRGB(150, 0, 255), -- 紫色
|
||||
[5] = Color3.fromRGB(255, 150, 0), -- 橙色
|
||||
[6] = Color3.fromRGB(255, 0, 0), -- 红色
|
||||
[7] = Color3.fromRGB(255, 215, 0), -- 金色
|
||||
[8] = Color3.fromRGB(255, 0, 255), -- 粉色
|
||||
}
|
||||
|
||||
-- 获取本地Json文件
|
||||
function Localization:GetLocalizationJson()
|
||||
if SystemLocaleId == "zh-CN" then
|
||||
@ -45,4 +59,44 @@ function Localization:GetImageData(Id: number)
|
||||
return data.sourceId
|
||||
end
|
||||
|
||||
-- 获取装备品质描述
|
||||
function Localization:GetEquipmentQualityDesc(Quality: number)
|
||||
local qualityData = Utils:GetSpecialKeyDataFromJson(JsonParam, "key", "quality_show")
|
||||
if not qualityData then return "" end
|
||||
local languageData = Utils:GetSpecialKeyDataFromJson(JsonLanguage, "id", qualityData.intArray[Quality])
|
||||
if not languageData then return "" end
|
||||
local language = languageData.text
|
||||
return language
|
||||
end
|
||||
|
||||
-- 将Color3转换为十六进制字符串
|
||||
local function Color3ToHex(color: Color3): string
|
||||
local r = math.floor(color.R * 255)
|
||||
local g = math.floor(color.G * 255)
|
||||
local b = math.floor(color.B * 255)
|
||||
return string.format("#%02X%02X%02X", r, g, b)
|
||||
end
|
||||
|
||||
-- 根据quality获取带颜色包装的文本
|
||||
function Localization:GetColoredTextByQuality(quality: number, text: string): string
|
||||
if not quality or not text then return text or "" end
|
||||
|
||||
local color = QUALITY_COLOR[quality]
|
||||
if not color then return text end
|
||||
|
||||
local hexColor = Color3ToHex(color)
|
||||
return string.format('<font color="%s">%s</font>', hexColor, text)
|
||||
end
|
||||
|
||||
-- 根据quality获取装备品质描述(带颜色)
|
||||
function Localization:GetColoredEquipmentQualityDesc(Quality: number): string
|
||||
local qualityData = Utils:GetSpecialKeyDataFromJson(JsonParam, "key", "quality_show")
|
||||
if not qualityData then return "" end
|
||||
local languageData = Utils:GetSpecialKeyDataFromJson(JsonLanguage, "id", qualityData.intArray[Quality])
|
||||
if not languageData then return "" end
|
||||
local language = languageData.text
|
||||
|
||||
return self:GetColoredTextByQuality(Quality, language)
|
||||
end
|
||||
|
||||
return Localization
|
@ -128,6 +128,14 @@ function Behaviour:ChangeExecutingState(State: boolean)
|
||||
self.PlayerAI.ExecutingState = State
|
||||
end
|
||||
|
||||
-- 打断执行
|
||||
function Behaviour:StopExecute()
|
||||
if self.ExeTask then
|
||||
task.cancel(self.ExeTask)
|
||||
self.ExeTask = nil
|
||||
end
|
||||
end
|
||||
|
||||
-- 销毁
|
||||
function Behaviour:Destroy()
|
||||
-- 清除客户端对应行为表现
|
||||
|
@ -116,7 +116,13 @@ function EquipmentProxy:AddEquipment(Player: Player, EquipmentId: number)
|
||||
for i = 1, #EquipmentData.attributes, 3 do
|
||||
local AttributeData = Utils:GetIdDataFromJson(JsonAttributes, EquipmentData.attributes[i])
|
||||
local baseLvValue = EquipmentData.attributes[i + 1] + EquipmentData.attributes[i + 2] * (PlayerLevel - 1)
|
||||
local qualityEffectValue = math.floor(baseLvValue * (qualityParam[quality] / 100))
|
||||
local qualityEffectValue
|
||||
-- 攻击速度词条特殊处理
|
||||
if AttributeData.effectAttribute == "atkSpeed" then
|
||||
qualityEffectValue = baseLvValue
|
||||
else
|
||||
qualityEffectValue = math.floor(baseLvValue * (qualityParam[quality] / 100))
|
||||
end
|
||||
ResultData.attributes[AttributeData.effectAttribute] = qualityEffectValue
|
||||
end
|
||||
|
||||
|
@ -9,6 +9,9 @@ local Utils = require(ReplicatedStorage.Tools.Utils)
|
||||
--> Json
|
||||
local JsonItemProp = require(ReplicatedStorage.Json.ItemProp)
|
||||
|
||||
--> Modules
|
||||
local ItemProxy = require(script.Parent.ItemProxy)
|
||||
|
||||
--> Events
|
||||
local RE_PlayerHelper = ReplicatedStorage.Events.RE_PlayerHelper
|
||||
|
||||
@ -21,17 +24,7 @@ RE_PlayerHelper.OnServerEvent:Connect(function(Player: Player, EventName: string
|
||||
if EventName == "CleanPlayerData" then
|
||||
HelpProxy:CleanPlayerData(Player)
|
||||
elseif EventName == "AddItem" then
|
||||
local PlayerInfoProxy = require(script.Parent.PlayerInfoProxy)
|
||||
local itemData = Utils:GetIdDataFromJson(JsonItemProp, EventData[1])
|
||||
if itemData.type == 2 then
|
||||
local EquipmentProxy = require(script.Parent.EquipmentProxy)
|
||||
EquipmentProxy:AddEquipment(Player, EventData[1], EventData[2])
|
||||
elseif itemData.type == 3 then
|
||||
local BookProxy = require(script.Parent.BookProxy)
|
||||
BookProxy:UnlockBook(Player, EventData[1] - 10000)
|
||||
else
|
||||
PlayerInfoProxy:ChangeItemCount(Player, EventData[1], EventData[2])
|
||||
end
|
||||
ItemProxy:AddItem(Player, EventData[1], EventData[2])
|
||||
print("添加物品成功", EventData)
|
||||
end
|
||||
end)
|
||||
|
@ -21,9 +21,14 @@ function ItemProxy:AddItem(Player: Player, ItemId: number, ItemCount: number)
|
||||
|
||||
local ItemData = Utils:GetIdDataFromJson(JsonItem, ItemId)
|
||||
if not ItemData then return end
|
||||
|
||||
-- 之后根据不同类型做处理
|
||||
if ItemData.type == 1 then
|
||||
|
||||
if ItemData.type == 2 then
|
||||
local EquipmentProxy = require(script.Parent.EquipmentProxy)
|
||||
EquipmentProxy:AddEquipment(Player, ItemId, ItemCount)
|
||||
elseif ItemData.type == 3 then
|
||||
local BookProxy = require(script.Parent.BookProxy)
|
||||
BookProxy:UnlockBook(Player, ItemId - 10000)
|
||||
else
|
||||
PlayerInfoProxy:ChangeItemCount(Player, ItemId, ItemCount)
|
||||
end
|
||||
end
|
||||
|
@ -10,6 +10,7 @@ local Players = game:GetService("Players")
|
||||
local Utils = require(ReplicatedStorage.Tools.Utils)
|
||||
local ArchiveProxy = require(ServerStorage.Proxy.ArchiveProxy)
|
||||
local MobsProxy = require(ServerStorage.Proxy.MobsProxy)
|
||||
local ItemProxy = require(ServerStorage.Proxy.ItemProxy)
|
||||
local TypeList = require(ServerStorage.Base.TypeList)
|
||||
|
||||
--> Dependencies
|
||||
@ -183,7 +184,6 @@ end
|
||||
|
||||
-- 挑战关卡(挑战副本用另一个函数)
|
||||
function LevelProxy:ChallengeLevel(Player: Player, LevelId: number)
|
||||
print("挑战关卡", LevelId)
|
||||
local LevelData = Utils:GetIdDataFromJson(JsonLevel, LevelId)
|
||||
if not LevelData then warn("Level Data not found", LevelId) return end
|
||||
-- 给前端传数据,做表现
|
||||
@ -268,6 +268,20 @@ function LevelProxy:ChallengeEnd(Player: Player, result: boolean)
|
||||
|
||||
-- 判断玩家是否通关
|
||||
if result then
|
||||
local levelData = Utils:GetIdDataFromJson(JsonLevel, LevelProxy.pData[Player.UserId].LevelId)
|
||||
-- 防止之后失败重复添加奖励
|
||||
if ArchiveProxy.pData[Player.UserId][STORE_NAME].Progress.Main == LevelProxy.pData[Player.UserId].LevelId then
|
||||
-- 添加首次通关奖励
|
||||
if levelData.finishRewards then
|
||||
for i = 1, #levelData.finishRewards, 2 do
|
||||
local itemId = levelData.finishRewards[i]
|
||||
local itemCount = levelData.finishRewards[i + 1]
|
||||
ItemProxy:AddItem(Player, itemId, itemCount)
|
||||
print("添加首次通关奖励", itemId, itemCount)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
ChangeValue(Player, ProgressFolder, "Main", LevelProxy.pData[Player.UserId].LevelId + 1)
|
||||
else
|
||||
local IsBoss = LevelProxy.pData[Player.UserId].IsBoss
|
||||
|
@ -47,6 +47,7 @@ function PlayerAI.new(Player: Player, PlayerRole: TypeList.Character)
|
||||
self.Player = Player
|
||||
self.ExecutingState = false
|
||||
self.PlayerControling = false
|
||||
self.ExecutingBehaviour = nil
|
||||
|
||||
self.LastTime = 0
|
||||
self.Counter = 0
|
||||
@ -63,6 +64,12 @@ function PlayerAI.new(Player: Player, PlayerRole: TypeList.Character)
|
||||
self.PlayerControlCon = RE_PlayerAI.OnServerEvent:Connect(function(Player: Player, ControlState: boolean)
|
||||
if Player ~= self.Player then return end
|
||||
self.PlayerControling = ControlState
|
||||
|
||||
-- 打断正在执行的行为
|
||||
if self.ExecutingBehaviour then
|
||||
self.ExecutingBehaviour:StopExecute()
|
||||
self.ExecutingState = false
|
||||
end
|
||||
end)
|
||||
return self
|
||||
end
|
||||
@ -72,6 +79,7 @@ function PlayerAI:Update()
|
||||
local maxPriority = 0
|
||||
local bestBehaviour = nil
|
||||
local bestCheckData = nil
|
||||
self.ExecutingBehaviour = nil
|
||||
|
||||
for _, behaviour in self.BehaviourList do
|
||||
local priority, checkData = behaviour:Check(self.Character)
|
||||
@ -83,6 +91,7 @@ function PlayerAI:Update()
|
||||
end
|
||||
|
||||
if bestBehaviour and maxPriority > 0 then
|
||||
self.ExecutingBehaviour = bestBehaviour
|
||||
bestBehaviour:Execute(bestCheckData)
|
||||
end
|
||||
end
|
||||
@ -134,6 +143,8 @@ end
|
||||
function PlayerAI:ClearAllBehaviour()
|
||||
for _, behaviour in self.BehaviourList do behaviour:Destroy() end
|
||||
self.BehaviourList = {}
|
||||
self.ExecutingBehaviour = nil
|
||||
self.ExecutingState = false
|
||||
end
|
||||
|
||||
-- 销毁AI
|
||||
|
@ -157,10 +157,11 @@ function PlayerFightProxy:UpdatePlayerFightData(Player: Player)
|
||||
|
||||
-- 针对百分比特殊属性直接进行计算修改
|
||||
if AttributesData["hpRate"] then
|
||||
AttributesData["hp"] = math.floor(AttributesData["hp"] * AttributesData["hpRate"] / 100)
|
||||
AttributesData["hp"] = math.floor(AttributesData["hp"] * (1 + AttributesData["hpRate"] / 100))
|
||||
AttributesData["maxhp"] = AttributesData["hp"]
|
||||
end
|
||||
if AttributesData["atkRate"] then
|
||||
AttributesData["atk"] = math.floor(AttributesData["atk"] * AttributesData["atkRate"] / 100)
|
||||
if AttributesData["attackRate"] then
|
||||
AttributesData["attack"] = math.floor(AttributesData["attack"] * (1 + AttributesData["attackRate"] / 100))
|
||||
end
|
||||
|
||||
-- 更新玩家属性
|
||||
|
@ -218,6 +218,9 @@ end
|
||||
function PlayerInfoProxy:ChangeItemCount(Player: Player, ItemId: number, ItemCount: number)
|
||||
if not Player or not ItemId or not ItemCount then warn('添加物品失败: ' , Player.Name, ItemId, ItemCount) return end
|
||||
|
||||
-- 转换为字符串,存储为字典
|
||||
local ItemId = tostring(ItemId)
|
||||
|
||||
local playerInfoData = ArchiveProxy.pData[Player.UserId][STORE_NAME].Items
|
||||
local isNew = false
|
||||
if not playerInfoData[ItemId] then
|
||||
@ -231,15 +234,15 @@ function PlayerInfoProxy:ChangeItemCount(Player: Player, ItemId: number, ItemCou
|
||||
local ItemsFolder = GetPlayerInfoFolder(Player):FindFirstChild("Items")
|
||||
if isNew then
|
||||
CreateInfoInstance(Player, ItemsFolder, ItemId, "NumberValue")
|
||||
else
|
||||
ChangeInfoInstance(Player, ItemsFolder, ItemId, playerInfoData[ItemId])
|
||||
end
|
||||
ChangeInfoInstance(Player, ItemsFolder, ItemId, playerInfoData[ItemId])
|
||||
return true, playerInfoData[ItemId]
|
||||
end
|
||||
|
||||
-- 判断是否拥有足够物品
|
||||
function PlayerInfoProxy:HasEnoughItem(Player: Player, ItemId: number, ItemCount: number)
|
||||
if not Player or not ItemId or not ItemCount then warn('添加物品失败: ' .. Player.Name .. ' ' .. ItemId .. ' ' .. ItemCount) return end
|
||||
ItemId = tostring(ItemId)
|
||||
local playerInfoData = ArchiveProxy.pData[Player.UserId][STORE_NAME].Items
|
||||
if not playerInfoData[ItemId] then return false end
|
||||
return playerInfoData[ItemId] >= ItemCount
|
||||
@ -248,6 +251,7 @@ end
|
||||
-- 获取物品数量
|
||||
function PlayerInfoProxy:GetItemCount(Player: Player, ItemId: number)
|
||||
if not Player or not ItemId then warn('获取物品数量失败: ' , Player.Name, ItemId) return end
|
||||
ItemId = tostring(ItemId)
|
||||
local playerInfoData = ArchiveProxy.pData[Player.UserId][STORE_NAME].Items
|
||||
if not playerInfoData[ItemId] then return 0 end
|
||||
return playerInfoData[ItemId]
|
||||
@ -271,6 +275,7 @@ function PlayerInfoProxy:MakeForge(Player: Player, EquipmentId: number, Count: n
|
||||
-- 判断金钱是否足够
|
||||
local MaxForgeLv = Utils:GetMaxIdFromJson(JsonForge)
|
||||
local ShouldCostMoney = 0
|
||||
local ForgeItemId = 2
|
||||
for i = 1, Count do
|
||||
-- 读取等级并且做最大值限制
|
||||
local ForgeLv = ArchiveProxy.pData[Player.UserId][STORE_NAME]["Stats"].forge
|
||||
@ -278,6 +283,8 @@ function PlayerInfoProxy:MakeForge(Player: Player, EquipmentId: number, Count: n
|
||||
|
||||
local ForgeData = Utils:GetIdDataFromJson(JsonForge, ForgeLv)
|
||||
ShouldCostMoney = ShouldCostMoney + ForgeData["cost"][2]
|
||||
-- 临时写的,其实没啥必要
|
||||
ForgeItemId = ForgeData["cost"][1]
|
||||
|
||||
if ForgeLv > MaxForgeLv then
|
||||
ForgeLv = MaxForgeLv
|
||||
@ -285,12 +292,12 @@ function PlayerInfoProxy:MakeForge(Player: Player, EquipmentId: number, Count: n
|
||||
ForgeLv = ForgeLv + 1
|
||||
end
|
||||
end
|
||||
if not self:HasEnoughItem(Player, 1, ShouldCostMoney) then
|
||||
if not self:HasEnoughItem(Player, ForgeItemId, ShouldCostMoney) then
|
||||
RE_PlayerTip:FireClient(Player, "金钱不足")
|
||||
return
|
||||
end
|
||||
-- 扣钱
|
||||
self:ChangeItemCount(Player, 1, -ShouldCostMoney)
|
||||
self:ChangeItemCount(Player, ForgeItemId, -ShouldCostMoney)
|
||||
|
||||
-- 生成对应装备
|
||||
local ResultData = {}
|
||||
|
@ -17,7 +17,8 @@ UserInputService.InputBegan:Connect(function(input, gameProcessed)
|
||||
elseif input.KeyCode == Enum.KeyCode.J then
|
||||
RE_PlayerHelper:FireServer("AddItem", {1, 1000})
|
||||
elseif input.KeyCode == Enum.KeyCode.K then
|
||||
RE_UpgradeAttributes:FireServer(1)
|
||||
-- RE_UpgradeAttributes:FireServer(1)
|
||||
RE_PlayerHelper:FireServer("AddItem", {2, 1000})
|
||||
elseif input.KeyCode == Enum.KeyCode.L then
|
||||
RE_UpgradeAttributes:FireServer(2)
|
||||
elseif input.KeyCode == Enum.KeyCode.M then
|
||||
|
@ -24,17 +24,20 @@ end
|
||||
|
||||
function AttributeShow:Refresh()
|
||||
local attributeData = Utils:GetSpecialKeyDataFromJson(JsonAttributes, "effectAttribute", self.Data.attribute)
|
||||
|
||||
-- 基础属性icon显示
|
||||
if attributeData.id == 14 or attributeData.id == 15 or attributeData.id == 16 then
|
||||
self.Variables._imgIcon.Image = Localization:GetImageData(attributeData.iconId)
|
||||
else
|
||||
self.Variables._imgIcon:Destroy()
|
||||
self.Variables._imgIcon = nil
|
||||
end
|
||||
self.Variables._tmpAttributeName.Text = self.Data.attribute
|
||||
self.UIRoot.LayoutOrder = 1000 - attributeData.id
|
||||
|
||||
self.Variables._tmpAttributeName.Text = Localization:GetLanguageData(attributeData.nameId)
|
||||
self.UIRoot.LayoutOrder = attributeData.id
|
||||
|
||||
if attributeData.type == 2 then
|
||||
self.Variables._tmpValue.Text = string.format("%.2f%%", self.Data.value / 100)
|
||||
self.Variables._tmpValue.Text = string.format("%.2f", self.Data.value / 100)
|
||||
else
|
||||
self.Variables._tmpValue.Text = self.Data.value
|
||||
end
|
||||
|
@ -187,7 +187,7 @@ function EquipmentDetailWindow:OnOpenWindow()
|
||||
|
||||
-- 装备信息
|
||||
local equipmentInstance = Utils:GetPlayerDataFolder(LocalPlayer):FindFirstChild("Equipment"):FindFirstChild(self.Data.EquipmentUniqueId)
|
||||
local equipmentData = Utils:GetIdDataFromJson(JsonItemProp, equipmentInstance:GetAttribute("id"))
|
||||
local equipmentData = Utils:GetIdDataFromJson(JsonItemProp, equipmentInstance:GetAttribute("orgId"))
|
||||
self.Variables["_imgIcon"].Image = Localization:GetImageData(equipmentData.iconId)
|
||||
self.Variables["_tmpName"].Text = Localization:GetLanguageData(equipmentData.textId)
|
||||
self.Variables["_tmpQuality"].Text = equipmentInstance:GetAttribute("quality")
|
||||
|
@ -23,11 +23,11 @@ end
|
||||
|
||||
function AttributeShow:Refresh()
|
||||
local attributeData = Utils:GetSpecialKeyDataFromJson(JsonAttributes, "effectAttribute", self.Data.attribute)
|
||||
self.Variables._tmpAttributeName.Text = self.Data.attribute
|
||||
self.UIRoot.LayoutOrder = 1000 - attributeData.id
|
||||
self.Variables._tmpAttributeName.Text = Localization:GetLanguageData(attributeData.nameId)
|
||||
self.UIRoot.LayoutOrder = attributeData.id
|
||||
|
||||
if attributeData.type == 2 then
|
||||
self.Variables._tmpValue.Text = string.format("%.2f%%", self.Data.value / 100)
|
||||
self.Variables._tmpValue.Text = string.format("%.2f", self.Data.value / 100)
|
||||
else
|
||||
self.Variables._tmpValue.Text = self.Data.value
|
||||
end
|
||||
|
@ -105,8 +105,8 @@ function GetEquipmentsWindow:Init(UIManager: table, Data: table?)
|
||||
["_tmpQuality"] = 0,
|
||||
|
||||
["__listEquipments"] = 0,
|
||||
["_btnLeft"] = 0,
|
||||
["_btnRight"] = 0,
|
||||
-- ["_btnLeft"] = 0,
|
||||
-- ["_btnRight"] = 0,
|
||||
|
||||
["_btnClose"] = 0,
|
||||
}
|
||||
@ -130,8 +130,8 @@ end
|
||||
|
||||
function GetEquipmentsWindow:ShowDetail(equipmentInstance: Instance)
|
||||
local equipmentData = Utils:GetIdDataFromJson(JsonItemProp, equipmentInstance:GetAttribute("orgId"))
|
||||
self.Variables["_tmpName"].Text = Localization:GetLanguageData(equipmentData.textId)
|
||||
self.Variables["_tmpQuality"].Text = equipmentInstance:GetAttribute("quality")
|
||||
self.Variables["_tmpName"].Text = Localization:GetColoredTextByQuality(equipmentInstance:GetAttribute("quality"), Localization:GetLanguageData(equipmentData.nameId))
|
||||
self.Variables["_tmpQuality"].Text = Localization:GetColoredEquipmentQualityDesc(equipmentInstance:GetAttribute("quality"))
|
||||
|
||||
local baseAttributes = equipmentInstance:FindFirstChild("attributes"):GetAttributes()
|
||||
local exAttributes = equipmentInstance:FindFirstChild("exAttributes"):GetAttributes()
|
||||
|
@ -18,6 +18,57 @@ local LocalPlayer = game:GetService("Players").LocalPlayer
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
-- 简单的递增消耗计算函数
|
||||
local function GetIncrementalCost(currentLevel: number, configData: table, costIndex: number?)
|
||||
costIndex = costIndex or 2 -- 默认使用第二个消耗值
|
||||
|
||||
-- 获取配置表的最大ID
|
||||
local maxId = Utils:GetMaxIdFromJson(configData)
|
||||
|
||||
-- 如果当前等级超过最大ID,使用最大ID的消耗配置
|
||||
local effectiveLevel = math.min(currentLevel, maxId)
|
||||
|
||||
-- 根据有效等级获取对应的消耗配置
|
||||
local levelData = Utils:GetIdDataFromJson(configData, effectiveLevel)
|
||||
if not levelData or not levelData.cost then
|
||||
warn("无法获取等级", effectiveLevel, "的消耗配置")
|
||||
return 0
|
||||
end
|
||||
|
||||
-- 确保costIndex在有效范围内
|
||||
if costIndex > #levelData.cost then
|
||||
warn("消耗索引超出范围:", costIndex, "最大索引:", #levelData.cost)
|
||||
return 0
|
||||
end
|
||||
|
||||
return levelData.cost[costIndex]
|
||||
end
|
||||
|
||||
-- 计算可以进行的操作次数(累加消耗)
|
||||
local function GetOperationCount(currentValue: number, currentLevel: number, configData: table, costIndex: number?)
|
||||
local remainingMoney = currentValue
|
||||
local forgeCount = 0
|
||||
local currentForgeLevel = currentLevel
|
||||
local maxId = Utils:GetMaxIdFromJson(configData)
|
||||
|
||||
-- 循环计算每次锻造的消耗,直到货币不足
|
||||
while remainingMoney > 0 do
|
||||
local cost = GetIncrementalCost(currentForgeLevel, configData, costIndex)
|
||||
if cost <= 0 then break end -- 无效消耗
|
||||
if remainingMoney >= cost then
|
||||
remainingMoney = remainingMoney - cost
|
||||
forgeCount = forgeCount + 1
|
||||
currentForgeLevel = currentForgeLevel + 1
|
||||
else
|
||||
break -- 货币不足,停止计算
|
||||
end
|
||||
end
|
||||
|
||||
return forgeCount
|
||||
end
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
local MainWindow = {}
|
||||
MainWindow.__index = MainWindow
|
||||
setmetatable(MainWindow, {__index = UIWindow})
|
||||
@ -40,6 +91,9 @@ function MainWindow:Init(UIManager: table, Data: table?)
|
||||
["_goForgeFill"] = 0,
|
||||
["_tmpForgeMoney"] = 0,
|
||||
["_tmpForgeTime"] = 0,
|
||||
|
||||
-- 锻造临时红点
|
||||
["_tmpRedCreate"] = 0,
|
||||
}
|
||||
self.UIRootName = "ui_w_main"
|
||||
self.UIParentName = UIEnums.UIParent.UIRoot
|
||||
@ -75,26 +129,31 @@ end
|
||||
-- 手动点击按钮,挑战boss
|
||||
function MainWindow:OnClickChallengeBoss()
|
||||
RE_ChallengeBoss:FireServer()
|
||||
|
||||
self.Variables["_btnChallengeBoss"].Visible = false
|
||||
end
|
||||
|
||||
function MainWindow:SetShowForgeBar(nowForgeTime : number, moneyValue: number)
|
||||
local maxForgeId = Utils:GetMaxIdFromJson(JsonForge)
|
||||
local forgeTime = nowForgeTime > maxForgeId and maxForgeId or nowForgeTime
|
||||
local forgeData = Utils:GetIdDataFromJson(JsonForge, forgeTime)
|
||||
local forgeTime = math.min(nowForgeTime, maxForgeId)
|
||||
|
||||
-- 获取当前锻造次数对应的消耗(用于UI显示)
|
||||
local currentCost = GetIncrementalCost(forgeTime, JsonForge, 2)
|
||||
|
||||
-- 进度条 - 使用当前锻造次数对应的消耗显示
|
||||
self.Variables["_goForgeFill"].Size = UDim2.new(math.min(moneyValue / currentCost, 1), 0, 1, 0)
|
||||
self.Variables["_tmpForgeMoney"].Text = string.format("%d/%d", moneyValue, currentCost)
|
||||
|
||||
-- 进度条
|
||||
self.Variables["_goForgeFill"].Size = UDim2.new(math.min(moneyValue / forgeData.cost[2], 1), 0, 1, 0)
|
||||
self.Variables["_tmpForgeMoney"].Text = string.format("%d/%d", moneyValue, forgeData.cost[2])
|
||||
|
||||
-- 右上角红点
|
||||
local timeRecorder = math.ceil(moneyValue / forgeData.cost[2])
|
||||
-- 右上角红点 - 使用累加消耗计算可以进行的操作次数
|
||||
local timeRecorder = GetOperationCount(moneyValue, forgeTime, JsonForge, 2)
|
||||
if timeRecorder > 0 then
|
||||
self.Variables["_tmpForgeTime"].Visible = true
|
||||
self.Variables["_tmpRedCreate"].Visible = true
|
||||
self.Variables["_tmpForgeTime"].Text = timeRecorder
|
||||
self.Variables["_goForgeFill"].BackgroundColor3 = Color3.fromRGB(255, 255, 0)
|
||||
else
|
||||
self.Variables["_tmpForgeTime"].Visible = false
|
||||
self.Variables["_tmpRedCreate"].Visible = false
|
||||
self.Variables["_goForgeFill"].BackgroundColor3 = Color3.fromRGB(12, 227, 209)
|
||||
end
|
||||
end
|
||||
|
||||
@ -147,7 +206,7 @@ function MainWindow:OnOpenWindow()
|
||||
local forgeInstance = playerInfoFolder:WaitForChild("Stats"):WaitForChild("forge")
|
||||
|
||||
local itemFolder = playerInfoFolder:WaitForChild("Items")
|
||||
local hasItem = playerInfoFolder:FindFirstChild("2")
|
||||
local hasItem = itemFolder:FindFirstChild("2")
|
||||
|
||||
-- 设置锻造货币变动链接
|
||||
local function SetForgeCostChange()
|
||||
@ -161,25 +220,25 @@ function MainWindow:OnOpenWindow()
|
||||
-- 后续变动设置
|
||||
SetForgeCostChange()
|
||||
-- 初始化设置
|
||||
-- ceshi1
|
||||
self:SetShowForgeBar(forgeInstance.Value, hasItem.Value)
|
||||
else
|
||||
-- 没有货币时监听设置
|
||||
local addCon
|
||||
addCon = itemFolder.ChildAdded:Connect(function(child)
|
||||
if child.Name == "2" then
|
||||
self:SetShowForgeBar(forgeInstance.Value, child.Value)
|
||||
hasItem = child
|
||||
self:SetShowForgeBar(forgeInstance.Value, hasItem.Value)
|
||||
addCon:Disconnect()
|
||||
addCon = nil
|
||||
|
||||
-- 设置显示
|
||||
SetForgeCostChange()
|
||||
end
|
||||
end)
|
||||
table.insert(self.Connections, addCon)
|
||||
-- 初始化设置
|
||||
self:SetShowForgeBar(forgeInstance.Value, 0)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
return MainWindow
|
Loading…
x
Reference in New Issue
Block a user