Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt

» Craftage Engine (Eclipse Origins totalmente modificado e sem bugs)
Seg 27 Abr 2015, 18:24 por pigot98


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

Tiaguu

avatar
Membro - semi experiente
Membro - semi experiente
Amethyst Platform System 1.2
por Khas


Caracteristicas:

- Transforma mapas selecionados em Plataforma, estilo Super Mario
- Plug'n'Play
- Tecla de Pulo, força configurável
- Sistema de gravidade, age sobre o jogador e eventos


Instruções de uso:

Código:
================================================================================
 Instruções - Instalação
================================================================================
 1 - Cole este script acima de todos os seus scripts adicionais
 2 - Configure-o na parte de configuração

================================================================================
 Instruções - Criando mapas
================================================================================
 Os tiles não passaveis serão a plataforma e os tiles passaveis são aonde
 o personagem pode cair\pular. Os eventos de mapa também sofrem ação da
 gravidade do sistema, ou seja, podem cair em buracos também


Script:

Código:
=begin
================================================================================
 Amethyst Platform System - Versão 1.2 RMVX - 25/03/2010
================================================================================

--------------------------------------------------------------------------------
 Creditos\Condições de uso
--------------------------------------------------------------------------------
 Criado por Khas.
 Todos os scripts Amethyst estão licenciados sobre Creative Commons
 Todos os scripts Amethyst só podem ser usados em projetos não-comerciais,
 caso use em projeto comercial envie uma PM com o pedido.
 
--------------------------------------------------------------------------------
 Caracteristicas
--------------------------------------------------------------------------------
 O Amethyst Platform System transforma os mapas selecionados na constante
 Amp_System_Maps (veja a parte de configuração) em mapas estilo plataforma.
 
--------------------------------------------------------------------------------
 Instruções - Instalação
--------------------------------------------------------------------------------
 1 - Cole este script acima de todos os seus scripts adicionais
 2 - Configure-o na parte de configuração

--------------------------------------------------------------------------------
 Instruções - Criando mapas
--------------------------------------------------------------------------------
 Os tiles não passaveis serão a plataforma e os tiles passaveis são aonde
 o personagem pode cair\pular. Os eventos de mapa também sofrem ação da
 gravidade do sistema, ou seja, podem cair em buracos também
 
--------------------------------------------------------------------------------
 Importante
--------------------------------------------------------------------------------
 Por algum motivo este script não reconhece os tiles não passaveis do TileA
 Então todo o mapeamento deve ser feito com os Tilesets restantes

--------------------------------------------------------------------------------
 Configuração
--------------------------------------------------------------------------------
=end
module Amp_Config
  # Mapas estilo plataforma, coloque o ID dentro do [], separados por virgulas
  Amp_System_Maps = [1,3,4]
  # Força da gravidade, varia de 0~2
  GForce = 1
  # Tecla para pular
  Jump_Key = Input::X
  # Força do pulo, valores de 0~5
  Jump_Force = 1
  # Som reproduzido ao pular
  Jump_Sound = "Jump1"
end
#-------------------------------------------------------------------------------
#      Não altere nada abaixo, a menos que saiba o que está fazendo!
#-------------------------------------------------------------------------------

$Amethyst_Scripts = {} if $Amethyst_Scripts.nil?
$Amethyst_Scripts["Am Platform System"] = ["1.2","25/03/2010"]

class Game_Character
  alias amp_original_initialize initialize
  alias amp_original_update update
  alias amp_original_move_up move_up
  alias amp_original_move_down move_down
  alias amp_original_move_left move_left
  alias amp_original_move_right move_right
  alias amp_original_move_random move_random
  alias amp_original_turn_random turn_random
  alias amp_original_move_toward_player move_toward_player
  alias amp_original_move_away_from_player move_away_from_player
  def amp_map?
    $game_map.nil? ? i = false : i = Amp_Config::Amp_System_Maps.include?($game_map.map_id)
    return i
  end
  def initialize
    if amp_map?
      @gforce = false; @nforce = false; @sforce = nil
    end
    amp_original_initialize
  end
  def update
    amp_original_update
    return unless amp_map?
    force_gravity if @gforce
    stop_gravity_force if @nforce
  end
  def force_gravity
    return if moving?
    @move_speed = Amp_Config::GForce+4
    @y = $game_map.round_y(@y+1)
    @real_y = (@y-1)*256
    if passable?(@x, @y+1); @gforce = true
      else; @nforce = true; @gforce = false
    end
  end
  def check_gravity_force
    if passable?(@x, @y+1)
      @sforce = @move_speed
      @gforce = true
      @walk_anime = false
    else
      check_event_trigger_touch(@x, @y+1)
    end
  end
  def stop_gravity_force
    return if moving?
    @nforce = false
    @gforce = false
    @walk_anime = true
    @move_speed = @sforce
    @sforce = nil
  end
  def move_up(turn_ok = true)
    amp_map? ? amp_move_up(turn_ok) : amp_original_move_up(turn_ok)
  end
  def move_down(turn_ok = true)
    amp_map? ? amp_move_down(turn_ok) : amp_original_move_down(turn_ok)
  end
  def move_left(turn_ok = true)
    amp_map? ? amp_move_left(turn_ok) : amp_original_move_left(turn_ok)
  end
  def move_right(turn_ok = true)
    amp_map? ? amp_move_right(turn_ok) : amp_original_move_right(turn_ok)
  end
  def move_random
    amp_map? ? amp_move_random : amp_original_move_random
  end
  def move_toward_player
    amp_map? ? amp_move_toward_player : amp_original_move_toward_player
  end
  def move_away_from_player
    amp_map? ? amp_move_away_from_player : amp_original_move_away_from_player
  end
  def turn_random
    amp_map? ? amp_turn_random : amp_original_turn_random
  end
  def amp_move_up(turn_ok)
    if passable?(@x, @y-1)
      @y = $game_map.round_y(@y-1)
      @real_y = (@y+1)*256
      increase_steps
      @move_failed = false
    else
      check_event_trigger_touch(@x, @y-1)
      @move_failed = true
    end
  end
  def amp_move_down(turn_ok)
    if passable?(@x, @y+1)
      @y = $game_map.round_y(@y+1)
      @real_y = (@y-1)*256
      increase_steps
      @move_failed = false
    else
      check_event_trigger_touch(@x, @y+1)
      @move_failed = true
    end
  end
  def amp_move_left(turn_ok)
    if passable?(@x-1, @y)
      turn_left if turn_ok
      @x = $game_map.round_x(@x-1)
      @real_x = (@x+1)*256
      increase_steps
      check_gravity_force
      @move_failed = false
    else
      turn_left if turn_ok
      check_event_trigger_touch(@x-1, @y)
      @move_failed = true
    end
  end
  def amp_move_right(turn_ok)
    if passable?(@x+1, @y)
      turn_right if turn_ok
      @x = $game_map.round_x(@x+1)
      @real_x = (@x-1)*256
      increase_steps
      check_gravity_force
      @move_failed = false
    else
      turn_right if turn_ok
      check_event_trigger_touch(@x+1, @y)
      @move_failed = true
    end
  end
  def amp_move_random
    case rand(2)
    when 0;  move_left(false)
    when 1;  move_right(false)
    end
  end
  def amp_move_toward_player
    sx = distance_x_from_player
    return if sx == 0
    sx > 0 ? move_right : move_left
  end
  def amp_move_away_from_player
    sx = distance_x_from_player
    return if sx == 0
    sx > 0 ? move_right : move_left
  end
  def amp_turn_random
    case rand(2)
    when 0; turn_right
    when 1; turn_left
    end
  end
end


class Game_Player < Game_Character
  alias amp_2original_initialize initialize
  alias amp_2original_update update
  alias amp_2original_move_by_input move_by_input
  def initialize
    amp_2original_initialize
    @jforce = 0
  end
  def update
    amp_2original_update
    update_jump_force if amp_map? and !@gforce
  end
  def update_jump_force
    if @jforce > 0
      return if moving?
      if @jforce > 1
        if Input.press?(Input::RIGHT)
          turn_right
          jump_upper_right
        elsif Input.press?(Input::LEFT)
          turn_left
          jump_upper_left
        else
          jump_up
        end
      else
        @move_speed = 4
        @walk_anime = true
        check_gravity_force
      end
      @jforce -= 1
    else
      if Input.trigger?(Amp_Config::Jump_Key)
        RPG::SE.new(Amp_Config::Jump_Sound,80).play
        dash? ? @jforce = 4+Amp_Config::Jump_Force : @jforce = 3+Amp_Config::Jump_Force
        @move_speed = 5
        @walk_anime = false
        @pattern = 0
      end
    end
  end
  def force_gravity
    return if moving?
    @move_speed = Amp_Config::GForce+4
    if Input.press?(Input::RIGHT)
      turn_right
      gforce_lower_right
    elsif Input.press?(Input::LEFT)
      turn_left
      gforce_lower_left
    else
      @y = $game_map.round_y(@y+1)
      @real_y = (@y-1)*256
    end
    check_touch_event
    if passable?(@x, @y+1); @gforce = true
      else; @nforce = true; @gforce = false
    end
  end
  def gforce_lower_left
    if (passable?(@x, @y+1) and passable?(@x-1, @y+1)) or
      (passable?(@x-1, @y) and passable?(@x-1, @y+1))
      @x -= 1
      @y += 1
    else
      @y = $game_map.round_y(@y+1)
      @real_y = (@y-1)*256
    end
  end
  def gforce_lower_right
    if (passable?(@x, @y+1) and passable?(@x+1, @y+1)) or
      (passable?(@x+1, @y) and passable?(@x+1, @y+1))
      @x += 1
      @y += 1
    else
      @y = $game_map.round_y(@y+1)
      @real_y = (@y-1)*256
    end
  end
  def jump_up
    if passable?(@x, @y-1)
      @y = $game_map.round_y(@y-1)
      @real_y = (@y+1)*256
      @move_failed = false
    else
      check_event_trigger_touch(@x, @y-1)
      @move_failed = true
      @jforce = 0
      check_gravity_force
    end
  end
  def jump_upper_left
    unless @direction_fix
      @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @direction)
    end
    if (passable?(@x, @y-1) and passable?(@x-1, @y-1)) or
      (passable?(@x-1, @y) and passable?(@x-1, @y-1))
      @x -= 1
      @y -= 1
    else
      jump_up
    end
  end
  def jump_upper_right
    unless @direction_fix
      @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @direction)
    end
    if (passable?(@x, @y-1) and passable?(@x+1, @y-1)) or
      (passable?(@x+1, @y) and passable?(@x+1, @y-1))
      @x += 1
      @y -= 1
    else
      jump_up
    end
  end
  def move_by_input
    amp_map? ? amp_move_by_input : amp_2original_move_by_input
  end
  def amp_move_by_input
    return if @gforce
    return unless movable?
    return if $game_map.interpreter.running?
    case Input.dir4
    when 4; move_left
    when 6; move_right
    end
  end
end


Demo:

Download v1.2


Screenshots:

Não há nescessidade, baixe a demo para ver como fica ingame.


Creditos:

Criado por Khas


[Você precisa estar registrado e conectado para ver esta imagem.]

Ver perfil do usuário

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum