Últimos temas
» [Sugerencia]Limpieza de recursos viejos en el foro.
por Cuyo1786 Hoy a las 9:52 am

» Busco grupo para un inexperta pero con ganas
por BACA Hoy a las 1:41 am

» Buscando pixel artista, trabajo pagado.
por pixeloid Ayer a las 11:33 pm

» [MV]Butterfly Paradox
por DopellSerch Ayer a las 9:44 pm

» LMD - Lunas de Magia Divina
por Zaabos Ayer a las 12:46 am

» LA BRÚJULA DE ZAZA [VXACE]
por Pocari Dom Oct 20, 2019 1:29 pm

» [VXA]Resident Evil Menu
por DorFenn Dom Oct 20, 2019 1:42 am

» (RMMV) Precognition
por JapoZero Jue Oct 17, 2019 11:40 pm

» Ayuda, duda
por BACA Miér Oct 16, 2019 7:38 pm

» Duda con ventana de comandos en Script
por DorFenn Lun Oct 14, 2019 1:46 am

» Índice Scripts RGSS3
por ZororoWhite Dom Oct 13, 2019 12:24 am

» [VX Ace] Script para duplicar tamaño y escala de ventana del juego
por ZororoWhite Dom Oct 13, 2019 12:23 am


(Ace-Script) Arenas Movedizas

Ir abajo

(Ace-Script) Arenas Movedizas Empty (Ace-Script) Arenas Movedizas

Mensaje por JapoZero el Dom Dic 14, 2014 12:20 am

(Ace-Script) Arenas Movedizas Ss-2014-10-27-at-05-57-00
El funcionamiento de este script es sencillo y bastante útil para mazmorras. Dependiendo de etiquetas de terreno, permite crear arenas movedizas o tilesets que sumerjan al jugador.
¿Cómo usar?

  • Ir a la pestaña Tilesets en la base de Dato después de haber introducido el script.
  • En etiqueta de terreno seleccionar un número. 2 para arenas movedizas, 3 para nieve por defecto en el script.

¿Cómo configurar mis propios tilesets de arenas movedizas / otro efecto?
Código:
2 => {  :sinking_speed => 0.1,  # Sinking Speed in pixels per frame
            :slow_down => 0.05,     # Movement slow-down by %
            :max_slow_down => 0.5,  # Max slowdown in %
            :death => true,         # Death after sinking?
            :death_sink => 32,      # Pixels for death, VX Ace default is 32px
            :max_sink => 32,        # Max sink possible
            :dash => false          # Can dash in quicksand?

QUÉ SIGNIFICA CADA COSA. Se necesita un poco de conocimiento aquí:

Etiqueta de Terreno => {
velocidad de hundimiento en cuanto a pixeles por frame.
dar lentitud al movimiento de personaje
máximo de lentitud
permitir morir si se hunde completamente (true/false)
pixeles necesarios para hundirse completamente (32 = chara desasparece)
maximo hundimiento posible
se permite correr en la arena movediza (true/false)
Créditos a: MrTrivel.
Script:
Código:
#===============================================================================
# )----------------------------------------------------------------------------(
# )--     AUTHOR:     Mr Trivel                                              --(
# )--     NAME:       Quicksand                                              --(
# )--     CREATED:    2014-10-27                                             --(
# )--     VERSION:    1.2                                                    --(
#===============================================================================
# )--                         VERSION HISTORY                                --(
# )--  1.0 - Initial script.                                                 --(
# )--  1.1 - Player is slowed down while in quicksand.                       --(
# )--  1.2 - Multiple quicksand tiles.                                       --(
#===============================================================================
# )--                          DESCRIPTION                                   --(
# )--  Allows the developer to set which Terrain Tags are quicksand.         --(
# )--  Player will start sinking in quicksand. If DEATH option is set to true--(
# )--  player will get a game over screen after sinking completely. Or, if   --(
# )--  it's false, player will sink to a specific amount.                    --(
# )--                                                                        --(
# )--  Bonus: Best effect reached when quicksand tiles have Bush option.     --(
#===============================================================================
# )--                          INSTRUCTIONS                                  --(
# )--  Customize value in Quicksand module. And play.                        --(
#===============================================================================
# )--                          LICENSE INFO                                  --(
# )--  Free for non-commercial & commercial games if credit was given to     --(
# )--  Mr Trivel.                                                            --(
# )----------------------------------------------------------------------------(
#===============================================================================

# )=======---------------------------------------------------------------------(
# )-- Module: Quicksand                                                      --(
# )---------------------------------------------------------------------=======(
module Quicksand
  
  Quicksands = {
    # Quicksand
    2 => {  :sinking_speed => 0.1,  # Sinking Speed in pixels per frame
            :slow_down => 0.05,     # Movement slow-down by %
            :max_slow_down => 0.5,  # Max slowdown in %
            :death => true,         # Death after sinking?
            :death_sink => 32,      # Pixels for death, VX Ace default is 32px
            :max_sink => 32,        # Max sink possible
            :dash => false          # Can dash in quicksand?
         },
    # Snow
    3 => {  :sinking_speed => 0.1,
            :slow_down => 0.04,
            :max_slow_down => 0.5,
            :death => false,
            :death_sink => 32,
            :max_sink => "$game_party.has_item?($data_items[1]) ? 4 : 8", # if party has item 1, make max sink 4, else it's 8
            :dash => true
         }
    
  }
end

# )=======---------------------------------------------------------------------(
# )-- Class: Game_Player                                                     --(
# )---------------------------------------------------------------------=======(
class Game_Player < Game_Character
  
  include Quicksand
  # )--------------------------------------------------------------------------(
  # )--  Aliased methods                                                     --(
  # )--------------------------------------------------------------------------(
  alias :mrts_qcksnd_initialize :initialize
  alias :mrts_qcksnd_dash? :dash?
  alias :mrts_qcksnd_update :update
  alias :mrts_qcksnd_shift_y :shift_y
  alias :mrts_qcksnd_move_straight :move_straight
  alias :mrts_qcksnd_update_move :update_move
  
  # )--------------------------------------------------------------------------(
  # )--  Public Instance Variables                                           --(
  # )--------------------------------------------------------------------------(
  attr_accessor :sunk
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: initialize                                                   --(
  # )--------------------------------------------------------------------------(
  def initialize
    mrts_qcksnd_initialize
    @sunk = 0.0
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: in_quicksand?                                           --(
  # )--------------------------------------------------------------------------(
  def in_quicksand?
    Quicksands[terrain_tag]
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: qcks_can_dash?                                          --(
  # )--------------------------------------------------------------------------(
  def qcks_can_dash?
    Quicksands[terrain_tag][:dash]
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: qcks_sink_speed                                         --(
  # )--------------------------------------------------------------------------(
  def qcks_sink_speed
    Quicksands[terrain_tag][:sinking_speed]
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: qcks_max_sink                                           --(
  # )--------------------------------------------------------------------------(
  def qcks_max_sink
    Quicksands[terrain_tag][:max_sink]
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: qcks_death_sink                                         --(
  # )--------------------------------------------------------------------------(
  def qcks_death_sink
    Quicksands[terrain_tag][:death_sink]
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: qcks_death                                              --(
  # )--------------------------------------------------------------------------(
  def qcks_death
    Quicksands[terrain_tag][:death]
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: qcks_slow_down                                          --(
  # )--------------------------------------------------------------------------(
  def qcks_slow_down
    Quicksands[terrain_tag][:slow_down]
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: qcks_max_slow_down                                      --(
  # )--------------------------------------------------------------------------(
  def qcks_max_slow_down
    Quicksands[terrain_tag][:max_slow_down]    
  end  
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: dash?                                                        --(
  # )--------------------------------------------------------------------------(
  def dash?
    return false if in_quicksand? && !qcks_can_dash?
    mrts_qcksnd_dash?
  end
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: update                                                       --(
  # )--------------------------------------------------------------------------(
  def update
    mrts_qcksnd_update
    update_sinking
  end
  
  # )--------------------------------------------------------------------------(
  # )--  New Method: update_sinking                                          --(
  # )--------------------------------------------------------------------------(
  def update_sinking
    if in_quicksand?
      @sunk += qcks_sink_speed
      max_sink = eval(qcks_max_sink.to_s).to_f
      @sunk = max_sink if @sunk > max_sink
      SceneManager.goto(Scene_Gameover) if @sunk >= qcks_death_sink.to_f && qcks_death
    else
      @sunk -= 8.0 if @sunk > 0
      @sunk = 0 if @sunk < 0
    end
  end
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: shift_y                                                      --(
  # )--------------------------------------------------------------------------(
  def shift_y
    shift = mrts_qcksnd_shift_y
    return shift-@sunk.to_i
  end
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: move_straight                                                --(
  # )--------------------------------------------------------------------------(
  def move_straight(d, turn_ok = true)
    @move_succeed = passable?(@x, @y, d)
    dx = (d == 6 ? 1 : d == 4 ? -1 : 0)
    dy = (d == 2 ? 1 : d == 8 ? -1 : 0)
    new_x = @x + dx
    new_y = @y + dy
    if in_quicksand? && $game_map.terrain_tag(new_x, new_y) != terrain_tag && @move_succeed
      jump(dx, dy)
    else
      mrts_qcksnd_move_straight(d, turn_ok = true)
    end
  end
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: update_move                                                  --(
  # )--------------------------------------------------------------------------(
  def update_move
    if in_quicksand?
      slowdown = distance_per_frame * [qcks_max_slow_down, (1 - @sunk*qcks_slow_down)].max
      @real_x = [@real_x - slowdown, @x].max if @x < @real_x
      @real_x = [@real_x + slowdown, @x].min if @x > @real_x
      @real_y = [@real_y - slowdown, @y].max if @y < @real_y
      @real_y = [@real_y + slowdown, @y].min if @y > @real_y
      update_bush_depth
    else
      mrts_qcksnd_update_move
    end
  end
end

# )=======---------------------------------------------------------------------(
# )-- Class: Game_Enemy                                                      --(
# )---------------------------------------------------------------------=======(
class Sprite_Character < Sprite_Base
  
  # )--------------------------------------------------------------------------(
  # )--  Aliased methods                                                     --(
  # )--------------------------------------------------------------------------(
  alias :mrts_qcksnd_initialize :initialize
  alias :mrts_qcksnd_update_other :update_other
  alias :mrts_qcksnd_update_src_rect :update_src_rect
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: initialize                                                   --(
  # )--------------------------------------------------------------------------(
  def initialize(*args)
    @sunk = 0.0
    mrts_qcksnd_initialize(*args)
  end
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: update_src_rect                                              --(
  # )--------------------------------------------------------------------------(
  def update_src_rect
    mrts_qcksnd_update_src_rect    
    self.src_rect.height -= @sunk
  end
  
  # )--------------------------------------------------------------------------(
  # )--  Alias: update_other                                                 --(
  # )--------------------------------------------------------------------------(
  def update_other
    mrts_qcksnd_update_other
    @sunk = @character.sunk if @character.is_a?(Game_Player)
  end
end
Espero les guste y/o sirva.
Salu2
JapoZero
JapoZero
Héroe
Héroe

Masculino
Chile
RPG Maker : MV
Mensajes : 708
Monedas : 4365
Reputación : 289
Localización : Chile

Volver arriba Ir abajo

(Ace-Script) Arenas Movedizas Empty Re: (Ace-Script) Arenas Movedizas

Mensaje por TheHeroZX el Dom Dic 14, 2014 7:57 am

Interesante Script~~~
servira para algunas trampillas en el futuro :3

Gracias Japo por compartirlo ^w^
TheHeroZX
TheHeroZX
PJ Principal
PJ Principal

Masculino
México
RPG Maker : Ace
Mensajes : 258
Monedas : 1060
Reputación : 49
Edad : 25
Localización : Buscando Gardevoirs~~~~

Volver arriba Ir abajo

(Ace-Script) Arenas Movedizas Empty ¡Arigato!

Mensaje por Nina el Jue Dic 18, 2014 5:49 pm

Muy chulo y sencillo *-*
Gracias por tu breve explicación del significado de las cosas y compartirlo, perfect para mazmorrillas >.<

¡Un voto!
Nina
Nina
PJ de Quest
PJ de Quest

Femenino
España
RPG Maker : MV
Mensajes : 39
Monedas : 393
Reputación : 12
Localización : España

Volver arriba Ir abajo

(Ace-Script) Arenas Movedizas Empty Re: (Ace-Script) Arenas Movedizas

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

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