SACT2 for System4.x
メッセージ描画前( message 関数呼出時)の コールバック関数 を登録します。
※このマニュアル中に出てくるメッセージという単語は、 WindowsなどのOSで用いられるメッセージの意味ではなく、 ゲームのメッセージ表示部に表示される文字列を指します。 同様にメッセージコールバック関数という単語もWindowsなどで用いられているものとは 意味が異なるので注意してください。
void REGISTER_MESSAGE_CALLBACK(sact_message_callback_t fnc);
sact_message_callback_t 型のコールバック関数。
なし
登録した コールバック関数 は、 message の呼び出し直前(厳密にはmessage関数が呼ばれて他の処理を行う前) に呼び出されます。
コールバック関数 によって渡された ref string 型の変数内の文字列に対して置換や変換を行うことによって、 メッセージとして表示させる文字列を変更することができます。 ただし、 ref string 型の変数内の文字列に対してなんらかの変更を行った場合は、 必ず、 コールバック関数 によって渡された2つの ref int 型の変数のうちの最初の引数(ref int nMsgNum)に、 -1 をセットしてください。
登録を解除するには、 UNREGISTER_MESSAGE_CALLBACK を使用してください。
void 初期化(void)
{
//登録
REGISTER_MESSAGE_CALLBACK(&game_message_callback);
}
//コールバック関数
void sact_message_callback_t(ref int nMsgNum,int nNumofMsg, ref string sText)
{
//メッセージが 主人公 という文字列であれば ランス に置き換える。
if(sText=="主人公")
{
sText="ランス";
nMsgNum = -1;
return;
}
}
//【注意】この例では、文字列が完全に一致した場合のみ置き換えられるため
//'主人公は〜'
//のようなメッセージ中の主人公という文字列は置き換えられない。
上記のコードの実行例
'主人公'R;
'俺様が主人公だ。'A;
というシナリオメッセージは、
ランス
俺様が主人公だ。
と表示される。
コールバック関数 , message , UNREGISTER_MESSAGE_CALLBACK , REGISTER_A_BEGIN_CALLBACK , REGISTER_A_END_CALLBACK ,
Copyright © 2002-2004 ALICE-SOFT