O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Sismicidade Epicentrial Melhorada

Iniciado por LoboShow, 30/03/2013 às 11:47

Sismicidade Epicentrial Melhorada

Compativel com: RMXP
Compatibilidade: ?
Facilidade de uso: ?
Lag gerado: ?

[box class=titlebg]
Para que serve o script
[/box]
Apesar do nome absurdo , esse script é muito simples , útil e diversificado. Ele foi encontrado em um site de rpg maker xp francês. Este script tem a utilidade de modificar o comando por evento "Tremer a tela".Além de poder ultrapassar os limites de força e velocidade que variam entre 1-9 e poder utilizar números não-inteiros , ele permite customizar a direção do impacto na tela assim como a duração do tremor. Se utilizado corretamente ele pode fazer incriveis efeitos de terremoto!

[box class=titlebg]
Imagens
[/box]
Não necessário

[box class=titlebg]
Script
[/box]
#=================================
# Sismicidade Epicentrial Melhorada
# Script criado por Zeus81 da Camunidade Francesa Rmxp Studio Pall Net
# Traduizdo do Francês para o português por Korea
#=================================
# Manual de Utilização :
#
# Para Utilizar o script , insira um comando de evento com o seguinte código :
# $game_screen.start_shake(força sísmica, velocidade, duração em frames, sentido)
#
# Força Sísmica :
# A força sísmica é um valor variável que determinar a força com que a tela irá tremer.
# O valor da força sísmica deve variar entre 0.1 até 39.9 , e não prescisa ser nescessariamente um número inteiro.
# Um valor de força sísmica 0 fará a tela oscilar aleatoriamente em uma força de 0.1 ou maior .
# É possivel utilizar valores quebrados como "0.555555533334444" sem problema , não existe número máximo de dígitos.
# De 0-4 é considerada fraca , de 5-9 é considerada média e maior que 9 é considerada forte.
#
# Velocidade :
# Funciona como a força sísmica , porém é a velocidade com que a força sísmica será aplicada.
# Também varia de 0.1 a 39.9 , onde 0 fará a velocidade oscilar aleatoriamente novamente.
# Também é possivel utilizar número que não sejam inteiros , ou números quebrados.
# De 0-4 é considerada lenta , de 5-9 é considerada normal e maior que 9 é considerada rápida.
#
# Duração :
# É o valor de variável que determinará quanto tempo a força sísmica e
# a velocidade será aplicada sobre a tela em frames , ou seja , o tempo de tremer a tela .
# Deve ser um número maior que 0.1 , e caso utilizar 0 a tela ficará parada.
# Se o programador utilizar o número negativo "-1" a tela irá tremer infinitamente até que seja
# ordenado que ela pare . Para ordenar que o terremoto pare basta utilizar o
# comando novamente com todos os valores igual a 0;
#
# Sentido :
# Determina se a tela tremerá aleatoriamente , de cima para baixo , da esquerda pra direita ou na diagonal;
# É um valor de número inteiro que deve variar entre 0 e 4 , ou seja , deve-se inserir apenas os números abaixo :
# 0 >> Faz a tela tremer-se aleatoriamente (em todos os sentidos).
# 1 >> Faz a tela tremer-se na diagonal X.
# 2 >> Faz a tela tremer-se de cima para baixo e conseguentemente de baixo para cima.
# 3 >> Faz a tela tremer-se na diagonal Y.
# 4 >> Faz a tela tremer-se da esquerda para a direita e conseguentemente da direita para a esquerda.
#
# Exemplo de Utilização :
# $game_screen.start_shake(2, 15, 200, 0)
# Pelo exemplo acima , a tela tremeria fraca com uma velocidade rápida , duraria 200 frames e teria direções aleatórias.
#
# É possivel também alterar uma direção padrão para a tremor da tela , quando não for escolhido.
# Apenas substitua o número 0 em DIREÇÃO_PADRÃO abaixo por um número de direção .

class Game_Screen
  DIREÇÃO_PADRÃO = 0
 
  alias game_screen_initialize initialize
  def initialize
    game_screen_initialize
    @shake2 = 0
    @shake_power_random = false
    @shake_speed_random = false
    @shake_direction_random = false
  end
 
  def shake2
    @shake2 = 0 if @shake2 == nil
    return @shake2
  end
 
  def start_shake(power, speed, duration, direction = DIREÇÃO_PADRÃO)
    @shake_duration = duration
    if power == 0
      @shake_power = rand(9) + 1
      @shake_power_random = true
    else
      @shake_power = power
      @shake_power_random = false
    end
    if speed == 0
      @shake_speed = rand(9) + 1
      @shake_speed_random = true
    else
      @shake_speed = speed
      @shake_speed_random = false
    end
    if direction == 0
      @shake_direction_random = true
    else
      if @shake_direction != direction and @shake_direction != (10 - direction)
        @shake_direction = direction
        @shake = 0
        @shake2 = 0
      end
      @shake_direction_random = false
    end
  end
 
  def update
    if @tone_duration >= 1
      d = @tone_duration
      @tone.red = (@tone.red * (d - 1) + @tone_target.red) / d
      @tone.green = (@tone.green * (d - 1) + @tone_target.green) / d
      @tone.blue = (@tone.blue * (d - 1) + @tone_target.blue) / d
      @tone.gray = (@tone.gray * (d - 1) + @tone_target.gray) / d
      @tone_duration -= 1
    end
    if @flash_duration >= 1
      d = @flash_duration
      @flash_color.alpha = @flash_color.alpha * (d - 1) / d
      @flash_duration -= 1
    end
    if @shake_duration != 0 or @shake != 0 or @shake2 != 0
      delta = (@shake_power * @shake_speed) / 10.0
      if @shake.abs < delta and @shake2.abs < delta
        if @shake_power_random == true
          @shake_power = rand(9) + 1
        end
        if @shake_speed_random == true
          @shake_speed = rand(9) + 1
        end
        if @shake_direction_random == true
          @shake_direction = rand(8) + 1
          @shake_direction += 1 if @shake_direction > 4
        end
        delta = (@shake_power * @shake_speed) / 10.0
        @shake = 0
        @shake2 = 0
      end
      if @shake.abs > @shake_power * 2 or @shake2.abs > @shake_power * 2
        @shake_direction = 10 - @shake_direction
      end
      if @shake_duration > 0
        @shake_duration -= 1
      end
      if @shake_duration == 0 and @shake.abs < delta and @shake2.abs < delta
        @shake = 0
        @shake2 = 0
      else
        @shake += delta if @shake_direction % 3 == 0
        @shake -= delta if (@shake_direction + 2) % 3 == 0
        @shake2 += delta if @shake_direction < 4
        @shake2 -= delta if @shake_direction > 6
      end
    end
    if @weather_duration >= 1
      d = @weather_duration
      @weather_max = (@weather_max * (d - 1) + @weather_max_target) / d
      @weather_duration -= 1
      if @weather_duration == 0
        @weather_type = @weather_type_target
      end
    end
    if $game_temp.in_battle
      for i in 51..100
        @pictures[i].update
      end
    else
      for i in 1..50
        @pictures[i].update
      end
    end
  end
end

class Spriteset_Map
 
  alias spriteset_map_update update
  def update
    spriteset_map_update
    @viewport1.oy = $game_screen.shake2
  end
end


[box class=titlebg]
Créditos e Avisos
[/box]
Criador: Zeus81
Tradutor: Korea

Eu entrei aqui por causa do nome peculiar x], mas achei bem legal o efeito, acho que talvez para o Ace ficaria legal também, vou converte-lo se for fácil ai o pessoal do Ace poderá usa-lo também =D

Eu já usei este script, ele é muito bom. Dá um efeito extremamente realista no jogo, recomendo muito  :blink:

Eu sou o Korea (o tradutor do script, hehe). Ainda me lembro de ter postado ele no fórum da Reino RPG com esse nick.
Esse script é muito útil para fazer mapas de navio em alto mar - você pode usá-lo para criar um efeito de movimento no barco.

Não tem um desses para Ace TT^TT?
Queria fazer um efeito de tremor comum mesmo, só que sem "durar X segs", mas tremer até eu mandar parar.
Já perceberam que em vez de as pessoas usarem esse espaço para uma assinatura de fato, elas colocam alguma coisa aleatória (imagem, frase filosófica, divulgação, tipo o que estou fazendo agora), e colocam no corpo das mensagens o que deveria ser a assinatura?

Citação de: Pretty-Belle online 04/05/2013 às 10:23
Não tem um desses para Ace TT^TT?
Queria fazer um efeito de tremor comum mesmo, só que sem "durar X segs", mas tremer até eu mandar parar.
Pede ajuda para um Scripter passar ele para modo de compatibilidade ou refazê-lo justamente para o Ace. Aqui têm aos montes! Acho que não seria muito complicado para um deles fazer isso por você. Só não posso indicar porque não conheço quem possa fazê-lo.

Citação de: Pretty-Belle online 04/05/2013 às 10:23
Não tem um desses para Ace TT^TT?
Queria fazer um efeito de tremor comum mesmo, só que sem "durar X segs", mas tremer até eu mandar parar.

É bem facil fazer isso por eventos , se quiser eu posso fazer para você .