アイテム使用時の必要設定について - スモチ 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