铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2202|回复: 4

[通用] 關於 WAR_Fight_Sub 的使用 ?

[复制链接]
发表于 2012-12-4 09:06 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
本帖最后由 fina 于 2012-12-4 10:10 编辑

先说明我是以山寨江湖的LDCR文件做修改

请问,我想做出一个类似斗转效果的武功
但是希望它是不可控
像是观武前被攻击会自动使用武功反击的效果
在研究了好一阵子的LDCR 文件后
现在可以套用斗转的WAR.DZXYLV判定
做出像以下这样

ifPersonKF(eid,47) then


WAR.DGJJ=pid

WAR.DZXYLV[eid]= 2

WAR.Person[emenyid]["
反击武功"] = 47

JY.Person[eid]["
体力"] = JY.Person[eid]["体力"] - 3

End

这部分可以实现以九剑反击
但是每次发动就挂一个”XXX发动斗转星移反击”很蛋疼

搜遍整个LDCR文件发现应该是
WAR_Fight_Sub做自动选择武功反击

可是试着用WAR_Fight_Sub做了几个判定
像以下这样


if WAR.DGJJ2~= 0 then

for i =0, WAR.PersonNum - 1 do

War_Fight_Sub(0, 4,WAR.Person[WAR.CurID]["
坐标X"],WAR.Person[WAR.CurID]["坐标Y"])

WAR.DGJJ2= 0

end

end

全部都会跳出

请教WAR_Fight_Sub要怎么调用呢 ?
或者,有其他方式能够自动选择武功进行反击的吗 ?
这篇文有发在DIY区,不过没人理….
因此另外发在此区,希望能有大神协助解答,谢谢

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-12-12 10:51 | 显示全部楼层
本帖最后由 KA 于 2012-12-12 10:51 编辑

貌似有个debug.啥的函数,你加在里面慢慢调试吧,你那情况不是溢出就是溢出就是溢出。。
PS:中西结合的代码其实不太符合代码规范
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-12-9 22:43 | 显示全部楼层
你的i用来干嘛?
或许你想表达的是这个?
  1. if WAR.DGJJ2~= 0 then

  2. for i =0, WAR.PersonNum - 1 do

  3. War_Fight_Sub(0, 4,WAR.Person[i]["坐标X"],WAR.Person[i]["坐标Y"])

  4. WAR.DGJJ2= 0

  5. end

  6. end
复制代码
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2012-12-11 18:32 | 显示全部楼层
本帖最后由 fina 于 2012-12-11 18:37 编辑

回复 winson7891 的帖子

感谢 winson 大的回复
等了好久~~终于有大神愿意回我....Orz
因为试做之后还是一直跳出~~
这边想列出我目前修改的部分~~希望能有大大帮忙看一下~~

--独孤九剑

ifPersonKF(eid,47) then

WAR.DGJJ= pid

WAR.ACT= 10

--WAR.DZXYLV[eid] = 2

for i =1, 10 do


if JY.Person[pid]["
武功" .. i] == 47 then
--
如果学习独孤九剑

WAR.JJNUM = i
--
记录独孤九剑武功位置
break;
end
end
end

--独孤九剑连击反增伤害杀气

elseif wugong== 47 then
hurt = hurt * (1 + (WAR.ACT / 10))
ang = ang * (1 + (WAR.ACT / 10)) 这一段是加在连击判断式中~~已测过无问题

--
独孤九剑免伤
if WAR.DGJJ~= 0 then


if JY.Wugong[wugong]["
武功类型"] == 1 then
WAR.Person[emenyid][CC.TXWZ3] = CC.WARS99

elseifJY.Wugong[wugong]["
武功类型"]== 2 then
WAR.Person[emenyid][CC.TXWZ3] = CC.WARS100

elseifJY.Wugong[wugong]["
武功类型"]== 3 then
WAR.Person[emenyid][CC.TXWZ3] = CC.WARS101

elseifJY.Wugong[wugong]["
武功类型"]== 4 then
WAR.Person[emenyid][CC.TXWZ3]= CC.WARS102

end

if wugong< 109 and wugong > 88 then

WAR.Person[emenyid][CC.TXWZ3] = CC.WARS103

end

WAR.Person[emenyid][CC.TXDH] = 83


hurt = 0

end


这一段是先用来测试用~~以防主角太快死亡修改完后会去掉


WAR.JJNUM =0 --
独孤九剑num
WAR.DGJJ =0 --
独孤九剑参数1
WAR.DGJJ2 =0 --
独孤九剑参数2 参数设定

--
独孤九剑计算
ifWAR.DGJJ2 == 1 then


else


x,y = War_FightSelectType(movefanwei, atkfanwei, x, y)
end


此段是参考云体风身的部份写的,因为斗转星移需要记录武功而我只打算使用九剑反击


--
独孤九剑


if WAR.DGJJ~= 0 and wugong == 47 then

CleanWarMap(4, 0)


for i =0, WAR.PersonNum - 1 do


local j = WAR.Person["
人物编号

if j== WAR.DGJJ and WAR.Person["
死亡"] == false then
SetWarMap(WAR.Person["
坐标X"], WAR.Person["坐标Y"], 4, 1)
end


end



end


由于只打算让九剑反击时只反攻击者,因此参考了幻梦的写法但是将参数只设成攻击者一人而非全屏
此段测试过可正常运作无误


--
独孤九剑计算

if WAR.DGJJ~= 0 then

for i =0, WAR.PersonNum - 1 do

if WAR.Person["
人物编号"] == 0 then
localtmp = WAR.CurID

WAR.CurID = i

WAR.DGJJ2 = 1

WarDrawMap(0)
War_Fight_Sub(i, WAR.JJNUM, WAR.Person["坐标X"], WAR.Person["坐标Y"])
WAR.DGJJ = 0
WAR.DGJJ2 = 0

WAR.CurID = tmp

end

end

end


此段是参考斗转及云体风身的部分做修改但是无法正常运作

基本上我想说明一下我想做的变更,我想将九剑改成威力 1所有攻击力依附人物的御剑能力~~
(这部份比较简单~~等反击部份做完就会做)
学会九剑后被攻击时一定机率闪避并以九剑反击攻击者
(也就是只反击攻击者一人,而非范围攻击)且反击可连击,
连击越高伤害反增以实现九剑后发而先至,以攻为守的概念
但现在的问题是
我直接套用斗转的话公式如下


ifPersonKF(eid,47) then


WAR.DZXYLV[eid] = 2

WAR.Person[emenyid]["
反击武功"] = 47
JY.Person[eid]["
体力"] = JY.Person[eid]["体力"] - 3
break;

end


就可以直接使用~~问题是这样与斗转并用的时候会出错~~
因此想请问正确作法~~

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2012-12-11 19:07 | 显示全部楼层
有时候对这种拼音加英文的变量名字真的感到很无力~

但是我很多地方看不懂啊~毕竟我不搞这个~能帮你的也只能指出一些明显的错误

WAR.DZXYLV[eid] = 2

这个是啥?

我已经看不懂了

还有
  1. ifPersonKF(eid,47) then

  2. WAR.DZXYLV[eid] = 2
  3. WAR.Person[emenyid]["反击武功"] = 47
  4. JY.Person[eid]["体力"] = JY.Person[eid]["体力"] - 3
  5. break;
  6. end
复制代码
这里的break是跳出到哪个循环?

我也无力了口胡~
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-5-3 14:45

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表