.ch 文件是脚本解释器的可执行文件,也是游戏章节的剧本。
下面是所有支持的指令以及用法描述。
指令基本规则
所有函数都以美元符号 $ 开头,并且必须以分号 ‘;’ 结尾,每一行代表一条指令。
使用 ‘#’ + ‘数字’ 的方式给指令打上标签,例如 $func(); #123,便于标签跳转指令进行定位,标签的位置必须在分号 ‘;’ 的后方。
使用 // 表示注释内容,所有 // 后方的文本将会被解释器跳过。
指令集
| 指令 | 参数 | 描述 | 示例 |
| $message | INT 角色ID,STRING 消息内容 | 角色向玩家发送一条消息 | $message(1, “有人在线吗?”); |
| $message_image | INT 角色ID,STRING 图片ID | 角色向玩家发送一条图片消息 | $message_image(1, “S1-03”); |
| $selections | INT 角色ID,STRING 选项1,STRING 选项2,…,STRING 选项n | 阻塞式选项,需要玩家操作 | $selections(1, “我在”, “谁啊?”); |
| $day_mark | INT 天数 | 用于标记一天的开始,不允许重复 | $day_mark(1); |
| $user_offline | INT 角色ID,INT 下线时间(秒) | 角色下线 | $user_offline(1, 18000); |
| $new_contact | INT 角色ID,BOOL 是否开放个人资料,BOOL 是否需要通过好友申请(暂不支持,为 false 即可) | 给玩家添加一个联系人 | $new_contact(1, false, false); |
| $discover | INT 角色ID | 开放角色的个人资料给玩家 | $discover(1); |
| $jump_t | INT 标签ID | 跳转到指定标签位置开始执行 | $jump_t(1); |
| $tips_info | INT 角色ID,STRING 消息内容 | 发生一条普通系统消息 | $tips_info(1, “章节已完成”); |
| $tips_success | INT 角色ID,STRING 消息内容 | 发生一条成功系统消息 | $tips_success(1, “用户已上线”); |
| $tips_warn | INT 角色ID,STRING 消息内容 | 发生一条警告系统消息 | $tips_warn(1, “网络连接已断开”); |
| $tips_error | INT 角色ID,STRING 消息内容 | 发生一条错误系统消息 | $tips_error(1, “消息未送达”); |
| $publish_diary | STRING 日记内容 | 添加一条玩家日记 | $publish_diary(“这谁啊?我怎么不记得我什么时候装过这个软件?”); |
| $publish_dynamimc | INT 角色ID,STRING 动态内容,STRING 图片ID | 角色发布一条图片动态 | $publish_dynamic(1, “我这里能看见星星,你呢”, “S1-01”); |
| $unlock_dic | INT 词条ID | 解锁新词条 | $unlock_dic(1); |
| $unlock_pictorial | INT图鉴ID | 解锁新图鉴 | $unlock_pictorial(1); |
| $unlock_chapter | INT 章节ID | 解锁新章节 | $unlock_chapter(2); |
| $game_over | INT 角色ID,INT 结局类型(0为BE,1为通关) | 章节游戏结束 | $game_over(1, 1); |
使用示例
// chapter1_zh-cn.ch
$new_contact(1, false, false);
$day_mark(1);
$tips_success(1, "用户已上线");
$message(1, "喂!有人看得到吗?");
$message(1, "有人在线吗?");
$message(1, "喂喂!有人吗?");
$selections(1, "我在", "谁啊?");
$jump_t(-1);
$jump_t(-1);
$message(1, "太好了!真的有人啊!"); #-1
$message(1, "我还以为这个软件没用呢!");
$unlock_dic(1);
$message(1, "快帮帮我!");
// ......
