私設SoS2オーナー応援BBS

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

スレッド

└◇1637:
戦闘中にアイテムを使えるようにしたいのですが [ディライト] 01/23 11:24

 └◇1638:Re:戦闘中にアイテムを使えるようにしたいのですが [moon] 01/23 22:47<-last


1637● 戦闘中にアイテムを使えるようにしたいのですが[ ディライト ] 2009 01/23 11:24
初めまして、つい3ヶ月前にSOS2オーナーになったディライトと申します。
設置して以来様々な改造配布サイト様の改造を適用してきましたが、後になって後悔したことは、SOS2 wikiの分割版の存在に気づかずマシマロ様の古いバージョンのもので改造してしまったことです。
自力でaction.plの膨大なルーチンをなんとかある程度各々のファイルに分割しましたが、改造の兼ね合いによる不具合等も残存しておりまだまだ改造や修正する余地がありそうです。

前置きが長くなりましたが本題に入ります。相手と遭遇すると

・戦闘する
・手紙を送る
・宝珠のトレード
・立ち去る

となっているコンタクト画面で「戦闘する」を選ぶと即効戦闘が始まりますよね。これでは戦闘中にアイテムを使用することができないと思いますので

「戦闘する」を選んだ際のみにいたっては画面を切り替えて

・攻撃する
・アイテムを使用
・遭遇画面に戻る

というふうに戦闘専用画面内でコマンドを選択できるようにし、
アイテムを使用するとその結果がそのまま戦闘にも反映できるようにしたいのです。

なお、戦闘システムの改造はククロさんの交互戦闘システムバトルを取り入れています。

「Aさんの攻撃!Bさんに3のダメージ」

「Bさんは回復薬を使用!Bさんの体力が5回復」

上記のような感じです。アイテムは消費アイテムや一時使用アイテム等に限っては全て反映できるようにしたいです。
どのようにすれば上記ができるのかできれば詳しく指針してくださると助かります。
スレッド一覧


1638● Re:戦闘中にアイテムを使えるようにしたいのですが[ moon ] 2009 01/23 22:47
> 前置きが長くなりましたが本題に入ります。相手と遭遇すると
>
> ・戦闘する
> ・手紙を送る
> ・宝珠のトレード
> ・立ち去る
>
> となっているコンタクト画面で「戦闘する」を選ぶと即効戦闘が始まりますよね。これでは戦闘中にアイテムを使用することができないと思いますので
>
> 「戦闘する」を選んだ際のみにいたっては画面を切り替えて
>
> ・攻撃する
> ・アイテムを使用
> ・遭遇画面に戻る
>
> というふうに戦闘専用画面内でコマンドを選択できるようにし、
> アイテムを使用するとその結果がそのまま戦闘にも反映できるようにしたいのです。
>
> なお、戦闘システムの改造はククロさんの交互戦闘システムバトルを取り入れています。
>
> 「Aさんの攻撃!Bさんに3のダメージ」
>
> 「Bさんは回復薬を使用!Bさんの体力が5回復」
>
> 上記のような感じです。アイテムは消費アイテムや一時使用アイテム等に限っては全て反映できるようにしたいです。
> どのようにすれば上記ができるのかできれば詳しく指針してくださると助かります。

まず確認なのですが、「戦闘する」を選んだ際には専用画面に遷移するだけで戦闘は行わないという認識で良いでしょうか?
専用画面でアイテムが選択できて、その後に「攻撃する」を実行して実際の戦闘を行う、と。

この認識で良い場合は、専用画面のコマンドを以下のようにしたほうが良いと思います。
  ・攻撃する
  ・アイテムを使用
    アイテム1
    アイテム2
      〜
    アイテムn
  ・遭遇画面に戻る
最低限、以下の変更を行う必要があると思います。
  ・戦闘に使用できるアイテムであるかどうかの判定用サブルーチンを作成する。(仮にsub check_fight_itemとします。)
  ・戦闘専用画面を表示するサブルーチンを用意する。(仮にsub fight_beforeとします。)
    ※ アイテム一覧の表示時はcheck_fight_itemで判定する。
  ・sub fightにアイテムが指定された場合にそのアイテムを使用する処理を追加する。
    ※ 選択されたアイテムが使用できるかどうかはcheck_fight_itemで判定する。
  ・Main Program部分に'fight_before'の場合のif文を追加する。
  ・sub contact_formにfight_beforeを実行するif文を追加する。
  ・sub contact_actionで「戦う」の場合のmodeを'fight'ではなく'fight_before'にする。
スレッド一覧

CGIROOM