¡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 XP] HUD de DKNINJA el Sáb Abr 30, 2011 2:13 am

~Doku


Introducción
Hola a todos makeros Ópalo Contento Hoy vengo a postear un script creado 100% por mi Ópalo Contento Después de pasarme toda la noche y casi todo este día estudiando por fin lo hice, no es gran cosa pero le puede interesar a uno que otro por ahí.

Nombre:

HUD de DKNINJA (no se me ocurrió algo mejor xD)

Autor:

DKNINJA obvio xD

Explicación

Este script muestra una ventana en la parte superior izquierda del mapa que contiene: gráfico de personaje, nivel, PV y PM con barras / números y el estado.

Imágenes:

Spoiler:

(El fondo depende del skin que usen)

Script:
Código:
#========================================================================#
# HUD de DKNINJA (RPG Maker XP)
# Autor: DKNINJA
# Versión: 1.0
#========================================================================#
class Scene_Map
  def main
    @DKNINJA = Window_prueba.new
    @spriteset = Spriteset_Map.new
    @message_window = Window_Message.new
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @spriteset.dispose
    @DKNINJA.dispose
    @message_window.dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
  end
  class Window_prueba < Window_Base
    def initialize
    super(0, 0, 135, 145)
    self.contents = Bitmap.new(width - 32, height - 32) 
    refresh
  end
  def refresh
    self.contents.clear
    self.text_color(3)
    self.draw_actor_name($game_party.actors[0], 40, 0)
    self.contents.font.color = normal_color
self.draw_actor_level($game_party.actors[0], 40, 20)
self.draw_actor_hp($game_party.actors[0], 0, 45, width = 100)
self.draw_actor_graphic($game_party.actors[0], 10, 45)
self.draw_actor_sp($game_party.actors[0], 0, 65, width = 100)
self.draw_actor_state($game_party.actors[0], 0, 85, width = 100)
end   
end
end
class Font
  alias font_fix_initialize initialize
  def initialize
    font_fix_initialize
    self.name = "Georgia"
    self.size = 20
  end
end
class Game_Actor < Game_Battler
  def now_exp
    return @exp - @exp_list[@level]
  end
  def next_exp
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  end
end
class Window_Base < Window 
  def draw_slant_bar(x, y, min, max, width = 152, height = 6,
      bar_color = Color.new(150, 0, 0, 255),
      end_color = Color.new(255, 255, 60, 255))
    for i in 0..height
      self.contents.fill_rect(x + i, y + height - i, width + 1, 1, Color.new(50, 50, 50, 255))
    end
    for i in 1..(height - 1)
      r = 100 * (height - i) / height + 0 * i / height
      g = 100 * (height - i) / height + 0 * i / height
      b = 100 * (height - i) / height + 0 * i / height
      a = 255 * (height - i) / height + 255 * i / height
      self.contents.fill_rect(x + i, y + height - i, width, 1, Color.new(r, b, g, a))
    end
    for i in 1..( (min.to_f / max.to_f) * width - 1)
      for j in 1..(height - 1)
        r = bar_color.red * (width - i) / width + end_color.red * i / width
        g = bar_color.green * (width - i) / width + end_color.green * i / width
        b = bar_color.blue * (width - i) / width + end_color.blue * i / width
        a = bar_color.alpha * (width - i) / width + end_color.alpha * i / width
        self.contents.fill_rect(x + i + j, y + height - j, 1, 1, Color.new(r, g, b, a))
      end
    end
  end
  alias :draw_actor_hp_hpsp :draw_actor_hp
  def draw_actor_hp(actor, x, y, width = 144) 
    draw_slant_bar(x, y + 12, actor.hp, actor.maxhp, width, 6,
      bar_color = Color.new(150, 0, 0, 255),
      end_color = Color.new(255, 255, 60, 255))
    draw_actor_hp_hpsp(actor, x, y, width)
  end
  alias :draw_actor_sp_hpsp :draw_actor_sp
  def draw_actor_sp(actor, x, y, width = 144)
    draw_slant_bar(x, y + 12, actor.sp, actor.maxsp, width, 6,
      bar_color = Color.new(0, 0, 155, 255),
      end_color = Color.new(255, 255, 255, 255))
    draw_actor_sp_hpsp(actor, x, y, width)
  end
  alias raz_bars_base_exp draw_actor_exp 
  def draw_actor_exp(actor, x, y)
    if actor.level == 99
      draw_slant_bar(x, y + 18, 1, 1, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(0, 255, 0, 255))
    else
      draw_slant_bar(x, y + 18, actor.now_exp, actor.next_exp, 190, 6, bar_color = Color.new(0, 100, 0, 255), end_color = Color.new(255, 255, 255, 255))
    end
    raz_bars_base_exp(actor, x, y)
  end
  alias raz_bars_base_parameter draw_actor_parameter 
  def draw_actor_parameter(actor, x, y, type)
    case type
    when 0
      para_color1 = Color.new(100,0,0)
      para_color2 = Color.new(255,0,0)
      para_begin = actor.atk
    when 1
      para_color1 = Color.new(100,100,0)
      para_color2 = Color.new(255,255,0)
      para_begin = actor.pdef
    when 2
      para_color1 = Color.new(100,0,100)
      para_color2 = Color.new(255,0,255)
      para_begin = actor.mdef
    when 3
      para_color1 = Color.new(50,0,100)
      para_color2 = Color.new(50,0,255)
      para_begin = actor.str
    when 4
      para_color1 = Color.new(0,100,0)
      para_color2 = Color.new(0,255,0)
      para_begin = actor.dex
    when 5
      para_color1 = Color.new(50,0,50)
      para_color2 = Color.new(255,0,255)
      para_begin = actor.agi
    when 6
      para_color1 = Color.new(0,100,100)
      para_color2 = Color.new(0,255,255)
      para_begin = actor.int
    end
    draw_slant_bar(x, y + 18, para_begin, 999, 155, 4, bar_color = para_color1,
      end_color = para_color2)
    raz_bars_base_parameter(actor, x, y, type)
  end
  def draw_actor_atg(actor, x, y, width = 144, height = 6)
    if @at_gauge == nil
      @plus_x = 0
      @rate_x = 0
      @plus_y = 16
      @plus_width = 0
      @rate_width = 100
      @width = @plus_width + width * @rate_width / 100
      @height = 6
      @align1 = 0
      @align2 = 1
      @align3 = 0
      grade1 = 1
      grade2 = 0
      color1 = Color.new(0, 0, 0)
      color2 = Color.new(255, 255, 192)
      color3 = Color.new(0, 0, 0, 192)
      color4 = Color.new(0, 0, 64, 192)
      color5 = Color.new(0, 64, 80)
      color6 = Color.new(255, 255, 255)
      color7 = Color.new(80, 0, 0)
      color8 = Color.new(255, 255,255)
      color9 = Color.new(80, 64, 32)
      color10 = Color.new(255, 255, 255) #(240, 192, 96)
      color11 = Color.new(80, 0, 64)
      color12 = Color.new(255,255, 255)
      gauge_rect_at(@width, @height, @align3, color1, color2, color3, color4,
          color5, color6, color7, color8, color9, color10, color11, color12,
          grade1, grade2)
    end
    if actor.rtp == 0
      at = (width + @plus_width) * actor.atp * @rate_width / 10000
    else
      at = (width + @plus_width) * actor.rt * @rate_width / actor.rtp / 100
    end
    if at > width
      at = width
    end
    case @align1
    when 1
      x += (@rect_width - width) / 2
    when 2
      x += @rect_width - width
    end
    case @align2
    when 1
      y -= @height / 2
    when 2
      y -= @height
    end
    for i in 0..height
      self.contents.fill_rect(x + 1.5 + i, y + 12 + height - i, width - 2 , 3,
        Color.new(50, 50, 50, 255))
    end
    for i in 1..(height - 1)
      r = 100 * (height - i) / height + 0 * i / height
      g = 100 * (height - i) / height + 0 * i / height
      b = 100 * (height - i) / height + 0 * i / height
      a = 255 * (height - i) / height + 255 * i / height
      self.contents.fill_rect(x + 1.5 + i, y + 12 + height - i, width - 3, 3,
        Color.new(r, b, g, a))
    end
    if @align3 == 0
      rect_x = 0
    else
      x += @width - at - 1
      rect_x = @width - at - 1
    end
    if at == width
      for i in 0..height
        self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y -i +
        @plus_y, @at_gauge, Rect.new(rect_x, @height * 2, at, @height))
      end
    else
      if actor.rtp == 0
        for i in 0..height
          self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y- i +
            @plus_y, @at_gauge,Rect.new(rect_x, @height, at, @height))
        end
      else
        if actor.spell == true
          for i in 0..height
            self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y - i +
              @plus_y, @at_gauge, Rect.new(rect_x, @height * 3, at, @height))
          end
        else
          for i in 0..height             
            self.contents.blt(x + i + @plus_x + @width * @rate_x / 100, y - i +
              @plus_y, @at_gauge, Rect.new(rect_x, @height * 4, at, @height))
          end
        end
      end
    end
  end
end

-Instrucciones:

Pues solo copiar el script encima de 'Main'.

Si a alguien le da error o tiene dudas sobre el script que me avise por MP Ópalo Contento.
Bueno, es todo espero que les haya gustado.

Saludos.



Última edición por DKNINJA el Sáb Abr 30, 2011 2:39 am, editado 1 vez

#2 Re: [RPG Maker XP] HUD de DKNINJA el Sáb Abr 30, 2011 2:22 am

demyx09

avatar
esta muy bien! yo aun no se hacer eso jeje y tampoco se scripttar en xp aunque creo que es parecido al vx

te recomiendo ponerle los datos como introducción dentro del script.

pd: es tu primer script?

#3 Re: [RPG Maker XP] HUD de DKNINJA el Sáb Abr 30, 2011 2:26 am

~Doku


@demyx09 escribió:esta muy bien! yo aun no se hacer eso jeje y tampoco se scripttar en xp aunque creo que es parecido al vx

te recomiendo ponerle los datos como introducción dentro del script.

pd: es tu primer script?

Je je si es mi primer script, pero antes ya sabia scriptear un poco en el rpg maker vx, de ahí tome experiencia y mas aparte leí varios tutoriales xD. Es casi lo mismo que el vx.

En cuanto a la introducción se la agregare xD, mañana edito el post por que ahora estoy muy cansado.

Saludos^^

#4 Re: [RPG Maker XP] HUD de DKNINJA el Sáb Abr 30, 2011 7:06 am

D.A.C.

avatar
DKNINJA escribió:En cuanto a la introducción se la agregare xD, mañana edito el post por que ahora estoy muy cansado.
Le he añadido la información temporalmente por si alguien lo usa y después se pierde por la red sin conocer el autor del script. ¡Muy buen aporte, DKNINJA! Enhorabuena por tu trabajo con el scripting. [+30 Makedas]




Si quieres verlo, haz click aquí.

#5 Re: [RPG Maker XP] HUD de DKNINJA el Sáb Abr 30, 2011 5:33 pm

~Doku


@D.A.C. escribió:Le he añadido la información temporalmente por si alguien lo usa y después se pierde por la red sin conocer el autor del script. ¡Muy buen aporte, DKNINJA! Enhorabuena por tu trabajo con el scripting. [+30 Makedas]

Quedo bien la información que pusiste se quedara permanentemente Ópalo Contento.

Gracias por las makedas Ópalo Sonriente.

Saludos.

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.