個人對西日東月回顧系統的不完全理解
*log
首先得從這個標簽開始
其中名字的文字變量是$name2,在回顧頁面裏面,名字和正文也是分開顯示的。
;名字,將名字的文字變量賦值給$text_log這個變量,然後從中提取字數若字數不足14個字節多餘的部分就用空格補足。
[p.s.以西日東月的本體爲主,名字最長沒有超過5個漢字,算上那兩個古怪的括號即7個]
mov $text_log,$name2
len %0,$text_log
if %0<14 mov %1,14:sub %1,%0:div %1,2:for %2=1 to %1:add $text_log,\" \":next
;聲音[我個人沒有管這個東西]
if $voice2=\"\" add $text_log,\" \"
if $voice2<>\"\" add $text_log,$voice2
;把所有的文本顯示歸入$text_log變量
add $text_log,$log
add %now_log,1
add %log_count,1
;當now_log的紀錄到達481的時候,將當前記錄歸回401
if %now_log=481 mov %now_log,401
mov $%now_log,$text_log
return
*kaisou
resettimer
erasetextwindow 1
for %0=9 to 25:vsp %0,0:next
if %from=2 for %0=28 to 33:cell %0,0:vsp %0,0:next
repaint
textoff
;這個上面的内容我就不廢話了,很容易理解,以上
;本文長度調整(半角字符總數在170的時候就用對應的全角空格補足)
if %log_count>80 mov %log_count,80
mov %1,400:add %1,%log_count
for %10=401 to 480
len %2,$%10:mov %3,170:sub %3,%2:div %3,2
for %4=1 to %3:add $%10,\" \":next
next
waittimer 100
;基本元素的讀取
lsp 94,\":a;kai_back.jpg\",0,0
lsp 93,\":a/2,0,3;kai_game.jpg\",639,481
lsp 91,\":a/2,0,3;kai_rew.jpg\",568,38
lsp 92,\":a/2,0,3;kai_fwd.jpg\",568,530
lsp 59,\":a/2,0,3;kai_voice.jpg\",40,518
lsp 60,\":a/2,0,3;kai_voice.jpg\",40,454
lsp 61,\":a/2,0,3;kai_voice.jpg\",40,389
lsp 62,\":a/2,0,3;kai_voice.jpg\",40,325
lsp 63,\":a/2,0,3;kai_voice.jpg\",40,261
lsp 64,\":a/2,0,3;kai_voice.jpg\",40,197
lsp 65,\":a/2,0,3;kai_voice.jpg\",40,132
lsp 66,\":a/2,0,3;kai_voice.jpg\",40,68
mov %kaisou_page,1
mov %kaisou_initial,1
*kaisou_pagerefresh
;名字引入
mov %11,%now_log;
mov %0,%kaisou_page
sub %0,1
mul %0,8
sub %11,%0
if %11<401 add %11,80
mov $10,\":s/18,17,-1,0;#FFFFFF\"
mov %1,%11
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 51,$0,30,500
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 52,$0,30,436
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 53,$0,30,371
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 54,$0,30,307
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 55,$0,30,243
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 56,$0,30,179
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 57,$0,30,114
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1,0,14:add $0,$1:lsp 58,$0,30,50
;文本引入
;這裡是從26開始引入的……那麽14-26之間的空當被什麽東西填充了呢?很迷……
mov %1,%11
mov $0,$10:mid $1,$%1, 26,48:add $0,$1:lsp 67,$0,145,500
mov $0,$10:mid $1,$%1, 74,48:add $0,$1:lsp 68,$0,145,518
mov $0,$10:mid $1,$%1,122,48:add $0,$1:lsp 69,$0,145,536
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1, 26,48:add $0,$1:lsp 70,$0,145,436
mov $0,$10:mid $1,$%1, 74,48:add $0,$1:lsp 71,$0,145,454
mov $0,$10:mid $1,$%1,122,48:add $0,$1:lsp 72,$0,145,472
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1, 26,48:add $0,$1:lsp 73,$0,145,371
mov $0,$10:mid $1,$%1, 74,48:add $0,$1:lsp 74,$0,145,389
mov $0,$10:mid $1,$%1,122,48:add $0,$1:lsp 75,$0,145,407
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1, 26,48:add $0,$1:lsp 76,$0,145,307
mov $0,$10:mid $1,$%1, 74,48:add $0,$1:lsp 77,$0,145,325
mov $0,$10:mid $1,$%1,122,48:add $0,$1:lsp 78,$0,145,343
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1, 26,48:add $0,$1:lsp 79,$0,145,243
mov $0,$10:mid $1,$%1, 74,48:add $0,$1:lsp 80,$0,145,261
mov $0,$10:mid $1,$%1,122,48:add $0,$1:lsp 81,$0,145,279
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1, 26,48:add $0,$1:lsp 82,$0,145,179
mov $0,$10:mid $1,$%1, 74,48:add $0,$1:lsp 83,$0,145,197
mov $0,$10:mid $1,$%1,122,48:add $0,$1:lsp 84,$0,145,215
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1, 26,48:add $0,$1:lsp 85,$0,145,114
mov $0,$10:mid $1,$%1, 74,48:add $0,$1:lsp 86,$0,145,132
mov $0,$10:mid $1,$%1,122,48:add $0,$1:lsp 87,$0,145,150
sub %1,1:if %1<401 mov %1,480
mov $0,$10:mid $1,$%1, 26,48:add $0,$1:lsp 88,$0,145,50
mov $0,$10:mid $1,$%1, 74,48:add $0,$1:lsp 89,$0,145,68
mov $0,$10:mid $1,$%1,122,48:add $0,$1:lsp 90,$0,145,86
for %0=67 to 90:vsp %0,1:next
;聲音引入
mov %11,%now_log
mov %0,%kaisou_page
sub %0,1
mul %0,8
sub %11,%0
if %11<401 add %11,80
mov %1,%11
vsp 59,0:mid $0,$%1,14,2:if $0<>\" \" vsp 59,1
sub %1,1:if %1<401 mov %1,480
vsp 60,0:mid $0,$%1,14,2:if $0<>\" \" vsp 60,1
sub %1,1:if %1<401 mov %1,480
vsp 61,0:mid $0,$%1,14,2:if $0<>\" \" vsp 61,1
sub %1,1:if %1<401 mov %1,480
vsp 62,0:mid $0,$%1,14,2:if $0<>\" \" vsp 62,1
sub %1,1:if %1<401 mov %1,480
vsp 63,0:mid $0,$%1,14,2:if $0<>\" \" vsp 63,1
sub %1,1:if %1<401 mov %1,480
vsp 64,0:mid $0,$%1,14,2:if $0<>\" \" vsp 64,1
sub %1,1:if %1<401 mov %1,480
vsp 65,0:mid $0,$%1,14,2:if $0<>\" \" vsp 65,1
sub %1,1:if %1<401 mov %1,480
vsp 66,0:mid $0,$%1,14,2:if $0<>\" \" vsp 66,1
p.s.這個Kaisou系統是按段落劃分的[每一個段落就是一個now_log紀錄
每進行一句話的時候,就會將當前對話記錄到now_log裏面,然後利用log_count進行計數,超過80的時候歸回80
名字顯示用到了14個字節,然後文本顯示用到了24*3*2=144個字節,共計用到了158個字節,然,從其劃分字段可以看出14-26之間有12個字節的空檔,加起來就是170個字節[也就是劃分每一段所用到的數量……不過12個字節的空檔……很迷……]
正如countd說的,記錄範圍在401到480之間。
cgmode我還沒來得及看……最近快被圖像製作弄瘋了,哭……個人想到的也就是每一張cg出現的時候加入一個變數判定,然後到mode模式下如果cg01=1的時候就顯示cg否則就是黑框……感覺上貌似也不是太困難的樣子……至於save,西日東月的save真的很完善阿……縮略圖,日期,……不過貌似也都是堆代碼就可以搞定……然……讀取的時候畫面不能漸變出現[西日東月也是簡單的做了一個黑屏過渡,然後瞬閃……果然ns也是有一定局限性的……]
至於是如何將now_log和具體顯示相整合的,我個人並不十分清楚。[em01][em01]
大致上我的理解也極有可能存在相對嚴重的偏差……
至於回顧只能顯示80段的問題……個人認爲80段文字也就足夠了……一般玩家在看回顧的時候也就只會看各1,2句來方便做選擇……應該沒有人會把回顧當作小説來看……
人物還有5張……cg還有30張……
天空……好纖細…… = =
[此贴子已经被作者于2005-8-22 4:14:09编辑过] |