罪と罰++二律背反


*降伏がうまくいきません [#xf3a609e]

-ページ: [[罪罰改造掲示板]]
-投稿者: [[こじこ]]
-優先順位: 緊急
-状態: 完了
-カテゴリー: エラーが出ます
-投稿日: 2004-05-23 (日) 17:41:45
-バージョン: 

**メッセージ [#d98c5399]
添付がうまくいかなかったので、罪罰専用掲示板No.214に掲載してます。
不都合でしたら移動してください。 

----

下記のコマンドをいれたのですがうまくいきません。
エラーは出ていません。
パラは独自なので無視してください。

 # 降伏
 }elsif($cmd==5){
   $pr=$GMT/5;$act_cnt+=10;
   $log .= "降伏文書が整いました。どこに提出しますか?<br>\n";
   $log2 .=qq|<form action="$script" method="$method" name="ore_">\n|;
   $log2 .=qq|<td align="center" valign="middle">\n| if($mv_mode eq 'pc');
   $log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
   $log2 .=qq|<select name="cmd" size="1">\n|;
   $log2 .=qq|<option value="0">やめる</option>\n|;
   $log2 .=qq|<option value="1">$cmp[1]</option>\n|;
   $log2 .=qq|<option value="2">$cmp[2]</option>\n|;
   $log2 .=qq|<option value="3">$cmp[3]</option>\n|;
   $log2 .=qq|<option value="4">$cmp[4]</option>\n|;
   $log2 .=qq|<option value="5">$cmp[5]</option>\n|;
   $log2 .=qq|</select><br>\n|;
   $log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
   if(($cmd<=0)||($cmd>=6)||($camp==$cmd)){
     $log .= "あとで行うことにした。<br>\n";
     $tm = $cmd = 0;
     &politics_menu;
   }elsif(($my_cb eq $nm)&&($my_cn<=4000)&&($my_ce==0)){
     $mes = "国号を後世に存続すべく、耐え難きをー耐え、忍び難きをー忍び、今は降伏を選びます・・・";
     $act_cnt+=10;$idoucn=int($my_cn/2);
     if($cmd==1){$cn1+=$idoucn;}
     elsif($cmd==2){$cn2+=$idoucn;}
     elsif($cmd==3){$cn3+=$idoucn;}
     elsif($cmd==4){$cn4+=$idoucn;}
     elsif($cmd==5){$cn5+=$idoucn;}
     if($camp==1){$cj1=0;$shuunin1=0; $tohyoper1=$tohyonin1=0;$cn1-=$idoucn;$ce1=1;$ck1=0;}
     elsif($camp==2){$cj2=0;$shuunin2=0; $tohyoper2=$tohyonin2=0;$cn2-=$idoucn;$ce2=1;$ck2=0;}
     elsif($camp==3){$cj3=0;$shuunin3=0; $tohyoper3=$tohyonin3=0;$cn3-=$idoucn;$ce3=1;$ck3=0;}
     elsif($camp==4){$cj4=0;$shuunin4=0; $tohyoper4=$tohyonin4=0;$cn4-=$idoucn;$ce4=1;$ck4=0;}
     elsif($camp==5){$cj5=0;$shuunin5=0; $tohyoper5=$tohyonin5=0;$cn5-=$idoucn;$ce5=1;$ck5=0;}
   }else{$mes = "降伏は出来ません。";}
     $tm=55;
-移動ありがとうございます。エラーはないのですが、プルダウンのやり方がよくわからなくて... -- [[こじこ]] &new{2004-05-23 (日) 21:48:27};
-そうですね、国の選択と降伏処理を $tm でも使って処理を分割しないといけないですね〜 -- [[あくあ]] &new{2004-05-23 (日) 23:24:43};

**まず、相手国を選択 [#q19a5f30]
 # 降伏
 }elsif($cmd==5){
   $pr=$GMT/5;$act_cnt+=10;
   $log .= "降伏文書が整いました。どこに提出しますか?<br>\n";
   $log2 .=qq|<form action="$script" method="$method" name="ore_">\n|;
   $log2 .=qq|<td align="center" valign="middle">\n| if($mv_mode eq 'pc');
   $log2 .=qq|<input type="hidden" name="id" value="$id">\n<input type="hidden" name="pw" value="$pw">\n|;
   $log2 .=qq|<select name="cmd" size="1">\n|;
   $log2 .=qq|<option value="0">やめる</option>\n|;
   $log2 .=qq|<option value="1">$cmp[1]</option>\n|;
   $log2 .=qq|<option value="2">$cmp[2]</option>\n|;
   $log2 .=qq|<option value="3">$cmp[3]</option>\n|;
   $log2 .=qq|<option value="4">$cmp[4]</option>\n|;
   $log2 .=qq|<option value="5">$cmp[5]</option>\n|;
   $log2 .=qq|</select><br>\n|;
   $log2 .=qq|<input type="submit" $button1 value="NEXT">$td_end</form>\n|;
   $tm = 60;  # <--使ってない番号を使います
**選択した国に降伏する処理 [#kf4df258]
 }elsif($tm==60){
   if(($cmd<=0)||($cmd>=6)||($camp==$cmd)){
     $log .= "あとで行うことにした。<br>\n";
     $tm = $cmd = 0;
     &politics_menu;
   }elsif(($my_cb eq $nm)&&($my_cn<=4000)&&($my_ce==0)){
     $mes = "国号を後世に存続すべく、耐え難きをー耐え、忍び難きをー忍び、今は降伏を選びます・・・";
     $act_cnt+=10;$idoucn=int($my_cn/2);
     if($cmd==1){$cn1+=$idoucn;}
     elsif($cmd==2){$cn2+=$idoucn;}
     elsif($cmd==3){$cn3+=$idoucn;}
     elsif($cmd==4){$cn4+=$idoucn;}
     elsif($cmd==5){$cn5+=$idoucn;}
     if($camp==1){$cj1=0;$shuunin1=0; $tohyoper1=$tohyonin1=0;$cn1-=$idoucn;$ce1=1;$ck1=0;}
     elsif($camp==2){$cj2=0;$shuunin2=0; $tohyoper2=$tohyonin2=0;$cn2-=$idoucn;$ce2=1;$ck2=0;}
     elsif($camp==3){$cj3=0;$shuunin3=0; $tohyoper3=$tohyonin3=0;$cn3-=$idoucn;$ce3=1;$ck3=0;}
     elsif($camp==4){$cj4=0;$shuunin4=0; $tohyoper4=$tohyonin4=0;$cn4-=$idoucn;$ce4=1;$ck4=0;}
     elsif($camp==5){$cj5=0;$shuunin5=0; $tohyoper5=$tohyonin5=0;$cn5-=$idoucn;$ce5=1;$ck5=0;}
   }else{$mes = "降伏は出来ません。";}
 
   $tm=$cmd=0;
   $call_main_st;
-降伏した時の効果の処理は確認してません^^ -- [[あくあ]] &new{2004-05-23 (日) 23:48:37};
-選択した国に降伏する処理 †はどこにそうにゅうしたらいいのですか?うまくいきません... -- [[こじこ]] &new{2004-05-24 (月) 00:53:58};
-}elsif($tm==XX){ とかいうのが、ファイルの後半にあるので、その直前に入れるといいのではないかと思います -- [[あくあ]] &new{2004-05-24 (月) 12:06:37};
-うまくいきません・・・ -- [[こじこ]] &new{2004-06-16 (水) 01:06:17};
-基本的なことを聞きますが、プルダウンを使ったあとはどういうことをしないといけないのですか? なにに気をつければいいのですか? -- [[こじこ]] &new{2004-06-16 (水) 01:07:13};
-プルダウンだから特別何をしないといけないというのは無いような・・・。 -- [[あくあ]] &new{2004-06-16 (水) 17:23:57};
-私が最初に書いたものではなぜいけないのでしょうか... あの方法でいいならいちばん簡単なのですが... -- [[こじこ]] &new{2004-06-16 (水) 21:00:42};
--まず、プルダウンが表示されたからといって処理がそこでとまるわけではありません。ということは、プルダウンが表示されてからすぐに$cmdの評価その下の処理分岐を実行してしまうわけです。
--しかし、プルダウンは表示されただけで国を選択したわけではないので考えているところと違う処理を実行してしまいます -- [[あくあ]] &new{2004-06-16 (水) 21:32:20};
--そのため、まずプルダウンの表示が終了したら処理終了。で、プレイヤーが選択したらまた最初から実行しますが $tm で今どの状態かを記録しておき、2つ目の処理を実行します
--で、2つ目の処理で選択した国ごとの処理を実行すればいいわけです。
--つまり、プレイヤーの処理は国選択部分で2つに分かれているので、スクリプトを$tmで2つに分けると自然に処理できます


#comment

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS