KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

吉里吉里2教程集合帖

[ 73473 查看 / 13 回复 ]

回复:吉里吉里2教程集合帖

小技巧TIP:

=============================
关于文字剧本转成游戏剧本中,名字后indent的批量替换小技巧。
=============================
例如文字剧本:

观铃:啊?恐龙?哪里?
往人:恐龙去西瓜田了!
观铃:啊?我们快去西瓜田……

这段要转成名字后面带有indent的缩进效果的方式。
那么就可以小小利用一下[]这种代码编写方式。
将“观铃:”替换成“[观铃]”,“往人:”替换成“[往人]”
而代码段部分则就可以加入indent了,如下:

@macro name=观铃
观铃:
@indent
@endmacro

@macro name=往人
往人:
@indent
@endmacro

而indent之后应该有一个endindent来结束缩进。
这个就要小小利用一下偷懒脚本了。如下:

@macro name=lrc
@l
@r
@cm
@endindent
@endmacro

代码使用即[lrc]这种形式。(基本上每个人物对话之后都需要清屏一次的,有极少数特殊情况可以单独修改)
那么再在每句的后面加上一个[lrc]就OK了……

其实就是手动加[lrc]也是很快的,左手按住CTRL,准备按V,然后鼠标点行尾,V一下,点下一个行尾,V一下……效率也很高的。
当然,还有更高效率的机械方法……

利用WORD的特殊字符替换功能。
在WORD的替换栏中输入“^p”(引号不算)字符就代表着段落符,也就是普通所谓的换行符(HEX:0D 0A)。
利用这个功能可以批量将有文字的行的行尾加上[lrc]

第一步:搜索“^p”,替换成“[lrc]^p”,替换全部
结果:所有行的行尾都加上了[lrc],而且就算没有字的行也加上了。
第二步:搜索“^p[lrc]^p”,替换成“^p^p”,替换全部
结果:你会发现,空行的[lrc]已经全数被清理了~


经过几个步骤之后的文字剧本就转化成了游戏中的脚本:

[观铃]啊?恐龙?哪里?[lrc]
[往人]恐龙去西瓜田了![lrc]
[观铃]啊?我们快去西瓜田……[lrc]


该技巧大批量导入剧本时十分省时省力,特此分享  XD
悼念老陈……
南无阿弥多婆夜 哆他伽多夜 哆地夜他 阿弥利都婆毗 阿弥利哆 悉耽婆毗 阿弥唎哆 毗迦兰帝 阿弥唎哆 毗迦兰多 伽弥腻 伽伽那 枳多迦利 娑婆诃
TOP

回复:吉里吉里2教程集合帖

针对简易版1.5的一个修正

;文字框出现
@macro name=texton
@position layer="message" frame="msgframe" visible="true" left="0" top="360" page="fore" color="0x000000" opacity="0"
@endmacro

;文字框消失
@macro name=textoff
@position layer="message" frame="msgframe" visible="false" left="0" top="360" page="fore" color="0x000000" opacity="0"
@endmacro

这部分使用layopt的方式会更好一些(虽然效果没什么区别)

;文字框出现
@macro name=texton
@layopt layer=message visible=true
@endmacro

;文字框消失
@macro name=textoff
@layopt layer=message visible=false
@endmacro


下一个版本中会修正进去的……
TOP

回复:吉里吉里2教程集合帖

这几天在家继续开发《西瓜战争》的同人篇
有些小经验给大家分享一下

------------------------------------------------------
关于变量
------------------------------------------------------
写程序的经常用到变量。
在KRKR中也可以利用变量来完成很多看起来很麻烦实际很简单的事情。
KRKR中的“单纯”的字面意义上的“变量”有三种。
1/ f    举例:f.temp            eval exp="f.temp='丫就一口胡'"
2/ tf    举例:tf.temp            eval exp="tf.temp='丫就一口胡'"
3/ sf    举例:sf.temp            eval exp="sf.temp='丫就一口胡'"

f型的变量为普通变量
tf型的变量为临时变量
sf型的变量为系统变量
这三种变量都可以存储任何数据类型的数据,也可以随时修改删除
那么三种变量的特性都是什么呢?
主要体现在“保存”的方法中。
f型(普通变量),它在整个游戏过程中不会自动清除,并且会在存档时存入存档,在读档时读出并恢复。
tf型(临时变量),它在整个游戏过程中不会自动清除,但是它不会在存档时保存在存档中,同样也不可能在读档时恢复数据。
sf型(系统变量),它比较特殊,它也不会在游戏过程中被自动清除,它也可以存档,但是它存的档并非游戏中的SAVE档案,而是系统档案。即它不会存入游戏存档,但是它会存入系统存档并在游戏启动时读取与恢复。

举个例子来说。(以下采用伪代码)
===============================================
f.temp = 11  / tf.temp = 11  / sf.temp = 11
存档一下。
f.temp = 12  / tf.temp = 12  / sf.temp = 12
读档看看
===============================================
我们在“存档一下”时存档
然后在“读档看看”是读档
如果是f.temp,那么结果是11,因为f.temp存入了存档,然后在读档时进行了恢复
如果是tf.temp,那么结果是void,因为tf.temp未存入了存档,然后在读档时也未初始化,所以是空,即void
如果是sf.temp,那么结果是12,因为sf.temp存入了系统存档而不是游戏存档,在进入“读档看看”前进行了一次新付值12,那么读档后依然是12,不会变。就算你关掉游戏重开,它还会是12。

变量的赋值方法很简单,直接用等于“=”就可以,但是要求是在TJS式中。
例如:
@eval exp="t.temp=10"
这样

那么怎么使用呢?
如果是TJS式,就直接访问好了。如果是在KAG中呢?
如下:
@eval exp="t.temp=1500"
@wait time = "&t.temp"
这个wait语句相当于“@wait time = "1500"”

那么变量方面到此告一段落。
还有一个要注意的就是:mp变量
mp变量是系统给macro特地准备的变量。
例如:
@macro name = test
@wait time = %time
@endmacro
那么这个时候我们会用
@test time = 1500
来使用这macro
那么在这个macro之中,我们可以用“mp.time”来访问从@test time = 1500中输入的1500这个值。
即:
========================
@macro name = test
@wait time = %time
@endmacro
========================
这段代码完全等于
========================
@macro name = test
@wait time = mp.time
@endmacro
========================

恩,关于变量的就到此结束了。
------------------------------------------------------


------------------------------------------------------
关于简单的系统调试

在系统运行过程中(非发布形式运行),按下shift+f1可以叫出调试界面。
我想使用这个东西的人比较少。
我以前调试变量是通过DEBUG的文字部分然后通过emb来输出变量显示。
麻烦不说,累的半死效率还不高。

突然想起曾经汉化过的KRKR的N个截面,有一个“监视界面”,怎么看都是用来调试变量的。

那么按下SHIFT+F1,然后会有一个小工具拦出现。
(代续)
------------------------------------------------------

以后有时间补上关于图层覆盖与系统调试方面的心得。
悼念老陈……
南无阿弥多婆夜 哆他伽多夜 哆地夜他 阿弥利都婆毗 阿弥利哆 悉耽婆毗 阿弥唎哆 毗迦兰帝 阿弥唎哆 毗迦兰多 伽弥腻 伽伽那 枳多迦利 娑婆诃
TOP

回复:吉里吉里2教程集合帖

好帖!突破我半年來的怨念...
(雖然是我自己有eXpress不想用)

終於可以用漂亮的字型了!
TOP