기타

좀 뭐랄까... 어이없는 "비행선 더 높게 날아오르게 하기!"스크립트....

by 루시페르 posted Jun 06, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

말그대로 비행선을 더 높이 뜨게 하는 스크립트 입니다.

기존의 비행선은 캐릭터의 바로 위를 날아 다녔잖아요?(사람 키만큼밖에 안뜨는 비행선이라니... 말도 안돼! <퍽!)

그래서! 비행선의 비행 높이를 증가시키는 스크립트를 소개하겠습니다~

여기서 MAX AlTITUDE라고 표시되어 있는 곳의 값을 변경 시키면 어떤 높이로든 날게할 수 있습니다.

아래부터 복사

==============================================================================
# Fly High 1.0
#------------------------------------------------------------------------------
# Este script permite que você modifique a altura em que o AirShip voa.
# Para entender melhor este script, leia as modificações em baixo.
#==============================================================================

class Game_Vehicle < Game_Character
  #--------------------------------------------------------------------------
  # Constantes (Altura do Vôo)
  #--------------------------------------------------------------------------
  MAX_ALTITUDE = 100
 
#Procedimento:
  # Se quiser que a AirShip vôo mais alto, basta modificar o
  #algarismo 100 por um mais elevado como por exemplo: 200.
  #Se quiser que a AirShip vôo mais baixo, basta fazer o oposto, modificando
  #o algarismo 100 por um inferior como por exemplo: 60.
  #--------------------------------------------------------------------------
  # Variáveis públicas
  #--------------------------------------------------------------------------
  attr_reader   :type                     # Tipo de veículo (0 .. 2)
  attr_reader   :altitude                 # Altitude para airship
  attr_reader   :driving                  # Marca execução
  #--------------------------------------------------------------------------
  # Inicialização do objeto
  #     type : Tipo de veículo (0:barco 1:navio 2:airship)
  #--------------------------------------------------------------------------
  def initialize(type)
    super()
    @type = type
    @altitude = 0
    @driving = false
    @direction = 4
    @walk_anime = false
    @step_anime = false
    load_system_settings
  end
  #--------------------------------------------------------------------------
  # Carregamento da construção de sistema
  #--------------------------------------------------------------------------
  def load_system_settings
    case @type
    when 0;  sys_vehicle = $data_system.boat
    when 1;  sys_vehicle = $data_system.ship
    when 2;  sys_vehicle = $data_system.airship
    else;    sys_vehicle = nil
    end
    if sys_vehicle != nil
      @character_name = sys_vehicle.character_name
      @character_index = sys_vehicle.character_index
      @bgm = sys_vehicle.bgm
      @map_id = sys_vehicle.start_map_id
      @x = sys_vehicle.start_x
      @y = sys_vehicle.start_y
    end
  end
  #--------------------------------------------------------------------------
  # Atualização
  #--------------------------------------------------------------------------
  def refresh
    if @driving
      @map_id = $game_map.map_id
      sync_with_player
    elsif @map_id == $game_map.map_id
      moveto(@x, @y)
    end
    case @type
    when 0;
      @priority_type = 1
      @move_speed = 4
    when 1;
      @priority_type = 1
      @move_speed = 5
    when 2;
      @priority_type = @driving ? 2 : 0
      @move_speed = 6
    end
    @walk_anime = @driving
    @step_anime = @driving
  end
  #--------------------------------------------------------------------------
  # Mudar posição
  #     map_id : ID do mapa
  #     x      : coordenada X
  #     y      : xoordenada Y
  #--------------------------------------------------------------------------
  def set_location(map_id, x, y)
    @map_id = map_id
    @x = x
    @y = y
    refresh
  end
  #--------------------------------------------------------------------------
  # Verificando coincidências de coordenadas
  #     x : coordenada X
  #     y : xoordenada Y
  #--------------------------------------------------------------------------
  def pos?(x, y)
    return (@map_id == $game_map.map_id and super(x, y))
  end
  #--------------------------------------------------------------------------
  # Transparência
  #--------------------------------------------------------------------------
  def transparent
    return (@map_id != $game_map.map_id or super)
  end
  #--------------------------------------------------------------------------
  # Entrar no veículo
  #--------------------------------------------------------------------------
  def get_on
    @driving = true
    @walk_anime = true
    @step_anime = true
    if @type == 2               # Caso seja uma airship
      @priority_type = 2        # Mudar prioridade para "junto ao herói"
    end
    @bgm.play                   # Reproduz música
  end
  #--------------------------------------------------------------------------
  # Sair do veículo
  #--------------------------------------------------------------------------
  def get_off
    @driving = false
    @walk_anime = false
    @step_anime = false
    @direction = 4
  end
  #--------------------------------------------------------------------------
  # Sincronização com o jogador
  #--------------------------------------------------------------------------
  def sync_with_player
    @x = $game_player.x
    @y = $game_player.y
    @real_x = $game_player.real_x
    @real_y = $game_player.real_y
    @direction = $game_player.direction
    update_bush_depth
  end
  #--------------------------------------------------------------------------
  # Velocidade
  #--------------------------------------------------------------------------
  def speed
    return @move_speed
  end
  #--------------------------------------------------------------------------
  # Coordenadas Y na tela
  #--------------------------------------------------------------------------
  def screen_y
    return super - altitude
  end
  #--------------------------------------------------------------------------
  # Verifica se é possível mover
  #--------------------------------------------------------------------------
  def movable?
    return false if (@type == 2 and @altitude < MAX_ALTITUDE)
    return (not moving?)
  end
  #--------------------------------------------------------------------------
  # Atualização da tela
  #--------------------------------------------------------------------------
  def update
    super
    if @type == 2               # Caso seja uma airship
      if @driving
        if @altitude < MAX_ALTITUDE
          @altitude += 1        # Aumenta a altitude
        end
      elsif @altitude > 0
        @altitude -= 1          # Diminui a altitude
        if @altitude == 0
          @priority_type = 0    # Retorna para prioridade "abaixo do herói"
        end
      end
    end
  end
end

#----------------------------------------------------------------------------
#                                 Fly High 1.0
#                       www.rpgmakerbrasil.com/forum/
#----------------------------------------------------------------------------

지금까지! 루시페르였습니다!~