Necesito ayuda para hacer que el script de Falcao de quest funcione en el NetPlay3, pues ese script tiene las informaciones que neesito para el sistema de quest que quiero colocarle al juego, no se mucho de rgss, por eso lo estoy pidiendo
Si alguien pudiera hacerlo estaria muy agradecido..
Links:
Quest de Falcao:
Gracias
Si alguien pudiera hacerlo estaria muy agradecido..
Links:
Quest de Falcao:
- Código:
#========================================================================#
# #*****************# [b]Misiones[/b] interactivas V 1.0 Falcao script #
# #*** By Falcao ***# Permite crear [b]misiones[/b] mostrando la lista #
# #*****************# en una scene. Permite crear de 1 hasta #
# RMXP un trillon de [b]misiones[/b] segun el caso. #
# makerpalace.onlinegoo.com Date 11/16/2009 #
#========================================================================#
#------------------------------------------------------------------------
# * Instrucciones
#
# Solo basta con copiar y pegar el script encima de main, editar las
# [b]misiones[/b] 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 [b]Misiones[/b] < 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 , "[b]Misiones[/b]")
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)
@[b]misiones[/b] = [b]Misiones[/b].new
@[b]misiones[/b].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
@[b]misiones[/b].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
@[b]misiones[/b].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
Gracias