私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇804:
1日の戦闘制限 [mizuho] 10/08 16:00

 └◇805:Re:1日の戦闘制限 [moon] 10/08 19:55
  └◇810:Re[2]:1日の戦闘制限 [mizuho] 10/09 11:55
   └◇812:Re[3]:1日の戦闘制限 [moon] 10/09 19:23
    └◇817:できました! [mizuho] 10/10 10:28<-last


804● 1日の戦闘制限[ mizuho ] 2003 10/08 16:00
内容が別なので分けさせていただきましたm(_"_)m

相手1人に対し1日の戦闘を1回に制限して、その日のうちは戦えなくし、翌0時以降に再び挑めるようになる、という改造を取り入れたいのです。
これまたまったくわかりませんでした(ToT)
どのようにすればよろしいでしょうか?
スレッド一覧


805● Re:1日の戦闘制限[ moon ] 2003 10/08 19:55
> 内容が別なので分けさせていただきましたm(_"_)m
>
> 相手1人に対し1日の戦闘を1回に制限して、その日のうちは戦えなくし、翌0時以降に再び挑めるようになる、という改造を取り入れたいのです。
> これまたまったくわかりませんでした(ToT)
> どのようにすればよろしいでしょうか?

最大5人まで記録しておくやり方は、
sub fightの、
  if ($plf eq $id)    { push (@msg,"$pnmとは暫く戦えません"); return }
を、
  my $today = join('', (localtime(time))[5, 4, 3]);
  my @plf = split(/,/, $plf);
  foreach(@plf){
    if($_ eq "$id:$today"){
      push(@msg, "$pnmとは暫く戦えません");
      return;
    }
  }
と変更しさらに、
  $plf = $id;
を、
  my @newplf = ();
  foreach(@plf){
    if((split(/:/, $_))[1] eq $today){
      push(@newplf, $_);
    }
    else{
      last;
    }
  }
  unshift(@newplf, "$id:$today");
  splice(@newplf, 5) if(@newplf > 5);
  $plf = join(',', @newplf);
に変更すれば良いかな。(行頭に全角空白を使用しているので適宜修正してください。)
即興で作成したので動作の保証はしませんが多分大丈夫だろうとは思います。
スレッド一覧


810● Re[2]:1日の戦闘制限[ mizuho ] 2003 10/09 11:55
こちらの方はまったくわからないので、よく見比べてコピペさせていただいたのですが、テーブルトップだけが表示されて戦闘自体ができませんでした。
何故かも全然見当がつきません(ToT)
スレッド一覧


812● Re[3]:1日の戦闘制限[ moon ] 2003 10/09 19:23
> こちらの方はまったくわからないので、よく見比べてコピペさせていただいたのですが、テーブルトップだけが表示されて戦闘自体ができませんでした。
> 何故かも全然見当がつきません(ToT)

先ほど文法チェックをしたところこれといって問題が無かったので、おそらくコピペミスだと思われます。
とりあえずコピペしてその後に'  '(全角空白2つ)を' '(半角4つ)に置換すればコピペミスが起こりにくいと思います。

# 文法チェックの習慣が無いのであれば、自他双方のためにコマンドプロンプトでの文法チェックの習慣をつけたほうが良いと思いますよ。
スレッド一覧


817● できました![ mizuho ] 2003 10/10 10:28
やはり全角スペースが入っていたようです。
初歩的なミスで申し訳ありません^^;
構文チェック、ネット検索でいろいろ調べてみたので、これからはきちんと実施したいと思います。
どうもありがとうございましたm(_"_)m
スレッド一覧

CGIROOM