Templo RPG Maker
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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

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

FrozenGraveyard

FrozenGraveyard
Membro Honorário I
Membro Honorário I
Amethyst Platform System 1.2
por Khas


Caracteristicas:

- Transforma mapas selecionados em Plataforma, estilo Super Mario
- Plug'n'Play
- Tecla de Pulo, força configuravel
- 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


[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]

Dr.

Dr.
Banido
Banido
rsrs !legeal

FrozenGraveyard

FrozenGraveyard
Membro Honorário I
Membro Honorário I
Tbm achei legal então decidi postar pro pessoal Piscando

The Lucas Wugades

The Lucas Wugades
Membro Honorário III
Membro Honorário III
Desculpe-me mas eu já tinha postado ele a mesma versão pesquise antes de postar:
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

https://templorpgmakerbr.forumeiros.com/forum

DeathMaker

DeathMaker
Membro Honorário I
Membro Honorário I
Lucas para de ressucitar tópicos... Esse tópico foi no mês 8 estamos no mês 12.

The Lucas Wugades

The Lucas Wugades
Membro Honorário III
Membro Honorário III
Cara só postei pra avisar que eu já tinha postado a mesma script a mesma versão [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]

https://templorpgmakerbr.forumeiros.com/forum

BrunoFox

BrunoFox
Administrador
Administrador
Tópico trancado.
Ia punir o membro, porém ele nem entra no fórum mais (o Frozen).

https://templorpgmakerbr.forumeiros.com

Conteúdo patrocinado


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

Permissões neste sub-fórum
Não podes responder a tópicos