¡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 3391 miembros registrados.
El último usuario registrado es Ryu.

Nuestros miembros han publicado un total de 79781 mensajes en 11252 argumentos.
Navega con Google Chrome
[DESCARGA]

Busco script de comando individuales

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP Busco script de comando individuales

Mensaje por Noctámbulo el 2014-07-16, 10:05

Bueno, para darle un toque más personal al sistema de combate de mi proyecto, había pensado en incluir un script para los típicos comandos de batalla únicos, adicionalmente del comando de habilidades (p. ej. el típico personaje ladrón que tiene el comando Robar, un personaje ingeniero que tenga comando Artefactos... etc).

Intenté usar el que viene con el sistema Tankentai pero da un error que parece irreparable, de modo que estoy buscando otro, ¿alguien podría echarme un cable?

Noctámbulo
Principiante
Principiante

1/3

Créditos 300

Gracias : 27

Volver arriba Ir abajo

RPG Maker XP Re: Busco script de comando individuales

Mensaje por Wecoc el 2014-07-16, 14:58

¿Solo cambiaría el nombre de los comandos o también el número, la función, el órden y esas cosas?

Porque hace poco ví uno sencillito pero sólo te serviría para el primer caso...

Wecoc
Administrador
Administrador



Créditos 8265

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: Busco script de comando individuales

Mensaje por Noctámbulo el 2014-07-16, 15:19

Solo el nombre, la verdad es que con eso ya me daría un canto en los dientes, y si es un script sencillo pues muchísimo mejor.

Noctámbulo
Principiante
Principiante

1/3

Créditos 300

Gracias : 27

Volver arriba Ir abajo

RPG Maker XP Re: Busco script de comando individuales

Mensaje por silvanash el 2014-07-16, 16:18

Acabo de hacer una búsqueda rápida con Google y me he encontrado esto.

En teoría, sirve para cambiar el nombre de los comandos de batalla para cada personaje (todos los comandos, incluso el de "defender"), y también permite hacer listas especializadas con las skills. En uno de los posts vi que alguien decía que era posible hacer que aparecieran skills cuando el personaje estaba con pocos HPs.

Eso sí, el script parece difícil de manejar.

silvanash
Aventurero
Aventurero

0/3

Créditos 1417

Gracias : 176

Volver arriba Ir abajo

RPG Maker XP Re: Busco script de comando individuales

Mensaje por Wecoc el 2014-07-16, 17:07

Bueno, el de silva te sirve :)

Te paso también el que había dicho por si el de silva suponiera algún problema.

Va sin autor (es decir sin créditos xD)

Código:

class Scene_Battle 
  def main
    setup
    @actor_windows = []
    array = []
    for i in 0...$game_party.actors.size
      actor_id = $game_party.actors[i].id
      array = case actor_id
      when 1 then ["Soy", "Alexis", "Cómo", "Molo"]
  #  when 2 then .... va por id de actor
      else ;      ["Ataque", "Magia", "Defensa", "Objeto"]
      end
      actor_command_window = Window_Command.new(160, array)
      actor_command_window.x = i * 160
      actor_command_window.y = 160
      actor_command_window.back_opacity = 160
      actor_command_window.active = false
      actor_command_window.visible = false
      @actor_windows.push(actor_command_window)
    end
    @actor_command_window = @actor_windows[0]
    @party_command_window = Window_PartyCommand.new
    @help_window = Window_Help.new
    @help_window.back_opacity = 160
    @help_window.visible = false
    @status_window = Window_BattleStatus.new
    @message_window = Window_Message.new
    @spriteset = Spriteset_Battle.new
    @wait_count = 0
    transition = $data_system.battle_transition
    if transition == ""
      Graphics.transition(20)
    else
      Graphics.transition(40, "Graphics/Transitions/" + transition)
    end
    start_phase1
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    $game_map.refresh
    Graphics.freeze
   
    @actor_windows.each{|window| window.dispose}
    @party_command_window.dispose
    @help_window.dispose
    @status_window.dispose
    @message_window.dispose
    if @skill_window != nil
      @skill_window.dispose
    end
    if @item_window != nil
      @item_window.dispose
    end
    if @result_window != nil
      @result_window.dispose
    end
    @spriteset.dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
    if $BTEST and not $scene.is_a?(Scene_Gameover)
      $scene = nil
    end
  end
 
  def setup
    $game_temp.in_battle = true
    $game_temp.battle_turn = 0
    $game_temp.battle_event_flags.clear
    $game_temp.battle_abort = false
    $game_temp.battle_main_phase = false
    $game_temp.battleback_name = $game_map.battleback_name
    $game_temp.forcing_battler = nil
    $game_system.battle_interpreter.setup(nil, 0)
    @troop_id = $game_temp.battle_troop_id
    $game_troop.setup(@troop_id)
  end
 
  def update
    if $game_system.battle_interpreter.running?
      $game_system.battle_interpreter.update
      if $game_temp.forcing_battler == nil
        unless $game_system.battle_interpreter.running?
          unless judge
            setup_battle_event
          end
        end
        if @phase != 5
          @status_window.refresh
        end
      end
    end
    $game_system.update
    $game_screen.update
    if $game_system.timer_working and $game_system.timer == 0
      $game_temp.battle_abort = true
    end
    @help_window.update
    @party_command_window.update
    @actor_windows.each{|window| window.update}
    @status_window.update
    @message_window.update
    @spriteset.update
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        Graphics.transition(40, "Graphics/Transitions/" +
          $game_temp.transition_name)
      end
    end
    if $game_temp.message_window_showing
      return
    end
    if @spriteset.effect?
      return
    end
    if $game_temp.gameover
      $scene = Scene_Gameover.new
      return
    end
    if $game_temp.to_title
      $scene = Scene_Title.new
      return
    end
    if $game_temp.battle_abort
      $game_system.bgm_play($game_temp.map_bgm)
      battle_lose
      return
    end
    if @wait_count > 0
      @wait_count -= 1
      return
    end
    if $game_temp.forcing_battler == nil and
      $game_system.battle_interpreter.running?
      return
    end
    case @phase
    when 1  # pre-battle phase
      update_phase1
    when 2  # party command phase
      update_phase2
    when 3  # actor command phase
      update_phase3
    when 4  # main phase
      update_phase4
    when 5  # after battle phase
      update_phase5
    end
  end
 
  def start_phase2
    @phase = 2
    @actor_index = -1
    @active_battler = nil
    @party_command_window.active = true
    @party_command_window.visible = true
    @actor_windows.each do |window|
      window.active = false
      window.visible = false
    end
    $game_temp.battle_main_phase = false
    $game_party.clear_actions
    unless $game_party.inputable?
      start_phase4
    end
  end
 
  def phase3_setup_command_window
    @party_command_window.active = false
    @party_command_window.visible = false
    @actor_windows.each do |window|
      window.active = false
      window.visible = false
    end
    @actor_command_window = @actor_windows[@actor_index]
    @actor_command_window.active = true
    @actor_command_window.visible = true
    @actor_command_window.index = 0
  end

  def start_phase4
    @phase = 4
    $game_temp.battle_turn += 1
    for index in 0...$data_troops[@troop_id].pages.size
      page = $data_troops[@troop_id].pages[index]
      if page.span == 1
        $game_temp.battle_event_flags[index] = false
      end
    end
    @actor_index = -1
    @active_battler = nil
    @party_command_window.active = false
    @party_command_window.visible = false
    @actor_windows.each do |window|
      window.active = false
      window.visible = false
    end
    $game_temp.battle_main_phase = true
    for enemy in $game_troop.enemies
      enemy.make_action
    end
    make_action_orders
    @phase4_step = 1
  end
end



Te digo cómo funciona, al principio del script pone when 1 then y luego una array, allí pones los comandos del actor 1, y debajo lo mismo con los demás. Ese número es el índice del autor en la base de datos, creo que se entiende. El último es el del else y sería el que hay por defecto.

Wecoc
Administrador
Administrador



Créditos 8265

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: Busco script de comando individuales

Mensaje por Noctámbulo el 2014-07-16, 23:24

Voy a usar el tuyo, Wecoc, el que me ha proporcionado Silva, aún leyéndolo muchas veces, no tengo ni idea de por donde tocarlo xD

Os lo agradezco enormemente a los dos.

Edit: Pues me da un error raro el tuyo, Wecoc, en la línea 3 ("SETUP").

Noctámbulo
Principiante
Principiante

1/3

Créditos 300

Gracias : 27

Volver arriba Ir abajo

RPG Maker XP Re: Busco script de comando individuales

Mensaje por Wecoc el 2014-07-17, 00:08

No es "mío", lo encontré en una web cerrada que recuperaré pronto xD

El def setup está descrito en el mismo script así que no encuentro ninguna explicación para ese error o_O"

Pero bueno, prueba con lo de dentro del def setup a ver si así:

Código:
class Scene_Battle 
  def main
    $game_temp.in_battle = true
    $game_temp.battle_turn = 0
    $game_temp.battle_event_flags.clear
    $game_temp.battle_abort = false
    $game_temp.battle_main_phase = false
    $game_temp.battleback_name = $game_map.battleback_name
    $game_temp.forcing_battler = nil
    $game_system.battle_interpreter.setup(nil, 0)
    @troop_id = $game_temp.battle_troop_id
    $game_troop.setup(@troop_id)
    @actor_windows = []
    array = []
    for i in 0...$game_party.actors.size
      actor_id = $game_party.actors[i].id
      array = case actor_id
      when 1 then ["Soy", "Alexis", "Cómo", "Molo"]
  #  when 2 then .... va por id de actor
      else ;      ["Ataque", "Magia", "Defensa", "Objeto"]
      end
      actor_command_window = Window_Command.new(160, array)
      actor_command_window.x = i * 160
      actor_command_window.y = 160
      actor_command_window.back_opacity = 160
      actor_command_window.active = false
      actor_command_window.visible = false
      @actor_windows.push(actor_command_window)
    end
    @actor_command_window = @actor_windows[0]
    @party_command_window = Window_PartyCommand.new
    @help_window = Window_Help.new
    @help_window.back_opacity = 160
    @help_window.visible = false
    @status_window = Window_BattleStatus.new
    @message_window = Window_Message.new
    @spriteset = Spriteset_Battle.new
    @wait_count = 0
    transition = $data_system.battle_transition
    if transition == ""
      Graphics.transition(20)
    else
      Graphics.transition(40, "Graphics/Transitions/" + transition)
    end
    start_phase1
    loop do
      Graphics.update
      Input.update
      update
      if $scene != self
        break
      end
    end
    $game_map.refresh
    Graphics.freeze
   
    @actor_windows.each{|window| window.dispose}
    @party_command_window.dispose
    @help_window.dispose
    @status_window.dispose
    @message_window.dispose
    if @skill_window != nil
      @skill_window.dispose
    end
    if @item_window != nil
      @item_window.dispose
    end
    if @result_window != nil
      @result_window.dispose
    end
    @spriteset.dispose
    if $scene.is_a?(Scene_Title)
      Graphics.transition
      Graphics.freeze
    end
    if $BTEST and not $scene.is_a?(Scene_Gameover)
      $scene = nil
    end
  end
 
  def update
    if $game_system.battle_interpreter.running?
      $game_system.battle_interpreter.update
      if $game_temp.forcing_battler == nil
        unless $game_system.battle_interpreter.running?
          unless judge
            setup_battle_event
          end
        end
        if @phase != 5
          @status_window.refresh
        end
      end
    end
    $game_system.update
    $game_screen.update
    if $game_system.timer_working and $game_system.timer == 0
      $game_temp.battle_abort = true
    end
    @help_window.update
    @party_command_window.update
    @actor_windows.each{|window| window.update}
    @status_window.update
    @message_window.update
    @spriteset.update
    if $game_temp.transition_processing
      $game_temp.transition_processing = false
      if $game_temp.transition_name == ""
        Graphics.transition(20)
      else
        Graphics.transition(40, "Graphics/Transitions/" +
          $game_temp.transition_name)
      end
    end
    if $game_temp.message_window_showing
      return
    end
    if @spriteset.effect?
      return
    end
    if $game_temp.gameover
      $scene = Scene_Gameover.new
      return
    end
    if $game_temp.to_title
      $scene = Scene_Title.new
      return
    end
    if $game_temp.battle_abort
      $game_system.bgm_play($game_temp.map_bgm)
      battle_lose
      return
    end
    if @wait_count > 0
      @wait_count -= 1
      return
    end
    if $game_temp.forcing_battler == nil and
      $game_system.battle_interpreter.running?
      return
    end
    case @phase
    when 1  # pre-battle phase
      update_phase1
    when 2  # party command phase
      update_phase2
    when 3  # actor command phase
      update_phase3
    when 4  # main phase
      update_phase4
    when 5  # after battle phase
      update_phase5
    end
  end
 
  def start_phase2
    @phase = 2
    @actor_index = -1
    @active_battler = nil
    @party_command_window.active = true
    @party_command_window.visible = true
    @actor_windows.each do |window|
      window.active = false
      window.visible = false
    end
    $game_temp.battle_main_phase = false
    $game_party.clear_actions
    unless $game_party.inputable?
      start_phase4
    end
  end
 
  def phase3_setup_command_window
    @party_command_window.active = false
    @party_command_window.visible = false
    @actor_windows.each do |window|
      window.active = false
      window.visible = false
    end
    @actor_command_window = @actor_windows[@actor_index]
    @actor_command_window.active = true
    @actor_command_window.visible = true
    @actor_command_window.index = 0
  end

  def start_phase4
    @phase = 4
    $game_temp.battle_turn += 1
    for index in 0...$data_troops[@troop_id].pages.size
      page = $data_troops[@troop_id].pages[index]
      if page.span == 1
        $game_temp.battle_event_flags[index] = false
      end
    end
    @actor_index = -1
    @active_battler = nil
    @party_command_window.active = false
    @party_command_window.visible = false
    @actor_windows.each do |window|
      window.active = false
      window.visible = false
    end
    $game_temp.battle_main_phase = true
    for enemy in $game_troop.enemies
      enemy.make_action
    end
    make_action_orders
    @phase4_step = 1
  end
end


Si te da algún error intentaré explicarte cómo usar el que te pasó silva.
Pero será complicado así que espero no tener que recurrir a eso xD

Wecoc
Administrador
Administrador



Créditos 8265

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: Busco script de comando individuales

Mensaje por Noctámbulo el 2014-07-17, 09:25

Solucionado, ahora si. Muchas gracias por la ayuda prestada.

Noctámbulo
Principiante
Principiante

1/3

Créditos 300

Gracias : 27

Volver arriba Ir abajo

RPG Maker XP Re: Busco script de comando individuales

Mensaje por Contenido patrocinado Hoy a las 20:17


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


 :: RPG Maker :: Ayuda RPG

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