rec 发表于 2008-12-5 14:55:20

关于自制存档问题

最近研究存档系统原理,自己YY了一个做测试,没想到刚做储存时就出问题了

1,本来设定 无存档时 一按就存,有存档时按后 确认是否存档再存 ,发现存1档无事,再存2档的话 ,1档生成的截图失败(在文件夹里无图,也就是黑的)
2,搞了TEXTGOSUB公共事件后,发现文本里每次 \ 的时候 ,会黑一段
3,存档返回后会出现BUG,莫名其妙 无法返回,我明明加RETURN了
也就是 比如
4,关于截图,为了截出的图是进入菜单前的图,在执行文本窗口的SAVE按钮的同时就进行了截图

很无聊\
是很无聊\

会发现两句之间有一段空白的,代码如下,希望D大帮忙DEBUG,谢谢
我已彻底混乱了
*define
textgosub *text_lb

game
;------------------------------------------------
*start

*text_lb

btndef clear
lsp 21,":a;a\btn_sys2_save_off.bmp",20,20
lsp 22,":a;a\btn_sys2_load_off.bmp",80,20
lsph 11,":a;a\btn_sys2_save_on.bmp",20,20
lsph 12,":a;a\btn_sys2_load_on.bmp",80,20

print 1

*tbloop
btndef ""
exbtn_d "C11C12"
exbtn 21,1,"p11c21s1,(se\s02.wav)"
exbtn 22,2,"p12c22s1,(se\s02.wav)"

~
textbtnwait %0

if %0<=0 goto *text_end
if %0=1 getscreenshot 120,90 : savefileexist %181,1 : savefileexist %182,2 :gosub *save:goto *text_lb
if %0=2 gosub *load : goto *text_lb
jumpb
*text_end
texec
saveon
print 1
dwavestop 0
return

;-----------------
*save
btndef clear
csp -1
print 1
~
*pp

lsp 60,":a;a\save_window.bmp",0,0,255
lsp 59,":a;a\btn_save_off.bmp",100,100
lsp 58,":a;a\btn_save_off.bmp",100,220
lsph 57,":a;a\btn_save_on.bmp",100,100
lsph 56,":a;a\btn_save_on.bmp",100,220
lsp 52,":c;ss\a1.bmp",110,110
lsp 51,":c;ss\a2.bmp",110,230
print 1
btndef ""
exbtn 59,1,"p57c59s1,(se\s02.wav)"
exbtn 58,2,"p56c58s1,(se\s02.wav)"
exbtn_d "c56c57"

btnwait %0

if %0<0 csp -1 :return
if %0=0 goto *pp
if %0=1 & %181=0 savegame 1: :savescreenshot2 "ss\a1.bmp":lsp 35,":c;ss\a1.bmp",110,110 : print 1: wave "se\s03.wav" : goto *pp
if %0=1 & %181=1 gosub *true :gosub *true2
if %0=2 & %181=0 savegame 2: :savescreenshot2 "ss\a2.bmp":lsp 34,":c;ss\a2.bmp",110,230 : print 1: wave "se\s03.wav" : goto *pp
if %0=2 & %181=1 gosub *true :gosub *true3
;-----------

;------------
*true
csp -1
print 1
btndef clear
lsp 16,":a;a\save_box_window.bmp",120,100
lsp 15,":a;a\btn_box_no_off.bmp",140,110
lsp 14,":a;a\btn_box_yes_off.bmp",200,110
lsph 13,":a;a\btn_box_no_on.bmp",140,110
lsph 12,":a;a\btn_box_yes_on.bmp",200,110
print 1
btndef ""
exbtn 15,1,"p13c15s1,(se\s02.wav)"
exbtn 14,2,"p12c14s1,(se\s02.wav)"
exbtn_d "c13c12"

*true2
btnwait %1

if %1<0 csp -1 :jumpb
if %1=0 goto *true2
if %1=1 csp -1 :jumpb
if %1=2 savegame 1: :savescreenshot "ss\a1.bmp":lsp 1,":c;ss\a1.bmp",110,110 :print 1: wave "se\s03.wav" :csp -1: goto *pp
return
;-----------
*true3

btnwait %1
if %1<0 csp -1 :jumpb
if %1=0 goto *true3
if %1=1 csp -1 :jumpb
if %1=2 savegame 2: :savescreenshot "ss\a2.bmp":lsp 1,":c;ss\a2.bmp",110,230 :print 1: wave "se\s03.wav":csp -1 :goto *pp
return

pengyu5008 发表于 2008-12-5 15:33:03

如果只是因为1档存完无事。。再存2档就出现问题的话。。。大概是这个吧。。
if %1=2 savegame 2: :savescreenshot "ss\\a1.bmp":lsp 1,":c;ss\\a2.bmp",110,230 :print 1: wave "se\\s03.wav":csp -1 :goto *pp
return
就是最后一行。。。true3存档截图保存的是a1。。却要显示a2。。当然是a1的也被覆盖了。。而a2根本就没有。。大概是这样吧。。
其他的也不太清楚。。不好意思哈。。

CountD 发表于 2008-12-5 15:37:15

....我没说过我最讨厌帮人DEBUG了么?一开始就搞那么复杂自己都不知道错在哪里问我有啥用啊...自己从最简单的开始实验然后再添新东西啊...=_=

rec 发表于 2008-12-5 15:40:20

谢谢2楼,偶不细心啊

不过…………改了后还是一样A1有问题,OTL……

而且,A1不是被覆盖那么简单 ,比如A1图 原来 是无事的,存好A2后,A1图文件夹里就莫名其妙“绘图失败”也就是黑的……

rec 发表于 2008-12-5 15:42:54

引用第2楼CountD于2008-12-05 15:37发表的:
....我没说过我最讨厌帮人DEBUG了么?一开始就搞那么复杂自己都不知道错在哪里问我有啥用啊...自己从最简单的开始实验然后再添新东西啊...=_=


偶是新人啊……思路觉得应该是这样的,但越弄越复杂了,这个已是最简单的思路了

在网上看到某文,据说 用了TEXTGOSUB后,右键功能全部清0,还有SAVEON ,\\ 的话会变成 “跳转到公共事件”的指令,结果导致每句之间出现空白一行……无解

CountD 发表于 2008-12-5 16:10:43

我觉得那个空行肯定是在公共事件里有一个换行符之类的...
这个运行的时候直接看后台应该可以看到吧?(用单步运行一点点看)

TEXTGOSUB就是自定义系统用的,当然右键菜单就不可用了(但是可以用指令调用)

你先试着做一个最简单的右键打开存档读档页,只有文字连接,点了就可以存/读档.
然后看看是不是正确.
能的话继续让保存的时候截图并正确显示
正确再继续添加其他功能
页: [1]
查看完整版本: 关于自制存档问题