#contents

*あらすじ [#z1d8f3f2]
最初は里々で書いていた[[「その祈りに光あれ」>http://greenfish.futene.net/ghost/resh.htm]]をあやりりすに移行して公開するまでの記録です。

*必要なもの [#g6e2a3ad]
-[[紺野りりす>http://ms.shillest.net/yayalilith.xhtml]]
-[[StartUp/里々からの移行 - 文Wiki「文屋」>http://emily.shillest.net/ayaya/index.php?StartUp%2F%E9%87%8C%E3%80%85%E3%81%8B%E3%82%89%E3%81%AE%E7%A7%BB%E8%A1%8C]]

*シェル [#ub6c080f]
栞の関係ない場所なのでそのまま移します。

*configなどの書き換え [#rcadb8dc]
「aya_lilith_config.dic」と「aya_lilith_ex_config.dic」を書き換えます。

ついでにテキストエディタに拡張子dicを関連付けておくと便利。

あと「descript.txt」の「shiori,satori.dll」行を「shiori,yaya.dll」に。

*個人的つまづきポイント [#k9746c2a]
\![raise,hogehoge]で頭にOnが付かないイベント名を指定した場合、実際に呼ばれるのは「On_hogehoge」とかになる

*前のトークをもう一度話すアレ [#nf363806]
-「前のトーク」は変数「SHIORI3FW.LastAITalk」に入っている
--OnAITalkからのトークしか変数の中に入らないので安心

*キーボード入力にさくらスクリプトが含まれていたら無効化するとか [#c5c8077b]
「さくらスクリプト無効化」「さくらスクリプト除去」という関数があります。

*里々の発想で書いた辞書の書き換え [#r2ef242e]
**(変数「ほげ」の存在)で分岐しているとか [#oc74122c]
-里々
 *OnUserInputCancel
 >(R0)Cancel【タブ】(変数「ユーザー入力中」の存在)==1
-YAYA
 OnUserInputCancel{
 	_e = reference[0] + 'Cancel'
 	if ISFUNC(_e)
 	{
 		if ( ISVAR( 'ユーザー入力中' ) == 1 )
 			{
 			EVAL(_e)
 			}
 		}
 	else
 	{
 		return
 	}
 }
**タイマとか [#jff6663d]
連続で撫でたときの反応の変化とか。
-里々
 *てすと
 $手さわり反応リセットタイマ【タブ】60
 $手さわり1計測=(手さわり1計測)+1
 ((iflist,(手さわり1計測),==1,手なで1A,<=4,手なで1B,>4,手なで1C))
 *手さわり反応リセット
 $手さわり1計測【タブ】
-YAYA
 手なで1
 {
 	SHIORI3FW.SetDelayEvent( '手さわり反応リセット' , 60 )
 	手さわり1計測++
 	if ( 手さわり1計測 == 1 )
 	{
 		手なで1A
 	}
 	elseif ( 手さわり1計測 <= 4 )
 	{
 		手なで1B
 	}
 	elseif ( 手さわり1計測 > 4 )
 	{
 		手なで1C
 	}
 }
 手さわり反応リセット
 {
 	ERASEVAR('手さわり1計測')
 }

**あやりりすと人格チェンジの共存 [#h09ea601]
人格によって反応が違う必要のある箇所には、CallTalkという関数(※自作)を使うことにしました。

talkposition変数には現在の人格が入っています。

CallTalk('手なで')とすると「手なでn」が存在する時のみ呼び出します。

「手なでn」が無かったら無反応。

 CallTalk
 {
 	_t = _argv[0] + talkposition
 	if ISFUNC(_t) {
 		EVAL(_t)
 		}
 	else{
 		return
 	}
 }
***これだけだとちょっと時報が面倒くさいので [#w5345438]
時報は「時報」でまとめて処理しました。
 時報{
 	_t = GETTIME()	
 	_r = "時報" + _t[4] + "時"
 	CallTalk( _r )
 }
 時報0時1
 {
 	<<'
 	れ1:0時です。
 	'>>
 }

**人格チェンジに伴うデフォルトサーフェスの変化 [#fb82868d]
「defaultsurface0」と「defaultsurface1」変数を書き換えるだけでは不十分です。
 OnSurfaceRestore{
 	"\0\s[" + defaultsurface0 + "]\1\s[" + defaultsurface1 + "]\e"
 }
「OnWindowStateRestore」と「OnChoiceTimeout」も書いておかなければなりません。流用でOK。

*紺野ややめに書かれていない、あやりりすの便利なもの [#x39c15e9]
-「ゴースト起動前の処理」「ゴースト終了前の処理」
-「プラグインの存在」
-「バルーンツールチップ」「シェルツールチップ」


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS