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