![]() |
|
| トップページへ | [ 一覧 | 検索 | 最終更新 ] [ 差分 | 履歴 | 凍結 ] |
|
|
サーフェス値加算†手動でサーフィス指示を埋め込む方法†
下の関数を、辞書のなかに追加してください。 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
|