mild134 发表于 2007-8-15 23:15:04

[求助]存檔時如何讀入日期

關於NS存檔時如何讀入日期的問題...
不知道是用什麼指令來執行的
是用savetime指令嗎?
小弟看了一下伪圣书的程式

;★日期記錄
*savecheck
if %0=1 mov $201,$1
if %0=2 mov $202,$1
if %0=3 mov $203,$1
if %0=4 mov $204,$1
if %0=5 mov $205,$1
if %0=6 mov $206,$1
if %0=7 mov $207,$1
if %0=8 mov $208,$1
if %0=9 mov $209,$1
if %0=10 mov $210,$1
if %0=11 mov $211,$1
if %0=12 mov $212,$1
if %0=13 mov $213,$1
if %0=14 mov $214,$1
if %0=15 mov $215,$1
if %0=16 mov $216,$1
return

我有看到這段程式碼...只是小地執行遊戲的時候發現沒有紀錄日期

另外...想問看看有沒有指令可以直接再遊戲畫面上打字
有想過用變量來取得日期,只是不知道要怎嚜做才能得到系統上的日期
然後再用if迴圈判斷存檔格上要寫上幾月幾日
例--> --月--日
然後-->%month 月 %day 日
只是實際上不知道改怎麼去寫出來

不知道有沒有人能夠給我一些原理或構想...然後小弟再嘗試看看

謝謝

CountD 发表于 2007-8-16 23:17:11

游戏画面上打字的问题看精华区NS全攻略6……LSP指令。
至于日期:
savetime 存档编号,%月,%日,%時,%分
比如说:
savetime 3,%0,%1,%2,%3
就是通过这个取得存档3对应的月日时分,然后显示就行了。
如果取得月份是0,则存档不存在,那么显示代替文字就好了。
只是单纯的if 和lsp的结合。没什么难的吧。

伪圣书是没有做日期显示的。

mild134 发表于 2007-8-17 22:49:45

我試著用if跟lsp去寫
存檔的時候確實有顯示現在的月份,不過只有閃一下
讀檔的時候也沒看到它顯示月份,是哪邊弄錯了嗎

;☆存檔系統
*save
csp -1
lsp 233,":c;bgd\\save.jpg",0,0
lsp 1,":a/2,0,3;icon\\savelsp1.jpg",0,205
print 3
btndef ""

spbtn 1,1
*savewait
btnwait2 %0
if %0<0 csp -1:return  ;右鍵,消除圖片,選單
if %0=0 goto *savewait ;等待
if %0>=1 goto *stime_0

;☆遊戲時間紀錄
*stime_0
savetime 1,%1000,%1001,%1002,%1003
itoa $1000,%1000
itoa $1001,%1001
itoa $1002,%1002
itoa $1003,%1003

if %1000=1 mov $1000,"1"
if %1000=2 mov $1000,"2"
if %1000=3 mov $1000,"3"
if %1000=4 mov $1000,"4"
if %1000=5 mov $1000,"5"
if %1000=6 mov $1000,"6"
if %1000=7 mov $1000,"7"
if %1000=8 mov $1000,"8"
if %1000=9 mov $1000,"9"

lsp 1,":s/25,25,1;#ffffff$1000",60,215:print 1
;☆存檔確認
savegame %0:goto *save

CountD 发表于 2007-8-17 23:12:03

所有编号都是LSP 1.能显示才怪...一goto *save 早被图片按钮替换刷掉了...
应该是
LSP1 日期文字
LSP2 存档按钮
LSP N 存档系统背景图片

再说日期的显示应该写在btnwait前面啊...

mild134 发表于 2007-8-20 16:12:33

試著改過以後還是會發生一樣的情形
不知道D大有沒有辦法舉個例子呢

CountD 发表于 2007-8-20 16:56:07

你注意跟着你的跳转走一下就知道了

lsp 1,":s/25,25,1;#ffffff$1000",60,215:print 1
;☆存檔確認
savegame %0:goto *save
接下来*save的第一条指令是什么?
csp -1

合起来就是:
lsp 1,":s/25,25,1;#ffffff$1000",60,215:print 1
savegame %0
csp -1
lsp 233,":c;bgd\\save.jpg",0,0
lsp 1,":a/2,0,3;icon\\savelsp1.jpg",0,205
print 3

csp -1是清除全部图片,这样的运行结果会是怎样,很清楚吧?

CountD 发表于 2007-8-20 17:01:30

而且
savetime的用法是"取得某个档案记录时的时间",所以你应该把东西写乘这样:

;☆存檔系統
*save
csp -1
;☆存档时间取得
*stime_0
savetime 1,%1000,%1001,%1002,%1003
itoa $1000,%1000
itoa $1001,%1001
itoa $1002,%1002
itoa $1003,%1003

if %1000=1 mov $1000,"1"
if %1000=2 mov $1000,"2"
if %1000=3 mov $1000,"3"
if %1000=4 mov $1000,"4"
if %1000=5 mov $1000,"5"
if %1000=6 mov $1000,"6"
if %1000=7 mov $1000,"7"
if %1000=8 mov $1000,"8"
if %1000=9 mov $1000,"9"

lsp 233,":c;bgd\\save.jpg",0,0
lsp 2,":a/2,0,3;icon\\savelsp1.jpg",0,205
lsp 1,":s/25,25,1;#ffffff$1000",60,215

print 3

btndef ""

spbtn 1,1

*savewait

btnwait2 %0

if %0<0 csp -1:return  ;右鍵,消除圖片,選單
if %0=0 goto *savewait ;等待
if %0>=1 goto *stime_0

;☆存檔確認
savegame %0:goto *save

mild134 发表于 2007-8-22 19:08:13

所以說是因為csp -1讓圖片全部都消失了
所以順序的部分才會有問題
根據D大的寫法
先清除全部的畫面 ---> 取得系統的月日時分
之後再顯示背景圖&存檔圖&顯示日期
只是還沒有選定好存檔格位置,怎麼會直接顯示存檔日期呢

把程式碼PO進去以後發現點存檔格沒有任何反應,是因為lsp的編號改變了
所以我需要變更其他程式碼的lsp編號才可以正常運作嗎?

CountD 发表于 2007-8-22 21:12:19

只是還沒有選定好存檔格位置,怎麼會直接顯示存檔日期呢
...那啥,你是想显示已经存好的档案的数据吧...和你存哪个有啥关系啊...|||
当然是一次性显示全部档案的日期资料,存档之后再把画面刷新一遍就行了啊.

和LSP也没啥关系...这个东西还有个我不明白的,就是下面这段:
itoa $1000,%1000
itoa $1001,%1001
itoa $1002,%1002
itoa $1003,%1003

if %1000=1 mov $1000,"1"
if %1000=2 mov $1000,"2"
if %1000=3 mov $1000,"3"
if %1000=4 mov $1000,"4"
if %1000=5 mov $1000,"5"
if %1000=6 mov $1000,"6"
if %1000=7 mov $1000,"7"
if %1000=8 mov $1000,"8"
if %1000=9 mov $1000,"9"

不明白想干吗...
这样做的话$1000只能显示月份而已...做什么用的呢?
至于后面这段分歧...好像也没起到啥作用...又不是要凑位数...如果要凑成2位以便显示,应该都改成"01"这样的形式吧.

mild134 发表于 2007-8-22 22:15:37

因為只是想要先把功能給測試出來
然後確定沒問題了以後才打算把它寫完整...OTZ
页: [1]
查看完整版本: [求助]存檔時如何讀入日期