为主的详助进,关于cleopatra编写。

Cleo详细资料(以下内容包含:CleoWhats ASI 功能 *** 教程 范例 CLEO编写
歌曲列表 专辑唱片列表等信息)
Cleo生日:
Whats ASI它们(用于GTA的)都是动态链接库,换了个扩展名。换言之可以使用任何编写动态链接库的方法。要编写asi,建立一个dll工程,修改游戏的代码写在DllMain函数内。
#includewindows.h
BOOLAPIE***YDllMain(HANDLEhDllHandle,DWORDdwReason,LPVOIDlpreserved)
{
if(dwReason==DLL_PROCESS_ATTACH)//不要改条件
{
//修改游戏的代码
}
returnTRUE;
}
这是C++的写法
要写出实用的asi插件,要学习汇编,逆向分析,一门编程语言。--熟悉游戏引擎和DirectX编程是成为大神的必经之路。
GTA3和VC自身就能加载asi,GTASA需要***加载器功能opcodesCLEO为脚本编写者提供了许多有用的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中所需要的文本描述,可以用记事本编辑,放在CLEO\CLEO_TEXT文件夹下;如果还有扩展名为txd的,放在游戏目录下的models\txd文件夹或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源码:
// 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之前加等待命令
:thread
wait0
if
condition
jf@thread//freeze
2、并不是创作一个很好的功能就必须使用大量的变量和各种高端代码,这是一个误区,opcode语句就像积木一样,并非需要把积木用雕刻刀雕琢的活灵活现才能做出好CLEO,积木的更大亮点在于拼接,利用各种语句和循环技巧进行组装调用,从而获得更多新的灵感和功能,这才是正规发展方向,然后才是高端技巧的掌握和学习,简单讲,就是CLEO需要创意大于技巧。
3、玩家要随时注意更新自己的OPCODE语句库,因为原版的sanny builder并没有搜集齐所有的OPCODE指令,这就需要玩家在网上各地寻找自己需要的资源并加以整合了。
4、学会使用障眼法,例如一个汽车发射炮弹的cleo,原理可以是在汽车上面创建一个人物,给人物武器,然后让人物开炮,最后隐藏人物,以此就达成了汽车开炮的目的。学会“高端技巧”之后,直接调用游戏制造导弹的方法。
5、不要在cleo里使用全局变量,会把main.scm里的变量覆盖,主角等唯一物体除外
Cleo档案之所有专辑
2003年推出专辑:《vol.4 Poster》
2003年推出专辑:《童话》
2004年推出专辑:《Vol. 5 - Rising Agai》

参考资料

 

随机推荐