搜档网
当前位置:搜档网 › KRKR入门教程,教你做出一个完整的小游戏

KRKR入门教程,教你做出一个完整的小游戏

进入正题:

吉里吉里(KRKR)入门篇~

2010年1月31日 星期日18:18

作者:Salles & 不知原作谁写的

一、初识吉里吉里(KRKR)

吉里吉里2(以下简称KRKR)/KAG3是由日本W.Dee氏编写的一个ADV(恋爱AVG文字游戏)制作引擎,具有很强的功能以及扩展性。

虽然采用了类似Java的tjs语言,但如果只是使用基本的ADV制作功能,则只需要用到KAG3的一些相对简单的指令。

由于KRKR支持Unicode,即使是日文原版也可以较好地支持其他语言。

在音频方面,它支持非压缩的Wav、Midi格式以及CD音轨,加载插件后还可以支持ogg、mp3等。

在视频方面则支持mpeg1、swf。

图像方面则支持bmp、jpg、png、eri和tlg5、tlg6等。

虽然占用资源较Nscripter等其他工具有所增大,但制作出的效果也更加华丽,前段时间大红大紫的Fate系列就很好地展现了KRKR的威力。
(《Fate/stay night》有兴趣的,可以去下载这个游戏玩玩,百度上有,这里不给下载地址了)

KRKR的源程序可以在下面地址下载(去掉中间的空格,h ttp之间,5 8之间,20 6之间,2C A之间,in put之间,100 2007之间
共六处空格,全部去掉):

h ttp://5 8.251.57.20 6/down?cid=2C A4450B80FEEEFC915F6A9BDD6A556D4AF6E250&t=2&fmt=&usrin put=kagexpress&dt=100 2007

这是迅雷、BT下载地址。

最后,本教程只是入门级的基础教程,如果您已经可以用KRKR实现基本的ADV制作,本教程对您的参考价值就很有限了……




二、制作前的准备:

1.下载并解压KRKR,放在除系统盘以外的盘里,如:"D:\KRKR"。

2.首先我们需要建立一个新的工程。

在你解压KRKR后生成的目录里,有个叫Wizard的可执行程序,双击它。

在出现的对话框里,选择下拉菜单中的800*600,新工程目录输入:course,你会发现在KRKR目录里多了一个叫course的目录,这就是新的工程目录。
在确定后弹出一个设置对话框,什么都不用改先,确定就行。

3.用记事本方式打开 course\data\config.tjs文件,这里可以进行一些设置。

目前需要用到的是先把; System.title = "KCDDP KAGeXpress 3.0";改为你需要的标题。这里不妨设为;System.title = "KRKR基础教学"。

4.下面,开始进行脚本编辑:

在course\data\scenario目录下,有个叫first.ks的文件,可以用记事本打开,这里就是你输入代码的地方。

5.把自己的图片放在course\data\bgimage里,名字自定。

最好先准备5张背景图,一张全黑的,叫black;一张全白的,叫white;另外三张随便在哪弄来三张图片,可自己命名为bgi01、bgi02、bgi03。

注意:所有背景图片的分辨率最好都是800*600的,免得以后麻烦。

再准备两个人物立绘图,自己命名为c01、c02,也放在这个文件夹里。

6

.把自己的音乐放在course\data\bgm里,名字自定。

最好音乐的格式是.wav和.midi的,加载插件后可支持.ogg和.mp3的格式。本教程里就使用.wav的吧。

随便找两个.wav音乐放在这个文件里,命名为bgm01、bgm02。

需要注意的是:不论是背景图、人物立绘图或者是音乐,文件名都不要重复,有时候会造成运行中的错误。

然后,开始像4楼里说的,在first.ks里写脚本代码。

三、ADV的初期制作:

1.用记事本打开course\data\scenario目录下的first.ks,可以看到以下几句KRKR脚本:

*start

欢迎来到Kirikiri/KAG的世界![l][r]

2.先说一下RKRK的代码基本输入方式:

[代码内容]或者@代码内容,两种写法结果是一样的。比如[playbgm storage=bgm01]和@playbgm storage=bgm01是一样的效果。

3.注释符:
;(分号)这个符号后的同一行字符将视为注释,不计入代码中。

比如你输入了一大串代码,在中间加入一行:

[*。X&#(^%9&*……]
;这是标题画面的代码,我作一下标记。
[*。X(*#&%(^&……]

那么中间那句话"这是标题画面的代码,我作一下标记。"不会出现在游戏中。

4.标签符号:
* 用于ADV流程的阶段性标识。

5.开始代码输入。把first.ks中的文字全删除,先制作游戏标题画面,输入以下代码:

[wait time=200]
[loadplugin module=wuvorbis.dll]

*start
[startanchor]
[cm]
[rclick enabled=false]
[clickskip enabled=false]
[history output=false enabled=false]

*title
[cm]
[nowait]
[stopbgm]
[playbgm storage="bgm01"]
[current layer=message0 page=fore withback=ture]
[layopt layer=message0 page=fore visible=true]
[position layer=message0 page=fore frame="" opacity=0]

[backlay]
[image storage="bgi01" layer=base page=back visible=true]
[trans method=crossfade time=600]
[wt]

[font color=0x000000 shadow=false]
[locate x=260 y=320]
[link target=*eps]开始游戏[endlink][r]
[locate x=260 y=360]
[link target=*titleload]继续游戏[endlink][r]
[locate x=260 y=400]
[link target=*titleexit]退出游戏[endlink]
[font size=default face=default color=default edge=false]
[endnowait]
[s]

6.以下是代码的解释:

[wait time=200]:进入标题画面前等待200毫秒。KRKR里所有在time=之后的数字,都以毫秒为准,比如time=5000就是5000毫秒。
[loadplugin module=wuvorbis.dll]是载入wuvorbis.dll这个插件,以支持.ogg音频格式。

*start:strat标签,作为一个阶段的标记。
[startanchor]:确定在游戏中选择回到标题画面时的返回处。
[cm]:清除全部的文字层的内容。
[rclick enabled=false]:禁止鼠标右键的点击。
[clickskip enabled=false]:禁止通过点击跳过。
[history output=false enabled=false]:关闭历史记录的输出及查看。

[nowait]:文字瞬间出现。
[stopbgm]:停止播放背景音乐。在这个代

码之前并没有播放背景乐,这个代码目的,是停止在游戏中间退回标题时还在播放的背景乐。
[playbgm storage="bgm01"]:播放背景音乐bgm01。
[current layer=message0 page=fore withback=ture]:指定可操作文字层。(后面有介绍各个命令的具体值)
[layopt layer=message0 page=fore visible=true]:更改层属性。
[position layer=message0 page=fore frame="" opacity=0]:更改文字层的属性。

[backlay]:图层由表向里复制。
[image storage="bgi01" layer=base page=back]:预载背景画面。其中"bgi01"就是bgimage文件夹下的bgi01文件,由于Initialize.tjs中设定了系统自动检索这个目录,所以不需要写出完整路径。
[trans method=crossfade time=600]:淡入的场景转换,转换时间600毫秒。
[wt]:等待转换结束。

[font color=0x000000 shadow=false]:修改字体。
[locate x=280 y=320]:设定文字或按钮出现的坐标。
[link target=*eps]Start[endlink][r]:设定链接的文字及所跳转的标签,[r]表示在末尾换行。

[endnowait]:结束文字瞬间出现。
[s]:此段内容结束。

7.以下是各参数的说明:

current:指定操作文字层。
参数:
layer:值为message0或message1,指定1个为操作文字层。
page:值为fore或back,设定为表或者里。
withback:值为true或false,表page为对象的场合,对里page进行同样文字描画的设定。

layopt:层属性。
参数:
layer:值为0以上整数message0或message1,指定前景层或文字层。
page:值为fore或back,设定为表或者里。
visible:值为ture或false,该层是否显示。
left:值为整数,表示层的左端距左框边的距离。
top:值为整数,表示层的顶端距顶框边的距离。
opacity:值为0(完全透明)~255(不透明)的整数,指定层的透明度。

position:文字层属性。
参数:
layer:值为message或message0或message1。
page:值为fore或back,设定为表或者里。
left:值为整数,表示层的左端位置。
top:值为整数,表示层的顶端位置。
opacity:值为0(完全透明)~255(不透明)的整数,指定层的透明度。
width:值为整数,层的宽度。
height:值为整数,层的高度。
frame:文件名,如果使用自己设计的框架的话,则需要指定。不使用自己设计的文字框架的话,只要在脚本里写frame=""即可。
framekey:值为0xRRGGBB或adapt,指定框架的透明色。
color:值为0xRRGGBB,文字层颜色。
marginl:值为整数,文字层左方空白。
margint:值为整数,文字层上方空白。
marginr:值为整数,文字层右方空白。
marginb:值为整数,文字层下方空白。
vertical:值为true或false,true为竖行文字显示,false为横行文字显示。

font:文字属性。
参数:
size:值为整数或default,整数表示文字的大

小字号,default则为默认值。
face:值为字体名称或default或user,default为默认,user为现用的字体。现在网上下载的KRKR,一般默认字体都是黑体,在course\data\config.tjs文件里可以设定默认字体,具体方法见另一个贴子:h ttp://ti eba.baidu.co m/f?kz=702500406(去掉3处空格)。
color:值为0xRRGGBB,文字颜色。
italic:值为true或false或default,文字斜体设定。
shadow:值为true或false或default,文字阴影设定。
shadowcolor:值为0xRRGGBB或default,文字阴影颜色。
edge:值为true或false或default,文字边缘设定。
edgecolor:值为0xRRGGBB或default,文字边缘颜色。

b-o-l-d(去掉中间的"-"):值为true或false或default,文字粗体设定。

四、ADV的中期制作(1):

1.在first.ks里继续输入以下代码:

*eps|X月X日 基础教学演示

[cm]
[stopbgm]
[playbgm storage="bgm02"]
[rclick enabled=true]
[clickskip enabled=true]
[history output=true enabled=true]
[rclick call=true storage="rclick.ks" target="*rclick" enabled=true]
[backlay]
[image storage="black" layer=base page=back]
[trans method=crossfade time=600]
[wt]

[current layer=message page=fore withback=ture]
[layopt layer=message page=fore visible=true]
[position layer=message page=fore frame="" opacity=64 left=10 top=330 width=620 height=140 marginl=10 margint=5 marginr=10 marginb=5]


[wait time=1000]
[backlay]
[image storage="bgi02" layer=base page=back]
[trans method=crossfade time=600]
[wt]
[cm]
[backlay]
[image layer=0 page=back storage="c01" visible=true left=155 top=85]
[trans method=crossfade time=600][wt]
【佳乃】[r]
大家好![l][r]
现在我们就直接开始KRKR教学ADV啦![l][r]
[backlay]
[freeimage layer=0 page=back]
[trans method=crossfade time=600][wt]
[cm]
[backlay]
[image layer=0 page=back storage="c02" visible=true left=191 top=54]
[trans method=crossfade time=600][wt]
【观铃】[r]
大家好!我是观铃。[r]
请多关照。[l][r]
[backlay]
[freeimage layer=0 page=back]
[trans method=crossfade time=600][wt]
[cm]
[image layer=0 page=fore storage="c01" visible=true left=0 top=85]
[image layer=1 page=fore storage="c02" visible=true left=351 top=54]

【佳乃&观铃】[r]
这次就由我们一起为大家简单说明一下这个KRKR基础教学ADV例子的一些内容。[l][r]
虽然时间很短,但是我们会加油的![l][r]

[freeimage layer=0 page=fore]
[freeimage layer=1 page=fore]
[backlay]
[freeimage layer=base page=back]
[trans method=crossfade time=1000]
[wt]
[stopbgm]

2.下面是代码的解释:

*eps|X月X日 基础教学演示:设定进度的储存点。KRKR中进度的储存点都需要通过标签手动设定。其中"|"后面是存档信息。

[rclick call=true storage="rclick.ks" target="*rclick" enabled=true]:这里有个新建的rclick.ks文件,后面再说。具体参数值如下:

rclick

:鼠标右键属性代码(默认状态下为消除文字层)。
参数:
call:值为true或false,开启是否进行内容呼叫。
jump:值为true或false,开启是否进行内容跳跃。
target:同一文本内内容的指定,call或jump为true时才有效。
storage:其他文本的内容的指定,call或jump为true时才有效。
enabled:值为true或false 是否开启鼠标右键。

[backlay]
[image layer=0 page=back storage="c01" visible=true left=155 top=85]
[trans method=crossfade time=600][wt]

[image layer=0 page=fore storage="c01" visible=true left=0 top=85]

以上是两种显示人物立绘的方法,注意带有转换效果和不带转换效果瞬间显示的page参数是不同的,只有在page=back或base的情况下,trans命令才生效。

image:是图片显示代码。
参数:
layer(不可省略):层次参数,基本输入为0以上的整数,一般输入为0或1或2,默认设置中前景最大为2(3个)。
storage(不可省略):图片路径,用来表示图片的名称,前后要用引号。
page(可省略,如省略则默认为fore):值为fore或back。表示表层或者里层,如果不加场景转换特效的话,一定要fore,否则图片是不会显示出来的。
visible(可省略):值为true或false,true表示显示次图层,flase则相反。
key(可省略,如省略则不进行透明处理):透明色制定,值为:0x000000或adapt。如果已经决定好透明色,请指定为更换000000为透明色。adapt则是让程序自己寻找图片中使用最多的颜色作为透明色。
left(可省略):图片的左方位置指定,所有图片都是以左上方(坐标:0,0)为基础点。
top(可省略):图片的上方位置指定。

【佳乃】[r]
大家好![l][r]
现在我们就直接开始KRKR教学ADV啦![l][r]

[l]:等待鼠标或按键的点击。
[r]:在末尾换行。
如果是[p]的话就是等待点击且在同一行继续显示。比如:

【佳乃】[r]
大家好![p]
现在我们就直接开始KRKR教学ADV啦![l][r]

这样写入,就成了在“大家好!”后面等待,点击鼠标后在同一行显示“现在我们就直接开始KRKR教学ADV啦!”而不是原先的换行显示。

[backlay]
[freeimage layer=0 page=back]
[trans method=crossfade time=600]:
这是layer=0图层的人物画像的卸载及卸载效果。

五、ADV的中期制作(2):

1.在first.ks里继续输入代码:

*event1|X月X日 基础教学演示2
[backlay]
[image storage="bgi03" layer=base page=back]
[trans method=universal rule="22" vague=1 time=1200]
[wt]
[cm]
[backlay]
[image layer=0 page=back storage="c01" visible=true left=0 top=85]
[trans method=crossfade time=600][wt]
[backlay]
[image layer=1 page=back storage="c02" visible=true left=351 top=54]
[trans method=crossfade time=600][wt]
【佳乃&观铃】[r]
人物立绘和背景的

切换、文字的基本显示以及bgm的播放上面已经演示过了。[l][r]
下面是音效的播放。[l][r]

[playse storage=bgm01.wav]

[cm]
【观铃】[r]
下面是选项的处理。[l][r]

[eval exp="f.test=0"]

[cm]
【观铃】[r]
观铃很喜欢喝粘稠浓厚的果冻果汁哦。[l][r]
[cm]
嗯嗯……我认为:[r]
[link target=*slct01]确实很好喝啊。[endlink][r]
[link target=*slct02]还是不能理解这种口味。[endlink]
[s]
*slct01
[eval exp="f.test=f.test+5"]
[cm]
【观铃】[r]
确实是这样呢。[l]
[jump target=*snext01]
[s]
*slct02
[eval exp="f.test=f.test+0"]
[cm]
【观铃】[r]
是吗……。[l]

*snext01
[cm]
【佳乃】[r]
下面是对刚才选择的评估。[l][r]
[if exp="f.test>=5"]
选择了有利于好感度上升的选项呢。[l][r]
[endif]
[if exp="f.test<5"]
好感度还不够,继续加油咯[l][r]
[endif]
[cm]
【佳乃&观铃】[r]
这次的KRKR基础教学ADV的演示到这里就结束了。[l][r]
希望能够对您有所帮助。[l][r]
[cm]
【佳乃&观铃】[r]
另外,欢迎大家指出本次教学的不足之处,以便改进和完善。[l][r]
也希望大家在对KRKR有这样一个初步的了解以后,能够继续研究学习。[l][r]
[cm]
【佳乃&观铃】[r]
最后,祝大家都能制作出自己满意的ADV来。[r]
谢谢大家,再见![l][r]

[backlay]
[freeimage layer=0 page=back]
[trans method=crossfade time=600][wt]
[backlay]
[freeimage layer=1 page=back]
[trans method=crossfade time=600][wt]
[cm]

2.下面是代码的解释:

[trans method=universal rule="22" vague=1 time=1200]:使用遮片效果进行转换,需要指定所采用的遮片文件和vague参数。vague为0以上整数,表示领域值。遮片文件都在course\data\rule文件夹内,网上下载的KRKR自带38个遮片效果。
[playse storage=bgm01.wav]:播放音效,用法类似playbgm。如果在这句脚本后加入[ws],则意为等待音效播放结束,其间游戏会一直播放bgm01,直到其结束才进行下一步。
[eval exp="f.test=0"]:变量的处理,将变量test赋值为0。其中,f.为系统变量;sf.为一时变量。

[eval exp="f.test=f.test+5"]:变量的运算。运算符有+、-、*、/、\(整除)等。

[if exp="f.test>=5"]
选择了有利于好感度上升的选项呢。[l][r]
[endif]:
这是条件判断。这个是很重要的语句,比如在游戏中,对某个人物的好感达到一定值后才可以激发特殊事件,要好好记住这个分支脚本语句。

六、ADV的中期制作(3):

1.在first.ks里继续输入代码:

*ending
[cm]
[stopse]
[backlay]
[image storage="black" layer=base page=back]
[trans method=crossfade time=600]
[wt]
[text off]
[call storage=staff.ks target=*staff]
[text on]
[stopbgm]
[gotostart ask=false]


2.代码解释:

[call storage="staff.ks" target=*staff]:这是文本跳转。这里

又需要新建一个叫staff.ks的文件,后面再说。

[gotostart ask=false]:表示不询问直接回到标题画面。

七、ADV的中期制作(4):

1.标题画面的存档和退出的制作:

在first.ks里继续写入:

*titleload

[er]
[nowait]
[locate y=200]
[style align=center]
[font color=0x000000 shadow=false]
[link target=*lt0][emb exp="kag.getBookMarkPageName(0)"][endlink][r]
[link target=*lt1][emb exp="kag.getBookMarkPageName(1)"][endlink][r]
[link target=*lt2][emb exp="kag.getBookMarkPageName(2)"][endlink][r]
[link target=*lt3][emb exp="kag.getBookMarkPageName(3)"][endlink][r]
[link target=*lt4][emb exp="kag.getBookMarkPageName(4)"][endlink][r]
[link target=*title]返回[endlink][r]
[style align=default]
[endnowait]
[s]

*lt0
[load place=0]
[jump target=*title]
*lt1
[load place=1]
[jump target=*title]
*lt2
[load place=2]
[jump target=*title]
*lt3
[load place=3]
[jump target=*title]
*lt4
[load place=4]
[jump target=*title]


*titleexit
[cm]
[stopbgm]
[backlay]
[image storage="black" layer=base page=back]
[trans method=crossfade time=600]
[wt]
[close ask=false]

2.代码解释:

[style align=center]:文字或按钮水平居中显示。
[link target=*lt0][emb exp="kag.getBookMarkPageName(0)"][endlink][r]:其实也是一种连接的形式,用emb exp="kag.getBookMarkPageName(0)"调用了系统存档的信息。这里一共设定了5处存/读档位置。

*lt0
[load place=0]
[jump target=*title]:
这读取进度的处理,place就是进度编号了。

[close ask=false]:不询问直接关闭程序。

八、ADV的中期制作(5):

1.在data\scenario目录下,新建一个记事本文件,命名为rclick.ks。

注意:把“文件夹选项”打开,必须把“隐藏已知文件的扩展名”前面的对号删除,才能看见你所有文件的扩展名。

最后这个文件应该叫:"rclick.ks",而不是叫"rclick.ks.txt"


2.以下是rclick.ks的内容,用于右键菜单的制作。打开后输入:

*rclick
[rclick enabled=false]
[clickskip enabled=false]
[tempsave]
[history ōutput=false]
[mapdisable layer=0 page=fore]
[backlay]
[layopt layer=message1 page=back visible=true]
[layopt layer=message0 page=back visible=false]
[current layer=message1 page=back]
[position left=80 top=60 width=640 height=480 ōpacity=58]
[eval exp="f.r_first=true"]

*menu
[er]
[nowait]
[locate y=100]
[style align=center]
[link target=*hide]消除讯息[endlink][r]
[link target=*history]讯息回顾[endlink][r]
[link target=*load]读取进度[endlink][r]
[link target=*save]保存进度[endlink][r]
[link target=*gotostart]返回标题[endlink][r]
[link target=*ret]回到游戏[endlink][r]
[style align=default]
[endnowait]
[current layer=message1 page=fore]
[if exp="f.r_first"]
[trans time=1000 rule=f0101 vague=128]
[wt]
[endif]
[eval exp="f.r_first=false"]
[s]

*ret
[tempload bgm=false se=false backl

ay=true]
[trans time=300 rule=5 vague=128]
[wt]
[rclick enabled=true]
[clickskip enabled=true]
[return]

*hide
[hidemessage]
[jump target=*menu]

*history
[showhistory]
[jump target=*menu]

*load
[er]
[nowait]
[locate y=100]
[style align=center]
[link target=*lt0][emb exp="kag.getBookMarkPageName(0)"][endlink][r]
[link target=*lt1][emb exp="kag.getBookMarkPageName(1)"][endlink][r]
[link target=*lt2][emb exp="kag.getBookMarkPageName(2)"][endlink][r]
[link target=*lt3][emb exp="kag.getBookMarkPageName(3)"][endlink][r]
[link target=*lt4][emb exp="kag.getBookMarkPageName(4)"][endlink][r]
[link target=*menu]返回[endlink][r]
[style align=default]
[endnowait]
[s]

*lt0
[load place=0]
[jump target=*menu]
*lt1
[load place=1]
[jump target=*menu]
*lt2
[load place=2]
[jump target=*menu]
*lt3
[load place=3]
[jump target=*menu]
*lt4
[load place=4]
[jump target=*menu]

*save
[er]
[nowait]
[locate y=100]
[style align=center]
[link target=*st0][emb exp="kag.getBookMarkPageName(0)"][endlink][r]
[link target=*st1][emb exp="kag.getBookMarkPageName(1)"][endlink][r]
[link target=*st2][emb exp="kag.getBookMarkPageName(2)"][endlink][r]
[link target=*st3][emb exp="kag.getBookMarkPageName(3)"][endlink][r]
[link target=*st4][emb exp="kag.getBookMarkPageName(4)"][endlink][r]
[link target=*menu]返回[endlink][r]
[style align=default]
[endnowait]
[s]

*st0
[save place=0 ask=true]
[jump target=*menu]
*st1
[save place=1 ask=true]
[jump target=*menu]
*st2
[save place=2 ask=true]
[jump target=*menu]
*st3
[save place=3 ask=true]
[jump target=*menu]
*st4
[save place=4 ask=true]
[jump target=*menu]


*gotostart
[gotostart ask=true]
[jump target=*menu]

3.代码解释:

[tempsave]:与[tempload]配合使用,用于临时存取当前的一些系统状态。
[tempload bgm=false se=false backlay=true]:读取临时储存的系统信息。
[mapdisable layer=0 page=fore]:定义的画像领域无效化。
[er]:现在操作对象的message layer上的文字消除。
[hidemessage]:隐藏文字框。
[showhistory]:显示历史消息记录。
[save place=0 ask=true]:储存进度的处理,place为进度编号。

九、ADV的中期制作(6):

1.在data\scenario目录下,新建一个记事本文件,命名为staff.ks。

2.以下是staff.ks的内容,用于片尾的制作。打开后输入:

*staff
@playbgm storage=bgm02
@clickskip enabled=false
@bg storage=white time=1000
@staffrollinit
@font size=24 color=0x000000 edge=false shadow=false
@staffrolltext x=40 y=0 text=""
@staffrolltext x=40 y=480 text="KRKR基础教程 入门篇"
@font size=19 color=0x000000 edge=false shadow=false
@staffrolltext x=40 y=60 text=剧本:不是我写的
@staffrolltext x=40 y=60 text=程序:我修改别人的,很辛苦
@staffrolltext x=40 y=60 text=背景素材:你自己的
@staffrolltext x=40 y=20 text=这行:是凑字数
@staffrolltext x=40 y=60 text=音乐:你

自己的
@staffrolltext x=40 y=20 text=这行:撑个门面,滚动时间长点
@staffrolltext x=40 y=20 text=这行:撑个门面
@staffrolltext x=40 y=20 text=这行:撑个门面
@staffrolltext x=40 y=20 text=这行:撑个门面
@staffrolltext x=40 y=60 text=引擎:
@staffrolltext x=40 y=20 text="吉里吉里2/ KAG3"

@staffrolltext x=40 y=60 text="KAGeXpress ver 3.0 "

@staffrolltext x=40 y=60 text="制作:"
@font size=16
@staffrolltext x=40 y=20 text="Salles&不知名作者(北京时间:2010年1月31日18:18)"

@staffrollstart height=1060 time=25000
@wait time=30000 canskip=false
@staffrolluninit
@wait time=1000
@bg storage=bgi03 time=1200
@wait time=4000 canskip=false
@cl layer=base time=1200
@clickskip enabled=true
@return

3.代码解释:

@staffrollinit

@staffrollstart height=1060 time=25000
@wait time=30000 canskip=false
@staffrolluninit
这是文本翻滚的语句,time=25000是文本上滚的速度,wait time=30000是在播放这段上滚文本时,系统一共等待的时间。

@return:这是返回脚本,返回到first.ks里:

*ending
[cm]
[stopse]
[backlay]
[image storage="black" layer=base page=back]
[trans method=crossfade time=600]
[wt]
[text off]
[call storage="staff.ks" target=*staff]
[text on]
[stopbgm]
[gotostart ask=false]

返回到[text on]这行。

十、后记:

一个简单的ADV就这样制作完成了。

下面的工作是对素材及脚本进行打包,过程如下:

1.在你的KRKR主目录下找到\tools\krkrrel.exe文件,双击打开。

2.在弹出的对话框中选择需要打包的目录course\data,点击OK。

3.在弹出的对话框中,左上角有三个标签,点击“输出”。

4.输出形式选.xp3形式文件包,在输出文件那里输入你的新工程所在目录KRKR\cousre\data.xp3,然后点击右下角“生成”按键。这样,在你的course目录中,新生成了一个data.xp3文件,这个文件可以取代原来的data文件夹了。

5.将原先的course\data文件夹全部删除。

6.游戏作成。

谢谢大家,本教程至此结束。

这个脚本做出的游戏,有一个BUG,哪位高人可以解决一下:

就是在游戏中,右键菜单里的显示历史信息,居然把菜单的文字也算在内了,并不完全是显示游戏里的文本信息。


9楼的[p]的使用说错了。
[p]是清除现有文本,翻到新的一页。
【佳乃】[r]
大家好![p]
现在我们就直接开始KRKR教学ADV啦![l][r]
这就变成了,先显示
【佳乃】
大家好!
然后等待,鼠标点击后,将上面的文字清除,在新的一页里出现:
现在我们就直接开始KRKR教学ADV啦!

rclick.ks文件内容改动,完善一下,否则原版会在反复右键跳跃时出错。
将rclick.ks里的两个标签内容修改如下:

*rclick
[rclick enabled=true jump=true target=*ret]
[clickskip enabled=false]
[tem

psave]
[history output=false]
[mapdisable layer=0 page=fore]
[backlay]
[layopt layer=message1 page=back visible=true]
[layopt layer=message0 page=back visible=false]
[current layer=message1 page=back]
[position left=10 top=10 width=780 height=580

opacity=200]
[eval exp="f.r_first=true"]

*ret
[tempload bgm=false se=false backlay=true]
[trans time=300 rule=5 vague=128]
[wt]
[rclick enabled=true call=true storage="rclick.ks" target=*rclick]
[clickskip enabled=true]
[return]

这里新增一个功能,就是原来14楼的脚本,在右键菜单弹出来后,不能点右键返回游戏;这个新脚本,可以点右键返回游戏。
按原脚本,在*ret标签里只写[rclick enabled=true]的话,反复右键跳跃会报错,因call与return数目不相当而报错。

相关主题