Saleth Empire
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Saleth Empire

Site de projets de jeux vidéos de la team AMK
 
PortailAccueilRechercherDernières imagesS'enregistrerConnexion
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 Nouvelle interface de choix dans un combat [resolu]

Aller en bas 
5 participants
AuteurMessage
freyja

freyja


Nombre de messages : 19
Date d'inscription : 24/01/2007

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 17:36

J'aimerait faire une nouvelle interface de combat avec cette image Nouvelle interface de choix dans un combat [resolu] Commande2frcomment je peut faire ?


Dernière édition par le Sam 27 Jan - 18:20, édité 1 fois
Revenir en haut Aller en bas
Dark Dan
Membre de la Team AMK
Membre de la Team AMK
Dark Dan


Masculin Nombre de messages : 76
Age : 33
Date d'inscription : 20/06/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 18:23

Hum... Ben sa dépend, si tu veut garder l'image, c'est pas moi qui vis povoir t'aider. Si par contre tu veut juste ces mots la et cette police la tu modifie le script ATB et c'est bon^^
Revenir en haut Aller en bas
freyja

freyja


Nombre de messages : 19
Date d'inscription : 24/01/2007

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 18:28

oui je veut gardé l'image
Revenir en haut Aller en bas
Demon_Hunter
Graphiste
Graphiste
Demon_Hunter


Masculin Nombre de messages : 474
Date d'inscription : 30/05/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 19:03

je croiqs qui faut s'y connaite un peu en scripting XD
Revenir en haut Aller en bas
Roshi
Modérateur
Modérateur
Roshi


Masculin Nombre de messages : 215
Age : 42
Localisation : Tourlaville(50)
Emploi : précaire
Loisirs : beaucoup trop
Date d'inscription : 17/06/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 19:04

Le seul moyen de changer tout ca c'est de modifier le script,j'peux voir ca,ca m'a pas l'air enorme comme modif.
Tu compte utiliser le curseur d'origine ?
Revenir en haut Aller en bas
Demon_Hunter
Graphiste
Graphiste
Demon_Hunter


Masculin Nombre de messages : 474
Date d'inscription : 30/05/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 19:20

normalemnt le script utilise les ressouce placer dans le gestionnaire, je crois que si on met sa dans le dossier pictures et qu'on rdonne au script d'utliser le fichier sa doit etre bon, c'est sa??
Revenir en haut Aller en bas
Roshi
Modérateur
Modérateur
Roshi


Masculin Nombre de messages : 215
Age : 42
Localisation : Tourlaville(50)
Emploi : précaire
Loisirs : beaucoup trop
Date d'inscription : 17/06/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 19:54

pour moi le plus simple c'est de faire appel a une bitmap dans le contents du window conserné et de changer son opacité(du window)
a 0 afin de cacher le windowskin par defaut,j'ai bidouiller un peu j'y suis presque j'ai juste un petit souci avec le curseur(il apparait dessous l'image).
J'attend le feu vert de freyja avant de me lancer a fond dedans.J'ai pas trop envi de me perdre dans des expliquations en Ruby,j'peux fournir le code,mais l'expliquer ca risque d'etre tres long et j'peux m'emmbrouiller severement.
Revenir en haut Aller en bas
freyja

freyja


Nombre de messages : 19
Date d'inscription : 24/01/2007

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 21:32

pour le curseur j'ai un script qui m'affiche un doigt a coté de la fenetre a lors ne cherche pas pour ca merci
Revenir en haut Aller en bas
Roshi
Modérateur
Modérateur
Roshi


Masculin Nombre de messages : 215
Age : 42
Localisation : Tourlaville(50)
Emploi : précaire
Loisirs : beaucoup trop
Date d'inscription : 17/06/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 23:04

donc pour afficher ton image comme boite de commande remplace le script Scene_Battle 1 par celui-ci :

Code:

class Scene_Battle
  def main
    $game_temp.in_battle = true
    $game_temp.battle_turn = 0
    $game_temp.battle_event_flags.clear
    $game_temp.battle_abort = false
    $game_temp.battle_main_phase = false
    $game_temp.battleback_name = $game_map.battleback_name
    $game_temp.forcing_battler = nil
    $game_system.battle_interpreter.setup(nil, 0)
    @troop_id = $game_temp.battle_troop_id
    $game_troop.setup(@troop_id)
    s1 = "          "
    s2 = "          "
    s3 = "          "
    s4 = "          "
    s5 = "          "
    @command_bitmap = Bitmap.new("Graphics/Windowskins/commande2fr")
    @actor_command_window = Window_Command.new(@command_bitmap.width+32, [s1, s2, s3, s4,s5])
    @actor_command_window.y = 124
    @actor_command_window.back_opacity = 0
      @actor_command_window.opacity = 0
    @actor_command_window.contents = @command_bitmap
    @actor_command_window.active = false
    @actor_command_window.visible = false
    @party_command_window = Window_PartyCommand.new
    @help_window = Window_Help.new
    @help_window.back_opacity = 160
    @help_window.visible = false
    @status_window = Window_BattleStatus.new
    @message_window = Window_Message.new
    @actor_command_window.z = (@status_window.z - 5)
        @spriteset = Spriteset_Battle.new
      @wait_count = 0
      if $data_system.battle_transition == ""
      Graphics.transition(20)
    else
      Graphics.transition(40, "Graphics/Transitions/" +
        $data_system.battle_transition)
    end
    # プレバトルフェーズ開始
    start_phase1
    # メインループ
    loop do
      # ゲーム画面を更新
      Graphics.update
      # 入力情報を更新
      Input.update
      # フレーム更新
      update
      # 画面が切り替わったらループを中断
      if $scene != self
        break
      end
    end
    # マップをリフレッシュ
    $game_map.refresh
    # トランジション準備
    Graphics.freeze
    # ウィンドウを解放
    @actor_command_window.dispose
    @party_command_window.dispose
    @help_window.dispose
    @status_window.dispose
    @message_window.dispose
    if @skill_window != nil
      @skill_window.dispose
    end
    if @item_window != nil
      @item_window.dispose
    end
    if @result_window != nil
      @result_window.dispose
    end
    # スプライトセットを解放
    @spriteset.dispose
    # タイトル画面に切り替え中の場合
    if $scene.is_a?(Scene_Title)
      # 画面をフェードアウト
      Graphics.transition
      Graphics.freeze
    end
    # 戦闘テストからゲームオーバー画面以外に切り替え中の場合
    if $BTEST and not $scene.is_a?(Scene_Gameover)
      $scene = nil
    end
  end
  #--------------------------------------------------------------------------
  # ● 勝敗判定
  #--------------------------------------------------------------------------
  def judge
    # 全滅判定が真、またはパーティ人数が 0 人の場合
    if $game_party.all_dead? or $game_party.actors.size == 0
      # 敗北可能の場合
      if $game_temp.battle_can_lose
        # バトル開始前の BGM に戻す
        $game_system.bgm_play($game_temp.map_bgm)
        # バトル終了
        battle_end(2)
        # true を返す
        return true
      end
      # ゲームオーバーフラグをセット
      $game_temp.gameover = true
      # true を返す
      return true
    end
    # エネミーが 1 体でも存在すれば false を返す
    for enemy in $game_troop.enemies
      if enemy.exist?
        return false
      end
    end
    # アフターバトルフェーズ開始 (勝利)
    start_phase5
    # true を返す
    return true
  end
  #--------------------------------------------------------------------------
  # ● バトル終了
  #    result : 結果 (0:勝利 1:敗北 2:逃走)
  #--------------------------------------------------------------------------
  def battle_end(result)
    # 戦闘中フラグをクリア
    $game_temp.in_battle = false
    # パーティ全員のアクションをクリア
    $game_party.clear_actions
    # バトル用ステートを解除
    for actor in $game_party.actors
      actor.remove_states_battle
    end
    # エネミーをクリア
    $game_troop.enemies.clear
    # バトル コールバックを呼ぶ
    if $game_temp.battle_proc != nil
      $game_temp.battle_proc.call(result)
      $game_temp.battle_proc = nil
    end
    # マップ画面に切り替え
    $scene = Scene_Map.new
  end
  #--------------------------------------------------------------------------
  # ● バトルイベントのセットアップ
  #--------------------------------------------------------------------------
  def setup_battle_event
    # バトルイベント実行中の場合
    if $game_system.battle_interpreter.running?
      return
    end
    # バトルイベントの全ページを検索
    for index in 0...$data_troops[@troop_id].pages.size
      # イベントページを取得
      page = $data_troops[@troop_id].pages[index]
      # イベント条件を c で参照可能に
      c = page.condition
      # 何も条件が指定されていない場合は次のページへ
      unless c.turn_valid or c.enemy_valid or
            c.actor_valid or c.switch_valid
        next
      end
      # 実行済みの場合は次のページへ
      if $game_temp.battle_event_flags[index]
        next
      end
      # ターン 条件確認
      if c.turn_valid
        n = $game_temp.battle_turn
        a = c.turn_a
        b = c.turn_b
        if (b == 0 and n != a) or
          (b > 0 and (n < 1 or n < a or n % b != a % b))
          next
        end
      end
      # エネミー 条件確認
      if c.enemy_valid
        enemy = $game_troop.enemies[c.enemy_index]
        if enemy == nil or enemy.hp * 100.0 / enemy.maxhp > c.enemy_hp
          next
        end
      end
      # アクター 条件確認
      if c.actor_valid
        actor = $game_actors[c.actor_id]
        if actor == nil or actor.hp * 100.0 / actor.maxhp > c.actor_hp
          next
        end
      end
      # スイッチ 条件確認
      if c.switch_valid
        if $game_switches[c.switch_id] == false
          next
        end
      end
      # イベントをセットアップ
      $game_system.battle_interpreter.setup(page.list, 0)
      # このページのスパンが [バトル] か [ターン] の場合
      if page.span <= 1
        # 実行済みフラグをセット
        $game_temp.battle_event_flags[index] = true
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  def update
    # バトルイベント実行中の場合
    if $game_system.battle_interpreter.running?
      # インタプリタを更新
      $game_system.battle_interpreter.update
      # アクションを強制されているバトラーが存在しない場合
      if $game_temp.forcing_battler == nil
        # バトルイベントの実行が終わった場合
        unless $game_system.battle_interpreter.running?
          # 戦闘継続の場合、バトルイベントのセットアップを再実行
          unless judge
            setup_battle_event
          end
        end
        # アフターバトルフェーズでなければ
        if @phase != 5
          # ステータスウィンドウをリフレッシュ
          @status_window.refresh
        end
      end
    end
    # システム (タイマー)、画面を更新
    $game_system.update
    $game_screen.update
    # タイマーが 0 になった場合
    if $game_system.timer_working and $game_system.timer == 0
      # バトル中断
      $game_temp.battle_abort = true
    end
    # ウィンドウを更新
    @help_window.update
    @party_command_window.update
    @actor_command_window.update
    @status_window.update
    @message_window.update
    # スプライトセットを更新
    @spriteset.update
    # トランジション処理中の場合
    if $game_temp.transition_processing
      # トランジション処理中フラグをクリア
      $game_temp.transition_processing = false
      # トランジション実行
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        Graphics.transition(40, "Graphics/Transitions/" +
          $game_temp.transition_name)
      end
    end
    # メッセージウィンドウ表示中の場合
    if $game_temp.message_window_showing
      return
    end
    # エフェクト表示中の場合
    if @spriteset.effect?
      return
    end
    # ゲームオーバーの場合
    if $game_temp.gameover
      # ゲームオーバー画面に切り替え
      $scene = Scene_Gameover.new
      return
    end
    # タイトル画面に戻す場合
    if $game_temp.to_title
      # タイトル画面に切り替え
      $scene = Scene_Title.new
      return
    end
    # バトル中断の場合
    if $game_temp.battle_abort
      # バトル開始前の BGM に戻す
      $game_system.bgm_play($game_temp.map_bgm)
      # バトル終了
      battle_end(1)
      return
    end
    # ウェイト中の場合
    if @wait_count > 0
      # ウェイトカウントを減らす
      @wait_count -= 1
      return
    end
    # アクションを強制されているバトラーが存在せず、
    # かつバトルイベントが実行中の場合
    if $game_temp.forcing_battler == nil and
      $game_system.battle_interpreter.running?
      return
    end
    # フェーズによって分岐
    case @phase
    when 1  # プレバトルフェーズ
      update_phase1
    when 2  # パーティコマンドフェーズ
      update_phase2
    when 3  # アクターコマンドフェーズ
      update_phase3
    when 4  # メインフェーズ
      update_phase4
    when 5  # アフターバトルフェーズ
      update_phase5
    end
  end
end
Revenir en haut Aller en bas
Roshi
Modérateur
Modérateur
Roshi


Masculin Nombre de messages : 215
Age : 42
Localisation : Tourlaville(50)
Emploi : précaire
Loisirs : beaucoup trop
Date d'inscription : 17/06/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyMer 24 Jan - 23:14

Sinon si tu veux que ta commande fuite fonctionne il te faudra remplacer Scene_Battle 3 par ceci :

Code:

class Scene_Battle
    def start_phase3
      @phase = 3
        @actor_index = -1
    @active_battler = nil
        phase3_next_actor
  end
    def phase3_next_actor
    # ループ
    begin
          if @active_battler != nil
        @active_battler.blink = false
      end
          if @actor_index == $game_party.actors.size-1
                start_phase4
        return
      end
            @actor_index += 1
      @active_battler = $game_party.actors[@actor_index]
      @active_battler.blink = true
    end until @active_battler.inputable?
        phase3_setup_command_window
  end
    def phase3_prior_actor
      begin
            if @active_battler != nil
        @active_battler.blink = false
      end
            if @actor_index == 0
              start_phase2
        return
      end
            @actor_index -= 1
      @active_battler = $game_party.actors[@actor_index]
      @active_battler.blink = true
        end until @active_battler.inputable?
        phase3_setup_command_window
  end
  #--------------------------------------------------------------------------
  def phase3_setup_command_window
        @party_command_window.active = false
    @party_command_window.visible = false
        @actor_command_window.active = true
    @actor_command_window.visible = true
        @actor_command_window.x = @actor_index * 160
        @actor_command_window.index = 0
  end
  #--------------------------------------------------------------------------
  def update_phase3
        if @enemy_arrow != nil
      update_phase3_enemy_select
        elsif @actor_arrow != nil
      update_phase3_actor_select
        elsif @skill_window != nil
      update_phase3_skill_select
      elsif @item_window != nil
      update_phase3_item_select
        elsif @actor_command_window.active
      update_phase3_basic_command
    end
  end
  #--------------------------------------------------------------------------
    def update_phase3_basic_command
        if Input.trigger?(Input::B)
            $game_system.se_play($data_system.cancel_se)
          phase3_prior_actor
      return
    end
        if Input.trigger?(Input::C)
            case @actor_command_window.index
      when 0 
        $game_system.se_play($data_system.decision_se)
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 0
                start_enemy_select
      when 1  # スキル
              $game_system.se_play($data_system.decision_se)
                @active_battler.current_action.kind = 1
                start_skill_select
      when 2  # 防御
        @active_battler.current_action.kind = 0
        @active_battler.current_action.basic = 1
                phase3_next_actor
      when 3  # アイテム
                $game_system.se_play($data_system.decision_se)
                @active_battler.current_action.kind = 2
                start_item_select
      when 4
        $game_system.se_play($data_system.decision_se)
        update_phase2_escape
      end
      return
    end
  end
  #--------------------------------------------------------------------------
    def update_phase3_skill_select
        @skill_window.visible = true
      @skill_window.update
        if Input.trigger?(Input::B)
            $game_system.se_play($data_system.cancel_se)
            end_skill_select
      return
    end
      if Input.trigger?(Input::C)
            @skill = @skill_window.skill
            if @skill == nil or not @active_battler.skill_can_use?(@skill.id)
              $game_system.se_play($data_system.buzzer_se)
        return
      end
            $game_system.se_play($data_system.decision_se)
          @active_battler.current_action.skill_id = @skill.id
          @skill_window.visible = false
          if @skill.scope == 1
              start_enemy_select
          elsif @skill.scope == 3 or @skill.scope == 5
                start_actor_select
          else
              end_skill_select
              phase3_next_actor
      end
      return
    end
  end
    #--------------------------------------------------------------------------
  def update_phase3_item_select
      @item_window.visible = true
        @item_window.update
        if Input.trigger?(Input::B)
            $game_system.se_play($data_system.cancel_se)
            end_item_select
      return
    end
      if Input.trigger?(Input::C)
            @item = @item_window.item
            unless $game_party.item_can_use?(@item.id)
            $game_system.se_play($data_system.buzzer_se)
        return
      end
            $game_system.se_play($data_system.decision_se)
          @active_battler.current_action.item_id = @item.id
            @item_window.visible = false
          if @item.scope == 1
              start_enemy_select
          elsif @item.scope == 3 or @item.scope == 5
                start_actor_select
            else
                end_item_select
              phase3_next_actor
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  def update_phase3_enemy_select
      @enemy_arrow.update
        if Input.trigger?(Input::B)
            $game_system.se_play($data_system.cancel_se)
            end_enemy_select
      return
    end
        if Input.trigger?(Input::C)
          $game_system.se_play($data_system.decision_se)
            @active_battler.current_action.target_index = @enemy_arrow.index
            end_enemy_select
          if @skill_window != nil
                end_skill_select
      end
            if @item_window != nil
                end_item_select
      end
            phase3_next_actor
    end
  end
    #--------------------------------------------------------------------------
  def update_phase3_actor_select
        @actor_arrow.update
    if Input.trigger?(Input::B)
            $game_system.se_play($data_system.cancel_se)
          end_actor_select
      return
    end
      if Input.trigger?(Input::C)
            $game_system.se_play($data_system.decision_se);
      @active_battler.current_action.target_index = @actor_arrow.index
            end_actor_select
          if @skill_window != nil
                end_skill_select
      end
          if @item_window != nil
                end_item_select
      end
            phase3_next_actor
    end
  end
    #--------------------------------------------------------------------------
  def start_enemy_select
        @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport1)
        @enemy_arrow.help_window = @help_window
      @actor_command_window.active = false
    @actor_command_window.visible = false
  end
    #--------------------------------------------------------------------------
  def end_enemy_select
        @enemy_arrow.dispose
    @enemy_arrow = nil
        if @actor_command_window.index == 0
      @actor_command_window.active = true
      @actor_command_window.visible = true
            @help_window.visible = false
    end
  end
    #--------------------------------------------------------------------------
  def start_actor_select
        @actor_arrow = Arrow_Actor.new(@spriteset.viewport2)
    @actor_arrow.index = @actor_index
      @actor_arrow.help_window = @help_window
    @actor_command_window.active = false
    @actor_command_window.visible = false
  end
    #--------------------------------------------------------------------------
  def end_actor_select
    @actor_arrow.dispose
    @actor_arrow = nil
  end
  #--------------------------------------------------------------------------
  def start_skill_select
        @skill_window = Window_Skill.new(@active_battler)
      @skill_window.help_window = @help_window
      @actor_command_window.active = false
    @actor_command_window.visible = false
  end
    #--------------------------------------------------------------------------
  def end_skill_select
      @skill_window.dispose
    @skill_window = nil
      @help_window.visible = false
        @actor_command_window.active = true
    @actor_command_window.visible = true
  end
  #--------------------------------------------------------------------------
  def start_item_select
        @item_window = Window_Item.new
      @item_window.help_window = @help_window
      @actor_command_window.active = false
    @actor_command_window.visible = false
  end
  #--------------------------------------------------------------------------
  def end_item_select
      @item_window.dispose
    @item_window = nil
      @help_window.visible = false
      @actor_command_window.active = true
    @actor_command_window.visible = true
  end
end

J'ai grossierement modifier les fichiers d'origine mais en principe ca fonctionne bien,sinon je n'ai pas viré la boite de selection(le curseur) mais ton script va surment le faire par lui meme.
Revenir en haut Aller en bas
Siegfried
Admin
Admin
Siegfried


Masculin Nombre de messages : 1634
Age : 37
Localisation : Valence, France
Emploi : Etudiant
Loisirs : RPG Making, Musique, dessin, mangas
Date d'inscription : 17/05/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyJeu 25 Jan - 2:17

Bravo, en tout cas ( il s'est dopé c'est sûr ).
Le scriptmaster en action !
Revenir en haut Aller en bas
https://saleth-empire.1fr1.net
Roshi
Modérateur
Modérateur
Roshi


Masculin Nombre de messages : 215
Age : 42
Localisation : Tourlaville(50)
Emploi : précaire
Loisirs : beaucoup trop
Date d'inscription : 17/06/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyJeu 25 Jan - 2:25

Oups! j'ai oublier de preciser une chose !!!
Tu dois importer ton image en tant que windowskin et lui laisser le meme nom(te soucie pas de la taille qu'il fait ca pose aucun probleme pour RMXP).
Revenir en haut Aller en bas
freyja

freyja


Nombre de messages : 19
Date d'inscription : 24/01/2007

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyJeu 25 Jan - 18:52

Merci ca marche mais le seul problème c'est quej'utilise un autre script de combat je suis desolé j'aurait du te le dire Blush avant peut t-on l'introduire dedans Sad
Code:
#==============================================================================
# ** Sprite_Battler
#------------------------------------------------------------------------------
#  Animated Battlers by Minkoff
#==============================================================================

class Sprite_Battler < RPG::Sprite
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  alias cbs_initialize initialize
  def initialize(viewport, battler = nil)
    @speed =6
    @frames = 4
    @poses = 10
    @stationary_enemies = true
    @stationary_actors = false
    @calculate_speed = true
    @phasing = true
    @frame = 0
    @pose = 0
    @last_time = 0
    @last_move_time = 0
    cbs_initialize(viewport, battler)
    viewport.z = 99
  end
  #--------------------------------------------------------------------------
  # * Update
  #--------------------------------------------------------------------------
  alias cbs_update update
  def update
    return unless @battler

    # Regular Update
    cbs_update

    # Start Routine
    unless @started
      @width = @width / @frames
      @height = @height / @poses
      @display_x = @battler.screen_x
      @display_y = @battler.screen_y
      @destination_x = @display_x
      @destination_y = @display_y
    end

    # Setup Sprite
    self.src_rect.set(@width * @frame, @height * @pose, @width, @height)
    self.mirror = @battler.is_a?(Game_Enemy) unless @started

    # Position Sprite
    self.x = @display_x
    self.y = @display_y
    self.z = @display_y
    self.ox = @width / 2
    self.oy = @height

    # Setup Animation
    time = Graphics.frame_count / (Graphics.frame_rate / @speed)
    if @last_time < time
      @frame = (@frame + 3) % @frames
      if @frame == 0 or @reload
        if @freeze
          @frame = @frames - 3
          return
        end
        @pose = state
      end
    end
    @last_time = time

    # Move It
    move if moving

    # Finish Up
    @started = true
  end
  #--------------------------------------------------------------------------
  # * Current State
  #--------------------------------------------------------------------------
  def state
    # Damage State
    if [nil,{}].include?(@battler.damage)
      # Battler Fine
      @state = 0
      # Battler Dead
      @state = 2 if @battler.dead?
    end
    # Guarding State
    @state = 3 if @battler.guarding?
    # Moving State
    if moving
      # Battler Moving Left
      @state = 4 if moving.eql?(0)
      # Battler Moving Right
      @state = 5 if moving.eql?(1)
    end
    # Return State
    return @state
  end
  #--------------------------------------------------------------------------
  # * Move
  #--------------------------------------------------------------------------
  def move
    time = Graphics.frame_count / (Graphics.frame_rate.to_f / (@speed * 3))
    if @last_move_time < time

      # Pause for Animation
      return if @pose != state

      # Phasing
      if @phasing
        d1 = (@display_x - @original_x).abs
        d2 = (@display_y - @original_y).abs
        d3 = (@display_x - @destination_x).abs
        d4 = (@display_y - @destination_y).abs
        self.opacity = [255 + ([d1 + d2, d3 + d4].min * 1.75).to_i, 0].max
      end

      # Calculate Difference
      difference_x = (@display_x - @destination_x).abs
      difference_y = (@display_y - @destination_y).abs

      # Done? Reset, Stop
      if [difference_x, difference_y].max.between?(0, 8)
        @display_x = @destination_x
        @display_y = @destination_y
        @pose = state
        return
      end

      # Calculate Movement Increments
      increment_x = increment_y = 1
      if difference_x < difference_y
        increment_x = 1.0 / (difference_y.to_f / difference_x)
      elsif difference_y < difference_x
        increment_y = 1.0 / (difference_x.to_f / difference_y)
      end
     
      # Calculate Movement Speed
      if @calculate_speed
        total = 0; $game_party.actors.each{ |actor| total += actor.agi }
        speed = @battler.agi.to_f / (total / $game_party.actors.size)
        increment_x *= speed
        increment_y *= speed
      end
     
      # Multiply and Move
      multiplier_x = (@destination_x - @display_x > 0 ? 8 : -8)
      multiplier_y = (@destination_y - @display_y > 0 ? 8 : -8)
      @display_x += (increment_x * multiplier_x).to_i
      @display_y += (increment_y * multiplier_y).to_i
    end
    @last_move_time = time
  end
  #--------------------------------------------------------------------------
  # * Set Movement
  #--------------------------------------------------------------------------
  def setmove(destination_x, destination_y)
    unless (@battler.is_a?(Game_Enemy) and @stationary_enemies) or
          (@battler.is_a?(Game_Actor) and @stationary_actors)
      @original_x = @display_x
      @original_y = @display_y
      @destination_x = destination_x
      @destination_y = destination_y
    end
  end
  #--------------------------------------------------------------------------
  # * Movement Check
  #--------------------------------------------------------------------------
  def moving
    if (@display_x != @destination_x and @display_y != @destination_y)
      return (@display_x > @destination_x ? 0 : 1)
    end
  end
  #--------------------------------------------------------------------------
  # * Set Pose
  #--------------------------------------------------------------------------
  def pose=(pose)
    @pose = pose
    @frame = 0
  end
  #--------------------------------------------------------------------------
  # * Freeze
  #--------------------------------------------------------------------------
  def freeze
    @freeze = true
  end
  #--------------------------------------------------------------------------
  # * Fallen Pose
  #--------------------------------------------------------------------------
  def collapse
    return
  end
end

#==============================================================================
# ** Game_Actor
#==============================================================================

class Game_Actor
  #--------------------------------------------------------------------------
  # * Actor X Coordinate
  #--------------------------------------------------------------------------
  def screen_x
    if self.index != nil
      return self.index * 350 + 450
    else
      return 0
    end
  end
  #--------------------------------------------------------------------------
  # * Actor Y Coordinate
  #--------------------------------------------------------------------------
  def screen_y
    return self.index * 25 + 240
  end
  #--------------------------------------------------------------------------
  # * Actor Z Coordinate
  #--------------------------------------------------------------------------
  def screen_z
    return screen_y
  end
end

#==============================================================================
# ** Scene_Battle
#==============================================================================

class Scene_Battle

  #--------------------------------------------------------------------------
  # * Action Animation, Movement
  #--------------------------------------------------------------------------
  alias cbs_update_phase4_step3 update_phase4_step3
  def update_phase4_step3(battler = @active_battler)
    @rtab = !@target_battlers
    target = (@rtab ? battler.target : @target_battlers)[0]
    @moved = {} unless @moved
    return if @spriteset.battler(battler).moving
    case battler.current_action.kind
    when 0 # Attack
      if not (@moved[battler] or battler.guarding?)
        offset = (battler.is_a?(Game_Actor) ? 45 : -450)
        @spriteset.battler(battler).setmove(target.screen_x + offset, target.screen_y)
        @moved[battler] = true
        return
      elsif not battler.guarding?
        @spriteset.battler(battler).pose = 6 + rand(2)
        @spriteset.battler(battler).setmove(battler.screen_x, battler.screen_y)
      end
    when 1 # Skill
      @spriteset.battler(battler).pose = 8
    when 2 # Item
      @spriteset.battler(battler).pose = 8
    end
    @moved[battler] = false
    @rtab ? cbs_update_phase4_step3(battler) : cbs_update_phase4_step3
  end
  #--------------------------------------------------------------------------
  # * Hit Animation
  #--------------------------------------------------------------------------
  alias cbs_update_phase4_step4 update_phase4_step4
  def update_phase4_step4(battler = @active_battler)
    for target in (@rtab ? battler.target : @target_battlers)
      damage = (@rtab ? target.damage[battler] : target.damage)
      if damage.is_a?(Numeric) and damage > 0
        @spriteset.battler(target).pose = 1
      end
    end
    @rtab ? cbs_update_phase4_step4(battler) : cbs_update_phase4_step4
  end
  #--------------------------------------------------------------------------
  # * Victory Animation
  #--------------------------------------------------------------------------
  alias cbs_start_phase5 start_phase5
  def start_phase5
    for actor in $game_party.actors
      return if @spriteset.battler(actor).moving
    end
    for actor in $game_party.actors
      unless actor.dead?
        @spriteset.battler(actor).pose = 9
        @spriteset.battler(actor).freeze
      end
    end
    cbs_start_phase5
  end
  #--------------------------------------------------------------------------
  # * Change Arrow Viewport
  #--------------------------------------------------------------------------
  alias cbs_start_enemy_select start_enemy_select
  def start_enemy_select
    cbs_start_enemy_select
    @enemy_arrow.dispose
    @enemy_arrow = Arrow_Enemy.new(@spriteset.viewport2)
    @enemy_arrow.help_window = @help_window
  end
end

#==============================================================================
# ** Spriteset_Battle
#==============================================================================

class Spriteset_Battle
  #--------------------------------------------------------------------------
  # * Change Enemy Viewport
  #--------------------------------------------------------------------------
  alias cbs_initialize initialize
  def initialize
    cbs_initialize
    @enemy_sprites = []
    for enemy in $game_troop.enemies.reverse
      @enemy_sprites.push(Sprite_Battler.new(@viewport2, enemy))
    end
  end
  #--------------------------------------------------------------------------
  # * Find Sprite From Battler Handle
  #--------------------------------------------------------------------------
  def battler(handle)
    for sprite in @actor_sprites + @enemy_sprites
      return sprite if sprite.battler == handle
    end
    return false
  end
end

#==============================================================================
# ** Arrow_Base
#==============================================================================

class Arrow_Base < Sprite
  #--------------------------------------------------------------------------
  # * Reposition Arrows
  #--------------------------------------------------------------------------
  alias cbs_initialize initialize
  def initialize(viewport)
    cbs_initialize(viewport)
    self.ox = 14 # 32
    self.oy = 10 # 40
  end
end
end
Revenir en haut Aller en bas
Roshi
Modérateur
Modérateur
Roshi


Masculin Nombre de messages : 215
Age : 42
Localisation : Tourlaville(50)
Emploi : précaire
Loisirs : beaucoup trop
Date d'inscription : 17/06/2006

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyJeu 25 Jan - 19:56

J'vais voir ca se w-e, pour le moment je suis sur autre chose
Revenir en haut Aller en bas
freyja

freyja


Nombre de messages : 19
Date d'inscription : 24/01/2007

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptyJeu 25 Jan - 20:07

ok pas de probleme merci beaucoup
Revenir en haut Aller en bas
freyja

freyja


Nombre de messages : 19
Date d'inscription : 24/01/2007

Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] EmptySam 27 Jan - 18:18

c'est bon j'ai reussi tout seul XD
Revenir en haut Aller en bas
Contenu sponsorisé





Nouvelle interface de choix dans un combat [resolu] Empty
MessageSujet: Re: Nouvelle interface de choix dans un combat [resolu]   Nouvelle interface de choix dans un combat [resolu] Empty

Revenir en haut Aller en bas
 
Nouvelle interface de choix dans un combat [resolu]
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Option de choix du nom des personnages ?
» Panneau derriere les personnage en combat

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Saleth Empire :: RPG Maker XP ::  RPG Maker XP : Support :: Entraide-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser