本帖最后由 kwanz 于 2012-4-8 11:45 编辑
原帖地址 http://www.gtaforums.com/index.php?showtopic=405953用Sanny Builder为脚本mod设置按键
原帖作者/ ZAZ @GTAF 翻译/ kwanz @虚拟世界
未经许可 谢绝转载
我经常被问及自己做的补丁的改键问题,估计很多人想学这个。所以这里我讲解一下如何修改一些简单的按键检测。
点这里下载最新版本的SB by Seemann: http://sannybuilder.com
译者注:或者下载【下载】SB汉化版+最小启动包 有汉化版SB
下载地址:http://game.55660.net/thread-138-1-1.html
安装SB,选择安装位置,然后会提示你选择SA的安装目录。
然后启动SB,反编译想改的补丁。
改完以后点编译,保存修改并覆盖脚本文件
(SB会在同一目录生成反编译得到的txt文件)
主要功能可以在菜单下面的工具栏上访问
1. 反编译:SB可以打开cs,cm,scm格式的脚本
2. 编译:SB默认把文件编译为[文件名]main.scm
如果脚本中带有CLEO指令,那么自动把文件编译为cleo脚本
{$CLEO .cs}是Cleo指令,文件会被编译为name.cs
{$CLEO .cm}是Cleo指令,文件会被编译为name.cm
另外你可以通过双击一个脚本直接反编,但首先你需要把脚本关联到SB。
右击脚本文件,在弹出菜单中选择“打开方式”然后找到sanny.exe,勾选总是用这个程序打开,然后按确定。 然后可以用搜索函数功能(一个放大镜图表)来找key_press语句,SB会从头开始搜索。按F3继续查找。
这里,搜索0AB0:/00E1:/key_pressed/pressed_key
00E1:是R*的正宗调用,它的按键可以在设置菜单里面改的
- 00E1: player 0 pressed_key 15
复制代码
player 0指的是主玩家,与主机上的1相对。我们编程的时候这里总是0
pressed_key 15是真正的键码
15 = enter/exit
00E1:的键码在SB帮助:SCM Documentation>>GTA SA>>Keypress numbers里有
它们是设置菜单里面可以改的那一堆功能键。 Opcode 0AB0:只有在CLEO已安装的情况下使用
8 = backspace(十进制)
0AB0键码的可以在SB帮助:CLEO3 Code Library>>Virtual key codes (for 0AB0)中找到
你会看到一个三列的表格:
1.按键 2.key_press码(十进制) 3.key_press码(十六进制)
十进制比较好用,查到什么打什么就是了。
用十六进制的话,需要写成0x<number> 比如 K = 0x4B 使用SB帮助
点菜单Help>Content,查阅key_press码的相关信息
附1:Seemann大人的留言
用数组访问按键信息的传统方法
http://www.gtaforums.com/index.php?showtopic=228037&view=findpost&p=4082258 - old way via arrays
作弊码的实现
http://www.gtaforums.com/index.php?showtopic=262280&view=findpost&p=1059030199 - making cheats
附2:00E1参数表
步行控制
0 左右 -- GO_LEFT / -- GO_RIGHT
1 前后 -- GO_FORWARD / -- GO_BACK
2 特殊控制左右 -- VEHICLE_LOOKLEFT/ -- VEHICLE_LOOKRIGHT
3 特殊控制上下 未知
4 动作 次级武器 -- PED_ANSWER_PHONE/ -- PED_FIREWEAPON_ALT
5 上一武器 放大 -- PED_CYCLE_WEAPON_LEFT/ -- PED_SNIPER_ZOOM_IN
6 瞄准 -- PED_LOCK_TARGET
7 下一武器 缩小 -- PED_CYCLE_WEAPON_RIGHT/ -- PED_SNIPER_ZOOM_OUT
8 小弟控制跟随 -- GROUP_CONTROL_FWD
9 小弟控制原地 -- GROUP_CONTROL_BWD
10 谈话回答否 -- CONVERSATION_NO
11 谈话回答是 -- CONVERSATION_YES
12 没有 -- -- --
13 切换镜头 -- CAMERA_CHANGE_VIEW_ALL_SITUATIONS
14 跳 -- PED_JUMPING
15 上车 -- VEHICLE_ENTER_EXIT
16 跑 -- PED_SPRINT
17 攻击 -- PED_FIREWEAPON
18 蹲下 -- PED_DUCK
19 看身后 -- PED_LOOKBEHIND
车上控制
0 左右 -- VEHICLE_STEERLEFT/ -- VEHICLE_STEERRIGHT
1 上下 -- VEHICLE_STEERUP/ -- VEHICLE_STEERDOWN
2 特殊控制左右 -- VEHICLE_TURRETLEFT/ -- VEHICLE_TURRETRIGHT (NUM6)
3 特殊控制上下 -- VEHICLE_TURRETUP/ -- VEHICLE_TURRETDOWN
4 次级武器 -- VEHICLE_FIREWEAPON_ALT
5 看左边 -- VEHICLE_LOOKLEFT
6 手刹 -- VEHICLE_HANDBRAKE
7 看右边 -- VEHICLE_LOOKRIGHT
8 下一电台 -- VEHICLE_RADIO_STATION_UP
9 上一电台 -- VEHICLE_RADIO_STATION_DOWN
10 回答否 -- CONVERSATION_NO
11 回答是 任务跳过 -- CONVERSATION_YES
12 没有 -- -- --
13 切换镜头 -- CAMERA_CHANGE_VIEW_ALL_SITUATIONS
14 刹车倒车 -- VEHICLE_BRAKE
15 下车 -- VEHICLE_ENTER_EXIT
16 前 -- VEHICLE_ACCELERATE
17 开枪 -- VEHICLE_FIREWEAPON
18 鸣笛 -- VEHICLE_HORN
19 特殊车辆任务 -- TOGGLE_SUBMISSIONS
|