Partagez
Aller en bas
avatar
UltimaSasuke
Membre

Nombre de messages : 88
Age : 23
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011

Post-it Ace Core Engine.

le Mer 28 Déc 2011 - 3:09
Ce script est mon alléluia!
Il était sortie le le 1er du mois, mais après quelques mises à jour il est de plus en plus sympa!

Alors c'est quoi la Ace Core Engine :

- Des correctifs
- Des nouvelles fonctionnalités

En résumé c'est un Add-ons du moteur de RPG Maker VX Ace.

Vous trouverez toutes les instructions dans le script, ainsi qu'un récapitulatif des nouvelle fonctionnalités et des bugs résolu.



Code:
#==============================================================================
#
# ▼ Yanfly Engine Ace - Ace Core Engine v1.06
# -- Dérnière mise à jour: 2011.12.26
# -- Niveau: Easy, Normal
# -- Requière: n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-CoreEngine"] = true

#==============================================================================
# ▼ Mise à Jour
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.26 - New Bugfix: When using substitute, allies will no longer take
#              place of low HP allies for friendly skills.
# 2011.12.20 - New Bugfix: Force Action no longer cancels out an actor's queue.
#              Credits to Yami for finding and making the fix for!
#              Switch added for those who want removed forced action battlers.
# 2011.12.15 - Updated for better menu gauge appearance.
# 2011.12.10 - Bug Fixed: Right and bottom sides of the map would show
#              the left and top sides of the map.
#            - Bug Fixed: Viewport sizes didn't refresh from smaller maps.
# 2011.12.07 - New Bugfix: Dual weapon normal attacks will now play both
#              animations without one animation interrupting the other.
# 2011.12.04 - Updated certain GUI extensions for increased screen size.
#            - More efficient digit grouping method credits to TDS.
# 2011.12.01 - Started Script and Finished.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Ceci est le moteur de base pour Yanfly Engine Ace, pour RPG Maker VX Ace.
# Ce script apporte diverses modifications au moteur principal, il corrige des
# bugs et fait des mises à jour graphique (GUI) (Ram, etc...)
#
# -----------------------------------------------------------------------------
# Correction: Superposition d'Animation
# -----------------------------------------------------------------------------
# C'est le même bug que sous VX. Lorsque une animation sur tout l'écran est
# joué contre un groupe d'énnemis, l'animation est fais à plusieurs reprise.
# provoquant une vague de superposition de l'animation à l'écrans quand il y a
# beaucoup d'énnemis à l'écran. Ce correctif fait que l'animation ne se joue
# qu'une fois.
#
# -----------------------------------------------------------------------------
# Correction: Interution de l'Animation
# -----------------------------------------------------------------------------
# C'est un nouveau bug. Quand deux character attaque une cible unique, et que
# l'animation de la première dure trop longtemps. Alors il va interrompre ou
# stopper la deuxieme de se produire. Ce script va faire que la première
# animation se joue et puis continuer sur la seconde.
#
# -----------------------------------------------------------------------------
# Correction: Combat qui tourne de manière fixe
# -----------------------------------------------------------------------------
# C'est le même bug que sous VX. Pour ceux qui utilise le système de combat
# par défaut. Lorsque que le tour à commencé, l'ordre d'action des peronnages
# reste inchangé pour le reste du tour. Donc toutes modification de l'agilité
# sur un personnages ne fonctionera pas sur le tour présent, que se sois un
# don d'agilité ou un enlévement d'agilité. Ce correctif va permetre de donner
# l'agilité au personnage et l'afecter lors de l'action même.
#
# -----------------------------------------------------------------------------
# Correction: Action forcé fixé.
# -----------------------------------------------------------------------------
# Un nouveau bug. Quand un personnage est forcé de faire une action, une action
# de la file d'attente est retiré et le personnage perd alors sa place dans
# la file d'attente des actions. Ce correctif va faire reprendre la file
# d'attente la ou elle s'était arrêté.
#
# -----------------------------------------------------------------------------
# Correction: Dépassement des jauges
# -----------------------------------------------------------------------------
# C'est le même bug que sous VX. Quand certaines valeurs dépassait, les jauges
# pouvaient alors dépasser la limites pour lesquelles elles avaient été conçu.
# Ce correctif va empêcher toutes extension excessive des jauges.
#
# -----------------------------------------------------------------------------
# Correction: Déplacement rapide du menu avec L et R.
# -----------------------------------------------------------------------------
# Avant sur VX, vous pouviez faire défiler le menu en appuyant sur les boutons
# L et R (Q et W sur le clavier) pour faire défiler le menu rapidement. Ce
# Correctif va réactiver la possibilité de faire défiler le menu. Vous pouvez
# le désactiver dans le module si vous le souhaitez.
#
# -----------------------------------------------------------------------------
# Correction: Protection du soin
# -----------------------------------------------------------------------------
# Quand un acteur est en mode Protection, c'est à dire qu'il subi les attaques
# pour ses allié, quand ceux-ci ont peu de PDV. Il protége également ses alliés
# des compétences positive, comme le soin. Ce script permet de corriger se
# problème et permet qu'un allié attaque un autre allié.
#
# -----------------------------------------------------------------------------
# Correction: Taille de la résolution de l'écran
# -----------------------------------------------------------------------------
# L'écran peut désormé être redimensionnée jusqu'à 544x416 avec aisance et prend
# toujours en charge les cartes les cartes plus petites que 544x416. Les cartes
# plus petite serons centrée sans qu'elles partent dans tout les sens.
#
# -----------------------------------------------------------------------------
# Nouvelle fonctionalité: Ajustez la vitesse des animations
# -----------------------------------------------------------------------------
# RPG Maker VX Ace joue des animations à 15FPS par défaut. Vous pouvez accélérer
# les animations en changeant une simple constante dans le module.
#
# -----------------------------------------------------------------------------
# Nouvelle fonctionalité: Modifications Graphique
# -----------------------------------------------------------------------------
# Il y a beaucoup de modifications que vous pouvez apporté sur l'interface
# graphique. Ceci inclue la mise en contour des jauges, la couleur de la police
# et plus encore. Vous pouvez aussi changer la police par défaut ici.
#
# -----------------------------------------------------------------------------
# Nouvelle fonctionalité: Groupement des chiffres
# -----------------------------------------------------------------------------
# Cette nouvelle caractéristique permet de séparé les chiffres tout les 3
# chiffres par une virgule. Ainsi, un nombre comme 1234567 deviendra 1,234,567.
# Cela permetra à vos joueurs de lire les chiffres plus rapidement.
#
# Et c'est tout pour les corrections de bugs et de fonctionalités!
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Pour installer se script, ouvrez l'éditeur de script et insérez le en dessous
# de Matérial et au dessus de Main. N'oubliez pas de sauvegarder.
#
#==============================================================================
# ▼ Compatibilité
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# Se script est uniquement pour RPG Maker VX Ace, et il est peu probable qu'il
# Fonctionne sous RPG Maker VX.
#
#==============================================================================

module YEA
  module CORE
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Taille de la résolution de l'écran -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # RPG Maker VX Ace permet d'avoir plus de largeur et de hauteur pour vos
    # jeux. Redimensionnement de la largeur et de la hauteur serons:
    #
    #              Defaut  Redimentioné  Min Tiles Defaut  Min Tiles Nouveaux
    #  Largeur:      544        640            17                20
    #  Hauteur:      416        480            13                15
    #
    # * Note: La largeur maximal est de 640 tendis que la hauteur 480
    #        La largeur minimal est de 110 tendis que la hauteur 10
    #        Ce sont des limites établie pas le moteur de RPG Maker VX Ace.
    #
    # En redemensionnant, tout les menus pas défaut aurons leurs fenêtre ajustés
    # , mais des script qui ne sont pas fait par Yanfly peut ou ne peut pas se
    # régler correctement.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    RESIZE_WIDTH  = 640
    RESIZE_HEIGHT = 416
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Ajustement de la vitesse des animations. -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Par défaut, les animations joué dans les combat tourne à 15 FPS.
    # (frames per second = Images par seconde). Si vous voulez que ses animation
    # se joue plus vite, changez la valeur par rapport au tableau :
    #
    #  Valeur  Vitesse
    #    4      15 fps
    #    3      20 fps
    #    2      30 fps
    #    1      60 fps
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    ANIMATION_RATE = 3
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Groupement de chiffre -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Pour configurer ça, il suffi de mettre "true" pour que les chiffres sont
    # groupé par 3 et séparé d'une virgule (Exemple : 12345 = 12,345). Sinon
    # mettre "false" pour que cette fonctionalité soit désactivé.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    GROUP_DIGITS = true
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Configuration de la police -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Ajustez les différentes configuration de police de votre jeux ici.
    # Les défférentes confugurations sont éxpliqué ici.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    FONT_NAME = ["VL Gothic", "Verdana", "Arial", "Courier"]
    # Ceci configure les polices de votre jeux. Si la première police n'est pas
    # présente sur l'ordinateur du joueur, alors la deuxieme est prise, si elle
    # n'éxiste pas non plus c'est la troisième, etc...
    FONT_SIZE = 24      # Ajuste la taille de la police. Défaut : 24
    FONT_BOLD = false    # Met la police gras. Défaut: false
    FONT_ITALIC = false  # Met la police italique. Défaut: false
    FONT_SHADOW = false  # Donne une ombre à la police. Défaut: false
    FONT_OUTLINE = true  # Donne un contour à la police. Défaut: true
    FONT_COLOUR = Color.new(255, 255, 255, 255)  # Défaut: 255, 255, 255, 255
    FONT_OUTLINE_COLOUR = Color.new(0, 0, 0, 128) # Défaut:  0,  0,  0, 128
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Configuration des actions forcé -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Pour ceux qui voudraient permetre au jeux de retirer une action dans la
    # file d'attente des actions après une action forcé, utilisez l'interrupteur
    # ci-dessous. Sinon pour ne pas utiliser l'option mettre 0 en ID.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    FORCED_ACTION_REMOVE_SWITCH = 0
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Configuration de l'apparence des jauges -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Vous pouvez modifier l'aparence de vos gauges dans le jeux ici. Vous
    # pouvez définir un contour, c'est possible. Vous pouvez ajuster la hauteur
    # aussi.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    GAUGE_OUTLINE = true
    GAUGE_HEIGHT = 12
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Déplacement rapide du menu avec L et R -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Sur RPG Maker VX, vous pouviez vous déplacer rapidement dans les menus
    # avec L et R ( Touche Q et W du clavier). Depuis VX Ace ce n'est plus
    # possible. Mais maintenant vous pouvez réactivé cette fonctionalité ici.
    # Il suffi de mettre "true" pour activer cette option. Si vous ne voulez
    # pas l'activez, il suffi de mettre "false".
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    QUICK_SCROLLING = true
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Couleur des textes du système -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Parfois la couleur des textes du système sont ennuyeux, juste du orange
    # pour les PDVs, bleu pour les PMs et vert pour les TP (technique point).
    # Changez leurs valeurs ici. Chaque nombre correspond à l'indice de couleur
    # de l'image Window.png qui se trouve dans Graphics\System.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    COLOURS ={
    # :texte      => ID
      :normal    =>  0,  # Défaut:  0
      :system    => 16,  # Défaut: 16
      :crisis    => 17,  # Défaut: 17
      :knockout  => 18,  # Défaut: 18
      :gauge_back => 19,  # Défaut: 19
      :hp_gauge1  => 28,  # Défaut: 20
      :hp_gauge2  => 29,  # Défaut: 21
      :mp_gauge1  => 22,  # Défaut: 22
      :mp_gauge2  => 23,  # Défaut: 23
      :mp_cost    => 23,  # Défaut: 23
      :power_up  => 24,  # Défaut: 24
      :power_down => 25,  # Défaut: 25
      :tp_gauge1  => 10,  # Défaut: 28
      :tp_gauge2  =>  2,  # Défaut: 29
      :tp_cost    =>  2,  # Défaut: 29
    } # Ne pas changer ça.
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Options du texte du système -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Ici vous pouvez modifier la transparence pour dire que les objets sont
    # indisponible. Le % nécessaire pour être en mode "Critique" -Vie/PM faibles
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    TRANSPARENCY = 160  # Ajustez la transparence des objets indisponible
                        # Défaut: 160
    HP_CRISIS = 0.25    # Quand les PDVs sont concidéré critique. Défaut: 0.25
    MP_CRISIS = 0.25    # Quand les PMs sont concidéré critique. Défaut: 0.25
    ITEM_AMOUNT = "×%s"  # Le Préfixe utilisé pour indiqué le nombre d'élément.
                        # (Quantité)(Exemple : Potion x3 : Ici c'est le x%s)
   
  end # CORE
end # YEA

#==============================================================================
# ▼ Ne pas éditer la suitte sous peine d'entrer en coma et/ou mourrir dans
# d'atroce soufrance. L'ordinateur peut aussi être touché et endommagé gravemen
#==============================================================================

Graphics.resize_screen(YEA::CORE::RESIZE_WIDTH, YEA::CORE::RESIZE_HEIGHT)
Font.default_name = YEA::CORE::FONT_NAME
Font.default_size = YEA::CORE::FONT_SIZE
Font.default_bold = YEA::CORE::FONT_BOLD
Font.default_italic = YEA::CORE::FONT_ITALIC
Font.default_shadow = YEA::CORE::FONT_SHADOW
Font.default_outline = YEA::CORE::FONT_OUTLINE
Font.default_color = YEA::CORE::FONT_COLOUR
Font.default_out_color = YEA::CORE::FONT_OUTLINE_COLOUR

#==============================================================================
# ■ Numeric
#==============================================================================

class Numeric 
 
  #--------------------------------------------------------------------------
  # new method: group_digits
  #--------------------------------------------------------------------------
  def group
    return self.to_s unless YEA::CORE::GROUP_DIGITS
    self.to_s.gsub(/(\d)(?=\d{3}+(?:\.|$))(\d{3}\..*)?/,'\1,\2')
  end
 
end # Numeric

#==============================================================================
# ■ Switch
#==============================================================================

module Switch
 
  #--------------------------------------------------------------------------
  # self.class_show
  #--------------------------------------------------------------------------
  def self.forced_action_remove
    return false if YEA::CORE::FORCED_ACTION_REMOVE_SWITCH <= 0
    return $game_switches[YEA::CORE::FORCED_ACTION_REMOVE_SWITCH]
  end
 
end # Switch

#==============================================================================
# ■ BattleManager
#==============================================================================

module BattleManager
 
  #--------------------------------------------------------------------------
  # overwrite method: turn_start
  #--------------------------------------------------------------------------
  def self.turn_start
    @phase = :turn
    clear_actor
    $game_troop.increase_turn
    @performed_battlers = []
    make_action_orders
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: next_subject
  #--------------------------------------------------------------------------
  def self.next_subject
    @performed_battlers = [] if @performed_battlers.nil?
    loop do
      @action_battlers -= @performed_battlers
      battler = @action_battlers.shift
      return nil unless battler
      next unless battler.index && battler.alive?
      @performed_battlers.push(battler)
      return battler
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: force_action
  #--------------------------------------------------------------------------
  def self.force_action(battler)
    @action_forced = [] if @action_forced == nil
    @action_forced.push(battler)
    return unless Switch.forced_action_remove
    @action_battlers.delete(battler)
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: action_forced?
  #--------------------------------------------------------------------------
  def self.action_forced?
    @action_forced != nil
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: action_forced_battler
  #--------------------------------------------------------------------------
  def self.action_forced_battler
    @action_forced.shift
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: clear_action_force
  #--------------------------------------------------------------------------
  def self.clear_action_force
    @action_forced = nil if @action_forced.empty?
  end
 
end # BattleManager

#==============================================================================
# ■ Game_Battler
#==============================================================================

class Game_Battler < Game_BattlerBase
 
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :pseudo_ani_id
 
  #--------------------------------------------------------------------------
  # alias method: clear_sprite_effects
  #--------------------------------------------------------------------------
  alias game_battler_clear_sprite_effects_ace clear_sprite_effects
  def clear_sprite_effects
    game_battler_clear_sprite_effects_ace
    @pseudo_ani_id = 0
  end
 
end # Game_Battler

#==============================================================================
# ■ Game_Troop
#==============================================================================

class Game_Troop < Game_Unit
 
  #--------------------------------------------------------------------------
  # overwrite method: setup
  #--------------------------------------------------------------------------
  def setup(troop_id)
    clear
    @troop_id = troop_id
    @enemies = []
    troop.members.each do |member|
      next unless $data_enemies[member.enemy_id]
      enemy = Game_Enemy.new(@enemies.size, member.enemy_id)
      enemy.hide if member.hidden
      enemy.screen_x = member.x + (Graphics.width - 544)/2
      enemy.screen_y = member.y + (Graphics.height - 416)
      @enemies.push(enemy)
    end
    init_screen_tone
    make_unique_names
  end
 
end # Game_Troop

#==============================================================================
# ■ Game_Map
#==============================================================================

class Game_Map
 
  #--------------------------------------------------------------------------
  # overwrite method: scroll_down
  #--------------------------------------------------------------------------
  def scroll_down(distance)
    if loop_vertical?
      @display_y += distance
      @display_y %= @map.height * 256
      @parallax_y += distance
    else
      last_y = @display_y
      dh = Graphics.height > height * 32 ? height : screen_tile_y
      @display_y = [@display_y + distance, height - dh].min
      @parallax_y += @display_y - last_y
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: scroll_right
  #--------------------------------------------------------------------------
  def scroll_right(distance)
    if loop_horizontal?
      @display_x += distance
      @display_x %= @map.width * 256
      @parallax_x += distance
    else
      last_x = @display_x
      dw = Graphics.width > width * 32 ? width : screen_tile_x
      @display_x = [@display_x + distance, width - dw].min
      @parallax_x += @display_x - last_x
    end
  end
 
end # Game_Map

#==============================================================================
# ■ Game_Event
#==============================================================================

class Game_Event < Game_Character
 
  #--------------------------------------------------------------------------
  # overwrite method: near_the_screen?
  #--------------------------------------------------------------------------
  def near_the_screen?(dx = nil, dy = nil)
    dx = [Graphics.width, $game_map.width * 256].min/32 - 5 if dx.nil?
    dy = [Graphics.height, $game_map.height * 256].min/32 - 5 if dy.nil?
    ax = $game_map.adjust_x(@real_x) - Graphics.width / 2 / 32
    ay = $game_map.adjust_y(@real_y) - Graphics.height / 2 / 32
    ax >= -dx && ax <= dx && ay >= -dy && ay <= dy
  end
 
end # Game_Event

#==============================================================================
# ■ Sprite_Base
#==============================================================================

class Sprite_Base < Sprite
 
  #--------------------------------------------------------------------------
  # overwrite method: set_animation_rate
  #--------------------------------------------------------------------------
  def set_animation_rate
    @ani_rate = YEA::CORE::ANIMATION_RATE
  end
 
  #--------------------------------------------------------------------------
  # new method: start_pseudo_animation
  #--------------------------------------------------------------------------
  def start_pseudo_animation(animation, mirror = false)
    dispose_animation
    @animation = animation
    return if @animation.nil?
    @ani_mirror = mirror
    set_animation_rate
    @ani_duration = @animation.frame_max * @ani_rate + 1
    @ani_sprites = []
  end
 
end # Sprite_Base

#==============================================================================
# ■ Sprite_Battler
#==============================================================================

class Sprite_Battler < Sprite_Base
 
  #--------------------------------------------------------------------------
  # alias method: setup_new_animation
  #--------------------------------------------------------------------------
  alias sprite_battler_setup_new_animation_ace setup_new_animation
  def setup_new_animation
    sprite_battler_setup_new_animation_ace
    return if @battler.pseudo_ani_id <= 0
    animation = $data_animations[@battler.pseudo_ani_id]
    mirror = @battler.animation_mirror
    start_pseudo_animation(animation, mirror)
    @battler.pseudo_ani_id = 0
  end
 
end # Sprite_Battler

#==============================================================================
# ■ Spriteset_Map
#==============================================================================

class Spriteset_Map
 
  #--------------------------------------------------------------------------
  # overwrite method: create_viewports
  #--------------------------------------------------------------------------
  def create_viewports
    if Graphics.width > $game_map.width * 32 && !$game_map.loop_horizontal?
      dx = (Graphics.width - $game_map.width * 32) / 2
    else
      dx = 0
    end
    dw = [Graphics.width, $game_map.width * 32].min
    dw = Graphics.width if $game_map.loop_horizontal?
    if Graphics.height > $game_map.height * 32 && !$game_map.loop_vertical?
      dy = (Graphics.height - $game_map.height * 32) / 2
    else
      dy = 0
    end
    dh = [Graphics.height, $game_map.height * 32].min
    dh = Graphics.height if $game_map.loop_vertical?
    @viewport1 = Viewport.new(dx, dy, dw, dh)
    @viewport2 = Viewport.new(dx, dy, dw, dh)
    @viewport3 = Viewport.new(dx, dy, dw, dh)
    @viewport2.z = 50
    @viewport3.z = 100
  end
 
  #--------------------------------------------------------------------------
  # new method: update_viewport_sizes
  #--------------------------------------------------------------------------
  def update_viewport_sizes
    if Graphics.width > $game_map.width * 32 && !$game_map.loop_horizontal?
      dx = (Graphics.width - $game_map.width * 32) / 2
    else
      dx = 0
    end
    dw = [Graphics.width, $game_map.width * 32].min
    dw = Graphics.width if $game_map.loop_horizontal?
    if Graphics.height > $game_map.height * 32 && !$game_map.loop_vertical?
      dy = (Graphics.height - $game_map.height * 32) / 2
    else
      dy = 0
    end
    dh = [Graphics.height, $game_map.height * 32].min
    dh = Graphics.height if $game_map.loop_vertical?
    rect = Rect.new(dx, dy, dw, dh)
    for viewport in [@viewport1, @viewport2, @viewport3]
      viewport.rect = rect
    end
  end
 
end # Spriteset_Map

#==============================================================================
# ■ Window_Base
#==============================================================================

class Window_Base < Window
 
  #--------------------------------------------------------------------------
  # overwrite methods: color
  #--------------------------------------------------------------------------
  def normal_color;      text_color(YEA::CORE::COLOURS[:normal]);      end;
  def system_color;      text_color(YEA::CORE::COLOURS[:system]);      end;
  def crisis_color;      text_color(YEA::CORE::COLOURS[:crisis]);      end;
  def knockout_color;    text_color(YEA::CORE::COLOURS[:knockout]);    end;
  def gauge_back_color;  text_color(YEA::CORE::COLOURS[:gauge_back]);  end;
  def hp_gauge_color1;  text_color(YEA::CORE::COLOURS[:hp_gauge1]);  end;
  def hp_gauge_color2;  text_color(YEA::CORE::COLOURS[:hp_gauge2]);  end;
  def mp_gauge_color1;  text_color(YEA::CORE::COLOURS[:mp_gauge1]);  end;
  def mp_gauge_color2;  text_color(YEA::CORE::COLOURS[:mp_gauge2]);  end;
  def mp_cost_color;    text_color(YEA::CORE::COLOURS[:mp_cost]);    end;
  def power_up_color;    text_color(YEA::CORE::COLOURS[:power_up]);    end;
  def power_down_color;  text_color(YEA::CORE::COLOURS[:power_down]);  end;
  def tp_gauge_color1;  text_color(YEA::CORE::COLOURS[:tp_gauge1]);  end;
  def tp_gauge_color2;  text_color(YEA::CORE::COLOURS[:tp_gauge2]);  end;
  def tp_cost_color;    text_color(YEA::CORE::COLOURS[:tp_cost]);    end;
 
  #--------------------------------------------------------------------------
  # overwrite method: translucent_alpha
  #--------------------------------------------------------------------------
  def translucent_alpha
    return YEA::CORE::TRANSPARENCY
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: hp_color
  #--------------------------------------------------------------------------
  def hp_color(actor)
    return knockout_color if actor.hp == 0
    return crisis_color if actor.hp < actor.mhp * YEA::CORE::HP_CRISIS
    return normal_color
  end
  #--------------------------------------------------------------------------
  # overwrite method: mp_color
  #--------------------------------------------------------------------------
  def mp_color(actor)
    return crisis_color if actor.mp < actor.mmp * YEA::CORE::MP_CRISIS
    return normal_color
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_gauge
  #--------------------------------------------------------------------------
  def draw_gauge(dx, dy, dw, rate, color1, color2)
    dw -= 2 if YEA::CORE::GAUGE_OUTLINE
    fill_w = [(dw * rate).to_i, dw].min
    gauge_h = YEA::CORE::GAUGE_HEIGHT
    gauge_y = dy + line_height - 2 - gauge_h
    if YEA::CORE::GAUGE_OUTLINE
      outline_colour = gauge_back_color
      outline_colour.alpha = translucent_alpha
      contents.fill_rect(dx, gauge_y-1, dw+2, gauge_h+2, outline_colour)
      dx += 1
    end
    contents.fill_rect(dx, gauge_y, dw, gauge_h, gauge_back_color)
    contents.gradient_fill_rect(dx, gauge_y, fill_w, gauge_h, color1, color2)
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_actor_level
  #--------------------------------------------------------------------------
  def draw_actor_level(actor, dx, dy)
    change_color(system_color)
    draw_text(dx, dy, 32, line_height, Vocab::level_a)
    change_color(normal_color)
    draw_text(dx + 32, dy, 24, line_height, actor.level.group, 2)
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_current_and_max_values
  #--------------------------------------------------------------------------
  def draw_current_and_max_values(dx, dy, dw, current, max, color1, color2)
    total = current.group + "/" + max.group
    if dw < text_size(total).width + text_size(Vocab.hp).width
      change_color(color1)
      draw_text(dx, dy, dw, line_height, current.group, 2)
    else
      xr = dx + text_size(Vocab.hp).width
      dw -= text_size(Vocab.hp).width
      change_color(color2)
      text = "/" + max.group
      draw_text(xr, dy, dw, line_height, text, 2)
      dw -= text_size(text).width
      change_color(color1)
      draw_text(xr, dy, dw, line_height, current.group, 2)
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_actor_tp
  #--------------------------------------------------------------------------
  def draw_actor_tp(actor, x, y, width = 124)
    draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
    change_color(system_color)
    draw_text(x, y, 30, line_height, Vocab::tp_a)
    change_color(tp_color(actor))
    draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i.group, 2)
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_actor_param
  #--------------------------------------------------------------------------
  def draw_actor_param(actor, x, y, param_id)
    change_color(system_color)
    draw_text(x, y, 120, line_height, Vocab::param(param_id))
    change_color(normal_color)
    draw_text(x + 120, y, 36, line_height, actor.param(param_id).group, 2)
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_currency_value
  #--------------------------------------------------------------------------
  def draw_currency_value(value, unit, x, y, width)
    cx = text_size(unit).width
    change_color(normal_color)
    draw_text(x, y, width - cx - 2, line_height, value.group, 2)
    change_color(system_color)
    draw_text(x, y, width, line_height, unit, 2)
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_actor_simple_status
  #--------------------------------------------------------------------------
  def draw_actor_simple_status(actor, dx, dy)
    draw_actor_name(actor, dx, dy)
    draw_actor_level(actor, dx, dy + line_height * 1)
    draw_actor_icons(actor, dx, dy + line_height * 2)
    dw = contents.width - dx - 124
    draw_actor_class(actor, dx + 120, dy, dw)
    draw_actor_hp(actor, dx + 120, dy + line_height * 1, dw)
    draw_actor_mp(actor, dx + 120, dy + line_height * 2, dw)
  end
 
end # Window_Base

#==============================================================================
# ■ Window_ItemList
#==============================================================================

class Window_ItemList < Window_Selectable
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_item_number
  #--------------------------------------------------------------------------
  def draw_item_number(rect, item)
    text = sprintf(YEA::CORE::ITEM_AMOUNT, $game_party.item_number(item).group)
    draw_text(rect, text, 2)
  end
 
end # Window_ItemList

#==============================================================================
# ■ Window_Selectable
#==============================================================================

class Window_Selectable < Window_Base
 
  #--------------------------------------------------------------------------
  # overwrite method: process_cursor_move
  #--------------------------------------------------------------------------
  if YEA::CORE::QUICK_SCROLLING
  def process_cursor_move
    return unless cursor_movable?
    last_index = @index
    cursor_down (Input.trigger?(:DOWN))  if Input.repeat?(:DOWN)
    cursor_up  (Input.trigger?(:UP))    if Input.repeat?(:UP)
    cursor_right(Input.trigger?(:RIGHT)) if Input.repeat?(:RIGHT)
    cursor_left (Input.trigger?(:LEFT))  if Input.repeat?(:LEFT)
    cursor_pagedown  if !handle?(:pagedown) && Input.repeat?(:R)
    cursor_pageup    if !handle?(:pageup)  && Input.repeat?(:L)
    Sound.play_cursor if @index != last_index
  end
  end # YEA::CORE::QUICK_SCROLLING
 
end # Window_Selectable

#==============================================================================
# ■ Window_Status
#==============================================================================

class Window_Status < Window_Selectable
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_exp_info
  #--------------------------------------------------------------------------
  def draw_exp_info(x, y)
    s1 = @actor.max_level? ? "-------" : @actor.exp
    s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp
    s_next = sprintf(Vocab::ExpNext, Vocab::level)
    change_color(system_color)
    draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal)
    draw_text(x, y + line_height * 2, 180, line_height, s_next)
    change_color(normal_color)
    s1 = s1.group if s1.is_a?(Integer)
    s2 = s2.group if s2.is_a?(Integer)
    draw_text(x, y + line_height * 1, 180, line_height, s1, 2)
    draw_text(x, y + line_height * 3, 180, line_height, s2, 2)
  end
 
end # Window_Status

#==============================================================================
# ■ Window_ShopBuy
#==============================================================================

class Window_ShopBuy < Window_Selectable
 
  #--------------------------------------------------------------------------
  # overwrite method: draw_item
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    rect = item_rect(index)
    draw_item_name(item, rect.x, rect.y, enable?(item))
    rect.width -= 4
    draw_text(rect, price(item).group, 2)
  end
 
end # Window_ShopBuy

#==============================================================================
# ■ Scene_Map
#==============================================================================

class Scene_Map < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias method: post_transfer
  #--------------------------------------------------------------------------
  alias scene_map_post_transfer_ace post_transfer
  def post_transfer
    @spriteset.update_viewport_sizes
    scene_map_post_transfer_ace
  end
 
end # Scene_Map

#==============================================================================
# ■ Scene_Battle
#==============================================================================

class Scene_Battle < Scene_Base
 
  #--------------------------------------------------------------------------
  # alias method: check_substitute
  #--------------------------------------------------------------------------
  alias scene_battle_check_substitute_ace check_substitute
  def check_substitute(target, item)
    return false if @subject.actor? == target.actor?
    return scene_battle_check_substitute_ace(target, item)
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: process_forced_action
  #--------------------------------------------------------------------------
  def process_forced_action
    while BattleManager.action_forced?
      last_subject = @subject
      @subject = BattleManager.action_forced_battler
      process_action
      @subject = last_subject
      BattleManager.clear_action_force
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: show_attack_animation
  #--------------------------------------------------------------------------
  def show_attack_animation(targets)
    if @subject.actor?
      show_normal_animation(targets, @subject.atk_animation_id1, false)
      wait_for_animation
      show_normal_animation(targets, @subject.atk_animation_id2, true)
    else
      Sound.play_enemy_attack
      abs_wait_short
    end
  end
 
  #--------------------------------------------------------------------------
  # overwrite method: show_normal_animation
  #--------------------------------------------------------------------------
  def show_normal_animation(targets, animation_id, mirror = false)
    animation = $data_animations[animation_id]
    return if animation.nil?
    ani_check = false
    targets.each do |target|
      if ani_check && target.animation_id <= 0
        target.pseudo_ani_id = animation_id
      else
        target.animation_id = animation_id
      end
      target.animation_mirror = mirror
      abs_wait_short unless animation.to_screen?
      ani_check = true if animation.to_screen?
    end
    abs_wait_short if animation.to_screen?
  end
 
end # Scene_Battle

#==============================================================================
#
# ▼ Fin du script
#
#==============================================================================

Amusez vous bien! Et comme d’habitudes désolé pour mes fautes.
avatar
toshio03
Membre

Nombre de messages : 9
Distinction : aucune
Date d'inscription : 26/12/2011

Post-it Re: Ace Core Engine.

le Mer 28 Déc 2011 - 11:10
Très bon et très utile pour ne pas dire indispensable ?
avatar
Urah
Membre

Nombre de messages : 94
Age : 31
Distinction : aucune
Date d'inscription : 03/07/2008

Post-it Re: Ace Core Engine.

le Mer 28 Déc 2011 - 12:17
merci beaucoup Very Happy
avatar
Gummy
Staffeux retraité

Nombre de messages : 2666
Age : 27
Localisation : Belgique
Distinction : Modérateur imprévisible

Papy Lolo' [Nabots Nimousse]


Date d'inscription : 27/01/2008

Post-it Re: Ace Core Engine.

le Mer 28 Déc 2011 - 12:27
Vu ce qu'il corrige, je le trouve même carrément indispensable... J'épingle le topic, et 1 pt de participation.
avatar
UltimaSasuke
Membre

Nombre de messages : 88
Age : 23
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011

Post-it Re: Ace Core Engine.

le Mer 28 Déc 2011 - 20:10
Ce que je trouve super c'est qu'il retires des lags, et agrandie l'écran en largeur, enfin toutes les options et correctifs sont super!
avatar
Asagi
Membre

Nombre de messages : 290
Age : 24
Localisation : France
Distinction : aucune
Date d'inscription : 30/01/2011

Post-it Re: Ace Core Engine.

le Sam 18 Fév 2012 - 14:20
Je comprend pas pourquoi quand je met ce script a la fin d'un combat il me dis erreur a la ligne 77 ^^'
avatar
UltimaSasuke
Membre

Nombre de messages : 88
Age : 23
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011

Post-it Re: Ace Core Engine.

le Sam 18 Fév 2012 - 15:47
Change l'ordre des scripts ? Quelles autres scripts utilise tu?
avatar
LightNox
Membre

Nombre de messages : 1755
Age : 27
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008

Post-it Re: Ace Core Engine.

le Sam 18 Fév 2012 - 20:48
c'est vraiment super comme script ^^

merci du partage Wink
avatar
DarkHeroe
Membre

Nombre de messages : 190
Age : 18
Localisation : Reunion Island
Distinction : aucune
Date d'inscription : 17/12/2011

Post-it Re: Ace Core Engine.

le Dim 19 Fév 2012 - 9:18
Merci pour se script!
Il est pas mal du tout!
avatar
Asagi
Membre

Nombre de messages : 290
Age : 24
Localisation : France
Distinction : aucune
Date d'inscription : 30/01/2011

Post-it Re: Ace Core Engine.

le Dim 19 Fév 2012 - 14:17
EDIT: le probleme et regler c'est tout simplement par ce que je mettais le script en dessous de tout les autre, je les mis en premier et ça marche =)
avatar
zido
Membre

Nombre de messages : 67
Age : 22
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012

Post-it Re: Ace Core Engine.

le Sam 2 Juin 2012 - 19:14
C'est normal qu'après avoir installé ce script les lettres associées aux monstres en combat deviennent des [?]
scratch
avatar
Chaos17
Membre

Nombre de messages : 222
Localisation : France
Distinction : aucune
Date d'inscription : 11/04/2012
http://blogofchaos17.wordpress.com/

Post-it Re: Ace Core Engine.

le Sam 2 Juin 2012 - 21:16
Non, je n'ai ce problème.
avatar
zido
Membre

Nombre de messages : 67
Age : 22
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012

Post-it Re: Ace Core Engine.

le Sam 2 Juin 2012 - 21:52
Quelqu'un aurait une solution ou une idée d'où ça pourrait venir? Smile
avatar
cator. lol
Membre

Nombre de messages : 164
Age : 27
Localisation : Cherche pas, tu me trouveras jamais.
Distinction : Zoophile à ses heures perdues, au torse poilu et qui chante YMCA
Frère de poils!
[Mist' Wink]
Maître du plantage d'arbres à femme : pour la sauvegarde des arbres et des petits oiseaux, vive la nature. [Balb' Wink]
crefadet le violeur du bois [Balb' ]
Date d'inscription : 02/02/2012

Post-it Re: Ace Core Engine.

le Sam 2 Juin 2012 - 22:05
Incompatibilité quelconque ?
avatar
zido
Membre

Nombre de messages : 67
Age : 22
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012

Post-it Re: Ace Core Engine.

le Sam 2 Juin 2012 - 22:10
Je pense que ça vienne du système de classes qui est du même auteur... Peut être une incompatibilité avec le script "Additional equipment slots"?
avatar
Chaos17
Membre

Nombre de messages : 222
Localisation : France
Distinction : aucune
Date d'inscription : 11/04/2012
http://blogofchaos17.wordpress.com/

Post-it Re: Ace Core Engine.

le Sam 2 Juin 2012 - 22:47
As-tu testé le script dans un nouveau projet ?
avatar
zido
Membre

Nombre de messages : 67
Age : 22
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012

Post-it Re: Ace Core Engine.

le Dim 3 Juin 2012 - 13:54
J'ai testé le script dans un projet vierge et j'ai le même problème... Sad
Edit: J'ai aussi le même problème avec Window_Help qui me met un [?] à chaque retour à la ligne et Scene_Name qui me remplace toutes les lettres par des [?]...
avatar
Chaos17
Membre

Nombre de messages : 222
Localisation : France
Distinction : aucune
Date d'inscription : 11/04/2012
http://blogofchaos17.wordpress.com/

Post-it Re: Ace Core Engine.

le Dim 3 Juin 2012 - 19:42
Essaie de copier à partir de ce lien, ouvre le fichier avec ton bloc note.
Je l'utilise et je n'ai pas de problème.

http://yanflychannel.wordpress.com/rmvxa/core-scripts/ace-core-engine/
avatar
zido
Membre

Nombre de messages : 67
Age : 22
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012

Post-it Re: Ace Core Engine.

le Lun 4 Juin 2012 - 17:27
J'ai réinstallé le script et ça a marché! Very Happy
Par la même occasion je me suis rendu compte que le problème venait de la police d'ecriture...

Merci Very Happy
Contenu sponsorisé

Post-it Re: Ace Core Engine.

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum