What'sASI
它們(用于GTA的)都是動态鍊接庫,換了個擴展名。換言之可以使用任何編寫動态鍊接庫的方法。要編寫asi,建立一個dll工程,修改遊戲的代碼寫在DllMain函數内。
這是C++的寫法
要寫出實用的asi插件,要學習彙編,逆向分析,一門編程語言。--熟悉遊戲引擎和DirectX編程是成為大神的必經之路。
GTA3和VC自身就能加載asi,GTASA需要安裝加載器。
功能
opcodes
CLEO為腳本編寫者提供了許多有用的opcode(GTA3、VC各27個,SA100個),注意不能在main.scm裡用。
腳本
CLEO的腳本是一些擴展名為.cs(custom script)的文件。用sanny builder編寫。開始運行遊戲的時候,CLEO會檢測cleo文件夾下的所有該類型的文件并加載。成功後,腳本就開始執行其各自的功能了。避免了直接修改main.scm産生的存檔不能用的問題。一般cleo腳本的安裝非常簡單:隻需複制所有文件到cleo文件夾即可。删除對應的文件,你就卸載了這些腳本。你可以在網上各種網站或者論壇下載到你所需的插件。目前國内作者已知制作的腳本多達700-800個。
插件
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目錄,.fxt文件要放在CLEO_TEXT目錄下。遊戲運行時加載所有cs文件,玩家可以使用全部功能。
CLEO功能主文件的擴展名是cs(CLEO Script),一些任務類CLEO還有擴展名為cm(custom mission)的任務文件,放在CLEO文件夾下;此外還可能有擴展名為fxt的文件,是CLEO中所需要的文本描述,可以用記事本編輯,放在CLEOCLEO_TEXT文件夾下;如果還有擴展名為txd的,放在遊戲目錄下的modelstxd文件夾或models文件夾下。若還有其餘文件請參考該MOD的說明。
在遊戲中使用CLEO功能,需要詳細閱讀幫助文件,知道其功能,使用功能的方法(快捷鍵或作弊碼),使用功能所需要的條件(步行或乘車),以及一些可能導緻遊戲錯誤的BUG的說明,盡量避免在這些情況下使用CLEO,這是很重要的,免得你在沒存檔之前錯誤退出而捶胸頓足。
CLEO的修改和制作需要一款軟件:SannyBuilder(簡稱SB),在其官網上可以免費下載,安裝完成以後就可以使用了。如果出錯需要在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源碼:
//ThisfilewasdecompiledusingSASCM.INIpublishedbySeemann(files/SASCM.rar)on13.10.2007
{$VERSION3.1.0027}
{$CLEO.cs}
//-------------MAIN---------------
//注意以上代碼不可缺少,它标志着這是一個CLEO文件,而不是main.scm文件
thread'ENGINE'//引号裡的是CLEO的名稱,必須保證不會和已有的CLEO重名
:ENGINE_11//這是标簽,為語句跳轉所設
wait10//等待10毫秒
if//如果,條件判斷
Player.Defined($PLAYER_CHAR)//玩家是否定義?真正含義不解,沒有這個判斷也行
jf@ENGINE_11//如果條件不滿足的話跳轉到ENGINE_11,滿足的話繼續執行
ifand//多條件必須同時滿足,表示與的關系
0449:actor$PLAYER_ACTORin_a_car//主角是否在車裡
00E1:player0pressed_key11//是否按下了功能鍵11(遊戲默認是Y鍵)
jf@ENGINE_11//如果以上條件不滿足就跳轉到标簽11
03C0:$CAR_REP=actor$PLAYER_ACTORcar//定義主角所乘車輛的句柄變量,把主角乘坐的車定義為$CAR_REP
0A30:repair_car$CAR_REP//修複自定義車輛$CAR_REP
jump@ENGINE_11//無條件跳轉
0A93:end_custom_thread//結束01B2:give_actor2@weapon28ammo60//Loadtheweaponmodelbeforeusingthis//給對方設置武器01B9:set_actor2@armed_weapon_to0//武器最大彈藥數量
編寫
當玩家在制作一個CLEO的cs腳本的時候,需要注意一些細節,比如:
1、使用循環時,不能直接jf到條件判斷上,會導緻遊戲卡住(沒有提示),請在if之前加等待命令
2、并不是創作一個很好的功能就必須使用大量的變量和各種高端代碼,這是一個誤區,opcode語句就像積木一樣,并非需要把積木用雕刻刀雕琢的活靈活現才能做出好CLEO,積木的更大亮點在于拼接,利用各種語句和循環技巧進行組裝調用,從而獲得更多新的靈感和功能,這才是正規發展方向,然後才是高端技巧的掌握和學習,簡單講,就是CLEO需要創意大于技巧。
3、玩家要随時注意更新自己的OPCODE語句庫,因為原版的sanny builder并沒有搜集齊所有的OPCODE指令,這就需要玩家在網上各地尋找自己需要的資源并加以整合了。
4、學會使用障眼法,例如一個汽車發射炮彈的cleo,原理可以是在汽車上面創建一個人物,給人物武器,然後讓人物開炮,最後隐藏人物,以此就達成了汽車開炮的目的。學會“高端技巧”之後,直接調用遊戲制造導彈的方法。
5、不要在cleo裡使用全局變量,會把main.scm裡的變量複蓋,主角等唯一物體除外。



















