- UltimaSasukeMembre
- Nombre de messages : 88
Age : 29
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Ace Core Engine.
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!
Vous trouverez toutes les instructions dans le script, ainsi qu'un récapitulatif des nouvelle fonctionnalités et des bugs résolu.
Amusez vous bien! Et comme d’habitudes désolé pour mes fautes.
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.
- 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.
- toshio03Membre
- Nombre de messages : 9
Distinction : aucune
Date d'inscription : 26/12/2011
Re: Ace Core Engine.
Mer 28 Déc 2011 - 11:10
Très bon et très utile pour ne pas dire indispensable ?
- UrahMembre
- Nombre de messages : 96
Age : 38
Distinction : aucune
Date d'inscription : 03/07/2008
Re: Ace Core Engine.
Mer 28 Déc 2011 - 12:17
merci beaucoup
- GummyStaffeux retraité
- Nombre de messages : 2666
Age : 33
Localisation : Belgique
Distinction : Modérateur imprévisible
Papy Lolo' [Nabots Nimousse]
Date d'inscription : 27/01/2008
Re: Ace Core Engine.
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.
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 29
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: Ace Core Engine.
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!
- AsagiMembre
- Nombre de messages : 290
Age : 30
Localisation : France
Distinction : aucune
Date d'inscription : 30/01/2011
Re: Ace Core Engine.
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 ^^'
- UltimaSasukeMembre
- Nombre de messages : 88
Age : 29
Localisation : France, 05
Distinction : aucune
Date d'inscription : 27/07/2011
Re: Ace Core Engine.
Sam 18 Fév 2012 - 15:47
Change l'ordre des scripts ? Quelles autres scripts utilise tu?
- LightNoxMembre
- Nombre de messages : 1759
Age : 34
Localisation : Chez Moi ^^
Date d'inscription : 10/04/2008
Re: Ace Core Engine.
Sam 18 Fév 2012 - 20:48
c'est vraiment super comme script ^^
merci du partage
merci du partage
- DarkHeroeMembre
- Nombre de messages : 190
Age : 24
Localisation : Reunion Island
Distinction : aucune
Date d'inscription : 17/12/2011
Re: Ace Core Engine.
Dim 19 Fév 2012 - 9:18
Merci pour se script!
Il est pas mal du tout!
Il est pas mal du tout!
- AsagiMembre
- Nombre de messages : 290
Age : 30
Localisation : France
Distinction : aucune
Date d'inscription : 30/01/2011
Re: Ace Core Engine.
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 =)
- zidoMembre
- Nombre de messages : 67
Age : 29
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012
Re: Ace Core Engine.
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 [?]
- zidoMembre
- Nombre de messages : 67
Age : 29
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012
Re: Ace Core Engine.
Sam 2 Juin 2012 - 21:52
Quelqu'un aurait une solution ou une idée d'où ça pourrait venir?
- cator. lolMembre
- Nombre de messages : 164
Age : 33
Localisation : Cherche pas, tu me trouveras jamais.
Distinction : Zoophile à ses heures perdues, au torse poilu et qui chante YMCA
Frère de poils!
[Mist' ]
Maître du plantage d'arbres à femme : pour la sauvegarde des arbres et des petits oiseaux, vive la nature. [Balb' ]
crefadet le violeur du bois [Balb' ]
Date d'inscription : 02/02/2012
Re: Ace Core Engine.
Sam 2 Juin 2012 - 22:05
Incompatibilité quelconque ?
- zidoMembre
- Nombre de messages : 67
Age : 29
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012
Re: Ace Core Engine.
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"?
- zidoMembre
- Nombre de messages : 67
Age : 29
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012
Re: Ace Core Engine.
Dim 3 Juin 2012 - 13:54
J'ai testé le script dans un projet vierge et j'ai le même problème...
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 [?]...
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 [?]...
Re: Ace Core Engine.
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/
Je l'utilise et je n'ai pas de problème.
http://yanflychannel.wordpress.com/rmvxa/core-scripts/ace-core-engine/
- zidoMembre
- Nombre de messages : 67
Age : 29
Localisation : France
Distinction : aucune
Date d'inscription : 19/05/2012
Re: Ace Core Engine.
Lun 4 Juin 2012 - 17:27
J'ai réinstallé le script et ça a marché!
Par la même occasion je me suis rendu compte que le problème venait de la police d'ecriture...
Merci
Par la même occasion je me suis rendu compte que le problème venait de la police d'ecriture...
Merci
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum