CLEO教程的详解
本帖最后由 紫夕£夏夜 于 2012-6-19 22:24 编辑其实之前CLEO神的那两篇帖子写的很好,但是还只是属于入门级
一些新手比较疑惑的问题先列出来吧
第一:打不开CLEO
很多(包括我)人在用Sanny Builder打开CLEO时会发现,有未知的OP代码无法打开
这时,我们可以按下http://pic.qnpic.com:83/r.jsp?fn=//qiannao/share/2012/6/19/11340115956740.png
选择ingore unknown,意思是忽略未知的OP代码
这样就可以打开一些特殊的CLEO了
第二:看不懂代码
这个问题很死,我给个比较嗖的注意 懂英语的不要喷
——————使用谷歌翻译——————加上自己的理解应该可以明白大体的意思
第三:编辑CLEO发生错误
这个问题我也经常遇到,基本可以列为2类
这个问题在于设置变量出错或是标识码的问题,请重新找找你所设置的变量或是@http://pic.qnpic.com:83/r.jsp?fn=//qiannao/share/2012/6/19/2.png
2没有标识码,这个问题很常见,所谓的标识码就是指OP代码,就像是
http://pic.qnpic.com:83/r.jsp?fn=//qiannao/share/2012/6/19/3.png
这些到目前还没有一个准确的分类,也没有完全被翻译出来,这个是一项大工程,很难度
对了,上次有人问我,什么是循环,CLEO神的解释其实还是很详细的
但是大家应该都看不太明白CLEO为什么需要循环节和跳转吧?我具体用几个实例来解释
先拿一个简单的:CLEO神所举的杀手补丁
if or是说几个条件满足一个就可以开启下一个方案
if是只需要满足一个
if and是说需要同时满足
以上这些都是很常见的,看CLEO需要什么,就使用什么
比如it or在杀手补丁里,定义为
if or
20@ > 23
not 20@ >= 5 这个就是时间的设定,通过定义时间来触动CLEO的后续方案,只要20@的某一个条件满足就会启动后续方案
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere -2815.76 -1523.98 140.84 radius 80.0 100.0 60.0 玩家接近 -2815.76 -1523.98 140.84 这个点的横向80米内、纵向100米内、垂向60米内的范围(这个坐标就是千年山那个小木屋)
else_jump @KILLER_11 如果上述条件不满足,就跳回开头去(也就是如果CJ没有接近这个点就不会启动后续的方案)
上面那个else_jump,是常用的跳转方式,如果没有会默认为下一段,条件如果不满足就继续自循环,等到CJ接近这个范围才会触动,具体的我后面会总结归类
然后是加载,定义可用,然后才是创建
04D8: set_actor 0@ drowns_in_water 1
0446: set_actor 0@ immune_to_headshots 1 这两句用到了2进制代码,这种代码由1和0组成,1表肯定,0表否定,但是不是所有语句都能用的
具体的我下面慢慢分类
写CLEO时需要考虑很多情况,连不可能出现的情况都要考虑
对一些会发生的情况提前告诉电脑怎么做 然后设定循环让电脑按照这个模式继续循环,这就是循环的一个重要意义
接下来举个更简单的例子:海盗船长CLEO
http://pic.qnpic.com:83/r.jsp?fn=//qiannao/share/2012/6/19/41340115958251.jpg
这个开头就没有设定跳转到那个循环节,意思就是默认跳转到下一个
http://pic.qnpic.com:83/r.jsp?fn=//qiannao/share/2012/6/19/5.png
丫的,这个就邪恶了,这么厚的血还配备散弹?
http://pic.qnpic.com:83/r.jsp?fn=//qiannao/share/2012/6/19/7.png
这个就是个很好的例子,这个CLEO的设置地点是拉斯维加斯的那艘海盗船(肯定有水)
所以这一段循环节主要是讲如果特殊人物0@落水了该这么办,至于那个8118: not actor 0@ dead——0@没有死 如果0@死了你怎么在往下设置?
这里扯到了反向设置,我下面再讲
这里提到了时间wait,这个是必须要设置的,如果你打死一个马上复活一个,这怎么行!
3@4@5@,在前面作者已经定义这是CJ的坐标,简单的说,就是如果已经定义了,不管CJ如何移动,3@4@5@都会马上更新成新的坐标,即雷达的原理
用来为NPC指引CJ的位置,在很多和CJ扯上关系的CLEO都会有这类坐标的设置,很好用更可以活用但是@只能设置33个,具体怎么设置要看情况
哦,对了AS_actor 0@ swim_to 3@ 4@ 5@这句话的意思是0@游向3@4@5@(即CJ的坐标) 在很多情况下需要设置NPC如果落水需要怎么做
比如CJ可能靠近海边的地方
哎呀,对了,还有问题 复制其他CLEO的语句经常发生的错误
变量错误,人家用的1@,你用的0@,如果你就这样套用进去,肯定死机,(电脑不知道1@是谁啊)
不是随便从别的CLEO就可以随便移植过来用的要注意
矿场僵尸CLEO
这个CLEO其实和其他任务类型的CLEO一样,大家可以参照杀手补丁的翻译按照自己的思路修改
我挑几个比较关键的要点来总结
1设置时间,时间的变量不好控制
00BF: 29@ = current_time_hours, 30@ = current_time_minutes
0019: 29@ > 8
001B: 20 > 29@
上面三句代码29@和30@代表时间(即分钟和小时)
然后定义需要在某段时间做什么事情才会触动下文
然后你可以看循环CORPSE_250,一大段的像乱码一样
其实不是乱码,看上去是挺乱的,但是细细观察,可以发现有个规律
http://pic.qnpic.com:83/r.jsp?fn=//qiannao/share/2012/6/19/8.png
这个是其中的一小段,下面都按照这个格式来写,所以重点解析这一段
大意是加载#SPECIAL06这个特殊人物在583.1 835.2 -31.4这个点上(就在那个矿场里)定义为0@
貌似还提及了Z坐标?看来又需要下面另外解释了
set_actor 0@ health_to 6000设置0@的生命值为6000
give_actor 0@ weapon 6 ammo 1E38定义0@拿着6号武器 后面那个1E38CLEO神说明过那是NPC的最多血量,但在这里不是那个意思是武器弹药数很多(这个东西貌似是近战武器?怎么会扯到子弹?)还是补上武器编号吧
武器代号 中文名称 dff和txd文件名
0 拳头
1 指节套环 brassknuckle
2 高尔夫球杆 golfclub
3 警棍 nitestick
4 小刀 knifecur
5 棒球棒 bat
6 铁铲 shovel
7 桌球棍 poolcue
8 武士刀 katana
9 电锯 chnsaw
10 紫色橡胶棒 gun_dildo1
11 银色振荡器 gun_dildo2
12 仿真阳具1 gun_vibe1
13 仿真阳具2 gun_vibe2
14 花 flowera
15 拐杖 gun_cane
16 手榴弹 grenade
17 催泪瓦斯(烟雾弹) teargas
18 燃烧弹 molotov
22 9mm警用手枪 colt45
23 9mm消音手枪 silenced
24 沙漠之鹰手枪 desert_eagle
25 长管散弹枪 chromegun
26 短管散弹枪(双截散弹枪) sawnoff
27 连发散弹枪 shotgspa
28 Micro SMG微型冲锋枪 micro_uzi
29 SMG轻型冲锋枪(MP5) mp5lng
30 AK-47突击步枪 ak47
31 M4卡宾枪 m4
32 TEC-9型步枪 tec9
33 打猎步枪(来复步枪) cuntgun
34 狙击枪 sniper
35 火箭筒(RPG-1) rocketla
36 跟踪式火箭筒(AT-4) heatseek
37 火焰喷射器 flame
38 转轮机枪 minigun
39 遥控炸弹(C4炸弹) satchel
40 遥控器 bomb
41 喷漆罐 spraycan
42 灭火器 fire_ex
43 照相机 camera
44 微光夜视镜
45 红外夜视镜
46 降落伞 gun_para
一共46种武器,在weapon.dat存储着这些武器的数据,另外的一些貌似是近战武器在melee.dat里
我们看到了,6号武器是指铁铲,但是为什么近战武器会需要设定1E38?具体的意思我不太明白,就是理解成子弹数(很费解)
其实CLEO不难……这类CLEO不要看他很难,其实都是按照一个模式来写的,只要能把杀手补丁那个看全了
就差不多了
改按键之类的简单的不能再简单了,我就不必在说了吧?参考CLEO神的原帖
还有一个问题:CJ可操控是什么意思其实就是说CJ能用,反之不可操控就是在下降的那种状态,不能自主操控的意思
讲讲反向设置哈,我有空再多写点
反向设置其实不是很简单,CLEO神说的虽然很具体
所谓反向条件,就是把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相反,一个表示肯定一个表示否定,转换方式就是上面所述。
不需要在讲解吧?教程完毕
其实最后还需要插一句……其实要完整的看清楚CLEO,可以用树状图的方法来直观的写,在宏观上调控和修改CLEO,这个方法我下次在介绍
渣渣基础教程已经修复= =欢迎交流与探讨
支持哈哈 新人福音 貌似图挂了!
5555555555 为啥我看到的全是挂图 不是我说图好像真的挂完了 额...怎么保存哟?我按了保存!可是再打开的时候还是原来的样子 是先按下F6编译,然后就保存到CLEO里了,我忘了说明抱歉 是滴,CLEO神有说按保存只是保存了一个文本档案... 图挂了 为什么看不见图捏. 图挂了,湖人补图吧.... 为什么选中文字后,后面会有乱码啊 还是那句 支持完 就走人 都是挂图啊
页:
[1]