▼スレッド
│
└◇64:Re[4]:Casino System Ver. 2.1について [初心者] 09/25 22:11
├◇65:Re[5]:Casino System Ver. 2.1について [初心者] 09/25 22:20
│└◇67:Re[6]:Casino System Ver. 2.1について [moon] 09/25 22:31
└◇66:Re[5]:Casino System Ver. 2.1について [moon] 09/25 22:26
└◇68:Re[6]:Casino System Ver. 2.1について [初心者] 09/25 23:17
├◇69:Re[7]:Casino System Ver. 2.1について [初心者] 09/25 23:22
│└◇71:Re[8]:Casino System Ver. 2.1について [moon] 09/25 23:36
└◇70:Re[7]:Casino System Ver. 2.1について [moon] 09/25 23:34
└◇72:Re[8]:Casino System Ver. 2.1について [初心者] 09/25 23:48
└◇73:Re[9]:Casino System Ver. 2.1について [moon] 09/26 00:14
└◇74:Re[10]:Casino System Ver. 2.1について [初心者] 09/26 00:21
└◇75:Re[11]:Casino System Ver. 2.1について [moon] 09/26 08:40
└◇76:ここだけは変更が必要 [moon] 09/26 08:53
└◇77:Re:ここだけは変更が必要 [初心者] 09/26 17:22
└◇78:景品としてのお金 [moon] 09/26 19:02<-last
> それでは、関係ありそうな箇所を書きます。スレッド一覧
> ・Perlのバージョンが5以上か?(エラーではないのでこれではないと思います)
> ・アスキーモードで転送をしたか?(これも違う気がする)
> ・設定部分の、
> my @cards = (
> 1,1,1,1,1,1,1,1,1,1,1,1,1, # クローバー
> 1,1,1,1,1,1,1,1,1,1,1,1,1, # ダイヤ
> 1,1,1,1,1,1,1,1,1,1,1,1,1, # ハート
> 1,1,1,1,1,1,1,1,1,1,1,1,1, # スペード
> 1 # ジョーカー
> );
>
> 配布版でテストプレイをしてみましたが正常に動作しました。
> 上記に当てはまらない場合は再度ダウンロードして試してください。
>
> # そもそも「山札の再構築に失敗」はデバッグ用に付いているだけのような物なので通常では絶対そこの処理に行かないはずなのです。(プログラムが間違っている場合を除く)
そうなんですか???
よっぽど珍しいんですねぇ〜・・・。
さてどうなんでしょうか・・・。
設定部分の、
my @cards = (
1,1,1,1,1,1,1,1,1,1,1,1,1, # クローバー
1,1,1,1,1,1,1,1,1,1,1,1,1, # ダイヤ
1,1,1,1,1,1,1,1,1,1,1,1,1, # ハート
1,1,1,1,1,1,1,1,1,1,1,1,1, # スペード
1 # ジョーカー
);
は変えなくてもいいんですよね?
そのままのはずですが・・・(汗
プログラムの間違いでしょうか?
たぶんSoS本体への追加と変更部分は間違いではないんだろうと想うんです。
早速もう一度ダウンロードしてやってみます。
ところで、本体への追加部分はスレッド一覧
Main Programに
if($Fm{'mode'} eq 'casino'){&play_form;}を追加。
sub play_formのnormal_action;を
if($Fm{'mode'} ne 'casino'){&normal_action;}else{&casino_action;}に書き換え。
フラグ$csを追加。
normal_actionに
&input('radio','mode','casino','','カジノへ<br>');を追加。
質問なんですが、
ゲーム中でコイン($csの最初の部分)が手に入るようにする。
とはどういったことをすればいのでしょうか?
っと上の部分を残してはすべてOKですよね?
> ところで、本体への追加部分はスレッド一覧
> Main Programに
> if($Fm{'mode'} eq 'casino'){&play_form;}を追加。
> sub play_formのnormal_action;を
> if($Fm{'mode'} ne 'casino'){&normal_action;}else{&casino_action;}に書き換え。
> フラグ$csを追加。
> normal_actionに
> &input('radio','mode','casino','','カジノへ<br>');を追加。
> 質問なんですが、
> ゲーム中でコイン($csの最初の部分)が手に入るようにする。
> とはどういったことをすればいのでしょうか?
> っと上の部分を残してはすべてOKですよね?
>
OKだと思います。
コインは、例えば一定額買い物した場合に額に応じて増やすとか、ステラツィオのように探索中に低確率で見つかるとか、専用のアイテムを用意して増やすとかいろいろ出来ます。
> 設定部分の、スレッド一覧
> my @cards = (
> 1,1,1,1,1,1,1,1,1,1,1,1,1, # クローバー
> 1,1,1,1,1,1,1,1,1,1,1,1,1, # ダイヤ
> 1,1,1,1,1,1,1,1,1,1,1,1,1, # ハート
> 1,1,1,1,1,1,1,1,1,1,1,1,1, # スペード
> 1 # ジョーカー
> );
> は変えなくてもいいんですよね?
> そのままのはずですが・・・(汗
変えてないんですよね。何がおかしいのかわからない・・・。
> プログラムの間違いでしょうか?
> たぶんSoS本体への追加と変更部分は間違いではないんだろうと想うんです。
> 早速もう一度ダウンロードしてやってみます。
これでもまた同じ症状になる場合は、sub get_cardのforeach(1..$number){の上に以下の文を追加してエラー出力を連絡して欲しいのですが。
&error("$number,$#cards,$cards[0],$cards[1],$cards[2],$#exist_cards,$exist_cards[0],$exist_cards[1],$exist_cards[2]");
> これでもまた同じ症状になる場合は、sub get_cardのforeach(1..$number){の上に以下の文を追加してエラー出力を連絡して欲しいのですが。スレッド一覧
> &error("$number,$#cards,$cards[0],$cards[1],$cards[2],$#exist_cards,$exist_cards[0],$exist_cards[1],$exist_cards[2]");
2,-1,,,,-1,,,
と表示されましたが・・・(汗
なんのことやらさっぱり・・・(汗
ごめんなさい、追加です。スレッド一覧
選んだゲームによって文字が違うようです。
ブラックジャックの場合2,-1,,,,-1,,,で
ポーカーの場合5,-1,,,,-1,,,で
ビンゴの場合25,-1,,,,-1,,,で
ミニバカラの場合BANKER TIE PLAYER が表示されいずれも選択すると2,-1,,,,-1,,,表示されます。
> ごめんなさい、追加です。スレッド一覧
> 選んだゲームによって文字が違うようです。
> ブラックジャックの場合2,-1,,,,-1,,,で
> ポーカーの場合5,-1,,,,-1,,,で
> ビンゴの場合25,-1,,,,-1,,,で
> ミニバカラの場合BANKER TIE PLAYER が表示されいずれも選択すると2,-1,,,,-1,,,表示されます。
あ、これは-1が含まれているかが重要なのでそれ以外の数字はそれほど気にしなくても良いです。(本当は,,の間も数字になるはず。)
> > これでもまた同じ症状になる場合は、sub get_cardのforeach(1..$number){の上に以下の文を追加してエラー出力を連絡して欲しいのですが。スレッド一覧
> > &error("$number,$#cards,$cards[0],$cards[1],$cards[2],$#exist_cards,$exist_cards[0],$exist_cards[1],$exist_cards[2]");
> 2,-1,,,,-1,,,
> と表示されましたが・・・(汗
> なんのことやらさっぱり・・・(汗
>
上からわかること、@cardsの配列が空。(あってはならないことなんだけどな〜)
応急処置として、sub casino_action{の前の変数設定を全てsub casino_action{の下の行に移動(コピーではなく)して移動してきたもののmyを消してみてください。
そして、その後に先ほどの&error("〜");の出力を確認。(-1の数字が無ければとりあえずはOK)
最後に駄目元で、require 'casino.pl';を現在位置から&casino_action;の前に移動してみてください。
スレッド一覧
> 上からわかること、@cardsの配列が空。(あってはならないことなんだけどな〜)
> 応急処置として、sub casino_action{の前の変数設定を全てsub casino_action{の下の行に移動(コピーではなく)して移動してきたもののmyを消してみてください。
> そして、その後に先ほどの&error("〜");の出力を確認。(-1の数字が無ければとりあえずはOK)
>
> 最後に駄目元で、require 'casino.pl';を現在位置から&casino_action;の前に移動してみてください。
今度は2,51,1,1,1,51,0,1,2 などのように表示されました。
require 'casino.pl';ってどこにあります?
> 今度は2,51,1,1,1,51,0,1,2 などのように表示されました。スレッド一覧
これが正常な状態です。
> require 'casino.pl';ってどこにあります?
require 'casino.pl'を追加しませんでしたか?(casino.plの説明では記述が抜けているのに今気付きましたが、動いているということは足してありますよね・・・)
とりあえず、myを取った場合で動いたようなのでmyだったところをlocalに変更して確かめてください。(動いただけで正しい動作かはわかりませんが・・・)
でも、サブルーチン外のmyを認識しないのはどうしてなのだろう・・・。Perlのバージョンで違うとも思えないし。
# 遅いので今日はこれまでとします。
# 環境が特殊なのでなければ解決すると思いますのでほどほどにがんばってください。
スレッド一覧
> とりあえず、myを取った場合で動いたようなのでmyだったところをlocalに変更して確かめてください。(動いただけで正しい動作かはわかりませんが・・・)
> でも、サブルーチン外のmyを認識しないのはどうしてなのだろう・・・。Perlのバージョンで違うとも思えないし。
>
> # 遅いので今日はこれまでとします。
> # 環境が特殊なのでなければ解決すると思いますのでほどほどにがんばってください。
動いたようです♪♪
しかし、もう一つ普通な質問ですけど、
探索にてコインを発見する設定はどうやったらいいんでしょうか?
アイテムのスキル等がよくわかりません。
まったく初心者なのでよろしくお願いします。
> 動いたようです♪♪スレッド一覧
> しかし、もう一つ普通な質問ですけど、
> 探索にてコインを発見する設定はどうやったらいいんでしょうか?
> アイテムのスキル等がよくわかりません。
> まったく初心者なのでよろしくお願いします。
>
ふと思ったのですが、もしかして、sos2.cgiにcasino.plをコピペして追加したのではないですか?(これならmyが働いていないのも納得できるのですが)
一応、casino.plはsos2.cgiからrequire 'casino.pl';で呼び出して使用するように出来ているので。
(動いたのなら現状でも大丈夫かもしれませんが・・・)
コインを探索時に出す場合は、例えばお金の判定を利用して以下のように変更。(アイテムスキルを使用しない方法)
if ($idt !~ /Gl/) { push(@items,"$inm△$idt"); &joinitem('i') }
else { $mn += substr($idt,0,4) }
を、
if ($idt !~ /Gl/) { push(@items,"$inm△$idt"); &joinitem('i') }
elsif(rand(1000)<1){$inm = int(substr($idt,0,4)).'コイン'; $cs += $inm;} # お金の確率の1/1000でコインが手に入る。
else { $mn += substr($idt,0,4) }
探索は回数が出来るので、確率が高いとコインが大量に手に入ってしまい好ましくないです。
my $casino_item = './itm.dat';スレッド一覧
の、./item.datを自分で用意した景品ファイルに変更してください。
その景品のことですが、スレッド一覧
アイテム名<>ステータス<>コインの枚数<>ですよね?
10G<>00100000Gl<>1<>
のように設定をしたらなぜか、
10Gはお金ではなく、アイテムとして交換してしまったのです・・・。
どうなんでしょうか?
> その景品のことですが、スレッド一覧
> アイテム名<>ステータス<>コインの枚数<>ですよね?
> 10G<>00100000Gl<>1<>
> のように設定をしたらなぜか、
> 10Gはお金ではなく、アイテムとして交換してしまったのです・・・。
> どうなんでしょうか?
ええと、デフォルトではお金は設定できません。
お金に交換したい場合は、sos2のsub find_itemのお金の処理を参考にしてください。(たぶん、数行追加するだけ)