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

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

(XP) ¿Cómo hago un objeto ofensivo?

 :: RPG Maker :: Ayuda RPG

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker XP (XP) ¿Cómo hago un objeto ofensivo?

Mensaje por RiKennedy-Maker el 2016-10-11, 19:36

Ya saben como una bomba o...... una bomba
que se use en combate le pueda causar daño a un enemigo al grupo entero
si no me explico bien diganmelo
Salu-2 Cool

RiKennedy-Maker
Novato
Novato

0/3

Créditos 54

Gracias : 6

Volver arriba Ir abajo

RPG Maker XP Re: (XP) ¿Cómo hago un objeto ofensivo?

Mensaje por Wecoc el 2016-10-11, 20:54

Para hacer un item ofensivo simple, como una bomba o una poción tóxica, solo hay que asignar que afecte a un Enemigo o Grupo Enemigo y que el PV que añade sea negativo. Asegúrate también de poner que solo se pueda usar en batalla.


Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: (XP) ¿Cómo hago un objeto ofensivo?

Mensaje por RiKennedy-Maker el 2016-10-11, 22:10

ohhh Aplauso   muchas gracias Wecoc  la verdad es que ya te debo mas de una XD pero diría uno "Asi son los novatos, ¿Que se le hace?" Smile
de nuevo muchas gracias y hasta la próxima Cool

RiKennedy-Maker
Novato
Novato

0/3

Créditos 54

Gracias : 6

Volver arriba Ir abajo

RPG Maker XP Re: (XP) ¿Cómo hago un objeto ofensivo?

Mensaje por Wecoc el 2016-10-11, 22:15

Te he hecho un script bastante rudimentario pero que se ve mejor que el sistema default para arrojar bombas a los enemigos.

Código:
#==============================================================================
# ** Bomb Script 1.0
#------------------------------------------------------------------------------
#  Autor: Wecoc - No requiere créditos
#==============================================================================

class Scene_Battle
 
  #--------------------------------------------------------------------------
  # Define los items que son bombas u objetos arrojadizos al enemigo.
  # Sólo los actores pueden usarlas.
  #--------------------------------------------------------------------------
  # Item ID => [HP, slope, range, counter]
  #--------------------------------------------------------------------------
  # * HP - Similar a la ranura PV de la base de datos pero se modifica según
  #        la distancia entre la bomba y el enemigo.
  #        Pon valor negativo para quitar PV (hacer daño)
  # * slope - A quien afecta.
  #        1 - Enemigo más cercano
  #        2 - Todos los enemigos
  # * range - Distancia máxima a partir de la cual el daño es "Miss!"
  # * counter - Temporizador para colocar la bomba donde se desea
  #--------------------------------------------------------------------------
 
  BOMB_ITEMS = {33 => [-150, 2, 256, 60],
                34 => [-300, 2, 512, 40]}
 
  #--------------------------------------------------------------------------
  # Gira el gráfico de la flecha
  #--------------------------------------------------------------------------
 
  ROTATE_BOMB_ARROW = true
 
  #--------------------------------------------------------------------------
  # Texto que se muestra en la descripción
  #--------------------------------------------------------------------------
 
  BOMB_DESCRIPTION = "Apunta dónde tirar la bomba"
           
  #--------------------------------------------------------------------------
 
  alias bomb_item_action_result make_item_action_result unless $@
  def make_item_action_result
    bomb_item_action_result
    if BOMB_ITEMS.keys.include?(@item.id)
      if @active_battler.is_a?(Game_Actor)
        @assign_bomb_position = true
        @enemy_arrow = Arrow_Base.new(@spriteset.viewport1)
        @enemy_arrow.x = 32 + rand(640 - 64)
        @enemy_arrow.y = 180 # Posición Y de la flecha
        if ROTATE_BOMB_ARROW == true
          @enemy_arrow.angle = 180
        end
        @enemy_arrow.visible = false
        @bomb_counter = BOMB_ITEMS[@item.id][3]
      end
    end
  end
 
  alias bomb_update_phase4_step2 update_phase4_step2 unless $@
  def update_phase4_step2
    if @assign_bomb_position
      update_bomb_position
      return
    end
    if !@bomb_sprite.nil?
      update_bomb_effect
      return
    end
    bomb_update_phase4_step2
  end
 
  def update_bomb_position
    @enemy_arrow.visible = true
    @enemy_arrow.update
    @help_window.set_text(BOMB_DESCRIPTION)
    @help_window.visible = true
    case Input.dir4
    when 4 # Izquierda
      @enemy_arrow.x -= 6
      @enemy_arrow.x = [640 - 32, @enemy_arrow.x].min
    when 6 # Derecha
      @enemy_arrow.x += 6
      @enemy_arrow.x = [32, @enemy_arrow.x].max
    end
    @bomb_counter -= 1
    if @bomb_counter <= 0
      @help_window.visible = false
      @bomb_x = @enemy_arrow.x
      @bomb_y = @enemy_arrow.y
      @bomb_sprite = RPG::Sprite.new(@spriteset.viewport1)
      @bomb_sprite.x = @enemy_arrow.x
      @bomb_sprite.y = @enemy_arrow.y
      animation = $data_animations[@item.animation2_id]
      @bomb_sprite.animation(animation, true)
      @enemy_arrow.dispose
      @enemy_arrow = nil
      @assign_bomb_position = false
    end
  end
 
  def update_bomb_effect
    @bomb_sprite.update
    if !@bomb_sprite.effect?
      targets = []
      for enemy in $game_troop.enemies
        if enemy.exist?
          targets.push(enemy)
        end
      end
      scope = BOMB_ITEMS[@item.id][1]
      range = BOMB_ITEMS[@item.id][2]
      case scope
      when 1 # Enemigo más cercano
        target_data = []
        for target in targets
          x = (target.screen_x - @bomb_sprite.x).abs
          y = (target.screen_y - @bomb_sprite.y).abs
          target_data.push([target, x, y])
        end
        target_data.sort! do |b,a|
          Math.sqrt(b[1] ** 2 + b[2] ** 2) - Math.sqrt(a[1] ** 2 + a[2] ** 2)
        end
        target = target_data[0]
        d = Math.sqrt(target[1] ** 2 + target[2] ** 2).to_i
        target = target[0]
        if d <= range
          damage = -BOMB_ITEMS[@item.id][0] * (range - d) / range
          target.damage = damage
          target.damage_pop = true
          target.hp -= damage
        else
          target.damage = "Miss"
          target.damage_pop = true
        end
      when 2 # Todos los enemigos (según proximidad)
        for target in targets
          x = (target.screen_x - @bomb_sprite.x).abs
          y = (target.screen_y - @bomb_sprite.y).abs
          d = Math.sqrt(x ** 2 + y ** 2).to_i
          if d <= range
            damage = -BOMB_ITEMS[@item.id][0] * (range - d) / range
            target.damage = damage
            target.damage_pop = true
            target.hp -= damage
          else
            target.damage = "Miss"
            target.damage_pop = true
          end
        end
      end
      @bomb_sprite.dispose
      @bomb_sprite = nil
      if judge
        @assign_bomb_position = false
      end
    end
  end
end

En éste caso los items deben ser un poco distintos pero tienes que definirlos en la configuración del script. Lee las instrucciones para ello, deberás tener en cuenta la ID del item y un par de cosas más (tranquilo, no es difícil de entender).

Por defecto puse que el item 33 sea una bomba normal y el 34 sea una bomba más potente, pero puedes definirlo como quieras; poner solo una, poner muchas... Solo tienes que configurarlo al principio del script.

Las bombas si usas éste script deben ser Afectar a: Nada y no causar daño, es decir PV: 0, en contra de lo que puse en el post anterior.



Espero entre los dos posts haberte ayudado.

Wecoc
Administrador
Administrador



Créditos 8272

Gracias : 372

Volver arriba Ir abajo

RPG Maker XP Re: (XP) ¿Cómo hago un objeto ofensivo?

Mensaje por Contenido patrocinado Hoy a las 05:02


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.