¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 [RMXP/VX/Ace] Editor personalizable el Miér Ene 09, 2013 4:30 am

orochii

avatar
Editor personalizable
Autor: Orochii Zouveleki - Versión 1.0 (para RGSS1, testeado en 1.02J)
Pero en teoría debería ser transferible .-.*
Descripción:
Bien, había mostrado una vez un editor que estaba haciendo. Pues bueno, he terminado el código, y lo he expandido para poder crear subeditores de manera bastante más sencilla. Aún necesitas ciertos conocimientos de lo que haces xD.
Ésto es una herramienta para scripters por cierto. Hecha tan sólo para... darles una opción distinta a las configuraciones inmensas xD. Como las que yo estaba generando en mi proyectou 8'D...

Características:

  • Crear editores de una manera bastante sencilla.
  • Expandible hasta el infinito (?).
  • Edición de strings por medio de una ventana a la que apodé KeybInput x'D...
  • Fácil de setear. El código está bastante optimizado para esa función.

Por ahora sólo hay soporte para datos numéricos y strings. Pero en el futuro pues, intentaré expandir eso...

Código:
Glitchfinder's Keyboard Input Module (XP/VX y probablemente Ace)
Window_KeybInput
Scene_EditBase
Código de ejemplo:
RPG Fylgja y Scene_Fylgja (ejemplo de editor)
Scene Title modificada

Instrucciones de uso:
Primero, el script necesita que creen una clase para lo que quieren editar. El ejemplo que les presento es el siguiente:
Código:
module RPG
  class Fylgja
    def initialize
      @id = 0
      @name = ""
      @initial_level = 1
      @final_level = 99
      @exp_basis = 30
      @exp_inflation = 30
      @parameters = []
      for i in 0..5
        @parameters[i] = 10
      end
      @skills = []
    end
    attr_accessor :id
    attr_accessor :name
    attr_accessor :initial_level
    attr_accessor :final_level
    attr_accessor :exp_basis
    attr_accessor :exp_inflation
    attr_accessor :parameters
    attr_accessor :skills
  end
end
Deben setear las "propiedades" incluídas dentro de la clase, y sus respectivos attr_accessor. DEBEN ser attr_accessor para que el editor pueda modificarlos xD.
Luego para crear una escena para esa clase, deben crear algo como ésto:
Código:
class Scene_Fylgja < Scene_EditBase
  #--------------------------------------------------------------------------
  # * Scene personal variables
  #--------------------------------------------------------------------------
  def data_name
    "$data_fylgja"
  end
 
  def filename
    return "Data/Fylgja.rxdata"
  end
 
  def basic_object
    "Fylgja"
  end
 
  def entry_name(i)
    "#{data[i].id}:#{data[i].name}"
  end
 
  def input_name
    [["ID: ",      "id",            0],
    ["Name: ",      "name",          1],
    ["Start Lv: ",  "initial_level",  0],
    ["Max Lv: ",    "final_level",    0],
    ["EXP Basis: ", "exp_basis",      0],
    ["EXP Raise: ", "exp_inflation",  0],
    ["LP Raise: ",  "parameters[0]",  0],
    ["MP Raise: ",  "parameters[1]",  0],
    ["STR Raise: ", "parameters[2]",  0],
    ["VIT Raise: ", "parameters[3]",  0],
    ["INT Raise: ", "parameters[4]",  0],
    ["AGI Raise: ", "parameters[5]",  0],
    ["Skills... ",  "skills.size",    0],
    ]
  end
end
Ese es todo el código necesario para crear un nuevo editor C:. Tomen en cuenta que TODO debe estar entrecomillado, es decir, ser strings. Todo se maneja a punta de eval() xD, para minimizar el "código real" 8D.
data_name: devuelve el nombre de la variable global donde se guardarán los datos (al estilo de $data_system y por el estilo).
filename: nombre del archivo donde se guardará lo hecho en ese editor.
basic_object: nombre de la clase básica que utilizará como objeto (la variable guardará un array de estos en su interior).
entry_name(i): el nombre mostrado en la columna izquierda. La i es el index de la ventana izquierda, por cierto, incluído para minimizar el código.
input_name: el grueso de la configuración. Una "tabla" de tres columnas: nombre del campo editable, nombre de la propiedad de la clase, y un número que define el tipo de valor contenido (usado para hacer conversiones de un tipo a otro). Por ahora sólo acepta 0 para número o 1 para string, pero más adelante se usaría para arrays, o incluso valores personalizados (clases y objetos propios).

Además la clase madre (Scene_EditBase) está dividida de la mejor manera que pude en submétodos, para facilitar su edición. Por si acaso alguien necesitase un behaviour distinto o algo.

Compatibilidad:
100% compatible con lo que sea. Los scripts, en teoría, son transferibles a cualquier maker. Igualmente, los archivos generados por el editor pueden ser leídos por XP, VX y Ace, nada más si quieren cambiarle la extensión a rvdata o rvdata2, pero el formato es el mismo... =D.

Registro de versiones:
8/1/2013 1.00. Versión inicial

Preguntas Frecuentes:
Ni media.

Saludos,
Orochii Zouveleki

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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