Recrit
【捨丸&KID】NS遊戲視窗自訂
* 變更等待click的游標
* 何為等待click的游標
文字表現中在進入等待滑鼠click的狀態時,於文章末尾表示的就是等待click游標。這是為了方便玩家快速找到現在文章進行地方的小功能。
* Default游標
下載Nscripter解壓縮之後,可以找到一個名稱為「default cursor folder」的資料夾,在其中可以找到游標的bmp檔案。cursor0.bmp為等待click的畫像,而cursor1.bmp則是等待換頁游標的畫像。
只要於Nscr.exe所在階層的資料夾放入這兩個檔案的話,游標的畫像就可以被使用。而即使在同一階層中沒有這兩個檔案,也不會出現沒有畫像的error,會以沒有等待click游標的狀態繼續執行。
* 變更游標
setcursor命令(放於*start之後)
setcursor為變更所表示游標的命令。即使是在遊戲中途也能夠變更游標。
程式碼
setcursor cursor番號,”:透明化option/cell數,表示秒數,loop形式;畫像檔案名稱”,表示位置的座標
範例
sercursor 1,”:l/3,160,2;sys\cursor3.bmp”,0,0
sercursor 0,”:l/3,160,2;sys\cursor3.bmp”,0,0
setcursor是命令本體
sercursor 1,”:l/3,160,2;sys\cursor3.bmp”,0,0
sercursor 0,”:l/3,160,2;sys\cursor3.bmp”,0,0
命令之的第一個數值表示游標號碼。0為句尾,1為改頁游標。
sercursor 1,”:l/3,160,2;sys\cursor3.bmp”,0,0
sercursor 0,”:l/3,160,2;sys\cursor3.bmp”,0,0
0,0是相對座標,當想要移動游標的位置時可以使用。
會依據所輸入的數值讓游標平移後表示。當同使使用較大的文字和較小的游標,為了讓游標的中心能夠和文字的寬度高度配合時使用。
畫像tag、動畫處理選項(option)
sercursor 1,”:l/3,160,2;sys\cursor3.bmp”,0,0
sercursor 0,”:l/3,160,2;sys\cursor3.bmp”,0,0
被””所包圍的文句裡,被:;所包夾的部份是畫像tag。這部份指定游標的動畫處理方式。
”:l/3,160,2;sys\cursor3.bmp”
l為利用左上角的畫素透明化顏色的透明化選項。
在這之後是動畫處理的選項。
”:l/3,160,2;sys\cursor3.bmp”
/之後的3代表著cell分格數。數值為3時表示對象畫像被橫向切割成三個。
cursor0.bmp為72x24畫素,是由三個24畫素的正方形橫向擺放組合而成。
讓被分割的圖像一這順序表示的就能做出動畫的效果。
”:l/3,160,2;sys\cursor3.bmp”
160為表示秒數(單位為ms)。每0.16秒便會切換一個分格表示。
”:l/3,160,2;sys\cursor3.bmp”
2所指定的是動畫的迴圈形式。
迴圈形式如下列所示:
0 從第一個分格執行到最後一個分格後,再次回到第一個。
1 執行到最後一個分格後,停止在那裡。
2 執行到最後一個分格後,再從最後一個分格逆向執行到第一個分格。然後再從第一個分格再次迴轉執行到最後一個分格,像這樣反覆執行。
3 這個形式只會表示第一個分格,不會出現動畫處理。
主要是在表示按鈕時會是用到的設定。
”:l/3,160,2;sys\cursor3.bmp”
cursor3是所叫出的畫像檔案名稱。
這裡是假設在sys資料夾中有個名為cursor3的bmp檔。
l/3,160,2所表示的意義如果轉換成文字的話則為「將圖像左上角畫素的顏色設定為透明化顏色,畫像分割為三等份後每0.16s切換一次,當執行到最後一個分格後會在逆向執行表示到第一個分格且不斷迴圈。」
*固定位置的改頁游標
abssetcursor 1,”:1/3,160,2;cursor1.bmp”,580,420
在使用下視窗表模式時,有時後會想要將改頁游標固定在視窗的右下角。
此時必須使用abssetcursor命令。和setcursor命令幾乎都是一樣,但是在命令最尾端的數值表示的是從原點算來的絕對座標(x,y)。
* 改變預設menu的外表和顏色
NS可以改變功能選單的文字在游標移動到上面時的顏色,或是讓游標移動到上面時發出聲音等。
*改變功能選單的文字。
程式碼和範例
savename “[SAVE]”,”[LOAD]”,”記憶”
savename是命令本體,放置於定義區內。
在這之後是預設存檔功能選單的title,讀檔功能選單的title,各個儲存檔案最前面的名稱。
按下功能選單時的音效
程式碼
menuselectvoice 1,2,3,4,5,6,7
範例
menuselectvoice “se\colock00.wac”,”se\don2.wav”,”se\don4.wav”,”se\don13.wav”,”se\hit_p02_a.wav”,”se\hit_s06.wav”,”se\hit_s06_r.wav”
menuselectvoice是命令本體,放置於定義區內。在後面指定想要讓它發出的音效檔案。所指定的音效檔從左邊開始是:1,打開功能選單時。2,取消功能選單時。3,移動到功能選單的某個選項上時。4,點擊某個選項時。5,做出了無法反應的操作時。6,選擇「yes」時。7,選擇「no」時。
* 點擊右鍵時進入回想模式
程式碼
rlookback
範例
rlookback
當把預設功能選單消除後,想在點擊右鍵後直接進入回想模式時可以使用此命令,必須在定義區塊宣告。
* 將右鍵點擊無效化
程式碼
roff
範例
roff
讓右鍵點擊從一開始就沒有功用,必須在定義區塊宣告。
再不讓玩家存檔或是右鍵點擊時可以使用,基本上這是hardcore模式了。
* 讓右鍵點擊暫時無效化
rmode命令可以暫時讓右鍵點擊暫時無效化,在遊戲進行中宣告。
在開頭畫面或是書目等暫時不需要右鍵點擊功能選單時可以使用。
程式碼
rmode 數值
範例
rmode 1
1為切換到ON能夠使用右鍵點擊、0為切換到OFF無法使用右鍵點擊。
注意若在別的地方進入到rmode 0模式後忘了改回來而一直保持「不能使用右鍵點擊」狀態,這種事情常發生,因此若遊戲進行到一半變成無法右鍵點擊時請在script中搜索rmode看看。
* 改造上方功能選單
注意關於上方功能選單的命令全部都必須在define區塊里輸入。
* 改變視窗上的caption表示
程式碼
caption “文字列”
範例
caption “導覽小說”
* 上方功能選單消去命令
程式碼
killmenu 功能選單號碼
範例
killmenu 6
依照所設計遊戲在上方功能選單中常會出現一些不必要的功能。例如音源是使用mp3等檔案形式時便不需要CD-DA的功能、而不想要音量控制功能的人也是挺多。當想要消去不想要上方功能選單項目時可以使用這個命令。
killmenu 6為消去上方功能選單從左邊算起的第六個功能選項。
在預設系統中各項功能如下方這樣排列。
0,畫面
1,字型
2,表示形式
3,文字表示速度
4,音量
5,快速前進到下一個選項
6,CD-DA
7,版本情報
8,結束
在第二次的命令之後,由於有功能選項被消去而會使得其後者號碼往前順移,請注意這點。例如在執行過killmenu 3之後,但三個功能選項的文字表示速度被消去,則新的排序為。
0,畫面
1,字型
2,表示形式
3,音量
4,快速前進到下一個選項
5,CD-DA
6,版本情報
7,結束
因此當你接下來想要消去CD-DA功能時必須輸入killmenu 5。
* 指定文字表示速度的功能選單
這個項目的功能選單雖然存在,但是只要沒有進行設定便不會產生功能。
程式碼
defaultspeed 低速,中速,高速
範例
defaultspeed 60,40,20
此命令必須在定義區塊中進行設定。
defaultspeed是命令本體。
在此之後的三個數值指定文字的表現速度。文字表示速度功能選單中會出現低速、中速、高速三個選項給予選擇,而三個選項的表示速度分別依序由三個來指定,其單位為ms。
在範例之中
60 選擇低速時的文字表示速度被設定為60ms。
40 選擇中速時的文字表示速度被設定為40ms。
20 選擇高速時的文字表示速度被設定為20ms。
* 改造成為pull down型的功能選單
追加功能選單
restmenu是變更功能選單的宣言。
在這之後的「insertmenu “結束”,END」等insertmenu指令會分別插入功能選單中。insertmenu是插入命令本體,”結束”是被表示在功能選單中的文字列,END為功能命令。
Menu的階層化
程式碼
insertmenu “環境設定”,SUB
SUB是將功能選單階層化的命令。在這之下的功能選單會被放入階層裡。
放在命令之後的數字表示此功能屬於第幾個階層。
程式碼
insertmenu “字型”,FONT,1
在上面的例子中,1是表示第一階的意思,範例如下。
「insertmenu "終了",END
insertmenu "情報",VERSION
insertmenu "音效調整",DWAVEVOLUME
insertmenu "已讀跳過",SKIP
insertmenu "文字設定",SUB
insertmenu "表示量",SUB,1
insertmenu "通常",CLICKDEF,2
insertmenu "頁數單位",CLICKPAGE,2
insertmenu "顯示速度",SUB,1
insertmenu "慢速",TEXTSLOW,2
insertmenu "正常",TEXTMIDDLE,2
insertmenu "高速",TEXTFAST,2
insertmenu "字型",FONT,1
」
注意在最上面的會在最右邊出現,其他未使用到的指令: WAVEON WAVEOFF 音效開關 FULL WINDOW 全螢幕與視窗 CDON CDOFF CD-DA功能開關。
* 將功能選單全部消除
程式碼
deletemenu
範例
「
*define
deletemenu
game
*start
」
當對系統進行改造且使用自製系統的時候,有可能就不在需要上方功能選單。
當不需要上方功能選單時,輸入此命令就可以把所有的功能選項刪除。
* 設定既讀文章skip
* 所謂既讀文章skip是?
所謂的既讀文章skip是利用skip命令來快速跳過已經在畫面上表示過的文章之功能。在按下上方功能選單的「快速跳至下一個選項」或是右鍵點擊功能選單內的選項後能夠執行。 Nscripter的default設定中,在使用skip功能的時候不管是還沒讀過的文章或是已經讀過的文章都沒有分別,全部都會被skip掉。如果在定義區塊宣告既讀文章skip後那麼只會skip掉已經讀過的文章,而未讀過的文章則不會被skip掉,在文章較長的novel game如果有設定的話會相當便利。
* 既讀文章skip宣告命令
程式碼
kidokuskip
範例
「
*define
kidokuskip
game
*start
」
只要在定義區塊中輸入kidokuskip命令後就可以使既讀文章skip功能開啟。
在設定後與nscr.exe同樣階層的資料夾裡會創造名為kidokuskip.dat的檔案,在此檔案裡儲存文章既讀部份的資料。在設定之後重新改寫script檔案的話會是使得原本被紀錄的文章既讀部份檔案產生錯誤,因此最好把kidokuskip.dat刪除。
この記事にコメントする
この記事へのトラックバック
- この記事にトラックバックする