Top/Tips/会話の途中で人格を切り替える
  トップページへ   [ 一覧 | 検索 | 最終更新 ]   [ 差分 | 履歴 ]

*会話の途中で人格を切り替える [#c350577e]

モードは変数 mode で持ち、0 と 1 のモードがあるとします。~
(0は通常モード、1は怒りモード)~
ランダムトークイベント RandomTalk は以下のように記述します。~

 RandomTalk
 {
 	if ISINTEGER(mode) == 0 {
 	mode = 0
 	}
 	_t = CALLBYNAME("RandomTalk%mode")
 	_l = STRLEN(_t)
 	if _l > 8 {
 		_pos = _l - 8
 		_emd = SUBSTR(_t, _pos, 8)
 		if _emd == "->mode=1" {
 		mode = 1
 		_t = SUBSTR(_t, 0, _pos)
 		}
 		elseif _emd == "->mode=0" {
 		mode = 0
 		_t = SUBSTR(_t, 0, _pos)
 		}
 	}
 	_t
 }

これで以下のように、特定の会話でモードを切り替えられます。~

 // \eの後で「->mode=?」(「?」は切り替えたいモードの数字)を入れる
 
 RandomTalk0 : nonoverlap
 {
 	"\0\s[0]こんにちは。\e"
 	"\0\s[0]怒ったぞー。\e->mode=1"
 	"\0\s[0]やっほー\e"
 	"\0\s[0]あはは。\e"
 }
 
 RandomTalk1 : nonoverlap
 {
 	"\0\s[7]いいかげんにして。\e"
 	"\0\s[7]許してあげる。\e->mode=0"
 	"\0\s[7]もう、だまされないよ。\e"
 	"\0\s[7]ウソばっかり。\e"
 }

(et cetera. の掲示板より。一部改変)