¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [RPG Maker VX] Personajes con más frames el Vie Abr 29, 2011 4:09 pm

D.A.C.

avatar
Script: Personajes con más frames
Autor: Modern Algebra.
Versión: 1.0

Este script permite aumentar la cantidad de frames que se usan en el RPG Maker VX (3) para crear animaciones más fluídas. Hay una versión para RPG Maker XP, aunque no estoy seguro de si es compatible con esta optimización.

Script:
Código:
#===================================================================
#  Personajes con más frames (1.0)
#  Autor: Modern Algebra (rmrk.net)
#  Traductor: Feragur / Revisado por D.A.C.
#  Optimización: Shurshok
#===================================================================
#  Instrucciones:
#    Coloca este script sobre 'Main' en el editor. Para añadir un chara con frames extra, simplemente cámbiale
#    el nombre de la imagen:
#          !$%[número de frames](Nombre de la imagen)
#
#    Ejemplo: !$%[4]001-Fighter01
#    Eso hará que el gráfico 001-Fighter01 tenga 4 frames.
#===================================================================
# ** Game_Character
#===================================================================
#  Resumen de cambios:
#    aliased methods - update_animation
#    new class variables - height divisor, width divisor
#    new methods - calculate_divisors
#===================================================================
class Game_Character
#===================================================================
# * Public Instance Variables
#===================================================================
attr_reader :height_divisor # The height of a single frame
attr_reader :width_divisor # number of frames in the x direction
#===================================================================
# * Calculate Divisors
#===================================================================
# Sets up the instance variables required
#===================================================================
def calculate_divisors
return unless @previous_character.nil? || @previous_character != @character_name
bitmap = Cache.character (@character_name)
sign = @character_name[/^[!$].[%][d*]/]
if !sign.nil? && sign.size > 5
@original_pattern = 0
@width_divisor = sign[4, sign.size - 5].to_i
@height_divisor = 4
elsif !sign.nil? && sign.include? ('$')
@width_divisor = 3
@height_divisor = 4
else
@width_divisor = 12
@height_divisor = 8
end
@previous_character = @character_name
end
#===================================================================
# * Update Animation
#===================================================================
# Change the hard coded values to ones dependent on character graphic format
#===================================================================
alias ma_extra_movement_frames_anim_upd update_animation
def update_animation
saved_anime_count = @anime_count
pattern_original = @pattern
speed = @move_speed + (dash? ? 1 : 0)
ma_extra_movement_frames_anim_upd
if (saved_anime_count > (18 - speed * 2)) && (@step_anime || (@stop_count <= 0))
@pattern = (pattern_original + 1) % @width_divisor
end
end
end
#===================================================================
# * Sprite Character
#===================================================================
# Summary of changes:
# aliased methods - update_src_rect, update_bitmap
#===================================================================
class Sprite_Character
#===================================================================
# * Update Src Rect
#===================================================================
# Interpret multiple movement frames: Changed pattern
#===================================================================
alias ma_extra_movement_frames_src_rect_upd update_src_rect
def update_src_rect
if @tile_id == 0
ma_extra_movement_frames_src_rect_upd
index = @character.character_index
pattern = @character.pattern < @character.width_divisor ? @character.pattern : 1
sx = (index % 4 * 3 + pattern) * @cw
sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
#===================================================================
# * Update Bitmap
#===================================================================
# Change hard coded values to ones dependent on character graphic
#===================================================================
alias ma_extra_movement_frames_bmp_upd update_bitmap
def update_bitmap
@character.calculate_divisors
saved_tile_id = @tile_id
saved_character_name = @character_name
saved_character_index = @character_index
ma_extra_movement_frames_bmp_upd
if saved_tile_id != @character.tile_id or
saved_character_name != @character.character_name or
saved_character_index != @character.character_index
unless @tile_id > 0
@cw = bitmap.width / @character.width_divisor
@ch = bitmap.height / @character.height_divisor
self.ox = @cw / 2
self.oy = @ch
end
end
end
end
#===================================================================
# ** Window Base
#===================================================================
# Summary of changes:
# overwritten methods - draw_character
#===================================================================
class Window_Base
#===================================================================
# * Draw Charater (overwritten for extra movement frames)
# character_name : the name of the character file
# character_index : the index of the character in the file
# x : the x position to draw
# y : the y position to draw
#===================================================================
def draw_character(character_name, character_index, x, y)
return if character_name == nil
bitmap = Cache.character(character_name)
sign = character_name[/^[!$].[%][d*]/]
if !sign.nil? && sign.size > 5
cw = bitmap.width / sign[4, sign.size - 5].to_i
ch = bitmap.height / 4
elsif sign != nil and sign.include?('$')
cw = bitmap.width / 3
ch = bitmap.height / 4
else
cw = bitmap.width / 12
ch = bitmap.height / 8
end
n = character_index
src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
end
end

Instrucciones:
  1. Copiar el script encima de 'Main'.
  2. Renombrar la imagen con frames extra de la siguiente manera:
    !$%[Número de frames](nombre)
    Ejemplo:
    Si queremos usar una imagen modificada con 7 frames de movimiento que se llame 'actor1', pasará a llamarse de la siguiente manera: !$%[7]actor1.




Si quieres verlo, haz click aquí.

#2 Re: [RPG Maker VX] Personajes con más frames el Vie Abr 29, 2011 5:56 pm

demyx09

avatar
buen script ese modern algebra hace script fatales

gracias d.a.c

#3 Re: [RPG Maker VX] Personajes con más frames el Vie Abr 29, 2011 8:10 pm

orochii

avatar
Mm... creo que me interesa =D. Veré si le doy un buen uso.
Y por cierto, +1 a lo que dijo Demyx xDDD, ModernAlgebra es una de las deidades del panteón scriptístico =DDD.

xDDD,
Orochii Zouveleki

#4 Re: [RPG Maker VX] Personajes con más frames el Vie Mayo 20, 2011 10:10 pm

Xtream965


Y donde las saco

#5 Re: [RPG Maker VX] Personajes con más frames el Sáb Sep 29, 2012 3:43 pm

naidmen

avatar
Tu guia no me sirve, no explicas bien, hago lo que dices y nada, mira le puse así a la imagen !$%[4]actor1.png

#6 Re: [RPG Maker VX] Personajes con más frames el Sáb Sep 29, 2012 6:01 pm

Razor

avatar
¡Primeramente hola y bienvenido al foro!

Déjame decirte que has revivido un tema que no ha estado activo durante mas de 1 mes, por lo tanto has quebrantado las reglas, recuerda leerlas en este tema, cuando vuelvas a tener otra duda posteala como un nuevo tema en el foro respectivo, que seria soporte>ayuda, también, te aconsejaría ser mas detallista en tus problemas y ser mas cordial para pedir ayuda. Ópalo Sonriente

Ahora bien, te ayudare en tu problema, para lograrlo solo tienes que:

!$%[Número de frames](nombre)
Número de frames = Cuantos frames tiene la imagen en cuestión.
Nombre = Nombre de la imagen que tiene los frames anteriores, tiene que ser el nombre del archivo que este en la carpeta de animaciones de tu proyecto.

Eso es todo, cierro el tema.
Out.-





Todos mis aportes por Mediafire tienen contraseña, esa es: www.universomaker.net
Esto es para evitar plagio, asegúrense de copiar y pegar la contraseña.

Contenido patrocinado


Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.