スクリプターの仕組み

script.cgiスクリプターで、s=URLという形でシナリオを置いているページを与えます。
なので、自分のBlogのエントリーにシナリオを用意して、URLを引数で与えれば再生できます。
(scriptStartからscriptEndまでがシナリオとして有効。構文解釈は手抜きなので台詞の中で=は使わないでw)

画像の定義も

こなた=画像のURL

なのでhttp://から書けばどこにあっても表示できます。
(昨日のエントリーは省略しているのでscript.cgiのカレントパスから呼んでます)

こなた「台詞

と書けば、画像が定義されているキャラについては画像が表示されます(定義されない場合は台詞のみ表示される)


処理の流れは、
CGIがシナリオをgetして、JavaScriptに書き換えます
昨日のシナリオだと次のようなJavaScriptになります。
画像の定義はハッシュに、台詞はプログラムカウンターを見て発言関数が呼ばれる仕組み
一回転ごとにPCがインクリメントされて、setTimeoutでwaitします。
発言内容が長いほど長くwaitするようにしてます(say関数の中で長さを見ている)

hash_img['こなた']='konata.png';
hash_img['かがみ']='kagami.png';
hash_img['つかさ']='tukasa.png';
 
function main() {
  if(pc==0) say('こなた','こないだ秋葉で新作のゲームを買ったんだけど');
  if(pc==1) say('つかさ','なに買ったの?');
  if(pc==2) say('こなた','それが、対応機種を間違ってXBOX360用を買ってしまって……');
  if(pc==3) say('かがみ','あんたXBOX360持ってないんだ?');
  if(pc==4) say('こなた','ギャルゲーとかも適度にあるし欲しい機体ではあるんだけど');
  if(pc==5) say('かがみ','話がそれてるわよ');
  if(pc==6) say('こなた','……本題に戻ると、対応機種を間違ったので、返品に秋葉に行こうかと思ったら、そのゲームに不具合が出てリコールになってしまって、ヤフオクで価格がつり上がって、売ったらもうかってしまった');
  if(pc==7) say('つかさ','よかったね!');
  if(pc==8) say('かがみ','もうかったんならおごりなさいよ');
  if(pc==9) say('こなた','余剰金でXBOX360をゲット!');
  if(pc==10) say('かがみ','……それ買う順番逆でしょ');
 
  pc++;
  setTimeout('main()',(wait_time+wait_offset));
}

※あと、現状はてなダイアリー想定で、元がeucutf-8に変換してます。
元からutfとかsjisは化けます。元の文字コードに併せる方法もできるんですが、
そういう細かいことはまだやってません