//// 文 平行喋り用スクリプト(\0/\1のみ)
//// 利用例:ParallelTalk("0番喋り","1ばんしゃべり")
////
//// v1.0-20031001:初版
//// v1.1-20031002:長いほうのトークにあわせるように組み直し
//// v1.2-20040315:AYA v5
//**********これは利用例です。ゴーストに組み込む場合は不要です**********

OnParallelTalk
{
	"\0\s[5]\1\s[10]\_s成功の秘訣は、\_s\w9"
	--
	ParallelTalk("%msと毎日積み重ねる練習ですよね!","%ITkeypersonに見習うことだ。")
	--
	"\w9\w9\0\n\s[4]あれ?"
}
//**********ParallelTalkメイン**********

ParallelTalk
{
	_sakuralen = STRLEN(_argv[0])
	_kerolen = STRLEN(_argv[1])
	
	//sakura側/kero側が空の時
	if _sakuralen == 0
	{
		"\1" + _argv[1]
		return
	}
	if _kerolen == 0
	{
		"\0" + _argv[0]
		return
	}
	
	//どっちも同じ=シンクロタグで始末できる
	if _argv[0] == _argv[1]
	{
		"\_s" + _argv[0] + "\_s"
		return
	}
	
	//長いほうにあわせる
	_n = _sakuralen
	_shortlen = _kerolen
	_longstr = _argv[0]
	_shortstr = _argv[1]
	_longidentifier = "\0"
	_shortidentifier = "\1"
	
	if _sakuralen < _kerolen
	{
		_n = _kerolen
		_shortlen = _sakuralen
		_longstr = _argv[1]
		_longidentifier = "\1"
		_shortstr = _argv[0]
		_shortidentifier = "\0"
	}
	
	_shortlastpos = 0
	_outstr = _longidentifier
	
	//少しずつ切り出してつないでいく
	for _i = 1; _i <= _n; _i++
	{
		_longpos = _i - 1
		_outstr += SUBSTR(_longstr,_longpos,1)
		_shortpos = _shortlen * _i / _n
		_shortdiff = _shortpos - _shortlastpos
		
		if _shortdiff > 0
		{
			_outstr += "\_q"
			_outstr += _shortidentifier
			_outstr += SUBSTR(_shortstr,_shortlastpos,1)
			_outstr += _longidentifier
			_outstr += "\_q"
			
			_shortlastpos = _shortpos
		}
	}
	
	_outstr
}

首頁   編輯 封鎖 差異 備份 上傳檔案 複製 變更名稱 重新載入   新建條目 一覽 搜索 最近的變更   幫助   最近更新的RSS
Last-modified: 2011-11-02 (三) 13:54:55 (4224d)