以下是一个比较复杂的右键菜单范例,可以在右键菜单内进行查看历史记录,存储,读取等操作。
例:
*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 的指令说明。