Conectarse

Recuperar mi contraseña

Buscar
 
 

Resultados por:
 


Rechercher Búsqueda avanzada

Últimos temas
» Engine Día, Atardecer, Noche y Clima
por Carlosjavierr Vie Sep 10, 2010 11:08 am

» Engine Armas y Hechizos
por Carlosjavierr Vie Sep 10, 2010 11:08 am

» Engine Busca Tesoros ( Detector de Metales )
por Carlosjavierr Vie Sep 10, 2010 11:07 am

» Engine sentarse VX ( y recuperas vida )
por Carlosjavierr Vie Sep 10, 2010 11:07 am

» Engine Sentarse ( y recuperas vida ) Nueva version
por Carlosjavierr Vie Sep 10, 2010 11:07 am

» Nueva version de mi engine pet!!! 1.01
por Carlosjavierr Vie Sep 10, 2010 11:06 am

» Engine Compra de Habilidades
por Carlosjavierr Vie Sep 10, 2010 11:06 am

Mejores posteadores
Carlosjavierr (71)
 
555Goku5551 (46)
 
wachuflame2 (4)
 
Kailcor (3)
 

¿Quién está en línea?
En total hay 1 usuario en línea: 0 Registrados, 0 Ocultos y 1 Invitado

Ninguno

[ Ver toda la lista ]


La mayor cantidad de usuarios en línea fue 10 el Dom Jul 05, 2015 4:15 am.
Afiliados
Maker Palace
True Role Dreams
Visitas


[RMXP]Misiones interactivas

Ver el tema anterior Ver el tema siguiente Ir abajo

[RMXP]Misiones interactivas

Mensaje  Carlosjavierr el Vie Feb 05, 2010 8:02 pm

Saludos

Como muchos se habran dado cuenta este script fue pasando un proceso de beta tester para llegar a ser lo que es ahora, un script de misiones interactivas.

Este script fue terminado hace unos 3 dias pero por motivos personales no me habia quedado tiempo de publicarlo.

Caracteristicas

- Permite crear todas las misiones que necesites
- Descripcion para cada mision
- Lista de mision
- Activar interruptor al completar mision
- Obtener recompensas como Items, weapon, armos o Dinero
- Facil de usar


Instrucciones

Solo copiar y pegar el script encima de main, No se requiere de ninguna imagen

Para agregar una mision ya creada al inventario hacerlo asi:
Tareas.mision(id) En vez de 'id' pon el ID de mision a agregar

Para completar una mision usar el siguiente comando
Tareas.completar_mision(id) En vez de 'id' pon el ID de mision a

Para llamar el script basta con pulsar tecla 'A' por defecto
Instrucciones mas detalladas estan dentro del script.


Creditos

By Falcao


Agradecimientos

Ares
Luneth
Lowsenin

Por ayudarme con algunas ideas sobre el script.


Demo

Misiones Interactivas Demo


Screens

Spoiler:



Spoiler:




script en codigo

Código:

#========================================================================#
#  #*****************#        Misiones interactivas V 1.0 Falcao script # 
#  #*** By Falcao ***#        Permite crear misiones mostrando la lista #
#  #*****************#        en una scene. Permite crear de 1 hasta    #
#        RMXP                un trillon de misiones segun el caso.    #
# makerpalace.onlinegoo.com    Date 11/16/2009                          # 
#========================================================================#

#------------------------------------------------------------------------
# * Instrucciones
#
# Solo basta con copiar y pegar el script encima de main, editar las
# misiones que necesites en el module de abajo
#
# Para llamar el script basta con pulsar tecla 'A' por defecto
# pero puede ser llamado manualmente usando el siguiente codigo
#
# $scene = Scene_Mision.new
#
# Para agregar una mision ya creada al inventario hacerlo asi:
#
# Tareas.mision(id)          En vez de 'id' pon el ID de mision a agregar
#
# Para completar una mision usar el siguiente comando
#
# Tareas.completar_mision(id)  En vez de 'id' pon el ID de mision a
# Completar. Ejemplo: Tareas.completar_mision(1) Completa id 1
#
#
# Licensia: Puede ser usado en juegos comerciales o no comerciales
#
# Creditos: By Falcao
#
#-------------------------------------------------------------------------

module Tareas
 
  # Nombre de la mision:  A = ID de mision, B = Nombre de mision
  Nombre = {
 
    1=> 'Rescatar a pulga',
    2=> 'Ver al Presidente',
    3=> 'La conquista',
    4=> 'Hierva Medicinal',
 
  }
 
 
  # Descripciones:  A = ID de mision, B = contenido soporta 3 lineas
  Descripcion = {
 
    1=> ['Ir al pueblo del rey falcao, robarle las llaves reales',
        'luego ir a rescatar a la princesa pulga barata encerrada',
        'en la masmorra oscura del castillo'],
     
    2=> ['Una de las prinsipales metas que tenes que cumplir es',
        'darle una buena patada en el culo al presidente de',
        'Enterbrain por sacar el maker mierda del vx'],
     
    3=> ['Conquistar el mundo es una de las tareas mas dificiles',
        'que solo se le ocurren a los enfermos mentales',
        'si quieres intentalo seria bueno ver el fracaso'],
       
    4=> ['La princesa Arisleyda a sido mordida por una de las',
        'serpientes mas venenosas del bosque Maker Palace',
        'se podra salvar solo con la planta hierva medicinal'],
       
  }
 
 
  # Tareas de mision:  A = ID de mision, B = contenido soporta 2 lineas
  Pasos = {
 
    1=> ['Robarle las llaves al rey Falcao',
        'Rescatar a la prinsesa pulga barata'],
     
    2=> ['Ir al pueblo donde se encuentra el presidente',
        'Darle una buena parada al presindete'],
     
    3=> ['Conquistar el mundo',
        'none'],
       
    4=> ['Conseguir 10 Hojas de hierva medicinal',
        'Darle el antidoto a la princesa Arisleyda'],         
 
       
  }
 
 
  # Recompensa en Items:  A = ID de mision, B = [Tipo de Item, ID de Item]
  Reward_Items = {
 
    1=> ['item',  2],
    2=> ['armor',  3],
    3=> ['weapon', 1],
    4=> ['weapon', 19],
 
  }
 
 
  # Recompensa en dinero:  A = ID de mision, B = Cantidad de dinero
  Reward_Gold = {
 
    1=> 5,
    2=> 10,
    3=> 20,
    4=> 10,
 
  }
 
 
  #-----------------------------------------------------------------------
  # * Funsiones extras tu decides si las usas o no
 
  # Items necesarios para completar una mision, esto es para realizar una
  # busqueda mas avanzada,
  # A = ID de mision,  B = [ID de item, Cantidad necesaria]
  Items_Needed = {
 
    4=> [11, 10],
 
  }
 
 
  # Activar interruptor al completar mision, esto puede ser opcional
  # A = ID de mision,  B = ID de interruptor
  Mision_Switch = {
 
    3=> 50,
 
  }
 
  #----------------------------------------------------------------------
  # *Configuracion del systema en general
 
  # Tocar sonido ME al completar una mision, si no se quiere sonido dejar
  # comillas en blanco ""
  Play_Mision_Me = "015-Mystery01"
 
  # Tiempo en segundos para mostrar la ventana cuando una mision se a
  # completado
  Pop_Mision_Time = 3
 
  # Boton para llamar el script tecla 'A' del teclado
  Call_Mision = Input::X
 
  # Impedir llamar el script por medio de la tecla especificada
  # Por defecto esto va desactivado  false
  Disable_Mision_Call = false
 
 #-----------------------------------------------------------------------
 # System
 
 $falcao_mision = []
 $falcao_completed = []
 $mision_data = [id = nil, item = nil, gold = nil, pop_time = 0, show = false]
 
 def self.mision(id)
  unless $falcao_mision.include?(id)
    $falcao_mision.push(id)
  end
 end
 
 def self.completar_mision(mision_id)
  return unless $falcao_mision.include?(mision_id)
  unless $falcao_completed.include?(mision_id)
    $mision_data[0] = mision_id
    Reward_Items.each do |id, value|
      if id == mision_id
        case value[0]
        when 'item'
          item = $data_items[value[1]]
          $game_party.gain_item(item.id, 1)
          $mision_data[1] = item
        when 'weapon'
          weapon = $data_weapons[value[1]]
          $game_party.gain_weapon(weapon.id, 1)
          $mision_data[1] = weapon
        when 'armor'
          armor = $data_armors[value[1]]
          $game_party.gain_armor(armor.id, 1)
          $mision_data[1] = armor
        end
      end
      $falcao_completed.push(mision_id)
    end
    #gold
    Reward_Gold.each do |id, value|
      if id == mision_id
        $game_party.gain_gold(value)
        $mision_data[2] = value
      end
    end
    # Switch
    Mision_Switch.each do |id, value|
      if id == mision_id
        $game_switches[value] = true
        $game_map.need_refresh = true
      end
    end
    Items_Needed.each do |id, value|
      if id == mision_id
        if $game_party.item_number(value[0]) < value[1]
          $game_party.gain_item(value[0], value[1])
        end
      end
    end
    $mision_data[4] = true
    $mision_data[3] = 40 * Pop_Mision_Time
    Audio.me_play("Audio/Me/" + Play_Mision_Me)
  end
 end
end

class Font
  alias falcaoBest_font initialize
  def initialize
    falcaoBest_font
    if $scene.is_a?(Scene_Mision) or $mision_data[4]
      self.name = "Georgia"
      self.size = 20
    end
  end
end

class Misiones < Window_Base
  include Tareas
  def initialize
    super(180, 64, 460, 416)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.opacity = 255
  end
 
  def refresh(mision_id)
    self.contents.clear
    @mision_id = mision_id
    draw_grid(0,336)
    draw_grid(225,336)
    if $falcao_mision.include?(mision_id)
      draw_mision_contents
    else
      self.contents.draw_text(-20, 100, self.width, 50, "No hay datos",1)
    end
  end
 
  def draw_mision_contents
    Nombre.each do |id, value|
      if id == @mision_id
        self.contents.font.color = Color.new(255, 120, 0, 255)
        self.contents.draw_text(-20, 0, self.width, 50 , value,1)
      end
    end
    Descripcion.each do |id, value|
      if id == @mision_id
        self.contents.font.color = system_color
        self.contents.draw_text(0, 40, self.width, 50 , "Descripcion:")
        self.contents.font.color = normal_color
        self.contents.draw_text(0, 70, self.width, 50 , value[0])
        self.contents.draw_text(0, 94, self.width, 50 , value[1])
        self.contents.draw_text(0, 119, self.width, 50 , value[2])
      end
    end
    Pasos.each do |id, value|
      if id == @mision_id
        self.contents.font.color = system_color
        self.contents.draw_text(0, 165, self.width, 50 , "Tareas:")
        self.contents.font.color = normal_color
        self.contents.draw_text(0, 197, self.width, 50 ,'1-  ' + value[0])
        self.contents.draw_text(0, 222, self.width, 50 ,'2-  ' + value[1])
      end
    end
    Reward_Items.each do |id, value|
      if id == @mision_id
        case value[0]
        when 'item'
          item = $data_items[value[1]]
        when 'weapon'
          item = $data_weapons[value[1]]
        when 'armor'
          item = $data_armors[value[1]]
        end
        self.contents.font.color = system_color
        self.contents.draw_text(0, 270, self.width, 50 , "Recompensa:")
        self.contents.font.color = normal_color
        icon = RPG::Cache.icon(item.icon_name) rescue nil
        self.contents.blt(20, 344, icon, Rect.new(0, 0, 24, 24),255) rescue nil
        self.contents.draw_text(50, 335, self.width, 50 , item.name)
      end
    end
    Reward_Gold.each do |id, value|
      if id == @mision_id
        icon = RPG::Cache.icon("032-Item01") rescue nil
        self.contents.blt(240, 344,icon,Rect.new(0, 0, 24, 24), 255) rescue nil
        self.contents.draw_text(275, 335, self.width, 50,
        "#{value.to_s}  #{$data_system.words.gold}")
      end
    end
  end
 
  def draw_grid(x,y)
    width = 200
    color = system_color
    self.contents.fill_rect(x+2, y-2, width-4, 1, color)
    self.contents.fill_rect(x+1, y-1, width-2, 1, color)
    self.contents.fill_rect(x, y, width, 1, color)
    self.contents.fill_rect(x, y+1, 3, 45, color)
    self.contents.fill_rect(x+ 197, y+1, 3, 45, color)
    self.contents.fill_rect(x, y+45, width, 1, color)
    self.contents.fill_rect(x+1, y+46, width-2, 1, color)
    self.contents.fill_rect(x+2, y+47, width-4, 1, color)
  end
end

class Mision_Indice < Window_Selectable
  def initialize(x=0,y=0)
    super(x, y, 180, 390)
    @column_max = 1
    refresh
    self.index = 0
  end

  def refresh
    if self.contents != nil
      self.contents.dispose
      self.contents = nil
    end
    @data = []
    for i in Tareas::Nombre.values
      @data.push(i)
    end
    @item_max = @data.size
    $all_quests = @data.size
    if @item_max > 0
      self.contents = Bitmap.new(width - 32, row_max * 32)
      for i in 0...@item_max
        draw_item(i)
      end
    end
  end
 
  def draw_item(index)
    nombre = @data[index]
    self.contents.font.color = normal_color
    x, y = 4, index * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    if $falcao_mision.include?(index + 1)
      self.contents.draw_text(x, y, 212, 32, nombre)
    else
      self.contents.font.color = disabled_color
      self.contents.draw_text(x, y, 212, 32, "Bloqueado")
    end
  end
end

class Mision_Help < Window_Base
  def initialize(x=0,y=0,ancho=640, alto=64)
    super(x, y, ancho, alto)
    self.contents = Bitmap.new(width - 32, height - 32)
  end
  def set_progress
    self.contents.clear
    self.contents.draw_text(0, 0, self.width, 32 , "Misiones")
    mision = $falcao_mision.size
    texto = "#{"Progreso"}    #{mision * 100/$all_quests}%"
    self.contents.draw_text(0, 30, self.width, 32 , texto)
  end
 
  def set_status(mision_id)
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.draw_text(0, 0, self.width, 32 , "Mision Status:")
    if $falcao_mision.include?(mision_id)
      draw_needed_items(mision_id)
      if $falcao_completed.include?(mision_id)
        self.contents.font.color = Color.new(128, 255, 128, 255)
        self.contents.draw_text(120, 0, self.width, 32 , "Completada!")
      else
        self.contents.font.color = normal_color
        self.contents.draw_text(120, 0, self.width, 32 , "En proceso")
      end
    else
      self.contents.font.color = disabled_color
      self.contents.draw_text(120, 0, self.width, 32 , "Bloqueada")
    end
  end
 
  def draw_needed_items(mision_id)
    Tareas::Items_Needed.each do |id, value|
      if id == mision_id
        draw_grid(280,1)
        item = $data_items[value[0]]
        icon = RPG::Cache.icon(item.icon_name) rescue nil
        self.contents.blt(290, 3, icon, Rect.new(0, 0, 24, 24), 255) rescue nil
        c = $game_party.item_number(item.id); n = value[1]; w = self.width
        self.contents.draw_text(340, 0, w, 32,"#{c.to_s}  /  #{n.to_s}")
      end
    end
  end
 
  def draw_grid(x,y)
    width = 150
    color = system_color
    self.contents.fill_rect(x+2, y-2, width-4, 1, color)
    self.contents.fill_rect(x+1, y-1, width-2, 1, color)
    self.contents.fill_rect(x, y, width, 1, color)
    self.contents.fill_rect(x, y+1, 3, 30, color)
    self.contents.fill_rect(x+ 147, y+1, 3, 30, color)
    self.contents.fill_rect(x, y+30, width, 1, color)
    self.contents.fill_rect(x+1, y+31, width-2, 1, color)
    self.contents.fill_rect(x+2, y+32, width-4, 1, color)
  end
end

class Pop_Mision < Window_Base
  def initialize
    super(170, 0, 300, 190)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.contents.font.name = "Georgia"
    self.contents.font.size = 20
    self.opacity = 200
    refresh
  end
 
  def refresh
    self.contents.clear
    data = $mision_data
    return unless data[4]
    self.contents.font.color = normal_color
    if data[3] > 0; data[3] -= 1
    Tareas::Nombre.each do |id, value|
      if id == data[0]
        self.contents.draw_text(-20, 0,self.width,32, "#{value} Completada!",1)
      end
    end
    self.contents.font.color = system_color
    self.contents.draw_text(0, 45, self.width, 32 , "Recompensas:")
    #Items
    self.contents.font.color = normal_color
    if data[1] != nil
      icon = RPG::Cache.icon(data[1].icon_name) rescue nil
      self.contents.blt(0, 85, icon, Rect.new(0, 0, 24, 24), 255) rescue nil
      self.contents.draw_text(35, 85, self.width, 32 , data[1].name)
    end
    #Gold
    if data[2] != nil
      icon = RPG::Cache.icon("032-Item01") rescue nil
      if data[1] == nil
        x = 35; y = 85
      else
        x = 40; y = 121
      end
      self.contents.blt(0, y, icon, Rect.new(0, 0, 24, 24), 255) rescue nil
      self.contents.draw_text(x, y, self.width, 32,
      "#{data[2].to_s}  #{$data_system.words.gold}")
    end
    $mision_data = [nil, nil, nil, 0, false] if data[3] == 1
  end
  end
end 
 
class Scene_Mision
  def main
    @indice_mision = Mision_Indice.new(0,90)
    @misiones = Misiones.new
    @misiones.refresh(@indice_mision.index + 1)
    @title =  Mision_Help.new(180,0,462)
    @title.set_status(@indice_mision.index + 1)
    @progress = Mision_Help.new(0,0,180,90)
    @progress.set_progress
    Graphics.transition
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    Graphics.freeze
    @indice_mision.dispose
    @misiones.dispose
    @title.dispose
    @progress.dispose
  end
  def update
    @indice_mision.update
    @mision = @indice_mision.index + 1
    update_parametros
    if Input.trigger?(Input::B)
      $game_system.se_play($data_system.cancel_se)
      $scene = Scene_Map.new
      return
    end
  end
  def update_parametros
    @misiones.refresh(@mision)
    @title.set_status(@mision)
  end
end 
 
class Scene_Map
  include Tareas
  alias falcao_mision_main main
  def main
    @mision_pop = Pop_Mision.new
    $mision_data[4] ? @mision_pop.visible = true : @mision_pop.visible = false
    falcao_mision_main
    @mision_pop.dispose
  end
  alias falcao_mision_update update
  def update
    falcao_mision_update
    if $mision_data[4]
      @mision_pop.refresh
      @mision_pop.visible = true
    else
      @mision_pop.visible = false
    end
    if Input.trigger?(Call_Mision) and !Disable_Mision_Call
      $scene = Scene_Mision.new
      return
    end
  end
end

class Scene_Save 
  alias falcao_write_mision write_save_data
  def write_save_data(file)
    falcao_write_mision(file)
    Marshal.dump($falcao_mision, file)
    Marshal.dump($falcao_completed, file)
    Marshal.dump($mision_data, file)
  end
end

class Scene_Load
  alias falcao_read_mision read_save_data
  def read_save_data(file)
    falcao_read_mision(file)
    $falcao_mision    = Marshal.load(file)
    $falcao_completed  = Marshal.load(file)
    $mision_data      = Marshal.load(file)
  end
end

Creditos : Falcao
avatar
Carlosjavierr
Administrador
Administrador

Mensajes : 71
Gracias : 20
Fecha de inscripción : 04/02/2010
Edad : 26

Ver perfil de usuario http://makercomunity.fororama.com

Volver arriba Ir abajo

Re: [RMXP]Misiones interactivas

Mensaje  555Goku5551 el Vie Feb 05, 2010 8:14 pm

ese ya lo tengo xD muy bueno Smile
avatar
555Goku5551
Administrador
Administrador

Mensajes : 46
Gracias : 8
Fecha de inscripción : 04/02/2010
Edad : 22
Localización : Guarenas

Ver perfil de usuario http://ogaku-oficial.mi-foro.es

Volver arriba Ir abajo

Re: [RMXP]Misiones interactivas

Mensaje  Carlosjavierr el Vie Feb 05, 2010 8:45 pm

jeje yo tambien lo uso... puede que lo use para mi zelda y todo xD... me inventare algo por ay...
avatar
Carlosjavierr
Administrador
Administrador

Mensajes : 71
Gracias : 20
Fecha de inscripción : 04/02/2010
Edad : 26

Ver perfil de usuario http://makercomunity.fororama.com

Volver arriba Ir abajo

Re: [RMXP]Misiones interactivas

Mensaje  Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

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