好友
- 积分
- 1249
注册时间2016-6-27
最后登录1970-1-1
收听
记录
|
在本论坛里有个“修改CLEO常用的思路和模板……”,是修改CLEO的新手入门篇,基本上都看得懂的,但是还有一篇CLEO修改帖,叫做高手进阶篇,不知道什么原因CLEO神没发出来,我是在ljnedzq的博客里找来的(也就是CLEO神的博客,就是那个CLEO666大合集的收集、翻译、整理、说明书制作,再加上还有一部分原创):
http://ljnedzq.blog.163.com/blog/static/113321268201192182221423/
以下是这篇博客的全文:
以前发的那个是最基本的修改方法,是修改CLEO的入门必备知识,点击进入日志《CLEO修改大法——新手入门篇》:
http://ljnedzq.blog.163.com/blog/static/113321268201192182112904/
如果那个能看懂的话,就可以慢慢地试着自己改CLEO,一开始改出来的CLEO会和你套用的模板CLEO很相似,但如果你的思想超越了你所套用的CLEO本身的框架,那么就从“修改”升级成了“制作”。制作CLEO要掌握下列几点常用技巧:
技巧1、设置反向条件
所谓反向条件,就是把if语句的后面本来表示肯定的句子变为否定或表示否定的句子变为肯定。
例如: Actor.Dead(1@) 人物1@死了
要是改成(如果)人物没死(就……),直接在前面加not就行了:not Actor.Dead(1@) 人物1@没死
这是CLEO语句前面没有标志码的情况,如果前面有一个十六进制的四位数标志码,例如:0AB0: key_pressed 36 按了Home键
把肯定改否定就要把标志码第一位由0改成8,然后在语句前面加not: 8AB0: not key_pressed 36 没按Home键
那把否定改肯定呢?过程是相反的,去掉not再把标志码第一位的8改成0(没有标志码的句子就更简单了)。
CLEO语句的标志码全都是以0或8开头的四位数十六进制代码,0和8相反,一个表示肯定一个表示否定,转换方式就是上面所述。
技巧2、添加人物模型
怪物类的CLEO全都是添加模型的,和替换模型相比它的好处就是没有替换任何NPC,不会走着走着就遇到一个怪兽(然而一打就死,这怪兽太水了吧……)。如果不是用其它CLEO修改而是想用一个从网上找的怪物模型自己动手来做个怪物类的CLEO,怎么添加模型呢?
游戏原版的人物,加载模型时都是这一句:
model.Load(#ARMY)
括号里的人物名称就是原版游戏里的人物名称,所以没问题,如果下载了一个人物用来制作一个要替换模型的怪物类CLEO,就不需要作说明了吧?
如果是想添加模型,它的名字一定不能和gta3.img里的任何模型重名,否则会死机,而且名字长度也不能大于6,超过6位的话电脑会自动截取前6位,那肯定就找不到模型了,也会死机,所以虽然金刚的英文名称叫kingkong但在圣安地列斯里的模型却叫kinkon,必须缩短。
要是想把金刚的模型添加进来,用这句:
023C: load_special_actor 'kinkon' as 1 加载“kinkon”为1号特殊人物
单引号里就是模型名称,后面的数字表示把它加载为几号模型,只有11个位置,数字为1~11之间的正整数。
判断是否加载了人物模型的句子就变成了这样:
023D: special_actor 1 loaded
然后创建人物的时候,这个人物就叫#special01,特殊人物1号:
1@ = Actor.Create(CivMale, #SPECIAL01, -636.05, -2082.71, 29.946)
中间那个civmale是决定帮派属性的因素,如果想让怪兽刷出来做自己的小弟,就从召小弟的CLEO里复制这一句创建人物;如果是当成敌人刷出来,就从刷敌人的CLEO里复制。
用Imgtool把kinkon.dff和kinkon.txd添加到gta3.img里之后运行这个CLEO,就可以找到金刚了。
很多个怪物CLEO一起装的时候,由于添加的模型编号一共只有11个位置,所以加载模型的那一句不是放在程序里任何位置都合适的,弄不好会有“串模型”的现象出现。
比如:怪物甲和怪物乙分别属于两个不同的CLEO,但都是游戏一开始就加载为1号模型的话那么去了怪物甲所在的领地之后有可能刷出来的是怪物乙,或者是游戏里的剧情人物(因为剧情人物也是占用这11个位置,在不同的场景里分别调出来作为某一号特殊人物来用,所以11个位置也够了),这种串模型现象的出现就是因为加载模型的条件跟位置无关,把电脑搞迷糊了。这时候就要注意了,要把“加载怪物甲为1号特殊人物”这一句移动到“当CJ到达怪物甲的领地(有时候还有时间段)”这一句的后面,也就是进入它的领地就加载它的模型,不进入就不加载,怪物乙也这样改,那么在两者的领地没有重叠的情况下就算模型编号一样也不会串模型了,如果两个怪物CLEO的触发地点相近,就一定不能让数字相同,否则会串。“白龙马CLEO”和“天马CLEO”互为MOD关系,是同一个CLEO只是马的模型不同,程序都一模一样,我就是用这种方法使这两个CLEO可以共存。“机械公敌CLEO”和“高达CLEO”虽然是通过改模型名称改得可以共存了,但由于触发键没改所以同时装有可能会有位置重叠的现象,要么改按键、要么改刷出的位置,这样就可以真正共存了。
游戏里的剧情人物如果想调出来,和添加模型的方法一样,它们都是占用这11个特殊位置,“刷三合会CLEO”里的吴子就是这样加载的:
023C: load_special_actor 'WUZIMU' as 1
用召唤战士CLEO或召唤骷髅CLEO去打怪物,很容易出现串模型的情况。
用按键触发的添加人物CLEO和用地点触发的添加人物CLEO怎么避免串模型,是一个道理的。
技巧3、利用Sanny Builder的编码提示系统
在Sanny Builder里打出某一特定组合后,会出现一系列提示,都是以这个开头的,例如输入“Car.”,就会出现一大堆以“Car.”开头的,自己看想要哪个就选它按回车就行了,不用整句话都一个一个字符地敲上去。
输入“player.”后也会出现类似的提示。
加载模型的句子的括号里都是以#号开头的,输入字符#,也会出来一大堆,接着输入一两个字母,这个模型也该浮到前面的位置了,所以有些模型名字记不清也没关系,知道前几位再有个大概的印象就行了。
技巧4、利用Sanny Builder的代码搜索器
在Sanny Builder的菜单里,有个功能强大的代码搜索器:Tools→IDE tools→Opcode search
里面有CLEO所要用到的全部代码,这需要一定的英语基础才知道要搜索什么内容:
如果想让某辆车跟着CJ,就需要知道“跟着”是follow,在输入框里输入follow就会出来全部的包含follow的语句。
想要哪一句在它上面点右键选复制就行了。
这些全是与跟踪有关的:
0727: set_heli 377@ behavior_to_police_heli_and_follow_actor $PLAYER_ACTOR follow_car -1 radius 20.0
让直升机377@像警用直升机一样以20米的距离内跟踪着人物$PLAYER_ACTOR所开的车
0724: heli 114@ follow_and_attack_player $PLAYER_CHAR radius 50.0
直升机114@追着炸人物$PLAYER_CHAR,跟踪半径为50米
07F8: car 74@ follow_car 72@ radius 27.0
车辆74@跟着车辆72@,跟踪半径为27米
如果想让战斗机去打某个车,就得知道要搜索的是attack,输入attack就出来一大堆包含attack的句子。
有英语基础的话一看就知道这一句就是:
070E: hydra 126@(48@,2i) attack_player_car $PLAYER_CHAR radius 10.0
战斗机126@(48@,2i)轰炸人物$PLAYER_CHAR所开的车,跟踪半径是10米
用这个句子的时候必须保证被轰炸的人始终开着车,一旦此人下车就会死机或者战斗机会悬停在空中不动,原因就是没告诉电脑如果这个人物没开车时要怎么做,电脑就愣在那里了。
把数字4@加上1.5之后的数字重新储存为4@,这个语句的前面没有标志码,可以直接打出来: 4@ += 1.5
如果要加上的那个值不是个具体的数而是一个变量,这样就不行了,如果打“4@ += 5@”,编译不了的,因为前面没有标志码,电脑不认识它,而又不知道标志码是什么,也不知道在哪个CLEO里有这一句,复制也复制不成,这时候就在代码搜索器里搜索“+=”,可以看到这一句:005B: 4@ += 17@ // (float) ,这就找到了。
技巧5、利用强大的障眼法
如果打开圣安地列斯的脚本文件main.scm看看,会发现游戏里很多视觉效果都是用的“障眼法”,在游戏虚拟的世界,眼见不一定为实。原版游戏在三星级的时候飞机上会有特警爬绳子下来,但那些特警真的是从飞机里跑出来的吗?只不过是在飞机旁边创建个绳子然后创建特警爬绳子下来而已。实际上飞机里连个驾驶员都没有。
为什么会有字数限制?接下一层楼:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?现在注册
x
评分
-
查看全部评分
|