私設SoS2オーナー応援BBS

新規発言一覧最新記事過去一覧検索ダウンロードページHOME

スレッド

└◇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


1764● Re[3]:探索について[ moon ] 2009 10/12 17:16
> レアアイテムの件ですが
> 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などに発見したアイテムの情報が格納されています。
コメントを書く(引用) | スレッド一覧


1765● Re[4]:探索について[ パパート ] 2009 10/12 19:06
詳しい解説ありがとうございます。
そういうことだったんですか・・・
すごく勉強になりました。

これでほとんど仲間と冒険に出かけるのシステムが
掴めた気がします。現在開発中で
ほとんど作れたんですが

2人までしか僕の知恵ではできないんです・・・

自分(get_user) 一人目(get_partner)
です。
moonさんのほうにあるのは4人。
二人目、三人目はどうやって作るんでしょう?
何度も質問すいません。
ヒントだけでもいいので、教えてください。
お願いします^^;
コメントを書く(引用) | スレッド一覧


1766● Re[5]:探索について[ moon ] 2009 10/12 21:29
> 詳しい解説ありがとうございます。
> そういうことだったんですか・・・
> すごく勉強になりました。
>
> これでほとんど仲間と冒険に出かけるのシステムが
> 掴めた気がします。現在開発中で
> ほとんど作れたんですが
>
> 2人までしか僕の知恵ではできないんです・・・
>
> 自分(get_user) 一人目(get_partner)
> です。
> moonさんのほうにあるのは4人。
> 二人目、三人目はどうやって作るんでしょう?
> 何度も質問すいません。
> ヒントだけでもいいので、教えてください。
> お願いします^^;

複数人分のデータは以下の処理をループさせることで読み込めます。
1. $getpartnerflag = 0;
2. &get_partner(相手のID);
3. 読み込んだ$pidや$pnmなどの変数を別の変数に退避する。
コメントを書く(引用) | スレッド一覧


1767● Re[6]:探索について[ パパート ] 2009 10/12 21:56
よく分かりました。
moonさんの方法で4人やってみます。

ありがとうございました^^
コメントを書く(引用) | スレッド一覧


1768● アイテム取得処理[ パパート ] 2009 10/13 19:55
冒険システムに、宝箱を実装したのですが
$iinm=アイテム名 $idt=ステータス
&splititem('iI');
push(@items,"$iinm△$idt");
push(@pitems,"$iinm△$idt");
&joinitem('il');

このようにして、取得させようとしたのですが
自分だけもらえて、相手プレイヤーには、アイテムが渡ってないのです。どうすればいいでしょうか?
コメントを書く(引用) | スレッド一覧


1769● Re:アイテム取得処理[ パパート ] 2009 10/13 20:17
すいません自己解決しました^^;

il ではなく iIでしたw

ご迷惑お掛けし申し訳ございませんでした。
コメントを書く(引用) | スレッド一覧


1770● Re[2]:アイテム取得処理[ パパート ] 2009 10/13 22:43
しつこい質問すいません。
ちゃんと調べた上で、分からなかったので
教えてください。

この前のアドバイスで、ひとつひとつデータを
読み込めたんですが、保存が上手くいきません。
読み込んだデータたとえば

$pak1 は 仮のデータ (二人目=$pak2 三人目=$pak3)
$pak1=$pak;
これで攻撃を読み込み

使用後

保存?
get_partner で読み込み
$pak=$pak1;
で上書き後
$getpartnerflag = 0;
これで、次のデータも同じように、しているのですが
保存方法はこれで合っているのでしょうか?

読み込みなどは、ちゃんとできました。
どうか教えてください。
コメントを書く(引用) | スレッド一覧


1771● Re[3]:アイテム取得処理[ moon ] 2009 10/14 22:22
> しつこい質問すいません。
> ちゃんと調べた上で、分からなかったので
> 教えてください。
>
> この前のアドバイスで、ひとつひとつデータを
> 読み込めたんですが、保存が上手くいきません。
> 読み込んだデータたとえば
>
> $pak1 は 仮のデータ (二人目=$pak2 三人目=$pak3)
> $pak1=$pak;
> これで攻撃を読み込み
>
> 使用後
>
> 保存?
> get_partner で読み込み
> $pak=$pak1;
> で上書き後
> $getpartnerflag = 0;
> これで、次のデータも同じように、しているのですが
> 保存方法はこれで合っているのでしょうか?
>
> 読み込みなどは、ちゃんとできました。
> どうか教えてください。

> get_partner で読み込み
> $pak=$pak1;
> で上書き後
> $getpartnerflag = 0;
> これで、次のデータも同じように、しているのですが
保存は「$getpartnerflag = 0;」としているだけなのでしょうか?
保存なので「$getpartnerflag = 0;」は行う必要がなく「&partnerout;」を行う必要があります。
また、当然@prclinesや$pidなどのデータも読み込み時に退避しておいて保存前に戻しておく必要があります。
コメントを書く(引用) | スレッド一覧


1772● Re[4]:アイテム取得処理[ パパート ] 2009 10/14 23:07
そうだったのですか。。。
やってみたら、できました。
moonさんほどでは、ありませんが
4人で冒険できるような、システム完成しました。
どうもありがとうございました^^

大感謝です♪

これからもがんばってください^^
(今後質問しちゃうかもしれませんが・・・;;)
コメントを書く(引用) | スレッド一覧

CGIROOM