跑跑車首頁

當前位置:首頁補丁工具游戲工具 → 圣安地列斯cleo編輯器(Sanny Builder) v3.04漢化版

圣安地列斯cleo編輯器(Sanny Builder)v3.04漢化版

補丁大。4.2M 補丁語言:簡體

補丁類型:游戲工具 更新時間:2023/7/28

補丁版本:v3.04漢化版

補丁標簽:

圣安地列斯cleo編輯器3.14漢化中文版,這個俠盜獵車圣安地列斯的cleo編輯器是很強大的一個工具(下面有很詳細的說明),跑跑車為您提供的是csol編輯器Sanny Builder v3.14的版本,同時為您整合了簡繁的漢化補丁。

安裝方法

下載完成后先解壓縮,打開“CLEO編輯器”文件夾,運行“SannyBuilder-v3.04.exe”安裝好

再點開“Sanny Builder 漢化補丁”這個文件夾,里面有一個簡體,一個繁體2種語言,下面是使用方法:
將簡體、繁體文件夾,復制到X:\Sanny Builder 3\lang 下
打開軟件->菜單欄->找TOOLS(工具) 下->Options(設置) 選項->Language (語言) 選擇->簡體/繁體,即可。

cleo編輯器界面 cleo編輯器簡、繁體效果展示

使用說明

下面是cleo的使用方法的簡單介紹,文字很多,下載包內有詳細的說明

怎么讓CLEO橫向發(fā)展,舉幾個例子就知道了:

1、先舉一個最簡單的:你想在四龍賭場門前停一輛NRG500摩托車,每次打開存檔都能看到它,怎么實現(xiàn)呢?

有一個“軍警車輛”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 -2141.971 -102.694 36.419 angle 270.0
這是計算機語言,翻譯成人話就是:在(-2141.971,-102.694,36.419)這個點上產(chǎn)生一輛警笛關閉的默認顏色的車頭朝東的沒鎖門的運兵車。

“BARRACKS”是車名,想增加哪個車停放點就改成相應車名,改成NRG500就變成停放NRG500摩托了。在刷車工具里有各種車輛的中英文名稱和圖片的對照。
“color -1 -1 1”表示車的顏色,這個如果不會改就不要改。
“alarm 0”表示報警器關閉,不知道有什么用。
“door_lock 0”表示沒鎖門,也不要改。
10000可能是生命值吧,沒改過。
“at”后面的三個數(shù)字就是車輛停放點的坐標,先跑到四龍賭場門前測一下坐標然后把坐標值改一下,這樣就在四龍賭場增加了NRG500停車點。GTASA瘋狂作弊器能測坐標。Z坐標不要直接套用,采用“進一法”,要比站著的坐標高出0.5米左右,不要讓車輪鉆地下去了。
“angle”后面的數(shù)字是車頭方向,數(shù)值在0~359.9999度之間,正北為0度,正西為90度,正南為180度,正東為270度,就這樣轉。

改完了不要點保存,那只是保存為一個txt文檔,要按F6編譯,這就保存到cs文件里了。
在四龍賭場門前就增加了一個NRG500摩托車的停放點了。

上面說的只是純修改的方法,若想在原有的cs文件的基礎上再增加一輛車,那就不僅要把這一行復制了排到后面,還要把它后面緊跟的這一行:014C: set_parked_car_generator $PC006 cars_to_generate_to 101
也復制到后面去,因為所有車都是兩行,需要修改的是只是第一行。自己想加車就要和上面的格式統(tǒng)一。
不行的話,那就試試看“比賽隨意選車”里面的ZAZ_PICKUP_SAVE.cs(這個也有增車的功能),普通車輛和警車的格式好像不太一樣,上面舉的例子只是一個大致的思路,我自己并不是按照軍警車輛來改的,我是用比賽隨意選車那個改出來的,在黑白旗的地方弄些車,正好可以玩各種比賽。
增車的cs文件有很多,“新增停車點”里面就有N多、“老家有裝備”這里面也有停車點、“汽車展廳增車”等等這些都有增加刷車點的功能,皆可拿來參考,放一起比較就知道該怎么增車了。

改了cs文件之后并非當場生效,要重新打開存檔。還有一點要特別注意:一定要用原生態(tài)的存檔(沒有使用過CLEO補丁的),用CLEO保存過的存檔可能看不到修改cs文件的效果,包括下面這些修改。

2、你想在沙漠機場的空地上增加一些武器,怎么實現(xiàn)呢?

有一個“老家有裝備”CLEO(感謝jiangao0627提供的這個CLEO),在MoreWeapons.cs文件里面有一大段這樣的語句:
032B: $3139 = create_weapon_pickup #AK47 group 15 ammo 9999 at 2483.6 -1689.0 13.5
這個翻譯成人話就是:在(2483.6,-1689.0,13.5)這個點上增加一個子彈數(shù)為9999的AK47沖鋒槍的拾取點。
其中肉搏類的武器沒有子彈數(shù),格式不太一樣,往下拉可以看到關于武士刀的語句:
$3212 = Pickup.Create(#KATANA, 15, 2476.8, -1701.0, 13.5)
KATANA就是武士刀,15不知道干什么的,后面的三個數(shù)字是坐標;ǘ洹⒄袷幤鬟@些跟肉搏類武器的格式一樣。

各種裝備的名稱在data文件夾里的weapon.dat里就有,武器欄每行第一項就是,肉搏類的武器在melee.dat里。

跑到沙漠機場測一下坐標填到里面去,再把槍名改了,按F6就好了,以后在沙漠機場都能看到這個武器了。

3、有些CLEO你覺得按鍵不方便,想把按鍵改了,怎么做?

先把按鍵的編碼發(fā)上來吧

凡是看到這樣的語句“key_pressed”,后面所跟的數(shù)字就是按鍵(一般都用的是十進制的編碼)

①、固定按鍵(每一行的第一個表示按鍵名稱,第二個是鍵盤的十進制編碼,第三個是十六進制編碼)

鼠標左鍵 1 1
鼠標右鍵 2 2
鼠標中鍵 4 4
退格鍵 8 8
Tab 9 9
回車鍵 13 D
Shift (兩邊一樣) 16 10
Ctrl (兩邊一樣) 17 11
Alt (兩邊一樣) 18 12
Pause 19 13
Caps Lock 20 14
Esc 27 1B
空格鍵 32 20
Page Up 33 21
Page Down 34 22
End 35 23
Home 36 24
方向鍵左 37 25
方向鍵上 38 26
方向鍵右 39 27
方向鍵下 40 28
Insert 45 2D
Delete 46 2E

0 48 30
1 49 31
2 50 32
3 51 33
4 52 34
5 53 35
6 54 36
7 55 37
8 56 38
9 57 39

A 65 41
B 66 42
C 67 43
D 68 44
E 69 45
F 70 46
G 71 47
H 72 48
I 73 49
J 74 4A
K 75 4B
L 76 4C
M 77 4D
N 78 4E
O 79 4F
P 80 50
Q 81 51
R 82 52
S 83 53
T 84 54
U 85 55
V 86 56
W 87 57
X 88 58
Y 89 59
Z 90 5A
左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

F1 112 70
F2 113 71
F3 114 72
F4 115 73
F5 116 74
F6 117 75
F7 118 76
F8 119 77
F9 120 78
F10 121 79
F11 122 7A(一般別用,這鍵是中英文切換)
F12 123 7B
Num Lock 144 90
Scroll Lock 145 91

; 186 BA
= 187 BB
, 188 BC
- 189 BD
. 190 BE
/ 191 BF
` 192 C0
[ 219 DB
\ 220 DC
] 221 DD
' 222 DE

②、游戲中的功能鍵

1、步行時

0 向左、向右
1 向前、向后
2 Q、E
3 未知
4 行動(接電話、買房)
5 鼠標滾輪向上
6 武器瞄準
7 鼠標滾輪向下
8 團隊控制前進
9 團隊控制后退
10 否定回答
11 肯定回答
12 不存在此編碼
13 走靜步
14 跳躍
15 開車
16 快跑
17 開槍、搏斗
18 蹲下
19 向后看

開車時:

0 左轉、右轉
1 前進
2 特殊控制左、右
3 特殊控制上、下
4 次級武器
5 開車向左看
6 手動剎車
7 開車向右看
8 下一個電臺
9 上一個電臺
10 否定回答
11 肯定回答
12 不存在此編碼
13 切換視角
14 倒車
15 跳車
16 未知
17 主武器
18 喇叭
19 次級任務

比如你覺得“隨時隨地改車”的快捷鍵是T,和汽車轉向燈CLEO有沖突,想改,怎么辦?
打開transfender.cs,有這一句:
0AB0: key_pressed 84
凡是看到key_pressed,后面跟的數(shù)字就是鍵盤編碼,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)
而導彈補丁是按退格鍵發(fā)導彈,它的編碼是:
if
0AB0: key_pressed 8 (8就是退格鍵)

在車上用的CLEO,按鍵格式是player 0 pressed_key 11(11要和開車時的功能鍵對應),徒步使用的好像也是這種格式,規(guī)律我沒記,但全都是key和press連在一起后面跟個數(shù)字。若都是車輛CLEO或步行CLEO,把按鍵代碼一改就行了,要想把CLEO從“車上用”轉換成“走路用”,改按鍵時可從同類CLEO復制過來改。
固定按鍵就是說不管游戲中鍵盤怎么設置,CLEO的按鍵都不變,編輯CLEO時用如果用的是第二大類(游戲中的功能鍵)那就會隨著鍵盤設置而變化。固定按鍵對于開車或走路都是通用的。
如果想把某項功能“如果按什么鍵就如何”給去掉而又不知道該刪哪一段,就把按鍵改成五百多(一個不存在的鍵),這項功能就被去掉了,因為根本不可能按到那個鍵。

4、有個“武裝越野車”CLEO,開一輛沙灘越野車BF Inject時配備一把隱形的機槍。如果你開別的車也想有隱形機槍怎么做呢?
“按K武裝汽車”就不必說了,武器不是隱形,有些制作精美的MOD裝了武器就不好看了,裝個隱形的最理想了。
把武裝越野車的cs文件打開,有這么一句:
Actor.DrivingVehicleType($PLAYER_ACTOR, #BFINJECT)
不用去琢磨怎么把車加上機槍,只要看到BFINJECT那就知道這一句的意思肯定是限制車型,要怎么改那就很明顯了。
每輛的車的高度不一樣,想改變子彈發(fā)射的位置怎么辦呢?
往下拉有這么一段:
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,進游戲一看,子彈仍然是從右邊射出的,而發(fā)射時所噴的火焰卻在車的正中間,這樣就知道后面那個offset是火焰的位置,前面那個肯定就是子彈的位置,試著改了下,果然是。
這些都是自己琢磨的,沒有統(tǒng)一的固定模式。自己多改改就知道了。

凡是包含車名的CLEO都能以一當百。

5、大家想必都見過這個MOD:尾翼能升降的布加迪威龍,我所發(fā)的“尾翼升降”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后面的三個數(shù)字的含義和上面的武裝越野車一樣,該改成多少,要由車的形狀而定,先改一下進游戲看看,不行再調整,這個不太可能一次就成功的。
rotation后面的三個數(shù)字分別表示對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
wait 100
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
wait 100
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毫秒后”,這個數(shù)字改小了那么尾翼升的速度就快了。
這一段的最后一句就是完全升起時所在位置,如果改了尾翼的位置,那么這一大段的坐標也要跟著平移過來。

在“0AB0: key_pressed 75”的后面還有一大段這種語句不斷重復,這個表示按K收回尾翼。最后一句是完全降下時所在位置,和尾翼的初始位置要盡可能一致,就算不一致也要接近,免得畫面不連續(xù)。

6、想在雷達圖上增加一個圖標,怎么做?
在“比賽隨意選車”CLEO里,秋名山山頂也有比賽點,但是雷達圖上卻只顯示在山腳下的游樂場有黑白旗任務點。
這個CLEO有個功能:在洛杉磯西南游樂場新增一個汽車錦標賽,既然有這個功能那么cs文件中必然會有描述。打開Race_and_Tuning_Starter.cs之后看到有這么一句:
0570: 1@ = create_asset_radar_marker_with_icon 53 at -1643.1 1288.6 7.1
如果有一定英語基礎,一見radar就知道這是雷達,marker是標記,icon是圖標,那么增加任務點的圖標肯定就是這一句了,跑不了了。
icon 53肯定就是說黑白旗任務標志的編號是53(骷髏點的編號可參考“黑手黨任務”,問號點可參考“黑社會任務”,其它就不知道了)。
飛到秋名山頂走進紅圈測得坐標是-20.69,-2430.016,324.256
那這就好辦了,把原來那一句復制一下緊跟著它粘貼到下一行,坐標一改。進游戲果然在秋名山頂?shù)牡胤嚼走_圖上顯示有個汽車錦標賽。

至于如何在某地增加一個存檔點方法也類似,“比賽隨意選車”CLEO里有一個ZAZ_PICKUP_SAVE.cs,它能增加存檔點,可參考此文件。
這只是增加圖標的方法,如果想在地圖上增加一個紅圈圈的話,可以看看這個:直線賽道。它在地圖上增了個任務點。新版收費站CLEO就是這樣弄出來的,按此方法在收費站里加了四個紅圈。

7、你想在做了某一件事之后增加個警星,怎么辦?
可參考“可怕襲擊”,有這一句:爆炸過后得到六星通緝
既然有此功能那么cs文件里肯定就有增加警星的語句。
如果知道wantedlevle就是警星,那就很容易找了,這一句就是增加警星的:
Player.WantedLevel($PLAYER_CHAR) = 6

“警星調整”CLEO就是根據(jù)“時鐘控制”的CLEO改出來的,把設置時間的語句改成警星,按鍵再一改就行了。(警星調整CLEO已更新,現(xiàn)在用的不是下面這種循環(huán)方式了,不過下面這一段仍然可以說明問題)

改這類CLEO(如果按××就……,如果按××就……,幾個并列),還有一個很重要的問題:循環(huán)封閉。

前面是計算機語言,后面是翻譯的人話

:NONAME_2 循環(huán)2(只是個編號,改成幾都行)
wait 0 等待0秒
if and 如果(if and 是指下面的條件全都要滿足才會啟動后續(xù)的內容)
0AB0: key_pressed 46 按下Delete
0AB0: key_pressed 48 按下0
jf @NONAME_39 要不然就直接跳轉到循環(huán)39
Player.WantedLevel($PLAYER_CHAR) = 0 那么警星數(shù)是0 (接住if語句)
jump @NONAME_39 跳轉到循環(huán)39

:NONAME_39 循環(huán)39
wait 0 等待0秒
if and 如果
0AB0: key_pressed 46 按下Delete
0AB0: key_pressed 49 按下1
jf @NONAME_76 要不然就直接跳轉到循環(huán)76
Player.WantedLevel($PLAYER_CHAR) = 1 那么警星數(shù)是1
jump @NONAME_76 跳轉到循環(huán)76

接下來的“循環(huán)76”,就是關于設置二星級的語句了,如此循環(huán),最后六星級的完了之后一定要跳轉到開頭,不然按F6肯定會出現(xiàn)錯誤,編譯不了。
六星級的那一段:

:NONAME_224 循環(huán)224
wait 0 等待0毫秒
if and 如果
0AB0: key_pressed 46 按下Delete
0AB0: key_pressed 54 按下6
jf @NONAME_2 要不然就直接跳轉到循環(huán)2
Player.WantedLevel($PLAYER_CHAR) = 6 那么警星變?yōu)?
jump @NONAME_2 跳轉到循環(huán)2

最后跳轉到了循環(huán)2,這就沒有語法問題了。什么都不按的話這樣循環(huán)一圈之后又回到出發(fā)點了,也就是游戲里沒有發(fā)生任何變化。
每一段循環(huán)都是@加一串字母開頭,這是因為一開始在main這一行下面有個thread '×××',循環(huán)語句都要和此名稱保持一致,不然編譯不了,如果沒有就默認為@NONAME。

8、有些CLEO你想改里面刷出的人物和他的武器,怎么實現(xiàn)?
先把武器的代碼和名稱發(fā)上來吧:

武器代號 中文名稱 dff和txd文件名
0 拳頭
1 指節(jié)套環(huán) 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 連發(fā)散彈槍 shotgspa
28 Micro SMG微型沖鋒槍[UZI(烏茲)] 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

呼叫軍人小弟CLEO是改的呼叫警察小弟。
呼叫警察小弟,叫的警察是拿的沙漠之鷹手槍,在cs文件里用查找替換命令把desert_eagle全替換成minigun,改了槍的名稱之后不要忘了改這句:
01B2: give_actor 11@ weapon 24 ammo 9999 // Load the weapon model before using this
給某人24號武器,彈藥數(shù)9999,要把weapon 24(這指的是24號武器沙漠之鷹)替換成weapon 38
這樣武器就改好了,剩下的就是把警車改悍馬、警察改軍人了。改車的方法在前面已經(jīng)列舉過,那就只剩改人了,人物的名稱在data文件夾下的ped.ide里有,每行數(shù)字后第一項就是,由于不是所有的人物我都能把模樣和名稱對應起來,所以這個不好弄。不過只要下載過軍隊MOD那肯定就知道軍人叫army,在ped.ide的最后面單獨列出了警察、軍人,所以cs文件里一看LAPD1就知道是警察,于是就把LAPD1替換為army,這就改成了呼叫軍人拿著轉輪機槍開著悍馬過來了。

9、有些CLEO限制了車型,如果想改成很多車都能用,怎么辦?
飛機特技CLEO,開鷂式戰(zhàn)斗機按X放煙,如果想開別的飛機也放煙,復制幾份cs文件然后全都改車名再把幾個文件合用也行,不過有個更節(jié)省資源的方法:
打開之后有這一句:
if
Actor.DrivingVehicleType($PLAYER_ACTOR, #HYDRA)
它的意思是“如果開鷂式戰(zhàn)機”(下文肯定就是關于放煙的了)
如果改成開運輸機也能放煙,那就是幾個條件選一個了,要用if or語句,if or 和if and 正好相反,if and是幾個條件同時成立,if or的意思是“如果……,或……”
把這句改成
if or
Actor.DrivingVehicleType($PLAYER_ACTOR, #HYDRA)
Actor.DrivingVehicleType($PLAYER_ACTOR, #adrom)
這就成了“如果開鷂式戰(zhàn)機或開運輸機”
那么這樣就改成了。
if or 這種語句有限制,最多九個條件并列,但是如果想改成開任何飛機都能放煙,怎么辦?游戲里的飛機可不止九種,省事的辦法就是復制cs文件,再設定九種交通工具然后合用。但這個也有更節(jié)省資源的方法:
在武裝飛機CLEO里有限制CJ開飛機的語句,把它搬過來:
04C8: actor $PLAYER_ACTOR driving_flying_vehicle
用這一句替換限定鷂式戰(zhàn)斗機那一句,這樣一改,就變成了“如果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一開始只能在鷂式戰(zhàn)斗機上用,我就是用此方法把地獄導彈改成了無論什么飛機都能用,比飛機投彈補丁要好得多。
曾經(jīng)有人發(fā)了個汽車煙霧CLEO,有好多個cs文件,每個文件都對應一種車,里面都有這句:“如果CJ開××車”(就按哪個鍵放煙),
用if or語句就可以將它們合并成一個文件,“如果CJ開××車,或××車,或××車……”,這樣就合并了。

10、有些CLEO一進游戲就啟動或者一開車就啟動,如果想改成按一個鍵來啟動,怎么改?
武裝飛機CLEO一上飛機就啟動,如果想改成在飛機上按個鍵啟動,怎么辦?
一開頭是這樣:
:AFW_12 循環(huán)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:
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開始活動(就如何如何),要不然就跳轉回去
改成
if and
Player.Defined($PLAYER_CHAR)
0AB0: key_pressed 36
else_jump @AFW_12 (這個名稱不一定是AFW,數(shù)字也不一定是12,要看開頭是什么,總之這個是要跳到開頭的)
這就改成了進游戲按End鍵來啟動了。
要是沒找到Player.Defined這樣的句子,就自己添一個key pressed句子,用if(不是if and了),效果一樣的。
如果把按鍵盤的句子改成限制開車的句子那么就把一個CLEO從按鍵啟動改成了開車啟動了。
相應的語句都能在別的CLEO中找出來,復制粘貼就可以了。
有些CLEO是以警星數(shù)來啟動的,超級六星通緝:如果CJ達到六星通緝,就%$&%^%^$%$#%%&^&%^$
這個CLEO里就有這樣的句子:
if 如果
Player.WantedLevel($PLAYER_CHAR) > 5 通緝度大于5顆星
else_jump @LV6_2503 不然就跳轉到循環(huán)2503
想要哪個功能的語句,就先想想哪個CLEO有這個功能,那就去里面找,肯定能找得到。都可以改成各種各樣的啟動方式,也沒有一個固定模式。常見的啟動方式除了游戲一開始就啟動、按鍵啟動、開車啟動(以及它們的任意組合)之外,還有這些:

如果CJ接近某點就如何 (參見骷髏士兵CLEO)
if
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere -1317.184 2525.606 87.5162 radius 50.0 50.0 50.0
jf @SKELETON_THREAD_19 sphere是球,后面三個數(shù)字是球心坐標,radius后面三個數(shù)分別是X、Y、Z方向的半徑

如果時間達到幾點就如何 ( 骷髏士兵CLEO里也有這個)
if and 如果
00BF: 29@ = current_time_hours, 30@ = current_time_minutes 這是定義29@和30@,29@是小時,30@是分鐘
29@ >= 2 小時數(shù)大于或等于2
20 > 29@ 20大于小時數(shù)(這兩句就是說在晚上8點和凌晨2點之間)
jf @SKELETON_THREAD_145 要不然就跳轉到循環(huán)145

凡是具有限定作用的句子都可用來作為CLEO的啟動條件,像閃電球CLEO,就有“如果CJ拿著SMG按右鍵,再按中鍵”。這種有很多,舉都舉不完,要自己慢慢去發(fā)現(xiàn)。那個烈火戰(zhàn)車以前只是騎摩托能冒火,我就是用這種方法把它改成了任何交通工具都冒火。

11、有些CLEO刷出來的敵人太厲害了,想把他改得笨一點,或者想把某些CLEO中刷的小弟或車改成無敵,怎么改?
由于人物和車輛的定義都是一大段,所以如果把某個句子單獨挑出來的話不好作說明,下面以一個具體的例子來說明,殺手補。ㄇ晟秸障嗟男∧疚堇镉袣⑹帜莻)的cs程序全文及翻譯如下:
// This file was decompiled using sascm.ini published by Seemann (http://sannybuilder.com/files/SASCM.rar) on 13.10.2007

{$VERSION 3.1.0027}
{$CLEO .cs}

//-------------MAIN--------------- 這一行以及它之前的部分是限定此文件編譯出來之后它的后綴名為.cs,這個不要改
thread 'KILLER' 這一行是定義名稱,下面每段都要以此名稱開頭,這一行不要也沒關系,名稱會默認為NONAME

:KILLER_11 循環(huán)11
wait 0 等待0毫秒
00BF: 20@ = current_time_hours, 21@ = current_time_minutes 定義20@為當前的小時數(shù)、21@為當前的分鐘數(shù)
if or 如果(if or表示下列條件只要滿足一個就啟動后續(xù)的方案)
20@ > 23 小時數(shù)大于23(也就是過了晚上11點鐘)
not 20@ >= 5 小時數(shù)不大于5(也就是早上5點鐘之前)
else_jump @KILLER_11 如果上述條件不滿足,就跳回開頭去(也就是不在這個時段就不會啟動后續(xù)的方案)
if 如果
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沒有接近這個點就不會啟動后續(xù)的方案)
Model.Load(#DWMOLC2) 加載DWMOLC2這個人物模型(這一句至關重要,如果沒有,調出此人物時會死機)
Model.Load(#HEATSEEK) 加載跟蹤式火箭筒HEATSEEK的模型(這一句也重要,如果沒有,調出此武器時會死機)
038B: load_requested_models 加載相應的一切需要的模型(這個主要是開槍時的火花、人死時的尸體、血跡等)

:KILLER_107 循環(huán)107
if and 如果(if and表示下面條件全都要滿足,不然不會啟動后續(xù)的方案)
Model.Available(#DWMOLC2) DWMOLC2這個人物模型可用
Model.Available(#HEATSEEK) 跟蹤式火箭筒HEATSEEK的模型可用
else_jump @KILLER_107 如果上述條件不滿足,就跳回到循環(huán)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, -1523.98, 140.84) 在-2815.76, -1523.98, 140.84這個點上創(chuàng)建一個人物DWMOLC2,并把他定義為0@,Gang1可能表示敵人吧(刷小弟的好像是Gang2,我沒記,刷敵人的CLEO我都是從刷敵人CLEO來改的,刷小弟的就是用刷小弟CLEO改的,這個Gang1從來沒動過)
01B2: give_actor 0@ weapon 36 ammo 9999 // Load the weapon model before using this 給人物0@一把彈藥數(shù)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@對爆頭免疫(數(shù)字1表示肯定,改成0就是否定,對爆頭不免疫)
04D8: set_actor 0@ drowns_in_water 1 人物0@下水不死(0和1分別表示淹死和不淹死)

:KILLER_237 循環(huán)237
wait 0 等待0毫秒
05E2: AS_actor 0@ kill_actor $PLAYER_ACTOR 讓人物0@追著CJ打
if 如果
84AD: not actor 0@ in_water 人物0@沒有落水
else_jump @KILLER_307 如果不滿足上述條件,就跳到循環(huán)307(循環(huán)307在下面)
if 如果
not Actor.Dead(0@) 人物0@沒有死
else_jump @KILLER_288 如果不滿足就跳到循環(huán)288(也在下面)
jump @KILLER_237 如果全都滿足了,跳到循環(huán)237,繼續(xù)

:KILLER_288 循環(huán)288
Actor.RemoveReferences(0@) 把人物0@拿走(也就是消失)
wait 60000 等待60000毫秒
jump @KILLER_11 跳轉到循環(huán)11

:KILLER_307 循環(huán)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 跳到循環(huán)237

凡是刷出人物的CLEO一般都會有這樣的句子:
Actor.Health(0@) = 6000
Actor.Armour(0@) = 4000
Health是生命值,Armour是防彈衣,最大值是1E38(這個表示1乘以10的38次方)
如果是車的話,會是這樣的語句:
Car.Health(0@) = 1500 只是把Actor變成了Car
把數(shù)字改得再大也只是說明人或車的血很多,從嚴格意義上來講并不是無敵,想無敵怎么辦?
在核污染畸形人(或叫巫師CLEO)的Samara.cs里面有這樣的語句:
Actor.SetImmunities(6@, 1, 1, 1, 0, 1)
Immunitites是免疫能力,Set是設置,Actor是人物,6@是人物的代號(肯定是人物在創(chuàng)建時被定義為6@),后面的五個數(shù)字表示防彈、防火、防爆、防撞、防砸,0表示否定,1表示肯定,所以 “1,1,1,0,1”就表示除了怕車撞,其它什么都不怕,有些網(wǎng)上對這個CLEO的說明就有這么一句:看到之后不要去打,最好開車撞,因為他根本就打不死。
防彈就是不怕槍、防火就是不怕燒、防爆就是不怕炸、防撞就是不怕車撞、防砸就是用肉搏類武器打不死。
想讓車無敵,僅僅把血弄得很多是不行的,血再多也只能保證永遠不爆,但撞了會壞、變形。
造無敵車的語句和人無敵的格式一樣:
Car.SetImmunities(6@, 1, 1, 1, 1, 1)
如果想讓CLEO刷出的車無敵,就在有關車輛定義的段落里插上這一句。
車輛被創(chuàng)建后會有一大段限制語句緊挨著:
有些會設置方位角:
Car.Angle(0@) = 90.0(可以不要,系統(tǒng)將默認朝北)
門鎖是開著的:
Car.DoorStatus(0@) = 0(可以不要,系統(tǒng)將默認鎖門)

創(chuàng)建的車輛都會有這樣的句子
0@ = Car.Create(#DODO, 1@, 2@, 3@) 在某點創(chuàng)建一個車,定義為0@
想讓車無敵就在這一行下面粘上這一行:
Car.SetImmunities(0@, 1, 1, 1, 1, 1)
如果車不是創(chuàng)建的而是CJ所開的車,怎么弄成無敵呢?
CJ所開的車在前面也會有個定義,彈射CLEO里就有這樣的句子:
03C0: 1@ = actor $PLAYER_ACTOR car 把CJ所開的車定義為1@
車輛一鍵無敵CLEO就是這樣改出來的。

車輛、人物、物品的格式都是一樣的,車是Car,人物是Actor,物品是Object,創(chuàng)建物品是這樣:
0@ = Object.Create(1219, 1@, 2@, 3@) (這是搭天梯CLEO里的,1219是木板的ID代碼)

CLEO常用語句集錦(這些語句都可以改,包含數(shù)值的改了數(shù)值就成新的CLEO了,包含車名的可以改車名,包含人物的改人名,包含物品ID的就改ID)
這些全都不用記,只要會復制粘貼就行。
首先,每個CLEO都有一個啟動條件,格式是這樣:
if
Player.Defined($PLAYER_CHAR)
else_jump @ARMRHINO_12

如果CJ被定義了(游戲開始了)就繼續(xù)下面的程序,要不然就跳到循環(huán)12(12肯定是開頭那個數(shù)字)
這個啟動條件是說如果游戲開始了就怎么怎么樣,要不然就跳轉回去,這個完全是廢話,有些CLEO里就沒有這個。下面這些句子都可以用作CLEO的啟動條件(如果……就如何如何),格式就是上面所說的那種if語句,替換playerdefine那一行:

Player.Controllable($PLAYER_CHAR) CJ可操控(沒落水,沒穿火箭飛行器,也不是下降狀態(tài))
0965: actor $PLAYER_ACTOR swimming CJ在游泳
0449: actor $PLAYER_ACTOR in_a_car CJ處于駕駛狀態(tài)
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處于駕駛狀態(tài)
Actor.DrivingPlane($PLAYER_ACTOR) CJ開雙翼飛機
0AB0: key_pressed 36 按下Home鍵(把數(shù)字一改就改成按別的鍵啟動了)
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 2494.794 -1675.745 13.3359 radius 100.0 50.0 25.0 CJ接近2494.794,-1675.745,13.3359這個坐標位置橫向100米、縱向50米、垂向25米的范圍內
00EC: actor $PLAYER_ACTOR 0 near_point 1477.351 1746.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: not actor $PLAYER_ACTOR swimming CJ沒有游泳
8449: not actor $PLAYER_ACTOR in_a_car CJ沒開車
84A9: not actor $PLAYER_ACTOR driving_heli CJ沒開直升機
84C8: not actor $PLAYER_ACTOR driving_flying_vehicle CJ沒開雙翼飛機
847A: not actor $PLAYER_ACTOR driving_bike CJ沒開摩托車、自行車
84A7: not actor $PLAYER_ACTOR driving_boat CJ沒開船
89AE: not actor $PLAYER_ACTOR driving_train CJ沒開火車
not Actor.DrivingVehicleType($PLAYER_ACTOR, #HYDRA) CJ開的不是hydra(這樣的只要把車名一改就變成在別的車上啟動了)
not Actor.Driving($PLAYER_ACTOR) CJ沒開車
not Actor.DrivingPlane($PLAYER_ACTOR) CJ沒開雙翼飛機
8AB0: not key_pressed 36 沒按Home鍵
not Actor.Dead(1@) 人物1@沒死
Player.WantedLevel($PLAYER_CHAR) > 5 警星數(shù)大于5

當有兩句或兩句以上并列的條件時,若需要全部條件都滿足(如果……并且……并且……),就要用if and 語句,若只需滿足其中的一個條件(如果……或……或……),要用if or 語句。

上面全都是很顯著的條件類語句,有時候條件類和結果類的沒有明顯界限,比如警星數(shù)的設置就既可以作條件(如果警星達到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 警星數(shù)是1(數(shù)字為0~6這七個整數(shù))
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是一個天氣代碼,哪個數(shù)字對應哪種天氣我沒注意,在天氣控制器的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@ 18@ 19@ 把17@ 18@ 19@這個點在地上的投影點的高度儲存為12@
0AB6: store_target_marker_coords_to 0@ 1@ 2@ 把地圖標記處的地面坐標值儲存為0@ 1@ 2@
Actor.StorePos($PLAYER_ACTOR, 20@, 21@, 22@) 把CJ當前坐標位置儲存為20@, 21@, 22@
1@ = Actor.Create(Gang1, #WMYBMX, 1477.351, 1746.59, 10.8125) 在1477.351, 1746.59, 10.8125坐標點上創(chuàng)建WMYBMX這個人物,定義為1@
2@ = Object.Create(11111, 21@, 22@, 23@) 在21@, 22@, 23@這一點創(chuàng)建物品11111,定義為2@
5@ = Car.Create(#HYDRA, 1@, 2@, 3@) 在1@, 2@, 3@這一點上創(chuàng)建車輛hydra,定義為5@
Actor.Health(1@) = 1000 人物1@生命值是1000(數(shù)字隨便改,最大值為1E38)
Car.Health(1@) = 1500 車輛1@生命值是1500(注釋同上)
Actor.SetImmunities(9@, 1, 1, 1, 1, 1) 人物9@全防無敵(5個1分別表示防彈、防火、防爆、防撞、防砸,改成0就不防了)
Car.SetImmunities(9@, 1, 1, 1, 1, 1) 車輛9@全防無敵(注釋同上)
0446: set_actor 3@ immune_to_headshots 1 人物3@對爆頭免疫(改成0就可以爆頭)
02E0: actor 1@ aggressive 人物1@具有攻擊性
01B2: give_actor 1@ weapon 38 ammo 9999 給人物1@一把彈藥數(shù)為9999的38號武器(38是轉輪機槍)
wait 800 等待800毫秒(數(shù)字隨便改,可以用來控制各個步驟的節(jié)奏)
0850: AS_actor 0@ follow_actor $PLAYER_ACTOR 人物0@跟著CJ走($PLAYER_ACTOR指的就是CJ)
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR 人物1@攻擊CJ
05E2: AS_actor 0@ kill_actor 4@ 人物0@攻擊人物4@
Actor.RemoveReferences(0@) 把人物0@模型拿掉
Car.RemoveReferences(0@) 把人物0@模型拿掉
Object.RemoveReferences(0@) 把物品0@模型拿掉
4@ = Actor.Angle($PLAYER_ACTOR) 把CJ的方位角儲存為4@
Car.Angle(2@) = 0.0 車輛2@的方位角為0.0(也可以使用像4@這樣的變化值,@變量最多可以設定到33@)
Actor.Angle(2@) = 0.0 人物2@的方位角為0.0(注釋同上)
Object.Angle(2@) = 0.0 物品2@的方位角為0.0(注釋同上)
0453: set_object 6@ XY_rotation 80.0 0.0 angle 0.0 物品6@對X、Y軸轉角分別為80.0、0.0,方位角為0.0
08D2: object 2@ scale_model 1.5 把物品2@的尺寸變成1.5倍
Car.PutAt(20@, 1@, 2@, 3@) 把車輛20@瞬移到1@, 2@, 3@這一點(也可以使用具體的數(shù)字)
Actor.PutAt(2@, 1@, 2@, 3@) 把人物2@瞬移到1@, 2@, 3@這一點(也可以使用具體的數(shù)字)
Object.PutAt(6@, 528.4479, -1752.545, 14.4) 把物品6@瞬移到528.4479, -1752.545, 14.4這一點(也可以使用變量)
1@ = Player.Money($PLAYER_CHAR) 把CJ的金錢數(shù)儲存為1@
18@ += 3.0 把18@加上3.0之后的數(shù)值重新儲存為18@(18@必須是一個代表數(shù)字的變量,比如生命、護甲、金錢、等,不能是車、人、物這些)
18@ -= 3.0 把18@減去3.0之后的數(shù)值重新儲存為18@ (注釋同上)
020C: create_explosion_with_radius 7 at 15@ 16@ 17@ 在15@ 16@ 17@這個點上創(chuàng)建一個半徑為7的爆炸(半徑越大威力及火光越小,要適中)
03BC: 3@ = create_sphere_at 298.145 -32.269 1001.515 radius 2.0 在298.145 -32.269 1001.515這一點創(chuàng)建一個紅圈,半徑為2.0,紅圈定義為3@
0A40: 1@ = create_entrance_marker_at 528.4741 -1760.358 14.9769 color 3 在528.4741 -1760.358 14.9769這一點上創(chuàng)建一個進門的箭頭,顏色為3,箭頭定義為1@(不清楚顏色和數(shù)字的對應關系是什么)
09C7: change_player $PLAYER_CHAR model_to #WMYRO 把CJ變成WMYRO這個人物模型
0A41: destroy_entrance_marker 1@ 把進門的箭頭1@拿掉
03FE: set_actor 6@ money 10000 把人物6@的金錢數(shù)設置為10000
0681: attach_object 2@ to_car 6@ with_offset -1.0 4.0 2.0 rotation 0.0 0.0 90.0 把物品2@粘在車輛6@上,相對車的位置為-1.0 4.0 2.0,相對于三個坐標軸的轉角分別為0.0 0.0 90.0(這個也可以把物品粘到物品上、車粘到車上,格式一樣,object、car分別代表物、車)
01B9: set_actor 7@ armed_weapon_to 35 讓人物7@手上拿著35號武器
0337: set_actor 7@ visibility 0 人物7@不可見(1為可見)
0337: set_car 7@ visibility 0 車輛7@不可見(1為可見)
06D5: 29@ = create_racing_checkpoint_at 17@ 18@ 19@ point_to 17@ 18@ 19@ type 2 radius 6.0 在17@ 18@ 19@這個點上創(chuàng)建一個汽車錦標賽的高高的紅色光柱,半徑為6,形態(tài)為2,光柱定義為29@
0729: AS_actor $PLAYER_ACTOR hold_cellphone 1 CJ打電話
0729: AS_actor $PLAYER_ACTOR hold_cellphone 0 CJ掛電話
0362: remove_actor $PLAYER_ACTOR from_car_and_place_at 3@ 4@ 5@ 把CJ從車里揪出來放到3@ 4@ 5@這一點
072A: put_actor $PLAYER_ACTOR into_car 6@ driverseat 把CJ塞進車輛6@的駕駛座
0129: 10@ = create_actor_pedtype 38 model #ARMY in_car 4@ driverseat 在車輛4@的駕駛座上創(chuàng)建一個人物army,定義為10@
01C8: 11@ = create_actor_pedtype 38 model #ARMY in_car 4@ passenger_seat 0 在車輛4@的副駕駛座創(chuàng)建一個人物army,定義為11@
01C8: 12@ = create_actor_pedtype 38 model #ARMY in_car 4@ passenger_seat 1 在車輛4@的左后座上創(chuàng)建一個人物army,定義為12@
01C8: 13@ = create_actor_pedtype 38 model #ARMY in_car 4@ passenger_seat 2 在車輛4@的右后座上創(chuàng)建一個人物army,定義為13@
05CD: AS_actor 11@ exit_car 4@ 讓人物11@從車輛4@里下來
01C1: car 0@ stopped 車輛0@停下
Car.LockInCurrentPosition(0@) = True 車輛0@不能動(True改成False就可以動了)
Car.SetSpeedInstantly(5@, 30.0) 設定車輛5@的速度為30.0
Actor.LockInCurrentPosition($PLAYER_ACTOR) = False CJ可以動(False改成True就不能動了)
00C0: set_current_time_hours_to 3 minutes_to 0 把時間設置為3點0分
00BF: 29@ = current_time_hours, 30@ = current_time_minutes 把當前小時數(shù)儲存為29@,分鐘數(shù)儲存為30@
0788: enable_heli 0@ magnet 1 直升機0@的電磁鐵放出來
0788: enable_heli 0@ magnet 0 直升機0@的電磁換扔掉
0724: heli 1@ follow_and_attack_player $PLAYER_ACTOR radius 80.0 直升機1@追著CJ炸,跟蹤半徑為80米
07A7: put_jetpack_on_actor $PLAYER_ACTOR CJ得到火箭飛行器
0464: put_actor 3@ into_turret_on_car 1@ at_car_offset 0.0 0.0 1.6 position 1 shooting_angle_limit 360.0 with_weapon 31 把人物3@放到車輛1@上,相對于車偏移0.0 0.0 1.6,用31號武器向360度范圍內射擊
03C0: 1@ = actor $PLAYER_ACTOR car 把CJ當前開的車定義為1@
015D: set_gamespeed 0.3 把游戲速度調整為0.3倍
Car.ToggleHydraulics(9@) = True 把車輛9@加上液壓(True改成False就是去掉液壓)
09E9: car 9@ add_single_nitro 給車輛9@加上液氮加速器
0A30: repair_car 9@ 把車輛9@修好
0503: create_actor_on_rope_with_pedtype 27 model 285 at 21@ 22@ 23@ handle_as 11@ 在21@ 22@ 23@這一點上創(chuàng)建一個285號人物(285是特警)爬繩子下來,定義為11@
Player.Money($PLAYER_CHAR) += 10000000 把CJ的金錢數(shù)增加一千萬
02E3: 1@ = car 0@ speed 把車輛0@的速度定義為1@

這些語句可以在CLEO之間來回移植,就像搭積木一樣,沒有固定套路,修改CLEO最好是找一個現(xiàn)有的模板,在里面改、復制粘貼,有很多CLEO都很相似,就是這個原因。這些命令是用來在原有的CLEO基礎上改裝的,在實際操作中所遇到的情景遠不止上面列出的11種情況,但思路都是一樣的:想做什么CLEO,就先去找一個最接近的CLEO作為模板來修改。
這些語句如果你想作為條件來使用,就放到 if (有時候是if or,有時候是if and)的后面,或者干脆把原先的條件替換掉。
如果是關于人物的句子,就放到創(chuàng)建人物的后面,給人物加上此屬性。
如果是關于車輛的句子,就放到創(chuàng)建車輛的后面,給車輛加上此屬性。
cs文件如果從頭看到尾的話,可以看出它就是一個故事,事件全都是按照那些命令出現(xiàn)的先后順序來發(fā)生。只有出現(xiàn)if語句的時候要注意了,if是“如果”,else是“要不然”(jf 和else的意思一樣)
有if語句就會出現(xiàn)一個分支:如果……就繼續(xù),如果不滿足就就跳轉到循環(huán)××(再去看看循環(huán)××是什么內容就知道要發(fā)生什么了)。每一段后面都有個jump,jump就是定義下一步跳轉到哪一段,段落結尾要是沒有jump,那就默認為跳到下一段。


常見的模板
1、如果……就……、如果……就……、如果……就……(省略號的內容可以是按鍵或開車、警星數(shù)、時間、接近某地等)。
超時空轉換就是這個模式:如果走到×點,就傳送到×點;如果走到×點,就傳送到×點;如果走到×點,就傳送到×點………………

注意:要是循環(huán)的個數(shù)非常多就用這一個模板:定點傳送、刷任意車輛(刷任意車輛就是用定點傳送改的,只不過把傳送的語句改成了刷車的語句)。循環(huán)太多的話用上面那個模板會有一個很長的反應時間。

2、刷個能幫自己打架的人。
刷幫派小弟、影子小弟、召喚戰(zhàn)士、召喚骷髏,都可以拿來利用。

3、叫幫手開著車過來。
呼叫小弟、呼叫警察小弟、呼叫軍人小弟,都是這種模式。

4、到某個地方后會有幾個很厲害的人來追打CJ。
海盜船長、骷髏士兵、殺手補丁全是這種模式的,都可以利用。

5、到某個地方會看到有個NPC打另外一個NPC,多個打一個。
水怪就是。

6、到某個地方會看到有兩幫NPC發(fā)生對壘,都是一對一地打。
黑社會任務CLEO可以拿來作模板。

7、開某車時想按某個鍵讓車發(fā)子彈或開炮。
武裝噴水車可以借鑒,斗牛車也一樣,這種對武器模型沒有要求,哪怕弄個照相機在車里也行,最重要的是定義哪種武器開火。

8、想在車上安一個東西。
斗牛車、大公雞、飛碟、萬噸巨輪全是這種套路。如果這個物品較大,而且把車隱藏掉的話,“在車上安一個東西”就變成了“利用××車把××物品給開走”,地圖最北邊那個最大的公雞就是這樣開走的,還有那個峴港偷渡船也是這樣開走的,凡是在游戲里見過的東西,就沒有開不走的。

9、開車時想讓車上站些人拿著槍保護CJ。
裝甲車射擊手、特警掩護、空軍掩護、鐵道游擊隊、海岸警衛(wèi)隊全都是這種模式。

10、想讓旁邊出現(xiàn)一些車輛跟著,而且上面站著人保護CJ。
汽車護衛(wèi)、直升機護衛(wèi)、悍馬突擊組、鋼鐵洪流都是這樣的。

11、想在車上安一個東西,按某鍵就移動到車的另一個位置。
可以參考汽車尾翼升降,我做那個在車上安個大導彈按I豎起來、按K放下去的CLEO,就是改的尾翼升降CLEO。

改裝CLEO沒有固定的思維,方法就像搭積木,你的想像力有多豐富,你改出來的CLEO就有多精彩!
上面說的全是根據(jù)現(xiàn)有的CLEO依次類推的方法,要想無中生有、新造出一個來,很難很難,是個專門的學科,計算機專業(yè)的定會覺得易如反掌吧。
很多語句都能在CLEO之間來回移植,這就需要慢慢摸索了,改的時候大致框架不變,還是在原有的cs文件里面做。蘑菇云CLEO(已添加到原版的核彈CLEO里,合二為一)就是把其它CLEO里的爆炸場面移植出來做的,在多處同時創(chuàng)建爆炸,它們的圖案拼起來組成了一個蘑菇云。
這樣的修改是隨意發(fā)揮想像,各人玩法都不同,有個人就用“叫外賣”CLEO改出來了一個“按C+F叫一輛BULLET”,這有無數(shù)種玩法,隨心所欲。如果有一定英語基礎,多用Sanny Builder打開各種CLEO來對照著此CLEO的中文說明書看看,就能看得懂里面絕大部分語句,看得懂改起來就好改了。

補丁截圖
下載地址

圣安地列斯cleo編輯器(Sanny Builder) v3.04漢化版

相關合集
玩家評論
我要點評

網(wǎng)名 注:您的評論需要經(jīng)過審核才會顯示出來。

已有 0 位玩家參與點評