一般向けの掲示板です。 疑問・質問などはこちらにお願いします。
「トップ 5の店舗」と詳細「順位」ランクの「店名人気」項目の優勝回数アイコンに並べて、独自に追加配布したアイコンを表示することはできるでしょうか?もし可能であれば教えていただけると幸いです。「資金資産」項目に表示させる方法は、てんしのはね様の世界樹版を参照させていただいたのですが、「店名人気」の項目に表示できるものなら・・・と思って、おたずねいたします。ご多忙だとは思いますが、よろしくお願いいたします。報告が後回しになりましたが、こちらの追加スクリプトや店舗内改造等を使わせていただいております。 ありがとうございます。
スクリプトご利用ありがとうございます。ご質問の件ですが、実際試してはいないのですが、「inc-html-top.cgi (トップ5の店舗の表示)」と、「inc-html-ranking.cgi (順位)」の、以下のあたりが関係していると思います。$disp.= GetTagImgGuild($DT->{guild}).$job.$DT->{shopname}; 【ギルドのアイコン表示】+ 【店名】$disp.= "</a>" if !$GUEST_USER;$disp.=GetTopCountImage($DT->{rankingcount}+0) if $DT->{rankingcount}; 【優勝回数】$disp.="<BR>";【優勝回数】の下あたりに、$disp.="<img src="追加配布アイコンのパス">";とすると、アイコンが出ると思います。何かを持っている時アイコンが出るのであれば、$disp.= "<img src=アイコンのパス alt=○○所有>" if (あるアイテムの所持数 > 0);※alt=は、マウスカーソルを重ねたときに表示する文章。アイコンの種類を増やすなら、この文章をずらずらと並べます。$disp.= "<img src=アイコン1のパス alt=○○1所有>" if (あるアイテム1の所持数 > 0);$disp.= "<img src=アイコン2のパス alt=○○2所有>" if (あるアイテム2の所持数 > 0);$disp.= "<img src=アイコン3のパス alt=○○3所有>" if (あるアイテム3の所持数 > 0);※<IMG class=i src= alt=> class=iというのも入れたほうがいいかもしれない。inc-html-top.cgi と、inc-html-ranking.cgi に対してコピーペーストで同じように設定します。念のため、改造前のファイルを別の名前で保存しておいてから、改造したらいいと思います。よろしくお願いします。
早速ご回答下さいましてありがとうございます。ご指示通りのタグを追加して表示できるようになりました。ただアイテム2種類を表示させたいので2行にしたところ、未だ所持していないものまで表示されてしまいます。所持数0では表示されず所持数1で表示と解釈しましたので、下記のように記述しました。$disp.= "<IMG class=i src=./image/item-no-100.gif alt=レアアイテム>" if (1 > 0);何度も申し訳ありませんが、よろしくお願いいたします。
$DT->{item}[商品番号-1] に、商品番号の商品の在庫数が入っています。 if (1 > 0);のところは、 if ($DT->{item}[商品番号-1] > 0);としてください。番号が100でしたら、100 - 1 で、 if ($DT->{item}[99] > 0);となります。
完璧なアイコン表示ができました。お力を拝借できたお蔭で、想像通りに表示されて嬉しいです。いろいろお手数をおかけして申し訳ありませんでした。本当にありがとうございました。
こんばんは。いつもお世話になっております。今回は以前ご報告いたしました領主不在時のアクセスの混雑・・・のエラー発生についてですが、その後も領主不在の時に投票しますとエラーが出ます。各ファイルの変更箇所についてすでに改造しているファイルでしたのでこちらで変更箇所を見ながら変更したのですが、それらの変更ミスなのかもしれませんが、ちょっとσ(^_^)には分かりません(;^-^;)それで提案なのですが、領主が不在になった時にバルバロスが仮に領主を行うようにしたいのですがどうしたら良いでしょうか?いつも質問ばかりで申し訳ありませんがよろしくお願いします。
げんちゃん街で(12/22、3:55現在)領主不在となっていますが、投票所で投票することは一応できるようです。ただ、以下のことをすると、必ず混雑エラーで弾かれます。1:施設→領主で領主情報を確認。2:施設→競売所、施設→領主、施設→投票所→投票、依頼→依頼取り下げ等。おそらく、即時にデータ書き換えを行おうとする処理に関しては必ず混雑エラーで弾かれるようになっているようです。ですので、キャンディーさんが書かれていた混雑エラーは偶然性によるものではないと思われます。当方が思うに、「領主になると新たにファイルまたは要素が作成される」「領主が居ないとそのファイルまたは要素は削除される」と考えています。その存在しないファイルまたは要素にアクセスしようとしているため、混雑エラーで弾かれているのだと思います。勿論、現物スクリプトを持っていないので、実証した結果ではなく、推測した結果ではありますが。参考までに、この状態で依頼所で依頼を出そうとすると、「金額の%が税金として…」とあったので、必要な要素ないしファイルが削除されているものと考えられるでしょう。さて、本題ですが、バルバロスに領主をやらせたいのであれば、バルバロスを強制的に任命させるor当選処理にてバルバロスを当選させる(領主不在処理=バルバロスの当選)とすればいけそうですが、どうでしょうか。
いろいろと、詳細なエラー情報をいただきまして、ありがとうございました。原因を調査した結果、領主情報を表示するlord.cgiは、旧バージョンのファイルを元に作成しており、もともとバグがありました。正確に説明すると、旧バージョンのLord.cgiでは、領主不在でバルバロスのみの場合、ファイルをロックする「Lock();」が実行されるが、そのあと必ず記述する、ロックを解除する「UnLock();」が入っていませんでした。とにかく、バルバロス状況で領主情報を表示させた後、すぐにファイルにアクセスしようとするとエラーが出る状況であり、投票に限らず他のコマンドでも今までエラーが出ていた可能性があります。配布ファイルを修正しておきましたので、lord.cgiを上書きしてご利用ください。いろいろとご迷惑おかけしました。あと、領主不在をバルバロス状態にしたい場合は、以下の部分を変更してください。・lord.cgiを変える$disp.=$TD."領主 : <b>不在</b><br>";$disp.="現在、領主がいないため、市政は行なわれておりません。";$disp.=$TRE.$TBE;$purpose="領主不在";の部分を、改造前の記述にしてください。税率なども修正したい場合は、決算処理に入れてください。
初めまして、いつも見させていただいています。設置のことで聞きたいのですが、Perl 5.12以降だとdefinedの挙動が変わってるみたいで、defined(%hash) is deprecated at 〜というエラーが出てしまいます。Perlは始めたばかりでよくわからないのですが、これの解決方法はわかりますか?つたない文章ですみません。よろしくお願いします。
確認遅れましてすいません。とりあえず、どのファイルのどの箇所でエラーが出ているのかわかりますか。場合によってはプログラムの書き換えで対応できるかもしれません。もう解決されているかもしれませんが。
大学院試が近いので煩悩を断つべくWアトラスの店の凍結をお願いしたいです。およそ一ヶ月半程度の凍結になるかと思いますが、(あってはならないが)不合格だったら閉店を考える必要が出てくるかもしれません…。掲示板のチェック程度なら割と時間を食わないのですぐできると思いますが、店の手入れまで手を回せるとは思えませんので、この投稿を確認できましたら凍結をお願いしたいです。
休止にしました。院試がんばってください。
院試は終わりましたが、このまま実家に帰りますので引き続き凍結をお願いします。
あろうことか院試に失敗してしまいました。折角応援していただいたのですが期待に添えず。次回失敗するわけにもゆきませんので店も畳みたいと思います。ただ、店をたたむ前に資産の処分ぐらいはやって街に貢献するぐらいはしたいので凍結の解除、または管理人さんの側から資産の寄贈処理をしていただけないでしょうか。ご迷惑をおかけいたしますが、よろしくお願いします。
院試お疲れ様です。次回がんばってください。卒業論文などもあるのでしょうか。忙しそうですね。書き込みに気づくのが遅れてすいません。こちらでうまい具合に寄贈処理させていただきます。院試うまくいきましたら、また再開してください。よろしくお願いします。
お久しぶりです。板違いですが、続きという形なのでこちらに。以前失敗して今年はリベンジ(とはちょっと違いますが、後ほど)して無事合格を勝ち取りましたことを報告いたします。やはり院試というやつは簡単には受からないものですね…当たり前ですが、周囲がほぼ全員受かってるような状況でしたから尚更痛感しました。実を言うと、(記憶違いでなければ)GEN氏と同じく、私は材料関係の分野を専攻していました。ですので、GEN氏の日記や実験風景などはかなり共感の持てる部分が多くて楽しめましたし、「しっかり予習してこないから実験がスムーズに進まない」「機材の扱いが雑だ」というのはまさに自分に当てはまるので耳(目?)が痛い言葉でした。ただ前の書き込みの通り私は一度失敗してしまったので、卒業後は別の専攻へと移動することになりました(きちんと言えば、同専攻の院試は受験せず、違う専攻の院試を受験した)。今現在では希望留年という形で卒論はまだ通過していない状態ですから、これから卒論で慌ただしくなることが予想されますので当面再開は見送る形になりますが、とりあえず報告だけさせていただきます。
合格おめでとうございます。わざわざご連絡いただきまして、すいません。おっしゃる通り、私は材料分野です。材料の知識は、化学や機械・環境など他の分野にも役立つと聞きますから、幅を広げるという意味では、別の専攻もいいのではないでしょうか。卒論で落ちるということはないと思いますので、締め切りに間に合うように計画的に進められたら良いと思います。また気が向いたら参加してください。
アイテム使用時の必要設定で、一定以上の爵位(経験地もしくは伯爵などの称号)や優勝回数を指定することは可能でしょうか?可能でしたら、教えていただきたいです。それと、アトラスのitem-date内の都市建設で[@@ITEMNO "ワイン",20,10],とありますが、アイテム名の次の数字は何を示しているのでしょうか?今までは適当に設定してきたのですが、気になりますので、この際にこの件も教えていただきたいです。お手数をおかけしますが、お暇なときにどうかよろしくお願いします。
確認が遅れてすいません。■アイテムの必要条件の設定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%に設定されるということです。デフォルトでは、新大陸など、遠くに行くほど、仕入れ値が低くなって、それだけ利益が多くなるように設定されているようですね。仕入値は商館にも表示されています。
詳しいご回答・ご解説ありがとうございました!参考にさせていただきます。お手数おかけいたしました。
この質問に関してなのですが、マニュアル3−3DTの欄を見ると、『foundation:創業日時刻(GMT)』とあります。これは、創業してから何日、というよりも創業日のように思われるのですが、アイテムを使うときに創業して10日以上が必要、とする際に、funcb _local_return 1 if($DT->{foundation} < 10);return 0;_local_として問題ないでしょうか?
上記のやり方では、おそらくうまく動かないと思います。$_->{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)のほうが正しいかもしれません。
試してみましたが、出来ませんでした(^^;アドバイスを参考に自分でやってみます。ありがとうございました!余談ですが、>>534の日数に直して〜ってところの文の最後に)が抜けてます。
カッコが抜けていてすいません。$NOW_TIMEは、使う前に以下の文を入れる必要があったかもしれません。これを最初に入れてやってみてください。$NOW_TIME=time();