K Neo Jump

Introdução

Re-escreve o salto padrão do rpg maker xp para ficar parecido com o do rpg maker 2000/2003.

1.1: Função nova adicionada, a função against.

1.2: Salto com limite configurável e som nos saltos, que ficam baixos de acordo com a distância.

Características

  • Re-escreve o salto de forma que possam haver mais de 2 saltos ao mesmo tempo e o efeito vale pra todos os eventos e jogador;
  • Não é tão incompatível assim;
  • É meu primeiro script feito do 0TM;
  • Possui bons efeitos gravitacionais;
  • É possível tocar sons nos saltos;

Screenshots

O Efeito é igual ao do salto padrão, só que permite dar dois saltos e andar enquanto salta, então, pra quê screenshots?

Como usar

No mover evento chame o script:

neo_jump(lock,limit)

Aonde lock pode ser substituido por:

    true <- Caso queira que trave o salto caso já esteja saltando 

    false <- Caso queira dar um salto em cima do outro(salto duplo)

Use o comando:

jump_lock

E logo após coloque outro comando no mover evento, como esperar(X) frames para esperar o final do salto,e logo após terminar o salto, esperar estes frames(recomendo 5 frames ou mais).

Novidade da versão 1.2:

  • limit é o limite de saltos, é só botar um número lá, 0 = infinito ok?,
  • a lock deve sempre estar false pra usar o limit ok?
  • Também tem o som do salto, um extra que eu fiz, este tem suas instruções no script.

Demo

 

unknown_256.png

Script
[spoiler]

#==============================================================================
# K Neo Jump 1.2 (6/fev/11)
#------------------------------------------------------------------------------
# Re-escreve o salto padrão do rpg maker xp para ficar parecido
# com o do rpg maker 2000/2003
#==============================================================================
#Créditos:
# Kress - por fazer
# Pedro(HCDO) - por ensinar o método do Sprite_Character
# PedroHLC - por pedir e ajudar em algumas coisas.
# Garguon - por sugerir um método de limite novo
# Madajuv - Método de usado para distância dos eventos
#==============================================================================
#Características:
=begin
* Re-escreve o salto de forma que possam haver mais de 2 saltos
 ao mesmo tempo e o efeito vale pra todos os eventos e jogador;
* Não é tão incompatível assim;
* É meu primeiro script feito do 0;
* Possui bons efeitos gravitacionais;
* É possível tocar sons nos saltos;
=end
#==============================================================================
#Instruções:
#   No mover evento chame o script:
#         neo_jump(lock, limit)
# Aonde lock pode ser substituido por:
#
# true <- Caso queira que trave o salto caso já esteja saltando
# false <- Caso queira dar um salto em cima do outro(salto duplo)
#
# Novidade da versão 1.2:
#
# limit é o limite de saltos, é só botar um número lá, 0 = infinito ok?,
# a lock deve sempre estar false pra usar o limit ok?
# Também tem o som do salto, um extra que eu fiz.
#
# OBS: Nunca deixe de configurar o limit ou o lock, isso irá dar um bug.
#
# Use o comando:  >jump_lock< e coloque um esperar X frames
# para esperar o final do salto antes de realizar outra ação
#
#==============================================================================
# Game_Character
#------------------------------------------------------------------------------
# Esta classe é apenas uma pequena modificação na
# Game_Character original.
#==============================================================================
class Game_Character
 attr_accessor('against','heroposition','jumpnumber','jumpforce', 'gravityforce', 'limit', 'wait_jump','jumpsound','sound_volume')
 alias neojump_initialize initialize
 def initialize
 neojump_initialize
#==============================================================================
#Configurações:
#==============================================================================
#Esses dados podem ser mudados pelo mover evento depois
 @jumpforce = 15#coloque a força do salto
 @gravityforce = 1#coloque a força da gravidade
 @limit = 10#limite de velocidade, coloque 0 pra desativar
 @against = true#caso true, o segundo salto vai depender da gravidade
 @jumpsound = "016-Jump02"#caso tenha nome, vai tocar um som quando algo pular
 @sound_volume = 85#isso é o volume do som
#==============================================================================
#Não precisa editar nada a partir daqui ^^
#==============================================================================
 @gravity = 0
 #inicializa o método de salto
 @force = @jumpforce
 @jumpnumber = 0
 @heroposition = 0
 @wait_jump = false
 end
 #trava de salto, faz você esperar o final do salto
 def jump_lock
 @wait_jump = true
 end
 #metodo do novo salto, sem isso ninguém pula
 def neo_jump(lock,limit)
 @wait_jump = false
 if @jumpnumber == 0
 @gravity = 0
 @gravity -= @jumpforce
 @force = (@gravity * -1)
 @jumpnumber +=1
 soundplay
 else
 if lock == false
 if limit != 0 and limit > @jumpnumber# método de limite novo
 #caso seja salto duplo
 if @against == false
 @gravity = 0
 end
 @gravity -= @jumpforce
 @jumpnumber +=1
 soundplay
 end
 end
 end
 end
 def soundplay
 if @jumpsound != ""
 @vol_p = self.is_a?(Game_Player) ? @sound_volume : 100 - ((@x - $game_player.x)**2 + (@y - $game_player.y)**2)
 if @vol_p >= @sound_volume
 @vol_p = @sound_volume
 end
 if @vol_p <= 0
 @vol_p = 0
 end
 Audio.se_play("Audio/SE/" + @jumpsound,@vol_p,90 + rand(20))
 end
 end
 alias neojump_update update
 #atualizações
 def update
 neojump_update
 #caso o contador de saltos esteja maior que 0
 if @jumpnumber > 0
 update_neojump#atualiza salto
 end
 end
 #atualização do novo salto, sem isso niguém se move
 def update_neojump
 if @gravity <= @force
 if @wait_jump == true
 @wait_count = 2
 end
 if @gravity >= @limit and @limit != 0
 @gravity = @limit#limita velocidade
 else
 #atualiza gravidade
 @gravity += @gravityforce
 end
 @heroposition += @gravity#atualiza coordenada do herói
 if @heroposition >= 0
 @heroposition = 0
 @jumpnumber = 0
 end
 else
 if @jumpnumber > 0
 if @gravity >= @limit and @limit != 0
 @gravity = @limit#limita velocidade
 else
 #atualiza gravidade
 @gravity += @gravityforce
 end
 @heroposition += @gravity#atualiza coordenada do herói
 if @heroposition >= 0
 @heroposition = 0
 @jumpnumber = 0
 end
 end
 end
 end
 #arruma o moveto para não continuar atualizando o salto (teleport no ar)
 alias neojump_moveto moveto
 def moveto(*args)
 @wait_jump = false
 @gravity = 0
 @force = @jumpforce
 @jumpnumber = 0
 @heroposition = 0
 @wait_count = 1
 return neojump_moveto(*args)
 end
 end
#==============================================================================
# Sprite_Character
#------------------------------------------------------------------------------
# Faz a coordenada Y do herói mudar.
#==============================================================================
class Sprite_Character < RPG::Sprite
 alias neojumpscreen_update update
 def update
 neojumpscreen_update
 if @character.heroposition != nil
 self.y += @character.heroposition
 end
 end
end

[/spoiler]
Perguntas Frequentes

Pergunta:O que isso faz?

Resposta:Leia o tópico.

Pergunta:Tem como fazer um de VX?

Resposta:Tem, tem sim, mas eu estarei fazendo este exclusivo pra minha engine isométrica.

Créditos e Agradecimentos

  • Feito por mim com ajuda de PedroHLC;
  • Pedido por PedroHLC;
  • Avaliado por Pedro(HCDO)

TEM MAIS CRÉDITOS TÉCNICOS NO SCRIPT

Anúncios
  • Trackback are closed
  • Comentários (0)

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: