Accueil du SiteAccueil du Site  AccueilAccueil  Dernières imagesDernières images  RechercherRechercher  ConnexionConnexion  S'enregistrerS'enregistrer  



-17%
Le deal à ne pas rater :
SSD interne Crucial SSD P3 1To NVME à 49,99€
49.99 € 59.99 €
Voir le deal

Partagez
 

 Avoir sa revanche en cas de défaite.

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Kingdommangas
Ninja (niveau 4)
Ninja (niveau 4)
Kingdommangas

Féminin
Messages postés : 210
Date d'inscription : 19/12/2015
Jauge LPC :
Avoir sa revanche en cas de défaite.  891527140057 / 10057 / 100Avoir sa revanche en cas de défaite.  8915271400

Avoir sa revanche en cas de défaite.  Partag10
Avoir sa revanche en cas de défaite.  Riche_10
Avoir sa revanche en cas de défaite.  Collec10
Avoir sa revanche en cas de défaite.  Collec11
Avoir sa revanche en cas de défaite.  Collec12

Avoir sa revanche en cas de défaite.  Empty
MessageSujet: Avoir sa revanche en cas de défaite.    Avoir sa revanche en cas de défaite.  EmptyLun 28 Déc 2015 - 14:01

Alors voici un script qui permet de retanter sa chance après avoir été vaincu en combats.

Code:
=begin
      RGSS3
     
      ★ バトルリトライ ★
     
      戦闘敗北時に、リトライするかの選択を可能にします。
     
      ver1.00

      Last Update : 2012/02/06
      02/06 : 新規
     
      ろかん   http://kaisou-ryouiki.sakura.ne.jp/
=end

#===========================================
#  設定箇所
#===========================================
module Rokan
module Retry_Battle
    # Interrupteur a actionner pour l'utilisation
    RETRY_ENABLE_SWITCH = 10
    # コマンドに表示する文字列
    RETRY_COMMAND = "Revanche"
    GIVEUP_COMMAND = "Abandonner"
end
end
#===========================================
#  ここまで
#===========================================

$rsi ||= {}
$rsi["バトルリトライ"] = true

class << BattleManager
  #--------------------------------------------------------------------------
  # ● インクルード Rokan::Retry_Battle
  #--------------------------------------------------------------------------
  include Rokan::Retry_Battle
  #--------------------------------------------------------------------------
  # ● セットアップ
  #--------------------------------------------------------------------------
  alias _retry_battle_setup setup
  def setup(troop_id, can_escape = true, can_lose = false)
    _retry_battle_setup(troop_id, can_escape, can_lose)
    setup_retry_data
  end
  #--------------------------------------------------------------------------
  # ● オブジェクトをディープコピーして返す
  #--------------------------------------------------------------------------
  def deep_cp(obj)
    Marshal.load(Marshal.dump(obj))
  end
  #--------------------------------------------------------------------------
  # ● リトライ用にデータを保持する
  #--------------------------------------------------------------------------
  def backup_retry_data
    @retry_data = []
    @retry_data << deep_cp($game_switches)
    @retry_data << deep_cp($game_variables)
    @retry_data << deep_cp($game_actors)
    @retry_data << deep_cp($game_party)
    @retry_data << deep_cp($game_troop)
  end
  #--------------------------------------------------------------------------
  # ● リトライ用データを読み込む
  #--------------------------------------------------------------------------
  def restore_retry_data
    $game_switches = deep_cp(@retry_data[0])
    $game_variables = deep_cp(@retry_data[1])
    $game_actors = deep_cp(@retry_data[2])
    $game_party = deep_cp(@retry_data[3])
    $game_troop = deep_cp(@retry_data[4])
  end
  #--------------------------------------------------------------------------
  # ● リトライの為の準備を行う
  #--------------------------------------------------------------------------
  def setup_retry_data
    backup_retry_data
  end
  #--------------------------------------------------------------------------
  # ● リトライの是非の選択開始
  #--------------------------------------------------------------------------
  def start_retry_selection
    SceneManager.scene.start_retry_selection
  end
  #--------------------------------------------------------------------------
  # ● リトライの処理
  #--------------------------------------------------------------------------
  def process_retry
    Graphics.update
    Graphics.freeze
    restore_retry_data
    SceneManager.goto(Scene_Battle)
    BattleManager.play_battle_bgm
    Sound.play_battle_start
  end
  #--------------------------------------------------------------------------
  # ● 敗北の処理
  #--------------------------------------------------------------------------
  alias _retry_battle_process_defeat process_defeat
  def process_defeat
    if $game_switches[RETRY_ENABLE_SWITCH]
      start_retry_selection
    else
      _retry_battle_process_defeat
    end
  end
end

class Game_Screen
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_writer  :brightness              # 明るさ
end

class Retry_Window < Window_Command
  #--------------------------------------------------------------------------
  # ● インクルード Rokan::Retry_Battle
  #--------------------------------------------------------------------------
  include Rokan::Retry_Battle
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    update_placement
    select_symbol(:reset_battle)
    self.openness = 0
    self.active = false
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ幅の取得
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウ位置の更新
  #--------------------------------------------------------------------------
  def update_placement
    self.x = (Graphics.width - width) / 2
    self.y = (Graphics.height - height) / 2
  end
  #--------------------------------------------------------------------------
  # ● コマンドリストの作成
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(RETRY_COMMAND, :retry)
    add_command(GIVEUP_COMMAND, :giveup)
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウのアクティブ化
  #--------------------------------------------------------------------------
  def activate
    open
    super
  end
  #--------------------------------------------------------------------------
  # ● ウィンドウの非アクティブ化
  #--------------------------------------------------------------------------
  def deactivate
    close
    super
  end
end

class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # ● 開始処理
  #--------------------------------------------------------------------------
  alias _retry_battle_start start
  def start
    _retry_battle_start
    create_command_window
  end
  #--------------------------------------------------------------------------
  # ● 終了処理
  #--------------------------------------------------------------------------
  alias _retry_battle_terminate terminate
  def terminate
    _retry_battle_terminate
    @command_window.dispose
    perform_battle_transition if SceneManager.scene_is?(Scene_Battle)
  end
  #--------------------------------------------------------------------------
  # ● 確認コマンドウィンドウの作成
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Retry_Window.new
    @command_window.set_handler(:retry, method(:reset_battle))
    @command_window.set_handler(:giveup, method(:giveup_battle))
  end
  #--------------------------------------------------------------------------
  # ● リトライの是非の選択開始
  #--------------------------------------------------------------------------
  def start_retry_selection
    @command_window.activate
    bgm = RPG::BGM.last
    bgm.volume -= 20
    bgm.play
    update_basic until @command_window.open?
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias _retry_battle_update update
  def update
    if @command_window.active
      super
    else
      _retry_battle_update
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新(基本)
  #--------------------------------------------------------------------------
  alias _retry_battle_update_basic update_basic
  def update_basic
    if @command_window && @command_window.active
      $game_troop.screen.brightness = [$game_troop.screen.brightness - 8, 160].max
    end
    _retry_battle_update_basic
  end
  #--------------------------------------------------------------------------
  # ● 戦闘をあきらめる
  #--------------------------------------------------------------------------
  def giveup_battle
    @command_window.deactivate
    BattleManager._retry_battle_process_defeat
  end
  #--------------------------------------------------------------------------
  # ● 戦闘のリセット
  #--------------------------------------------------------------------------
  def reset_battle
    @command_window.deactivate
    update_basic until @command_window.close?
    BattleManager.process_retry
  end
  #--------------------------------------------------------------------------
  # ● 戦闘前トランジション実行
  #--------------------------------------------------------------------------
  def perform_battle_transition
    Graphics.transition(60, "Graphics/System/BattleStart", 100)
    Graphics.freeze
  end
end

Pour l'utilisation c'est simple.

Il suffit d'activer un interrupteur pour autoriser le joueur à renter sa chance en combats.

à la ligne 22, on peut modifier l’interrupteur qui autorise un nouveau combats.
Code:
    RETRY_ENABLE_SWITCH = 10

Juste en dessous il y a les mots qui apparaitrons à l'écran, ils sont modifiable à condition de bien rester entre les accolades.
Code:
RETRY_COMMAND = "Revanche"
    GIVEUP_COMMAND = "Abandonner"

C'est tout, un screen.
Avoir sa revanche en cas de défaite.  Combat10
Pour la source c'est encore et toujours http://kaisou-ryouiki.sakura.ne.jp/.
Revenir en haut Aller en bas
 
Avoir sa revanche en cas de défaite.
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [VX] Défaite à la pokémon
» La V1.3, on va en avoir besoin....
» Avoir un téléphone
» [XP] Avoir plus de quatre personnages jouables
» Avoir un fichier pour les sauvegardes de votre jeu !

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker VXAce :: Combat-
Sauter vers: