トップページへ | [ 一覧 | 検索 | 最終更新 ] [ 差分 | 履歴 | 凍結 ] |
サーフェス値加算†手動でサーフィス指示を埋め込む方法†
下の関数を、辞書のなかに追加してください。 sf { _surface = _argv[0] if TOSTRING2(dressmode) == "" { dressmode = 0 } _surface = _surface + dressmode*100 "\s[%_surface]" } OnSurfaceChangeを使わない着替えモード、などに応用できます。
パジャマ姿のsurfaceが、通常surfaceに100を足した数字で、 sf { _surface = _argv[0] if hour >= 23 || hour =< 4 { _surface += 100 } "\s[%_surface]" } (et cetera.の掲示板から転記しました) 自動でスクリプトを変換する方法†さくらスクリプトはそのままでサーフィス加算を行う関数。 sfcnv { _script = _argv[0]; _script = REPLACE(_script,"\\",CHR(1)); //_countは捨て変数(余分な出力をしないための措置) //YAYAの場合は、RE_GREPの戻りをvoidに突っ込む方がスマートです。 //その場合、void RE_GREP~のような感じになります(=は不要です)。 _count = RE_GREP(_script,"\\s\[(\d+)\]"); _grep = RE_GETSTR; foreach _grep;_string { _count = RE_GREP(_string,"\d+"); _surface = TOINT(RE_GETSTR[0]); if ((_surface < 10)||(19 < _surface)) { //\1側は変換しない(必要に応じて範囲は変えてください) _surface += SurfaceMode * 500; //ここが変換部。この例ではSurfaceModeと言う変数に500を掛けてサーフェス番号に加算している _script = REPLACE(_script,_string,"\s[%(_surface)]"); } } _script = REPLACE(_script,CHR(1),"\\"); _script; } 例では「SurfaceMode」という変数を使っていますが、「//ここが変換部」と書いてある行の式をいじるといろいろできます。 これをOnTranslateなどから呼び出す。 OnTranslate { reference0 = sfcnv(reference0); reference0 } ゴースト「そめいよしの」の辞書より。 |
最終更新日: 2021-02-27 (土) 23:22:14
|