▼スレッド
│
└◇1826:Re[6]:タイムリミットボスの導入 [moon] 11/14 19:54
└◇1827:Re[7]:タイムリミットボスの導入 [YOUME] 11/17 11:37
└◇1828:Re[8]:タイムリミットボスの導入 [moon] 11/17 19:09
└◇1829:Re[9]:タイムリミットボスの導入 [YOUME] 11/18 09:43
└◇1830:Re[10]:タイムリミットボスの導入 [moon] 11/18 19:54
└◇1831:Re[11]:タイムリミットボスの導入 [YOUME] 11/19 11:04
└◇1832:Re[12]:タイムリミットボスの導入 [moon] 11/19 18:55<-last
いまさらなのですが、一番最初に書いたように「ユーザーと同じ扱いで戦闘できるようにする」という考え方をベースに「探索で遭遇した場合だけ挑戦できる」と条件を付けて話を進めていました。コメントを書く(引用) | スレッド一覧
もし、上記のようなイメージではなかったり、変更する際に処理内容に違和感を感じた場合は早めに指摘してもらえると軌道修正が行いやすいです。
いつもご指導ありがとうございます!コメントを書く(引用) | スレッド一覧
自分の中の勝手な理想としては…
探索時に、(〜を見つけた等々と同じ場所)に
-------------------
【ボス画像】タイムリミットボスが現れた!
-------------------
みたいな感じでタイムリミットボスが現れた表示だけ出した後、
プレイヤーデータの分かりやすい位置(プレイヤー画像の上あたり)に、ボスが出現している間は
-------------------
【ボス画像】
【!】タイムボス出現中【!】
>>ボスと戦う!<<
-------------------
みたいな感じに常時表示させ
ボスが倒されたり時間ぎれで逃亡したら表示は消す
(ボスが出現している間は、次のボスは現れず、
ボスが倒された場合、もしくは逃げた場合は、
再び出現可能になるイメージです。)
「>>ボスと戦う!<<」をクリックすると戦闘画面
(プレイヤーと接触したような画面でいいかも?)
に切り替わるようにできたらなと・・
ボスの体力が無くなった場合は、
そのボスと戦ったプレイヤーに報酬アイテムを自動的に配布して、
誰がボスにとどめをさしたのかを知らせる
(追加と同時に、できればマイレコードに記載したい)
ボスが逃げてしまった場合は、
そのボスと戦ったプレイヤーに、
参加賞アイテムを自動的に配布して、ボスが逃げたことを知らせる
(できればマイレコードに記載したい)
…という感じです。
うまく、伝えられてるか不安ですが、
こういう場合は、これまで考えてきた内容で進めて大丈夫でしょうか…?
もう少し詳細を詰める必要がありそうです。コメントを書く(引用) | スレッド一覧
> 探索時に、(〜を見つけた等々と同じ場所)に
> -------------------
> 【ボス画像】タイムリミットボスが現れた!
> -------------------
> みたいな感じでタイムリミットボスが現れた表示だけ出した後、
すでに自分を含む誰かがボスと遭遇して出現済みになっている場合にもメッセージを出すのでしょうか、それともその場合は別の何かを行うのでしょうか?
> プレイヤーデータの分かりやすい位置(プレイヤー画像の上あたり)に、ボスが出現している間は
> -------------------
> 【ボス画像】
> 【!】タイムボス出現中【!】
> >>ボスと戦う!<<
> -------------------
> みたいな感じに常時表示させ
> ボスが倒されたり時間ぎれで逃亡したら表示は消す
この表示を出すのは探索でボスに遭遇したプレイヤーだけでしょうか、それとも一度誰かが遭遇した場合はすべてのプレイヤーに表示するのでしょうか?
> 「>>ボスと戦う!<<」をクリックすると戦闘画面
> (プレイヤーと接触したような画面でいいかも?)
> に切り替わるようにできたらなと・・
この部分もデータファイルの扱いに影響してくるので、既存の接触画面を使用するのか別の画面を使用するのか、を決めてしまったほうが良いです。
あと、戦闘処理はsub fightを使用するのでしょうか、それとも別の処理で行うのでしょうか?
> こういう場合は、これまで考えてきた内容で進めて大丈夫でしょうか…?
今まで進めてきたのは有効期限があったり、直接接触画面を表示したり、と今回の仕様と合わないことがあるので一旦中断し、仕様を整理したほうが良いと思います。
> 今まで進めてきたのは有効期限があったり、直接接触画面を表示したり、と今回の仕様と合わないことがあるので一旦中断し、仕様を整理したほうが良いと思います。コメントを書く(引用) | スレッド一覧
了解です!
いつもお手数をおかけして申し訳ないです…
でも助かります!長くなってしまうかもしれないのですが、宜しくお願いします!
> すでに自分を含む誰かがボスと遭遇して出現済みになっている場合にもメッセージを出すのでしょうか、それともその場合は別の何かを行うのでしょうか?
すでに自分を含む誰かがボスと遭遇して出現済みになっている場合は、何もメッセージを出さなくていいかなと思っています。
> > -------------------
> > 【ボス画像】
> > 【!】タイムボス出現中【!】
> > >>ボスと戦う!<<
> > -------------------
> この表示を出すのは探索でボスに遭遇したプレイヤーだけでしょうか、それとも一度誰かが遭遇した場合はすべてのプレイヤーに表示するのでしょうか?
一度誰かが遭遇した場合は、すべてのプレイヤーに表示したいと思っています。
> > 「>>ボスと戦う!<<」をクリックすると戦闘画面
> > (プレイヤーと接触したような画面でいいかも?)
> > に切り替わるようにできたらなと・・
> この部分もデータファイルの扱いに影響してくるので、既存の接触画面を使用するのか別の画面を使用するのか、を決めてしまったほうが良いです。
> あと、戦闘処理はsub fightを使用するのでしょうか、それとも別の処理で行うのでしょうか?
できれば難易度が低い方をとか思いつつ…
どっちのほうが簡単なのか分からず;
既存の接触画面を使用する方が難易度が低ければ、それでいきたいと考えています。
戦闘処理はsub fightを使いたいです…!
> できれば難易度が低い方をとか思いつつ…コメントを書く(引用) | スレッド一覧
> どっちのほうが簡単なのか分からず;
> 既存の接触画面を使用する方が難易度が低ければ、それでいきたいと考えています。
既存の画面を使用したほうが簡単だと思います。
処理の仕様の概要はわかりました。
次にデータファイルの形式を決めましょうか。
今回の仕様では参加者だけが保存されていれば良いので、以下の形式が良いのではないかと思います。
---- ここから ----
ID1<>名前1<>パスワード1<>
ID2<>名前2<>パスワード2<>
・
・
・
IDn<>名前n<>パスワードn<>
----ここまで ----
そして、ボスのHPなどは通常のユーザーデータファイルと同じファイルを使用するのが簡単だと思います。
この場合、ボスであることを示すものが必要になりますので決める必要があります。(例えば、スキル'-TIME BOSS-')
上記のファイル形式やスキルは例として書いただけですので適宜お好きなように決めてください。
決まりましたら探索処理を以下のように修正してみてください。
1. ボスの出現判定(「-TRAP_BOSS-」のタイミングでボスのユーザーデータファイルが存在しないかどうか)
2. 出現判定を満たしていた場合はボスのユーザーデータファイルを作成、および、必要に応じて参加者のクリア
いつもご教授ありがとうございます!コメントを書く(引用) | スレッド一覧
> 今回の仕様では参加者だけが保存されていれば良いので、以下の形式が良いのではないかと思います。
> ---- ここから ----
> ID1<>名前1<>パスワード1<>
> ID2<>名前2<>パスワード2<>
了解しました!
> そして、ボスのHPなどは通常のユーザーデータファイルと同じファイルを使用するのが簡単だと思います。
> この場合、ボスであることを示すものが必要になりますので決める必要があります。(例えば、スキル'-TIME BOSS-')
了解です!-TIME_BOSS-でやってみようかなと思います。
そして…
> 決まりましたら探索処理を以下のように修正してみてください。
> 1. ボスの出現判定(「-TRAP_BOSS-」のタイミングでボスのユーザーデータファイルが存在しないかどうか)
> 2. 出現判定を満たしていた場合はボスのユーザーデータファイルを作成、および、必要に応じて参加者のクリア
恥ずかしながら、どうすればいいのか全く分かりませんでした…
似たような処理を探したものの、なんか違うのばかりで…
以下が現状になります;
----------------------------
if ($idt =~ /-TRAP_BOSS-/)
{
#ボスのユーザーデータファイルが存在しないかどうか
#出現判定を満たしていた場合はボスのユーザーデータファイルを作成、
$line = join('<>',$id,'$nm','$ps',"\n"); #ID1<>名前1<>パスワード1<>
&writedat("timeboss.dat",$line);
#必要に応じて参加者のクリア
open(TBOSS, "timeboss.dat");#timeboss.datを開く
$data = <TBOSS>;#timeboss.datを読む
close(TBOSS);#timeboss.datを閉じる
push (@msg,"タイムリミットボス$inmが現れた!");
$Fm{'pd'} = 'TIB'; #$Fm{'pd'}にボスのIDをセットする
$timeboss = 1;#変数を用意してフラグを立てる。
}
----------------------------
#ボスのユーザーデータファイルが存在しないかどうか
ifで作るのかなと思ったのはいいのですが、ボスのユーザーファイルをどう判別すればいいのか分かりませんでした…
#出現判定を満たしていた場合はボスのユーザーデータファイルを作成、
ボスのデータをどう作成すればいいのか分からず…
$line = join('<>',$id,'$nm','$ps',"\n"); #ID1<>名前1<>パスワード1<>
&writedat("timeboss.dat",$line);
↑倉庫作成時の記述を参考に書いては見たのですが、全く違う感が…本当にすみません……
#必要に応じて参加者のクリア
これも似たような記述を探したものの、よくわからず…
いつも聞いてばかりで申し訳ないです…
> #ボスのユーザーデータファイルが存在しないかどうかコメントを書く(引用) | スレッド一覧
>
> ifで作るのかなと思ったのはいいのですが、ボスのユーザーファイルをどう判別すればいいのか分かりませんでした…
ここでいうボスのユーザーデータファイルは他のプレイヤーのユーザーデータファイルと同じものを指しています。
ですので、ボスに専用のIDを割り当ててファイルを作ることになります。
ということで、ファイルが存在するかどうかはmake_new.plの「while (-e "$usrdir$id\.dat")」の部分を参考にすればチェックできると思います。
> #出現判定を満たしていた場合はボスのユーザーデータファイルを作成、
>
> ボスのデータをどう作成すればいいのか分からず…
作成処理はmake_new.plの「$line = join('<>', 〜);」から「chmod(〜);」までの部分をコピーしてきて修正すれば良いです。
> #必要に応じて参加者のクリア
> これも似たような記述を探したものの、よくわからず…
これは単純に空ファイルにするということです。
「&writedat('timeboss.dat');」とでもすれば空ファイルになるはずです。