右键菜单是指

 点下鼠标右键后呼叫的 KAG 的游戏界面。
 例如使用右键来调出存储/读取画面。

总之先上范例

 调用右键菜单的指令是 rclick 。使用这个指令、可以设定点下右键后呼叫的剧本段落。此外,也可以不使用呼叫(调用菜单后,使用return可以返回游戏),而是直接跳转到某个标签(右键跳跃后无法返回,等同于jump)。

 例如,在 rlick.ks 里写入以下内容。

例:
*rclick
@rclick jump=true storage="rclick.ks" target="*exit" enabled=true
@current layer=message1
@layopt layer=message0 page=fore visible=false
@layopt layer=message1 page=fore visible=true
@er
这里是右键菜单。
[s]

*exit
@layopt layer=message1 page=fore visible=false
@layopt layer=message0 page=fore visible=true
@current layer=message0
@rclick call=true storage="rclick.ks" target="*rclick" enabled=true
@return

 接下来,例如说,我们在 first.ks 里写入以下内容。
@rclick call=true storage="rclick.ks" target="*rclick" enabled=true


 这样的话、点下鼠标右键后就会呼叫 rclick.ks 的 *rclick 标签。
 如上的例子,在 rclick.ks 内、首先进行了一次右键操作的更改,将右键操作设定为“跳转到 *exit” 。这样的话、调出右键菜单后,再点一次右键,就会返回游戏中了。
 在菜单调用的时候隐藏显示一般游戏对话的 文字层 0 。这样的话、 文字层 0 上即使有选择支等等也暂时无法操作。
 同时显示文字层 1 、在文字层 1 上显示「这里是右键菜单。」,并用 [s] 等待玩家操作。

比较难的例子

 以下是一个比较复杂的右键菜单范例,可以在右键菜单内进行查看历史记录,存储,读取等操作。
例:
*sub1
@tempsave
; ↑临时保存游戏状态
@history output=false
; ↑右键菜单内的文字不会输出在历史记录内
@mapdisable layer=0 page=fore
; ↑假如当前显示着地图的话,就用这种方式使地图操作无效(和隐藏文字层是一样的,为了防止误操作)
@backlay
@layopt layer=message1 page=back visible=true
; ↑右键菜单将使用 文字层 1 来显示文字
@layopt layer=message0 page=back visible=false
@current layer=message1 page=back
@position left=0 top=0 width=640 height=480
@eval exp="f.r_first=true"
; ↑从游戏打开右键主菜单时,使用 trans 效果的标记(从下一级菜单,如存储菜单返回主菜单则不使用 trans 效果显示)。
;
*menu
@er
@nowait
[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]
@endnowait
@current layer=message1 page=fore
@if exp="f.r_first"
@trans time=500 rule=trans1 vague=128
@wt
@endif
@eval exp="f.r_first=false"
@s

*ret
; 从右键菜单返回游戏
@tempload bgm=false se=false backlay=true
;使用tempload的话,右键菜单里所有更改的状态都会复原 ;例如历史记录会恢复输出,文字层恢复显示等 @trans time=500 rule=trans1 vague=128
@wt
@return

*hide
; 隐藏文字层
@hidemessage
@jump target=*menu

*history
; 显示历史记录
@showhistory
@jump target=*menu

*load
; 读取游戏
; emb exp= .... 这部分请参考 TJS进阶使用预备知识 的说明
@er
@nowait
[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]
@endnowait
@s

*lt0
@load place=0 ask=true
@jump target=*menu
*lt1
@load place=1 ask=true
@jump target=*menu
*lt2
@load place=2 ask=true
@jump target=*menu
*lt3
@load place=3 ask=true
@jump target=*menu
*lt4
@load place=4 ask=true
@jump target=*menu

*save
; 存储游戏
; emb exp= .... 这部分请参考 TJS进阶使用预备知识 的说明
@er
@nowait
[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]
@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


 此外,关于在存档时保存缩略图的情况,有一些需要注意的要点,请参考 locksnapshot 和 unlocksnapshot 的指令说明。