铁血丹心

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

关于DOS版中使用基本指令设计机关的方法求助

[复制链接]
发表于 2011-7-29 16:30 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 KA 于 2011-8-1 17:13 编辑

我最近在从头学习MOD制作,南宫梦前辈的这篇帖子(http://www.txdx.net/thread-43134-1-1.html)提到了机关的设计方法,内容如下:
开关的设计
    假设有5个开关,开关图片编号为:3000和3002,实现功能是打开1,3后再开5则大门开启,否则所有开关变回默认状态,并使玩家受到惩罚
    方法:用3个事件实现,起始为开关1,2,3,4使用事件1,开关5使用事件2,图片均为3000
          事件1:
            使当前开关图片变为3002,事件变为3
          事件2:
            判断开关1图片是否为3002,否label1
            判断开关2图片是否为3000,否label2
            判断开关3图片是否为3002,否label3
            判断开关4图片是否为3000,否label4
               当前开关图片变为3002,所有开关不可用,大门开启
               事件结束
            label4
            label3
            label2
            label1
               大门不能开启受到惩罚或其他,使开关1-4图片变为3000,事件变为1
            结束
         事件3:
            使当前开关图片变为3000,事件变为1

我是这样写的事件1024:

  1. ;Kdefnum=1024
  2.   0                              ;  0(0)::空语句(清屏)
  3.   3 -2 -2 -2 -1 1025 -1 -1 1132 1132 1132 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  4.   -1                             ;  -1(FFFF):事件结束
  5. 图片使用的是536和566。
  6. 1025:
  7. ;Kdefnum=1025
  8.   0                              ;  0(0)::空语句(清屏)
  9.   3 -2 -2 -2 -1 1024 -1 -1 1072 1072 1072 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  10.   -1                             ;  -1(FFFF):事件结束
复制代码
1024和1025似乎没问题,就是一个交替。我在场景12做的5个开关,前4个开关事件编号为19到22,第五个开关编号为23。1026:


  1. ;Kdefnum=1026
  2.   0                              ;  0(0)::空语句(清屏)
  3.   60 12 19 1132 0 93             ;  60(3C):判断场景12事件位置19是否有贴图1132否则跳转到:Label0(19和21处为566则通过)
  4.   60 12 20 1072 0 86             ;  60(3C):判断场景12事件位置20是否有贴图1072否则跳转到:Label1
  5.   60 12 21 1132 0 79             ;  60(3C):判断场景12事件位置21是否有贴图1132否则跳转到:Label2
  6.   60 12 22 1072 0 72             ;  60(3C):判断场景12事件位置22是否有贴图1072否则跳转到:Label3
  7.   0                              ;  0(0)::空语句(清屏)
  8.   3 -2 -2 0 -2 -1 -1 -1 1132 1132 1132 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  9.   3 -2 -2 -2 19 -1 -1 -1 -2 -2 -2 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号(这里想的是关闭这几个事件)
  10.   3 -2 -2 -2 20 -1 -1 -1 -2 -2 -2 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  11.   3 -2 -2 -2 21 -1 -1 -1 -2 -2 -2 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  12.   3 -2 -2 -2 22 -1 -1 -1 -2 -2 -2 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  13.   7                              ;  7(7):无条件返回
  14. ;:Label3
  15.   0                              ;  0(0)::空语句(清屏)
  16. ;:Label2
  17.   0                              ;  0(0)::空语句(清屏)
  18. ;:Label1
  19.   0                              ;  0(0)::空语句(清屏)
  20. ;:Label0
  21.   3 -2 -2 -2 19 1024 -1 -1 1072 1072 1072 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号(想把前几个开关还原)
  22.   3 -2 -2 -2 20 1024 -1 -1 1072 1072 1072 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  23.   3 -2 -2 -2 21 1024 -1 -1 1072 1072 1072 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  24.   3 -2 -2 -2 22 1024 -1 -1 1072 1072 1072 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  25.   -1                             ;  -1(FFFF):事件结束
复制代码
想要达到的效果是打开1,3后再开5则5的位置改为可以通过,其他开关关闭。如果是其他情况打开,则所有开关还原。
但试验后发现第5个开关没有这个作用。请问是哪里有问题呢?我怀疑自己的第60号指令使用不当,不知是不是这样?哪位能指点一下,多谢啦。


评分

参与人数 1声望 +10 收起 理由
KA + 10 =。=高手

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-7-29 16:55 | 显示全部楼层
技术型人才啊,支持下~
希望早日成功,能拜读你的大作

点评

加油!!!!  发表于 2011-7-30 09:47
呵呵,多谢,现在也还只会很基础的,当努力。  发表于 2011-7-29 21:09
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-7-29 20:26 | 显示全部楼层
没看到23事件点有转换开关贴图的设计,也没看到有开启机关的设计,你所谓的效果是指贴图消失?那
-2 -2 0 -2 -1 -1 -1 1132 1132 1132 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  3 -2 -2 -2 19 -1 -1 -1 -2 -2 -2 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号(这里想的是关闭这几个事件)
  3 -2 -2 -2 20 -1 -1 -1 -2 -2 -2 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  3 -2 -2 -2 21 -1 -1 -1 -2 -2 -2 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
  3 -2 -2 -2 22 -1 -1 -1 -2 -2 -2 -2 -2 -2   ;  3(3):修改事件定义:当前场景:当前场景事件编号
这里贴图位置的数值不应该为-2,应该是-1。-2对应不修改,-1对应取消。
建议在取消事件点与贴图前使场景变黑,改变事件点贴图并开门后可播放音效再让场景变亮,这样处理方式符合原版做法,比直接改贴图更自然。

点评

哎,多谢。我想问60号指令“判断场景a事件位置b是否有贴图c否则跳转”,这里b是否就是事件编号,还有c是指第几层的贴图?  发表于 2011-7-29 22:07
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-7-29 22:28 | 显示全部楼层
60号指令“判断场景a事件位置b是否有贴图c否则跳转”
这里b是场景内事件点编号(0~199),c是指事件层的开始贴图
对于原版指令,原版事件就是最好的教材,记得这个60指令在杨过离队事件里就使用过。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-7-30 15:17 | 显示全部楼层
回复 凶神恶煞 的帖子

多谢!今天找了好久,终于找到了杨过离队事件(990)。仔细研究,终于知道了问题所在。原来60号基本指令对事件贴图编号的读取是在进入场景时就确定,中间使用3号指令改变贴图后,必须出了场景再重新进入一下才可以。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2011-7-30 16:58 | 显示全部楼层
如果是这样,那么不出场景就开启机关就不能这么实现了。
用原版指令可以考虑使用47指令和29指令:开启或关闭各开关对应某几个游戏中不会参与战斗的角色如南贤等加(开启开关)减攻击力(关闭开关),最后再依次读取判断这些人的攻击力来获得开关的状态。
此外,FISHEDIT目录里有个文件evtlist.ini是令狐心情提供的原版事件列表。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2011-7-30 17:32 | 显示全部楼层
本帖最后由 yuezaifeng 于 2011-7-30 17:34 编辑

回复 凶神恶煞 的帖子

这个方法好,之前没想到,多谢!
还有原来这样就可以看事件列表,我下午一个个看了一遍,汗!我看的时候把我还把感觉不太好用的指令记了一下。下面是它们在哪些事件里出现过。再找例子就方便了。
26: 170  232 360  361 362 383 649
25: 187 188 189  220 225 557 343
16: 195 416  
17: 239 274  279  306 408 517 650
55: 303  464
30: 343  
67: 389  486
39: 420  
38: 434  
28: 457  
53: 828  
64: 938  
65: 939  
19: 480  
60: 491 530 990
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

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

GMT+8, 2024-12-22 13:01

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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