私設SoS2オーナー応援BBS

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

スレッド

└◇626:
Re:お忙しいところすみません [moon] 05/25 14:55

 └◇627:Re[2]:お忙しいところすみません [masaki] 05/25 16:02
  └◇628:Re[3]:お忙しいところすみません [moon] 05/25 16:56
   └◇629:Re[4]:お忙しいところすみません [moon] 05/25 17:24
    └◇630:Re[5]:お忙しいところすみません [masaki] 05/25 17:45
     └◇638:訂正 [moon] 05/27 08:42
      └◇639:Re:訂正 [masaki] 05/27 18:28
       └◇640:Re[2]:訂正 [moon] 05/27 19:34
        └◇641:Re[3]:訂正 [masaki] 05/27 21:33
         └◇642:Re[4]:訂正 [moon] 05/27 22:31
          └◇643:Re[5]:訂正 [masaki] 05/28 06:27
           └◇644:一番をみつける [masaki] 05/28 19:55
            └◇645:Re:一番をみつける [moon] 05/28 20:46
             └◇646:Re[2]:一番をみつける [masaki] 05/28 21:26


626● Re:お忙しいところすみません[ moon ] 2003 05/25 14:55
> お忙しいところすみません。
> 色々試したのですが、わからないので質問させていただきます。
> if($sp =~ /Ll/){
> ($sec,$min,$hour,$day,$mon,$year,$wday,$yday,$isdst) = localtime(time);
> $ky = int(rand(2))+1;
> if($min =='0'){$mn+=$ky;
> push(@msg,'給料$ky\Gが配られました<br>');}}
> Llのスキルを持っていたら一時間毎に給料が配られるようにしようと、↑のを作ったのですが、sub player's dataに加えてもお金が増えませんでした。(メッセージも表示されず。)(;;
> メッセージは、ログインしたときに
> 給料$ky\Gが配られました
> と表示されるかな?と考えたのですがだめでした。(^^;;
> (複数の場合は
> 給料$ky\Gが配られました
> 給料$ky\Gが配られました'
> という感じで・・w)
> 全く意味不明なことをしているかもしれませんが、宜しくお願いします。

まず、ログイン時にするということならplayer_dataではなくmake_conで処理をします。

次に、$min == '0'では0分ちょうどにログインした場合だけ給料が入るということになります。('0'を==で比較しているのはこの際置いておいて・・・)
一定時間が経過した場合にだけ入手できる、とするにはif(time - $tm >= 3600)という感じで判定する必要があります。(ただし、デフォルトの$tmはログイン時以外にも変更されるので実際は最後のアクセスからの経過となりますが)
スレッド一覧


627● Re[2]:お忙しいところすみません[ masaki ] 2003 05/25 16:02
> まず、ログイン時にするということならplayer_dataではなくmake_conで処理をします。
>
> 次に、$min == '0'では0分ちょうどにログインした場合だけ給料が入るということになります。('0'を==で比較しているのはこの際置いておいて・・・)
> 一定時間が経過した場合にだけ入手できる、とするにはif(time - $tm >= 3600)という感じで判定する必要があります。(ただし、デフォルトの$tmはログイン時以外にも変更されるので実際は最後のアクセスからの経過となりますが)
ありがとうございます!できました(^^
'ではなく"でしたw(初歩的なミスを(爆
2時間以上過ぎた場合、
> 給料$ky\Gが配られました
> 給料$ky\Gが配られました
のように表示させるにはどうすればいいのでしょうか?(^^;
いろいろすみません。
スレッド一覧


628● Re[3]:お忙しいところすみません[ moon ] 2003 05/25 16:56
> 'ではなく"でしたw(初歩的なミスを(爆

いえ、'や"の違いではなく'0'というように文字列としているのに==で数字として比較しているのでわかりにくくないのかな、と思っただけです。

> 2時間以上過ぎた場合、
> > 給料$ky\Gが配られました
> > 給料$ky\Gが配られました
> のように表示させるにはどうすればいいのでしょうか?(^^;
> いろいろすみません。

次のような感じかな。
  $i = (time - $tm) / 3600;
  if($i > 0){
    $i = 2 if($i > 2); # 最大が2の場合
    # 回数分給料を足すなり、単純に掛け算するなり。
  }
スレッド一覧


629● Re[4]:お忙しいところすみません[ moon ] 2003 05/25 17:24
> > 'ではなく"でしたw(初歩的なミスを(爆

これはpush(@msg,'〜');についてのことだったようですね。

> いえ、'や"の違いではなく'0'というように文字列としているのに==で数字として比較しているのでわかりにくくないのかな、と思っただけです。

こう書いたのは、

> '0'を==で比較しているのはこの際置いておいて・・・

への返事だと勘違いしたからです。
スレッド一覧


630● Re[5]:お忙しいところすみません[ masaki ] 2003 05/25 17:45
> > > 'ではなく"でしたw(初歩的なミスを(爆
>
> これはpush(@msg,'〜');についてのことだったようですね。
>
> > いえ、'や"の違いではなく'0'というように文字列としているのに==で数字として比較しているのでわかりにくくないのかな、と思っただけです。
>
> こう書いたのは、
>
> > '0'を==で比較しているのはこの際置いておいて・・・
>
> への返事だと勘違いしたからです。
できました(^^
ありがとうございました!!
こちらこそ意味不明なことばかりですみません。
>'0'というように文字列
'0'だと文字列になってしまうのですか(^^;
勘違いしてました(爆
文字列ということは、==ではなくeqですね(^^;;;
ありがとうございました(^^
スレッド一覧


638● 訂正[ moon ] 2003 05/27 08:42
ミスがあったので訂正します。

正しくは、
$i = int((time - $tm) / 3600);
です。(前に書いたものだと作り方によっては1秒後でも給料がもらえる可能性があるので・・・)
スレッド一覧


639● Re:訂正[ masaki ] 2003 05/27 18:28
> ミスがあったので訂正します。
>
> 正しくは、
> $i = int((time - $tm) / 3600);
> です。(前に書いたものだと作り方によっては1秒後でも給料がもらえる可能性があるので・・・)
ありがとうございます(^^
早速修正しておきました!
あと、もう一つだけ質問を(^^;
S1のスキルを持っているプレイヤー全員の所持金を数えるにはどうすればいいのでしょうか?(^^;
スレッド一覧


640● Re[2]:訂正[ moon ] 2003 05/27 19:34
> S1のスキルを持っているプレイヤー全員の所持金を数えるにはどうすればいいのでしょうか?(^^;

どこ(トップページやプレイヤー画面など)でカウントするかによりやることが変わってきますのでどこでカウントしますか?
ちなみにトップページでカウントするのが一番簡単です。
スレッド一覧


641● Re[3]:訂正[ masaki ] 2003 05/27 21:33
> > S1のスキルを持っているプレイヤー全員の所持金を数えるにはどうすればいいのでしょうか?(^^;
>
> どこ(トップページやプレイヤー画面など)でカウントするかによりやることが変わってきますのでどこでカウントしますか?
> ちなみにトップページでカウントするのが一番簡単です。
ではトップページでお願いします(^^;(ぉぃ
スレッド一覧


642● Re[4]:訂正[ moon ] 2003 05/27 22:31
> ではトップページでお願いします(^^;(ぉぃ

では、sub find_bestで、
  $mncount += $mn if(index($sp, 'S1') >= 0);
のようにカウントして、あとはsub sagaでint($mncount)を表示するだけです。

# これに限らずトップページへの機能追加は負荷がかかりやすいのでそのことは念頭においておいたほうが良いと思います。
スレッド一覧


643● Re[5]:訂正[ masaki ] 2003 05/28 06:27
> > ではトップページでお願いします(^^;(ぉぃ
>
> では、sub find_bestで、
>   $mncount += $mn if(index($sp, 'S1') >= 0);
> のようにカウントして、あとはsub sagaでint($mncount)を表示するだけです。
はい。ありがとうございます(^^
> # これに限らずトップページへの機能追加は負荷がかかりやすいのでそのことは念頭においておいたほうが良いと思います。
気をつけます(^^
ありがとうございました。
スレッド一覧


644● 一番をみつける[ masaki ] 2003 05/28 19:55
$mncount1 += $mn if(index($sp, 'S1') >= 0);
$mncount3 += $mn if(index($sp, 'S3') >= 0);
$mncount5 += $mn if(index($sp, 'S5') >= 0);
$mncount7 += $mn if(index($sp, 'S7') >= 0);
$mncount8 += $mn if(index($sp, 'S8') >= 0);
とするところまではわかったのですが、このなかから一番大きいものを見つけるにはどうしたらいいのでしょう?(^^;
ひとつずつifで比べていくしかないのでしょうか?
スレッド一覧


645● Re:一番をみつける[ moon ] 2003 05/28 20:46
> $mncount1 += $mn if(index($sp, 'S1') >= 0);
> $mncount3 += $mn if(index($sp, 'S3') >= 0);
> $mncount5 += $mn if(index($sp, 'S5') >= 0);
> $mncount7 += $mn if(index($sp, 'S7') >= 0);
> $mncount8 += $mn if(index($sp, 'S8') >= 0);
> とするところまではわかったのですが、このなかから一番大きいものを見つけるにはどうしたらいいのでしょう?(^^;
> ひとつずつifで比べていくしかないのでしょうか?

そうですね。5つくらいならifで比べるのが手っ取り早いはずです。

> $mncount1 += $mn if(index($sp, 'S1') >= 0);
> $mncount3 += $mn if(index($sp, 'S3') >= 0);
> $mncount5 += $mn if(index($sp, 'S5') >= 0);
> $mncount7 += $mn if(index($sp, 'S7') >= 0);
> $mncount8 += $mn if(index($sp, 'S8') >= 0);

関係ないけれど、上の書き方は処理に無駄が多いです。
if-elsifを使用して無駄な比較を少なくしたほうが良いと思います。
スレッド一覧


646● Re[2]:一番をみつける[ masaki ] 2003 05/28 21:26
> > $mncount1 += $mn if(index($sp, 'S1') >= 0);
> > $mncount3 += $mn if(index($sp, 'S3') >= 0);
> > $mncount5 += $mn if(index($sp, 'S5') >= 0);
> > $mncount7 += $mn if(index($sp, 'S7') >= 0);
> > $mncount8 += $mn if(index($sp, 'S8') >= 0);
> > とするところまではわかったのですが、このなかから一番大きいものを見つけるにはどうしたらいいのでしょう?(^^;
> > ひとつずつifで比べていくしかないのでしょうか?
>
> そうですね。5つくらいならifで比べるのが手っ取り早いはずです。
はい(^^
わかりました〜。
> > $mncount1 += $mn if(index($sp, 'S1') >= 0);
> > $mncount3 += $mn if(index($sp, 'S3') >= 0);
> > $mncount5 += $mn if(index($sp, 'S5') >= 0);
> > $mncount7 += $mn if(index($sp, 'S7') >= 0);
> > $mncount8 += $mn if(index($sp, 'S8') >= 0);
>
> 関係ないけれど、上の書き方は処理に無駄が多いです。
> if-elsifを使用して無駄な比較を少なくしたほうが良いと思います。
indexの意味がよくわからなかったので(ぉぃ
わかるものを使った方がいいですよね(^^;
ありがとうございました。
スレッド一覧

CGIROOM