一般向けの掲示板です。 疑問・質問などはこちらにお願いします。
こんばんわ。げんさんの投票制度を導入させて頂いております。エラーという訳ではないのですが私も色々調査はしているのですがちょっと手づまりでげんさんにお聞きしようと思い書き込みをさせて頂きました。どうやら総選挙時に、理由などは不明なのですが登録されている店舗の方が勝手に立候補されてしまっているようです。正常に投票された立候補者が領主になれるかのテストをした時にも、強制決算処理をした際に、順位が一位(多分)の店舗が勝手に立候補者として上がっていたように思います。もっと時間をかけて原因を究明すればわかると思うのですが恐らく同じような状況の方もいると思い、げんさんに報告させて頂いた次第です。大変お手数をかけ、申し訳ありませんが調査を依頼したいと思います。宜しくお願いします。
ご報告ありがとうございます。調査した結果、ある条件でそのようなことが起こることがわかりました。修正したものをアップロードしましたので、お手数ですが、「inc-period.cgi」と「voting-s.cgi」のアップロードをお願い致します。お手数おかけしました。
げんさん対応して頂きありがとうございました。助かりました〜
こんばんわえっとですね。アップして頂いたファイルにして解散総選挙を迎えた瞬間すべての店舗がふっとび、データも全部なくなってしまいました。なぜだろう・・ちょっとわからないです。今のところバックアップで戻してはいますが、このままだとまた同じことになるので総選挙時期を延ばす形で対応してます。申し訳ないのですが、原因を教えて頂ければと思います。宜しくお願いします。
何度も申し訳ありません。こちらでもいろいろと調べましたが、すべてのデータが消えるということは起こりませんでした。お手数おかけしますが、原因を調べるために、以下の点について教えていただけないでしょうか。@テストモードで総選挙を実行しても、吹っ飛ぶかどうかA「総選挙」のときのみ生じ、通常の選挙では問題ないのかBinc-period.cgiは、上書きしているだけかご迷惑おかけしますが、よろしくお願いします。
こちらでも同様の現象が確認できました。最新バージョンで、誤って必要な文を削除してしまっていたことが原因とわかり、voting-s.cgiを修正しました。お手数ですが、ファイルの上書きをお願い致します。
返信遅れてすみません。今、時間がとれたので最新バージョンで動作確認しているところです。色々テストをしてみましたが、特に問題がある部分やエラーはありません。お手数おかけ致しました。ありがとうございました。
名前とIDを忘れてしまって入れません。助けてください
名前は「ザップ」で、IDは579です。ですが、恐らくパスワードをお忘れなのではと思います。genki-s@khaki.plala.or.jpパスワードは書き込めないので、こちらまでメールをください。
メール出しました。よろしくお願いします。
入れました。ありがとうございました。
こんにちは、ジェイソンです。投票制度ルーチンを導入したのですが、管理idがどうもわかりません。管理室から見れるメンバーリストのidなのでしょうか?教えてくださいお願いします
管理IDとは管理人の店舗のIDのことでしょう。voting-s.cgiの118行目にあるif ($DT->{id} != 333);の「333」を管理人の店舗のIDに直せば…あれ?管理人さん、商人物語においては$DT->{id}って数値変数ですか?デフォルトのSOLDでは文字列変数のはずなので、当方はif ($DT->{id} ne '333');だと思うのですが。
ご質問の件ですが、XKY-Groupさんの説明の通り、管理人の店舗のIDを管理画面のメンバーリストなどで調べ、入れてください。説明不足で申し訳ありません。あと、変数については、Perl&CGIでは、変数の型に関する宣言はありません(たぶん)。数値が入っているときは数値変数として扱い、文字列が入っていると、文字列変数になります。この場合は、数値が入っているので「!=」でいいのかと思っています。
ああ、なるほど。SOLDではログインするときに「ID」と「パスワード」を要求してきますが、商人物語では「名前」と「パスワード」を要求してきます。そこで、SOLDにおける「ID」と商人物語における「名前」を混同してしまったようで。「名前」と「ID」は別物なんですね。名前はいつも数値列とは限らない(というか殆どの場合で文字列となるだろう)ため、!=ではなくneにしたほうが確実だと思っていましたが、文脈から推測する限り「ID」は確実に数値列になっていそうなので、このままでよいかもしれません。お騒がせしました。
貿易街の方を見て、面白そうなのでそちらにも登録したいと思うのですが、当方は既にげんちゃん街で出店しています。2街間の出店は可能でしょうか?2街間で出店すると、時間の許す限りしりとり無限ループ可能で、しりとりの際の景品が貰い放題となってしまうので、不可能なのか?と思ったので、質問させていただきます。ご回答をよろしくお願いします。
2店間の出店は可能です。しりとりは1回10分の消費ですし、景品もたいしたものではないので、そのようなことはやっていただいても構いませんが、結局面倒ですし、景品の所持数の最大もあります。実際にやったことはありませんが、おそらく、時間あたりの利益で計算すると、しりとりの景品よりもモノを作って陳列するほうが利益に繋がると思います。
ご回答ありがとうございます。出店が可能ということなので、出店させていただこうと思います。ちなみに、しりとりの景品として、げんちゃん街では、最高と思われる木工・革細工本30冊が手に入ります。これを質入すると375,000円となり、最低がエーテル1個で125円です。他にはその手の本が10冊の場合と、技術です(確認している限りでは)。単純にこれらの平均値をとっても相当な価格となるので、しりとりループの禁止か景品価格の引き下げは一考に価すると思います。
確認したところ、景品の設定をゲーム街と同じにしていました。今年の9月に、しりとりに取り締まり制を導入した際、設定ファイルを誤ってアップロードしていたようです。つまり、この3ヶ月、げんちゃん街のしりとりの景品はでたらめだったということで、お恥ずかしい限りです。早速修正しました。連絡ありがとうございました。
ワールドアトラス(貿易街)でも景品がでたらめになっているようです。探検家である当方が「第3貿易船団」を入手できたり、裁縫セットを入手できたりもしました。サファイアの首飾りだけが異常に出回っているのもこれの影響と思われます。ただ、あまり景品を粗品にしすぎると、貴重な時間―12万〜18万円/h―を10分消費してまでしりとりに参加する人がいるのか、という話になりかねないので、げんちゃん街でもそうですが、景品にある程度の価値を持たせることは有用であると当方は考えます。販売不可能な宝くじの賞金期待値もそこまで高くはありませんから。ちなみに、過去ログの「しりとり3期不可制」は、次のようにして簡単に実装できると思われます。1:適当なユーザー変数$DT->{user}->{denysiritori}といったユーザー変数を用意する。2:取締りを行ったら、この変数に3を代入する。3:決算ごとにこのユーザー変数の値を1減らす。0以下になっても問題ないと思いますが、それが嫌ならif判定を通して0にしてしまえばいいと思います。
連絡ありがとうございます。ワールドアトラスでも景品を修正しました。景品については、たまにはいいものも当たるように設定しております。しりとりの取り締まりは、そのようにしてもいいのですが、当分は現状でいこうと考えています。ありがとうございました。
管理人様、こんばんは。いつも色々とお世話になっておりますm(_ _)m今回もちょっとお力をお借りしたく投稿させていただきました。商人物語のNPCによる反乱を廃止したいと思いいろいろとやってみたのですがうまくいきません。inc-period.cgi と inc-rebel-data.cgiをいじればいいかと思いいろいろやってみたのですがうまくいかなかったりエラーが出たりします。毎回お忙しい所ご足労おかけしますが具体的な修正箇所や修正方法を教えていただけると大変助かります。よろしくお願いしますm(_ _)m
反乱すべてを廃止するのではなく、NPCによる反乱を廃止するということで、やったことはないのですが、inc-period.cgiのRebelRobinの中の、PushLog・・・が不穏な動きを見せています。")の下の文すべてを削除すると、反乱が起きなくなるのではないでしょうか。間違っていたら、すいませんが。
早速のご返答ありがとうございます。一応ご返答いただいた通り削除してみましたので様子を見てみます。ちなみにですがσ(^_^)のサイトでは反乱自体を廃止しますのでNPCに限らず反乱自体を廃止しても良いのですが簡単に廃止できますでしょうか?ご質問ばかりで申し訳ありませんがよろしくお願いします。
私のサイトでも、投票制という新しい仕組みを導入するために、反乱を廃止しました。すべて覚えていませんが、以下のような変更をしました。@inc-rebel-data.cgiの、反乱イベントをすべて削除Alord.cgiで反乱関係の表示削除Blord関連で、兵力維持費などをなくすCinc-period.cgiで、兵力関係を削除D兵を雇えなくする・町から傭兵所をなくす→反乱不可能にまだ忘れているような気もしますが、こんな感じです。
早速のご返答ありがとうございます。教えていただいたファイルを再度調べた所、反乱の廃止についてはあらかたクリアしているみたいです。反乱を起こす事は不可能にしていますので後はNPCの反乱が起こらなければ大丈夫かと思います。それと質問ばかりで大変申し訳ありませんが、実はσ(^_^)の所でも領主投票制を導入するつもりで投票に必要なアイテムと投票のイベントはなんとかなったのですが、ある回数の決算時ごとに定期的にかつ自動で投票が行われて投票が終了して獲得票が多いユーザーに対して自動的に領主に就任するようにしたいのですがどうしたら良いのでしょうか?出来れば管理人様のサイトで導入されています投票制のやり方を教えていただけないでしょうか?
私のところでは、主にユーザー変数を用いて投票制を行なっています。投票と立候補は、投票所で行います。1度投票すると、支持者ということで、5期まで自動で支持者が維持されますが、途中で変更もできます。5期ごとに総選挙という形で支持者がリセットされ、もう一度投票させます。また、支持者なしもあり、これが多いと領主不在状態になります。$voting 0:未定 1:支持者あり 2:支持しない (0の場合は、お手伝いが投票しろと促す)$voting_s 0:立候補していない 1:立候補中$voting_h 何期領主を行なったか$voting_t 予定税率・投票の判断基準のひとつ$voting_id 支持者のID投票所では、立候補者の一覧と支持率、予定税率、その立候補者の一言が一覧で表示されます。立候補と、立候補の取り下げ、辞退もできます。取り下げた人を支持していた人は、支持者未定状態になり、再び投票しなければなりません。領主が辞退した場合も同様です。選挙処理は、inc-periodに入れてあり、ここはテスト動作もしにくいので、苦労したところです。テストするのなら、同じ処理を別のファイルに用意し、投票状態を変えて何度もテストするといいと思います。選挙の処理について、要は、得票が一番多い人が1番になればよいのですが、同一得票だった場合の優劣をつけることが必要です。「投票者なし」と最大支持率の人が同数だった場合は、最大支持率の人が当選します。候補者同士の優劣は、爵位と順位で決定します。一応、当初は任期制を考えていたため、$voting_h 何期領主を行なったかで、その辺の処理ができるようにしてありました。「ある回数の決算ごと」については、例えば決算期をある数で割ったあまりが0のとき、獲得数を計算して、選挙実行みたいな感じにしてみてはいかがでしょうか。まとめますと、投票を行なうアイテムや、投票所のようなものを設けてユーザー変数を操作し、inc-periodの改造で、決算時にユーザー変数をもとに領主を決定するようにすればよいと思います。
決算毎に行う処理のデバッグについては、デフォルトのSOLDでやるならば、「決算前倒し時間」を巧く設定すると、ものの数分で決算に持ち込むことが出来るようになります。今現在(これを書いている時点で)23:51ですが、決算前倒し時間を-7分=-420秒とでも設定すればわずか2分で決算がやってきます。このとき、決算間隔を一時的に24時間とするのが良いようです。(こうすると、0:00からの前倒し時間となるようなので、分かりやすい。)なお、これはあくまでデフォルトのSOLDの話なので、商人物語で適用できるかどうか知りませんが、参考までに。
管理人様、XKY-Group様早速のご回答ありがとうございます。反乱の廃止についてはなんとか上手くいきました。まだまだ反乱関係のイベントや修正部分はありますがこちらはなんとか自力で修正できそうなのでなんとか頑張ってみます。かなり悩んでいましたので本当助かりました。ありがとうございます。あと領主の投票制ですが大変分かりやすく教えていただきありがとうございます。ですが。。。。説明していただいた意味は分かるのですがいざこれらをプログラムに書くスキルが無い為、どう書いたら良いか分かりません(;^-^;)もしさしつかえなければソースを教えていただけないでしょうか?全くの初心者な書き込みで申し訳ありませんが、どうかよろしくお願いします。m(_ _)m
前から配布しようと考えていたので、説明つきで配布できるよう準備します。ファイルのアップロード以外の操作もあるので、おそらく説明がないと設置できないと思います。また、ソース内に、簡単な説明も加えたいので、週末までお待ちください。
お忙しい中何かとありがとうございますm(_ _)m通常配布してくださるとは大変感謝です。本当ありがとうございます。配布まで楽しみに待っています。
投票制度について、ルーチンを追加しました。わかりにくいかもしれませんし、また、ミスがあるかもしれませんが、設置してみてください。inc-periodでは銀行制度、lord関連では領主告知と資金援助は入っていません。いろいろと改造されているとのことなので、恐らく添付ファイルの上書きはできず、比較しながら修正することになると思います。コメントを参考にしてください。何か問題がありましたらお知らせください。よろしくお願いします。
早速の投票制のスクリプトの配布ありがとうございます。とても嬉しく感謝しております。ありがとうございますm(_ _)mそれで早速追加してみましたが以下のようなエラーが発生しましたのでご連絡いたします。action.cgi の実行により発生。 エラー原因 「../program/voting.cgi」の 59行目付近に原因があるようです。 エラー分析 ゼロで割る計算をさせています。ある変数で割るときには,その変数がゼロになる場合は計算を回避してください。 というエラーが出ました。σ(^_^)の追加ミスかもしれませんが修正方法及び原因が分かりましたらよろしくお願いしますm(_ _)m
新しくノーマルの街に配布のスクリプトをそのまま上書きした所以下のエラーが出ましたのでご報告いたしますので改善方法等分かりましたらよろしくお願いします。index.cgi の実行により発生。エラー原因 「./custom/inc-period.cgi」の 326行目付近に原因があるようです。 エラー分析 文法ミスです。「}」や「)」などをつけ忘れているようです。
すべてこちらのミスで、修正しました。確認が至らず、申し訳ありません。voting.cgiとinc-period、voting-s.cgiを修正したので、ダウンロード後、上書きしてください。
早速の修正ありがとうございますm(_ _)m今回の修正ファイルでinc-periodは修正箇所を修正し、他の投票用ファイルはダウンロードしたものをそのままアップしてみたのですが次は以下のようなエラーが発生しましたのでご報告します。『action.cgi の実行により発生。 エラー原因 「../program/voting.cgi」の 101行目付近に原因があるようです。 エラー分析 ゼロで割る計算をさせています。ある変数で割るときには,その変数がゼロになる場合は計算を回避してください。 』σ(^_^)の修正がまだ足りなかったのか設置方法が悪いのか再度分かりませんが修正方法等分かりましたら再度お願いします。お忙しい中大変申し訳ありませんがよろしくお願いします。
誰も投票していない、一番最初だけそれが出るのは知っているのですが、どうも回避できていないようで、お手数おかけしています。今度は恐らく大丈夫かと思うので、もう一度voting.cgiのみ上書きお願いします。
う〜む・・・・再度ダウンロードしてアップしてみたのですが同じエラーが発生します。ちなみに現在公開中の街でのテストでも同じエラーが出ます。それと仮に無改造ノーマルの街を設置して、新しくσ(^_^)の店舗のみを登録し条件もクリアした状態でテストを行った時も同じエラーが出ました。ここまでエラーが出るとσ(^_^)の修正が悪かったのでしょうか?(;^-^;)
修正し、きちんとテストもしたので、今度は正しく動作すると思います。重ね重ね申し訳ありませんでした。もう一度お願い致します。
とりあえず正常に動いたようなのですが、領主に立候補をしたら今度は以下のようなエラーが発生しましたのでご連絡いたします。『action.cgi の実行により発生。 エラー原因 「../program/voting.cgi」の 78行目付近に原因があるようです。 エラー分析 ゼロで割る計算をさせています。ある変数で割るときには,その変数がゼロになる場合は計算を回避してください。 』σ(^_^)には全く原因が分からりませんが、再度調査の方よろしくお願いします。
ちなみに行った行動ですが領主に立候補した後引き続き投票所に入ろうとするとエラーになります。その後は投票所に入ろうとするだけでエラーになります。
度重なるエラーで申し訳ありませんが、また修正しましたので、導入お願いします。
数々のエラーのご報告ですがσ(^_^)も何度も申し訳ないと思い投稿していたのですが現時点でとりあえずエラーは回避されたみたいです。今日一日投票制のバグ取りばかりだったかと思いますがお疲れ様でした。それと今回の投票制は以前から導入したかったのでとても感謝しております。とりあえず今の所はエラーが出ないみたいですが今後も何か不具合がありましたらご報告させていただきますのでよろしくお願いしますm(_ _)m
いろいろご迷惑かけまして、すいませんでした。また何かありましたら、連絡お願い致します。
先日管理人様の配布の投票制の導入をしましたが今まででとりあえず正常に動いているようです。ですが現在デフォルトの5期ごとの総選挙で設定していますが毎決算後の総選挙が行われてしまうのですが何が悪いのでしょうか?お忙しいかと思いますが再度よろしくお願いしますm(_ _)m
領主が不在の場合、総選挙が毎回行なわれます。領主が決まっている場合は、基本的に毎回起こることはないと思います。領主選の結果市長は・・・、の表示は、決算毎に出ます。総選挙とは、すべての投票状態がリセットさせることを指しています。よろしければ、状況をより細かく教えていただけないでしょうか。
早速のご返答ありがとうございますm(_ _)m新聞のログを見たのですが『11/28 07:35 [情報]総選挙が始まりました11/28 07:35 [情報]領主選の結果領主は、エルモアに変わりました。』と同時刻に領主選の結果と総選挙が行われています。σ(^_^)の設置ミスなのかもしれませんが何が悪いのでしょうか?再度申し訳ありませんがよろしくお願いします。
今までの任期回数が5N-1の時にこの現象は起こるようです。当選することにより、任期回数が+1される。→すると任期回数が5Nとなり、総選挙イベントが発動する。回避方法としては、フラグを立てるのが一番手っ取り早いと思われます。
現在の処理だと、そのようなことが起こります。5期ごとといっても、当選者の任期が5の倍数のときということなので、このようなことが起こります。領主が変わったあとに総選挙が起きても、別に問題視しておりませんでした。修正を行い、当選者が変わった直後に総選挙は生じなくしました。修正によって新たな問題が生じていないといいのですが。ちなみに、次の決算で任期が5の倍数になった場合、総選挙が生じることはあります。voting-s.cgiとinc-periodを上書きしてください。何度もご迷惑おかけしまして、申し訳ありません。
度々の修正の方ありがとうございますm(_ _)mとりあえずこちらでもアップデート後は正常に動作しているみたいです。それと一つσ(^_^)の所のプレーヤーさんから連絡いただいたのですが領主が不在の時に投票を行うとアクセスが混み合っています。しばらくしてからアクセスしてください。とエラーメッセージがでます。仮に強制的に領主を決めれば問題はないのですが、修正が可能であればなんとかなりますでしょうか?何かとお忙しいかと思いますがよろしくお願いしますm(_ _)m
こちらでも同じような状況にしてテストしましたが、エラーメッセージは出ませんでした。どのような状況でそのエラーが出るのか、詳しく教えていただけないでしょうか。
う〜む・・・・σ(^_^)の所の環境の問題なのでしょうか?(;^-^;)以前副管理人の件でご支援いただいた時に同じ現象が発生していました。その時は副管理人の店舗が閉店した時に副管理人が不在になった時にログイン画面よりしようとするとアクセスが混雑しています・・・・・と警告文が出ます。今回の領主に関しても同じで領主がなんらかの問題で不在になった時にログイン画面よりログインし、領主へ投票をしようとするとアクセスが混雑・・・・・と言う警告文が出てログインが出来なくなります。副管理人・領主共に仮に任命しますと正常に動作します。具体的な発生条件と言うのは分かりませんがただ領主が不在になった時の処理になんらかの問題があるのかもしれません。素人の考えなもので良くは分かりませんが原因とかこれで分かりますでしょうか?情報が少なくて申し訳ありませんがよろしくお願いしますm(_ _)m
申し訳ありませんが、領主が不在の時に投票すると必ず起こるエラーでしょうか。それとも、たまに起こるものでしょうか。「アクセス混雑」となると、ファイルロック関連も問題ではないかと思います。私もそれほどくわしく知りませんが、同時に複数の人がファイルに上書きすると、データが消えたりするのでそれを避けるようにロックや解除をします。ロックしたまま解除の処理がされていないのではと考えています。投票の処理の中で、領主が不在かどうかはまったく関係ないので、タイミングの問題で、不在かどうかは関係なく、たまにエラーが出ているのではと、勝手に予想しているのですが、領主不在時にのみエラーが出るというのは、確かでしょうか。今後改善されるよう調査したいのですが、こちらで問題が再現できないので難しいです。今後、同様の現象が出るか、本格的にテストしたいと思います。