簡介 †這裡的櫻花腳本(SakuraScript)是以 SSP 2.3.97 版本所擁有的所有語法為基準,提供各語法的說明與使用範例。注意,這裡提供的語法列表是給進階的開發者作為參考,如果你是新手的話,這篇SakuraScript文章中所介紹的語法已足夠你大多數情況下的需求,可別被這裡的進階資料給嚇到了。(笑) 櫻花腳本的作用域 †如果想要表示“\”不被作為櫻花腳本的開始時使用符號“\\”。 櫻花腳本的生命週期 †基本上,直到腳本結束(\e執行時)。在下一腳本的執行時釋放。
作用域 †\0 或 \h †
將作用域切換到主側人格角色。接下來的文字、對話都會顯示在春菜端的對話框上。等同於\p[0]。 範例: \0你好。 春菜端的對話框顯示「你好。」。 \1 或 \u †
將作用域切換到副側人格角色。接下來的文字、對話都會顯示在使魔端的對話框上。等同於\p[1]。 範例: \1你好。 使魔端的對話框顯示「你好。」。 \p[ID] †
將目前的作用域換成指定ID的作用域。ID為2以後的角色作用域都必須使用此指令來指定。\p[0] = \0 = \h,\p[1] = \1 = \u。 動畫繪圖 †\s[ID] †
\i[ID] or \i? †
要求目前所在的圖像(Surface)的動畫ID開始播放。動畫ID為surface.txt中所定義的編號,例如animation2.interval,never的情況下,其ID即為「2」。藉由這樣的方式,腳本便能更加細緻的操作動畫的效果。 範例: \s[0]\i[1] 播放在surface0定義中動畫ID為1的動畫。 \i[ID,wait] †
\![anim,clear,ID] †
強制中斷指定的動畫ID之動畫。 範例: \s[0]\i[2]\w9\w9\![anim,clear,2] 播放ID=2的動畫,然後在0.9秒後中斷此動畫。 \![anim,pause,ID] †
暫時停止被指定的動畫。 範例: \s[0]\i[2]\w9\w9\![anim,pause,2]\w9\w9\![anim,resume,2] 播放ID=2的動畫0.9秒後,動畫暫時停止,經過0.9秒後繼續播放。 \![anim,resume,ID] †
繼續播放被\![anim,pause,ID]指令所暫停的動畫。 範例: \s[0]\i[2]\w9\w9\![anim,pause,2]\w9\w9\![anim,resume,2] 播放ID=2的動畫0.9秒後,動畫暫時停止,經過0.9秒後繼續播放。 \![anim,offset,ID,X座標,Y座標] †
指定某動畫的偏移量(顯示位置)。 範例: \0\s[0]\i[2]\![anim,offset,2,20,0]\e 播放ID=2的動畫,並且下移20像素。 \__w[animation,ID] †
\![bind,類型,名稱,(true/false/0/1)] †
將指定衣物配件的顯示狀態進行變更。在\0(主菜端)對話範圍時變更主菜的衣物,在\1(副菜端)時則變更副菜的。在\p[2]以下時沒有作用。若
省略名稱一欄,則其類型所屬的所有衣物將被同時設為顯示/不顯示。但通常來說一個類型只需要顯示一種衣物配件(總不至於把所有帽子全戴上吧…XD),所以
此功能主要用於脫下(不顯示)所有的衣物配件。 \![lock,repaint] †
在\![unlock,repaint]指令還沒執行之前,停止一切的繪圖行為。會影響整個核心程式,對話框也將無法顯示。SSP的情況下效果僅限於此腳本。 範例: \0\s[0]\w9\w9\s[10]\w9\w9\s[0]\![lock,repaint]\w9\w9\s[10]\w9\w9\s[0]\![unlock,repaint]\e 主菜圖像顯示,0.9秒後換為副菜圖像,0.9秒後再換回主菜圖像。接下來此動作重複一次,但因為停止再繪圖指令的關係而看不到圖片的切換。 \![unlock,repaint] †
將\![lock,repaint]指令所禁止的再描繪功能重新啟用。 \![set,alignmenttodesktop,位置] †
設定現在使用的人格角色之視窗位置在桌面上的移動方式。位置有以下幾種: top - 貼附上側移動。 範例: \0\s[0]\![set,alignmentondesktop,top]貼附到螢幕上端。\e 人格黏附到螢幕頂端後,顯示「貼附到螢幕上端」。 \![set,scaling] †
可指定圖像(Surface)的放大比率。指定數值的單位為%。負值時則有左右/上下反轉的效果。 範例: \![set,scaling,300] 等比放大為3倍大小。 \![set,scaling,200,50] 長度變為兩倍,寬度變為一半。 \![set,scaling,-100,100] 左右反轉。 \![set,alpha,不透明度%] †
設定圖像的不透明度。在不支援透明度的OS系統下無法使用。 \4 †
目前所在作用域的角色往遠離其他角色的方向移動。 範例: \0\s[0]\1\s[10]準備離開。\4離開了。\e 使魔端顯示「準備離開。」後,稍微移動位置,再顯示「離開了。」。 \5 †
目前所在作用域的角色往靠近其他角色的方向移動。 範例: \0\s[0]\1\離開。\4\4\4\4接近。\5\e 使魔端顯示「離開。」後,遠離春菜端,顯示「接近。」後又往春菜端靠近。 \![move] †
新仕様:(SSP 2.3.85以後) X座標 - left,right,base,center。 各有四種關鍵字,用法如「right.top」這樣來指定圖片右上方為原點。另外,base是根據surface.txt內的 point.basepos值來決定原點。省略時預設為left.top。另外,指定screen的情況下不可使用base,指定global的情況下不 可使用right,bottom,center。移動物的基準點設定法與目標設法一置。 配置項可以多次指定,指定方法如下。僅新仕様可以指定。 範例: \0\s[0]移動一。\![move,100,100]\e 移動一:圖像瞬間移動到桌面左上(100,100)的位置。 \0\s[0]移動二。\![move,200,fix]\e 移動二:圖像的X軸瞬間移到桌面左邊數來200像素的位置。 \0\s[0]移動三。\![move,100,100,600]\e 移動三:用0.6秒的時間移動到桌面(100,100)的位置。 \0\s[0]移動四。\![move,-100,100,,screen,right.top]\e 移動四:瞬間移動到桌面右上向左100像素、向下100像素的位置。 \0\s[0]移動五。\![move,100,,500,me]\e 移動五:圖像在0.5秒內右移100像素。 \0\s[0]移動六。\![move,0,0,0,1,right.bottom,left.bottom]\e 移動六:圖像瞬間移動到角色1(副菜)的右方。 \0\s[0]移動七。\![move,--X=80,--Y=-400,--time=2500,--base=screen,--base-offset=left.bottom,--move-offset=left.top]\e 移動七:本体側Surface左上像素位置(left.top),向画面左下(screen,left.bottom)起右方向80pixel上方向400pixel的座標在2.5秒內移動。 \![moveasync] †
\![set,zorder,人格域ID,人格域ID,...] †
例:\![set,zorder,1,0]指定,\1窗口顯示在\0之前。 \![reset,zorder] †
\![set,sticky-window,人格域ID,人格域ID,...] †
例如指定1,0,鼠標拖拽移動時、\0(相方側)和\1(本体側)窗口連著移動。 \![reset,sticky-window] †
對話框和對話文本操作 †\b[ID] †
根據ID編號來切換目前作用域所使用的對話框。ID指定-1時不顯示對話框。一般來說\b[2]為加大的對話框,在讀取線上新聞或內容較長的文章時 建議使用此種對話框。奇數ID預定為右側顯示對話框,核心程式會自行根據人格位置來自動轉換,因此在使用時請務必指定偶數ID。 範例: \b[2]這是比一般對話框還大的對話框。 顯示「這是比一般對話框還大的對話框。」。 \_b[檔案路徑,X座標,Y座標] †
有其他配置時\_b[檔案路徑,X座標,Y座標,opaque]或\_b[檔案路徑,X座標,Y座標,配置項,配置項...]。
範例: \_b[sample.png,centerx,9] 在對話框的行中央、列往下9間距的位置貼出sample.png。 測試中。\_b[sample.png,inline]測試完成。 圖片顯示在「測試中。」與「測試完成。」的中間。 \_b[sample.png,10,10,--option=opaque,--clipping=10 10 30 30] 截取sample.png從(10,10)到(30,30)的圖片到對話框上。 \_b["data:image/png;base64,iV~II"] 使用base64。 \_b[D:\hogehoge.exe,20] 使用exe/dll的資源圖片。 \n †
將對話框的文字進行換行。單獨使用\n時會換行一行的高度,\n[half]則會換半行的高度。\n[150]這樣的寫法,則會換一行半的高度。同理可知\n等同於\n[100],\n[half]等同於\n[50]。 \_n †
通常,文字超過對話框右端時便會自動換行,但使用此指令後將不會自動換行,直到下一個\_n出現或腳本結束為止。 \c †
將目前作用域的對話框所顯示的內容全部消去。接下來的文字會從最左上角繼續輸出。SSP追加了兩種消去方式: \c[char,字數] - 會刪去指定字數的文字。 註1:在此使用的行數,會把\n或\_l這類明確的換行指令視為一行。連續的\n或\_l指令也只會被視作一行。 範例: \0\s[0]清除開始。\w9\c清除完成。\e 顯示「清除開始。」後,清除掉原有文字再顯示「清除完成。」。 \_l[x座標,y座標] †
可以根據座標來決定文字要輸出的位置。可使用「centerx」、「centery」來指定對話框中央的座標位置,或是使用「-」來沿用目前的軸座標。要是指定座標為對話框之外的話,只有上天才知道會發生什麼事情。 範例: \0\s[0]\_l[centerx,0]1\_l[-,10]2\e 於對話框頂端的行中央開始,斜向顯示「1」、「2」兩個數字。 \C †
\![set,autoscroll,disable] †
使目前作用域的對話框不會跟隨對話的進行而自動下向捲動,但手動捲動仍然有效。適合用於隱藏某些內容時使用。此指令的有效範圍僅限於此次的櫻語腳本。 範例: \0\s[0]\1\s[10]\![set,autoscroll,disable]0\n1\n2\n3\n4\n5\n6\n\e 在使魔端的對話框上顯示行數。然而由於自動捲動被禁止,5與6並不會顯示出來。 \![set,autoscroll,enable] †
將\![set,autoscroll,disable]指令所禁止的自動捲動功能重新啟用。 範例: \0\s[0]\1\s[10]\![set,autoscroll,disable]0\n1\n2\n3\n4\n5\n6\n\w9\![set,autoscroll,enable]7\n8\e 在使魔端的對話框上顯示行數。一開始只會顯示到4,稍等一陣子後開始自動捲動,因而顯示後半的數值。 \![set,balloonoffset,x,y] †
利用此指令可將對話框設置的預設位置進行變更,在變更外形(Shell)或圖形比率時可以此進行微調。 \![set,balloonalign,(left|center/top|right|bottom|none)] †
\![set,balloonnum,文件名,現在数,最大数] †
\![set,balloontimeout,時間] †
指定對話框的逾時時間(經過此時間後會自動的關閉對話框)。單位為毫秒。小於或等0的話則不會自動關閉。原始的預設值由使用者指定。此指令有效範圍僅限單次腳本。 \![*] †
在游標所在位置上顯示對話框指定的SSTP標誌圖示,較常使用的情況是將其放在選項的前端來排版。 範例: \0\s[0]\![*]←這個圖示就是標誌。 顯示了一個標誌後,隨即印出「←這個圖示就是標誌」字串。 \![enter,onlinemode] †
\![leave,onlinemode] †
\![enter,nouserbreakmode] †
\![leave,nouserbreakmode] †
\![lock,balloonrepaint] †
\![unlock,balloonrepaint] †
\_! †
由此開始直到下一個\_!或\e為止的腳本都不會被當作指令來解釋,而是單純的輸出在對話框上。由於檔案路徑中可能含有「_!」這類的字串而造成語法錯誤,建議改用具有相同功能的\_?指令。 \_? †
由此開始直到下一個\_?或\e為止的腳本都不會被當作指令來解釋,而是單純的輸出在對話框上。 字形顏色 †\f[name,字形名稱] †
將使用的字形改為指定的字形名稱。設置參數為default時變回預設值。 \f[height,數字] †
將文字的大小改為指定的高度。設置參數為default時變回預設值。 \f[color,R,G,B] †
將字體改成指定的顏色。設置參數為default時變回預設值。SSP/2.01.73之後還可以用百分比形式\f[color,100%.,0 %,0%],或像HTML或CSS的顏色使用\f[color,red],\f[color,#FF0000],\f[color,#F00]。 \f[shadowcolor,R,G,B] †
將文字的陰影色改為指定的顏色。設置參數為default時變回預設值。\f[shadowcolor,none]陰影無效化。 \f[outline,(true/1/false/0/default)] †
\f[anchor.font.color,色指定] †
\f[bold,true/false] †
參數為true或1時,改變接下來的字體為粗體字。參數為false或0時則變回一般字體。設置參數為default時變回預設值。 \f[italic,true/false] †
參數為true或1時,改變接下來的字體為斜體字。參數為false或0時則變回一般字體。設置參數為default時變回預設值。 \f[strike,ture/false] †
參數為true或1時,接下來的字體會被加上刪除線。參數為false或0時則變回原樣。設置參數為default時變回預設值。 \f[underline,ture/false] †
參數為true或1時,接下來的字體會加注底線。參數為false或0時則變回原樣。設置參數為default時變回預設值。 \f[sub,true/false] †
參數為true或1時,接下來的字體會置於目前文字的右下方。參數為false或0時則變回一般字體。設置參數為default時變回預設值。 範例: H\f[sub,true]2\f[sub,false]O 顯示水的化學式。 \f[sup,true/false] †
參數為true或1時,接下來的字體會置於目前文字的右上方。參數為false或0時則變回一般字體。設置參數為default時變回預設值。 範例: \_q4πr\f[sup,true]3\f[sup,false]\n[half]———\n[half] 3\_q 顯示球體的體積公式。 \f[default] †
將所有的對話框屬性改回預設值。 時間等待 †\w? †
在對話腳本中插入等待時間,時間一過才會繼續腳本的運行。可指定\w1到\w9之間的指令,\w1的等待時間為50毫秒,\w9則為450毫秒。可 根據需求連續輸入等待指令,例如\w8\w8總計等待800毫秒(0.8秒)。若要詳細指定時間的話,請參照\_w[?]指令。 範例: A\w2B\w4C\w6D\w8E 顯示「ABCDE」,字母間會暫停一段時間才顯示下一字母。 \_w[時間] †
可以根據中括號內的數值來精確指定等待時間,單位為毫秒。 範例: \0\s[0]請等待一下。\_w[5000]好了。 顯示「請等待一下。」後,5秒後顯示「好了。」。 \__w[時間] †
以腳本開始的時間為基準,遇到此指令後腳本暫停,直到腳本總經過時間超過此指令的指定時間後,才繼續執行後面的腳本。當腳本中出現\x或\_w[clear]時,基準時間點也跟著被改變。 範例: "(無)",/ ""); \x †
此指令出現後,腳本會暫停執行,直到使用者在對話框上用滑鼠點擊一下。點擊後,對話框會被全部清空,並繼續執行腳本。 範例: \0\s[0]\1\s[10]等待點擊中。\x點擊了。\e 先顯示「等待點擊中。」,點擊後畫面清空並顯示「點擊了。」。 \x[noclear] †
\t †
進入關鍵對話模式(Critical Session)。此時雙擊滑鼠、右鍵點擊等滑鼠動作全部無效,AI對話、線上新聞及信件確認等功能也全部沉默。作用週期從指令開始直到\e出現或腳本結束為止。 範例: \0\s[0]\t這是關鍵對話。\x\e 顯示「這是關鍵對話。」 \_q †
輸出文字時沒有等待時間,會一口氣顯示到下一個\_q出現或腳本結束前的文字區段。 \![quicksession,false] †
停止速讀模式,文字顯示速度回復常速。與\_q指令不同的是,此指令直接修改對話的預設值,而非在ON/OFF之間開開關關。 \![quicksession,true] †
啟用速讀模式,文字會一口氣顯示完畢,而不會一字一字的輸出。與\_q指令不同的是,此指令直接修改對話的預設值,而非在ON/OFF之間開開關關。 \_s †
以此指令所包圍的字串會同時被春菜端跟使魔端唸出來。 範例: \0\s[0]\_s兩邊一起顯示。\_s一邊顯示。\e 「兩邊一起顯示。」會同時在兩邊的對話框中顯示出來,而「一邊顯示。」則只會顯示在春菜端的對話框上。 \_s[ID1,ID2,ID3...] †
以此指令所包圍的字串會同時被指定作用域的角色們唸出來。 範例: \0\s[0]\_s[0,1]兩邊一起顯示。\_s一邊顯示。\e 「兩邊一起顯示。」會同時在春菜端及使魔端的對話框中顯示出來,而「一邊顯示。」則只會顯示在春菜端的對話框上。 \![wait,syncobject,同步對象名,超時時間] †
選項按鈕 †\q[事件識別子][選項內容] †
與\q[選項內容,事件識別子]的功能一樣,選項間會自動換行。因屬於舊規格,現已不推薦使用。 \q[選項內容,事件識別子,r1,r2,...] †
顯示一個可點選的項目。當滑鼠進入選項區塊內時發生OnChoiceEnter事件,當選項被點選時發生OnChoiceSelect事件。若事件 識別子以On為開頭,將跳過OnChoiceSelect事件而直接引發名稱同識別子的「On...」事件,此時此事件的reference全部前移一 位。若事件識別子為一網址(http://...),點選後會直接開啟網頁,等同於\j指令的作用。 \z †
原本必須放在選項後端作為結尾,現已無使用的必要。即使輸入了也會被無視。 \__q[識別子,r1,r2,...]選項內容\__q †
與\q[選項內容,事件識別子]的功能一樣,選項會自動換行。 \* †
在滑鼠點選任何一個選項之前,對話框都不會因逾時而關閉。由於屬於舊規格,建議改用\![set,choicetimeout]指令。 範例: \*\q[確認,yes]\n\q[取消,no]\e 顯示「確認」及「取消」兩個選項。此選擇分歧並不會逾時。 \![set,choicetimeout,時間] †
指定選項的逾時時間(經過此時間後會自動的關閉對話框)。單位為毫秒,預設值為16000毫秒。小於或等0的話則不會自動關閉。此指令有效範圍僅限單次腳本。 \_a[識別子] †
以\_a[ID]指令到\_a之間包圍起來的字串會被視為一個錨點連結。點擊後會發生OnAnchorSelect事件。與一般選項指令\q的差別,在於沒有選項逾時的設置。一般用來注釋對話中出現的專有名詞。 範例: \0\s[0]普通的字串\_a[anc]錨點字串\_a普通的字串\e 點擊「錨點字串」後,會發生reference0為「anc」的OnAnchorSelect事件。 選項標記 †\f[cursorstyle,類型] †
square - 填滿文字背景色。 設置參數為default時變回預設值。 \f[cursorcolor,R,G,B] or \f[cursorbrushcolor,R,G,B] †
將包覆選項文字的方形區塊之顏色改成指定的顏色。設置參數為default時變回預設值。 \f[cursorpencolor,R,G,B] †
將選項的下標線顏色改成指定的顏色。設置參數為default時變回預設值。 \f[cursorfontcolor,R,G,B] †
將選項內的文字改成指定的顏色。設置參數為default時變回預設值。 \f[cursormethod,描繪方法] †
變更描繪方法。使用Win32API的SetROP2函式而使得全Operator指定變得可能。設置參數為default時變回預設值。 \f[anchornotselectstyle,類型] †
\f[anchornotselectcolor,R,G,B] or \f[anchornotselectbrushcolor,R,G,B] †
\f[anchornotselectpencolor,R,G,B] †
\f[anchornotselectfontcolor,R,G,B] †
\f[anchornotselectmethod,描繪方法] †
\f[anchorvisitedstyle,類型] †
\f[anchorvisitedcolor,R,G,B] or \f[anchorvisitedbrushcolor,R,G,B] †
\f[anchorvisitedpencolor,R,G,B] †
\f[anchorvisitedfontcolor,R,G,B] †
\f[anchorvisitedmethod,描繪方法] †
事件操作 †\e †
意味著腳本到此結束,往後的腳本將不會被執行。除了少部份的事件不可以此作完結外,其餘腳本都應將此指令放在腳本終端。 範例: \0\s[0]123\e456 由於\e中途插入的關係,此腳本只會顯示「123」。 \- †
人格終了。要注意的是,當有複數人格被使用的時候,核心程式並不會終止。請務必在OnClose事件使用此指令,確實終止人格的運行。另外為了讓使用者來得及讀取其對話,建議插入一些等待指令。 範例: \0\s[0]人格關閉中…\w8\- 顯示「人格關閉中…」後,人格終了。 \![updatebymyself] †
開始進行人格本體的更新工作,並引發OnUpdate系列的事件。 \![update,platform] †
SSP2.00後實裝的功能,更新後人格結束(OnBasewareUpdating、OnClose)再起動(OnBasewareUpdated、OnBoot)。 \![update,更新對象] †
ghost、shell、balloon指定可能、同時更新時用「+」分割。 \6 †
開始校準時間,執行OnSNTPCompare。請勿在OnSNTPCorrect事件內使用此指令,會造成事件的死迴圈。 \7 †
開始校準時間。執行OnSNTPBegin,結果執行OnSNTPCompare。 \![executesntp] †
範例: \0\s[0]開始校準時間。\![executesntp]\e 顯示「開始校準時間。」後,進行校準時間的工作。 \![execute,headline,線上新聞名稱] †
執行指定名稱的線上新聞。 \![biff] †
檢查所有e-mail帳號的信件。 範例: \0\s[0]信件確認開始。\![biff]\e 顯示「信件確認開始。」後,執行信件確認的動作。 \![vanishbymyself] †
執行此指令後,目前啟動中的人格會被刪除。 \+ †
隨機切換成目前已安裝的任意一個人格。由於屬於舊規格,建議改用\![change,ghost,random]指令。 \_+ †
遵循現有的已安裝人格清單,切換成清單中目前人格的下一位人格。由於屬於舊規格,建議改用\![change,ghost,sequential]指令。 \![change,ghost,人格名稱] †
將現在使用的人格切換為指定的人格。可以使用以下特殊名稱: random - 在已安裝的人格中隨機選一個。 範例: \![change,ghost,さくら] 變更人格為さくら。 \![change,shell,外形名稱] †
將使用中的外形切換成指定的外形。可以使用以下特殊名稱: lastinstalled - 最後安裝的外形。(SSP限定) \![change,balloon,對話框名稱] †
將對話框切換成指定的對話框。可以使用以下特殊名稱: lastinstalled - 最後安裝的對話框。(SSP限定) \![call,ghost,人格名稱] †
「呼叫」指定的人格。也就是說,在可處理複數人格的核心程式下,將會打開新的人格視窗並啟動另一個人格。 \v †
使用此指令後,人格會顯示在桌面的最上層。由於使用者側會自行指定其顯示狀態,非必要的情況下請少用此指令。 \![set,windowstate,!stayontop] †
將人格的顯示狀況設為不顯示在最上層。 \![set,windowstate,minimize] †
將人格縮小到工具列,停止顯示外形、對話框,並暫停一部份的事件活動。 \![set,windowstate,stayontop] †
將人格的顯示狀況設為保持顯示在最上層。 \![set,wallpaper,檔案路徑] †
將指定的檔案設為桌面背景圖片。 \![set,trayballoon,(Option),(Option),...] †
在桌面工具列上的圖示上顯示一個Windows通知框,限用於Windows 2000/Me以後版本。根據結果會發生OnTrayBalloonClick或OnTrayBalloonTimeout事件,詳細內容請參照此二事件參照列表。
範例: \![set,trayballoon,--icon=info,--timeout=10,--title=測試!,--text=第一行。,--text=第二行。] 桌面工具列上跳出一個標題為「測試!」,圖示為資訊圖示,內容為兩行字串的Windows通知框。 \![set,trayicon,圖示所在路徑] †
改變桌面工具列上的人格圖示,檔案以ghost/master/為相對路徑。 \![set,otherghosttalk,(true/false/before/after)] †
可以設定是否要將其他人格的對話內容通知給目前人格知道。預設為false。詳細內容請參照OnOtherGhostTalk事件。 \![set,othersurfacechange,(true/false)] †
\![raise,事件識別子,r0,r1,...,r7] †
會觸發識別子所指定的事件,其後的引數則依序被作為被觸發事件的reference0、reference1、…。 範例: \![raise,OnUserEvent,參照一,參照二] 事件「OnUserEvent」發生,reference0=「參照一」,reference1=「參照二」。 \![embed,事件名稱,Ref0,Ref1...] †
以與\![raise]指令相同要領的方式使之執行後,會將此事件結果置入現在執行中的腳本當中,並且繼續執行此腳本。與\![raise]指令不 同之處,在於被置入的腳本也包含在此次的執行序當中。因此,我們將更加容易實現某些功能,像是使用\![embed]指令來執行其他情報取得系的指令,並 藉其資訊來改變此腳本的內容。 \![timerraise,時間,是否重複執行,事件識別子,r0,r1,...] †
\![raiseother,人格名稱,事件識別子,r0,r1,r2,...] †
以自己以外的啟動中人格作為對象,遙控觸發其事件。識別子後的引數會被作為事件的參照(reference)。人格名稱有以下特殊名稱: __SYSTEM_ALL_GHOST__ - 表示自己以外的所有人格。 範例: \![raiseother,Emily,OnUserEvent,參照一,參照二]\e 名為「Emily」的人格會觸發「OnUserEvent」事件,且reference0=「參照一」,reference1=「參照二」。 \![timerraiseother,時間,是否重複執行,人格名稱,事件識別子,r0,r1,...] †
\![raiseplugin,外掛ID,事件識別子,r0,r1,r2...] †
對指定的外掛事件進行觸發。「外掛ID」請輸入descript.txt內所寫的ID。 \![raiseplugin,外掛名稱,事件識別子,r0,r1,r2...] †
對指定的外掛傳遞訊息。 \![notify,事件識別子,r0,r1,...] †
\![notifyother,人格名稱,事件識別子,r0,r1,...] †
\![notifyplugin,外掛名稱,事件識別子,r0,r1,r2...] †
音效 †\8[檔案路徑] †
播放WAV音效檔。由於屬於舊規格,建議改用\![sound]系列語法。 \_v[檔案路徑] †
開始播放音樂。 \_V †
會暫時停止腳本的進行,直到音樂結束再繼續。 \![sound,play,檔案路徑] †
開始播放音樂。 \![sound,cdplay,音軌No.] †
播放CD音樂。 \![sound,loop,檔案路徑] †
循環播放音樂。 \![sound,wait] †
會暫時停止腳本的進行,直到音樂結束再繼續。 \![sound,pause] †
暫停音樂播放。 \![sound,resume] †
繼續播放被暫停的音樂。 \![sound,stop] †
將音樂停止,下次播放時會重頭開始。 打開操作 †\j[URL] †
可以在網頁瀏覽器中開啟指定的網址。當以file://作為開頭時,也能開啟指定的檔案文件或是應用程式。 範例: \j[http://crow.aqrs.jp/]\e 在瀏覽器中開啟http://crow.aqrs.jp/網址。 \j[file://descript.txt]\e 以關聯於此副檔名的應用程式(一般為Windows記事本)來開啟ghost/master/descript.txt檔案。 \![open,browser,URL] †
開啟瀏覽器,並顯示指定的URL網頁。 範例: \0s[0]\![open,browser,http://cuc.moe.hm/index.php]\e 瀏覽器打開,並顯示http://cuc.moe.hm/index.php的網頁內容。 \![open,mailer,(參數)] †
開啟mailer寫信。參數可複數指定,即mailer開啟時的參數,也可省略。 範例: \![open,mailer] 開啟mailer。 \__t †
開啟學習框(teach box),常用於教導人格單字的輸入框,讓溝通與學習區隔開來。輸入完成後發生OnTeach事件。由於屬於舊規格,建議改用\![open,teachbox]指令。 \![open,teachbox] †
開啟學習框(teach box),常用於教導人格單字的輸入框,讓溝通與學習區隔開來。輸入完成後發生OnTeach事件。 範例: \![open,teachbox] 開啟學習框。 \![close,teachbox] †
\__c †
\![open,communicatebox] †
開啟溝通框(communicate box)。輸入完畢後發生OnCommunicate事件。 範例: \![open,communicatebox] 開啟溝通框。 \![close,communicatebox] †
\![open,inputbox,事件識別子,(輸入框逾時),(預設字串),設置] †
開啟一個單純作為輸入用的輸入框。事件識別子在輸入完畢後產生的OnUserInput事件裡,被作為reference0而使用。輸入框逾時時間
以毫秒為單位,超過時間就會自動關閉輸入框,並產生OnUserInputCancel事件(限SSP2.01以上版本)。預設字串的內容會在開啟輸入框
時直接顯示在輸入框中。 範例: \0\s[0]\![open,inputbox,event,5000,測試]\e 開啟一個已預先輸入「測試」兩字的輸入框,輸入完成後發生OnUserInput事件,且reference0=「event」,reference1=輸入的字串。 若於5秒內沒完成輸入的話,輸入框會自動關閉並發生OnUserInputCancel事件。 \0\s[0]\![open,inputbox,OnTestEvent]\e 開啟一個空的輸入框,輸入完成後直接發生OnTestEvent事件,且reference0為輸入的字串。 \![open,passwordinput,事件識別子,(輸入框逾時),(預設字串),設置] †
\![open,dateinput,事件識別子,(輸入框逾時),(年),(月),(日),設置] †
開啟專門用來輸入日期的輸入框,輸入完成後會發生OnUserInput事件。事件識別子被作為此事件的reference0內容,用來區別或作為
後續事件的根據。輸入框逾時以毫秒為單位,超過這個時間後對話框自動關閉。年月日可指定輸入框出現時的預設日期,若不指定則使用現在的日期。 範例: \![open,dateinput,日期測試,3000,2008,2,29]\e 出現一個日期輸入框,其日期顯示著2008月2月29日,於3秒後關閉。若輸入完成,則發生OnUserInput事件,其reference0內容即「日期測試」。 \![open,sliderinput,事件識別子,(輸入框逾時),(現在値),(最小),(最大),設置] †
開啟滑軸輸入框,可用滑鼠拖移中間的滑軸來改變要輸入的值。事件識別子在輸入完畢後產生的OnUserInput事件裡,被作為reference0而使用。輸入框逾時時間以毫秒為單位,超過時間就會自動關閉輸入框。 \![open,timeinput,事件識別子,輸入框逾時,時,分,秒] †
專門用於輸入時間的輸入框。事件識別子在輸入完畢後產生的OnUserInput事件裡,被作為其事件的reference0而使用。輸入框逾時時間以毫秒為單位,超過時間就會自動關閉輸入框。時分秒可省略,省略時則顯示現在的時間。 \![close,inputbox,ID] †
關閉由\![open,inputbox]指令所開啟的輸入框。ID請輸入上述指令所指定的「事件識別子」。 範例: \0\s[0]打開輸入框。\![open,inputbox,InputTest]\w9\w9關閉輸入框。\![close,inputbox,InputTest]\e 顯示「打開輸入框。」後跳出一個輸入框,0.9秒後顯示「關閉輸入框。」且輸入框消失。 \![open,configurationdialog] †
開啟核心程式的設定對白(configuration dialog)。 範例: \![open,configurationdialog] 開啟核心程式的設定對白。 \![open,ghostexplorer] †
開啟人格瀏覽器(ghost explorer),顯示已安裝的所有人格。 範例: \![open,ghostexplorer] 開啟人格瀏覽器。 \![open,shellexplorer] †
開啟外形瀏覽器(shell explorer),顯示已安裝的外形清單。 範例: \![open,shellexplorer] 開啟外形瀏覽器。 \![open,balloonexplorer] †
開啟對話框瀏覽器(balloon explore),顯示所有安裝的對話框。 範例: \![open,balloonexplorer]\e 開啟對話框瀏覽器。 \![open,headlinesensorexplorer] †
開啟線上新聞瀏覽器(headline sensor explorer)。 範例: \![open,headlinesensorexplorer] 開啟線上新聞瀏覽器。 \![open,pluginexplorer] †
\![open,rateofusegraph] †
顯示所有已安裝人格在本次執行所啟動的時間之比率。 範例: \![open,rateofusegraph] (無) \![open,rateofusegraphballoon] †
顯示所有已安裝對話框的使用率與時間長度。 範例: \![open,rateofusegraphballoon] 顯示對話框使用率。 \![open,rateofusegraphtotal] †
顯示所有已安裝人格至今以來總合的啟動時間之比率。 範例: \![open,rateofusegraphtotal] (無) \![open,calendar] †
開啟日曆.行程表視窗。 範例: \![open,calendar] 開啟日曆。 \![open,help] †
開啟輔助說明文件。 範例: \![open,help] 開啟輔助說明文件。 \![open,messenger] †
打開網路即時通訊(internet messenger)。 範例: \![open,messenger] 打開網路即時通訊。 \![open,readme] †
開啟放在人格資料夾裡的readme.txt文件。 範例: \![open,readme] 開啟讀我文件。 \![open,file,檔案名稱] †
開啟指定的檔案。當指定的檔案為執行檔(應用程式)的時候直接執行此檔案,其他類型的檔案則以與此檔關聯的應用程式來開啟檔案。 範例: \![open,file,descript.txt] 開啟ghost\master\descript.txt文件檔。 \![open,dialog,open,參數] †
參數--title=標題,--dir=路徑,可能指定我的文件等(__system_mydocument__ ,__system_mypictures__ ,__system_myvideo__ ,__system_mymusic__ ,__system_desktop__ ),--filter=過濾,如:BMP|*.bmp|其他|*.png;*.gif,--ext=後綴,--name=文件名,--id=事件ID \![open,dialog,save,參數] †
\![open,dialog,folder,參數] †
\![open,dialog,color,參數] †
\![close,dialog,ID] †
\![open,surfacetest] †
開啟圖像測試視窗,可檢視此外形所有的圖像。 範例: \![open,surfacetest] 開啟圖像測試視窗。 \![open,aigraph] †
屬性系統操作 †\![set,property,屬性名,值] †
\![get,property,事件名,屬性名,屬性名,...] †
其他 †\![execute,http-get,URL] †
下載URL所指定的檔案。當此要求被成功執行時,檔案會被放置在 ghost\master\var 資料夾裡面。本指令不管是執行成功或失敗,皆不會產生任何事件。 範例: \0\s[0]\![execute,http-get,http://crow.aqrs.jp/]\e 下載http://crow.aqrs.jp/index.html,其檔案路徑為 ghost\master\var\index.html 。 \![execute,http-post,URL,參數] †
\![execute,rss-post,URL,參數] †
\![execute,rss-post,URL,參數] †
\![execute,extractarchive,文件名,解壓路徑] †
\![execute,extractarchive,文件名,壓縮路徑] †
\![execute,install,path,文件名] †
\![execute,install,url,URL,feed或nar] †
\![execute,ping,(參數)] †
參數如下 --host=主機名 --ttl=TTL(包的生存期限(可經過路由幾次) 默認255 --count=送信回數 默認3 --size=送信大小(--data有效時--size無效) 默認32 --timeout=超時時間(ms) 默認5000 --df=(true|false) 包不能分割true 可分割false 默認false --data=文字列ICMP Echo的數據字段填入的字符串(變換為UTF-8) --event=事件或識別子指定On開頭的字符串觸發事件 \![execute,nslookup,(參數)] †
參數如下 --host=域名 --event=事件或識別子On開頭文字列指定的話該事件發生。發事件 \![enter,passivemode] †
進入被動模式(passive mode),除了滑鼠等最低限度的事件以外的事件將全部禁止,使用者幾乎無法對人格進行操作。主要用於遊戲、劇情等不可中斷的場合。由於沒有明確的無解除 警告,請小心使用。如果忘記解除的話,將會陷入操作不能的狀態。被動模式時,會有以下的限制發生: 右鍵選單不會出現。 \![leave,passivemode] †
將\![enter,passivemode]指令所產生的被動模式解除。詳情請參閱「被動模式」一欄。 \![enter,inductionmode] †
進入誘導模式(induction mode)。通常用於避免人格劇情中斷,比被動模式的限制來得少一些。由於沒有明確的無解除警告,故使用時請多加注意,別忘了加入解除的指令。誘導模式時,會有以下的限制發生: 不會進行信件確認。 \![leave,inductionmode] †
將\![enter,inductionmode]指令所產生的誘導模式解除。詳情請參閱「誘導模式」一欄。 \![enter,selectmode,模式(rect),左,上,右,下]\![enter,selectmode,模式(rect),觸碰判定名]\![enter,selectmode,模式(rect)] †
\![leave,selectmode] †
\![enter,collisionmode]\![enter,collisionmode,rect] †
\![leave,collisionmode] †
\![reloadsurface] †
重新載入圖像資料。SSP時與\![reload,surface]指令執行相同的工作。 \![reload,descript,重載對象] †
\![reload,重載對象] †
對人格的各模組進行重新載入的工作。重載對象有以下四種: shiori - 僅限SHIORI重載,便於查看變更辭書後的結果。 範例: \![reload,shiori] 偽AI辭書重新載入。 \_u[?] †
以UCS-2編碼的方式,直接置入文字字元。 範例: \0\s[0]\_u[0x2665]\e 顯示一個愛心符號。 \_m[?] †
以ASCII編碼的方式,直接置入文字字元。 範例: \0\s[0]\_m[0x30]\e 顯示「0」。 \&[ID] †
會根據識別子代換成其相應的文字實體參照(Character Entity Reference)。可使用HTML/3.2、4.0中所定義的所有實體符號。 範例: \0\s[0]\&[hearts] \&[copy]\e 顯示一個愛心符號和著作權符號。 \m[訊息,WPARAM,LPARAM] †
對原DirectSSTP送信方發出指定的訊息。無法以含有HWnd標頭的SSTP通訊方式來使用。此為Windows的固有規格。 外部連結 † |