アイテム使用時の必要設定について - スモチ 2012/01/20(Fri) 19:47 No.530
 ├ Re: アイテム使用時の必要設定について - GEN 2012/02/05(Sun) 00:00 No.531
 ├ Re: アイテム使用時の必要設定について - スモチ 2012/02/09(Thu) 12:04 No.532
 ├ Re: アイテム使用時の必要設定について - スモチ 2012/02/14(Tue) 18:21 No.533
 ├ Re: アイテム使用時の必要設定について - GEN 2012/02/15(Wed) 20:09 No.534
 ├ Re: アイテム使用時の必要設定について - スモチ 2012/02/17(Fri) 18:54 No.535
 └ Re: アイテム使用時の必要設定について - GEN 2012/02/18(Sat) 00:55 No.536

No.530 アイテム使用時の必要設定について - スモチ
 


アイテム使用時の必要設定で、一定以上の爵位(経験地もしくは伯爵などの称号)や優勝回数を指定することは可能でしょうか?

可能でしたら、教えていただきたいです。


それと、アトラスのitem-date内の都市建設で
[@@ITEMNO "ワイン",20,10],
とありますが、アイテム名の次の数字は何を示しているのでしょうか?
今までは適当に設定してきたのですが、気になりますので、この際にこの件も教えていただきたいです。

お手数をおかけしますが、お暇なときにどうかよろしくお願いします。

2012/01/20(Fri) 19:47
No.531 Re: アイテム使用時の必要設定について - GEN
 

確認が遅れてすいません。

■アイテムの必要条件の設定
funcbというのを使います。アイテム内に直接記述するか、別に@@FUNCITEM以下に記述します。同じ処理を複数に適用する場合は後者が便利です。例えば、

@@USE
time 10m
action 引き換え
name 高度プログラムと引き換え
info 高度プログラムの詰め合わせです
okmsg ご利用ありがとうございました
use 1 ギフト券
get 300 高度プログラム

のすぐ下に、
get 300 高度プログラム
funcb _local_
return 1 if($DT->{dignity} < 3);
return 0;
_local_

と続けると、爵位3より小のときは、そのアイテムの表示が???になります。???ではなくて、メッセージを表示するときは以下のようにします。

get 300 高度プログラム
funcb _local_
my($USE)=@_;
if($DT->{dignity} < 3) {
$USE->{name}.='[爵位が3pt以上必要です]';
return 2;
}
return 0;
_local_

あと、同じ処理をいろんなUSEに適用するなら、以下のように分けると文字数の節約になります。例えば、

get 300 高度プログラム
funcb dignity_judge

としておいて、@function以下に、

@@FUNCITEM

# ★爵位の判定
sub dignity_judge
{
my($USE)=@_;
if($DT->{dignity} < 3) {
$USE->{name}.='[爵位が3pt以上必要です]';
return 2;
}
return 0;
}

を追加します。優勝回数なら、$DT->{rankingcount}ですね。この辺は、マニュアル3-3のDTを参照してください。

あと、アトラスの件ですが、

my $price=int($ITEM[$msg[0]]->{price} * ($msg[1] + rand($msg[2])) / 100);

この、msg[1]が、20、msg[2]が10に相当します。
仕入値 = ワインの値段 * (20% + (0〜10%のランダムな数))
という感じですね。

つまり、ワインの仕入れ値は、定価の20%から30%に設定されるということです。デフォルトでは、新大陸など、遠くに行くほど、仕入れ値が低くなって、それだけ利益が多くなるように設定されているようですね。仕入値は商館にも表示されています。

2012/02/05(Sun) 00:00
No.532 Re: アイテム使用時の必要設定について - スモチ
 

詳しいご回答・ご解説ありがとうございました!
参考にさせていただきます。

お手数おかけいたしました。

2012/02/09(Thu) 12:04
No.533 Re: アイテム使用時の必要設定について - スモチ
 

この質問に関してなのですが、
マニュアル3−3DTの欄を見ると、
『foundation:創業日時刻(GMT)』とあります。
これは、創業してから何日、というよりも創業日のように思われるのですが、
アイテムを使うときに創業して10日以上が必要、とする際に、

funcb _local_
return 1 if($DT->{foundation} < 10);
return 0;
_local_

として問題ないでしょうか?

2012/02/14(Tue) 18:21
No.534 Re: アイテム使用時の必要設定について - GEN
 

上記のやり方では、おそらくうまく動かないと思います。

$_->{foundation}には、1970年1月1日0:00から、開店したときまでの経過秒数が入っています。そして、$NOW_TIMEという変数は、1970年1月1日0:00から現在までの経過秒数を取得できます。よって、この2つの差から、創業後に何秒経っているか出します。

日数に直して整数化するとこんな感じです。
int(($NOW_TIME-$DT->{foundation})/3600/24

念のため、この変数を外部に出力してみて、開店時間と一致するか確認してみてください。

if (($NOW_TIME-$DT->{foundation}) < 10*24*3600)

のほうが正しいかもしれません。

2012/02/15(Wed) 20:09
No.535 Re: アイテム使用時の必要設定について - スモチ
 

試してみましたが、出来ませんでした(^^;

アドバイスを参考に自分でやってみます。
ありがとうございました!


余談ですが、>>534の日数に直して〜ってところの文の最後に)が抜けてます。

2012/02/17(Fri) 18:54
No.536 Re: アイテム使用時の必要設定について - GEN
 

カッコが抜けていてすいません。
$NOW_TIMEは、使う前に以下の文を入れる必要があったかもしれません。これを最初に入れてやってみてください。

$NOW_TIME=time();

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