罪と罰++二律背反


[[罪罰改造]]

*所属年数と裏切り [#c4b69b14]
-%%テストしてません^^使う人はご注意!!時間があればテストしますが、問題点をご報告いただければ修正します^^;%%
-動かしているので大丈夫かと
-統一するごとにカウントするのは、面倒なので仕官した年を記録する

-移籍ポイントは、移籍するたびに+5される
-仕官時には、いま所属している国にいた年数を移籍ポイントからマイナス
-仕官するときに裏切りチェックを行う、移籍ポイントx5%で裏切者の称号を得る

-まとめると移籍するたびに+25%、移籍してから一年ごとに−5%の確率で「裏切り者」となる

-「裏切者」だと過激すぎるので「新参者」とかにした方がいいかな?ビミョウにしっくりこない・・・。

**判定とカウント ./inc/ore_sub-changes.cgi [#r9d134b9]

 $log .= "$cmp[$camp] へと所属を変え、$cl[$rank] の階級が与えられた<br>\n";
 # $iseki_p     # 移籍するたびに+5
 # $sikan_y     # 所属年
 if($sikan_y<1){ $sikan_y=$goal_no; } # 最初 $sikan_y が0だと移籍Pが−1x年で始まる対策
 $iseki_p -= ($goal_no-$sikan_y);
 $iseki_p = 0 if($iseki_p<0);         # 下限を0に限定
 if($iseki_p * 5>rand(100)+1){
   $sogo=132;                         # 132は裏切者の称号番号
   $log .= qq|$sogo_p[$sogo]の称号を得た!|;
 } 
 $iseki_p += 5; # 移籍Pはチェック後に+5(最初の確率が25%なのを修正)
 # 仕官した期を記録
 $sikan_y = $goal_no;

-04.04.06 下限を0にする、長い間所属している人が連続で移籍できるのを防ぐ
-04.05.16 裏切り確率0なら「裏切者」を取得確率を0にする
-04.06.12 移籍Pはチェック後に+5する

**変数を追加 ./inc/ore_sub-system.cgi [#w74b853c]
変数2つの保存と読み出しを追加する
 # sub hash_data
 $iseki_p = $DAT{'iseki_p'};
 $sikan_y = $DAT{'sikan_y'};

 # sub dat_write
 # $dat[0]に追加
 iseki_p;$iseki_p,sikan_y;$sikan_y,

*仕官直後の期は仕官を制限 [#iaf2727f]
**./inc/ore_sub-changes.cgi [#pc31f076]

 }elsif($cmd>=0 && (($c1 >= $c1a && $cmd == 1)
     ||($c2 >= $c2a && $cmd == 2)||($c3 >= $c3a && $cmd == 3)
     ||($c4 >= $c4a && $cmd == 4)||($c5 >= $c5a && $cmd == 5))){
 
     for($i=1,$j=1;$i<=$#cmp;$i++,$j++){
          if($cmd==$j){
               $log .= "$cmp[$i] は定員一杯で入国できません<br>\n";
          }
     }
     $tm = $cmd = 0;
     $type='';
     &call_main_st;
 }elsif($goal_no - $sikan_y <= 0){      # 仕官した期と現在の差
 # }elsif($goal_no-$sikan_y<=1){    # 仕官して次の期まで仕官できない
     $log.="仕官したばかりの方は、すぐには仕官できません。<br>";
     $tm = $cmd = 0;
     $type='';
     &call_main_st;
-04.05.09  }elsif($goal_no-$sikan_y<=0){  # ここを=<から<=に修正


*裏切者のペナルティ [#iaf2727f]
**./inc/ore_sub-changes.cgi [#pc31f076]
-裏切者の称号を持っている間は、移籍・仕官できない
-称号の取得(裏切者の称号を消す)のしやすさでペナルティの重さが変わるのが問題

 }elsif($cmd>=0 && (($c1 >= $c1a && $cmd == 1)
     ||($c2 >= $c2a && $cmd == 2)||($c3 >= $c3a && $cmd == 3)
     ||($c4 >= $c4a && $cmd == 4)||($c5 >= $c5a && $cmd == 5))){
 
     for($i=1,$j=1;$i<=$#cmp;$i++,$j++){
          if($cmd==$j){
               $log .= "$cmp[$i] は定員一杯で入国できません<br>\n";
          }
     }
     $tm = $cmd = 0;
     $type='';
     &call_main_st;
 }elsif($sogo==132){
     $log.="裏切者の称号を持つ方は仕官できません。<br>";
     $tm = $cmd = 0;
     $type='';
     &call_main_st;

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