▼スレッド
│
└◇1761:Re:探索について [moon] 10/11 21:18
└◇1762:Re[2]:探索について [パパート] 10/11 23:01
└◇1764:Re[3]:探索について [moon] 10/12 17:16
└◇1765:Re[4]:探索について [パパート] 10/12 19:06
└◇1766:Re[5]:探索について [moon] 10/12 21:29
└◇1767:Re[6]:探索について [パパート] 10/12 21:56
└◇1768:アイテム取得処理 [パパート] 10/13 19:55
└◇1769:Re:アイテム取得処理 [パパート] 10/13 20:17
└◇1770:Re[2]:アイテム取得処理 [パパート] 10/13 22:43
└◇1771:Re[3]:アイテム取得処理 [moon] 10/14 22:22
└◇1772:Re[4]:アイテム取得処理 [パパート] 10/14 23:07<-last
> お久しぶりです。パパートです。コメントを書く(引用) | スレッド一覧
>
> いつもお世話になっております。
> 今回は探索についてです。
>
> たくさん調べたのですが、全然見当たらなかったので、質問させていただきます。
>
> Liは通常レアですよね?
> これをつけたアイテムは、たぶん出にくくなるはずなのですが
> ちゃんと出にくくなってるんでしょうか?
>
> このLiで出にくくする処理はどこでされているのでしょうか?
>
> それだけです。
レアアイテムを出にくくするという処理は行われていません。
通常のアイテムと同様に設定ファイルで指定した値で発見確率が決まります。
> あと
> $rnd = int(rand(100)) + 1;
> を
> $rnd = int(rand(150)) + 1;
> などにして、確立を下げてみたのですがこうすると
> 何も見つかりませんが、連続探索時、最初のほうで連続で
> 出てきちゃうのです。何も見つかりませんが、途中で出たりしないのです。
>
> 読みにくい質問ですが、どうか教えてください^^
複数回探索をどのようにしているかわからないので確認事項しか書けませんが以下を確認してみてください。
・探索関連で$rndに代入している箇所、内容、$rndの値。
・毎回同じ結果になるならsrandも。
レアアイテムの件ですがコメントを書く(引用) | スレッド一覧
ifで処理してみました。
勝手な想像すみません;;
@itemlines = &opendat2($itmdat);
foreach $item (@itemlines) {
($inm,$idt,$idc) = split(/<>/,$item);
if ($rnd <= $idc) { push(@founditems,$item) }
}
$rnd = int(rand($#founditems + 1));
($inm,$idt,$idc) = split(/<>/,$founditems[$rnd]); .....
上の部分を調べたんですが、
if ($rnd <= $idc) { push(@founditems,$item) }
の部分がよく分かりません
何がおきたらどういう処理がされているかが分かりません。
できれば細かくヒントを教えていただけないでしょうか?
> レアアイテムの件ですがコメントを書く(引用) | スレッド一覧
> ifで処理してみました。
> 勝手な想像すみません;;
>
> @itemlines = &opendat2($itmdat);
> foreach $item (@itemlines) {
> ($inm,$idt,$idc) = split(/<>/,$item);
> if ($rnd <= $idc) { push(@founditems,$item) }
> }
> $rnd = int(rand($#founditems + 1));
> ($inm,$idt,$idc) = split(/<>/,$founditems[$rnd]); .....
>
> 上の部分を調べたんですが、
> if ($rnd <= $idc) { push(@founditems,$item) }
> の部分がよく分かりません
> 何がおきたらどういう処理がされているかが分かりません。
>
> できれば細かくヒントを教えていただけないでしょうか?
> @itemlines = &opendat2($itmdat);
> foreach $item (@itemlines) {
> ($inm,$idt,$idc) = split(/<>/,$item);
> if ($rnd <= $idc) { push(@founditems,$item) } # 発見確率の設定値が乱数の値以上ならそのアイテムは発見可能として配列に追加する。
> }
ここまでで見付かる可能性のあるアイテムが@founditemsに格納されています。
> $rnd = int(rand($#founditems + 1)); # 発見可能アイテムの配列からランダムで1つインデックスを求める。
> ($inm,$idt,$idc) = split(/<>/,$founditems[$rnd]); .....
ここまでで$inmなどに発見したアイテムの情報が格納されています。
詳しい解説ありがとうございます。コメントを書く(引用) | スレッド一覧
そういうことだったんですか・・・
すごく勉強になりました。
これでほとんど仲間と冒険に出かけるのシステムが
掴めた気がします。現在開発中で
ほとんど作れたんですが
2人までしか僕の知恵ではできないんです・・・
自分(get_user) 一人目(get_partner)
です。
moonさんのほうにあるのは4人。
二人目、三人目はどうやって作るんでしょう?
何度も質問すいません。
ヒントだけでもいいので、教えてください。
お願いします^^;
> 詳しい解説ありがとうございます。コメントを書く(引用) | スレッド一覧
> そういうことだったんですか・・・
> すごく勉強になりました。
>
> これでほとんど仲間と冒険に出かけるのシステムが
> 掴めた気がします。現在開発中で
> ほとんど作れたんですが
>
> 2人までしか僕の知恵ではできないんです・・・
>
> 自分(get_user) 一人目(get_partner)
> です。
> moonさんのほうにあるのは4人。
> 二人目、三人目はどうやって作るんでしょう?
> 何度も質問すいません。
> ヒントだけでもいいので、教えてください。
> お願いします^^;
複数人分のデータは以下の処理をループさせることで読み込めます。
1. $getpartnerflag = 0;
2. &get_partner(相手のID);
3. 読み込んだ$pidや$pnmなどの変数を別の変数に退避する。
よく分かりました。コメントを書く(引用) | スレッド一覧
moonさんの方法で4人やってみます。
ありがとうございました^^
冒険システムに、宝箱を実装したのですがコメントを書く(引用) | スレッド一覧
$iinm=アイテム名 $idt=ステータス
&splititem('iI');
push(@items,"$iinm△$idt");
push(@pitems,"$iinm△$idt");
&joinitem('il');
このようにして、取得させようとしたのですが
自分だけもらえて、相手プレイヤーには、アイテムが渡ってないのです。どうすればいいでしょうか?
すいません自己解決しました^^;コメントを書く(引用) | スレッド一覧
il ではなく iIでしたw
ご迷惑お掛けし申し訳ございませんでした。
しつこい質問すいません。コメントを書く(引用) | スレッド一覧
ちゃんと調べた上で、分からなかったので
教えてください。
この前のアドバイスで、ひとつひとつデータを
読み込めたんですが、保存が上手くいきません。
読み込んだデータたとえば
$pak1 は 仮のデータ (二人目=$pak2 三人目=$pak3)
$pak1=$pak;
これで攻撃を読み込み
使用後
保存?
get_partner で読み込み
$pak=$pak1;
で上書き後
$getpartnerflag = 0;
これで、次のデータも同じように、しているのですが
保存方法はこれで合っているのでしょうか?
読み込みなどは、ちゃんとできました。
どうか教えてください。
> しつこい質問すいません。コメントを書く(引用) | スレッド一覧
> ちゃんと調べた上で、分からなかったので
> 教えてください。
>
> この前のアドバイスで、ひとつひとつデータを
> 読み込めたんですが、保存が上手くいきません。
> 読み込んだデータたとえば
>
> $pak1 は 仮のデータ (二人目=$pak2 三人目=$pak3)
> $pak1=$pak;
> これで攻撃を読み込み
>
> 使用後
>
> 保存?
> get_partner で読み込み
> $pak=$pak1;
> で上書き後
> $getpartnerflag = 0;
> これで、次のデータも同じように、しているのですが
> 保存方法はこれで合っているのでしょうか?
>
> 読み込みなどは、ちゃんとできました。
> どうか教えてください。
> get_partner で読み込み
> $pak=$pak1;
> で上書き後
> $getpartnerflag = 0;
> これで、次のデータも同じように、しているのですが
保存は「$getpartnerflag = 0;」としているだけなのでしょうか?
保存なので「$getpartnerflag = 0;」は行う必要がなく「&partnerout;」を行う必要があります。
また、当然@prclinesや$pidなどのデータも読み込み時に退避しておいて保存前に戻しておく必要があります。
そうだったのですか。。。コメントを書く(引用) | スレッド一覧
やってみたら、できました。
moonさんほどでは、ありませんが
4人で冒険できるような、システム完成しました。
どうもありがとうございました^^
大感謝です♪
これからもがんばってください^^
(今後質問しちゃうかもしれませんが・・・;;)