1.2Sakura语法基础篇

7年前 (2017-01-04) fancyang sakura语法及范例 0评论 已收录 9702℃

•Sakura语法基础篇
前言
一般指令
\0
\1
\s[id]
\b[id]
\n
\n[half]
\w?
\_w[?]
\c
\x
\t
\_q
\_s
\_n
\_l[x,y]
\e
选择性指令:
\q[title,id]
\q[title]
\*
文字编码:
其他执行指令:
\_v[档名]
\_V
\I[id]
\v
\4
\5
\-
特殊指令
\m[umsg,wparam,lparam]
r2
\![lock,repaint]
\![unlock,repaint]
\![open,browser]
\![open,mailer]
\![open,teachbox]
\![open,communicatebox]
\![set,alignmentondesktop,top]
\![set,alignmentondesktop,bottom]
\![raise]
\![enter,passivemode]
\![leave,passivemode]
\![open,inputbox]
\![open,inputbox,OnUserInput,4000]
\![change,ghost]
\![change,ghost,さくら]
环境变数/meta字串:
基础情报用:
特殊情报用:
AI用:
构造用:
进阶资料:

前言 †
Sakura语法為撰写人格基础中的基础,所有的偽AI都会遵循以下的Sakura语法标準来进行文字讯息的处理以及取得系统变数、事件等。

儘管看似复杂庞大,但其实还是它还是遵循著一个类似人类思考模式的规则喔~Sakura语法的写法主要规律如下:

起始.指定作用端(看是主体还是使魔).指定作用端的表情图片(如不指定则用预设值).叙述的文字/变数.结束也就是说,在每个句子之中你必须一一告知核心程式你希望作的关键动作。完整的叙述范例:

\0\s[0]大家好,\w8我的名字是晴子。\e以上為指定主体端说话(\0),表情為0号图片(\s[0]),在说完"大家好"之后停顿400毫秒(\w8),在继续说"我的名字是晴子",最后结束这一段文字讯息(\e)。

在文字讯息之中,除了插入对话标籤(如停顿)之外,也可以自己设计变数来达到每次说出的话语或关键名词都不相同的效果,关於这个将会在华和梨篇详细谈及。

那麼就请大家先熟悉下列的语法标籤(建议配合人格档案对照观看)


一般指令
以”\”开头的特定字串,是用来控制、以及执行指令的指令。

格式:


\0 †
以下為sakura(人格本体)端对话框


\1
以下為kero(人格的搭档,或称為使魔)端对话框


\s[id]
指定要出现的人物表情id编号。如果id编号设定為-1的话,则可以让人物图像消失,成為不可视的状态。现用对话端的人物图像以id进行切换。id為-1时图像暂时消失。


\b[id] †
现用对话框的Balloon外框以id切换。id為-1时Balloon外框暂时消失。


\n †
换行


\n[half] †
换行时只换半行高


\w? †
简易形的等待指令,等待时间為50*?毫秒,注意没有方括号”[]”注意不要跟下一个指令搞混了。(一般都使用w8)


\_w[?] †
精确的等待指令,等待?毫秒。


\c †
清除现用对话框区域,文字座标回到(0,0)。


\x †
显示暂停,等待滑鼠点击。滑鼠点击后继续显示。


\t †
时间极限区段,时间极限区段中不会受到按右键/双点选单及自动检查等事件妨碍执行,本指令到\e前都有效。


\_q †
快速显示区段,本区段中之所有文字讯息之显示均不等待。本指令一直有效到下一个\_q及\e时才解除。


\_s †
同步会话选项,本选项中双方会同时显示对话。本指令一直有效到下一个\_s及\e时才解除。


\_n †
自动换行开关。


\_l[x,y] †
将现用对话框移动到绝对座标(x,y)。


\e †
日文中的えんいー ,代表一个指令列结束的意思。


选择性指令: †

\q[title,id] †
以title表示的选项,选择后对应SHIORI的OnChoiceSelect事件会发生。id為识别代号及其参数。选项最大可到255个。


\q[title] †
第一参数title表示的title选项。选择后第二参数event為对应SHIORI的事件。第三参数起皆為reference(读入的变数)。选项最大可到255个。


\* †
下一个选项不暂停。


文字编码: †
•\_u[0x0000] 嵌入UCS-2码(应该指Unicode)。
•\_m[0x00] 嵌入ASCII码。
•\&[id] 参照其他编码(须有编码对应档)。

其他执行指令: †

\_v[档名] †
指定拨放的wav/mp3/wma档。必须与使用该档的人格在"同一目录"下,即使以绝对路径指定的档案也不行。即使档案不存在也不会导致错误发生。


\_V †
等待以\_v指令拨放完毕的档案。无视於尚未拨放或已拨放完毕的情况。


\I[id] †
拨放以id指定的动画档。


\v †
推到最上层显示。


\4 †
现用对话框强制往角色离开的一定距离移动,通常用於对话框与角色重叠时使用。


\5 †
现用对话框移动到接触角色為止。


\- †
即刻停止。


特殊指令: †

\m[umsg,wparam,lparam] †
仅限SSTP权限的script使用。执行HWnd标头设定的windowhandle对应的postmessage(umsg,wparam,lparam)。


r2 †

\![lock,repaint] †
暂停重新绘图,也就是锁住,此為区段参数(需要明确的解除)。


\![unlock,repaint] †
解除暂停重新绘图。


\![open,browser] †
起动本机瀏览器,第3参数以后為瀏览器的啟动参数。


\![open,mailer] †
起动本机邮件软体,第3参数以后為邮件软体的啟动参数。


\![open,teachbox] †
开啟教导对话列。


\![open,communicatebox] †
开啟通讯对话列。


\![set,alignmentondesktop,top] †
移动到桌面上端。


\![set,alignmentondesktop,bottom] †
移动到桌面下端。


\![raise] †
使用者定义事件,第2参数為事件识别标籤。第3参数起皆為reference标头,并以双引号(“”)中包起来。例如:

\![raise,OnUserEvent, r0, r1, r2, r3, r4, r5, r6, r7]
\![raise,OnUserEvent,”0,100”]
\![raise,OnClose]↑
\![enter,passivemode] †

\![leave,passivemode] †
进入/解除被动模式控制指令,enter為进入,leave為解除。被动模式在明确的解除之前都有效。

被动模式式抑制系统中断的一种模式,主要是被游戏使用。被动模式有以下的特徵:

•没有跳出式选单。
•不检查邮件。
•不会辨识首字大写。
•不会自动转换。
•选项不暂停。
•显示出的画面不随时间经过而消失。
•档案无视於拖放动作。
•无视於双点nar档案。
•OnSurfaceRestore无作用。
•Cantalk通常是无效的(OnSecondChange或OnMinuteChange来自本身呼叫)。
•关闭通讯栏或是无法开啟。
•无法最小化。
•无法结束。
被动模式中事件事链形的,并不会形成SHIORI内的主迴圈。原因是被动模式在链形中若中断会造成无法操作。


\![open,inputbox] †
开啟输入栏,输入文字后按enter就会出现在第3参数指定的使用者定义事件,设定r0返回输入模式,也可设定r0在什麼都不输入的情况下以limitetime设定时间自动返回并显示”timeout”,但是若limittime為-1时则不发生time out的事件。Limittime的单位為毫秒(ms)。例如:


\![open,inputbox,OnUserInput,4000] †
在被动模式下,文字输入的时间限制结束前,使用者什麼事也不能做。


\![change,ghost] †
第3参数為ghost名称,可以指定為现用的ghost也可以变更。若指定的ghost不存在则什麼都不显示。例如:


\![change,ghost,さくら] †
•若第3参数指定為”random”则从现有的所有ghost中随机变换。
•若第3参数指定為” sequential”, 则从现有的所有ghost中依序变换。
•不论如何OnGhostChanging事件都不会发生

环境变数/meta字串: †
以%开头的特定字串组合称為meta字串,用来置换显示时的字串。


基础情报用: †
%month 现在月份。
%day 现在日。
%hour 现在时。
%minute 现在分。
%second 现在秒。
%username 使用者名称。
%selfname 角色名称(正确)。
%slefname2 角色名称(错误)。
%keroname kero名称。↑
特殊情报用: †
%screenwidth 指定萤幕宽,若為多萤幕显示时会无法取得主监视器的大小。
%screenhight 指定萤幕高,若為多萤幕显示时会无法取得主监视器的大小。
%exh 连续啟动时间。
%songname 最后认识的曲名。↑
AI用: †
%ml 名词(集合)。
%mc 名词(公司名)。
%mh 名词(店名)。
%mt 名词(技术)。
%me 名词(食物)。
%mp 名词(地名)。
%m? 名词(非限定)。
%dms 像「~に~する~」之类,以复数连结的长名词↑
构造用: †
#entry為指示入口用,用法如下:

#temp
\h\s0%j[#temp0]\e
#temp0
カードキャプター%ms※以上配合SSTP/1.2使用

忽略顺序:

若将\\打在一起时会忽略\。
若将\%打在一起时会忽略%。
将\放在方括号内时会忽略方括号。↑
进阶资料: †
•樱花语法全列表

--------------------------------------------------------------------------------

 

博主

这货来去如风,什么鬼都没留下!!!

相关推荐

嗨、骚年、快来消灭0回复。

000681;您的ip地址是127.0.0.1; 当前围观人数:2

隐私政策

橘花2支持在线更新了,点我下更新支持文档然后托给橘花,再点SSP面板右键更新