EDIT:
mi juego ha tenido muchos cambios desde que publique este post, asi que borro la informacion por ahora.. creo que el que vio el anime entendera mas o menos como sera
el motor grafico es 2D

haber, inventando un poco se me ocurrio una ideajorge69696 escribió:Bueno primero te felicito por tener la iniciativa para empezar el proyecto.
El formato de quests generalmente es:
- Nombre de la quest
- Descripcion de la historia o eventos anteriores
- Objetivo especifico
El icono puede ser un simple punto negro que al completarse la quest, aparece un visto bueno verde. Si falla la quest, se coloca una X roja.
Saber programar ayuda ( ruby ) pero puedes crear el juego sin tener que programar. Yo uso el programa RPG MAKER, tiene varias ediciones segun el año en que salioSnaaap escribió:Oye bro!, ta bueno viejito yo me estoy iniciando esto en la programacion quisiera preguntarte que programas usas y lenguajes para crear tu juego?
y algunas paginas que te ayuden al objetivo que quieres llegar, y asi yo poder ayudarme tambien!
Mucha Suerte
alirio_sasuke escribió:Hola amig0o como esta? Pues bueno lo felicito por esta iniciativa, que espero con ansias que termine para jugarlo.
Bueno yo no se nada de programacion pero les traigo algunas sugerencias.
Que cpuedes hacer algo asi tipo pokemon, avatr o algo asi, Que son por direfentes elmento: Aire, fuego, tierra y demas... La cual tu escoges
Aunque lo de las armas vabien, pero por ejemplo si eres elemnto Fuego convine los ataques.
Tambien puedes crearle algo asi como mascotas. Algo asi como de finall fantasy o word of warcraft.
Lo de lvl es bueno, pero lvl al personaje y no a las armas, claro que a medida que vayas lvleando saldran mas armas.
Saludos y apenas se me ocurra algo te dire
Snaaap escribió:Oye bro!, ta bueno viejito yo me estoy iniciando esto en la programacion quisiera preguntarte que programas usas y lenguajes para crear tu juego?
y algunas paginas que te ayuden al objetivo que quieres llegar, y asi yo poder ayudarme tambien!
Mucha Suerte
Código: Seleccionar todo
#========================================================================#
# #*****************# 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 = true
#-----------------------------------------------------------------------
# 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 = []
# Correccion de Kyonides-Arkanthos para que muestre el orden de las
# misiones de forma correcta, no desordenada como sucedia anteriormente
Tareas::Nombre.sort.each { |k, v| @data[k-1] = v }
@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
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
# TEXTO QUE INDICA EL ESTADO DE LA MISION
self.contents.font.color = normal_color
self.contents.draw_text(0, 0, self.width, 32 , "Estado:")
#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)
# TEXTO QUE DICE AL ESTAR COMPLETADA UNA MISION
self.contents.font.color = Color.new(128, 255, 128, 255)
self.contents.draw_text(120, 0, self.width, 32 , "Completada!")
#self.contents.draw_text(120, 0, self.width, 32 , "Completada!")
else
# TEXTO QUE DICE AL ESTAR EN PROCESO UNA MISION
self.contents.font.color = normal_color
self.contents.draw_text(120, 0, self.width, 32 , "En proceso")
#self.contents.draw_text(120, 0, self.width, 32 , "En proceso")
end
else
# TEXTO QUE DICE AL ESTAR BLOQUEADA,IN USAR,ECT UNA MISION
self.contents.font.color = disabled_color
self.contents.draw_text(120, 0, self.width, 32 , "")
#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