荘園について - 胡蝶 飛鳥 2009/11/26(Thu) 21:48 No.405
 ├ Re: 荘園について - GEN 2009/11/27(Fri) 23:52 No.406
 ├ Re: 荘園について - 胡蝶 飛鳥 2009/11/28(Sat) 00:36 No.407
 ├ Re: 荘園について - GEN 2009/11/28(Sat) 09:52 No.408
 ├ Re: 荘園について - 胡蝶 飛鳥 2009/11/28(Sat) 15:30 No.409
 ├ Re: 荘園について - GEN 2009/11/28(Sat) 23:06 No.410
 ├ Re: 荘園について - 胡蝶 飛鳥 2009/11/29(Sun) 09:55 No.411
 └ Re: 荘園について - GEN 2009/11/29(Sun) 22:58 No.412

No.405 荘園について - 胡蝶 飛鳥
 

お久しぶりです。前回は大変お世話になりました。この度は、またお力を借りたいと思い書き込ませていただきました。

荘園で熟成するまでの時間をバーで表示したいのです。
ちょうど泉さんが同じようなことを御質問なさっていたので、参考にしてみたのですがなかなかうまくいかずに困っています。
manor.cgiの39行目に $TDB."熟成時間" の追加と、64行目と65行目の間へのバー表示記述をしているのですがエラーばかりで表示できないのです。
お忙しいところ申し訳ありませんが、お力をお貸しいただけないでしょうか。

2009/11/26(Thu) 21:48
No.406 Re: 荘園について - GEN
 

以下のようにして、バーを追加しました。

$disp.=$TDB."種".$TDB."販売在庫".$TDB."販売価格".$TDB."自店保有".$TD.$TDB."熟成時間".$TDB."収穫物"・・・

$disp.=$TD."→";
$disp.=$TD.GetRankMessage(int((1-($DT->{_seed}->{"time$i"}-$NOW_TIME)/(86400+43200))*10000));
$disp.=$TD.GetTagImgManor($MYMANOR[3]).$MYMANOR[2];

これも、船団の帰還時間と同様な問題が発生しています。熟成にかかる時間は、inc-manor.cgiで設定されて、デフォルトでは「$ripetime=86400 + int(rand(43200));」です。即ち24時間+ランダムに12時間です。ですが、この時間は保存されないので、熟成までの割合を出すために、36時間で割っています。ソース内の「86400+43200」はそのことを示しています。いきなり合計でもよいのですが。

一般の人にとって不思議に思う現象が発生するかもしれません。仮に、種を1個買って、たまたま熟成時間が36時間に設定されると0%と表示され、次にもう一つ買って今度は24時間に設定されると、33%と出ます。毎回変わるので%が大きくなるように買う人が出るかもしれません。

$ripetime=86400 + int(rand(43200));

$ripetime=86400;
として、86400で割るとすっきりするかもしれません。

こんな感じでいかがでしょうか。

2009/11/27(Fri) 23:52
No.407 Re: 荘園について - 胡蝶 飛鳥
 

御回答ありがとうございます。早速試してみたところ種保有時の表示の方はうまくいきました。
ですが、種を保有していないときは何故か、=971809%と表示されてしまいます。※前文の“=”は1ピクセルほどのバーです。
これを0%もしくは表示しないように設定できないでしょうか。
注文ばかりで申し訳ありません。

2009/11/28(Sat) 00:36
No.408 Re: 荘園について - GEN
 

買っていないときのことを考えていませんでした。申し訳ありません。
該当箇所を以下のようにするといいと思います。

[0%で表示]
$disp.=$TD."→".$TD;
my $t = int((1-($DT->{_seed}->{"time$i"}-$NOW_TIME)/(86400+43200))*10000);
$t = 0 if(!$DT->{_seed}->{"time$i"});
$disp.=GetRankMessage($t);

[表示しない]
$disp.=$TD."→".$TD;
$disp.=GetRankMessage(int((1-($DT->{_seed}->{"time$i"}-$NOW_TIME)/(86400+43200))*10000)) if ($DT->{_seed}->{"time$i"});

・・・ちなみに、この手のバーが少し長いかなぁと思うのは自分だけでしょうか。もう少しコンパクトなバーに変更することができます。「custom/plug/detail.cgi」に、以下のようなGetRankMessage4を追加します。

sub GetRankMessage4
{
my($rank,$mode)=@_;
my $per=int($rank);
my $per2=int($rank/2);

return $per.(!$mode?"%":"") if $MOBILE;

my $bar="";
$bar ="<nobr>";
$bar.=qq|<img src="$IMAGE_URL/r.gif" width="|.( $per2).qq|" height="12">| if $per;
$bar.=qq|<img src="$IMAGE_URL/t.gif" width="|.(50-$per2).qq|" height="12">| if $per!=50 && !$mode;
$bar.=" ".$per;
$bar.="%" if !$mode;
$bar.="</nobr>";

return $bar;
}

GetRankMessageは、中身が10000で100%と出ますが、GetRankMessage4は変数が100のとき100%なので、これを使って、

my $t = int((1-($DT->{_seed}->{"time$i"}-$NOW_TIME)/(86400+43200))*100);
$t = 0 if(!$DT->{_seed}->{"time$i"});

$disp.=GetRankMessage4($t);

とすると半分の長さのバーになります。

追加ルーチンにも追加しておきたいと思います。

2009/11/28(Sat) 09:52
No.409 Re: 荘園について - 胡蝶 飛鳥
 

御対応ありがとうございます。テストしてみたところ正常に表示されるのを確認しました。
私も、バーをもう少し短くしたいと思っていましたので、早速コンパクトバージョンの方を導入させていただきました。
テストしてみたところ、通常の表示は問題ないのですが、50%の時のみバーの空き部分が切れてしまいます。
これは仕様なのでしょうか。一々突っ込みを入れてしまって本当に申し訳ありません;;

また、私のサイトでは、ほわいと様の追加プログラム“荘園複数設置”を入れているのですが、二つ目以降の荘園では、種の保有、未保有にかかわらず0%と表示されてしまいます。これはほわいと様の方に相談した方がよろしいでしょうか。

2009/11/28(Sat) 15:30
No.410 Re: 荘園について - GEN
 

GetRankMessage4にミスがあったため、うまく作動していないようでした。以下のように修正していただければ、50%時も大丈夫かと思います。お手数おかけします。

$bar.=qq|<img src="$IMAGE_URL/r.gif" width="|.( $per2).qq|" height="12">| if $per;
$bar.=qq|<img src="$IMAGE_URL/t.gif" width="|.(50-$per2).qq|" height="12">| if $per!=50 && !$mode;

$bar.=qq|<img src="$IMAGE_URL/r.gif" width="|.( $per2).qq|" height="12">| if $per2;
$bar.=qq|<img src="$IMAGE_URL/t.gif" width="|.(50-$per2).qq|" height="12">| if $per2!=50 && !$mode;
とする。(行末のperをper2にする)

複数荘園のソースを見ました。
$DT->{_seed}->{"time$i}という部分を、
$DT->{$_seed}->{"time$i"}
としてはいかがでしょうか。数箇所すべてをこれに変えるとうまくいくかもしれません。

2009/11/28(Sat) 23:06
No.411 Re: 荘園について - 胡蝶 飛鳥
 

修正ありがとうございます。テストしてみたところ、50%時においても正常に表示されました。
また、複数荘園の方への御回答もありがとうございました。こちらも無事に表示されました。
バー表示にして初めて気がついたのですが、一括購入だと全ての種が同じ時間で熟成するみたいですね。一括ですとばらつきを気にする必要はなさそうです。まぁ、個別で購入される方もいらっしゃるでしょうけど・・・^^;

この度はご協力いただき本当にありがとうございました。また何かありましたらよろしくお願いいたします。

2009/11/29(Sun) 09:55
No.412 Re: 荘園について - GEN
 

うまく動いてよかったです。
私の商人物語にもバーを適用したので、見やすくなったと思います。
今後ともよろしくお願いします。

2009/11/29(Sun) 22:58
Eメール
お名前
題 名  ※投稿キーは必須です!
本文
URL
アイコン   [イメージ参照]
暗証キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
文字色
No. 暗証キー