[GTAF进口]GTA三代游戏编程教程总帖[翻译持续更新,急求加入]
奉站长命,我来翻译这一套教程,帖子数量很多,我会全部标明原版/翻译版地址和完成进度,在此呼吁大家回帖认领翻译,工资问 kami要。开工翻译之前,请猛摁>>>这里<<<了解操作规程
原帖地址 http://www.gtaforums.com/index.php?showtopic=480446
GTA三代游戏编程教程总帖
原帖作者/ BnB @GTAF 翻译/ kwanz @虚拟世界
未经许可 谢绝转载
概述
[本节为GTAF版规,在此略过]
教程
·CLEO编程教程 by ZAZ EN CH (已认领)
可能是最好的CLEO编程教程,很规范、很详细、结构清晰、简明易懂,适合任何水平的人学习。
·编程改键教程 by ZAZ EN CH (已完成)
对不知道怎么编程的小白适用。
·任务编写小白教程 by Dutchy3010 EN CH (已认领)
小白学任务编写适用,结构清晰,解释清楚。
·任务编写进阶教程 by Dutchy3010 and Patrick W EN CH (未开始)
高阶编程适用,类C语言的编程讲解。
·SCM/CLEO视频教程 by Dutchy3010 EN CH (无翻译)
视频讲解编程基础。
·编程圣经上篇 EN CH (已认领) 和下篇 EN CH by tomworld10 (未开始)
解释了main.scm和编程的一切的一切。(此文已收入Sanny Builder帮助)
工具
·Sanny Builder by Seemann EN CH (未开始)
SB自带有快速的编译器和反编译器,带有代码高亮功能,包括所有错误的描述和解决方案。而且SB使用最广泛,支持CLEO和CLEO Opcodes。
·CLEO by Seemann & Alien EN CH (未开始)
CLEO是三代里一款扩增编程实现的功能的工具,加入了大量新的Opcode,支持不修改main.scm的情况下运行脚本程序。
要编辑创建一个脚本MOD,你需要编译器和反编译器。这种编程语言主要有两种编译器。一个是SB,这是用得最多的,功能很丰富。另一个是Mission Builder,用得不多,现在已经不用了。这两种脚本程序的语法和数据类型的记法是不同的,但是编译的结果是一样的。还有两个编译器GTAMA和Point,但是它们都火星了。再说MB,GTAMA和Point的作者大多退出了GTA界。
编译器是把源码转换为机器码的程序,让游戏能够读取运行。反编译器执行相反的操作。
下表列出了各种SCM编辑器的语法。
·GTAMA/VCDisAsm:
is_car_in_cube $car, $lowerx, $lowery, $lowerz, $upperx, $uppery, $upperz, 0
·Mission Builder:
00B1: is_car $car in_cube $lowerx $lowery $lowerz $upperx $uppery $upperz 0
·Sanny Builder:
00B1: car $car sphere 0 in_cube_cornerA $lowerx $lowery $lowerz cornerB $upperx $uppery $upperz
·Point:
IsCarInCube ( $car, f$lowerx, $lowery, $lowerz, $upperx, $uppery, $upperz, 0 )
你应该使用什么IDE?
你可以使用很多IDE,但其中大多数都过时了。目前最好用的是Seemann的SB,使用广泛,功能丰富。下面有下载连接。选择SB的理由:
·速度快
·使用广泛
·支持CLEO库
·有13语翻译(中文by国人GTA)
·带有两套教程,大量的信息和帮助,和所有运行时错误的描述和解决方案。
·带有坐标管理器,Opcode搜索,MB>SB转换器
·支持所有三代游戏,支持全系列的反编译和PC版的编译
·对IF语句支持更好
·带代码高亮
·支持高级表达式(循环和条件)
·部分支持类的编程语句
·直接输入十六进制指令
·选项很丰富
SCM是什么
SCM是三代使用的编程语言,由GTA MOD社区命名。它主要用于main.scm文件,此文件编写了全部任务的代码。因为main.scm不是一个可执行文件,所以把它称之为脚本代码。虽然游戏里的很多功能是硬编码直接写死了的,但有了CLEO库的帮助,还是可以通过脚本编程做很多事情。
以下是原始脚本代码的样子(来自VC的debug.sc)IF IS_BUTTON_PRESSED PAD2 RIGHTSHOULDER1
AND flag_create_car = 1
AND
button_press_flag = 0
IF IS_CAR_DEAD magic_car
DELETE_CAR magic_car
ELSE
IF NOT IS_PLAYER_IN_CAR player magic_car
DELETE_CAR magic_car
ELSE
MARK_CAR_AS_NO_LONGER_NEEDED magic_car
ENDIF
ENDIF
flag_create_car = 0
initial_car_selected = 0
button_press_flag = 1
ENDIF如果你用十六进制编辑器打开scm文件,你会看到一堆字节码如下。scm是有特定结构的二进制文件。00 00 50 00 01 F3 FF FF FF 01 00 04 00 9F 0A 03
00 00 0A 00 03 00 00 04 10 8D 0A 03 00 00 04 04
04 00 03 00 00 0E 00 03 00 00 01 CF FF FF FF 51
00要编辑scm文件必须反编译。反编译器可以把字节码转化为下面的语句。反编译的结果是生成含有源代码的文本文件。
SB反编译的结果类似以下:// This file was decompiled using SASCM.INI published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027}
{$E}
//-------------MAIN---------------
0000: NOP
gosub @Noname_D
wait 0
:Noname_D
0A9F: 0@ = current_thread_pointer
0@ += 16
0A8D: 0@ = read_memory 0@ size 4 virtual_protect 0
0@ -= -49
return这是scm代码的一段。你可以用SB或任何IDE来编辑,但强烈推荐SB。
以下是SCM编程相关的集合帖。在开始学习之前,记住罗马不是一天建成的。学习SCM不需要掌握其他编程语言的知识,因为它比较简单,不同于其他高级语言,但在CLEO编程中掌握一定的计算机结构的知识会有帮助。
教程
教程名称作者程序游戏链接
CLEO编程教程ZAZSanny BuilderSan AndreasEN CH (已认领)
编程改键教程ZAZSanny BuilderSan AndreasEN CH (已完成)
任务编写小白教程Dutchy3010Sanny BuilderSan AndreasEN CH (已认领)
任务编写进阶教程Dutchy3010 and PatrickWSanny BuilderSan AndreasEN CH (未开始)
SCM/CLEO视频教程Dutchy3010Sanny BuilderSan AndreasEN CH (无翻译)
YeTi's SA 编程教程上YeTiMission BuilderSan AndreasEN CH (未开始)
YeTi's SA 编程教程下YeTiMission BuilderSan AndreasEN CH (未开始)
编程圣经上篇tomworld10Sanny BuilderSan AndreasEN CH (已认领)
编程圣经下篇tomworld10Sanny BuilderSan AndreasEN CH (未开始)
编辑main.scm代码San andreas masterMission BuilderSan AndreasEN CH (未开始)
在main.scm中腾出额外空间RapierSanny BuilderSan AndreasEN CH (已完成)
最小版main.scmRapierSanny BuilderSan AndreasEN CH (已完成)
打造你自己的存档gtasearcherSanny BuilderSan AndreasEN CH (已完成)
编程小技巧教程l3mmySanny BuilderSan AndreasEN CH (已完成)
anims使用傻瓜教程james227ukSanny BuilderSan AndreasEN CH (已完成)
如何创建任务spaceeinsteinSanny BuilderSan Andreas, Vice City, GTA IIIEN CH (已完成)
线程的创建,中止和结构群星Sanny BuilderSan Andreas, Vice City, GTA IIIEN CH (已完成)
在文字提示中显示浮点数spaceeinsteinSanny BuilderSan Andreas, Vice City, GTA IIIEN CH (已完成)
数值运算编程 spaceeinsteinSanny BuilderSan Andreas, Vice City, GTA IIIEN CH (已完成)
任务包简介Seemann and Deezire-San AndreasEN CH (已完成)
CLEO创建人物教程spaceeinsteinSanny BuilderSan Andreas, Vice City, GTA IIIEN CH (已完成)
移动OBJAschrattSanny BuilderSan Andreas, Vice City, GTA IIIEN CH (已完成)
SA内存控制SeemannSanny BuilderSan AndreasEN CH (已完成)
不完全教程DejiSanny BuilderSan AndreasEN CH (已完成)
行人态度行为设置DejiSanny BuilderSan AndreasEN CH (已完成)
YeTi's VC编程教程上YeTiMission BuilderVice CityEN CH (未开始)
YeTi's VC编程教程下YeTiMission BuilderVice CityEN CH (未开始)
littleguna的编程教程timmy2004Mission BuilderVice CityEN CH (未开始)
在自己的任务中添加箭头标记kiavash2kMission BuilderVice CityEN CH (未开始)
Y_Less的编程教程Y_LessMission BuilderVice CityEN CH (未开始)
spookie的SCM钩子教程(C++)XcR任意C++编译器Vice CityEN CH (未开始)
Text_Draw用法详解grovespazMission BuilderSan Andreas, Vice City, GTA IIIEN CH (未开始)
修改游戏菜单PatrickWMission BuilderSan AndreasEN CH (未开始)
工具
工具名称作者游戏链接
Sanny BuilderSeemannSan Andreas, Vice City, GTA III, GTA LCS, GTA VCSEN CH (未开始)
Mission BuilderBurton WaterduckSan Andreas, Vice City, GTA IIIEN CH (未开始)
PointjoncSan AndreasEN CH (未开始)
VCDisAsmCyQVice CityEN CH (未开始)
GTAMADan StrandbergGTA 3EN CH (未开始)
CLEOSeemann and AlienSan Andreas, Vice City, GTA IIIEN CH (未开始)
SCM Hook for San Andreasop9080San AndreasEN CH (未开始)
SCM Hook for Vice CitySpookyVice CityEN CH (未开始)
SA ScrDebugDejiSan AndreasEN CH (未开始)
相关主题
主题名称游戏链接
GTAF求外挂MOD专帖All III Era GTAsEN CH (无翻译)
GTA:SA OpcodesSan AndreasEN CH (未开始)
Opcodes for Bartons Editor (GTA3 + VC)Vice City, GTA IIIEN CH (未开始)
GTA-SA内存地址档案San AndreasEN CH (未开始)
GTA3/VC内存地址档案Vice City, GTA IIIEN CH (未开始)
SCM编程常见问题解答San Andreas, Vice City, GTA IIIEN CH (已完成)
Sanny Builder VS Mission BuilderN/AEN CH (未开始)
任务编程教程目录San Andreas, Vice City, GTA IIIEN CH (未开始)
任务编程信息及教程链接San Andreas, Vice City, GTA IIIEN CH (未开始)
其他
名称游戏链接
GTAG Opcode库AllHere
Deji's Opcode库AllHere
GTAModding.comAllHere
本帖最后由 kwanz 于 2012-4-5 17:12 编辑
坑死我了= =
太多了,我实在没法保证进度,强烈呼吁各位强人加入!!!
我先来 认领翻译:编程改键教程
我会保证帮你拉强人的= =
这是国内GTA MODER们崛起的的一扇门。。。
论坛里就几个人研究CLEO太累了,不懂了交流的人都没。。。所以这个。。。很有必要 我们 科教文娱 老牛掰拉、 支持下
我代表终极一家群组宣布加入,坚决支持翻译事业!
LZ要什么我给什么,随时恭候委派任务…… 好复杂啊{:soso_e153:} 紫夕£夏夜 发表于 2012-4-5 19:44
我代表终极一家群组宣布加入,坚决支持翻译事业!
LZ要什么我给什么,随时恭候委派任务……
自己挑熟悉的会好一些,真的。。。
你随意
过两天我写一套翻译格式规范 紫夕£夏夜 发表于 2012-4-5 19:44
我代表终极一家群组宣布加入,坚决支持翻译事业!
LZ要什么我给什么,随时恭候委派任务……
偶这个学期有点悲催,这套东东成型以后我未必能有多大贡献,今天赶紧把这篇搞出来已经是打乱个人计划之举了,目的就是及早让更多人看见+加入 kwanz 发表于 2012-4-5 20:55 static/image/common/back.gif
偶这个学期有点悲催,这套东东成型以后我未必能有多大贡献,今天赶紧把这篇搞出来已经是打乱个人计划之举 ...
所跌四 表示一个都不熟悉肿么破~ kami哭爹喊娘拉我来的{:soso__12036147791445154567_2:} 下周四考完,周五入手 那夜你真美 发表于 2012-4-5 21:39
表示一个都不熟悉肿么破~ kami哭爹喊娘拉我来的
。。。。。。
字母堆在一起能看懂就行!!~你会很猛的…… 支持翻译事业 好吧 我理解能力差 还是没看明白
我想试试这个
http://www.gtaforums.com/index.php?showtopic=403594
算认领么 随便点开的
然后 能不能开一个贴翻译 设置任何人不可进