私設SoS2オーナー応援BBS

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

スレッド

└◇1806:
Re[9]:ログインボーナスとタイムボスに購入ランキング [moon] 10/21 19:37

 └◇1807:Re[10]:ログインボーナスとタイムボスに購入ランキング [YOUME] 10/22 09:49
  └◇1808:Re[11]:ログインボーナスとタイムボスに購入ランキング [moon] 10/22 19:01
   └◇1809:Re[12]:ログインボーナスとタイムボスに購入ランキング [YOUME] 10/23 09:42
    └◇1810:Re[13]:ログインボーナスとタイムボスに購入ランキング [moon] 10/23 19:34
     └◇1811:Re[14]:ログインボーナスとタイムボスに購入ランキング [YOUME] 10/24 11:47


1806● Re[9]:ログインボーナスとタイムボスに購入ランキング[ moon ] 2014 10/21 19:37
> ありがとうございます!
> 無事にできました!
> しばらく動作確認しながら様子を見ています。

実のところ、厳密に捉えると不具合と言える点が一点あります。
それは、コンティニュー後に日付をまたいで保存するとその日に再度コンティニューしてもログイン回数がカウントされないことです。
これは$lasttmが保存時にも更新されているためなのですが、先の修正内容では簡略化のためにログイン時間として$lasttmを使用したのが原因です。
ですので、きちんとするのであれば一番最初に書いた通りにログイン時間も保存しておく必要がありますのでチャレンジしてみるのも良いと思います。
もしくは発生条件が限定されますので仕様としてプレイヤーに説明する程度でも良いかもしれません。

> 次に商品を買った数のカウントについて少し考え始めたのですが、
> 現状のsub buy_afterは以下のような感じになっています。
>
略...
>
> 新しいパラメーターを「$buybuy」にしようと思っているのですが、
> 買った時に「買った個数」と「買った値段」を集計して反映したいと考えた時、どうすればいいのか、正直分かりませんでした…。

コードは長いので眺めた程度ですが以下のようなことを行えば良いと思います。
  【foreachの前】
    my ($buy_count, $buy_total) = split(/\Q△\E/o, $buybuy); # 個数と合計金額を取得(ここでは、$buybuyは"0△0"のように△区切りとしている)
  【購入処理の場所】
    $buy_count++; # 個数をカウントアップ
    $buy_total += $price; # 合計金額を増加
  【foreachを抜けた後】
    $buybuy = join('△', $buy_count, $buy_total); # 個数と合計金額を結合して$buybuyを更新

> そして組み込みたいと考えている販売リストも、もともとあるリストが独自な感じになっており、
>
> salesitrank.plとsalesprrank.plで構成されていると認識しており、ここに買った個数と買った値段の、購入者ランキングを追加しようと考えた時、どのようにすればいいのか、分からず…
> こちらに追加するのは、難しいでしょうか?

sub buy_afterとsub sales_dataを見た限り、2つのデータファイルに書き出してランキング表示時に使用しているようですね。(各ユーザーデータに保存しているわけではない、ということです。)
表示の処理的にも複雑なようですし、まずはIDや名前などのようにプレイヤーリスト形式で表示するようにしたほうが良いのではないか、と思います。
そのうえで、機能や見た目に不満があるようならランキング形式にチャレンジしてみれば良いと思います。
コメントを書く(引用) | スレッド一覧


1807● Re[10]:ログインボーナスとタイムボスに購入ランキング[ YOUME ] 2014 10/22 09:49
いつもご教授ありがとうございます!

申し訳ないです、ログインボーナスにつきまして
昨日、ログインボーナスを受け取って、
本日、ログインしたところ、また1日目のログインボーナスを受け取ってしまいました。
$loginのカウントも何故か1のままなので、もしかして+1できてないのかなと思ったものの、

##ログインボーナス
my $current_text = sprintf('%04d%02d%02d', (gmtime(time + 3600 * 9))[5, 4, 3]);
my $last_text = sprintf('%04d%02d%02d', (gmtime($lasttm + 3600 * 9))[5, 4, 3]);
if($current_text ne $last_text){
$login++;
&splititem('i');

(以下省略)

この中をどう調整すればいいのか分からず…
いつもお手数をおかけして申し訳ないです…

お時間のある時に教えて頂けたら幸いです。
コメントを書く(引用) | スレッド一覧


1808● Re[11]:ログインボーナスとタイムボスに購入ランキング[ moon ] 2014 10/22 19:01
> 申し訳ないです、ログインボーナスにつきまして
> 昨日、ログインボーナスを受け取って、
> 本日、ログインしたところ、また1日目のログインボーナスを受け取ってしまいました。
> $loginのカウントも何故か1のままなので、もしかして+1できてないのかなと思ったものの、
略...
> この中をどう調整すればいいのか分からず…

$loginのカウントが1であるというのはユーザーデータのファイルの中身を確認してのことでしょうか?
それならば書き込みは大丈夫そうなので読み込み(sub get_user)を疑ったほうが良いかもしれません。

あと、同様にファイルの読み書きなのですがsub get_partnerとsub partneroutにも相手側のログイン用変数($plogin?)の処理が正しく追加されているかどうかも確認したほうが良いです。
コメントを書く(引用) | スレッド一覧


1809● Re[12]:ログインボーナスとタイムボスに購入ランキング[ YOUME ] 2014 10/23 09:42
いつもお世話になります、取り急ぎご報告を…

> $loginのカウントが1であるというのはユーザーデータのファイルの中身を確認してのことでしょうか?

$loginのカウントをステータス欄に表示させて確認したものになります。

そして本日、とりあえずログインしてみたところ
カウントが2に増えていて、ログインボーナスも2日目以降のものに切り替わっていました!
もしかしたら、昨日テストしたタイミングが良くなかったのかもしれません…お騒がせして、申し訳なかったです…

ランキングの処理の方も、ご教授頂いた内容を参考にいろいろ試行錯誤してみたいと思います!

また、聞きに来てしまうかもしれないのですが…
その時はまたお手数をおかけしてしまうのですが宜しくお願いします…!
コメントを書く(引用) | スレッド一覧


1810● Re[13]:ログインボーナスとタイムボスに購入ランキング[ moon ] 2014 10/23 19:34
> いつもお世話になります、取り急ぎご報告を…
>
> > $loginのカウントが1であるというのはユーザーデータのファイルの中身を確認してのことでしょうか?
>
> $loginのカウントをステータス欄に表示させて確認したものになります。
>
> そして本日、とりあえずログインしてみたところ
> カウントが2に増えていて、ログインボーナスも2日目以降のものに切り替わっていました!
> もしかしたら、昨日テストしたタイミングが良くなかったのかもしれません…お騒がせして、申し訳なかったです…

了解しました。
ちなみに、ユーザーデータファイルの$lasttmに対応する部分を書き換えれば一日待たなくてもカウントアップ動作を確認できますよ。
例えば、86400を引いてやれば前日の日付になりますので。

> ランキングの処理の方も、ご教授頂いた内容を参考にいろいろ試行錯誤してみたいと思います!

はい、やってみてわからない点は気兼ねなく質問していただいて構いませんので頑張ってみてください。
コメントを書く(引用) | スレッド一覧


1811● Re[14]:ログインボーナスとタイムボスに購入ランキング[ YOUME ] 2014 10/24 11:47
ログインボーナスについて度々申し訳ないです…
どうしても分からない不具合があり、お伺いにきました。

何故かプレイヤーAが他のプレイヤーBに会いに行くと
プレイヤーBのログイン日数カウントが奇妙な事に変化するのです。
↓こんな感じの記述
1414080452△0△なし△0△0

1414111040△0△△△
など

いろいろ見てはみたのですが分からず…
どういった場合にこうなってしまうことが考えられますでしょうか?
申し訳ないです…
コメントを書く(引用) | スレッド一覧

CGIROOM