Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.
Conectarse

Recuperar mi contraseña

Temas importantes
----------------------------------------
Páginas con recursos RPG Maker
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
----------------------------------------
Afiliados
Estadísticas
Tenemos 3766 miembros registrados.
El último usuario registrado es stranger2525.

Nuestros miembros han publicado un total de 85800 mensajes en 12217 argumentos.

preguntas sobre script

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker VX ACE preguntas sobre script

Mensaje por conorTAT el 2017-10-17, 21:57

Hola estoy aprendiendo a hacer script en un proyecto que solo uso para hacer pruebas
Bueno en fin mi problema es el siguiente quiero agregar una opcion llamada misiones hice de todo para añadirlo y el resultado es este:

Se ve el espacio pero no la palabra y queria saber que me falta
Porque hice de todo lo añadí a la script vocab a windows menú command y scene_menu y ya no se que hacer
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por xXIsrael0499Xx el 2017-10-17, 22:14

Pues no somos adivinos y hay muchas cosas que pudiste haber hecho así que si no sabemos cuales son pues "Telita".

Así que te sugiero que pases lo que hiciste, tranqui no te lo vamos a robar, entonces retomando el tema, pasa lo que hiciste para ver que hiciste mal y esas weas.

P/D: Acuérdate de pasar los 2 scripts que modificaste y eso.
avatar
xXIsrael0499Xx
Principiante
Principiante

0/3

Créditos 1095

Gracias : 56

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por conorTAT el 2017-10-17, 22:23

Esto fue lo que hice fíjense donde puse mission.
Código:

#==============================================================================
# ** Window_MenuCommand
#------------------------------------------------------------------------------
#  This command window appears on the menu screen.
#==============================================================================

class Window_MenuCommand < Window_Command
  #--------------------------------------------------------------------------
  # * Initialize Command Selection Position (Class Method)
  #--------------------------------------------------------------------------
  def self.init_command_position
    @@last_command_symbol = nil
  end
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
    select_last
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width
    return 160
  end
  #--------------------------------------------------------------------------
  # * Get Number of Lines to Show
  #--------------------------------------------------------------------------
  def visible_line_number
    item_max
  end
  #--------------------------------------------------------------------------
  # * Create Command List
  #--------------------------------------------------------------------------
  def make_command_list
    add_main_commands
    add_mission_command
    add_formation_command
    add_original_commands
    add_save_command
    add_game_end_command
  end
  #--------------------------------------------------------------------------
  # * Add Main Commands to List
  #--------------------------------------------------------------------------
  def add_main_commands
    add_command(Vocab::item,   :item,   main_commands_enabled)
    add_command(Vocab::skill,  :skill,  main_commands_enabled)
    add_command(Vocab::equip,  :equip,  main_commands_enabled)
    add_command(Vocab::status, :status, main_commands_enabled)
  end
  def add_mission_command
   add_command(Vocab::mission, :mission, mission_enabled)
   end
  #--------------------------------------------------------------------------
  # * Add Formation to Command List
  #--------------------------------------------------------------------------
  def add_formation_command
    add_command(Vocab::formation, :formation, formation_enabled)
  end
  #--------------------------------------------------------------------------
  # * For Adding Original Commands
  #--------------------------------------------------------------------------
  def add_original_commands
  end
  #--------------------------------------------------------------------------
  # * Add Save to Command List
  #--------------------------------------------------------------------------
  def add_save_command
    add_command(Vocab::save, :save, save_enabled)
  end
  #--------------------------------------------------------------------------
  # * Add Exit Game to Command List
  #--------------------------------------------------------------------------
  def add_game_end_command
    add_command(Vocab::game_end, :game_end)
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Main Commands
  #--------------------------------------------------------------------------
  def main_commands_enabled
    $game_party.exists
  end
  
   def mission_enabled
    
     end
  #--------------------------------------------------------------------------
  # * Get Activation State of Formation
  #--------------------------------------------------------------------------
  def formation_enabled
    $game_party.members.size >= 2 && !$game_system.formation_disabled
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Save
  #--------------------------------------------------------------------------
  def save_enabled
    !$game_system.save_disabled
  end
  #--------------------------------------------------------------------------
  # * Processing When OK Button Is Pressed
  #--------------------------------------------------------------------------
  def process_ok
    @@last_command_symbol = current_symbol
    super
  end
  #--------------------------------------------------------------------------
  # * Restore Previous Selection Position
  #--------------------------------------------------------------------------
  def select_last
    select_symbol(@@last_command_symbol)
  end
end


Código:

#==============================================================================
# ** Scene_Menu
#------------------------------------------------------------------------------
#  This class performs the menu screen processing.
#==============================================================================

class Scene_Menu < Scene_MenuBase
  #--------------------------------------------------------------------------
  # * Start Processing
  #--------------------------------------------------------------------------
  def start
    super
    create_command_window
    create_gold_window
    create_status_window
  end
  #--------------------------------------------------------------------------
  # * Create Command Window
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_MenuCommand.new
    @command_window.set_handler(:item,      method(:command_item))
    @command_window.set_handler(:skill,     method(:command_personal))
    @command_window.set_handler(:equip,     method(:command_personal))
    @command_window.set_handler(:status,    method(:command_personal))
    @command_window.set_handler(:mission,     method(:command_mission))
    @command_window.set_handler(:formation, method(:command_formation))
    @command_window.set_handler(:save,      method(:command_save))
    @command_window.set_handler(:game_end,  method(:command_game_end))
    @command_window.set_handler(:cancel,    method(:return_scene))
  end
  #--------------------------------------------------------------------------
  # * Create Gold Window
  #--------------------------------------------------------------------------
  def create_gold_window
    @gold_window = Window_Gold.new
    @gold_window.x = 0
    @gold_window.y = Graphics.height - @gold_window.height
  end
  #--------------------------------------------------------------------------
  # * Create Status Window
  #--------------------------------------------------------------------------
  def create_status_window
    @status_window = Window_MenuStatus.new(@command_window.width, 0)
  end
  #--------------------------------------------------------------------------
  # * [Item] Command
  #--------------------------------------------------------------------------
  def command_item
    SceneManager.call(Scene_Item)
  end
  #--------------------------------------------------------------------------
  # * [Skill], [Equipment] and [Status] Commands
  #--------------------------------------------------------------------------
  def command_personal
    @status_window.select_last
    @status_window.activate
    @status_window.set_handler(:ok,     method(:on_personal_ok))
    @status_window.set_handler(:cancel, method(:on_personal_cancel))
  end

def command_mission
   SceneManager.call(Scene_Save)
  end
  #--------------------------------------------------------------------------
  # * [Formation] Command
  #--------------------------------------------------------------------------
  def command_formation
    @status_window.select_last
    @status_window.activate
    @status_window.set_handler(:ok,     method(:on_formation_ok))
    @status_window.set_handler(:cancel, method(:on_formation_cancel))
  end
  #--------------------------------------------------------------------------
  # * [Save] Command
  #--------------------------------------------------------------------------
  def command_save
    SceneManager.call(Scene_Save)
  end
  #--------------------------------------------------------------------------
  # * [Exit Game] Command
  #--------------------------------------------------------------------------
  def command_game_end
    SceneManager.call(Scene_End)
  end
  #--------------------------------------------------------------------------
  # * [OK] Personal Command
  #--------------------------------------------------------------------------
  def on_personal_ok
    case @command_window.current_symbol
    when :skill
      SceneManager.call(Scene_Skill)
    when :equip
      SceneManager.call(Scene_Equip)
    when :status
      SceneManager.call(Scene_Status)
    end
  end
  #--------------------------------------------------------------------------
  # * [Cancel] Personal Command
  #--------------------------------------------------------------------------
  def on_personal_cancel
    @status_window.unselect
    @command_window.activate
  end
  #--------------------------------------------------------------------------
  # * Formation [OK]
  #--------------------------------------------------------------------------
  def on_formation_ok
    if @status_window.pending_index >= 0
      $game_party.swap_order(@status_window.index,
                             @status_window.pending_index)
      @status_window.pending_index = -1
      @status_window.redraw_item(@status_window.index)
    else
      @status_window.pending_index = @status_window.index
    end
    @status_window.activate
  end
  #--------------------------------------------------------------------------
  # * Formation [Cancel]
  #--------------------------------------------------------------------------
  def on_formation_cancel
    if @status_window.pending_index >= 0
      @status_window.pending_index = -1
      @status_window.activate
    else
      @status_window.unselect
      @command_window.activate
    end
  end
end



Última edición por conorTAT el 2017-10-17, 22:23, editado 1 vez (Razón : me equivoque)
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-10-18, 02:52

Donde pusiste el mission_enabled prueba a ponerle true. Puede ser dentro del método que hiciste, así.
Código:
def mission_enabled
    return true
end

Es una pendejada pero como ese método ahora mismo está devolviendo nil (al no retornar nada), podría ser que el método ese espere un true o un false, y el nil sea técnicamente que no se dibuje.

Pero hay que ver, en teoría con lo que has hecho ya debería andar... :T. Hace rato que no toco el Ace (típica excusa).
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por conorTAT el 2017-10-18, 16:34

He hecho lo que me dijiste y sigue sin aparecer y la verdad no se que pasa los tutoriales no ayudan son todos de versiones anteriores.
Lo que no entiendo es que cuando pongo mission no funciona pero pongo los por defecto y funciona.
Igual gracias por intentar ayudarme

Aca dejo tambien la script vocab porque no se si ahi falta algo por lo que no aparece el nombre

Código:

#==============================================================================
# ** Vocab
#------------------------------------------------------------------------------
#  This module defines terms and messages. It defines some data as constant
# variables. Terms in the database are obtained from $data_system.
#==============================================================================

module Vocab

  # Shop Screen
  ShopBuy         = "Comprar"
  ShopSell        = "Vender"
  ShopCancel      = "Salir"
  Possession      = "Tienes"

  # Status Screen
  ExpTotal        = "Experiencia Total"
  ExpNext         = "Restante %s"

  # Save/Load Screen
  SaveMessage     = "Donde desea guardar?"
  LoadMessage     = "Cual archivo desea cargar?"
  File            = "Archivo"
 

  # Display when there are multiple members
  PartyName       = "%s's"

  # Basic Battle Messages
  Emerge          = "%s Apareció!"
  Preemptive      = "%s Ataca Primero!"
  Surprise        = "%s Te sorprendió!"
  EscapeStart     = "%s Comienza a escapar...."
  EscapeFailure   = "No ha podido Escapar"

  # Battle Ending Messages
  Victory         = "%s Ha salido vencedor!"
  Defeat          = "%s Ha sido derrotado."
  ObtainExp       = "Ganas %s Puntos de Experiencia"
  ObtainGold      = "Obtienes %s \\G "
  ObtainItem      = "Obtienes %s"
  LevelUp         = "%s ha subido al nivel %s %s"
  ObtainSkill     = "Has obtenido la habilidad %s"

  # Use Item
  UseItem         = "%s Ha usado %s"

  # Critical Hit
  CriticalToEnemy = "Tu daño ha sido Critico!!!"
  CriticalToActor = "Te han dado un golpe Critico"
  
  # Results for Actions on Actors
  ActorDamage     = "A %s le han hecho %s puntos de daño!!!"
  ActorRecovery   = "%s recupera %s de %s!!!"
  ActorGain       = "%s ha ganado %s de %s!"
  ActorLoss       = "%s ha perdido %s de %s!"
  ActorDrain      = "%s ha perdido %s de %s!"
  ActorNoDamage   = "%s no ha recibido daño!!!"
  ActorNoHit      = "Falló! %s no recibe daño!!!"

  # Results for Actions on Enemies
  EnemyDamage     = "A %s Le han hecho %s puntos de daño!!"
  EnemyRecovery   = "%s recupera %s de %s!!!"
  EnemyGain       = "%s ha ganado %s de %s!"
  EnemyLoss       = "%s ha perdido %s de %s!"
  EnemyDrain      =  "%s ha perdido %s de %s!"
  EnemyNoDamage   = "%s no ha recibido daño!!!"
  EnemyNoHit      = "Falló! %s no recibe daño!!!"
  
  # Evasion/Reflection
  Evasion         = "%s ha esquivado el ataque!!"
  MagicEvasion    = "%s ha esquivado el hechizo!!"
  MagicReflection = "%s ha reflejazo el hechizo"
  CounterAttack   = "%s ha coontratacado!!"
  Substitute      = "%s conjuró %s!!"

  # Buff/Debuff
  BuffAdd         = "%s ahora usa %s!!"
  DebuffAdd       = "%s ahora usa %s!!"
  BuffRemove      = "%s ya no usa %s"
  
  # Skill or Item Had No Effect
  ActionFailure   = "%s ha fallado."

  # Error Message
  PlayerPosError  = "No encuentra el punto de partida del jugador."
  EventOverflow   = "Se ha superado el limite de llamados para eventos(Event Overflow)"

  # Basic Status
  def self.basic(basic_id)
    $data_system.terms.basic[basic_id]
  end

  # Parameters
  def self.param(param_id)
    $data_system.terms.params[param_id]
  end

  # Equip Type
  def self.etype(etype_id)
    $data_system.terms.etypes[etype_id]
  end

  # Commands
  def self.command(command_id)
    $data_system.terms.commands[command_id]
  end

  # Currency Unit
  def self.currency_unit
    $data_system.currency_unit
  end

  #--------------------------------------------------------------------------
  def self.level;       basic(0);     end   # Level
  def self.level_a;     basic(1);     end   # Level (short)
  def self.hp;          basic(2);     end   # HP
  def self.hp_a;        basic(3);     end   # HP (short)
  def self.mp;          basic(4);     end   # MP
  def self.mp_a;        basic(5);     end   # MP (short)
  def self.tp;          basic(6);     end   # TP
  def self.tp_a;        basic(7);     end   # TP (short)
  def self.fight;       command(0);   end   # Fight
  def self.escape;      command(1);   end   # Escape
  def self.attack;      command(2);   end   # Attack
  def self.guard;       command(3);   end   # Guard
  def self.item;        command(4);   end   # Items
  def self.skill;       command(5);   end   # Skills
  def self.equip;       command(6);   end   # Equip
  def self.status;      command(7);   end   # Status
  def self.formation;   command(8);   end   # Change Formation
  def self.save;        command(9);   end   # Save
  def self.game_end;    command(10);  end   # Exit Game
  def self.mission;     command(11);  end   # Mission
  def self.weapon;      command(12);  end   # Weapons
  def self.armor;       command(13);  end   # Armor
  def self.key_item;    command(14);  end   # Key Items
  def self.equip2;      command(15);  end   # Change Equipment
  def self.optimize;    command(16);  end   # Ultimate Equipment
  def self.clear;       command(17);  end   # Remove All
  def self.new_game;    command(18);  end   # New Game
  def self.continue;    command(19);  end   # Continue
  def self.shutdown;    command(20);  end   # Shut Down
  def self.to_title;    command(21);  end   # Go to Title
  def self.cancel;      command(22);  end   # Cancel

  #--------------------------------------------------------------------------
end
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por Alex_Game_Maker el 2017-10-20, 01:24

No uso el VX Ace... y el scripting no es mi fuerte... pero creo que el error esta aqui:
Código:
 #--------------------------------------------------------------------------
 # * Add Main Commands to List
 #--------------------------------------------------------------------------
 def add_main_commands
   add_command(Vocab::item,   :item,   main_commands_enabled)
   add_command(Vocab::skill,  :skill,  main_commands_enabled)
   add_command(Vocab::equip,  :equip,  main_commands_enabled)
   add_command(Vocab::status, :status, main_commands_enabled)
 end
 def add_mission_command
  add_command(Vocab::mission, :mission, mission_enabled)
  end
 #--------------------------------------------------------------------------

Me parece que deberia estar asi:

Código:
  #--------------------------------------------------------------------------
 # * Add Main Commands to List
 #--------------------------------------------------------------------------
 def add_main_commands
   add_command(Vocab::item,   :item,   main_commands_enabled)
   add_command(Vocab::skill,  :skill,  main_commands_enabled)
   add_command(Vocab::equip,  :equip,  main_commands_enabled)
   add_command(Vocab::status, :status, main_commands_enabled)
  add_command(Vocab::mission, :mission, mission_enabled)
  end
 #--------------------------------------------------------------------------

Espero haber ayudado...

Att... Aquel que solo esta cuando no esta,

Alex_Game_Maker
avatar
Alex_Game_Maker
Soñador
Soñador

0/3

Créditos 200

Gracias : 19

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-10-20, 15:16

Ve a tu script Vocab y cambia esta linea:
Código:
def self.mission;     command(11);  end   # Mission

por esto

Código:
def self.mission;     "mizioNñ";  end   # Mission

Acabo de fijarme que en el vocab por defecto efectivamente se saltan el 11 xD, pero contrario a la creencia popular, no puedes usar command(11) ahí. Eso de ahí es lo que se convertiría en el texto que sale.

Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE problema con creacion de script misiones

Mensaje por conorTAT el 2017-10-21, 22:57

Tengo otra pregunta para la script que estoy armando como hago para que cuando pulse sobre un nombre salga una ventana abajo
Algo así como las subdivisiones de la ventana objetos
___________________________________________

Donde tengo que definir las cosas como select_last , activate y set_handler
Código:

class Scene_Mission < Scene_MenuBase
    def start
    super
    create_command_window
 
end
   def create_command_window
     @command_window = Window_Mission.new
     @command_window.set_handler(:completed, method(:command_completed))
     @command_window.set_handler(:slopes,      method(:command_slopes))
     @command_window.set_handler(:cancel,    method(:return_scene))
   end  
  def command_completed
    @status_window.select_last
    @status_window.activate
    @status_window.set_handler(:ok,     method(:on_completed_ok))
    @status_window.set_handler(:cancel, method(:on_completed_cancel))
  end
  def command_slopes
  end
end

Que me dice que no estan definidas

Edita Marshmello: Por favor, para un poco con el doblepost, usa el botón "Editar". A la próxima te caerá un warn.


Última edición por Marshmello el 2017-10-21, 23:44, editado 2 veces (Razón : me falto algo)
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-10-22, 03:45

Eso último de select_last y eso, serían métodos parecidos al command_slopes.

Lo de una subventana, sé cómo hacerlo en XP, pero no recuerdo si el VX tenía una forma más sencilla de hacerlo. Revisa los scripts de inventario, las ventanas, Window_ItemCategory,Window_Item, etc. Y la Scene_Item, quiza hayan métodos y cosas por el estilo para eso.

Quiza luego pueda revisar mejor. Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por conorTAT el 2017-10-22, 20:52

Hola explico lo que quiero hacer bien.
Quiero hacer algo parecido al menú de objetos pero la diferencia es que es para misiones hasta ahora lo único que pude hacer fue esto.

A partir de acá no se que hacer y les pido que no me pongan lo que debí hacer (me refiero a la solución ya hecha y solo tenga que pegarla).
Sino que me expliquen que me falta con un ejemplo.
Muchas gracias a los que me puedan y no puedan ayudar.
También les dejo la script que cree.
Código:

class Scene_Mission < Scene_MenuBase
    def start
    super
    create_command_window
    create_completed_window
end
  def create_command_window
    @command_window = Window_Mission.new
    @command_window.set_handler(:completed, method(:command_completed))
    @command_window.set_handler(:slopes,      method(:command_slopes))
    @command_window.set_handler(:cancel,    method(:return_scene))
  end
  def create_completed_window
    end
  def command_completed
  end
  def command_slopes
  end
end
Nota: si no tiene nada es que no se que poner en el def
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-10-23, 15:11

Pendientes -> slopes xDDDDDD. En inglés "misiones pendientes" se puede traducir "pending missions", por ejemplo.

Voy a poner lo teórico de qué va en esos defs de abajo. Más tarde te doy más guía es que ya casi tengo que salir xd.

En create_completed_window iría algo similar a lo que pusiste en create_command_window. Ahí creas la ventana donde aparecen las misiones. Supongo que eso no es misterio. En esta el asunto más complicado será poblar la ventana con datos, por eso decía que revisaras las ventanas de inventario, para que vieras cómo lo hacen ahí. En teoría es agregar entradas a un array y decirle cómo dibujarlo definiendo un método draw_item.

Ahora, si creas dos ventanas con opciones, ambas estarán activas, y por ejemplo si intentas mover el cursor en una se moverán ambas. La solución a eso es manejar el estado activo de las ventanas. Ejemplo:
Código:
@completed_window = Window_MissionList.new #esta clase necesitarás crearla.
@completed_window.active = false #esta linea desactiva la ventana
Desactivar la ventana lo que hace es que no reaccione ante presiones de botones. Para reactivarla es lo mismo pero pones true. La idea sería entonces que en command_completed desactives la @command_window, llenes la lista con las misiones completadas, y actives la @completed_window.
Similar en command_slopes (pending*) pero en esa pueblas la lista con las misiones pendientes.

Dale a ver si te va saliendo, todavía no servirá sin lo de poblar la lista con opciones pero al menos podrás hacer que tenga dos ventanas y cambies entre ellas.

Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE preguntas sobre errores

Mensaje por conorTAT el 2017-10-25, 20:19

Alguien sabe como solucionar esto yo no se hacerlo con el activate.

Dejo tambien la script con el error

Código:

class Scene_Mission < Scene_MenuBase
    def start
    super
    create_command_window
end
   def create_command_window
     @command_window = Window_Mission.new
     @command_window.set_handler(:completed, method(:command_completed))
     @command_window.set_handler(:slopes,      method(:command_slopes))
     @command_window.set_handler(:cancel,    method(:return_scene))
   end
def create_completed_window
    @completed_window = Window_Completed.new
    @completed_window.viewport = @viewport
    @completed_window.help_window = @help_window
    @completed_window.y = @help_window.height
    @completed_window.set_handler(:ok,     method(:on_category_ok))
    @completed_window.set_handler(:cancel, method(:return_scene))
  end
  def command_completed
    @completed_window.active
  end
  def command_slopes
  end
end

tambien tengo el error wrong number of arguments que no entiendo como solucionar:
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-10-25, 22:42

Has pasado el número incorrecto de argumentos al método que hayas llamado en la línea 14.

Ante cualquier duda te recomiendo los siguientes temas para echar un ojo. Son ayudas con información sobre cómo resolver algunos errores comunes en código/scripts y otras cosas.

http://www.mundo-maker.com/t7518-guia-solucionar-mensajes-de-error-de-scripts-para-inexpertos
http://www.mundo-maker.com/t6547-guia-pasos-para-solucionar-errores-incomprensibles-en-scripts

Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE problema

Mensaje por conorTAT el 2017-10-26, 21:16

Mi pricipal problema es con estos codigos
[line]wy = @category_window.y + @category_window.height [/line]
Alguien puede decirme donde se definen  "y" y "height" porque son los codigos que dicen ".algo" los que siempre me dan problemas
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-10-26, 23:57

Esos ".algo" son esto:

objeto.metodo

En Ruby puedes llamar/usar métodos definidos en una clase poniendo la instancia de la clase que hiciste (osea, el objeto o la ventanita que creaste con .new <- new es otro método interno definido en las clases internas).

En el caso de ventana.y y ventana.height, Ruby tiene también algo llamado attr_accessor, attr_reader y attr_writer. Probablemente los has visto en varios scripts. Lo que hacen es lo siguiente:

attr_accessor :variable - Crea un método get (leer) y un set (escribir) con una variable @variable (nota que sólo son las que tienen @, es decir, las variables de clase). Los métodos generados son similares a hacer esto:
Código:
def variable #Método para leer/obtener a variable desde fuera del objeto
  return @variable
end
def variable=(n) #Método para escribir/setear a variable desde fuera del objeto
  @variable = n
end

attr_reader :variable - Este sólo crearía el método de lectura de la variable.
Código:
def variable #Método para leer/obtener a variable desde fuera del objeto
  return @variable
end

attr_writer :variable - Y este sólo el método de escritura de la variable.
Código:
def variable=(n) #Método para escribir/setear a variable desde fuera del objeto
  @variable = n
end

Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE avances

Mensaje por conorTAT el 2017-10-27, 14:44

Bien después de mucho esfuerzo logre hacer esto:

Ahora lo que tengo que ver es como separarlo de los demás items porque sino se arma un lió.
Si alguien sabe como hacerlo que me lo diga por favor
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-10-27, 15:36

Antes de poblar con items, primero debes hacer los items. Haz que se llene la lista con los objetos, así luego es simplemente definir un parámetro "completada" y es posible filtrar resultados.

Pero primero trabaja en poblar la lista con items :^P. Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por conorTAT el 2017-10-27, 23:38

Poblar la lista con items no cuesta nada el problema es que se ve lo mismo de los dos lados y no se hacer lo que tu dices.
Por si no me entendieron es que las misiones se ven en objetos clave  y en misiones cumplidas o pendientes se ve todas las misiones estén hechas o no

____________

¿Como se hace un parámetro para una script?
Solo me falta eso para poder terminar con la script que estoy haciendo pero no se hacerlo.

Edita Wecoc: Posts juntados
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-10-31, 11:21

¿A qué te refieres exactamente con un parámetro para una script? ¿Te refieres a pasar valores en los métodos?

Código:

def metodo(parametro)
  return parametro + 1
end

print metodo(5) # Imprimirá un 6

Te aseguras que el nombre que pusiste arriba sea el mismo que usas, es como definir una variable, y entonces al llamar al método pones la variable que quieras entre los paréntesis. Puedes también pasar varios parámetros a la vez cuidando el orden nada más.

Código:

def metodo(parametro1, parametro2)
  return parametro1 * (parametro2 + 1)
end

print metodo(5,6) # Imprimirá 35, que es 5*(6+1)

No sé si era eso, sino ahí dices. Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por conorTAT el 2017-10-31, 20:39

A lo que yo quiero llegar es a separar las misiones por secciones las que están completadas y las que no.
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-11-01, 02:35

Ah yayayayaya. Ok, veamos... Las misiones, ¿cómo las estás guardando? ¿En un array, hiciste una clase misión, o cómo guardas los datos como el nombre y tal?

Piénsalo así. Si tienes misiones pendientes y completadas, necesitas guardar si tal misión ya la completaste o si está pendiente. En términos lógicos eso lo puedes guardar como un estado:

Misión: Tal
Estado: COMPLETADO/PENDIENTE

Como son dos estados, puedes guardarlo como un valor true/false. Ahora, ¿dónde guardarlo? Eso depende de la estructura que estés usando para guardar tus datos de misión. Si un array, un hash, si usas una clase personalizada...

Podría ejemplificar las 1001 combinaciones de estructuras posibles, pero mejor dime tú, ¿dónde estás guardando y cómo las misiones pendientes/completas? Ahí sería donde hay que mandar el parámetro. El asunto es que dependiendo, si es una clase Mision o si es un dato en un array, la cosa cambia...

Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por conorTAT el 2017-11-01, 23:13

Antes de eso una pregunta como se crean las misiones porque yo hice algo que por ahi esta mal
Y aca tenes como esta guardado
Código:

class Window_MissionCategory < Window_HorzCommand
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader  :item_window
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    super(0, 0)
  end
  #--------------------------------------------------------------------------
  # * Get Window Width
  #--------------------------------------------------------------------------
  def window_width
    Graphics.width
  end
  #--------------------------------------------------------------------------
  # * Get Digit Count
  #--------------------------------------------------------------------------
  def col_max
    return 2
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    @item_window.category = current_symbol if @item_window
  end
  #--------------------------------------------------------------------------
  # * Create Command List
  #--------------------------------------------------------------------------
  def make_command_list

    add_command(Vocab::completed,  :completed)
    add_command(Vocab::slopes,    :slopes)

  end
  #--------------------------------------------------------------------------
  # * Set Item Window
  #--------------------------------------------------------------------------
  def item_window=(item_window)
    @item_window = item_window
    update
  end
end


Código:

class Window_MissionList < Window_Selectable
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y, width, height)
    super
    @category = :none
    @data = []
  end
  #--------------------------------------------------------------------------
  # * Set Category
  #--------------------------------------------------------------------------
  def category=(category)
    return if @category == category
    @category = category
    refresh
    self.oy = 0
  end
  #--------------------------------------------------------------------------
  # * Get Digit Count
  #--------------------------------------------------------------------------
  def col_max
    return 1
  end
  #--------------------------------------------------------------------------
  # * Get Number of Items
  #--------------------------------------------------------------------------
  def item_max
    @data ? @data.size : 1
  end
  #--------------------------------------------------------------------------
  # * Get Item
  #--------------------------------------------------------------------------
  def item
    @data && index >= 0 ? @data[index] : nil
  end
  #--------------------------------------------------------------------------
  # * Get Activation State of Selection Item
  #--------------------------------------------------------------------------
  def current_item_enabled?
    enable?(@data[index])
  end
  #--------------------------------------------------------------------------
  # * Include in Item List?
  #--------------------------------------------------------------------------
  def include?(item)
    case @category

    when :completed
      item.is_a?(RPG::Item)&& item.key_item?
    when :slopes
      item.is_a?(RPG::Item)&& item.key_item?
    else
      false
    end
  end
  #--------------------------------------------------------------------------
  # * Display in Enabled State?
  #--------------------------------------------------------------------------
  def enable?(item)
    $game_party.usable?(item)
  end
  #--------------------------------------------------------------------------
  # * Create Item List
  #--------------------------------------------------------------------------
  def make_item_list
    @data = $game_party.all_items.select {|item| include?(item) }
    @data.push(nil) if include?(nil)
  end
  #--------------------------------------------------------------------------
  # * Restore Previous Selection Position
  #--------------------------------------------------------------------------
  def select_last
    select(@data.index($game_party.last_item.object) || 0)
  end
  #--------------------------------------------------------------------------
  # * Draw Item
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    if item
      rect = item_rect(index)
      rect.width -= 4
      draw_item_name(item, rect.x, rect.y, enable?(item))
      draw_item_number(rect, item)
    end
  end
  #--------------------------------------------------------------------------
  # * Draw Number of Items
  #--------------------------------------------------------------------------
  def draw_item_number(rect, item)
    draw_text(rect, sprintf(":%2d", $game_party.item_number(item)), 2)
  end
  #--------------------------------------------------------------------------
  # * Update Help Text
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_item(item)
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    make_item_list
    create_contents
    draw_all_items
  end
end


Última edición por conorTAT el 2017-11-01, 23:36, editado 1 vez (Razón : me falto algo)
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por orochii el 2017-11-03, 14:01

(Me borraron el otro tema mientras intentaba responder xD, pero bueno, es que hiciste como 30 temas del mismo asunto).

Ah ya veo, es que estás usando items. Quiza haya una forma de hacerlo, pero creo que hay que quitar entonces los "key items" del inventario normal.

Si usas algo que ya existe, como los objetos, siempre piensa qué cosas puedes cambiar en la partida y qué cosas no. En este caso voy a intentarlo con la cantidad de X objeto, que si tienes más de, digamos, 51, mande el objeto a la lista de misiones completadas.

Puedes hacer que revise cuántos objetos tienes, y que por ejemplo, si tienes 1 objeto X es una misión en proceso. Si tienes cierta cantidad de objetos X entonces es una misión completada. Es como usar el número de ese objeto como un "valor de estado/progreso de la misión".

Puedes buscar esta parte y cambiar cómo se muestra el número de objetos, si quieres implementar un porcentaje:
Código:
#--------------------------------------------------------------------------
  # * Draw Number of Items
  #--------------------------------------------------------------------------
  # Muestra un % dependiendo de la cantidad de items
  # 1: Aceptada (0%).
  # 51: Completada (100%).
  # Cualquier número entre 1 y 51: Porcentaje intermedio ( (n-1)*2 ).
  def draw_item_number(rect, item)
    draw_text(rect, sprintf("%2d%", ($game_party.item_number(item)) - 1) * 2, 2)
  end

Luego la parte importante, cómo tirar unas cosas hacia "completadas" y otras hacia "en progreso":
Código:
#--------------------------------------------------------------------------
  # * Include in Item List?
  #--------------------------------------------------------------------------
  def include?(item)
    case @category

    when :completed
      item.is_a?(RPG::Item)&& item.key_item? && $game_party.item_number(item) >= 51
    when :slopes
      item.is_a?(RPG::Item)&& item.key_item? && $game_party.item_number(item) < 51
    else
      false
    end
  end

Ahora nos falta un arreglo en el Window_ItemList. Debemos quitar la categoría "Key Item" para que no se vea nuestro apaño XD. Para facilitarnos las cosas, lo haremos desde Window_ItemCategory más bien. Así lo que haremos es desaparecer por completo la opción "Objetos importantes" del inventario, simplemente quitando una linea.
Código:
#--------------------------------------------------------------------------
  # * Create Command List
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(Vocab::item,     :item)
    add_command(Vocab::weapon,   :weapon)
    add_command(Vocab::armor,    :armor)
    # add_command(Vocab::key_item, :key_item) # quitamos esta para esconder la opción.
  end

Y listo, creo que ya debería andar. Ahora agregas objetos, puedes mostrar porcentaje sumándote objetos (un tanto descontrolao pero... si llevas bien la cuenta no habría de haber problema). O si quieres desaparecer el porcentaje, vacías el método ese, el tal draw_item_number.
Código:
#--------------------------------------------------------------------------
  # * Draw Number of Items
  #--------------------------------------------------------------------------
  def draw_item_number(rect, item)
    
  end

No andas tan mal en scripts :^P. Sigue practicando haciendo apaños como este y en algún momento irás agarrando el toque. También intenta hacer engines, a veces ayuda a apañarse otras cosas, e ir practicando el llevar la lógica.

Salut!
avatar
orochii
Reportero

0/3

Créditos 6810

Gracias : 359

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

Mensaje por conorTAT el 2017-11-03, 18:42

Tengo una duda mas.
¿No hay forma de hacerlo sin items?
Osea no hay forma de crear lo de las misiones sin la categoría de key_item porque lo pienso usar también.
Por cierto falta hacer que las misiones cambien de lista despues de derrotar al objetivo
Una cosa mas están divididas pero ahora no consigo que pasen de una a otra no entiendo que me falta puse lo que me dijo que pusiera orochi que por cierto si lees esto no hay otro modo para hacer que las misiones no sean items porque creo que lo voy a necesitar lo de objetos clave asi que si me lo dicen lo agradecería mucho


Última edición por conorTAT el 2017-11-03, 23:49, editado 2 veces (Razón : me falto algo)
avatar
conorTAT
Novato
Novato

0/3

Créditos 73

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX ACE Re: preguntas sobre script

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.