Últimos temas
» Pack de Rpg maker XP
por KRiZaLiD Ayer a las 7:17 pm

» (ACE) Succubus Academy
por Kuroneko Gore Ayer a las 4:34 am

» Good Lyca Demo
por nazo493 Vie Sep 22, 2017 6:52 am

» [VX ACE] Black Winter - Terror y Suspenso - Descargalo ya!
por lolachan-desuu Jue Sep 21, 2017 6:30 pm

» Hoseki (Versión de Prueba)
por The Ferydra Jue Sep 21, 2017 4:58 am

» Duda mapeado rpg maker xp
por LordIthacar Jue Sep 21, 2017 4:02 am

» La Historia Infinita (DEMO)
por Chioban Miér Sep 20, 2017 7:35 am

» The Legend of Celestia II: A World of Twilight Shadows Demo
por jlopez_96 Dom Sep 17, 2017 6:27 pm

» Pregunta sobre el RPG Maker Fes ¿está permitido hablar o presentar juegos con este nuevo maker?
por Muzgar Sáb Sep 16, 2017 11:21 am

» Rpg Maker VX Ace: Lampara que se apaguen y enciendan.
por Muzgar Jue Sep 14, 2017 10:39 pm

» Pregunta sobre colaboracion en linea
por Tomate Jue Sep 14, 2017 9:23 pm

» [ACE] Nuevas partes para el generador (solo para faces)
por MargarArts Jue Sep 14, 2017 8:08 pm


RandomEnkounters XP

Ver el tema anterior Ver el tema siguiente Ir abajo

RandomEnkounters XP

Mensaje por kyonides el Vie Jul 14, 2017 1:42 am

RandomEnkounters XP
por Kyonides-Arkanthos
 
Este sencillo script lo que ofrece es el visualizar el monstruo que surge para luchar contra los héroes por solo caminar a lo loco por el mapa actual (sea el que sea). De forma aleatoria escogerá a uno de los monstruos de la tropa de enemigos y lo desplegará en pantalla mientras suena un efecto de sonido que indica que este recién apareció frente al héroe, el líder del equipo. Este a lo sumo podrá girar sobre su eje en el poco tiempo que le queda antes de que la batalla aleatoria dé comienzo. Una vez que la batalla termine, el héroe podrá moverse tranquilamente, bueno, si es que este sobrevivió...

En la primera Constante del módulo pueden definir el nombre del archivo de efecto de sonido, mientras que en la segunda definen cuántos cuadros o frames esperarán antes de que inicie la batalla.




Código:
# * RandomEnkounter XP
#   Plug & Play Script & Configurable
#   Scripter : Kyonides-Arkanthos
#   2015-11-17

 module RandomEnkounter
  ENEMY_APPEARS = '018-Teleport01'
  WAIT_COUNT = 80
  def self.enemy() @enemy end
  def self.enemy=(new_enemy) @enemy = new_enemy end
  def self.enemy_appears() RPG::AudioFile.new(ENEMY_APPEARS,100,350) end
end

 class Game_RandomEnemy < Game_Enemy
  attr_reader :character_name, :character_hue, :tile_id, :pattern, :transparent
  attr_reader :direction, :opacity, :blend_type, :x, :y, :through
  def refresh
    @character_name = @battler_name
    @character_hue = @battler_hue
    dir = $game_player.direction
    @direction = 10 - $game_player.direction
    @x = $game_player.x + (dir == 6 ? 1 : dir == 4 ? -1 : 0)
    @y = $game_player.y + (dir == 2 ? 1 : dir == 8 ? -1 : 0)
    @real_x = @x * 128
    @real_y = @y * 128
    @opacity = 255
    @blend_type = 0
    @tile_id = 0
    @pattern = 0
    @jump_count = 0
    @jump_peak = 0
    @through = false
    @transparent = false
  end

   def screen_x() (@real_x - $game_map.display_x + 3) / 4 + 16 end  def screen_y
    y = (@real_y - $game_map.display_y + 3) / 4 + 32
    n = (@jump_count >= @jump_peak)? @jump_count - @jump_peak :
        @jump_peak - @jump_count
    return y - (@jump_peak * @jump_peak - n * n) / 2
  end

   def screen_z(height = 0)
    return 999 if @always_on_top
    z = (@real_y - $game_map.display_y + 3) / 4 + 32
    return z + ((height > 32) ? 31 : 0) # If height exceeds 32, then add 31
  end

   def bush_depth
    return 0 if @tile_id > 0 or @always_on_top
    (@jump_count == 0 and $game_map.bush?(@x, @y))? 12 : 0
  end
end

 class Game_Map
  alias kyon_enkounters_gm_map_passable? passable?
  def passable?(x, y, d, self_event=nil)
    enemy = RandomEnkounter.enemy
    return false if enemy != nil and !enemy.through
    kyon_enkounters_gm_map_passable?(x, y, d, self_event)
  end
end

 class Sprite_RandomCharacter < Sprite_Character
  def update
    return if @character == nil
    super
  end
end

 class Spriteset_Map
  alias kyon_enkounters_sprite_map_init initialize
  def initialize
    kyon_enkounters_sprite_map_init
    character = Game_Character.new
    character.transparent = true
    @character_sprites << Sprite_RandomCharacter.new(@viewport1, character)
  end

   def random_enemy=(new_enemy) @character_sprites[-1].character = new_enemy end  def dispose_random_enemy
    @character_sprites.dispose
    @character_sprites.pop
  end
end

 class Scene_Map
  alias kyon_enkounters_scn_map_call_battle call_battle
  def call_battle
    unless @wait_count
      $game_system.se_play(RandomEnkounter.enemy_appears)
      tid = $game_temp.battle_troop_id
      enemies_size = $data_troops[tid].members.size
      RandomEnkounter.enemy = Game_RandomEnemy.new(tid, rand(enemies_size))
      RandomEnkounter.enemy.refresh
      @spriteset.random_enemy = RandomEnkounter.enemy
      @wait_count = RandomEnkounter::WAIT_COUNT
      return
    else
      @wait_count -= 1
      return if @wait_count > 0
    end
    kyon_enkounters_scn_map_call_battle
  end
end

 class Scene_Battle
  alias kyon_enkounters_scn_battle_battle_end battle_end
  def battle_end(result)
    RandomEnkounter.enemy = nil
    kyon_enkounters_scn_battle_battle_end(result)
  end
end


kyonides
PJ de Quest
PJ de Quest

Masculino
Costa Rica
RPG Maker : Xp
Mensajes : 51
Monedas : 161
Reputación : 1

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.