領主の投票制について - キャンディー 2008/12/21(Sun) 19:05 No.327
 ├ Re: 領主の投票制について - XKY-Group 2008/12/22(Mon) 04:03 No.328
 └ Re: 領主の投票制について - GEN 2008/12/23(Tue) 13:34 No.330

No.327 領主の投票制について - キャンディー
 

こんばんは。いつもお世話になっております。
今回は以前ご報告いたしました領主不在時のアクセスの混雑・・・のエラー発生についてですが、その後も領主不在の時に投票しますとエラーが出ます。
各ファイルの変更箇所についてすでに改造しているファイルでしたのでこちらで変更箇所を見ながら変更したのですが、それらの変更ミスなのかもしれませんが、ちょっとσ(^_^)には分かりません(;^-^;)
それで提案なのですが、領主が不在になった時にバルバロスが仮に領主を行うようにしたいのですがどうしたら良いでしょうか?
いつも質問ばかりで申し訳ありませんがよろしくお願いします。

2008/12/21(Sun) 19:05
No.328 Re: 領主の投票制について - XKY-Group
 

げんちゃん街で(12/22、3:55現在)領主不在となっていますが、
投票所で投票することは一応できるようです。

ただ、以下のことをすると、必ず混雑エラーで弾かれます。
1:施設→領主で領主情報を確認。
2:施設→競売所、施設→領主、施設→投票所→投票、依頼→依頼取り下げ等。



おそらく、即時にデータ書き換えを行おうとする処理に関しては必ず混雑エラーで弾かれるようになっているようです。
ですので、キャンディーさんが書かれていた混雑エラーは偶然性によるものではないと思われます。

当方が思うに、
「領主になると新たにファイルまたは要素が作成される」
「領主が居ないとそのファイルまたは要素は削除される」
と考えています。
その存在しないファイルまたは要素にアクセスしようとしているため、混雑エラーで弾かれているのだと思います。

勿論、現物スクリプトを持っていないので、実証した結果ではなく、推測した結果ではありますが。


参考までに、この状態で依頼所で依頼を出そうとすると、
「金額の%が税金として…」とあったので、
必要な要素ないしファイルが削除されているものと考えられるでしょう。


さて、本題ですが、バルバロスに領主をやらせたいのであれば、
バルバロスを強制的に任命させるor当選処理にてバルバロスを当選させる(領主不在処理=バルバロスの当選)とすればいけそうですが、どうでしょうか。

2008/12/22(Mon) 04:03
No.330 Re: 領主の投票制について - GEN
 

いろいろと、詳細なエラー情報をいただきまして、
ありがとうございました。

原因を調査した結果、領主情報を表示するlord.cgi
は、旧バージョンのファイルを元に作成しており、
もともとバグがありました。

正確に説明すると、旧バージョンのLord.cgiでは、
領主不在でバルバロスのみの場合、
ファイルをロックする「Lock();」が実行されるが、
そのあと必ず記述する、ロックを解除する「UnLock();」
が入っていませんでした。

とにかく、バルバロス状況で
領主情報を表示させた後、すぐにファイルに
アクセスしようとするとエラーが出る状況であり、
投票に限らず他のコマンドでも今までエラーが出ていた
可能性があります。

配布ファイルを修正しておきましたので、lord.cgiを上書きしてご利用ください。
いろいろとご迷惑おかけしました。

あと、領主不在をバルバロス状態にしたい場合は、
以下の部分を変更してください。

・lord.cgiを変える
$disp.=$TD."領主 : <b>不在</b><br>";
$disp.="現在、領主がいないため、市政は行なわれておりません。";
$disp.=$TRE.$TBE;
$purpose="領主不在";
の部分を、改造前の記述にしてください。

税率なども修正したい場合は、決算処理に入れてください。

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