当前位置: 首页 > 文档资料 > KAG 标签文档 v1.0 >

系统

优质
小牛编辑
144浏览
2023-12-01

标签

描述

title

修改窗口标题

cursor

修改鼠标样式

s

停止脚本的读取

close

关闭窗口

截图

locksnapshot

unlocksnapshot

截图

标签跳转

startanchor

gotostart

设定描点

回到设定锚点地方

record

goback

设定游戏的记录点

回到记录点

读取储存

copybookmark

erasebookmark

把一个存档复制到另一个储档中

删除存档

disablestore

是否可读取或储存

store

是否可储存

tempsave

tempload

暂时保存

读取暂时保存的状态

save

load

读取或储存

clearsysvar

清除sflags字典中的内容

clearvar

清除flags字典中的内容

回想模式

recollection

stoprecollection

endrecollection

进入回想模式

暂停回想模式

终止回想模式

脚本

eval

trace

执行代码

执行代码,并显示debug信息

input

弹出输入对话框来给指定变量赋值

autolabel

自动地读取autolabel.ks

interrupt

中断conductor

loadplugin

读取插件

title

说明:

(1) 修改窗口的标题

(2) 内部通过setTitle(elm.name)实现

属性:

name: (string)

例子:

kag.tagHandlers.title(%[name:"abc"]);

cursor

说明:

(1) 设定鼠标的样式

(2) 内部通过setCursor(elm)实现

属性:

pointed: 在button上

click: 按右键时

draggable: 拖曳时

default : 正常时

例子:

@image layer=base page=fore storage="5"

@iscript

var ml=new MessageLayer(kag,kag.fore.base);

ml.setPosition(%[visible:true, draggable:true, left:100, top:200, width:200, height:100]);

kag.tagHandlers.cursor(%[click:"coin.ani", pointed:"banana.ani", "default"=>"horse.ani", draggable:"3d.cur"]);

@endscript

s

说明:

(1) 停止脚本的读取

(2) 内部实现较为复杂,详见代码

例子1:

var game=kag.tagHandlers;

kag.updateBeforeCh=false;

game.ch(%[text:"abc"]);

game.s();

game.ch(%[text:"abc"]);

s在tjs中并不能起到停止的作用

例子2:

abc

@s

abc

只显示一个abc,停止在s上

close

说明:

(1) 关闭窗口

(2) 内部通过closeByScript(elm)实现

属性:

ask: true/false,true时会弹出对话框问是否退出

例子l:

@iscript

kag.tagHandlers.close(%[ask:true]);

@endscript

例子2:

@close ask = true

locksnapshot

说明:

(1) 进行截屏,每进行截屏时必须要使用unlocksnapshot,载屏的图会记录到kag的snapshotLayer中

(2) 内部通过lockSnapshot()实现

例子1:

var game=kag.tagHandlers;

game.locksnapshot(%[]);

kag.fore.base.loadImages(%[storage:"bg"]);

kag.snapshotLayer.visible=true;

kag.snapshotLayer.setPos(0,0,100,100);

locksnapshot每使用一次截屏,必须使用unlocksnapshot,才能进行第二次截屏

例子2:

var game=kag.tagHandlers;

game.locksnapshot();

kag.fore.base.loadImages(%[storage:"bg"]);

kag.snapshotLayer.visible=true;

kag.snapshotLayer.setPos(0,0,100,100);

game.unlocksnapshot();

因为unlocksnapshot了,所以屏幕中并没有显示图像

unlocksnapshot

说明:

(1) 释放kag中的snapshotLayer的空间,具体可能看locksnapshot

(2) 内部通过unlockSnapshot()实现

startanchor

说明:

(1) 设定回到游戏标题的锚点

(2) 内部通过setStartAnchorEnabled(elm.enabled === void || +elm.enabled)实现

属性:

enabled: (bool)

例子1:

@iscript

var game=kag.tagHandlers;

game.startanchor(%[enabled:true]);

@endscript

@linemode mode=page

1

2

3

4

5

@iscript

game.gotostart(%[ask:true]);

@endscript

如果把enabled设定为false或者把整个startanchor代码去除,当gotostart回到锚点处时将什么东西都不执行,所以应把它设定成true

例子2:

@startanchor enabled=true

@linemode mode=page

1

2

3

4

5

@gotostart ask=true

和上例执行的结果一样

gotostart

说明:

(1) 回到设定锚点的地方,可参考startanchor

(2) 内部通过goToStartWithAsk()或goToStart()实现

属性:

ask : true

false

record

说明:

(1) 游戏的记录点

(2) 内部通过setToRecordHistory()实现

例子1:

*start|abc

@linemode mode=page

1

@iscript

var game=kag.tagHandlers;

game.record();

@endscript

2

3

@iscript

game.goback(%[ask:true]);

@endscript

4

5

record时会记录存点,goback就会跳回到记录的存点

当文字显示到3时,会弹出对话框是否要回到abc,点击是时就会回到2

例子2:

*start|abc

@linemode mode=page

1

@record

2

3

@goback ask=true

4

5

和例子1的作用一样

goback

说明:

(1) 回到记录点,可参看record

(2) 内部通过setToRecordHistory()实现

属性:

ask : true 询问是否返回 (呼叫goBackHistory(true))

false 没有询问直接返回 (呼叫goBackHistory(false))

tempsave

说明:

(1) 暂时保存状态

(2) 内部通过tempSave(+elm.place)实现

属性:

place : int 呼叫tempSave(+elm.place)

例子1:

*start|abc

@laycount messages=10

@rclick enabled=true call=true storage=first.ks target=*rclick

1

@l

2

@l

3

@l

4

@l

5

@l

6

@l

7

@l

8

@l

9

@l

10

@s

*rclick

@tempsave

@current layer=message1

@layopt layer=message1 visible=true

longmo1

@l

longmo2

@l

longmo3

@tempload backlay=true bgm=true se=true

@layopt layer=message1 visible=false

@return

tempload前必须要有进行过tempsave,以上代码的意思是当显示1 2 3 4 5……时点击右键,当依次显示完longmo1,longmo2,longmo3后就会返回到重新显示1 2 3 4 5……中

例子2:

*start|abc

@laycount messages=10

@iscript

var game=kag.tagHandlers;

game.rclick(%[enabled:true,call:true,storage:"first.ks",target:"*rclick"]);

@endscript

1

@l

2

@l

3

@l

4

@l

5

@l

6

@l

7

@l

8

@l

9

@l

10

@s

*rclick

@iscript

game.tempsave(%[]);

game.current(%[layer:"message1"]);

game.layopt(%[layer:"message1",visible:true]);

@endscript

longmo1

@l

longmo2

@l

longmo3

@iscript

game.tempload(%[backlay:true,bgm:true,se:true]);

game.layopt(%[layer:"message1",visible:false]);

@endscript

@return

使用tjs执行,结果和example1一样,tempsave的位置可设置可不设置

tempload

说明:

(1) 读取暂时保存的状态,可参考tempsave

(2) 内部通过tempLoad(+elm.place, elm)实现

属性:

place : (int) 呼叫tempLoad(+elm.place, elm)

bgm : (bool)

se : (bool)

backlay : (bool)

copybookmark

说明:

(1) 将from的读取/储存项目复制到to的读取/储存项目,from和to是是读取/储存进度的项目索引值索引值,表示将from号的BookMark储存到to号上

(2) 内部通过copyBookMark(+elm.from, +elm.to)实现

属性:

from:

to:

例子:

save1[r]

save1

@save place=0 ask = false

@oporig

save2[r]

save2

@save place=2 ask = false

@oporig

hello[r]

yes

@copybookmark from=0 to=2

@load place=2 ask = true

;结果, 问是否返回存档3, 是的话从save1[r], save1重新开始

erasebookmark

说明:

(1) 清除某个读取/储存项目, 会将bookMarkDates[num] = "",num是读取/储存进度的项目索引值索引值, 是一个由0开始的Integer

(2) 内部通过eraseBookMark(+elm.place)实现

属性:

place: integer

例子:

save1[r]

save1

@save place=0 ask = false

@oporig

save2[r]

save2

@save place=2 ask = false

@oporig

hello[r]

yes

@ erasebookmark place=2

@load place=2 ask = true

;结果, 不问是否返回存档3

disablestore

说明:

(1) 是否可读取或储存

(2) 内部通过tempDisableStore(elm)实现

属性:

store= true/false

restore= true/false

true时不可读/存,false时可读/存

例子:

save1[r]

save1

@oporig

; save1[r],save1,@oporig之后在menu中可读档不可存档

@iscript

kag.tagHandlers.disablestore(%[store:false,restore:false]);

@endscript

save2[r]

save2

@oporig

; save2[r],save2,@oporig之后在menu中可读档可存档

@iscript

kag.tagHandlers.disablestore(%[store:true, restore:true]);

@endscript

save3[r]

save3[r]

@oporig

; save3[r],save3,@oporig之后在menu中不可读档不可存档

store

说明:

(1) 是否可储存

(2) 内部通过setStoreEnabled(+elm.enabled)实现

属性:

enable = true/false

例子:

save1[r]

save1

@oporig

; save1[r],save1,@oporig之后在menu中可读档不可存档

@iscript

kag.tagHandlers.store(%[enabled:false]);

@endscript

save2[r]

save2

@oporig

; save2[r],save2,@oporig之后在menu中不可读档不可存档

@iscript

kag.tagHandlers.store(%[enabled:true]);

@endscript

save3[r]

save3[r]

@oporig

; save3[r],save3,@oporig之后在menu中可读档可存档

load

save

说明:

(1) 读取或储存

(2) load内部通过loadBookMarkWithAsk(+elm.place)和loadBookMark(+elm.place)实现

(3) save内部通过saveBookMarkWithAsk(+elm.place)和saveBookMark(+elm.place)实现

属性:

ask: true/false (ask 为false时自动执行, true时会弹出询问框)

place: number (读取或储存的位置)

例子:

save1[r]

save1

@save place=0 ask = false

@oporig

save2[r]

save2

@save place=2 ask = false

@oporig

hello[r]

yes

@load place=2 ask = true

;结果, 问是否返回存档3, 是的话从save2[r], save2重新开始

clearsysvar

说明:

(1) 清除sflags字典中的内容clearSystemVariables()

(2) 内部通过clearSystemVariables()实现

例子:

kag.tagHandlers.clearsysvar();

clearvar

说明:

(1) 清除flags字典中的内容clearVariables()

(2) 内部通过clearVariables()实现

例子:

kag.tagHandlers.clearvar();

recollection

说明:

(1) 开始进入回想模式

var recollectionBookmark = 5000;

var recollectionEndLabel; //表示回忆结束的标签

var recollectionStorage; //回忆结束时迁移前面存储

var recollectionTarget; //回忆结束时的迁移前面目标

先保存好现在剧本读取到的位置到 storage, target

之后会按doneStorage, doneTarget来进行剧本回想

(2) 内部通过startRecollection(elm)实现

属性:

no, doneStorage, doneTarget, storage, target

例子:

kag.tagHandlers.recollection(%[no:20, doneStorage:"second.ks", doneTarget:"*start"]);

这样就能执行second.ks标签为*start的内容,no的作用是能够读取5000+no的存盘,如果有的话

如果不需读取存盘,可用以下的形式

kag.tagHandlers.recollection(%[storage:"second.ks",target:"*start"]);

stoprecollection

说明:

(1) 回想模式实行停止,执行后就不能返回到之前的剧本

(2) 内部通过stopRecollection(elm)实现

endrecollection

说明:

(1) 回想模式实行终止

(2) 内部通过endRecollection()实现

例子:

kag.tagHandlers.recollection(%[no:20,doneStorage:"second.ks",doneTarget:"*start"]);

kag.tagHandlers.endrecollection();

并不能够停止文档的读取,原因不明

#bugger 406 isSleep = true;  inSleep = true;

eval

说明:

(1) 执行代码

(2) 内部通过Scripts.eval(elm.exp)实现

属性:

exp: (string)

例子:

property p1 {

getter(){

System.inform("p1");

}

}

kag.tagHandlers.eval(%[exp:'p1']);

trace

说明:

(1) 将文字转成代码,并将对象的回传值及类型显示在debug message中

(2) 内部通过Scripts.eval(exp)和dm()实现

属性:

exp: (string)

例子:

property p1 {

getter(){

System.inform("p1");

return "this is p1";

}

}

kag.tagHandlers.trace(%[exp:'p1']);

input

说明:

(1) 弹出文字输入框来对指定的变量进行赋值

(2) 内部通过inputString(elm)实现

属性:

name : string

title : string

prompt : string

例子:

var A = "HELLO";

kag.tagHandlers.input(%[name : 'A', title : "Input", prompt : "please input string:"]);

autolabel

说明:

(1) 会自动地读取autolabel.ks

(2) 内部通过conductor.loadScenario("autolabel.ks")、conductor.goToLabel("*autoLabelLabel")实现

interrupt

说明:

(1) 返回-2进行中断

(2) 内部通过实现

loadplugin

说明:

(1) 读取插件

(2) 内部通过Plugins.link(elm.module)实现

属性:

module: (string)

例子:

@loadplugin module=wuvorbis.dll