13号避难所

 找回密码
 立即注册
搜索
查看: 6357|回复: 9
打印 上一主题 下一主题

[游戏怀旧] 《洞窟物语》修改键位的方法

[复制链接]
跳转到指定楼层
楼主
发表于 2008-1-6 20:12:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
更简单的方法:使用金山游侠V里的一键必杀(按键精灵目前无法做到)。

具体步骤是:定义N个宏,每个的触发键为自己想使用的键(比如WSAD),所播放的按键为游戏原本使用的键。播放时间任意。把高级设置里的触发模式设为“持续”,最后在编辑窗口中将持续标记移到按键的尾部就行了。

这个方法有个缺陷,在所有宏之中,触发键和所播放的按键不能有重复,否则按键会被转换多次,达不到想要的效果。
比如有两个宏W->Up和Num0->W,按下Num0后播放的将是Up,而不是W。
看来在本游戏中,使用WSAD是不可能的了。



游戏不提供键盘键位的任意修改,那我们只好手动修改程序了。修改方法如下:
用16进制编辑器(比如UltraEdit或者WinHex)打开游戏主程序Doukutsu.exe;
定位到000133A3处,用下面的第一段数据覆盖原有数据;
定位到000134A3处,用下面的第二段数据覆盖原有数据;
保存修改,完成。

数据一(在文件的0x133A3处修改):
00141414141414141414140114141414141414141402030405141414141414141414141414141414141414141414141414021414041414141414141407141414141414051414140314141414141414140A1414140B0C140906141408141414140D0E14140F141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141011141213

数据二(在文件的0x134A3处修改):
00131313131313131313130113131313131313131302030405131313131313131313131313131313131313131313131313021313041313131313131313131313131313051313130313131313131313130A1313130B0C130906131308131313130D0E131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130F10131112

进游戏前先运行设定程序DoConfig.exe,恢复默认设置。现在键位就改成了:WASD移动,Num4攻击,Num5跳跃,Num7、Num8切换武器,Num+显示物品,Num0显示地图。
另外,原有的方向键移动仍然有效。

要自己定义键位的话比较麻烦,方法见下。
沙发
 楼主| 发表于 2008-1-6 20:13:05 | 只看该作者

自定义键位的方法

                                修改程序内建的键位动作对应表

程序获取输入的键位,把键位码减0x10,然后与下表对应。获得动作ID后,转到相应代码处理。

        键按下时的键位动作对应表
Debug地址:4133A3       文件内地址:133A3

00 14 14 14 14 14 14 14  14 14 14 01 14 14 14 14
14 14 14 14 14 02 03 04  05 14 14 14 14 14 14 14
14 14 14 14 14 14 14 14  14 14 14 14 14 14 14 14
14 06 14 14 14 14 14 14  14 14 14 14 07 14 14 14
14 08 14 09 14 14 14 0A  0B 14 0C 14 14 14 14 14
14 14 14 14 14 14 14 14  14 14 14 14 14 14 14 14
0D 0E 14 14 0F 14 14 14  14 14 14 14 14 14 14 14
14 14 14 14 14 14 14 14  14 14 14 14 14 14 14 14
14 14 14 14 14 14 14 14  14 14 14 14 14 14 14 14
14 14 14 14 14 14 14 14  14 14 14 14 14 14 14 14
14 14 14 14 14 14 14 14  14 14 14 10 11 14 12 13

原键    位置    动作ID
Escape  0B      01
Left    15      02
Up      16      03
Right   17      04
Down    18      05
A       31      06
L       3C      07
Q       41      08
S       43      09
W       47      0A
X       48      0B
Z       4A      0C
F1      60      0D
F2      61      0E
F5      64      0F
=+      AB      10
,<      AC      11
.>      AE      12
/?      AF      13

改键    位置    动作ID  原位置
A       31      02      15
S       43      05      18
D       34      04      17
W       47      03      16
Num4    54      0B      48
Num5    55      0C      4A
Num7    57      09      43
Num8    58      06      31
Num+    5B      08      41
Num0    50      0A      47

在文件的0x133A3处修改:
00141414141414141414140114141414141414141402030405141414141414141414141414141414141414141414141414021414041414141414141407141414141414051414140314141414141414140A1414140B0C140906141408141414140D0E14140F141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141011141213


        键弹起时的键位动作对应表
Debug地址:4134A3       文件内地址:134A3

00 13 13 13 13 13 13 13  13 13 13 01 13 13 13 13
13 13 13 13 13 02 03 04  05 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13  13 13 13 13 13 13 13 13
13 06 13 13 13 13 13 13  13 13 13 13 07 13 13 13
13 08 13 09 13 13 13 0A  0B 13 0C 13 13 13 13 13
13 13 13 13 13 13 13 13  13 13 13 13 13 13 13 13
0D 0E 13 13 13 13 13 13  13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13  13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13  13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13  13 13 13 13 13 13 13 13
13 13 13 13 13 13 13 13  13 13 13 0F 10 13 11 12

原键    位置    动作ID
Escape  0B      01
Left    15      02
Up      16      03
Right   17      04
Down    18      05
A       31      06
L       3C      07
Q       41      08
S       43      09
W       47      0A
X       48      0B
Z       4A      0C
F1      60      0D
F2      61      0E
=+      AB      0F
,<      AC      10
.>      AE      11
/?      AF      12

改键    位置    动作ID  原位置
A       31      02      15
S       43      05      18
D       34      04      17
W       47      03      16
Num4    54      0B      48
Num5    55      0C      4A
Num7    57      09      43
Num8    58      06      31
Num+    5B      08      41
Num0    50      0A      47


在文件的0x134A3处修改:
00131313131313131313130113131313131313131302030405131313131313131313131313131313131313131313131313021313041313131313131313131313131313051313130313131313131313130A1313130B0C130906131308131313130D0E131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313130F10131112


键盘键位码表:
http://msdn2.microsoft.com/en-us/library/ms645540.aspx
板凳
发表于 2008-1-6 22:48:08 | 只看该作者
好复杂…………………………………………
头像被屏蔽
地板
发表于 2008-1-6 22:51:06 | 只看该作者
如果你把功能鍵設定到小鍵盤 那么還是把移動鍵設定到上下左右上比較順手些 [s:2]
头像被屏蔽
5#
发表于 2008-1-6 22:51:51 | 只看该作者
其實最好的辦法是用JOYtoKey或者其他的按鍵映射軟件 這樣比較簡單 人人都會 [s:2]
6#
 楼主| 发表于 2008-1-6 23:26:37 | 只看该作者
上下左右键还是在那儿。
本游戏直接可以用手柄控制,不需要joy2key。
键盘映射软件都要重启系统,游戏打完后还要重启一次,太麻烦了。
头像被屏蔽
7#
发表于 2008-1-6 23:46:48 | 只看该作者

地圖Re:《洞窟物语》修改键位的方法

引用第5楼fenghou2008-01-06 23:26发表的:
上下左右键还是在那儿。
本游戏直接可以用手柄控制,不需要joy2key。
键盘映射软件都要重启系统,游戏打完后还要重启一次,太麻烦了。
金山遊俠V裡面的那個就不要重啟
8#
 楼主| 发表于 2008-1-6 23:49:06 | 只看该作者
你试过吗?我试过……
那只是改变脚本里的键位,跟没有一样。

用按键精灵也办不到,因为它不支持按下键后激活一段指令,松开键后执行另一段指令。

如果有更快捷的方法的话,我也不会费神搞这个了。
9#
 楼主| 发表于 2008-1-7 00:26:48 | 只看该作者
仔细看了一遍金山游侠V里的一键必杀,发现它确实可以做键盘映射。
具体方法是:
先定义N个触发键和所播放的按键相同的宏(那些键就是你要想使用的键,比如WSAD),按键播放时间任意。把高级设置里的触发模式设为“持续”。
然后创建一个映射宏,里面的原按键为上面设置的键,映射按键为游戏原本使用的键。
进入游戏后,激活映射宏,就可以正常使用了。

此方法完全可以替代前面的方法,感谢雨夜葬花魂的提醒。
10#
 楼主| 发表于 2008-1-7 00:46:07 | 只看该作者
再次更新更简单的方法(汗)

定义N个宏,每个的触发键为自己想使用的键(比如WSAD),所播放的按键为游戏原本使用的键。播放时间任意。把高级设置里的触发模式设为“持续”,最后在编辑窗口中将持续标记移到按键的尾部就行了。

这个方法有个缺陷,在所有宏之中,触发键和所播放的按键不能有重复,否则按键会被转换多次,达不到想要的效果。
比如有两个宏W->Up和Num0->W,按下Num0后播放的将是Up,而不是W。
在本游戏中,使用WSAD看来是不可能的了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Archiver|13号避难所

GMT+8, 2024-5-14 16:02 , Processed in 0.073381 second(s), 13 queries .

快速评论 返回顶部 返回列表