|
本帖最后由 woabclf 于 2020-5-16 17:48 编辑
这个比六如难多了,我估计除了我,没有人会想回答这个问题。
我来稍微解释一下代码:
- --宇宙洪荒
- if YuzhouHH(pid) then
- local s = math.random(21)
- if (s < 8 and WAR.ACT == 1) or (WAR.ACT > 1 and (math.random(100) <= 10 or match_ID(pid, 677) and JY.Person[677]["天4"] == 1 and math.random(100) <= 35)) then
复制代码
YuzhouHH函氏等一会儿在讲,local是创造变量,math.random是取乱数,(21)是1到21,WAR.ACT是第几次攻击,等于一就是第一次。
判断式就是第一次攻击时变量s在8以下可成功(1/3),or后面的判断式就是第二次攻击后1/10机率触发。
match_ID是人物判断函氏,677就是小虾米(初代那个),天1到天4的储存格是特定角色的天赋技能。(非天赋武功)
天4等于1就是宇宙洪荒,括号里or后面的判断式就是觉醒技能的小虾米有35%的机率使出宇宙洪荒。
继续后面的代码:
- if s == 1 then
- WAR.YZHH = 1
- WAR.Person[WAR.CurID]["特效文字1"] = "宇宙洪荒·冻"
- elseif s == 2 then
- WAR.YZHH = 2
- WAR.Person[WAR.CurID]["特效文字1"] = "宇宙洪荒·燃"
- elseif s == 3 then
- WAR.YZHH = 3
- WAR.Person[WAR.CurID]["特效文字1"] = "宇宙洪荒·眩"
复制代码
以下代码省略,就是 elseif 到 7的意思。
s变量就是上面设置的1到21乱数,s不在8以下必定不成功,特效文字1就是红字特效。
战斗变量WAR.YZHH是宇宙洪荒的技能,有七种攻击技能,什么洪荒·冻、洪荒·燃这些。
冻结18时序、点燃18时序、昏迷1回合、时停10时序、虚弱20时序、集气混乱30时序、致残10时序。
最后讲YuzhouHH函氏,就是人物可否触发宇宙洪荒的判断函氏,不在这个档案(jywar.lua)
而是这个档案 jymain.lua 寻找字串 "tion YuzhouHH" 找到下面的函式代码。
--宇宙洪荒
function YuzhouHH(id)
里面的内容就是说判断所学的十五个武功,满足条件的要有7个以上才算数。
所有外功的威力要在1000以上,内功威力在1200以上,轻功可直接加一个。
六脉也可以加一个,装备皇家华戒可加一个,有天赋技能知一万毕可加两个。
函氏底部的代码:
- if yz >= 7 or (match_ID(id, 677) and JY.Person[677]["天4"] == 1) then
- return true
- else
- return false
- end
- end --YuzhouHH函氏的 end
复制代码
yz变量就是我前面讲的7个以上武功,后面是小虾米,true就是满足判断条件,false是否。
如果想让主角直接使用可删掉 "yz >= 7" 加上 "id == 0" 就是主角直接用。
那最前面的代码怎么改? (机率)
我是觉得这个判断式又臭又长,攻击第几次的判断满多余的,很多地方都可以删了。
代码修正:
- --宇宙洪荒
- if YuzhouHH(pid) then
- local s = math.random(7) --改为7,让后面绝招能发动
- if pid == 0 then --省略到这样最方便,主角每一击都触发宇宙洪荒
复制代码
如果是小幅提升机率可以改这样:
- --宇宙洪荒
- if YuzhouHH(pid) then
- local s = math.random(7) --改为7,让后面绝招能发动
- if WAR.ACT == 1 or (WAR.ACT > 1 and (pid == 0 and math.random(100) <= 35 or match_ID(pid, 677) and JY.Person[677]["天4"] == 1 and math.random(100) <= 60)) then
复制代码
第一击百分之百,主角第二击有35%触发宇宙洪荒,小虾米升为60%。
代码不用特定删掉说明,可以直接移植使用。
|
|