• 締切済み

プルタウンメニューでフラグをたてることはできますか?

プルタウンメニューってありますよね。(調べるとでると思います このプルタウンメニューについての質問です。 ちょっと文才がないので分かりにくいところがあるかもしれません。 レス沢山まってます。 それでは質問します。 game.cgi game.dat oni.cgi があるとします。 game.cgiはモンスターと戦うプログラムとします。 game.datはモンスターのデータを格納しているデータとします。 とりあえずデータ内はこんな並び方です。 ドラゴン<>100<>96<>40 でgame.cgiでデータを呼び出されデータの数字を変数に代入します。 foreach $line (@lines) { ($name,$a,$d,$keiken) = split(/<>/,$line); } (※$name(←モンスターの名前)$a(←攻撃力)$d(←守備力)$keikn(←経験値)) ここで質問です。 oni.cgiにプルタウンメニューがあります。 プルタウンメニューには 1.モンスター鬼強化モード 2.モンスター弱体化モード 3.モンスター通常モード と書いてあるとします。 例えば1.モンスター強化モードを選ぶとモンスターの攻撃力が100上がったり3.モンスター弱体化モードを選ぶと防御力が20下がったりなど できるとします。(通常モードは通常以外のモードじゃないと出現しない。そして通常モードだと鬼強化と弱体化モードしかでない。) それで モンスターの能力をあげるにはif文を用います。 ($tujoが0だと通常モードは現れない、1だと現れる) #鬼強化モード(攻撃力を100プラス) if (???) { $a += 100; $tujo = 1; } #弱体化モード(防御力を20マイナス) elsif (???) { $a += 100; $tujo = 1; } #通常モード else { $tujo = 0; } です。 結論から言うとプルタウンメニューで選んだモードによりモンスターの強弱がかわるというスクリプトです。 で鬼強化か弱体化モードの場合のみ通常モード(元に戻す)が現れる仕組みです。 ここで質問なのですが、条件をどう書いていいのかわかりません。 ???の部分です。 これさえ分かれば動くと思います。 皆様の知恵をおかしください。

  • wc13
  • お礼率67% (74/110)
  • Perl
  • 回答数1
  • ありがとう数1

みんなの回答

  • mihosaku
  • ベストアンサー率100% (1/1)
回答No.1

プルダウンメニューがoption要素の事であるとすれば、 value属性の値を条件式に組み込まれては如何でしょう?

wc13
質問者

お礼

ご回答有り難うございます。 ということはこういうですか。 $1 = 1; $2 = 2; $3 = 3; <FORM> <SELECT> <OPTION VALUE="$1">鬼強化モード <OPTION VALUE="$2">弱体化モード <OPTION VALUE="$3">通常モード </SELECT> </FORM> if ($1) { $a += 100; $tujo = 1; } #弱体化モード(防御力を20マイナス) elsif ($2) { $b -= 20; $tujo = 1; } #通常モード elsif ($3) { ????? $tujo = 0; } else { $tujo = 0; } ですか? 今度は通常モードでわからなくなりました。 どうすれば元に戻るのかです。

関連するQ&A

  • 計算式を教えていただけませんか

    ゲームでのモンスターの攻撃力を調べたいのですが、当然計算式がわかりません。 そこで同ゲーム内での能力の違うプレーヤー同士を戦わせ、データを取りました。 それにだいたいで合う式を教えていただけませんか。 データ 攻撃力 767 防御力 638 平均ダメージ 50.75 攻撃力 581 防御力 544 平均ダメージ 38.54 攻撃力 706 防御力 544 平均ダメージ 67 攻撃力 681 防御力 544 平均ダメージ 60.75 攻撃力 811 防御力 544 平均ダメージ 93.4 よろしくお願いしますm(_ _)m

  • perlで重複をさせない処理

    perlでプログラムを書いています。躓いたところが あるのでどうかご協力おねがいします。 a.datとa.cgiがあるとします。 a.datには、 a b c b a とデータが入っています。 そこで、datファイルを見てa、b、cというそれぞれ タイトルが入ったテーブルを自動的に作成させたいです。 (datの中身は増えていくので種類が増えたらテーブルも 増えます。重複はまとめて1個にしたいです) まずaというテーブル作成→改行→bというテーブル作成 →改行・・・といった感じです。(dat内でアルファベットで昇順) ファイル操作の追加モードみたいな感じです。 結構考えたのですがコードが思いつかずここにきました。 どうか、考え方だけでもいいのでよろしくおねがいします。

    • ベストアンサー
    • CGI
  • ***.cgiの中身は第三者から見られることはあるのでしょうか?

    例えば、htaccessの中に AddType application/x-httpd-cgi .cgi .dat .txt という一文を追加し、datやtxtの拡張子でデータを記録します。 その中身は第三者からのぞくことは出来るのでしょうか? 通常ブラウザではCGIとして動こうとしますのでエラーが出るはずですが 見られるとすればどういう場合があるでしょうか? よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • CGIプログラムを使ってレースの結果をHTMLに表示

    CGIプログラムの件でご質問したいのですが、datファイルのレース結果をCGIプログラムを使ってHTMLに表示したいと思っています。 datファイルの内容は、レースの結果が1位から順に10位くらいまでA,B,Cクラス混合で並んでいます。 1,Aクラス,青チーム,12:50,山本太郎 2,Cクラス,赤チーム,11:23,山田花子 3,Bクラス,黄チーム,10:52,松本典子 4,Aクラス,桃チーム,10:32,加藤茶子 それをCGIプログラムによって、各クラスごとに表示します。 CGIのプログラムの内容は、 open (FILE, "<data.dat") || die "File 'data.dat' Open Error."; @all = <FILE>; close(FILE); foreach (@all){ ($data1, $data2, $data3, $data4,$data5) = split(/,/, $_); next unless ($data2 eq "A"); &one_data; } sub one_data { print << "END_OF_ONE"; <P>$data1位<BR> $data2<BR> $data3<BR> $data4<BR> $data5<BR> </P> END_OF_ONE } 1; だいたいこんな感じですが、この各クラスごとに表示したHTMLのファイルの順位のところが、もとのdatファイルの順位になってしますので、それを1位から順にクラス別の順位として表示したいのです。 それにはどのようにしたらよいでしょうか? すみません、あまりperlの言語の知識がないもので。。

    • 締切済み
    • CGI
  • MHP3rd 装備

    ■女/ガンナー■ --- 頑シミュMHP3 ver.0.9.2 --- 防御力 [146→241]/空きスロ [0]/武器スロ[3] 頭装備:レウスSキャップ [1] 胴装備:レウスSレジスト [2] 腕装備:シルバーソルガード [3] 腰装備:シルバーソルコート [2] 足装備:ブラックレザーパンツ [1] お守り:【お守り】(属性攻撃+5,攻撃+9) [0] 【スキル】 攻撃力UP【大】 弱点特効 火事場力+2 連発数+1 属性攻撃強化  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 上記のスキルで属性攻撃強化と連発数+1を集中と通常弾強化に変える事は可能ですか。無理であれば装備・御守りを変更しても構いません。 最後に余談ですが、下記の装備&スキルでどちらが強いですか。 【No.1】 武器:鹿角ノ剛弾弓【攻撃力225会心0%爆裂型】 スキル【攻撃力up大・火事場+2・弱点特効・集中・通常弾強化】 【No.2】 武器:ファーレンフリード【攻撃力245会心15%集中型】 スキル:【攻撃力up大・火事場+2・集中・弱点特効】 どちらが強いですか。

  • 東方緋想天のセーブデータ移行について

    東方緋想天でやっているのですが、ストーリーモードで進めたデータを他のPCに移したいのですがどうすればできますか? インストールしたフォルダを見たところth105a.dat,th105b.dat,th105c.datがありました。これを移せばいいのですか?

  • CGIのちょっとしたこと

    CGIをいろいろと実験しているのですが、わからないことが2点あります。ローカルな環境で実行しています。 1.データファイル(実行ファイルではない)の拡張子なんですが、data.datとかdata.cgiとかありますよね。セキュリティ的にはcgiの方が安全なんですか?.datだとエディッタで中身がみれてしまうので・・。 2.実行ファィル内にパスワードを記述することがありますよね。そこで、実行形式のprogram.cgiファイルの中身をみられてしまうことがあるのでしょうか?rootにはみられてしまうかもしれないが、通常のユーザーがファイルのソースコードをみれてしまうということはないのでしょうか。私は多分みれないと思うのですが、特殊なソフトウェアなどが存在したりしますか。 3.実行から10秒後にファイルを作成するプログラムがあったとして、このプログラムを実行した直後にブラウザを閉じたとします。しかし、10秒後にはちゃんとファイルが作成されています。ブラウザを閉じてしまってもプロセスは残るものなのでしょうか。 ※プログラムはすべてブラウザで実行しています。

    • ベストアンサー
    • CGI
  • MH2PG フルフル

    フルフルが倒せません。 太刀(狼牙)でヒットアンドアウエイ繰り返し、怒りモードになったらひたすら逃げ、どうやら死なずに攻撃出来るようになったが、時間切れになってしまいます。WikiのQ&Aを読むと、防御をしない太刀使いがぶつかる最初の壁がフルフルだとありました。確かに当たってる部分が多々ありました。ただし防御せずとかいえ、回避はしてます。 太刀では難しいのでしょうか?薬に頼らず防御してこそMHなので大剣を推奨するような事を書いてましたが、抜刀状態で走れないため二の足を踏んでます。大剣を使う場合、防御すればダメージは問題ないレベルまで軽減されるのでしょうか? 一度だけへビィボーガンを使い、最初に出現した場所にある高台(卵が取れる所)に立ち、赤マークまで追い込みました。移動攻撃が難しいので使用場所が限られるのが残念です。

  • 要素の上書きについて

    perl初心者です。HTMLのフォームからCGIにデータを送り、そのデータを表示するだけのCGIを作っているのですが、HTMLフォームの中の項目を空のまま送信したときに、CGI側でその表示部分はなくなります。できれば、項目が空の時には、CGIで以前に登録していたデータが上書きされずに表示されるようにしたいのですが、どうしたら良いのかわかりません。どなたかご教授していただけないでしょうか。よろしくお願いいたします。(うまく説明できず、ご迷惑おかけします。) #!/usr/local/bin/perl #データファイル $datafile='./data.dat'; #ライブラリの読み込み require './jcode.pl'; #フォームデータの読み込み if ($ENV{REQUEST_METHOD} eq "POST"){ read (STDIN,$input,$ENV{CONTENT_LENGTH}); }else{ $input=$ENV{QUERY_STRING}; } #フォームデータのデコード $input =~ tr/+/ /; $input =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("H2", $1)/eg; #SJISコード変換 &jcode::convert(\$input, 'sjis'); #データのオープン open(DAT,"+< $datafile"); flock(DAT, 2); #データの書き込みとクローズ seek(DAT,0,0); print DAT $input; close(DAT); open(IN,"$datafile"); $input=<IN>; #フォームデータの分解 @form=split (/&/,$input); close(IN); &header; print "<div class=\"iframe_body\">"; #データを表示する(左側) print "<div class=\"iframe_left\">"; $a=$form[0]; $a=~s/名前=/ /; print "<b><font color=\"#ff0000\">$a</font></b>"; print "<br>"; $a=$form[1]; $a=~s/画像=/ /; print "<img src=\"$a\" width=\"120\" height=\"100\" border=\"0\">"; print "<br>"; $a=$form[2]; $a=~s/住所=/ /; print $a; print "<br></div>"; #データを表示する(中央) ・ ・ #データを表示する(右側) ・ ・ print <<EOM; </body> </html> EOM exit; #----------------------------------------------------------------------------------- # HTMLヘッダー #----------------------------------------------------------------------------------- sub header { print "Content-type: text/html\n\n"; print "<link rel=\"stylesheet\" href=\"../iframe.css\" type=\"text/css\">\n"; print <<EOM; <html> <head> <META HTTP-EQUIV="Content-type" CONTENT="text/html";charset=shift_jis> <title></title> </head> <body> EOM }

    • ベストアンサー
    • Perl
  • 配列について

     現在CGIの勉強として簡単なゲストブックを作ってるんですけど、わからないことがあるので質問します。 -------log.datの内容------- Aさん<>GOOです。<> Bさん<>まあいいんじゃない?<> Cさん<>ファイトー<> -------メインのCGI(表示部分)------- open(D,"log.dat"); $data=<D>; close(D); @log=split(/<>/,$data); ($name,$mes)=@log; print "$name : $mes";  こんな感じで内容を書き込むことはできましたが、 いざメッセージを表示しようとしたときに、僕が作った方法ではAさんの内容しか表示されません。  どうすれば全員の内容を表示することができるのでしょうか? 変な質問をしてるかもしれませんが、 よろしくお願いします。

    • ベストアンサー
    • Perl