▼スレッド
│
└◇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
> 今はユーザーデータに記録していますが(^^;スレッド一覧
> 別の独立したファイルに星の数を記録して管理。の方法でやってみたいです。(^^
>
> あと、重要なことを忘れていました(;;
> モンスターというのは、探索中に出現するモンスターです。
> 現在は倒したときに星の数が保存されています。(^^;
> こういうことは先に言っておくべきですよね(;;
> すみません。。
ヒント状に書けないのでそのままずばりを書きます。
保存ファイルを'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を使用してください)
> > 今はユーザーデータに記録していますが(^^;スレッド一覧
> > 別の独立したファイルに星の数を記録して管理。の方法でやってみたいです。(^^
> >
> > あと、重要なことを忘れていました(;;
> > モンスターというのは、探索中に出現するモンスターです。
> > 現在は倒したときに星の数が保存されています。(^^;
> > こういうことは先に言っておくべきですよね(;;
> > すみません。。
>
> ヒント状に書けないのでそのままずばりを書きます。
> 保存ファイルを'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;の後ろに追加でいいのですか?
> if ($dm >= $mdd) {$star=$star+=1; push (@msg,"$inmを倒した!$inmははじけて星になりました。。"); next;}スレッド一覧
> となっている場合、
> $star=$star+=1;の後ろに追加でいいのですか?
星の数は全員での共有ですよね?
そうすると$starフラグはいらないので追加ではなく置き換えです。
ちなみに、「プレイヤー毎の星の数」という概念がなくなるのでプレイヤー毎に表示したい場合は負荷が高いユーザデータ毎に保存する方法にするしかありません。(全体のを表示したい場合はファイルから読み込んでただ表示するだけで済みますが。)
書いた後で気付いたのですが$star=$star+=1;は、スレッド一覧
$star = $star + 1;
$star = $star; # 余計
とやっていることと同じです。
こういう場合の書き方は、$star += 1;だけでOKですよ。
星を20個集めたときの出来事としてスレッド一覧
レアアイテムを所持品に加える事は可能でしょうか?(^^;
できればヒントでもいいので教えて欲しいです(^^
> 星を20個集めたときの出来事としてスレッド一覧
> レアアイテムを所持品に加える事は可能でしょうか?(^^;
> できればヒントでもいいので教えて欲しいです(^^
それなら、
1. レアアイテムを記述したファイルを作成する。
2. 星が20個集まったときにレアアイテムファイルを読み込んでrandで一つ選択する。(改行を読み込まないように注意)
3. レアアイテムを所持品に入れる。
かな?
# 閃いたのですが、所持品に入れるのではなくて探索アイテムファイル(itm.dat)に入れたほうが面白いかも。(この場合はレアアイテムが発見されたらitm.datから消えるというデフォルト仕様にする必要がありますが。)
> 1. レアアイテムを記述したファイルを作成する。スレッド一覧
ファイル内のデータは、item.datなどとおなじ書き方でいいのでしょうか?(^^;
> 3. レアアイテムを所持品に入れる。
この方法がよくわかりません(;;
詳しく教えて欲しいです。。
> # 閃いたのですが、所持品に入れるのではなくて探索アイテムファイル(itm.dat)に入れたほうが面白いかも。(この場合はレアアイテムが発見されたらitm.datから消えるというデフォルト仕様にする必要がありますが。)
いいかもしれません(^^
(僕のsos、レアの出現率以上に低いですからw
昔のMoon Edition並みです(^^)
> > 1. レアアイテムを記述したファイルを作成する。スレッド一覧
> ファイル内のデータは、item.datなどとおなじ書き方でいいのでしょうか?(^^;
それでも良いですけれど全てのレアアイテムが一定確率なら、
レア1<>ステータス1<>
レア2<>ステータス2<>
レア3<>ステータス3<>
の形式で書いたほうが後々の処理で楽です。
> > 3. レアアイテムを所持品に入れる。
> この方法がよくわかりません(;;
> 詳しく教えて欲しいです。。
選択したレアアイテムが$rareitem,$rarestsだとすると通常のアイテム処理と同様に、
push(@items,"$rareitem△$rarests");
とすれば良いです。
$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<>
がアイテムに追加されてしまいます(^^;
なぜでしょうか?
> $rarestsがよくわからないので、適当に(ぉぃスレッド一覧
> アイテムが
> アイテム<>00010101Fd<>
> だとすると、そのまま
> アイテム<>00010101Fd<>
> がアイテムに追加されてしまいます(^^;
> なぜでしょうか?
$rareitem,$rarestsは$itemや$stsのレア版として書いたのですが分からなかったですか・・・。
($rareitem,$rarests) = split(/<>/,$rare);が必要です。
もちろん$rarests = Li;は要りませんし、"$rare△$rarests"は"$rareitem△$rarests"です。
できました(;;スレッド一覧
ありがとうございました〜!!!