Sponsored Link

その6.スタート!CGI

まずはメッセージの変更
ぶら:
プチ改造〜♪いよいよぼくもこの域に…♪
小梅:
プチ改造というのも口はばったいよーな感じがするけど…
まあいいか。ちょっとお手間ですがここ→■L368
ここからはスクリプトの本文とでもいうようなところです。
ぶら:
ひ〜。なんかすごい。
小梅:
すごいです。
もうここに何が書いてあるかなんてどーでもいいから、まずはメッセージを変えてみるなんてしてみよっか。
ぶら:
メッセージなら、さっき設定のとこで変更したよ?
小梅:
今回は、そこにないメッセージ。
スクリプトの中に直接組み込まれてる文章の変更です。
ぶら:
スクリプトを直接変更するんだね。ドキドキ。でも、言葉を変えるくらいなら、ぼくでもできるかな。
小梅:
うん。単に、元からある言葉を新しい言葉に書き換えるだけだから。
ぶら:
それじゃあ、小梅が嫌いな「死んだ」関連の書き換え。
小梅:
おう、それ行くぞ。
まず最初の説明文に出てくる「ペットはX日以上餌を食べないと死にます」。
ぶら:
ん〜と、どこにあるのかしら。
小梅:
こういうスクリプトに組み込まれている言葉を変える時は、pet.cgiの中から検索で探し出すの。
ただ、今回ので言うと「ペットはX日以上餌を食べないと死にます」という言葉がそのまんまスクリプトの中にあるわけではないから、検索する単語はなるべく短く、特徴的なものを選ぶといいね。 それに、ものによっては、同じ言葉が複数あることもあるから、一個見つけて変えたからって安心して終わりにしちゃうと、改造できないからね。検索するなら最後まで。
ぶら:
検索ってどうやればいいの?
小梅:
それは使ってるエディタによって違うからなあ。
でもたいてい上のところに「検索」ってない?メモ帳にもあるよ。
その検索を押して、出てきたウィンドウに検索したい文字を入力すればいいだけ。
ぶら:
検索文字はずばり「死」あたりが適当かしら。
小梅:
そうだね。#文(コメント文)の「死」は変えても変えなくてもプレイヤーさんには見えないから、ここではほっておくことにしましょう。
ぶら:
小梅…もしかしてそこも変えてる?
小梅:
聞かぬが花、言わぬが花。
さて、#コメント文以外で「死」が最初に出てくるのがずばり■L444
print "ペットは$deadline日以上餌を食べないと死にます。<br>\n";
ぶら:
あ、ほんとだ。「ペットはX日以上餌を食べないと死にます」じゃないんだ。
$deadlineってなにかしら。
それと、"と"でくくってある部分が表示されるメッセージってことかしら。
小梅:
そうです。$deadlineの説明は後にして、日本語の部分だけを変更しましょう。
私は
print "ペットは$deadline日以上餌を食べないと家出します。<br>\n";
なんてふうにしてる。
ぶら:
次に「死」があるのは…あ、みっけ。■L500
&petnow($dead_img, "$petnameは死にました。<br>死後$deadover日経っています。");
これにも不思議な言葉が入ってるけど、メッセージだよね。
小梅:
うんうん。同じように好きな言葉に変えてみて。「不思議な言葉」も、変更可能なんだけど、まずは触らないようにしておいてね。一例はこんな感じ。
&petnow($dead_img, "$petnameは家出しました。<br>家出してから$deadover日経っています。");
ぶら:
ほかには「死」って単語の入っているメッセージはないみたいだね。
これ以外にも、変えたい文章がある時は、こういうふうに変えていけばいいんだね。
小梅:
そうね。だいたい表示されるメッセージは右側の赤い太文字の部分。ちょっと自分のやりたいPET ROOMとは表現が合わないなって時は、このあたりを変えてみるといいよ。
そして、過去の回でも言ったけど、文字によっては文字化けしたり、エラーを起こす部分もあります。一気に変えずに少しずつ言葉を変えていくことオススメ。
角画像を消してみよう
ぶら:
い、いよいよきたか角画像!!
小梅:
ここは、一番外側の背景色を白黒以外にしている人のためのプチ改造。
背景色と同じ色の角画像を用意できる人はいいけど、そうでないなら、あとは角画像を表示しないようにするしかないよね。ところで、前に角画像の設定した部分、おぼえてる?
ぶら:
■L321のことかしら?
$ltimg = 'lt.gif';
$rtimg = 'rt.gif';
$lbimg = 'lb.gif';
$rbimg = 'rb.gif';
小梅:
画像を出さないようにするということは、HTMLの場合だと<img src="lt.gif">のタグを消すってことだよね。
実はCGIも同じなんだ。
ぶら:
ねえねえ、lt.gifとか、角画像本体を削除しちゃえば、表示されから、それだけでOKなんじゃない?
そのほうが、スクリプト変えるより簡単だよ!
小梅:
IEならそれでいけるみたいだけど、ネットスケープだとしっかり出るよ。 MACだとどう出るかは判らないけど…

ね、しっかり四角い枠が四隅にあるでしょ。
正しくやっても環境によって見え方が違ってしまうのは仕方ないけど、自分の環境だとOKだからといって手抜きをすると後で困ることになるよ
ぶら:
わ、わかった…じゃあ正しくやるよ。とか<img src="rt.gif">とかを「検索」して、それを消せばいいんだよね?
小梅:
ところが、そうはいかないんだ。なぜならlt.gifという文字はこのスクリプトの中では$ltimgに変身しているのだよん。
ぶら:
$ltimg = 'lt.gif';
これって変身魔法だったのぉ?
小梅:
そんなようなもん。
なので、$ltimg$rtimg$lbimg$rbimgって言葉を検索するといいの。
ぶら:
じゃ、まず$ltimgを検索検索…めーっけ!■L889だあ!
print "<td valign=\"top\"><img src=\"$img$ltimg\" width=\"$ris\" height=\"$ris\"></td>\n";
小梅:
じゃあ、それのアタマに#くっつけて。
#print "<td valign=\"top\"><img src=\"$img$ltimg\" width=\"$ris\" height=\"$ris\"></td>\n";
こんな感じ。
ぶら:
あれ?#ってCGIの動作に関係ないコメント文…
小梅:
そう。コメント文に変身させて、CGIの動作と関係なくさせるってことは、CGIの動作の上では消すのと同じことなの。
ぶら:
ホントに削除しちゃいけないの?
小梅:
いけなくはないよ。でも、あとになってこの角画像使いたくなったらどうする?
オリジナルから探してきてコピーする?
面倒だよね?コピーし間違えたら大変だし。
すぐに元通りに直せるように、改造する時には元の文はできるだけとっておいたほうがいいの。
ぶら:
なるほどねえ…これが慎重にやるってことなのか…$ltimgを最後まで検索してみたけど、ほかにはないよ。
小梅:
じゃあ、次の$rtimgも、同じように検索してみて。
ぶら:
めっけ!■L901。なんだ、すぐ近くにあったんだ。
print "<td valign=\"top\"><div align=\"right\"><img src=\"$img$rtimg\" width=\"$ris\" height=\"$ris\"></div></td>\n";
これも
#print "<td valign=\"top\"><div align=\"right\"><img src=\"$img$rtimg\" width=\"$ris\" height=\"$ris\"></div></td>\n";
こう?
小梅:
よっしゃー。次は$lbimgだ。
ぶら:
これもめっけ。■L921
print "<td valign=\"bottom\"><img src=\"$img$lbimg\" width=\"$ris\" height=\"$ris\"></td>\n";
これも
#print "<td valign=\"bottom\"><img src=\"$img$lbimg\" width=\"$ris\" height=\"$ris\"></td>\n";
こうだね。で、$rbimgは…■L932
print "<td valign=\"bottom\"><div align=\"right\"><img src=\"$img$rbimg\" width=\"$ris\" height=\"$ris\"></div></td>\n";
これは
#print "<td valign=\"bottom\"><div align=\"right\"><img src=\"$img$rbimg\" width=\"$ris\" height=\"$ris\"></div></td>\n";
っと。
小梅:
今回は1行まるまる消しても大丈夫な記述だったから簡単だったね。
だからってなんでも#でコメントにしちゃえばOKってわけじゃないよ。
さて、変身する必要がなくなったわけだから、さっきの■L321とその下L327も下みたいに#つけてコメントにしちゃうのが正しいんだろうけど、しなくてもエラーは起きない。
#$ltimg = 'lt.gif';
#$rtimg = 'rt.gif';
#$lbimg = 'lb.gif';
#$rbimg = 'rb.gif';
#$ris = '8';
ぶら:
ねえ、スクリプトの中にHTMLのタグみたいなのがあるね。
小梅:
うん、CGIだって表示するときはHTMLを使うから、中に組み込まれてるよ。
CGIは計算したり、分岐させたりする部分と、HTMLを使って表示したりする部分があるから。
スクリプトの中に、たくさんHTMLのタグがあるから、さがしてみて。
ちょっとだけガード
小梅:
さて、次はセキュリティというのもばかばかしーような内容です。
ぶら:
がーどとかせきゅりてーとか、なんのはなし?
小梅:
ちょっとね、自分のPETROOMにアクセスしてみて。
ブラウザのバーに表示されるURLをクリックして、直接ここで入力を行います。
たとえばhttp://www.XXX.XXX/~XXX/cgi-bin/pet.cgiだったら、このpet.cgiをなくして
http://www.XXX.XXX/~XXX/cgi-bin/
って感じで、フォルダに直接にアクセスしてみて。
ぶら:
まっしろなページが出ました。
小梅:
これは、さっき置いたindex.htmlのおかげなの。
これを置かないと、cgi-binに置いてあるファイルの一覧表が出るプロバイダもあるの。
ブラウザってフォルダにアクセスすると、まずそこにあるindex.htmlを読もうとするんだ。
それがないと、エラーを出すか、一覧表を出すかするのね。
petd.cgi、user.cgiは、直接アクセスしても中身が見られる心配は一応ないんだけど、たとえばimgフォルダの中の画像。
せっかくお楽しみ画像なんて置いても、imgフォルダの一覧が見られちゃったら、つまんないよね。
なので、imgフォルダにもindex.htmlを置きましょう。
ぶら:
もうひとつ、index.htmlをつくるの?
小梅:
あ、必要ないよ。cgi-binに置いたのと同じものを、そのままimgフォルダにFTPすればいいだけ。
ぶら:
これ、全部のフォルダに置くの?
小梅:
中にどんなファイルがあるか見られたくないフォルダだけでいいよ。 ここでいうならcgi-binimgだね。
TOP >> 1 >> 2 >> 3 >> 4 >> 5 >> 6 >> 7 >> 8 >> 9 >> 10 >> 11

PET ROOMはMissing Linkさんが配布されているCGIゲームです

[コーナートップ] [ブライト翔ぶ!] [ぶらいとふぉーらむ]