久しぶりに利用させていただきます、軟骨食べたいと申します。
質問ですが、バトルで戦闘不能になったときに、ゲームオーバー画面に移動せず、全回復したのち宿屋などに場所移動する、ということはできますか?
不死身ステートを使ってみても、もとの画面というかイベントに繋がってしまい、場所移動ができません。このようなことが実現可能なスクリプト、もしくはイベントの組み方などがありましたら、教えてください。
【解決済み】ゲームオーバーにせず場所移動
【解決済み】ゲームオーバーにせず場所移動
最後に編集したユーザー 軟骨食べたい [ 2018年4月22日(日) 06:54 ], 累計 1 回
Re: ゲームオーバーにせず場所移動
「ツクールVXAce ゲームオーバー(もしくは全滅)」で探せばとりあえず見つかるかなと思いましたがなかなかないですね。
https://noir-et-blanc-patisserie.amebao ... Ids=620063
viewtopic.php?t=5222
出てきたあたりだとこの辺りでしょうか。
https://noir-et-blanc-patisserie.amebao ... Ids=620063
viewtopic.php?t=5222
出てきたあたりだとこの辺りでしょうか。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
Re: ゲームオーバーにせず場所移動
ありがとうございます、前者の通りにスクリプトを弄ってみたのですが、
このようなエラーがでてしまいました。
このようなエラーがでてしまいました。
- 添付ファイル
-
- bandicam 2018-04-21 21-02-49-831.jpg (32.12 KiB) 閲覧された回数 5867 回
Re: ゲームオーバーにせず場所移動
コード: 全て選択
module Zenmetu
# 制御するスイッチのID
N = 1#スイッチN番がONの時ゲームオーバー
M = 2#全滅時コモンイベント起動用
end
module BattleManager
#--------------------------------------------------------------------------
# ● 敗北の処理
#--------------------------------------------------------------------------
def self.process_defeat
$game_message.add(sprintf(Vocab::Defeat, $game_party.name))
wait_for_message
if @can_lose
revive_battle_members
replay_bgm_and_bgs
SceneManager.return
else
#SceneManager.goto(Scene_Gameover)
if $game_switches[Zenmetu::N] == true
SceneManager.goto(Scene_Gameover)
else
$game_switches[Zenmetu::M] = true
revive_battle_members
replay_bgm_and_bgs
SceneManager.return
end
end
battle_end(2)
return true
end
end
#ここからマップ上での全滅の場合の処理
class Scene_Base
#--------------------------------------------------------------------------
# ● ゲームオーバー判定
# パーティが全滅状態ならゲームオーバー画面へ遷移する。
#--------------------------------------------------------------------------
def check_gameover
if $game_party.all_dead?
if $game_switches[Zenmetu::N] == true
SceneManager.goto(Scene_Gameover)
else
$game_switches[Zenmetu::M] = true
end
end
end
end
class Game_Interpreter
#--------------------------------------------------------------------------
# ● HP の増減
#--------------------------------------------------------------------------
def command_311
value = operate_value(@params[2], @params[3], @params[4])
iterate_actor_var(@params[0], @params[1]) do |actor|
next if actor.dead?
actor.change_hp(value, @params[5])
actor.perform_collapse_effect if actor.dead?
end
if $game_party.all_dead?
if $game_switches[Zenmetu::N] == true
SceneManager.goto(Scene_Gameover)
else
$game_switches[Zenmetu::M] = true
end
end
end
end
OFFの時はスイッチM番がONになるのでこれを使って自動実行か並列実行の
コモンイベントで場所移動させればよし。
そのコモンイベントでM番をOFFにしないと無限ループになるので注意。
class Scene_Base以降はマップ上で全滅した場合の処理です。
やっている事はバトルと同じです。
(問題や間違いがありそうなら誰か指摘してくれると嬉しい)
致命的なミスがあったので修正しました。
最後に編集したユーザー ショウ [ 2018年4月22日(日) 16:09 ], 累計 4 回
Re: ゲームオーバーにせず場所移動
>軟骨食べたい さん
最初のコメントアウトが「SceneManager.goto(Scene_Gameover) if $game_party.all_dead?」だけでいいのかも
しれません。あくまで理論上ですが。
後者の方がより詳しく説明しているのでそちらも合わせてご検討ください。
最初のコメントアウトが「SceneManager.goto(Scene_Gameover) if $game_party.all_dead?」だけでいいのかも
しれません。あくまで理論上ですが。
後者の方がより詳しく説明しているのでそちらも合わせてご検討ください。
------------------------------------------------------------------
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
自作の(改造でない)スクリプト、プラグイン素材に
関しては、リードミーもしくは作中に
「faida」と記名していただければ
利用可能です。
Re: ゲームオーバーにせず場所移動
ショウさんのスクリプトを導入したところ、思い通りのイベントが実行できました!
お二方、ほんとうにありがとうございましたm(__)m
お二方、ほんとうにありがとうございましたm(__)m
Re:ゲームオーバーにせず場所移動
すみません、とんでもないミスがあったので修正しました。
上のを再度導入し直していただけると幸いです。
上のを再度導入し直していただけると幸いです。