•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使用

忽略顺序:

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

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

1.2Sakura语法基础篇相关推荐

  1. JavaSE笔记(语法基础篇)

    文章目录 语法基础篇 第1章 概述 1.1 计算机组成部分 1.2 人机交互方式 1.3 计算机语言 1.4 软件与软件开发 1.5 Java语言介绍 1.6 Java开发环境搭建 1.7 常见错误 ...

  2. SQL——语法基础篇(上)

    虽然 SQL 是声明式语言,我们可以像使用英语一样使用它,不过在 RDBMS(关系型数据库管理系统)中,SQL 的实现方式还是有差别的.今天我们就从数据库的角度来思考一下 SQL 是如何被执行的. O ...

  3. python基本语法语句-python 语法基础篇 一

    安装篇 编辑篇: 编辑python 一 : 在终端环境下输入python命令,回车键运行.这种方式称为 交互方式. 1️⃣ 打开终端: 2️⃣ 输入python 回车 3️⃣ 输入python 语法 ...

  4. 英语语法基础篇-foundation

    2010年四级语法讲义   主讲:屠浩民 欢迎使用新东方在线电子教材 句子类型:英语语言由词汇和语法构成.大学阶段的语法是融入到阅读.写作.完形.翻译等题目中,帮助读者更好地推测作者想要表达的意愿和情 ...

  5. markdown编辑语法基础篇

    文章目录 欢迎使用markdown编辑语法 1.Markdown简介 1.1 markdown是什么? 1.2为何使用markdown 2.基本语法 2.1 快捷键 2.2代码块 2.3 分级标题 写 ...

  6. python 语法基础篇

    文章目录 标识符 变量 注释 输入输出 占位符 方式一: 方式二: format 方式三: f-string 数据类型 数字型 字符串 列表 字典 元组 集合 数据类型转换 可迭代对象 通用方法 运算 ...

  7. 英语语法基础篇-书写规则

    1.移行 所谓"移行",就是指在英语书写当中,如果写到一行末尾而单词还没写完,就要把其余的字母移至下一行. (1)单音节词无论长短都不能拆开移行 book  sit  pen  b ...

  8. PHP语法基础篇——除法取整和取余数

    1. ceil - 进一取整函数 函数详解 float ceil ( float value ) 返回不小于 value 的下一个整数,value 如果有小数部分则进一位.ceil() 返回的类型仍然 ...

  9. 笔记连载 | Day6 FPGA三种建模方式区别及Verilog语法基础篇

    听说99%的同学都来这里充电吖 本系列为线下学员学习笔记整理分享,如有想要报名参加线下培训,可以点击以下超链接文章了解,购买开发板可以到叁芯智能科技企业淘宝店下单. 各类研修班 | FPGA就业研修班 ...

  10. Flutter基础篇(2)-- 老司机用一篇博客带你快速熟悉Dart语法

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://www.jianshu.com/p/3d927a7bf020 转载请标明出处: https://www.jianshu.com/p/ ...

最新文章

  1. How is ABAP keyword highlight implemented in Chrome
  2. idea main scanner 输入_哇晒,你竟然不知道idea的 Live Templates
  3. javascript判断是否手机设备+滑动事件
  4. Swift3 使用系统UIAlertView方法做吐司效果
  5. Flask安装首页显示
  6. 20年来从不涨价,这个地方用1块钱的打火机,垄断了全球70%的市场
  7. bzoj2440:[中山市选2011]完全平方数
  8. 迷你世界无限迷你币体验服务器,迷你世界体验服无限迷你币
  9. 视图数据共享之SESSION/CACHE
  10. python无限锁屏_定时锁屏程序,Python祝你原理猝死!
  11. 《软件质量保证与测试》学习笔记【第一章 软件测试基本概念】
  12. 操作无法完成因为其中的文件夹或文件已在另一个程序中打开
  13. 图新地球为什么很模糊,白球、看图、下载问题深度剖析
  14. 【趣味实践】Stable Diffusion绘制中秋美景
  15. 百度云破解不限速版(绿色免安装)
  16. 只有A2L文件如何连接INCA
  17. 上半年要写的博客文章27
  18. 【C++】抽象和类(2)--如何实现类成员函数?
  19. 帽子接球小游戏(二)--接球的实现
  20. python合并两个列表并去重_python合并多个txt文件

热门文章

  1. MySQL中Packet for query is too large (1327736 1048576)错误
  2. 电子电路基础 (14)——稳压电源的工作原理分析
  3. openwrt路由器samba拒绝访问
  4. JavaScript实现
  5. 走楼梯c语言程序,动态规划走楼梯
  6. 2009牛年春节祝福短信集锦
  7. 真正的落雷(打印图形练习题)C语言
  8. 8.5 向量应用(三)——知识补充和梳理(夹角、距离和平面束)
  9. Java设置excel单元格锁定状态
  10. 大数据分析-实验五 pdfminer