私設SoS2オーナー応援BBS

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

スレッド

└◇382:
Re:プレイヤー全員の〜 [moon] 02/18 22:42

 ├◇383:Re[2]:プレイヤー全員の〜 [moon] 02/18 22:46
 └◇384:Re[2]:プレイヤー全員の〜 [masaki] 02/18 23:00
  └◇385:Re[3]:プレイヤー全員の〜 [moon] 02/18 23:30
   └◇386:Re[4]:プレイヤー全員の〜 [masaki] 02/19 08:27
    └◇387:Re[5]:プレイヤー全員の〜 [moon] 02/19 08:44
     └◇388:関係ないこと [moon] 02/19 08:47
      └◇389:Re:関係ないこと [masaki] 02/19 11:02
       └◇390:Re[2]:関係ないこと [moon] 02/19 20:28
        └◇391:Re[3]:関係ないこと [masaki] 02/19 20:36
         └◇392:Re[4]:関係ないこと [moon] 02/19 21:03
          └◇393:Re[5]:関係ないこと [masaki] 02/20 18:05
           └◇394:Re[6]:関係ないこと [moon] 02/20 21:08
            └◇395:Re[7]:関係ないこと [masaki] 02/20 21:43<-last


382● Re:プレイヤー全員の〜[ moon ] 2003 02/18 22:42
> ダンジョンを諦めて、他のことに取りかかっているのですがさっそく行き詰まってしまいました。(^^;
> モンスターを倒せば星がでにはいって、プレイヤー全員で合計星が20になればイベントをやる。
> みたいなものをやろうと思っているのですが、プレイヤー全員の星の数を集めるところがわかりません。
> 是非ご教授お願いします。。

変更箇所は星の数をいつカウントするかで変わってきます。
・戦闘して星が手に入った時点。
・トップ画面が表示された時。
・新規作成時。
・他の全員分のリスト読み込み時。

この中では新規作成時が実行数が少なくて負荷が低いと思います。(ただし、星が20個貯まっていても新規登録がなければカウントされませんが。)

確認ですが、ユーザデータに星の数を記録しておくのですか?
そうするよりは別の独立した一つのファイルに星の数を記録して管理したほうがかなり良いはずなのですけど。
こういう案というかアドバイスが考えられたので、無駄に負荷が高い方法を書いてもしょうがないと思いカウントの詳細は書きませんでした。
どちらで話を進めますか?
スレッド一覧


383● Re[2]:プレイヤー全員の〜[ moon ] 2003 02/18 22:46
それとも自動ではなくて手動でという事かな?
一応確認。
スレッド一覧


384● Re[2]:プレイヤー全員の〜[ masaki ] 2003 02/18 23:00
> 変更箇所は星の数をいつカウントするかで変わってきます。
> ・戦闘して星が手に入った時点。
> ・トップ画面が表示された時。
> ・新規作成時。
> ・他の全員分のリスト読み込み時。
できれば戦闘して星が手に入ったときがいいです。(^^;
> 確認ですが、ユーザデータに星の数を記録しておくのですか?
> そうするよりは別の独立した一つのファイルに星の数を記録して管理したほうがかなり良いはずなのですけど。
> こういう案というかアドバイスが考えられたので、無駄に負荷が高い方法を書いてもしょうがないと思いカウントの詳細は書きませんでした。
> どちらで話を進めますか?
今はユーザーデータに記録していますが(^^;
別の独立したファイルに星の数を記録して管理。の方法でやってみたいです。(^^

あと、重要なことを忘れていました(;;
モンスターというのは、探索中に出現するモンスターです。
現在は倒したときに星の数が保存されています。(^^;
こういうことは先に言っておくべきですよね(;;
すみません。。
スレッド一覧


385● Re[3]:プレイヤー全員の〜[ moon ] 2003 02/18 23:30
> 今はユーザーデータに記録していますが(^^;
> 別の独立したファイルに星の数を記録して管理。の方法でやってみたいです。(^^
>
> あと、重要なことを忘れていました(;;
> モンスターというのは、探索中に出現するモンスターです。
> 現在は倒したときに星の数が保存されています。(^^;
> こういうことは先に言っておくべきですよね(;;
> すみません。。

ヒント状に書けないのでそのままずばりを書きます。
保存ファイルを'xxx/star.dat'とすると星の入手時に、
  if(open(FILE,'<xxx/star.dat')){ # ファイルを読み込みモードで開く
    $count = <FILE>; # カウント数を読み込む
    close(FILE);
    $count++; # カウントアップ
    if($count>=20){ # 20個以上になったか?
      ##
      ## 20個以上になったときに実行する処理
      ##
      $count = 0; # 20個以上になったら処理後にクリア
    }
    if(open(FILE,'>xxx/star.dat')){ # 書き込みモードで開く
      print FILE $count; # カウント数を書き込む
      close(FILE);
    }
  }

# 個人的な考えで探索時とかにエラーは出したくないので&opendat(〜);などを使用せずにファイルが開けなかった場合は処理を無視するようにしてあります。(お好みでopendatやwritedatを使用してください)
スレッド一覧


386● Re[4]:プレイヤー全員の〜[ masaki ] 2003 02/19 08:27
> > 今はユーザーデータに記録していますが(^^;
> > 別の独立したファイルに星の数を記録して管理。の方法でやってみたいです。(^^
> >
> > あと、重要なことを忘れていました(;;
> > モンスターというのは、探索中に出現するモンスターです。
> > 現在は倒したときに星の数が保存されています。(^^;
> > こういうことは先に言っておくべきですよね(;;
> > すみません。。
>
> ヒント状に書けないのでそのままずばりを書きます。
> 保存ファイルを'xxx/star.dat'とすると星の入手時に、
>   if(open(FILE,'<xxx/star.dat')){ # ファイルを読み込みモードで開く
>     $count = <FILE>; # カウント数を読み込む
>     close(FILE);
>     $count++; # カウントアップ
>     if($count>=20){ # 20個以上になったか?
>       ##
>       ## 20個以上になったときに実行する処理
>       ##
>       $count = 0; # 20個以上になったら処理後にクリア
>     }
>     if(open(FILE,'>xxx/star.dat')){ # 書き込みモードで開く
>       print FILE $count; # カウント数を書き込む
>       close(FILE);
>     }
>   }
>
> # 個人的な考えで探索時とかにエラーは出したくないので&opendat(〜);などを使用せずにファイルが開けなかった場合は処理を無視するようにしてあります。(お好みでopendatやwritedatを使用してください)
if ($dm >= $mdd) {$star=$star+=1; push (@msg,"$inmを倒した!$inmははじけて星になりました。。"); next;}
となっている場合、
$star=$star+=1;の後ろに追加でいいのですか?
スレッド一覧


387● Re[5]:プレイヤー全員の〜[ moon ] 2003 02/19 08:44
> if ($dm >= $mdd) {$star=$star+=1; push (@msg,"$inmを倒した!$inmははじけて星になりました。。"); next;}
> となっている場合、
> $star=$star+=1;の後ろに追加でいいのですか?

星の数は全員での共有ですよね?
そうすると$starフラグはいらないので追加ではなく置き換えです。

ちなみに、「プレイヤー毎の星の数」という概念がなくなるのでプレイヤー毎に表示したい場合は負荷が高いユーザデータ毎に保存する方法にするしかありません。(全体のを表示したい場合はファイルから読み込んでただ表示するだけで済みますが。)
スレッド一覧


388● 関係ないこと[ moon ] 2003 02/19 08:47
書いた後で気付いたのですが$star=$star+=1;は、
  $star = $star + 1;
  $star = $star; # 余計
とやっていることと同じです。
こういう場合の書き方は、$star += 1;だけでOKですよ。
スレッド一覧


389● Re:関係ないこと[ masaki ] 2003 02/19 11:02
星を20個集めたときの出来事として
レアアイテムを所持品に加える事は可能でしょうか?(^^;
できればヒントでもいいので教えて欲しいです(^^
スレッド一覧


390● Re[2]:関係ないこと[ moon ] 2003 02/19 20:28
> 星を20個集めたときの出来事として
> レアアイテムを所持品に加える事は可能でしょうか?(^^;
> できればヒントでもいいので教えて欲しいです(^^

それなら、
1. レアアイテムを記述したファイルを作成する。
2. 星が20個集まったときにレアアイテムファイルを読み込んでrandで一つ選択する。(改行を読み込まないように注意)
3. レアアイテムを所持品に入れる。
かな?

# 閃いたのですが、所持品に入れるのではなくて探索アイテムファイル(itm.dat)に入れたほうが面白いかも。(この場合はレアアイテムが発見されたらitm.datから消えるというデフォルト仕様にする必要がありますが。)
スレッド一覧


391● Re[3]:関係ないこと[ masaki ] 2003 02/19 20:36
> 1. レアアイテムを記述したファイルを作成する。
ファイル内のデータは、item.datなどとおなじ書き方でいいのでしょうか?(^^;
> 3. レアアイテムを所持品に入れる。
この方法がよくわかりません(;;
詳しく教えて欲しいです。。
> # 閃いたのですが、所持品に入れるのではなくて探索アイテムファイル(itm.dat)に入れたほうが面白いかも。(この場合はレアアイテムが発見されたらitm.datから消えるというデフォルト仕様にする必要がありますが。)
いいかもしれません(^^
(僕のsos、レアの出現率以上に低いですからw
 昔のMoon Edition並みです(^^)
スレッド一覧


392● Re[4]:関係ないこと[ moon ] 2003 02/19 21:03
> > 1. レアアイテムを記述したファイルを作成する。
> ファイル内のデータは、item.datなどとおなじ書き方でいいのでしょうか?(^^;

それでも良いですけれど全てのレアアイテムが一定確率なら、
レア1<>ステータス1<>
レア2<>ステータス2<>
レア3<>ステータス3<>
の形式で書いたほうが後々の処理で楽です。

> > 3. レアアイテムを所持品に入れる。
> この方法がよくわかりません(;;
> 詳しく教えて欲しいです。。

選択したレアアイテムが$rareitem,$rarestsだとすると通常のアイテム処理と同様に、
  push(@items,"$rareitem△$rarests");
とすれば良いです。
スレッド一覧


393● Re[5]:関係ないこと[ masaki ] 2003 02/20 18:05
$rarestsというのは、LiやSwのことでいいのでしょうか?(^^;
よくわからないので、確認の意味も含めて(あと、おかしいところがあるので(^^;)
if(open(FILE,'<count/star.dat')){ # ファイルを読み込みモードで開く
    $count = <FILE>; # カウント数を読み込む
    close(FILE);
    $count++; # カウントアップ
    if($count>=20){ # 20個以上になったか?
push (@msg,"あなたは20個目の星を見つけました。");
##########20個以上になったときに実行する処理#############
if(open(RARE,'rare/rare.dat')){
$rare = <RARE>;
$rarests = Li;
push(@items,"$rare△$rarests");
close(RARE);
}
    $count = 0; # 20個以上になったら処理後にクリア
    }
    if(open(FILE,'>count/star.dat')){ # 書き込みモードで開く
    print FILE $count; # カウント数を書き込む
    close(FILE);
    }
    }
こんな感じになっています(^^;
$rarestsがよくわからないので、適当に(ぉぃ
アイテムが
アイテム<>00010101Fd<>
だとすると、そのまま
アイテム<>00010101Fd<>
がアイテムに追加されてしまいます(^^;
なぜでしょうか?
スレッド一覧


394● Re[6]:関係ないこと[ moon ] 2003 02/20 21:08
> $rarestsがよくわからないので、適当に(ぉぃ
> アイテムが
> アイテム<>00010101Fd<>
> だとすると、そのまま
> アイテム<>00010101Fd<>
> がアイテムに追加されてしまいます(^^;
> なぜでしょうか?

$rareitem,$rarestsは$itemや$stsのレア版として書いたのですが分からなかったですか・・・。
($rareitem,$rarests) = split(/<>/,$rare);が必要です。

もちろん$rarests = Li;は要りませんし、"$rare△$rarests"は"$rareitem△$rarests"です。
スレッド一覧


395● Re[7]:関係ないこと[ masaki ] 2003 02/20 21:43
できました(;;
ありがとうございました〜!!!
スレッド一覧

CGIROOM