当前位置:&>&
侠盗猎车手圣安地列斯CLEO简单修改教程
时间: &&&&来源:
&&&& 游览量:12339次
必须先***侠盗车猎手圣安地列斯才能***Sanny Builder软件,否则无法使用,用这个软件修改可以修改CLEO,一些基本的修改方法在下面列出来了:
CLEO都是编程高手做出来的,他们能让CLEO纵向发展(增加CLEO的种类),对大多数人来说几乎是一个不可能做到的事情。但并非一点办法都没有,现有的资源就完全可以用来自己琢磨着修改一些CLEO,让CLEO横向发展(同一种类型的CLEO增加些数量)。
1、先举一个最简单的:你想在四龙赌场门前停一辆NRG500摩托车,每次打开存档都能看到它,怎么实现呢?
有一个&军警车辆&CLEO,作用是把爆爆工厂里停了各种各样的警车及军车。
用Sanny Builder软件打开军警车辆CLEO的Poli_Arm_Cars.cs文件,可以看到有一大段这样的语句:
$PC006 = init_parked_car_generator #BARRACKS color -1 -1 1 alarm 0 door_lock 0 0 10000 at -2.694 36.419 angle 270.0
这是计算机语言,翻译***话就是:在(-,-102.694,36.419)这个点上产生一辆警笛关闭的默认颜色的车头朝东的没锁门的运兵车。
&BARRACKS&是车名,想增加哪个车停放点就改成相应车名,改成NRG500就变成停放NRG500摩托了。在刷车工具里有各种车辆的中英文名称和图片的对照。
&color -1 -1 1&表示车的颜色,这个如果不会改就不要改。
&alarm 0&表示报警器关闭,不知道有什么用。
&door_lock 0&表示没锁门,也不要改。
10000可能是生命值吧,没改过。
&at&后面的三个数字就是车辆停放点的坐标,先跑到四龙赌场门前测一下坐标然后把坐标值改一下,这样就在四龙赌场增加了NRG500停车点。GTASA疯狂***器能测坐标。Z坐标不要直接套用,采用&进一法&,要比站着的坐标高出0.5米左右,不要让车轮钻地下去了。
&angle&后面的数字是车头方向,数值在0~359.9999度之间,正北为0度,正西为90度,正南为180度,正东为270度,就这样转。
改完了不要点保存,那只是保存为一个txt文档,要按F6编译,这就保存到cs文件里了。
在四龙赌场门前就增加了一个NRG500摩托车的停放点了。
上面说的只是纯修改的方法,若想在原有的cs文件的基础上再增加一辆车,那就不仅要把这一行复制了排到后面,还要把它后面紧跟的这一行:014C: set_parked_car_generator $PC006 cars_to_generate_to 101
也复制到后面去,因为所有车都是两行,需要修改的是只是第一行。自己想加车就要和上面的格式统一。
不行的话,那就试试看&比赛随意选车&里面的ZAZ_PICKUP_S***E.cs(这个也有增车的功能),普通车辆和警车的格式好像不太一样,上面举的例子只是一个大致的思路,我自己并不是按照军警车辆来改的,我是用比赛随意选车那个改出来的,在黑白旗的地方弄些车,正好可以玩各种比赛。
增车的cs文件有很多,&新增停车点&里面就有N多、&老家有装备&这里面也有停车点、&汽车展厅增车&等等这些都有增加刷车点的功能,皆可拿来参考,放一起比较就知道该怎么增车了。
改了cs文件之后并非当场生效,要重新打开存档。还有一点要特别注意:一定要用原生态的存档(没有使用过CLEO补丁的),用CLEO保存过的存档可能看不到修改cs文件的效果,包括下面这些修改。
2、你想在沙漠机场的空地上增加一些武器,怎么实现呢?
有一个&老家有装备&CLEO(感谢jiangao0627提供的这个CLEO),在MoreWeapons.cs文件里面有一大段这样的语句:
032B: $3139 = create_weapon_pickup #AK47 group 15 ammo 9999 at 89.0 13.5
这个翻译***话就是:在(2483.6,-.5)这个点上增加一个子弹数为9999的AK47冲锋***的拾取点。
其中肉搏类的武器没有子弹数,格式不太一样,往下拉可以看到关于武士刀的语句:
$3212 = Pickup.Create(#KATANA, 15, 2476.8, -.5)
KATANA就是武士刀,15不知道干什么的,后面的三个数字是坐标。花朵、振荡器这些跟肉搏类武器的格式一样。
各种装备的名称在data文件夹里的weapon.dat里就有,武器栏每行第一项就是,肉搏类的武器在melee.dat里。
跑到沙漠机场测一下坐标填到里面去,再把***名改了,按F6就好了,以后在沙漠机场都能看到这个武器了。
3、有些CLEO你觉得按键不方便,想把按键改了,怎么做?
先把按键的编码发上来吧:
凡是看到这样的语句&key_pressed&,后面所跟的数字就是按键(一般都用的是十进制的编码)
①、固定按键(每一行的第一个表示按键名称,第二个是键盘的十进制编码,第三个是十六进制编码)
鼠标左键 1 1
鼠标右键 2 2
鼠标中键 4 4
退格键 8 8
回车键 13 D
Shift (两边一样) 16 10
Ctrl (两边一样) 17 11
Alt (两边一样) 18 12
Pause 19 13
Caps Lock 20 14
空格键 32 20
Page Up 33 21
Page Down 34 22
Home 36 24
方向键左 37 25
方向键上 38 26
方向键右 39 27
方向键下 40 28
Insert 45 2D
Delete 46 2E
左Windows键 91 5B
右Windows键 92 5C
属性键(右Windows和右Ctrl之间那个) 93 5D
小键盘0&&96 60
小键盘1&&97 61
小键盘2&&98 62
小键盘3&&99 63
小键盘4&&100 64
小键盘5&&101 65
小键盘6&&102 66
小键盘7&&103 67
小键盘8&&104 68
小键盘9&&105 69
小键盘*&&106 6A
小键盘+&&107 6B
小键盘-&&109 6D
小键盘.&&110 6E
小键盘/&&111 6F
F10 121 79
F11 122 7A(一般别用,这键是中英文切换)
F12 123 7B
Num Lock 144 90
Scroll Lock 145 91
②、游戏中的功能键
0 向左、向右
1 向前、向后
4 行动(接***、买房)
5 鼠标滚轮向上
6 武器瞄准
7 鼠标滚轮向下
8 团队控制前进
9 团队控制后退
10 否定回答
11 肯定回答
12 不存在此编码
17 开***、搏斗
开车时:& &
0 左转、右转
2 特殊控制左、右
3 特殊控制上、下
4 次级武器
5 开车向左看
6 手动刹车
7 开车向右看
8 下一个电台
9 上一个电台
10 否定回答
11 肯定回答
12 不存在此编码
13 切换视角
19 次级任务
比如你觉得&随时随地改车&的快捷键是T,和汽车转向灯CLEO有冲突,想改,怎么办?
打开transfender.cs,有这一句:
0AB0:& &key_pressed 84
凡是看到key_pressed,后面跟的数字就是键盘编码,84表示T,改成66就成了按B改车。
如果是双键齐按的CLEO,肯定有两句key_pressed连在一起,都改了就行了。
双键齐按的,在两个key_pressed的上面还有一个if and,这个一定要注意,if是指的单键,if and就是双键。
比如潜艇的代码是按Ctrl+S,它的编码就是:
if and& && && && && && && && &
0AB0:& &key_pressed 17& && & (17就是Ctrl)
0AB0:& &key_pressed 83& && & (83就是S)
而导弹补丁是按退格键发导弹,它的编码是:
0AB0:& &key_pressed 8& && &&&(8就是退格键)
在车上用的CLEO,按键格式是player 0 pressed_key 11(11要和开车时的功能键对应),徒步使用的好像也是这种格式,规律我没记,但全都是key和press连在一起后面跟个数字。若都是车辆CLEO或步行CLEO,把按键代码一改就行了,要想把CLEO从&车上用&转换成&走路用&,改按键时可从同类CLEO复制过来改。
固定按键就是说不管游戏中键盘怎么设置,CLEO的按键都不变,编辑CLEO时用如果用的是第二大类(游戏中的功能键)那就会随着键盘设置而变化。固定按键对于开车或走路都是通用的。
如果想把某项功能&如果按什么键就如何&给去掉而又不知道该删哪一段,就把按键改成五百多(一个不存在的键),这项功能就被去掉了,因为根本不可能按到那个键。
4、有个&武装越野车&CLEO,开一辆沙滩越野车BF Inject时配备一把隐形的机***。如果你开别的车也想有隐形机***怎么做呢?
&按K武装汽车&就不必说了,武器不是隐形,有些制作精美的MOD装了武器就不好看了,装个隐形的最理想了。
把武装越野车的cs文件打开,有这么一句:
Actor.DrivingVehicleType($PLAYER_ACTOR, #BFINJECT)
不用去琢磨怎么把车加上机***,只要看到BFINJECT那就知道这一句的意思肯定是限制车型,要怎么改那就很明显了。
每辆的车的高度不一样,想改变子弹发射的位置怎么办呢?
往下拉有这么一段:
0407: store_coords_to 6@ 7@ 8@ from_car 0@ with_offset 0.33 0.7 1.08
06BC: create_M4_shoot_from 6@ 7@ 8@ target 3@ 4@ 5@ energy 100
09F1: play_audio_at_actor $PLAYER_ACTOR event 1157
066C: 9@ = attach_particle &GUNFLASH& to_car 0@ with_offset 0.33 0.7 1.08 rotation 0.0 1.0 0.0 flag 1
凡是看到offset这个词(offset是偏移的意思),后面跟的就是相对坐标值,是相对于车辆中心的位置。X正表示左、负表示右,Y正表示前、负表示后,Z正表示上、负表示下。
有两个这样的语句,如果不知道哪个是,就先把第二个offset后面那个的X值改成0,进游戏一看,子弹仍然是从右边射出的,而发射时所喷的火焰却在车的正中间,这样就知道后面那个offset是火焰的位置,前面那个肯定就是子弹的位置,试着改了下,果然是。
这些都是自己琢磨的,没有统一的固定模式。自己多改改就知道了。
凡是包含车名的CLEO都能以一当百。
5、大家想必都见过这个MOD:尾翼能升降的布加迪威龙,我所发的&尾翼升降&CLEO正是从这个MOD里提取出来的:开一辆子弹头赛车Bullet时能升降尾翼。
如果开别的车时也想升降尾翼,如何做呢?
打开veyron.cs,里面关于车名的部分就不再说了,改个名字就完了。
下面还有更关键的内容:改成别的车名,开车之后尾翼可能不在尾部而是在车的中间,或是在车的后面悬空放置。
那这就需要改尾翼的位置了,往下拉必然会有尾翼的坐标。
里面先是有这么一句:
0681: attach_object 2@ to_car 5@ with_offset 0.0 -1.83 0.011 rotation 28.0 0.0 0.0
这一句表示刚开车时尾翼所在的位置。
offset后面的三个数字的含义和上面的武装越野车一样,该改成多少,要由车的形状而定,先改一下进游戏看看,不行再调整,这个不太可能一次就成功的。
rotation后面的三个数字分别表示对X、Y、Z轴的转角,这个不要改,尾翼都是设计好了的。
在&0AB0:& &key_pressed 73&的后面有一大段这样的语句不断重复:
0682: detach_object 2@ 0.0 0.0 0.0 collision_detection 0
0681: attach_object 2@ to_car 5@ with_offset 0.0 -1.82 0.013 rotation 28.0 0.0 0.0
0682: detach_object 2@ 0.0 0.0 0.0 collision_detection 0
0681: attach_object 2@ to_car 5@ with_offset 0.0 -1.81 0.015 rotation 28.0 0.0 0.0
0682: detach_object 2@ 0.0 0.0 0.0 collision_detection 0
0681: attach_object 2@ to_car 5@ with_offset 0.0 -1.81 0.02 rotation 28.0 0.0 0.0
&&&&&&&&&&&&&&&&
这段话是一个动画片的编码,表示按下字母I之后升起尾翼
73就是字母I的编码,后面的一大段就是尾翼在各个时刻不同的位置,可以看到Z坐标不断升高。其中&wait 100&表示&等100毫秒后&,这个数字改小了那么尾翼升的速度就快了。
这一段的最后一句就是完全升起时所在位置,如果改了尾翼的位置,那么这一大段的坐标也要跟着平移过来。
在&0AB0:& &key_pressed 75&的后面还有一大段这种语句不断重复,这个表示按K收回尾翼。最后一句是完全降下时所在位置,和尾翼的初始位置要尽可能一致,就算不一致也要接近,免得画面不连续。
6、想在雷达图上增加一个图标,怎么做?
在&比赛随意选车&CLEO里,秋名山山顶也有比赛点,但是雷达图上却只显示在山脚下的游乐场有黑白旗任务点。
这个CLEO有个功能:在洛杉矶西南游乐场新增一个汽车锦标赛,既然有这个功能那么cs文件中必然会有描述。打开Race_and_Tuning_Starter.cs之后看到有这么一句:
0570: 1@ = create_asset_radar_marker_with_icon 53 at -8.6 7.1
如果有一定英语基础,一见radar就知道这是雷达,marker是标记,icon是图标,那么增加任务点的图标肯定就是这一句了,跑不了了。
icon 53肯定就是说黑白旗任务标志的编号是53(骷髅点的编号可参考&黑手党任务&,问号点可参考&黑社会任务&,其它就不知道了)。
飞到秋名山顶走进红圈测得坐标是-20.69,-4.256
那这就好办了,把原来那一句复制一下紧跟着它粘贴到下一行,坐标一改。进游戏果然在秋名山顶的地方雷达图上显示有个汽车锦标赛。
至于如何在某地增加一个存档点方法也类似,&比赛随意选车&CLEO里有一个ZAZ_PICKUP_S***E.cs,它能增加存档点,可参考此文件。
这只是增加图标的方法,如果想在地图上增加一个红圈圈的话,可以看看这个:直线赛道。它在地图上增了个任务点。新版收费站CLEO就是这样弄出来的,按此方法在收费站里加了四个红圈。
7、你想在做了某一件事之后增加个警星,怎么办?
可参考&恐怖袭击&,有这一句:爆炸过后得到六星通缉
既然有此功能那么cs文件里肯定就有增加警星的语句。
如果知道wantedlevle就是警星,那就很容易找了,这一句就是增加警星的:
Player.WantedLevel($PLAYER_CHAR) = 6
&警星调整&CLEO就是根据&时钟控制&的CLEO改出来的,把设置时间的语句改成警星,按键再一改就行了。(警星调整CLEO已更新,现在用的不是下面这种循环方式了,不过下面这一段仍然可以说明问题)
改这类CLEO(如果按&&就&&,如果按&&就&&,几个并列),还有一个很重要的问题:循环封闭。
前面是计算机语言,后面是翻译的人话
:NONAME_2& && && && && && && && && && && && && && && && && &循环2(只是个编号,改成几都行)
wait 0& && && && && && && && && && && && && && && && && && &等待0秒
if and& && && && && && && && && && && && && && && && && && &如果(if and 是指下面的条件全都要满足才会启动后续的内容)
0AB0:& &key_pressed 46& && && && && && && && && && && && &&&按下Delete
0AB0:& &key_pressed 48& && && && && && && && && && && && &&&按下0
jf @NONAME_39& && && && && && && && && && && && && && && &&&要不然就直接跳转到循环39
Player.WantedLevel($PLAYER_CHAR) = 0& && && && && && && && &那么警星数是0 (接住if语句)
jump @NONAME_39& && && && && && && && && && && && && && && &跳转到循环39
:NONAME_39& && && && && && && && && && && && && && && && &&&循环39
wait 0& && && && && && && && && && && && && && && && && && &等待0秒
if and& && && && && && && && && && && && && && && && && && &如果
0AB0:& &key_pressed 46& && && && && && && && && && && && &&&按下Delete
0AB0:& &key_pressed 49& && && && && && && && && && && && &&&按下1
jf @NONAME_76& && && && && && && && && && && && && && && &&&要不然就直接跳转到循环76
Player.WantedLevel($PLAYER_CHAR) = 1& && && && && && && && &那么警星数是1
jump @NONAME_76& && && && && && && && && && && && && && && &跳转到循环76
接下来的&循环76&,就是关于设置二星级的语句了,如此循环,最后六星级的完了之后一定要跳转到开头,不然按F6肯定会出现错误,编译不了。
六星级的那一段:
:NONAME_224& && && && && && && && && && && && && && && && & 循环224
wait 0& && && && && && && && && && && && && && && && && && &等待0毫秒
if and& && && && && && && && && && && && && && && && && && &如果
0AB0:& &key_pressed 46& && && && && && && && && && && && &&&按下Delete
0AB0:& &key_pressed 54& && && && && && && && && && && && &&&按下6
jf @NONAME_2& && && && && && && && && && && && && && && && &要不然就直接跳转到循环2
Player.WantedLevel($PLAYER_CHAR) = 6& && && && && && && && &那么警星变为6
jump @NONAME_2& && && && && && && && && && && && && && && & 跳转到循环2
最后跳转到了循环2,这就没有语法问题了。什么都不按的话这样循环一圈之后又回到出发点了,也就是游戏里没有发生任何变化。
每一段循环都是@加一串字母开头,这是因为一开始在main这一行下面有个thread '&&&',循环语句都要和此名称保持一致,不然编译不了,如果没有就默认为@NONAME。
8、有些CLEO你想改里面刷出的人物和他的武器,怎么实现?
先把武器的代码和名称发上来吧:
武器代号& & 中文名称& && && && && && && && &&&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微型冲锋***[UZI(乌兹)]& && µ_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
呼叫军人小弟CLEO是改的呼叫***小弟。
呼叫***小弟,叫的***是拿的沙漠之鹰手***,在cs文件里用查找替换命令把desert_eagle全替换成minigun,改了***的名称之后不要忘了改这句:
01B2: give_actor 11@ weapon 24 ammo 9999 // Load the weapon model before using this
给某人24号武器,弹药数9999,要把weapon 24(这指的是24号武器沙漠之鹰)替换成weapon 38
这样武器就改好了,剩下的就是把警车改悍马、***改军人了。改车的方法在前面已经列举过,那就只剩改人了,人物的名称在data文件夹下的ped.ide里有,每行数字后第一项就是,由于不是所有的人物我都能把模样和名称对应起来,所以这个不好弄。不过只要下载过军队MOD那肯定就知道军人叫army,在ped.ide的最后面单独列出了***、军人,所以cs文件里一看LAPD1就知道是***,于是就把LAPD1替换为army,这就改成了呼叫军人拿着转轮机***开着悍马过来了。
9、有些CLEO限制了车型,如果想改成很多车都能用,怎么办?
飞机特技CLEO,开鹞式战斗机按X放烟,如果想开别的飞机也放烟,复制几份cs文件然后全都改车名再把几个文件合用也行,不过有个更节省资源的方法:
打开之后有这一句:
& &Actor.DrivingVehicleType($PLAYER_ACTOR, #HYDRA)
它的意思是&如果开鹞式战机&(下文肯定就是关于放烟的了)
如果改成开运输机也能放烟,那就是几个条件选一个了,要用if or语句,if or 和if and 正好相反,if and是几个条件同时成立,if or的意思是&如果&&,或&&&
把这句改成
& &Actor.DrivingVehicleType($PLAYER_ACTOR, #HYDRA)
& &Actor.DrivingVehicleType($PLAYER_ACTOR, #adrom)
这就成了&如果开鹞式战机或开运输机&
那么这样就改成了。
if or 这种语句有限制,最多九个条件并列,但是如果想改成开任何飞机都能放烟,怎么办?游戏里的飞机可不止九种,省事的办法就是复制cs文件,再设定九种交通工具然后合用。但这个也有更节省资源的方法:
在武装飞机CLEO里有限制CJ开飞机的语句,把它搬过来:
04C8:& &actor $PLAYER_ACTOR driving_flying_vehicle
用这一句替换限定鹞式战斗机那一句,这样一改,就变成了&如果CJ开飞机&
那么所有双翼飞机都能用了。如果想把直升机包括进来,可以去找限定直升机的CLEO:武装直升机。
CJ开直升的语句:
04A9:& &actor $PLAYER_ACTOR driving_heli
在武装摩托车、武装汽车这一系列CLEO中都能找到这些语句:
047A:& &actor $PLAYER_ACTOR driving_bike
开所有交通工具:
0449:& &actor $PLAYER_ACTOR in_a_car
04A7:& &actor $PLAYER_ACTOR driving_boat
09AE:& &actor $PLAYER_ACTOR driving_train
都可以用来替换那一句,地狱导弹CLEO一开始只能在鹞式战斗机上用,我就是用此方法把地狱导弹改成了无论什么飞机都能用,比飞机投弹补丁要好得多。
曾经有人发了个汽车烟雾CLEO,有好多个cs文件,每个文件都对应一种车,里面都有这句:&如果CJ开&&车&(就按哪个键放烟),
用if or语句就可以将它们合并成一个文件,&如果CJ开&&车,或&&车,或&&车&&&,这样就合并了。
10、有些CLEO一进游戏就启动或者一开车就启动,如果想改成按一个键来启动,怎么改?
武装飞机CLEO一上飞机就启动,如果想改成在飞机上按个键启动,怎么办?
一开头是这样:
:AFW_12& && && && && && && && && && && && && && && && && & 循环12
wait 0& && && && && && && && && && && && && && && && && &&&等待0毫秒
if& && && && && && && && && && && && && && && && && && && &如果
& &Player.Defined($PLAYER_CHAR)& && && && && && && && && & CJ被定义了(也就是CJ开始活动,游戏开始了)
else_jump @AFW_12& && && && && && && && && && && && && && &不然就跳到开头(也就是如果游戏没开始就不启动)
if& && && && && && && && && && && && && && && && && && && &如果& &
04C8:& &actor $PLAYER_ACTOR driving_flying_vehicle& && && &CJ开飞机
有几句是废话:如果游戏启动就如何如何,这三行完全可以不要,有些CLEO里就没有。
就从这句来改:&如果CJ开飞机就如何&
从别处找一个按键的句子复制过来加到后面,再把if变成if and:
04C8:& &actor $PLAYER_ACTOR driving_flying_vehicle
0AB0:& &key_pressed 36
这就变成了&如果CJ开飞机而且按了Home键&,这样就改成了开飞机按Home键来启动此CLEO了。
有人提出要把仇家追杀改成按一个键来启动,就可以用此方法来改。
if& && && && && && && && && && && && && && && && && && && &
& &Player.Defined($PLAYER_CHAR)& && && && && && && && && &
else_jump @AFW_12
如果CJ开始活动(就如何如何),要不然就跳转回去
&&Player.Defined($PLAYER_CHAR)
0AB0:& &key_pressed 36
else_jump @AFW_12& && && & (这个名称不一定是AFW,数字也不一定是12,要看开头是什么,总之这个是要跳到开头的)
这就改成了进游戏按End键来启动了。
要是没找到Player.Defined这样的句子,就自己添一个key pressed句子,用if(不是if and了),效果一样的。
如果把按键盘的句子改成限制开车的句子那么就把一个CLEO从按键启动改成了开车启动了。
相应的语句都能在别的CLEO中找出来,复制粘贴就可以了。
有些CLEO是以警星数来启动的,超级六星通缉:如果CJ达到六星通缉,就%$&%^%^$%$#%%&^&%^$
这个CLEO里就有这样的句子:
if& && && && && && && && && && && && && && && && && && && && && && &&&如果
& &Player.WantedLevel($PLAYER_CHAR) & 5& && && && && && && && &&&通缉度大于5颗星
else_jump @LV6_2503& && && && && && && && && && && && && && && &&&不然就跳转到循环2503
想要哪个功能的语句,就先想想哪个CLEO有这个功能,那就去里面找,肯定能找得到。都可以改成各种各样的启动方式,也没有一个固定模式。常见的启动方式除了游戏一开始就启动、按键启动、开车启动(以及它们的任意组合)之外,还有这些:
如果CJ接近某点就如何& && && && && &(参见骷髅士兵CLEO)
00FE:& &actor $PLAYER_ACTOR sphere 0 in_sphere -5.606 87.5162 radius 50.0 50.0 50.0
jf @SKELETON_THREAD_19& && && && &&&sphere是球,后面三个数字是球心坐标,radius后面三个数分别是X、Y、Z方向的半径
如果时间达到几点就如何& && && && & ( 骷髅士兵CLEO里也有这个)
if and& && && && && && && && && && && && && && && && && && && && &&&如果
00BF: 29@ = current_time_hours, 30@ = current_time_minutes& && &&&这是定义29@和30@,29@是小时,30@是分钟
&&29@ &= 2& && && && && && && && && && && && && && && && && && && & 小时数大于或等于2
&&20 & 29@& && && && && && && && && && && && && && && && && & 20大于小时数(这两句就是说在晚上8点和凌晨2点之间)
jf @SKELETON_THREAD_145& && && && && && && && && && && && &&&要不然就跳转到循环145
凡是具有限定作用的句子都可用来作为CLEO的启动条件,像闪电球CLEO,就有&如果CJ拿着SMG按右键,再按中键&。这种有很多,举都举不完,要自己慢慢去发现。那个烈火战车以前只是骑摩托能冒火,我就是用这种方法把它改成了任何交通工具都冒火。
11、有些CLEO刷出来的敌人太厉害了,想把他改得笨一点,或者想把某些CLEO中刷的小弟或车改成无敌,怎么改?
由于人物和车辆的定义都是一大段,所以如果把某个句子单独挑出来的话不好作说明,下面以一个具体的例子来说明,杀手补丁(千年山照相的小木屋里有杀手那个)的cs程序全文及翻译如下:
// This file was decompiled using sascm.ini published by Seemann () on 13.10.2007
{$VERSION 3.1.0027}
{$CLEO .cs}
//-------------MAIN---------------& && && &&&这一行以及它之前的部分是限定此文件编译出来之后它的后缀名为.cs,这个不要改
thread 'KILLER'& && && && &&&这一行是定义名称,下面每段都要以此名称开头,这一行不要也没关系,名称会默认为NONAME
:KILLER_11& && && && && && && &循环11
wait 0& && && && && && && && &等待0毫秒
00BF: 20@ = current_time_hours, 21@ = current_time_minutes&&定义20@为当前的小时数、21@为当前的分钟数
if or& && && && && && && && && &如果(if or表示下列条件只要满足一个就启动后续的方案)
&&20@ & 23& && && && && && && & 小时数大于23(也就是过了晚上11点钟)
& ¬ 20@ &= 5& && && && && &&&小时数不大于5(也就是早上5点钟之前)
else_jump @KILLER_11& && && && &如果上述条件不满足,就跳回开头去(也就是不在这个时段就不会启动后续的方案)
if& && && && && && && && && && &如果
00FE:& &actor $PLAYER_ACTOR sphere 0 in_sphere -23.98 140.84 radius 80.0 100.0 60.0& &玩家接近 -23.98 140.84 这个点的横向80米内、纵向100米内、垂向60米内的范围(这个坐标就是千年山那个小木屋)
else_jump @KILLER_11& && && &&&如果上述条件不满足,就跳回开头去(也就是如果CJ没有接近这个点就不会启动后续的方案)
Model.Load(#DWMOLC2)& && && &&&加载DWMOLC2这个人物模型(这一句至关重要,如果没有,调出此人物时会死机)
Model.Load(#HEATSEEK)& && && & 加载跟踪式火箭筒HEATSEEK的模型(这一句也重要,如果没有,调出此武器时会死机)
038B: load_requested_models& & 加载相应的一切需要的模型(这个主要是开***时的火花、人死时的尸体、血迹等)&&
:KILLER_107& && && && && && &&&循环107
if and& && && && && && && && & 如果(if and表示下面条件全都要满足,不然不会启动后续的方案)
& &Model.Available(#DWMOLC2)& &DWMOLC2这个人物模型可用
& &Model.Available(#HEATSEEK)&&跟踪式火箭筒HEATSEEK的模型可用
else_jump @KILLER_107& && && & 如果上述条件不满足,就跳回到循环107(就是重新开始这一段)
04C4: store_coords_to 3@ 4@ 5@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0& &把从CJ偏移0.0 0.0 0.0的坐标位置储存为3@ 4@ 5@
0@ = Actor.Create(Gang1, #DWMOLC2, -2815.76, -0.84)& &在-2815.76, -0.84这个点上创建一个人物DWMOLC2,并把他定义为0@,Gang1可能表示敌人吧(刷小弟的好像是Gang2,我没记,刷敌人的CLEO我都是从刷敌人CLEO来改的,刷小弟的就是用刷小弟CLEO改的,这个Gang1从来没动过)
01B2: give_actor 0@ weapon 36 ammo 9999 // Load the weapon model before using this& & 给人物0@一把弹药数9999的36号武器(36号武器就是跟踪式火箭筒),两个斜杠后面的内容是作者的注释,编译时自动忽略掉,只是方便自己看程序之用
081A: set_actor 0@ weapon_skill_to 0& && && & 把人物0@的武器技能设置为0(可能匪徒级别和杀手级别是1和2吧)
Actor.Angle(0@) = 90.0& && && && && && && && &人物0@的方位角是90度(90就是朝西)
Actor.Health(0@) = 6000& && && && && && && &&&人物0@的生命值是6000(这一句可以用来改生命值)
Actor.Armour(0@) = 4000& && && && && && && &&&人物0@的防弹衣是4000(这一句可以用来改防弹衣)
0446: set_actor 0@ immune_to_headshots 1& && &人物0@对爆头免疫(数字1表示肯定,改成0就是否定,对爆头不免疫)
04D8: set_actor 0@ drowns_in_water 1& && && & 人物0@下水不死(0和1分别表示淹死和不淹死)
:KILLER_237& && && && && && && && && && && && &&&循环237
wait 0& && && && && && && && && && && && && && & 等待0毫秒
05E2: AS_actor 0@ kill_actor $PLAYER_ACTOR& && & 让人物0@追着CJ打
if& && && && && && && && && && && && && && && &&&如果
84AD:& ¬ actor 0@ in_water& && && && && && &&&人物0@没有落水
else_jump @KILLER_307& && && && && && && && && & 如果不满足上述条件,就跳到循环307(循环307在下面)
if& && && && && && && && && && && && && && && &&&如果
& ¬ Actor.Dead(0@)& && && && && && && && && & 人物0@没有死
else_jump @KILLER_288& && && && && && && && && & 如果不满足就跳到循环288(也在下面)
jump @KILLER_237& && && && && && && && && && && &如果全都满足了,跳到循环237,继续
:KILLER_288& && && && && && && && && && && && &&&循环288
Actor.RemoveReferences(0@)& && && && && && && &&&把人物0@拿走(也就是消失)
wait 60000& && && && && && && && && && && && && &等待60000毫秒
jump @KILLER_11& && && && && && && && && && && & 跳转到循环11
:KILLER_307& && && && && && && && && && && && &&&循环307
0A28: set_actor 0@ swimming_speed_to 2.3& && && &人物0@游泳速度为2.3
07E1: AS_actor 0@ swim_to 3@ 4@ 5@& && && && && &让人物0@朝着3@ 4@ 5@这一点游(这个点在前面定义过了,就是CJ当前位置)
jump @KILLER_237& && && && && && && && && && && &跳到循环237
凡是刷出人物的CLEO一般都会有这样的句子:
Actor.Health(0@) = 6000& && && && && && &
Actor.Armour(0@) = 4000&&
Health是生命值,Armour是防弹衣,最大值是1E38(这个表示1乘以10的38次方)
如果是车的话,会是这样的语句:
Car.Health(0@) = 1500& & 只是把Actor变成了Car
把数字改得再大也只是说明人或车的血很多,从严格意义上来讲并不是无敌,想无敌怎么办?
在核污染畸形人(或叫巫师CLEO)的Samara.cs里面有这样的语句:
Actor.SetImmunities(6@, 1, 1, 1, 0, 1)
Immunitites是免疫能力,Set是设置,Actor是人物,6@是人物的代号(肯定是人物在创建时被定义为6@),后面的五个数字表示防弹、防火、防爆、防撞、防砸,0表示否定,1表示肯定,所以 &1,1,1,0,1&就表示除了怕车撞,其它什么都不怕,有些网上对这个CLEO的说明就有这么一句:看到之后不要去打,最好开车撞,因为他根本就打不死。
防弹就是不怕***、防火就是不怕烧、防爆就是不怕炸、防撞就是不怕车撞、防砸就是用肉搏类武器打不死。
想让车无敌,仅仅把血弄得很多是不行的,血再多也只能保证永远不爆,但撞了会坏、变形。
造无敌车的语句和人无敌的格式一样:
Car.SetImmunities(6@, 1, 1, 1, 1, 1)
如果想让CLEO刷出的车无敌,就在有关车辆定义的段落里插上这一句。
车辆被创建后会有一大段限制语句紧挨着:
有些会设置方位角:
Car.Angle(0@) = 90.0(可以不要,系统将默认朝北)
门锁是开着的:
Car.DoorStatus(0@) = 0(可以不要,系统将默认锁门)
创建的车辆都会有这样的句子:
0@ = Car.Create(#DODO, 1@, 2@, 3@)& && && &在某点创建一个车,定义为0@
想让车无敌就在这一行下面粘上这一行:
Car.SetImmunities(0@, 1, 1, 1, 1, 1)
如果车不是创建的而是CJ所开的车,怎么弄成无敌呢?
CJ所开的车在前面也会有个定义,弹射CLEO里就有这样的句子:
03C0: 1@ = actor $PLAYER_ACTOR car& && &&&把CJ所开的车定义为1@
车辆一键无敌CLEO就是这样改出来的。
车辆、人物、物品的格式都是一样的,车是Car,人物是Actor,物品是Object,创建物品是这样:
0@ = Object.Create(1219, 1@, 2@, 3@)& & (这是搭天梯CLEO里的,1219是木板的ID代码)
CLEO常用语句集锦(这些语句都可以改,包含数值的改了数值就成新的CLEO了,包含车名的可以改车名,包含人物的改人名,包含物品ID的就改ID)
这些全都不用记,只要会复制粘贴就行。
首先,每个CLEO都有一个启动条件,格式是这样:
if& && && && && && && && && && && &
& &Player.Defined($PLAYER_CHAR)& &
else_jump @ARMRHINO_12& && && && &
如果CJ被定义了(游戏开始了)就继续下面的程序,要不然就跳到循环12(12肯定是开头那个数字)
这个启动条件是说如果游戏开始了就怎么怎么样,要不然就跳转回去,这个完全是废话,有些CLEO里就没有这个。下面这些句子都可以用作CLEO的启动条件(如果&&就如何如何),格式就是上面所说的那种if语句,替换playerdefine那一行:
& &Player.Controllable($PLAYER_CHAR)& && && && && && &CJ可操控(没落水,没穿火箭飞行器,也不是下降状态)
0965:& &actor $PLAYER_ACTOR swimming& && && && && && &CJ在游泳
0449:& &actor $PLAYER_ACTOR in_a_car& && && && && && &CJ处于驾驶状态
04A9:& &actor $PLAYER_ACTOR driving_heli& && && && &&&CJ开直升机
04C8:& &actor $PLAYER_ACTOR driving_flying_vehicle& & CJ开双翼飞机
047A:& &actor $PLAYER_ACTOR driving_bike& && && && &&&CJ开摩托车、自行车
04A7:& &actor $PLAYER_ACTOR driving_boat& && && && &&&CJ开船
09AE:& &actor $PLAYER_ACTOR driving_train& && && && & CJ开火车
& &Actor.DrivingVehicleType($PLAYER_ACTOR, #HYDRA)& & CJ开的是hydra(这样的只要把车名一改就变成在别的车上启动了)
& &Actor.Driving($PLAYER_ACTOR)& && && && && && && &&&CJ处于驾驶状态
& &Actor.DrivingPlane($PLAYER_ACTOR)& && && && && && &CJ开双翼飞机
0AB0:& &key_pressed 36& && && && && && && && && && &&&按下Home键(把数字一改就改成按别的键启动了)
00FE:& &actor $PLAYER_ACTOR sphere 0 in_sphere 75.745 13.3359 radius 100.0 50.0 25.0& &CJ接近,-.3359这个坐标位置横向100米、纵向50米、垂向25米的范围内
00EC:& &actor $PLAYER_ACTOR 0 near_point 6.59 radius 150.0 150.0&&这个是二维的,意思和上面的一样,只是不限Z坐标
& &Actor.Dead(1@)& && && && && && && && && && && && & 人物1@死了&&
& &Model.Available(#MINIGUN)& && && && && && && && &&&武器模型MINIGUN可用
& &Model.Available(#TAXI)& && && && && && && && && &&&车辆模型TAXI可用
& &Model.Available(#ARMY)& && && && && && && && && &&&人物模型ARMY可用
& &Model.Available(1219)& && && && && && && && && && &物品模型1219可用
8965:& ¬ actor $PLAYER_ACTOR swimming& && && && && && &CJ没有游泳
8449:& ¬ actor $PLAYER_ACTOR in_a_car& && && && && && &CJ没开车
84A9:& ¬ actor $PLAYER_ACTOR driving_heli& && && && &&&CJ没开直升机
84C8:& ¬ actor $PLAYER_ACTOR driving_flying_vehicle& & CJ没开双翼飞机
847A:& ¬ actor $PLAYER_ACTOR driving_bike& && && && &&&CJ没开摩托车、自行车
84A7:& ¬ actor $PLAYER_ACTOR driving_boat& && && && &&&CJ没开船
89AE:& ¬ actor $PLAYER_ACTOR driving_train& && && && & CJ没开火车
& ¬ Actor.DrivingVehicleType($PLAYER_ACTOR, #HYDRA)& & CJ开的不是hydra(这样的只要把车名一改就变成在别的车上启动了)
& ¬ Actor.Driving($PLAYER_ACTOR)& && && && && && & CJ没开车
& ¬ Actor.DrivingPlane($PLAYER_ACTOR)& && && && &&&CJ没开双翼飞机
8AB0:& ¬ key_pressed 36& && && && && && && && && && &&&没按Home键
& ¬ Actor.Dead(1@)& && && && && && && && && && && && &&&人物1@没死& &
& &Player.WantedLevel($PLAYER_CHAR) & 5& && && && && &警星数大于5& && && && && && && &
当有两句或两句以上并列的条件时,若需要全部条件都满足(如果&&并且&&并且&&),就要用if and 语句,若只需满足其中的一个条件(如果&&或&&或&&),要用if or 语句。
上面全都是很显著的条件类语句,有时候条件类和结果类的没有明显界限,比如警星数的设置就既可以作条件(如果警星达到6就如何如何),又可以作为结果(如果怎么怎么样就把警星调整为6),下面就直接列出句子:
Model.Load(#WMYBMX)& && &&&加载人物WMYBMX的模型(data\ped.ide里有各种人物的名称,下面每行第二项,或者用NPC查看器)
Model.Load(#M4)& && && && &加载武器M4的模型(data\weapon.dat里有各种武器的名称,武器栏每行第一项)
Model.Load(#TAXI)& && && & 加载车辆TAXI的模型(这个很容易对应起来,凡是用过刷车工具的应该很熟悉吧)
Model.Load(1219)& && && &&&加载物品1219的模型(1219对应的是木板,ID和物品的形状可以用超级刷物CLEO来找,地图编辑器也可以)
038B: load_requested_models 加载一切需要的模型(不包括上面几种模型,主要指开***时的火焰及烟雾、尸体、血迹等)
Player.WantedLevel($PLAYER_CHAR) = 1 警星数是1(数字为0~6这七个整数)
0407: store_coords_to 9@ 10@ 11@ from_car 0@ with_offset -4.8 50.0 -1.0&&把从车辆0@偏移-4.8 50.0 -1.0的位置坐标值储存为9@ 10@ 11@(X正表示左、负表示右,Y正表示前、负表示后,Z正表示上、负表示下)
set_weather 9& && && && & 把天气设置为9(9是一个天气代码,哪个数字对应哪种天气我没注意,在天气控制器的cs文件打开会看到)
04C4: store_coords_to 7@ 8@ 9@ from_actor $PLAYER_ACTOR with_offset 0.0 0.0 0.0 把从CJ偏移0.0 0.0 0.0的位置坐标值储存为7@ 8@ 9@(X正表示左、负表示右,Y正表示前、负表示后,Z正表示上、负表示下)
02CE: 12@ = ground_z_at 17@
热门文章排行榜