金庸群侠传MOD发布 金庸群侠传MOD攻略讨论 金庸群侠传修改技术交流 设计自己的武侠单机游戏 创造独特的游戏形象
 20 12
发新话题
打印

[其他] 讨论下关于“同归剑法”一类武功

讨论下关于“同归剑法”一类武功

先看下原著
    并非对方厉害,倒是自己劲力不济,当即剑交左手,使开一套学成后从未在临敌时用过的“同归剑法”来,剑光闪闪,招招指向柯镇恶、朱聪、焦木三人要害,竟自不加防守,一味凌厉进攻。
  这路“同归剑法”取的是“同归于尽”之意,要是敌人厉害,自己性命危殆,无可奈何之际,只得使这路剑法拼命,每一招都是猛攻敌人要害,招招狠,剑剑辣,纯是把性命豁出去了的打法,虽是上乘剑术,倒与流氓泼皮耍无赖的手段同出一理。



   前几天突然想到用战斗指令实现同归剑法这一类的武功

我原是这样想:
当攻击方生命少于10/1的时候,伤害就有原来的3倍,否则按照原来的攻击。当然数值可以根据平衡而定
不过昨天问了weyl,如果某属性低于某值,则武功有特殊效果,否则按照原来的。结果他说基本实现不了……晕
不过我想了下一个比较平衡的方法(我觉得吧。。),就是该武功的经验值除以20,再加上0~攻击方的攻击力的值/2 的随机数,就是伤害值
我刚学会了一点点战斗指令,在游戏中我试过了没什么大问题,如果大家有更好的方法一起讨论下吧。。。

事件如下:
;Kdefnum=1051
  50 46 0 0 0 64 64 0            ;  50(32):设定效果层 起始点(0,0)长度(64,64)无效果
  50 26 0 0 22234 5 1 0          ;  50(32):读取给定地址数据 [X1]=[5-56DA+0](Int)
  50 26 0 0 22236 5 2 0          ;  50(32):读取给定地址数据 [X2]=[5-56DC+0](Int)
  50 3 0 2 11 1 2 0              ;  50(32):四则运算 [X11]=[X1]*2
  50 3 0 2 12 2 128 0            ;  50(32):四则运算 [X12]=[X2]*128
  50 3 1 0 3 11 12 0             ;  50(32):四则运算 [X3]=[X11]+[X12]
  50 26 1 0 18948 30 4 3         ;  50(32):读取给定地址数据 [X4]=[1E-4A04+[X3]](Int)
  50 30 1 4 0 5 0 0              ;  50(32):读取人物战斗属性 战斗序号[X4]偏移0=[X5]
  50 46 3 1 2 1 1 1              ;  50(32):设定效果层 起始点([X1],[X2])长度(1,1)有效果
  50 4 0 0 5 0 0 0               ;  50(32):变量判断 If[X5]<0 then JMP=0 else JMP=1
  36 256 358 0                   ;  36(24):跳转变量JMP是否为0是则跳转到:Label0
  50 4 0 2 28927 0 0 0           ;  50(32):变量判断 If[X28927]=0  then JMP=0 else JMP=1
  36 256 362 0                   ;  36(24):跳转变量JMP是否为0是则跳转到:Label1
  50 0 1000 124 0 0 0 0          ;  50(32):变量赋值 [X1000]=124
;:Label2
  50 3 0 0 1000 1000 2 0         ;  50(32):四则运算 [X1000]=[X1000]+2
  50 17 3 0 28005 1000 1001 0    ;  50(32):读取属性 [X1001]=人物[X28005]属性偏移[X1000]
  50 4 0 2 1001 31 0 0           ;  50(32):变量判断 If[X1001]=31  then JMP=0 else JMP=1
  36 256 0 -28                   ;  36(24):跳转变量JMP是否为0否则跳转到:Label2
  50 3 0 0 1000 1000 20 0        ;  50(32):四则运算 [X1000]=[X1000]+20
  50 17 3 0 28005 1000 1002 0    ;  50(32):读取属性 [X1002]=人物[X28005]属性偏移[X1000]
  50 3 0 3 1002 1002 20 0        ;  50(32):四则运算 [X1002]=[X1002]/20
  50 17 1 0 28005 86 1003 0      ;  50(32):读取属性 [X1003]=人物[X28005]属性偏移86
  50 3 0 3 1003 1003 2 0         ;  50(32):四则运算 [X1003]=[X1003]/2
  50 38 1 1003 1004 0 0 0        ;  50(32):随机数 [X1004]=Random([X1003])
  50 3 1 0 1005 1002 1004 0      ;  50(32):四则运算 [X1005]=[X1002]+[X1004]
  50 17 1 0 28005 36 2000 0      ;  50(32):读取属性 [X2000]=人物[X28005]属性偏移36
  50 3 0 3 2001 2000 10 0        ;  50(32):四则运算 [X2001]=[X2000]/10
  50 17 1 0 28005 34 2002 0      ;  50(32):读取属性 [X2002]=人物[X28005]属性偏移34
  50 4 1 1 2002 2001 0 0         ;  50(32):变量判断 If[X2002]<=[X2001] then JMP=0 else JMP=1
  36 256 0 129                   ;  36(24):跳转变量JMP是否为0否则跳转到:Label3
  50 3 0 2 7 1005 3 0            ;  50(32):四则运算 [X7]=[X1005]*3
  50 17 1 0 5 34 2003 0          ;  50(32):读取属性 [X2003]=人物[X5]属性偏移34
  50 3 1 1 2004 2003 7 0         ;  50(32):四则运算 [X2004]=[X2003]-[X7]
  50 4 0 0 2004 0 0 0            ;  50(32):变量判断 If[X2004]<0 then JMP=0 else JMP=1
  36 256 73 0                    ;  36(24):跳转变量JMP是否为0是则跳转到:Label4
  50 16 5 0 5 34 2004 0          ;  50(32):保存属性 人物[X5]属性偏移34=[X2004]
;:Label5
  50 31 5 4 18 7 0 0             ;  50(32):保存人物战斗属性 战斗序号[X4]偏移18=[X7]
  50 44 1 28005 2 11 0 0         ;  50(32):播放效果 序号[X28005]动作类型2效果编号11
  50 45 0 1 0 1 0 0              ;  50(32):显示数字 数字颜色1闪烁 闪烁颜色1
  50 47 1 28005 0 0 0 0          ;  50(32):重置战场贴图 战斗序号=[X28005]
  50 3 0 2 8 28005 28 0          ;  50(32):四则运算 [X8]=[X28005]*28
  50 26 1 0 -14522 29 9 8        ;  50(32):读取给定地址数据 [X9]=[1D-C746+[X8]](Int)
  50 3 1 0 9 9 7 0               ;  50(32):四则运算 [X9]=[X9]+[X7]
  50 25 3 0 -14522 29 9 8        ;  50(32):保存给定地址数据 [1D-C746+[X8]]=[X9](Int)
  -1                             ;  -1(FFFF):事件结束
;:Label4
  50 16 1 0 5 34 0 0             ;  50(32):保存属性 人物[X5]属性偏移34=0
  50 4 0 7 0 0 0 0               ;  50(32):变量判断  JMP=1
  36 256 0 -85                   ;  36(24):跳转变量JMP是否为0否则跳转到:Label5
;:Label3
  50 17 1 0 5 34 2003 0          ;  50(32):读取属性 [X2003]=人物[X5]属性偏移34
  50 3 1 1 2004 2003 1005 0      ;  50(32):四则运算 [X2004]=[X2003]-[X1005]
  50 16 5 0 5 34 2004 0          ;  50(32):保存属性 人物[X5]属性偏移34=[X2004]
  50 31 5 4 18 1005 0 0          ;  50(32):保存人物战斗属性 战斗序号[X4]偏移18=[X1005]
  50 44 1 28005 2 11 0 0         ;  50(32):播放效果 序号[X28005]动作类型2效果编号11
  50 45 0 1 0 1 0 0              ;  50(32):显示数字 数字颜色1闪烁 闪烁颜色1
  50 47 1 28005 0 0 0 0          ;  50(32):重置战场贴图 战斗序号=[X28005]
  50 3 0 2 8 28005 28 0          ;  50(32):四则运算 [X8]=[X28005]*28
  50 26 1 0 -14522 29 9 8        ;  50(32):读取给定地址数据 [X9]=[1D-C746+[X8]](Int)
  50 3 1 0 9 9 1005 0            ;  50(32):四则运算 [X9]=[X9]+[X1005]
  50 25 3 0 -14522 29 9 8        ;  50(32):保存给定地址数据 [1D-C746+[X8]]=[X9](Int)
  -1                             ;  -1(FFFF):事件结束
;:Label0
  50 44 1 28005 2 11 0 0         ;  50(32):播放效果 序号[X28005]动作类型2效果编号11
  50 47 1 28005 0 0 0 0          ;  50(32):重置战场贴图 战斗序号=[X28005]
;:Label1
  -1                             ;  -1(FFFF):事件结束

[ 本帖最后由 柳无色 于 2008-11-23 12:30 编辑 ]
本帖最近评分记录
  • 凶神恶煞 声望 +15 很好,鼓励研发!欢迎讨论! 2008-11-23 11:33
凶神恶煞小小猪
咸鱼茄子煲KG

青狼火花南宫梦
游客大宝飞虫王

破剑小随金圭子
S C A  R  S C C

TOP

太深奥了,看不明白,没有这方面的才能

TOP

这和原来的红血系统效果相反了吗,希望能做出来

[发帖际遇]: xjq543210帮周威信押镖,结果:偷得鸳鸯刀,转手卖得银两20。

TOP

当攻击方生命少于10/1的时候,伤害就有原来的3倍,否则按照原来的攻击,可以实现:
在伤害子程中插入事件,判断当前所用武功是否为同归,若是,判断使用人生命,若低于1/10,修改伤害为3倍输出……

TOP

老大俺没文化看不懂。

[发帖际遇]: xuelongge去长白山捉火蟾,送给韦一笑,得感谢费银两26.

TOP

不错像魔兽里面的疯狂一击

TOP

太深奥了 就是有点编程基础的人也大部分搞不懂呀
生前不需久睡,死后必定长眠

TOP

虽然这些指令指导我是再熟悉不过了(就是我编的)
但是...现在我头晕,什么看不懂啊
先去睡一觉,回头看看无色搞什么飞机~~
先赞一下

[发帖际遇]: aawc1144去客栈吃饭,碰到郭靖,郭靖请你吃饭,并赠送银两8.

TOP

好复杂,看不懂
问花花不语,为谁落?为谁开?算春色三分,半随流水,半入尘埃

TOP

我觉得这种修改伤害公式的还是加在程序层为好吧,用事件来实现……感觉怪怪的。
weyl说不能,是指针对单个技能很难加一个特殊属性吧(貌似至今所有攻击除了方式(点线十面)、距离/范围、伤害、动画都是一致的吧)?如果对所有武功都要实现这个还是很容易的(相当于修改伤害公式而已)。


倒是我觉得“同归剑法”不应该是在血不多的时候伤害力很高的意思吧。应该是和敌人拼命的剑法,所以是攻击增加、防御减少(或者是敌人命中率增加)的,也就是说最简单的实现法就是和某些内功相反,修炼了以后加攻击减防御的。
或者如果在战斗中考虑的话,高级的“同归剑法”就好像赵敏在灵蛇岛的三式,和敌人“同归于尽”的,如果在战斗中的效果就是打敌人的同时自己也少血(可以设计为固定少多少,也可以设计为和威力有关)

[发帖际遇]: 金圭子挺身而出,阻止萧峰打“段正淳”,成功挽救阿朱,得到奖励银两44.
世界是物质的,物质是运动的,运动是有规律的,规律是需要努力才能认识的,改造社会和自然是需要遵循规律并付出努力的。
所谓规律,就是事物运动过程中固有的、本质的、必然的联系。

TOP

昨天也和无色讨论过这个问题,我觉得此事件定位更接近于黯然销魂掌这类红血超必杀。至于同归剑法应当是加大伤害输出的同时狂减自身防御,与之类似的还有玉碎昆岗、人鬼同途等。至于天地同寿则是自身与对方同时狂减生命……

TOP

引用:
原帖由 金圭子 于 2008-11-24 09:51 发表
我觉得这种修改伤害公式的还是加在程序层为好吧,用事件来实现……感觉怪怪的。
weyl说不能,是指针对单个技能很难加一个特殊属性吧(貌似至今所有攻击除了方式(点线十面)、距离/范围、伤害、动画都是一致的吧)? ...
加在事件层是当时的无奈之举,这些指令制作出来的时候只有dos
不能是指不能同时调用系统的伤害公式和自定的伤害公式。当然可以自己写一个复杂的计算模拟系统伤害公式。

[发帖际遇]: weyl勾结杨康抢夺武穆遗书,行动成功,得到银两32.

TOP

引用:
原帖由 weyl 于 2008-11-24 20:00 发表


加在事件层是当时的无奈之举,这些指令制作出来的时候只有dos
不能是指不能同时调用系统的伤害公式和自定的伤害公式。当然可以自己写一个复杂的计算模拟系统伤害公式。

[发帖际遇]: weyl勾结杨康抢夺武穆遗书, ...
我是说如果是统一修改的伤害公式就简单。
如果要做单独的,势必消耗一个标志位,
当然没啥是程序解决不了的,大不了把现在的数据结构完全打破了重写就是了……

[发帖际遇]: 金圭子在老顽童处骗取《养蜂秘法》,翻印成《如何饲养文化型蜜蜂》出版被查出偷税漏税,罚款银两11.
世界是物质的,物质是运动的,运动是有规律的,规律是需要努力才能认识的,改造社会和自然是需要遵循规律并付出努力的。
所谓规律,就是事物运动过程中固有的、本质的、必然的联系。

TOP

引用:
原帖由 金圭子 于 2008-11-24 09:51 发表
...最简单的实现法就是和某些内功相反,修炼了以后加攻击减防御的
一贯喜欢偷懒的俺,貌似就是这么做的,咳咳……

[发帖际遇]: 小小猪去客栈吃饭,碰到郭靖,郭靖请你吃饭,并赠送银两15.
小小猪搭了个小窝,收拾的干干净净漂漂亮亮,等待着朋友们的光临。很多人来了,觉得这里不错,就留下来,和小猪一起建设小窝。来的人越来越多,小窝越来越大,但我想,小窝还是小窝,永远有小窝的一家亲的感觉。有时候会因为铺什么地板用什么瓷砖而争执,但是最终的目的,都是建一个漂亮的小窝,招待更多的朋友。

TOP

引用:
原帖由 小小猪 于 2008-11-25 10:57 发表


一贯喜欢偷懒的俺,貌似就是这么做的,咳咳……

[发帖际遇]: 小小猪去客栈吃饭,碰到郭靖,郭靖请你吃饭,并赠送银两15.
其实我觉得这样做最合理最简单。
当然这个合理合的是游戏的理,就好像内功学了是加攻击或者加防御一样,理论上内功要用了才可能加攻击加防御啊。但是游戏是这个理,所以我们就这么做了。



其实看了代码发现weyl写过一个类似“反震”的,改动武功中未知的第二个就造成在砍人的时候自己也会少血。
不过试验了一下1021的没效果,群芳谱测试版里面又不能用Fishedit,谁有1028或者1108的试试看(我这个没下过)

weyl说这个以后就直接屏蔽掉了(因为现在的武功没这个效果,浪费资源么)
世界是物质的,物质是运动的,运动是有规律的,规律是需要努力才能认识的,改造社会和自然是需要遵循规律并付出努力的。
所谓规律,就是事物运动过程中固有的、本质的、必然的联系。

TOP

 20 12
发新话题