标题: [KAG自制SL等画面的研究]关于系统按钮的实验笔记
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-7-4 23:18  资料  短消息  加为好友 
[KAG自制SL等画面的研究]关于系统按钮的实验笔记

虽然觉得估计没用过这指令的人看到会觉得不知道在说什么吧……

嗯,但是这只是个实验笔记而已。= =b如果有时间我会补完关于一个这些界面怎么做的大概思路……吧……(望天)
虽然米粒老是说用TJS做多方便,但是KAG价格便宜量又足,虽然速度慢点,容易出的BUG可能多点,但是只要想办法尽量避免,也就差不多了……(米:关键还是你FC吧!)

大体说下,以让没用过的筒子也基本理解我发文的目的,总之这是关于sysbutton这个指令的使用相关的注意事项。

sysbutton的属性可以参考KAGeXpress区的KAGEX追加指令档,必要的参数是name(每个按钮的name是唯一的)和按钮图片以及按钮位置(这里的位置似乎是以message层的左上点为基准,并且不受调整文字位置的margin参数影响...)。

用法是
[sysbutton name=save normal=savebutton x=100 y=100 exp="kag.callExtraConductor('save.ks', '*start')"]
这样的方式,约等同于
[rclick call=true storage=save.ks target=*start]
只是前者是点画面上的按钮进入SAVE界面,后者则是点右键进入SAVE界面……

在返回普通界面的时候使用[return]即可。

(1)sysbutton默认是显示在message0层上的,在message0不显示的时候也可以定义,并且只要不消除,就会一直保留,但是不会被记录在档案里。

(2)以上第一点意味着,让sysbutton无效化的最好办法就是把message0的visible属性设为false。而且一旦定义,不受到存取的影响(但假如读取的档案里当前message0的属性为不可见,sysbutton自然也不可见)并且,sysbutton一旦定义之后就最好不要消除再重定义,免得造成更多的麻烦。

(3)定义sysbutton的推荐位置:first.ks文档,[startanchor]之前。Message0可设成默认可见或者不可见,不影响。如设为true,制作标题画面时([startanchor]指令之后),隐藏message0层即可。

(4)普通自制SL画面(在不使用locksnapshot)的情况下的注意点一:
由于sysbutton是无视任何cm,er,locklink随时可以点的存在,请注意到会有玩家在点了LOAD以后在LOAD界面下点SAVE按钮之类的情况出现。
解决方法之一当然是在自制的界面里临时禁止message0层的显示,在返回的时候再改回来。由于sysbutton使用的是callExtraConductor函数,SL界面里对message层属性的操作等,并不会被记录。即是说,按照(3)的定义,存取时是如下的状态:

普通游戏界面(message0可见)-callExtraConductor呼叫SAVE画面-隐藏message0-存档-关掉游戏或者直接返回标题画面(message0不可见)-标题中的读档画面(message0不可见)-读档-普通游戏界面(message0可见)

(5)普通自制SL画面情况下的注意点二:不想在SL界面中隐藏sysbutton的情况下,各系统(S,L,OPTION)间切换的情况要考虑好,例如说,右键返回的内容设为相同,或是在某些按钮跳转target设定时也指定storage,免得中途切换时出现异常问题。

(6)使用locksnapshot,系统间互相切换的情况注意点:
进入每个界面时:
[locksnapshot cond="f.snapshot==false"]
[eval exp="f.snapshot=true"]
如上的句子,增加了一个是否锁定截图的判断。
这样,进入LOAD界面后再切换至SAVE界面的情况下,不至于把SAVE界面当前的样子存下来……= =b
返回的时候也类似,如果使用同一个返回标签是再方便不过,如果是不同的设定,记得根据当前有无locksnapshot判断是否要做unlocksnapshot,然后将判断变数设成false。

(6)关于tempsave与tempload的使用:
个人原来是根本不用而每次都自己设定的,不过当不知道当前的游戏中允许什么操作(例如普通界面里点右键,一个游戏里可能有时候不让点,有时候返回某个菜单,有时候调出什么东西查看)的时候,用tempsave指令记录下这些还是很有用的。不隐藏sysbutton时,同样请注意中途切换的情况。

(7)方便管理起见,使用sysbutton的各位,把message0留给系统按钮糟蹋吧,对话显示在message1之类的,横竖能用layopt指定index……这样在自制系统底图半透明的时候还能看到下面的对话……
至于可能有人说那样单消除sysbutton,如果按钮和对话框是一体的,不会很奇怪么,某D曰:难道不能在对话框上做能看不能点的图片伪按钮么……做人要HD,写脚本呢,要想办法不HD。
话说关于sysbutton的trans,试了一下是可以的……在message0隐藏时候定义sysbutton,然后直接[layopt layer=message0 visible=true page=back]再trans就行了。

(9)保证不管怎么清除系统按钮最后读取的时候都能显示的终极邪神大法:
打开system文件夹,找到autolabel.ks,在标签和return之间定义系统按钮并使message0可见。(其实这办法……我用了很多年,然后才整出这些详细研究来……OTL)

[ 本帖最后由 全局变量D 于 2008-1-20 13:44 编辑 ]





顶部
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2007-7-4 23:39  资料  短消息  加为好友 
后面加一句,关于那些个enable,disable之类的,原来以为定义系统按钮以后,只要写成[sysbutton name=save disable=true]就能暂时禁止单个系统按钮,后来发现会出现“找不到文件”之类的错误……
于是不知道怎么用了……望大家踩着我的尸体继续前进……OTL





顶部
咔莎
会员
Rank: 1
囧—魔兽世界脱宅中—囧



UID 13
精华 0
积分 521
帖子 432
阅读权限 5
注册 2006-12-18
来自 ~Celestial Gem~
 
发表于 2007-7-5 00:31  资料  主页 短消息  加为好友 
不管是不是看得懂,看看先~





You still have lots more to work on.无限怨念积攒中…まだまだだね
顶部
 



清除 Cookies - 联系我们 - [Key Fans Club] the Council of Doujin-game Development and Promotion - Archiver - WAP
Powered by Discuz! 5.5.0 © 2001-2006 Comsenz Inc.
Processed in 0.022801 second(s), 9 queries , Gzip enabled
粤ICP备05060595号
[ 当前模板 - 天高云淡 v 设计制作 - 七星论坛 v 请使用1024*768或以上分辨率浏览本模板 ]
请勿删除或修改此处版权图示