基本信息
它們(用於GTA的)都是
動態程式庫,換了個擴展名。換言之可以使用任何編寫動態程式庫的方法。要編寫asi,建立一個dll工程,修改遊戲的代碼寫在
DllMain函式內。
#include<windows.h>BOOLAPIENTRYDllMain(HANDLEhDllHandle,DWORDdwReason,LPVOIDlpreserved){ if(dwReason==DLL_PROCESS_ATTACH)//不要改條件 { //修改遊戲的代碼 } returnTRUE;}
這是C++的寫法
要寫出實用的asi外掛程式,要學習彙編,逆向分析,一門程式語言。--熟悉遊戲引擎和DirectX編程是成為大神的必經之路。
GTA3和VC自身就能載入asi,GTASA需要安裝載入器
功能
opcodes
CLEO為腳本編寫者提供了許多有用的opcode(GTA3、VC各27個,SA100個,2016年已經擴展到近2000個),注意不能在main.scm里用(2014年起,main.scm的編寫已經可以進行)。
腳本
CLEO的腳本是一些擴展名為.cs(custom script)的檔案。用
sanny builder編寫。開始運行遊戲的時候,CLEO會檢測cleo資料夾下的所有該類型的檔案並載入。成功後,腳本就開始執行其各自的功能了。避免了直接修改main.scm產生的存檔不能用的問題。一般cleo腳本的安裝非常簡單:只需複製所有檔案到cleo資料夾即可。刪除對應的檔案,你就卸載了這些腳本。你可以在網上各種網站或者論壇下載到你所需的外掛程式。目前國內作者已知製作的腳本多達700-800個。
同時還有更多的擴展腳本,比如套用於副本的.cm檔案,或者是.s/.nmt(由NMT團隊使用)的子程式檔案,通常此類檔案,即使是放在cleo資料夾下也無法被直接載入,需要其他的.cs檔案去引導並載入,通常稱主程式(.cs/.scm)與子程式(.cm/.s/.nmt等)。
外掛程式
cleo4提供了
SDK讓用戶編寫新opcode,擴展名為.cleo,放在cleo資料夾內即可生效,cleo外掛程式也是動態程式庫。
安裝
您也可以下載獨立的存檔或自動安裝程式。安裝CLEO非常簡單,只需解壓縮到
遊戲根目錄或運行安裝程式,並按照其指示進行。
您還可以安裝Sanny Builder。運行Sanny Builder,選擇好遊戲資料夾。您將會看到CLEO這個詞在狀態欄顯示為紅色。閱讀許可協定並按下'安裝'按鈕。
教程
引言:CLEO的環境和基本說明
通過CLEO可以實現很多以前根本不敢想的功能(但不是CLEO的功勞),比如讓遊戲主角在天上飛,海里的鯊魚會吃人,像蜘蛛俠一樣爬到牆上,發射六脈神劍等等,可以說是其樂無窮的一種MOD。
想在遊戲中使用CLEO功能,首先需要安裝CLEO環境,去CLEO的主頁下載最新的cleo4,下載後安裝到你的
遊戲目錄下,這時打開遊戲目錄,你會發現多了一個CLEO資料夾。以後你在網上下載的CLEO就可以放在這個資料夾下了。注意只有擴展名為.cs或.cm的檔案才能放在CLEO目錄(2013年已經解除,許許多多的檔案都可放在CLEO目錄,亦或者是寫下代碼的txt文檔,或是上面提到的子程式,他們無法被直接運行,只能通過主程式來來引導並運行),.fxt檔案要放在CLEO_TEXT目錄下。遊戲運行時載入所有cs檔案,玩家可以使用全部功能。
CLEO功能主檔案的擴展名是cs(CLEO Script),一些任務類CLEO還有擴展名為cm(custom mission)的任務檔案,放在CLEO資料夾下;此外還可能有擴展名為fxt的檔案,是CLEO中所需要的文本描述,可以用記事本編輯,放在CLEO\CLEO_TEXT資料夾下;如果還有擴展名為txd的,放在
遊戲目錄下的models\txd資料夾或models資料夾下。若還有其餘檔案請參考該MOD的說明。
在遊戲中使用CLEO功能,需要詳細閱讀幫助檔案,知道其功能,使用功能的方法(快捷鍵或作弊碼),使用功能所需要的條件(步行或乘車),以及一些可能導致遊戲錯誤的BUG的說明,儘量避免在這些情況下使用CLEO,這是很重要的,免得你在沒存檔之前錯誤退出而捶胸頓足。
CLEO的修改和製作需要一款軟體:SannyBuilder(簡稱S.B),在其官網上可以免費下載,安裝完成以後就可以使用了。如果出錯需要在Tools-Options里設定遊戲的安裝路徑。
SB可以打開main.scm檔案,.cs檔案,.cm檔案以及所有的文本檔案。在打開文本檔案的時候就是一個純粹的
文本編輯器;在打開CLEO檔案和MAIN檔案時先自動反編譯出
原始碼存為txt放在當前目錄,再打開該txt,我們做好修改以後,需要按下F7鍵,程式完成三個步驟:保存當前文檔(txt),編譯成CLEO的cs檔案或main.scm檔案,複製該檔案到
遊戲目錄(如果不在原始目錄的話),cs和cm放到CLEO下,main.scm放到Script下,總之各歸各位。大概就是這么一個流程。
範例
這是一個代碼很簡單的CLEO,主檔案名稱是repair.cs,主要功能是在車上的時候,按Y鍵可以把車修好,就不用去噴漆處了。
以下是該CLEO源碼:
// This file was decompiled using SASCM.INI published by Seemann (files/SASCM.rar) on 13.10.2007
{$VERSION 3.1.0027} //無關緊要的內容,自己編寫不會出現這些
{$CLEO .cs} //它標誌著這是一個CLEO檔案,編譯檔案的擴展名是cs
//-------------MAIN---------------
thread 'ENGINE' //命名執行緒,可有可無,起個名字讓其他cleo能找到你
:ENGINE_11 //這是標籤,為語句跳轉所設
wait 10 //等待10毫秒
if //如果,條件判斷
Player.Defined($PLAYER_CHAR) //條件:玩家是否定義?死了就是false
jf @ENGINE_11 //如果條件不滿足的話跳轉到ENGINE_11,滿足的話繼續執行
if and //多條件必須同時滿足,表示與的關係
0449: actor $PLAYER_ACTOR in_a_car //主角是否在車裡
00E1: player 0 pressed_key 11 //是否按下了功能鍵11(遊戲默認是Y鍵)
jf @ENGINE_11 //如果以上條件不滿足就跳轉到標籤11
03C0: $CAR_REP = actor $PLAYER_ACTOR car // $CAR_REP就代表主角坐著的車了
0A30: repair_car $CAR_REP //修復自定義車輛$CAR_REP
jump @ENGINE_11 //無條件跳到開頭
註:不同遊戲的opcode不同
閱讀Sanny Builder的幫助文檔學習基本知識,所以英語必須會。
CLEO編寫
當玩家在製作一個CLEO的cs腳本的時候,需要注意一些細節,比如:
1、使用循環時,不能直接jf到條件判斷上,會導致遊戲卡住(沒有提示),請在if之前加等待命令
:threadwait0ifconditionjf@thread//freeze
2、並不是創作一個很好的功能就必須使用大量的變數和各種高端代碼,這是一個誤區,opcode語句就像積木一樣,並非需要把積木用雕刻刀雕琢的活靈活現才能做出好CLEO,積木的更大亮點在於拼接,利用各種語句和循環技巧進行組裝調用,從而獲得更多新的靈感和功能,這才是正規發展方向,然後才是高端技巧的掌握和學習,簡單講,就是CLEO需要創意大於技巧。
3、玩家要隨時注意更新自己的OPCODE語句庫,因為原版的sanny builder並沒有蒐集齊所有的OPCODE指令,這就需要玩家在網上各地尋找自己需要的資源並加以整合了。
4、學會使用障眼法,例如一個汽車發射炮彈的cleo,原理可以是在汽車上面創建一個人物,給人物武器,然後讓人物開炮,最後隱藏人物,以此就達成了汽車開炮的目的。學會“高端技巧”之後,直接調用遊戲製造飛彈的方法。
5、不要在cleo里使用全局變數,會把main.scm里的變數覆蓋,主角等唯一物體除外
玩法
安卓聖安地列斯遊戲
把cleo當玩具的使用法則:
不要直接點擊選單,上下左右如圖操作,點擊中區確定。
DISMISS取消功能不明。
空戰
得到飛機後,想空戰只要加星。找到航母還可以非法降落。
過關
舊金山藍色骷髏任務
T-Bone Mendez
選擇:鐵板牛排門德斯
就是Mike Toreno任務
Mike被困,於是CJ和他們一起行動前去救援。由於Mike也不清楚身在何處,會不斷用電話描述聽到的聲音,由此判斷他的位置。必須在5分半鐘內找到他,分別到工地、海濱,一路找到機場。這時要利用探測裝置判斷貨車的位置,找到後消滅所有劫匪救出Mike。逃離現場後將汽車改漆,回到夜總會交差。
用cleo得到飛機,節約時間更容易過關。
偵察
選擇:A Home in the Hills山中別墅
手機軟體攻略:前往海軍基地盜取戰鬥機去炸間諜船。駕駛摩托艇來到東方不遠的海軍基地,要游進航母才不會被發現,等守衛離開後,暗殺掉工人上樓梯(其實硬拼的問題也不大),潛入控制室關閉SAM飛彈發射系統,然後到甲板奪戰鬥機。起飛後會有3架戰鬥機追逐,將它們全部擊落後飛往水灣,不用管多遠,不管能不能看到,這飛彈好象是遠距離攻擊的。在那裡炸毀4艘間諜船,這時接到Toreno的電話,最後將飛機開往私人機場並停放到機庫里。
名稱:vertical bird直升之鳥
解釋
用飛機炸毀四艘間諜船就看不清船了,先在西邊降落(鵠式戰鬥機可垂直降落)後用炸藥包炸它們即可 ,但飛機還是要用飛機打下來的才能過關。
找路
李然法吃麵,CJ要去機場拿車,地下車庫如同迷宮,沒有地圖。
這是舊金山W點李然法任務,選擇山雲幫 進入。