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