ワールドアトラスについて - 2009/11/10(Tue) 14:08 No.393
 ├ Re: ワールドアトラスについて - GEN 2009/11/11(Wed) 21:49 No.394
 ├ Re: ワールドアトラスについて - 2009/11/13(Fri) 12:53 No.395
 ├ Re: ワールドアトラスについて - GEN 2009/11/14(Sat) 01:22 No.396
 ├ Re: ワールドアトラスについて - 2009/11/16(Mon) 11:53 No.398
 ├ Re: ワールドアトラスについて - GEN 2009/11/16(Mon) 23:15 No.399
 ├ Re: ワールドアトラスについて - 2009/11/17(Tue) 13:21 No.400
 ├ Re: ワールドアトラスについて - GEN 2009/11/17(Tue) 23:51 No.401
 ├ Re: ワールドアトラスについて - 2009/11/18(Wed) 13:58 No.402
 └ Re: ワールドアトラスについて - マッコイ 2009/11/30(Mon) 11:24 No.413

No.393 ワールドアトラスについて - 泉
 

はじめまして。いきなりすみません。
うちのサイトのワールドアトラスのプレイヤーさんから要望があったのですが、船団の帰還までの残り時間を表示するということはできるのでしょうか?
残り時間がわからないのでやりづらいという意見がありましたので、なんとかできないかと思いまして書き込ませていただきました。
ご教授いただけるとありがたいです。

2009/11/10(Tue) 14:08
No.394 Re: ワールドアトラスについて - GEN
 

はじめまして。書き込みありがとうございます。
どこに表示させるのがよいかわかりませんが、
とりあえず「まだ船団が帰ってくる気配はないようだ」のメッセージのあとに時間を表示することは可能です。

inc-item-data.cgiの探検、貿易、武装船団の
$ret.="もう少し気長に待ってみよう。</tr></table>";
の部分を
$ret.="あと".int(($subdata[0] - $main::NOW_TIME)/3600)."時間くらい待ってみよう。</tr></table>";
に変えると時間が表示されます。

倉庫で表示するには、stock.cgiを編集します。

$ITEM[$no]->{name}.="(出港中)" if -e(GetPath($SUBDATA_DIR,$DT->{id}."-exp".$no));
の部分を、
main::RequireFile('inc-sea.cgi');
my @subdata=main::ReadSeaSub("$DT->{id}-exp$no");

my $t = int(($subdata[0] - $main::NOW_TIME)/3600);
$t = 0 if ($main::NOW_TIME > $subdata[0]);

$ITEM[$no]->{name}.="(帰還まで".$t."時間)" if -e(GetPath($SUBDATA_DIR,$DT->{id}."-exp".$no));

とすると、(出港中)の代わりに(帰還まで10時間)などと出ます。既に着いているときは(帰還まで0時間)を表示します。

この辺だと思います。

2009/11/11(Wed) 21:49
No.395 Re: ワールドアトラスについて - 泉
 

お返事ありがとうございます。
テストしてみたところうまく作動いたしました^^

そこでもうひとつお願いがあるのですが、時間表示を人気度やごみの量のようなバーに変更することはできますでしょうか?
何度もすみません。ご検討いただければありがたいです><

2009/11/13(Fri) 12:53
No.396 Re: ワールドアトラスについて - GEN
 

うまくいってよかったですね。
時間表示のバー表示ですが、可能かとは思いますが、
どのようにバーにするのかがよくわかりません。
バーが100%に近づくほど決算に近づくという感じでしょうか。

ちなみに、バー表示は
GetRankMessage(数値)
でできます。
元のルーチンはcustom/plug/detail.cgi
に入っています。

GetRankMessageをコピーして、
バーの幅などをカスタマイズした
GetRankMessage3などを
ここに新たに作っておくと便利です。

2009/11/14(Sat) 01:22
No.398 Re: ワールドアトラスについて - 泉
 

わかりにくい説明で申し訳ありません・・・。
バー表示にしたいのは船団が返ってくるまでの時間のところです。
倉庫ではおそらく無理だと思いますので、inc-item-data.cgiの方だけでもできたらいいと思いまして・・・。つまりバーが100%で帰還ということになります。

何度も申し訳ありませんが、ご検討よろしくお願いいたします。

2009/11/16(Mon) 11:53
No.399 Re: ワールドアトラスについて - GEN
 

my $t = int((12-($subdata[0] - $main::NOW_TIME)/3600)/12*100);
$t = 0 if ($t < 0);
$t = 100 if ($main::NOW_TIME > $subdata[0]);

$ITEM[$no]->{name}.=" ".GetRankMessage($t*100)." " if -e(GetPath($SUBDATA_DIR,$DT->{id}."-exp".$no));

とすると、バー表示できます。残り時間を帰還に必要な時間で割っています。

ですが、厳密なものではありません。帰還に必要な時間は、12時間にランダムで最大2時間を加えた時間になります。ですが、この時間はどこにも記録されないので、とりあえず12時間で割っています。

このすると、帰還時間が14時間に設定された船団は、2時間の間バーが0%のままで、2時間後にようやく1%になります。ですが、一方で帰還時間が12時間に設定された船団は、2時間後には17%になります。

まぁこれでもよければ、上の仕組みで実装できます。ちなみに、ユーザー変数を使って正しい帰還時間を記録しておけば、正確な表示が可能になります。

2009/11/16(Mon) 23:15
No.400 Re: ワールドアトラスについて - 泉
 

お返事ありがとうございます。下記のように記述して見ましたが、エラーが出て分析できないようです。
私の記述が悪いと思いますので、申し訳ありませんが訂正お願いできないでしょうか。

$ret.="港に出てみたが,まだ船団が帰ってくる気配はないようだ。<br>";
my $t = int((12-($subdata[0] - $main::NOW_TIME)/3600)/12*100);
$t = 0 if ($t < 0);
$t = 100 if ($main::NOW_TIME > $subdata[0]);
$ITEM[$no]->{name}.=" ".GetRankMessage($t*100)." " if -e(GetPath($SUBDATA_DIR,$DT->{id}."-exp".$no));
$ret.="もう少し待ってみよう。</tr></table>";

また帰還時間の方ですが、14時間で割ってみたらどうなるのでしょうか。
14時間にすれば増える量こそ違いますが、1時間づつ均等に増えていくかと思いまして・・・。

2009/11/17(Tue) 13:21
No.401 Re: ワールドアトラスについて - GEN
 

説明不足で申し訳ありません。stock.cgiを変更しています。

$ITEM[$no]->{name}.="(出港中)" if -e(GetPath($SUBDATA_DIR,$DT->{id}."-exp".$no));
の部分を、

main::RequireFile('inc-sea.cgi');
my @subdata=main::ReadSeaSub("$DT->{id}-exp$no");

my $t = int((12-($subdata[0] - $main::NOW_TIME)/3600)/12*100);
$t = 0 if ($t < 0);
$t = 100 if ($main::NOW_TIME > $subdata[0]);

$ITEM[$no]->{name}.=" ".GetRankMessage($t*100)." " if -e(GetPath($SUBDATA_DIR,$DT->{id}."-exp".$no));

と変更します。

確かに、14で割っておけばいいと思います。12の数字を14にするだけでそうなると思います。

・・・、いまさらですが、「もう少し待ってみよう」のメッセージとともにバーを表示させたいということでしたか?現状では倉庫で表示されます。メッセージでも同じことができると思います。
・・・
と思いましたが、inc-item-cgi内でGetRankMessage($t*100)を使うとエラーが出てダメですね。

とりあえず、倉庫画面でバーを出すことは可能ですが、アイテム使用時は難しいかもしれません。

2009/11/17(Tue) 23:51
No.402 Re: ワールドアトラスについて - 泉
 

お返事ありがとうございます。
stock.cgiのほうはテストしてみたところ正常に稼動しました。
ひとまず14で行きたいと思います。

一応、「もう少し待ってみよう」の表示とともにバーを出すつもりだったのですが、倉庫で試してみたところ結構いい感じになったので、ひとまず倉庫表示で行きたいと思います。

お忙しいところ、わざわざ作成していただきありがとうございました。

2009/11/18(Wed) 13:58
No.413 Re: ワールドアトラスについて - マッコイ
 

はじめまして。
泉さんのゲームをプレイしたいので、サイトを教えてください。

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