Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

MENSAJE EN PANTALLA

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP MENSAJE EN PANTALLA

Mensaje por SeralTek el 2018-08-08, 23:47

Hola, como dice el título necesito un script que mustre mensajes en una parte del mapa, pero que no haga falta darle a acepar, me explico,por ejemplo que pulsas un evento te diga 'No puedes hacer eso' en una la esquina derecha de la pantalla y desaparexa sola a los 3 segundos, y que se pueda seguir jugando mientra el mensja esta en la pantalla.
GRACIAS u_u
avatar
SeralTek
Iniciado
Iniciado

0/3

Créditos 22

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por Dariel Lopez el 2018-08-09, 02:23

Buenas SeralTek, mira no es por molestarte pero sería bueno que especificaras para que versión del Maker necesitas los scripts que pides porque ya es el segundo post que creas y no lo dices.
Si usas el Vx Ace newold acaba de crear un script que te puede sacar de este apuro pero si usas otra versión del Maker no sé si te sirva.
El script es este:
[line]=begin

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
                            INSTRUCCIONES
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

⏺️ Pegar el script encima del main
⏺️ Ahora podrás usar los siguientes comandos con el
comando llamar script de los eventos:



*** Añadir una imagen a la pantalla:

················································································
$GUI_PICTURES.add_picture(id, url, x, y, delay)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar la imagen y poder ocultarla / borrarla / mostrarla
    (las ids se pueden repetir)
   
url = Nombre de la imagen a mostrar entre " (Debe estar en la carpeta
      Graphics/Pictures de tu juego) Ejemplo: "miImagen"
     
x = Posición X de la pantalla donde se mostrará la imagen

y = Posición Y de la pantalla donde se mostrará la imagen

delay = Frames que pasará hasta que la imagen se oculte
        (Poner 0 si quieres que no se oculte nunca)
················································································




*** Añadir un icono de objeto, arma, armadura o skill a la pantalla

················································································
$GUI_PICTURES.add_item(id, item_type, item_ID, x, y, font,
show_name, show_icon, show_quantity, format, delay)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar el icono y poder ocultarlo / borrarlo / mostrarlo
    (las ids se pueden repetir)
   
item_type = El tipo de cosa a mostrar. Puede ser:
  0 => Mostrar Objeto
  1 => Mostrar arma
  2 => mostrar armadura
  3 => Mostrar skill
 
item_ID = ID en la base de datos para el item a mostrar

x = Posición X de la pantalla donde se mostrará el icono

y = Posición Y de la pantalla donde se mostrará el icono

font = Una fuente para usar en el texto. Dejar en nil para que use la fuente
por defecto (ver más abajo para crear una fuente)

show_name = Muestra el nombre del item (true = mostrar, false = no mostrar)

show_icon = Muestra el icono del item (true = mostrar, false = no mostrar)

show_quantity = Mostrar la cantidad que se posee del item
                (true = mostrar, false = no mostrar)
                (Solo funciona para objetos, armas y armaduras)
               
format = Cómo mostrar el texto. Se puede usar los siguientes comodines:
          Se cambia por la ID del item
          Se cambia por el nombre del item
          Se cambia por la cantidad del item
              (válido solo en objetos, armas y amrmaduras)
             
delay = Frames que pasará hasta que el item se oculte
        (Poner 0 si quieres que no se oculte nunca)

················································································




*** Añadir el nombre del mapa actual a la pantalla

················································································
$GUI_PICTURES.add_map_name(id, x, y, delay, font)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar el nombre y poder ocultarlo / borrarlo / mostrarlo
    (las ids se pueden repetir)
   
x = Posición X de la pantalla donde se mostrará el nombre del mapa

y = Posición Y de la pantalla donde se mostrará el nombre del mapa

delay = Frames que pasará hasta que el el nombre del mapa se oculte
        (Poner 0 si quieres que no se oculte nunca)
       
font = Una fuente para usar en el texto. Dejar en nil para que use la fuente
por defecto (ver más abajo para crear una fuente)
················································································




*** Añadir el oro actual a la pantalla

················································································
$GUI_PICTURES.add_gold(id, x, y, font, delay)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar el oro y poder ocultarlo / borrarlo / mostrarlo
    (las ids se pueden repetir)
   
x = Posición X de la pantalla donde se mostrará el oro

y = Posición Y de la pantalla donde se mostrará el oro

font = Una fuente para usar en el texto. Dejar en nil para que use la fuente
por defecto (ver más abajo para crear una fuente)

delay = Frames que pasará hasta que el oro se oculte
        (Poner 0 si quieres que no se oculte nunca)
················································································




*** Añadir el valor de una variable con texto descriptivo a la pantalla

················································································
$GUI_PICTURES.add_variable(id, variable_ID, x, y, format, font, delay)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar la variable y poder ocultarla / borrarla / mostrarla
    (las ids se pueden repetir)
   
variable_ID = La ID de la variable que cuyo valor quieras mostrar
   
x = Posición X de la pantalla donde se mostrará la variable

y = Posición Y de la pantalla donde se mostrará la variable

font = Una fuente para usar en el texto. Dejar en nil para que use la fuente
por defecto (ver más abajo para crear una fuente)

format = Cómo mostrar el valor de la variable:
         
Se cambia por el valor de la variable
          (Ejemplo: "Mi vaiable vale
")
         
delay = Frames que pasará hasta que la variable se oculte
        (Poner 0 si quieres que no se oculte nunca)

················································································




*** Cómo activar las cosas añadidas
················································································
$GUI_PICTURES.enable(id)

id = La id que usaste para crear el objeto. Si pones nil se activan
      todos los objetos, si no, se activará todo lo que tenga la id usada
················································································



*** Cómo desactivar las cosas añadidas
················································································
$GUI_PICTURES.disable(id)

id = La id que usaste para crear el objeto. Si pones nil se desactivan
      todos los objetos, si no, se desactivará todo lo que tenga la id usada
················································································


*** Cómo borrar las cosas añadidas
················································································
$GUI_PICTURES.delete(id)

id = La id que usaste para crear el objeto. Si pones nil se borrar
      todos los objetos, si no, se borrará todo lo que tenga la id usada
················································································



*** Cómo crear fuentes:

················································································
font = Font.new
font.name = "Verdana"                   # Nombre de la fuente
font.size = 20                          # Tamaño de la fuente
font.color = Color.new(255,255,255)     # Color de la fuente
font.bold = false                       # Negrita (true / false)
font.italic = false                     # Cursiva (true / false)
font.outline = true                     # Rodear con una línea (true / false)
font.out_color = Color.new(0,0,0)       # Color para la línea
font.shadow = false                     # Sombreado (true / false)
················································································

=end






#===============================================================================
class NilClass
def dup
  return nil
end
end
#===============================================================================

#===============================================================================
class Font
#-----------------------------------------------------------------------------
def _dump(d=0)
  sep = ""
  data = ""
  if self.name.is_a?(Array)
    data += self.name.join(",") + sep
  else
    data += self.name + sep
  end
  data += self.size.to_s + sep
  if self.color.is_a?(Color)
    c = [self.color.red.to_i, self.color.green.to_i, self.color.blue.to_i,
     self.color.alpha.to_i].join(",")
  else
    c = "0,0,0,0"
  end
  data += c + sep
  if self.out_color.is_a?(Color)
    c = [self.out_color.red.to_i, self.out_color.green.to_i,
     self.out_color.blue.to_i, self.out_color.alpha.to_i].join(",")
  else
    c = "0,0,0,0"
  end
  data += c + sep
  data += (self.bold ? 1 : 0).to_s + sep
  data += (self.italic ? 1 : 0).to_s + sep
  data += (self.outline ? 1 : 0).to_s + sep
  data += (self.shadow ? 1 : 0).to_s

  return data
end
#-----------------------------------------------------------------------------
def self._load(s)
  sep = ""
  data = s.split(sep)
  font = Font.new
  begin
    font.name = data[0].split(",")
    font.size = data[1].to_i
    c = data[2].split(",")
    font.color = Color.new(c[0].to_i, c[1].to_i, c[2].to_i, c[3].to_i)
    c = data[3].split(",")
    font.out_color = Color.new(c[0].to_i, c[1].to_i, c[2].to_i, c[3].to_i)
    font.bold = (data[4] == "1")
    font.italic = (data[5] == "1")
    font.outline = (data[6] == "1")
    font.shadow = (data[7] == "1")
  rescue
  end
 
  return font
end
#-----------------------------------------------------------------------------
end
#===============================================================================

#===============================================================================
class Newold_Picture_GUI
#-----------------------------------------------------------------------------
def initialize
  @data = []
  @uniq_ids = true
end
#-----------------------------------------------------------------------------
def set_uniq_ids(value=true)
  @uniq_ids = (value == true)
end
#-----------------------------------------------------------------------------
def add_new_object(obj)
  if @uniq_ids == true
    @data.each{|obj2|
      if obj2[:ID] == obj[:ID]
        obj2[:sprite].dispose rescue nil
        @data.delete(obj2)
      end
    }
  end
  @data << obj
end
#-----------------------------------------------------------------------------
def add_picture(id, url, x, y, delay=0)
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.bitmap = Cache.picture(url)
  s.opacity = 0
 
  obj = {
    :ID             => id,
    :type           => 0,
    :sprite         => s,
    :show           => true,
    :state_show     => true,
    :url            => url,
    :x              => x,
    :y              => y,
    :delay          => delay.to_i,
    :delay_counter  => 0
  }
 
  add_new_object(obj)
end
#-----------------------------------------------------------------------------
def add_item(id, item_type, item_ID, x, y, font,
  show_name=true, show_icon=true, show_quantity=true, format=" ()", delay=0)
 
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.opacity = 0
 
  font_bak = font.dup
 
  if !font.is_a?(Font)
    font = Font.new
    font.name = ["Verdana", "Arial"]
    font.size = 20
    font.color = Color.new(255,255,255)
    font.outline = true
    font.out_color = Color.new(0,0,0)
  end
 
  obj = {
    :ID             => id,
    :type           => 1,
    :sprite         => s,
    :show           => true,
    :state_show     => true,
    :item_type      => item_type,
    :item_ID        => item_ID,
    :x              => x,
    :y              => y,
    :font           => font,
    :font_bak       => font_bak,
    :show_name      => show_name,
    :show_icon      => show_icon,
    :show_quantity  => show_quantity,
    :format         => format.to_s,
    :quantity       => -1,
    :delay          => delay.to_i,
    :delay_counter  => 0
  }
 
  set_item(obj)
 
  add_new_object(obj)
end
#-----------------------------------------------------------------------------
def add_map_name(id, x, y, delay, font=nil)
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.opacity = 0
 
  font_bak = font.dup
 
  if !font.is_a?(Font)
    font = Font.new
    font.name = ["Verdana", "Arial"]
    font.size = 20
    font.color = Color.new(255,255,255)
    font.outline = true
    font.out_color = Color.new(0,0,0)
  end
 
  obj = {
    :ID             => id,
    :type           => 2,
    :sprite         => s,
    :font           => font,
    :show           => true,
    :state_show     => true,
    :delay          => delay.to_i,
    :delay_counter  => 0,
    :map_id         => -1,
    :x              => x,
    :y              => y,
    :font_bak       => font_bak
  }
 
  add_new_object(obj)
end
#-----------------------------------------------------------------------------
def add_gold(id, x, y, font=nil, delay=0)
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.opacity = 0
 
  font_bak = font.dup
 
  if !font.is_a?(Font)
    font = Font.new
    font.name = ["Verdana", "Arial"]
    font.size = 20
    font.color = Color.new(255,255,255)
    font.outline = true
    font.out_color = Color.new(0,0,0)
  end
 
  obj = {
    :ID             => id,
    :type           => 3,
    :sprite         => s,
    :font           => font,
    :show           => true,
    :state_show     => true,
    :current_gold   => -1,
    :x              => x,
    :y              => y,
    :font_bak       => font_bak,
    :delay          => delay.to_i,
    :delay_counter  => 0
  }
 
  add_new_object(obj)
 
end
#-----------------------------------------------------------------------------
def add_variable(id, variable_ID, x, y, format="", font=nil, delay=0)
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.opacity = 0
 
  font_bak = font.dup
 
  if !font.is_a?(Font)
    font = Font.new
    font.name = ["Verdana", "Arial"]
    font.size = 20
    font.color = Color.new(255,255,255)
    font.outline = true
    font.out_color = Color.new(0,0,0)
  end
 
  obj = {
    :ID             => id,
    :type           => 4,
    :sprite         => s,
    :font           => font,
    :show           => true,
    :state_show     => true,
    :variable_ID    => variable_ID,
    :current_value  => -1,
    :format         => format,
    :x              => x,
    :y              => y,
    :font_bak       => font_bak,
    :delay          => delay.to_i,
    :delay_counter  => 0
  }
 
  add_new_object(obj)
 
end
#-----------------------------------------------------------------------------
def refresh_gold(obj)
  gold = $game_party.gold
  if gold != obj[:current_gold]
    obj[:current_gold] = gold
    obj[:sprite].bitmap.dispose rescue nil
    text = gold.to_s + Vocab::currency_unit
    b = Bitmap.new(1,1)
    b.font = obj[:font]
    size = b.text_size(text)
    w = size.width
    h = size.height
    obj[:sprite].bitmap = Bitmap.new(w, h)
    obj[:sprite].bitmap.font = obj[:font]
    obj[:sprite].bitmap.draw_text(0,0,w,h,text)
    b.dispose
  end
end
#-----------------------------------------------------------------------------
def refresh_variable(obj)
  value = $game_variables[obj[:variable_ID]]
  return if value.nil?
  if value != obj[:current_value]
    obj[:current_value] = value
    obj[:sprite].bitmap.dispose rescue nil
    text = obj[:format].dup
    text.gsub!("", value.to_s)
    b = Bitmap.new(1,1)
    b.font = obj[:font]
    size = b.text_size(text)
    w = size.width
    h = size.height
    obj[:sprite].bitmap = Bitmap.new(w, h)
    obj[:sprite].bitmap.font = obj[:font]
    obj[:sprite].bitmap.draw_text(0,0,w,h,text)
    b.dispose
  end
end
#-----------------------------------------------------------------------------
def draw_map_name(obj)
  map_name = $game_map.display_name
  b = Bitmap.new(1,1)
  b.font = obj[:font]
  size = b.text_size(map_name)
  obj[:sprite].bitmap.dispose rescue nil
  w = [size.width, 1].max
  h = [size.height, 1].max
  obj[:sprite].bitmap = Bitmap.new(w, h)
  obj[:sprite].bitmap.font = obj[:font]
  obj[:sprite].bitmap.draw_text(0,0,w,h,map_name)
  obj[:sprite].opacity = 0
  obj[:delay_counter] = 0
  obj[:map_id] = $game_map.map_id
  b.dispose
end
#-----------------------------------------------------------------------------
def set_item(obj)
 
  return if obj.nil? or obj[:sprite].nil? or obj[:sprite].disposed?
 
  item = nil
  case obj[:item_type]
  when 0, :item; item = $data_items[obj[:item_ID]]
  when 1, :weapon; item = $data_weapons[obj[:item_ID]]
  when 2, :armor; item = $data_armors[obj[:item_ID]]
  when 3, :skill; item = $data_skills[obj[:item_ID]]
  end

  if item.nil?
    obj[:sprite].dispose rescue nil
    return
  end

  icon = nil
  if obj[:show_icon] == true
    bitmap = Cache.system("Iconset")
    rect = Rect.new(item.icon_index%16*24, item.icon_index/16*24, 24, 24)
    icon = Bitmap.new(24, 24)
    icon.blt(0, 0, bitmap, rect)
  end

  text = obj[:format].dup
 
  if obj[:show_name]
    text.gsub!("", item.id.to_s)
    text.gsub!("", item.name)
  else
    text.gsub!("
", "")
    text.gsub!("", "")
  end
  if obj[:item_type] < 3 and obj[:show_quantity]
    q = sprintf("%2d", $game_party.item_number(item))
    text.gsub!("", q)
  else
    text.gsub!("", "")
  end

  size = Rect.new(0,0,0,0)
  b = Bitmap.new(1, 1)
  b.font = obj[:font].dup
  size = b.text_size(text)
  b.dispose
 
  if icon.nil?
    w = size.width
    h = size.height
    mod = 0
  else
    w = icon.width + size.width
    h = [icon.height, size.height].max
    mod = icon.width
  end
 
  obj[:sprite].bitmap.dispose rescue nil
  if w > 0 and h > 0
    obj[:sprite].bitmap = Bitmap.new(w, h)
    unless icon.nil?
      obj[:sprite].bitmap.blt(0, (h-icon.height)/2, icon, icon.rect)
    end
    obj[:sprite].bitmap.draw_text(mod, 0, size.width, h, text)
  end

end
#-----------------------------------------------------------------------------
def update
  @data.each{|obj|
    # ············
    if obj[:type] == 1 and obj[:item_type] < 3 and obj[:show_quantity]
      item = nil
      case obj[:item_type]
      when 0, :item; item = $data_items[obj[:item_ID]]
      when 1, :weapon; item = $data_weapons[obj[:item_ID]]
      when 2, :armor; item = $data_armors[obj[:item_ID]]
      when 3, :skill; item = $data_skills[obj[:item_ID]]
      end
      unless item.nil?
        if obj[:show_quantity] != $game_party.item_number(item)
          set_item(obj)
        end
      end
    end
    # ············  
    if obj[:type] == 2 and $game_map.map_id != obj[:map_id]
      draw_map_name(obj)
      if obj[:delay] > 0 and obj[:delay_counter] < obj[:delay]
        obj[:delay_counter] += 1
      end
    elsif obj[:type] == 2 and obj[:delay_counter] < obj[:delay]
      obj[:delay_counter] += 1
    end
    # ············
    if obj[:type] == 3
      refresh_gold(obj)
    end
    # ············
    if obj[:delay].to_i > 0 and obj[:delay_counter].to_i < obj[:delay].to_i
      obj[:delay_counter] += 1
    end
    if obj[:delay].to_i == 0 or obj[:delay_counter].to_i < obj[:delay].to_i
      obj[:sprite].opacity += 10
    else
      obj[:sprite].opacity -= 10
    end
    # ············
    if obj[:type] == 4
      refresh_variable(obj)
    end
    # ············
  }
end
#-----------------------------------------------------------------------------
def enable(id=nil)
  if id.nil?
    @data.each{|obj| set_enable_to(obj, true) }
  else
    @data.each{|obj|
      set_enable_to(obj, true) if obj[:ID] == id
    }
  end
end
#-----------------------------------------------------------------------------
def disable(id=nil)
  if id.nil?
    @data.each{|obj| set_enable_to(obj, false) }
  else
    @data.each{|obj|
      set_enable_to(obj, false) if obj[:ID] == id
    }
  end
end
#-----------------------------------------------------------------------------
def delete(id=nil)
  @data.each{|obj|
    if id.nil? or id == obj[:ID]
      obj[:sprite].dispose rescue nil
      @data.delete(obj) rescue nil
    end
  }
end
#-----------------------------------------------------------------------------
def set_previous_enable
  @data.each{|obj| set_enable_to(obj, obj[:state_show]) }
end
#-----------------------------------------------------------------------------
def disable_all
  @data.each{|obj|
    obj[:show] = false
    obj[:sprite].opacity = 0
    unless obj[:delay_counter].nil?
      obj[:delay_counter] = 0
    end
  }
end
#-----------------------------------------------------------------------------
def set_enable_to(obj, value)
  return if obj.nil? or obj[:sprite].nil? or obj[:sprite].disposed?
 
  obj[:show]           = value
  obj[:state_show]     = value
  obj[:sprite].opacity = 0
  if obj[:type] == 2
    obj[:delay_counter] = 0
  end
end
#-----------------------------------------------------------------------------
def get_data
  data = []
  @data.each{|obj|
    data << obj.dup
  }
  data.each{|obj| obj[:sprite] = nil }
  return data
end
#-----------------------------------------------------------------------------
def set_data(data)
  @data.clear
  data.each{|obj|
    if obj[:type] == 0
      add_picture(obj[:ID], obj[:url], obj[:x], obj[:y])
    elsif obj[:type] == 1
      add_item(obj[:ID], obj[:item_type], obj[:item_ID], obj[:x], obj[:y],
        obj[:font_bak], obj[:show_name], obj[:show_icon],
        obj[:show_quantity], obj[:format])
    elsif obj[:type] == 2
      add_map_name(obj[:ID], obj[:x], obj[:y], obj[:delay], obj[:font_bak])
    elsif obj[:type] == 3
      add_gold(obj[:ID], obj[:x], obj[:y], obj[:font_bak])
    elsif obj[:type] == 4
      add_variable(obj[:ID], obj[:variable_ID], obj[:x], obj[:y],
      obj[:format], obj[:font_bak])
    end
  }
end
#-----------------------------------------------------------------------------
def dispose
  @data.each{|obj|
    obj[:sprite].dispose rescue nil
    @data.delete(obj) rescue next
  }
  @data.clear
end
#-----------------------------------------------------------------------------
end
#===============================================================================



#===============================================================================
class Scene_Title < Scene_Base
#-----------------------------------------------------------------------------
alias start_newold_pictures_gui start
def start
  $GUI_PICTURES.dispose
  start_newold_hp_gui
end
#-----------------------------------------------------------------------------
end
#===============================================================================

#===============================================================================
class Scene_Map < Scene_Base
#-----------------------------------------------------------------------------
alias update_newold_pictures_gui update
def update
  update_newold_pictures_gui
  $GUI_PICTURES.update
end
#-----------------------------------------------------------------------------
alias start_newold_pictures_gui start
def start
  $GUI_PICTURES.set_previous_enable
  start_newold_pictures_gui
end
#-----------------------------------------------------------------------------
alias terminate_newold_pictures_gui terminate
def terminate
  $GUI_PICTURES.disable_all
  terminate_newold_pictures_gui
end
#-----------------------------------------------------------------------------
end
#===============================================================================


#===============================================================================
module DataManager
#-----------------------------------------------------------------------------
class << self
  # --------------------------------------------------------------------
  alias make_save_contents_newold_pictures_gui make_save_contents
  def make_save_contents
    contents = make_save_contents_newold_pictures_gui
    contents[:newold_pictures_gui_enabled] = $GUI_PICTURES.get_data
    contents
  end
  # --------------------------------------------------------------------
  alias extract_save_contents_newold_pictures_gui extract_save_contents
  def extract_save_contents(contents)
    extract_save_contents_newold_pictures_gui(contents)
    $GUI_PICTURES.set_data(contents[:newold_pictures_gui_enabled])
  end
  # --------------------------------------------------------------------
end
#-----------------------------------------------------------------------------
end
#===============================================================================

$GUI_PICTURES = Newold_Picture_GUI.new[/line]

Espero que te sirva como me sirve a mí, y te repito que seas más específico en futuros post para que te podamos ayudar más rápido.
avatar
Dariel Lopez
Veterano
Veterano

0/3

Créditos 716

Gracias : 43

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por SeralTek el 2018-08-09, 02:33

@Dariel Lopez escribió:Buenas SeralTek, mira no es por molestarte pero sería bueno que especificaras para que versión del Maker necesitas los scripts que pides porque ya es el segundo post que creas y no lo dices.
Si usas el Vx Ace newold acaba de crear un script que te puede sacar de este apuro pero si usas otra versión del Maker no sé si te sirva.
El script es este:
[line]=begin

▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
                            INSTRUCCIONES
▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲

⏺️ Pegar el script encima del main
⏺️ Ahora podrás usar los siguientes comandos con el
comando llamar script de los eventos:



*** Añadir una imagen a la pantalla:

················································································
$GUI_PICTURES.add_picture(id, url, x, y, delay)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar la imagen y poder ocultarla / borrarla / mostrarla
    (las ids se pueden repetir)
   
url = Nombre de la imagen a mostrar entre " (Debe estar en la carpeta
      Graphics/Pictures de tu juego) Ejemplo: "miImagen"
     
x = Posición X de la pantalla donde se mostrará la imagen

y = Posición Y de la pantalla donde se mostrará la imagen

delay = Frames que pasará hasta que la imagen se oculte
        (Poner 0 si quieres que no se oculte nunca)
················································································




*** Añadir un icono de objeto, arma, armadura o skill a la pantalla

················································································
$GUI_PICTURES.add_item(id, item_type, item_ID, x, y, font,
show_name, show_icon, show_quantity, format, delay)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar el icono y poder ocultarlo / borrarlo / mostrarlo
    (las ids se pueden repetir)
   
item_type = El tipo de cosa a mostrar. Puede ser:
  0 => Mostrar Objeto
  1 => Mostrar arma
  2 => mostrar armadura
  3 => Mostrar skill
 
item_ID = ID en la base de datos para el item a mostrar

x = Posición X de la pantalla donde se mostrará el icono

y = Posición Y de la pantalla donde se mostrará el icono

font = Una fuente para usar en el texto. Dejar en nil para que use la fuente
por defecto (ver más abajo para crear una fuente)

show_name = Muestra el nombre del item (true = mostrar, false = no mostrar)

show_icon = Muestra el icono del item (true = mostrar, false = no mostrar)

show_quantity = Mostrar la cantidad que se posee del item
                (true = mostrar, false = no mostrar)
                (Solo funciona para objetos, armas y armaduras)
               
format = Cómo mostrar el texto. Se puede usar los siguientes comodines:
          Se cambia por la ID del item
          Se cambia por el nombre del item
          Se cambia por la cantidad del item
              (válido solo en objetos, armas y amrmaduras)
             
delay = Frames que pasará hasta que el item se oculte
        (Poner 0 si quieres que no se oculte nunca)

················································································




*** Añadir el nombre del mapa actual a la pantalla

················································································
$GUI_PICTURES.add_map_name(id, x, y, delay, font)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar el nombre y poder ocultarlo / borrarlo / mostrarlo
    (las ids se pueden repetir)
   
x = Posición X de la pantalla donde se mostrará el nombre del mapa

y = Posición Y de la pantalla donde se mostrará el nombre del mapa

delay = Frames que pasará hasta que el el nombre del mapa se oculte
        (Poner 0 si quieres que no se oculte nunca)
       
font = Una fuente para usar en el texto. Dejar en nil para que use la fuente
por defecto (ver más abajo para crear una fuente)
················································································




*** Añadir el oro actual a la pantalla

················································································
$GUI_PICTURES.add_gold(id, x, y, font, delay)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar el oro y poder ocultarlo / borrarlo / mostrarlo
    (las ids se pueden repetir)
   
x = Posición X de la pantalla donde se mostrará el oro

y = Posición Y de la pantalla donde se mostrará el oro

font = Una fuente para usar en el texto. Dejar en nil para que use la fuente
por defecto (ver más abajo para crear una fuente)

delay = Frames que pasará hasta que el oro se oculte
        (Poner 0 si quieres que no se oculte nunca)
················································································




*** Añadir el valor de una variable con texto descriptivo a la pantalla

················································································
$GUI_PICTURES.add_variable(id, variable_ID, x, y, format, font, delay)

id = Cualquier cosa que quieras (número o texto), solo se usa para
     identificar la variable y poder ocultarla / borrarla / mostrarla
    (las ids se pueden repetir)
   
variable_ID = La ID de la variable que cuyo valor quieras mostrar
   
x = Posición X de la pantalla donde se mostrará la variable

y = Posición Y de la pantalla donde se mostrará la variable

font = Una fuente para usar en el texto. Dejar en nil para que use la fuente
por defecto (ver más abajo para crear una fuente)

format = Cómo mostrar el valor de la variable:
         
Se cambia por el valor de la variable
          (Ejemplo: "Mi vaiable vale
")
         
delay = Frames que pasará hasta que la variable se oculte
        (Poner 0 si quieres que no se oculte nunca)

················································································




*** Cómo activar las cosas añadidas
················································································
$GUI_PICTURES.enable(id)

id = La id que usaste para crear el objeto. Si pones nil se activan
      todos los objetos, si no, se activará todo lo que tenga la id usada
················································································



*** Cómo desactivar las cosas añadidas
················································································
$GUI_PICTURES.disable(id)

id = La id que usaste para crear el objeto. Si pones nil se desactivan
      todos los objetos, si no, se desactivará todo lo que tenga la id usada
················································································


*** Cómo borrar las cosas añadidas
················································································
$GUI_PICTURES.delete(id)

id = La id que usaste para crear el objeto. Si pones nil se borrar
      todos los objetos, si no, se borrará todo lo que tenga la id usada
················································································



*** Cómo crear fuentes:

················································································
font = Font.new
font.name = "Verdana"                   # Nombre de la fuente
font.size = 20                          # Tamaño de la fuente
font.color = Color.new(255,255,255)     # Color de la fuente
font.bold = false                       # Negrita (true / false)
font.italic = false                     # Cursiva (true / false)
font.outline = true                     # Rodear con una línea (true / false)
font.out_color = Color.new(0,0,0)       # Color para la línea
font.shadow = false                     # Sombreado (true / false)
················································································

=end






#===============================================================================
class NilClass
def dup
  return nil
end
end
#===============================================================================

#===============================================================================
class Font
#-----------------------------------------------------------------------------
def _dump(d=0)
  sep = ""
  data = ""
  if self.name.is_a?(Array)
    data += self.name.join(",") + sep
  else
    data += self.name + sep
  end
  data += self.size.to_s + sep
  if self.color.is_a?(Color)
    c = [self.color.red.to_i, self.color.green.to_i, self.color.blue.to_i,
     self.color.alpha.to_i].join(",")
  else
    c = "0,0,0,0"
  end
  data += c + sep
  if self.out_color.is_a?(Color)
    c = [self.out_color.red.to_i, self.out_color.green.to_i,
     self.out_color.blue.to_i, self.out_color.alpha.to_i].join(",")
  else
    c = "0,0,0,0"
  end
  data += c + sep
  data += (self.bold ? 1 : 0).to_s + sep
  data += (self.italic ? 1 : 0).to_s + sep
  data += (self.outline ? 1 : 0).to_s + sep
  data += (self.shadow ? 1 : 0).to_s

  return data
end
#-----------------------------------------------------------------------------
def self._load(s)
  sep = ""
  data = s.split(sep)
  font = Font.new
  begin
    font.name = data[0].split(",")
    font.size = data[1].to_i
    c = data[2].split(",")
    font.color = Color.new(c[0].to_i, c[1].to_i, c[2].to_i, c[3].to_i)
    c = data[3].split(",")
    font.out_color = Color.new(c[0].to_i, c[1].to_i, c[2].to_i, c[3].to_i)
    font.bold = (data[4] == "1")
    font.italic = (data[5] == "1")
    font.outline = (data[6] == "1")
    font.shadow = (data[7] == "1")
  rescue
  end
 
  return font
end
#-----------------------------------------------------------------------------
end
#===============================================================================

#===============================================================================
class Newold_Picture_GUI
#-----------------------------------------------------------------------------
def initialize
  @data = []
  @uniq_ids = true
end
#-----------------------------------------------------------------------------
def set_uniq_ids(value=true)
  @uniq_ids = (value == true)
end
#-----------------------------------------------------------------------------
def add_new_object(obj)
  if @uniq_ids == true
    @data.each{|obj2|
      if obj2[:ID] == obj[:ID]
        obj2[:sprite].dispose rescue nil
        @data.delete(obj2)
      end
    }
  end
  @data << obj
end
#-----------------------------------------------------------------------------
def add_picture(id, url, x, y, delay=0)
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.bitmap = Cache.picture(url)
  s.opacity = 0
 
  obj = {
    :ID             => id,
    :type           => 0,
    :sprite         => s,
    :show           => true,
    :state_show     => true,
    :url            => url,
    :x              => x,
    :y              => y,
    :delay          => delay.to_i,
    :delay_counter  => 0
  }
 
  add_new_object(obj)
end
#-----------------------------------------------------------------------------
def add_item(id, item_type, item_ID, x, y, font,
  show_name=true, show_icon=true, show_quantity=true, format=" ()", delay=0)
 
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.opacity = 0
 
  font_bak = font.dup
 
  if !font.is_a?(Font)
    font = Font.new
    font.name = ["Verdana", "Arial"]
    font.size = 20
    font.color = Color.new(255,255,255)
    font.outline = true
    font.out_color = Color.new(0,0,0)
  end
 
  obj = {
    :ID             => id,
    :type           => 1,
    :sprite         => s,
    :show           => true,
    :state_show     => true,
    :item_type      => item_type,
    :item_ID        => item_ID,
    :x              => x,
    :y              => y,
    :font           => font,
    :font_bak       => font_bak,
    :show_name      => show_name,
    :show_icon      => show_icon,
    :show_quantity  => show_quantity,
    :format         => format.to_s,
    :quantity       => -1,
    :delay          => delay.to_i,
    :delay_counter  => 0
  }
 
  set_item(obj)
 
  add_new_object(obj)
end
#-----------------------------------------------------------------------------
def add_map_name(id, x, y, delay, font=nil)
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.opacity = 0
 
  font_bak = font.dup
 
  if !font.is_a?(Font)
    font = Font.new
    font.name = ["Verdana", "Arial"]
    font.size = 20
    font.color = Color.new(255,255,255)
    font.outline = true
    font.out_color = Color.new(0,0,0)
  end
 
  obj = {
    :ID             => id,
    :type           => 2,
    :sprite         => s,
    :font           => font,
    :show           => true,
    :state_show     => true,
    :delay          => delay.to_i,
    :delay_counter  => 0,
    :map_id         => -1,
    :x              => x,
    :y              => y,
    :font_bak       => font_bak
  }
 
  add_new_object(obj)
end
#-----------------------------------------------------------------------------
def add_gold(id, x, y, font=nil, delay=0)
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.opacity = 0
 
  font_bak = font.dup
 
  if !font.is_a?(Font)
    font = Font.new
    font.name = ["Verdana", "Arial"]
    font.size = 20
    font.color = Color.new(255,255,255)
    font.outline = true
    font.out_color = Color.new(0,0,0)
  end
 
  obj = {
    :ID             => id,
    :type           => 3,
    :sprite         => s,
    :font           => font,
    :show           => true,
    :state_show     => true,
    :current_gold   => -1,
    :x              => x,
    :y              => y,
    :font_bak       => font_bak,
    :delay          => delay.to_i,
    :delay_counter  => 0
  }
 
  add_new_object(obj)
 
end
#-----------------------------------------------------------------------------
def add_variable(id, variable_ID, x, y, format="", font=nil, delay=0)
  s = Sprite.new
  s.z = 1000000
  s.x = x
  s.y = y
  s.opacity = 0
 
  font_bak = font.dup
 
  if !font.is_a?(Font)
    font = Font.new
    font.name = ["Verdana", "Arial"]
    font.size = 20
    font.color = Color.new(255,255,255)
    font.outline = true
    font.out_color = Color.new(0,0,0)
  end
 
  obj = {
    :ID             => id,
    :type           => 4,
    :sprite         => s,
    :font           => font,
    :show           => true,
    :state_show     => true,
    :variable_ID    => variable_ID,
    :current_value  => -1,
    :format         => format,
    :x              => x,
    :y              => y,
    :font_bak       => font_bak,
    :delay          => delay.to_i,
    :delay_counter  => 0
  }
 
  add_new_object(obj)
 
end
#-----------------------------------------------------------------------------
def refresh_gold(obj)
  gold = $game_party.gold
  if gold != obj[:current_gold]
    obj[:current_gold] = gold
    obj[:sprite].bitmap.dispose rescue nil
    text = gold.to_s + Vocab::currency_unit
    b = Bitmap.new(1,1)
    b.font = obj[:font]
    size = b.text_size(text)
    w = size.width
    h = size.height
    obj[:sprite].bitmap = Bitmap.new(w, h)
    obj[:sprite].bitmap.font = obj[:font]
    obj[:sprite].bitmap.draw_text(0,0,w,h,text)
    b.dispose
  end
end
#-----------------------------------------------------------------------------
def refresh_variable(obj)
  value = $game_variables[obj[_ID]]
  return if value.nil?
  if value != obj[:current_value]
    obj[:current_value] = value
    obj[:sprite].bitmap.dispose rescue nil
    text = obj[:format].dup
    text.gsub!("", value.to_s)
    b = Bitmap.new(1,1)
    b.font = obj[:font]
    size = b.text_size(text)
    w = size.width
    h = size.height
    obj[:sprite].bitmap = Bitmap.new(w, h)
    obj[:sprite].bitmap.font = obj[:font]
    obj[:sprite].bitmap.draw_text(0,0,w,h,text)
    b.dispose
  end
end
#-----------------------------------------------------------------------------
def draw_map_name(obj)
  map_name = $game_map.display_name
  b = Bitmap.new(1,1)
  b.font = obj[:font]
  size = b.text_size(map_name)
  obj[:sprite].bitmap.dispose rescue nil
  w = [size.width, 1].max
  h = [size.height, 1].max
  obj[:sprite].bitmap = Bitmap.new(w, h)
  obj[:sprite].bitmap.font = obj[:font]
  obj[:sprite].bitmap.draw_text(0,0,w,h,map_name)
  obj[:sprite].opacity = 0
  obj[:delay_counter] = 0
  obj[:map_id] = $game_map.map_id
  b.dispose
end
#-----------------------------------------------------------------------------
def set_item(obj)
 
  return if obj.nil? or obj[:sprite].nil? or obj[:sprite].disposed?
 
  item = nil
  case obj[:item_type]
  when 0, :item; item = $data_items[obj[_ID]]
  when 1, :weapon; item = $data_weapons[obj[_ID]]
  when 2, :armor; item = $data_armors[obj[_ID]]
  when 3, :skill; item = $data_skills[obj[_ID]]
  end

  if item.nil?
    obj[:sprite].dispose rescue nil
    return
  end

  icon = nil
  if obj[:show_icon] == true
    bitmap = Cache.system("Iconset")
    rect = Rect.new(item.icon_index%16*24, item.icon_index/16*24, 24, 24)
    icon = Bitmap.new(24, 24)
    icon.blt(0, 0, bitmap, rect)
  end

  text = obj[:format].dup
 
  if obj[:show_name]
    text.gsub!("", item.id.to_s)
    text.gsub!("", item.name)
  else
    text.gsub!("
", "")
    text.gsub!("", "")
  end
  if obj[:item_type] < 3 and obj[:show_quantity]
    q = sprintf("%2d", $game_party.item_number(item))
    text.gsub!("", q)
  else
    text.gsub!("", "")
  end

  size = Rect.new(0,0,0,0)
  b = Bitmap.new(1, 1)
  b.font = obj[:font].dup
  size = b.text_size(text)
  b.dispose
 
  if icon.nil?
    w = size.width
    h = size.height
    mod = 0
  else
    w = icon.width + size.width
    h = [icon.height, size.height].max
    mod = icon.width
  end
 
  obj[:sprite].bitmap.dispose rescue nil
  if w > 0 and h > 0
    obj[:sprite].bitmap = Bitmap.new(w, h)
    unless icon.nil?
      obj[:sprite].bitmap.blt(0, (h-icon.height)/2, icon, icon.rect)
    end
    obj[:sprite].bitmap.draw_text(mod, 0, size.width, h, text)
  end

end
#-----------------------------------------------------------------------------
def update
  @data.each{|obj|
    # ············
    if obj[:type] == 1 and obj[:item_type] < 3 and obj[:show_quantity]
      item = nil
      case obj[:item_type]
      when 0, :item; item = $data_items[obj[_ID]]
      when 1, :weapon; item = $data_weapons[obj[_ID]]
      when 2, :armor; item = $data_armors[obj[_ID]]
      when 3, :skill; item = $data_skills[obj[_ID]]
      end
      unless item.nil?
        if obj[:show_quantity] != $game_party.item_number(item)
          set_item(obj)
        end
      end
    end
    # ············  
    if obj[:type] == 2 and $game_map.map_id != obj[:map_id]
      draw_map_name(obj)
      if obj[:delay] > 0 and obj[:delay_counter] < obj[:delay]
        obj[:delay_counter] += 1
      end
    elsif obj[:type] == 2 and obj[:delay_counter] < obj[:delay]
      obj[:delay_counter] += 1
    end
    # ············
    if obj[:type] == 3
      refresh_gold(obj)
    end
    # ············
    if obj[:delay].to_i > 0 and obj[:delay_counter].to_i < obj[:delay].to_i
      obj[:delay_counter] += 1
    end
    if obj[:delay].to_i == 0 or obj[:delay_counter].to_i < obj[:delay].to_i
      obj[:sprite].opacity += 10
    else
      obj[:sprite].opacity -= 10
    end
    # ············
    if obj[:type] == 4
      refresh_variable(obj)
    end
    # ············
  }
end
#-----------------------------------------------------------------------------
def enable(id=nil)
  if id.nil?
    @data.each{|obj| set_enable_to(obj, true) }
  else
    @data.each{|obj|
      set_enable_to(obj, true) if obj[:ID] == id
    }
  end
end
#-----------------------------------------------------------------------------
def disable(id=nil)
  if id.nil?
    @data.each{|obj| set_enable_to(obj, false) }
  else
    @data.each{|obj|
      set_enable_to(obj, false) if obj[:ID] == id
    }
  end
end
#-----------------------------------------------------------------------------
def delete(id=nil)
  @data.each{|obj|
    if id.nil? or id == obj[:ID]
      obj[:sprite].dispose rescue nil
      @data.delete(obj) rescue nil
    end
  }
end
#-----------------------------------------------------------------------------
def set_previous_enable
  @data.each{|obj| set_enable_to(obj, obj[:state_show]) }
end
#-----------------------------------------------------------------------------
def disable_all
  @data.each{|obj|
    obj[:show] = false
    obj[:sprite].opacity = 0
    unless obj[:delay_counter].nil?
      obj[:delay_counter] = 0
    end
  }
end
#-----------------------------------------------------------------------------
def set_enable_to(obj, value)
  return if obj.nil? or obj[:sprite].nil? or obj[:sprite].disposed?
 
  obj[:show]           = value
  obj[:state_show]     = value
  obj[:sprite].opacity = 0
  if obj[:type] == 2
    obj[:delay_counter] = 0
  end
end
#-----------------------------------------------------------------------------
def get_data
  data = []
  @data.each{|obj|
    data << obj.dup
  }
  data.each{|obj| obj[:sprite] = nil }
  return data
end
#-----------------------------------------------------------------------------
def set_data(data)
  @data.clear
  data.each{|obj|
    if obj[:type] == 0
      add_picture(obj[:ID], obj[:url], obj[:x], obj[:y])
    elsif obj[:type] == 1
      add_item(obj[:ID], obj[:item_type], obj[:item_ID], obj[:x], obj[:y],
        obj[:font_bak], obj[:show_name], obj[:show_icon],
        obj[:show_quantity], obj[:format])
    elsif obj[:type] == 2
      add_map_name(obj[:ID], obj[:x], obj[:y], obj[:delay], obj[:font_bak])
    elsif obj[:type] == 3
      add_gold(obj[:ID], obj[:x], obj[:y], obj[:font_bak])
    elsif obj[:type] == 4
      add_variable(obj[:ID], obj[:variable_ID], obj[:x], obj[:y],
      obj[:format], obj[:font_bak])
    end
  }
end
#-----------------------------------------------------------------------------
def dispose
  @data.each{|obj|
    obj[:sprite].dispose rescue nil
    @data.delete(obj) rescue next
  }
  @data.clear
end
#-----------------------------------------------------------------------------
end
#===============================================================================



#===============================================================================
class Scene_Title < Scene_Base
#-----------------------------------------------------------------------------
alias start_newold_pictures_gui start
def start
  $GUI_PICTURES.dispose
  start_newold_hp_gui
end
#-----------------------------------------------------------------------------
end
#===============================================================================

#===============================================================================
class Scene_Map < Scene_Base
#-----------------------------------------------------------------------------
alias update_newold_pictures_gui update
def update
  update_newold_pictures_gui
  $GUI_PICTURES.update
end
#-----------------------------------------------------------------------------
alias start_newold_pictures_gui start
def start
  $GUI_PICTURES.set_previous_enable
  start_newold_pictures_gui
end
#-----------------------------------------------------------------------------
alias terminate_newold_pictures_gui terminate
def terminate
  $GUI_PICTURES.disable_all
  terminate_newold_pictures_gui
end
#-----------------------------------------------------------------------------
end
#===============================================================================


#===============================================================================
module DataManager
#-----------------------------------------------------------------------------
class << self
  # --------------------------------------------------------------------
  alias make_save_contents_newold_pictures_gui make_save_contents
  def make_save_contents
    contents = make_save_contents_newold_pictures_gui
    contents[:newold_pictures_gui_enabled] = $GUI_PICTURES.get_data
    contents
  end
  # --------------------------------------------------------------------
  alias extract_save_contents_newold_pictures_gui extract_save_contents
  def extract_save_contents(contents)
    extract_save_contents_newold_pictures_gui(contents)
    $GUI_PICTURES.set_data(contents[:newold_pictures_gui_enabled])
  end
  # --------------------------------------------------------------------
end
#-----------------------------------------------------------------------------
end
#===============================================================================

$GUI_PICTURES = Newold_Picture_GUI.new[/line]

Espero que te sirva como me sirve a mí, y te repito que seas más específico en futuros post para que te podamos ayudar más rápido.

Siempre e especificado la version, fijate en la parte izquierda de el titulo Haha
PD: Uso el XP
avatar
SeralTek
Iniciado
Iniciado

0/3

Créditos 22

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por Dariel Lopez el 2018-08-09, 03:30

Siempre es mejor especificar la versión para quienes no nos fijamos en los iconos.
Pero bueno, tal vez si alguien adapta el script a Xp te sirva.
avatar
Dariel Lopez
Veterano
Veterano

0/3

Créditos 716

Gracias : 43

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por Ledai el 2018-08-09, 11:58

Tal vez si son frases cortas siempre puedes usar imágenes para recrear dicho efecto; usar una imagen que tenga la frase "No puedes hacer eso." dibujada y luego colocarla mediante coordenadas con un mostrar imagen en donde quieras de la pantalla, y al mismo tiempo un mover imagen para quitarle la opacidad en unos 20 o 40 frames; también puedes hacer efectos más trabajados como quitarle el % de ancho o lo que se te ocurra.

Lo único malo de eso es que no podrás borrar dicha imagen tras hacerla desaparecer, pero si se trata de un comando que va a ser utilizado frecuentemente en el juego, tampoco es que pase nada con que la imagen se quede en pantalla de modo invisible; tan solo tratar de que eso no pase con muchas ID de imágenes para que no cause lagg.
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5209

Gracias : 215

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por SeralTek el 2018-08-09, 13:35

@Ledai escribió:Tal vez si son frases cortas siempre puedes usar imágenes para recrear dicho efecto; usar una imagen que tenga la frase "No puedes hacer eso." dibujada y luego colocarla mediante coordenadas con un mostrar imagen en donde quieras de la pantalla, y al mismo tiempo un mover imagen para quitarle la opacidad en unos 20 o 40 frames; también puedes hacer efectos más trabajados como quitarle el % de ancho o lo que se te ocurra.

Lo único malo de eso es que no podrás borrar dicha imagen tras hacerla desaparecer, pero si se trata de un comando que va a ser utilizado frecuentemente en el juego, tampoco es que pase nada con que la imagen se quede en pantalla de modo invisible; tan solo tratar de que eso no pase con muchas ID de imágenes para que no cause lagg.

Gracias por la intención, pero no me srive, necesito que sea un script.
avatar
SeralTek
Iniciado
Iniciado

0/3

Créditos 22

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por silvanash el 2018-08-09, 14:30

Código:
class Scene_Map
 
  alias slv_lazy_ass_map_spam_init initialize unless $@
 
  def initialize
    slv_lazy_ass_map_spam_init
    @slv_im_a_lazy_ass_that_cant_code_an_event = 0
  end
 
  alias slv_im_a_lazy_ass_main main unless $@
 
  def main
    slv_im_a_lazy_ass_main
    @slv_im_a_lazy_ass_that_cant_code_an_event = 0
    if !@slv_feck_me.nil?
      @slv_feck_me.bitmap.dispose
      @slv_feck_me.dispose
      @slv_feck_me = nil
    end
  end
 
  alias slv_feeeeeck_update update unless $@
 
  def update
    if @slv_im_a_lazy_ass_that_cant_code_an_event > 0
      if @slv_feck_me.nil?
        $game_system.se_play($data_system.buzzer_se)
        @slv_feck_me = Sprite.new
        @slv_feck_me.bitmap = Bitmap.new(120, 32)
        @slv_feck_me.bitmap.draw_text(0, 0, 120, 32, "You can't do that!")
      end
      @slv_im_a_lazy_ass_that_cant_code_an_event -= 1
      if @slv_im_a_lazy_ass_that_cant_code_an_event <= 0
        @slv_feck_me.bitmap.dispose
        @slv_feck_me.dispose
        @slv_feck_me = nil
      end
    end
    slv_feeeeeck_update
  end
 
  def slv_pop
    @slv_im_a_lazy_ass_that_cant_code_an_event = 120
  end
 
end

Todo tuyo. No pido créditos.

Se activa llamando a

Código:
$scene.slv_pop
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 205

Gracias : 251

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por SeralTek el 2018-08-09, 14:35

@silvanash escribió:
Código:
class Scene_Map
  
  alias slv_lazy_ass_map_spam_init initialize unless $@
  
  def initialize
    slv_lazy_ass_map_spam_init
    @slv_im_a_lazy_ass_that_cant_code_an_event = 0
  end
  
  alias slv_im_a_lazy_ass_main main unless $@
  
  def main
    slv_im_a_lazy_ass_main
    @slv_im_a_lazy_ass_that_cant_code_an_event = 0
    if !@slv_feck_me.nil?
      @slv_feck_me.bitmap.dispose
      @slv_feck_me.dispose
      @slv_feck_me = nil
    end
  end
  
  alias slv_feeeeeck_update update unless $@
  
  def update
    if @slv_im_a_lazy_ass_that_cant_code_an_event > 0
      if @slv_feck_me.nil?
        $game_system.se_play($data_system.buzzer_se)
        @slv_feck_me = Sprite.new
        @slv_feck_me.bitmap = Bitmap.new(120, 32)
        @slv_feck_me.bitmap.draw_text(0, 0, 120, 32, "You can't do that!")
      end
      @slv_im_a_lazy_ass_that_cant_code_an_event -= 1
      if @slv_im_a_lazy_ass_that_cant_code_an_event <= 0
        @slv_feck_me.bitmap.dispose
        @slv_feck_me.dispose
        @slv_feck_me = nil
      end
    end
    slv_feeeeeck_update
  end
  
  def slv_pop
    @slv_im_a_lazy_ass_that_cant_code_an_event = 120
  end
  
end

Todo tuyo. No pido créditos.

Se activa llamando a

Código:
$scene.slv_pop

no me funciona, solo se escucha un sonido al llamar al script, pero no aparece ningun mensaje. ¿Solo tengo que crear un nuevo script encima de main y pegar el codigo?
avatar
SeralTek
Iniciado
Iniciado

0/3

Créditos 22

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por silvanash el 2018-08-09, 14:39

Esquina superior derecha de la pantalla.

Y se me olvidó mencionarlo, pero no voy a mantener el código ni a adaptarlo. Si necesitas otra cosa tendrás que molestar a orochii.
avatar
silvanash
Aventurero
Aventurero

0/3

Créditos 205

Gracias : 251

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por SeralTek el 2018-08-09, 14:42

@silvanash escribió:Esquina superior derecha de la pantalla.

Y se me olvidó mencionarlo, pero no voy a mantener el código ni a adaptarlo. Si necesitas otra cosa tendrás que molestar a orochii.

No funciona, no se ve nada. Pero no importa gracias por la intención Cool
avatar
SeralTek
Iniciado
Iniciado

0/3

Créditos 22

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por Ledai el 2018-08-09, 15:04

Deberían de servirte ambas opciones; tanto mediante imagen como con el aporte de silvanash, acabo de probar el script y funciona perfectamente.
Asegúrate de ponerlo sobre Main y de usar una llamada a script con el comando. y te saldrá esto:


Si aún así sigue sin servirte prueba mediante imagen, que se tarda prácticamente lo mismo en configurarlo.

Suerte.
avatar
Ledai
Aventurero
Aventurero

0/3

Créditos 5209

Gracias : 215

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por SeralTek el 2018-08-09, 15:16

@silvanash escribió:Esquina superior derecha de la pantalla.

Y se me olvidó mencionarlo, pero no voy a mantener el código ni a adaptarlo. Si necesitas otra cosa tendrás que molestar a orochii.

Perdon, si funcionabe, lo que ocurre es que tengo una HUD en la parte superior izquierda, necesito que el mensaje salga a la derecha en vez de a la izquierda
avatar
SeralTek
Iniciado
Iniciado

0/3

Créditos 22

Gracias : 2

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por Dariel Lopez el 2018-08-09, 23:21

Disculpen que me meta de metiche pero con solo cambiar las coordenadas en el script el mensaje aparecerá donde se lo especifiques.
Creo que esto es lo que debes de cambiar:
@slv_feck_me.bitmap.draw_text(0, 0, 120, 32,
y si no lo que está arriba de eso o ambas cosas.
Prueba y ve si funciona que no pierdes nada con hacerlo, yo no lo hago porque uso el Vx Ace.
avatar
Dariel Lopez
Veterano
Veterano

0/3

Créditos 716

Gracias : 43

Volver arriba Ir abajo

RPG Maker XP Re: MENSAJE EN PANTALLA

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


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