Centro RPG Maker

Centro de Recursos => Scripts de RPG Maker => Scripts para RPG Maker VX Ace => Tópico iniciado por: Raizen online 22/02/2013 às 14:43

Título: Lune Ultimate Anti-Lag
Enviado por: Raizen online 22/02/2013 às 14:43
Lune Ultimate Anti-Lag

Compativel com: RMVXAce
Compatibilidade :bom
Facilidade de uso: fácil
Lag gerado: nulo
[box class=titlebg]
Condições de Uso
[/box]
  Pode ser modificado, e divulgado, mas mantenha os créditos a mim obrigado.

[box class=titlebg]
Para que serve o script
[/box]

  Esse é o último script em relação a lag que faço, e é o mais eficiente, e diferente de todos os anti-lags que já tiveram experiência sobre. NÃO utilize outro anti-lag junto com esse, pode aumentar o lag do que diminuir.
Ele é diferente dos outros scripts de anti-lag, não tem bugs, e conta com várias funções trabalhando juntos para reduzir o lag.

Propriedades:
Título: Re: Lune Ultimate Anti-Lag
Enviado por: Geraldo de Rívia online 26/02/2013 às 08:01
Citação de: Raizen online 22/02/2013 às 14:43
[...] não tem bugs, [...]

Ui... que segurança hein...  :seei:



Enfim, cara, acho que agora sim vou conseguir utilizar um anti-lag,
depois de décadas lutando para encontrar um que me servisse.
E pelo que li, você deu um jeitinho naquele probleminha lá que eu
tive né... ? De as minhas árvores se "prenderem" na tela...  :rick9:
Depois quero saber como chegou à essa façanha...

E bacana que conseguiu juntar ambas as formas de reduzir o lag,
dessa forma não se limita só à quantidade de eventos. Isso
impressiona bem.

No mais, nada mais do que mais um elogio, mano. Excelente trabalho
novamente e... mais um script dos seus que surrupio. Assim que
possível vou tentar implementá-lo la no meu projeto, vamos ver se
a coisa é boa mesmo...
  :ok:
Título: Re: Lune Ultimate Anti-Lag
Enviado por: Raizen online 26/02/2013 às 13:58
Citação de: King Gerar online 26/02/2013 às 08:01
Citação de: Raizen online 22/02/2013 às 14:43
[...] não tem bugs, [...]

Ui... que segurança hein...  :seei:
90% dos scripts meus bugam hsuHASU, por isso tenho que passar segurança u__u.
Eu não sei esse bug hsuAHSU, porque não sei como ele acontece, aah... wait na verdade eu sei kk, tenho que colocar uma parte no script para configurar os limites  :será: , esse atual vai acontecer a mesma coisa.
Título: Re: Lune Ultimate Anti-Lag
Enviado por: katumblo online 23/03/2014 às 16:06
raizen tu é um GENIO ._. uns eventos meus bugavam por apenas lag, quando coloquei esse scrip voltaram a funcionar perfeitamente *U*

Só uma coisa raizen ...

Quando coloco uma variável para calcular a posição X e outra para calcular a posição Y do personagem
e +2 para calcular a posição X e Y de um tal evento e coloco uma condição caso os 2 estejam no mesmo lugar, ocorrer alguma coisa ( do tipo mensagem ) não tá mais funcionando isso .-.

Tipo, sem o script da pra fazer isso, agora quando eu coloco não funciona isso :C
teria como arrumar? pf isso tirou bastante lag do meu projeto

Deixa deu uma simples lida no script e vi qual foi meu erro kkkkkk ... Para quem esta com o mesmo erro, e no mesmo caso, é só por um evento-comentário  com o seguinte texto :  :update: 
Tava bem explicito no tópico, mas do jeito que está no tópico não da para entender muito bem para os leigos no assunto \:
Título: Re: Lune Ultimate Anti-Lag
Enviado por: Klarth online 30/03/2014 às 00:59
Raizen, esse script tem uma incompatibilidade com o script de iluminação do khas :/. Eu tentei resolver a incompatibilidade mas não consegui. Você poderia dar uma olhada? Eu queria muito usar ele no meu projeto, pois gostei bastante, achei ele bem completo.
Título: Re:  Lune Ultimate Anti-Lag
Enviado por: Raizen online 30/03/2014 às 13:13
@katumblo: kk xD, qualquer coisa só chamar manolo.

Citação de: Klarth online 30/03/2014 às 00:59
Raizen, esse script tem uma incompatibilidade com o script de iluminação do khas :/. Eu tentei resolver a incompatibilidade mas não consegui. Você poderia dar uma olhada? Eu queria muito usar ele no meu projeto, pois gostei bastante, achei ele bem completo.

Aqui velho :D, mas cara vê se isso realmente melhora, porque aqui parece lagar mais quando usado junto com o script do Khas, já que o dele é bem pesado.

#=======================================================
#         Lune Ultimate Anti-Lag
# Autor: Raizen
# Compativel com: RMVXAce
# Comunidade: [url=http://www.centrorpg.com]www.centrorpg.com[/url]
# O script permite um pulo de frames na atualização de gráficos,
# muito útil para jogos que tem uma programação pesada, e
# atualização de gráficos, funcionando com um anti-lag.
# Detalhe: anti-lags são compátiveis com esse script.
#========================================================

#Para atualizar um programa constantemente, coloque um comentário
#no primeiro comando daquele evento escrito :update:

module Anti_conf
#==============================================================================
# ** Configurações
#------------------------------------------------------------------------------
#  Configure o que for necessário para um maior desempenho.
#==============================================================================
# Escolha como o Frame_Skip irá agir.
# <=====Qualidade============================Desempenho=====>
# 1  2  3  4  5  6  7  8  9  10 11 12 13 14 15 16 17 18 19 20
# Padrão = 10
Fr = 10

# Configure a taxa de FPS (padrão = 60)
Fps = 60

# Quantidade de frames que o analizador de FPS irá levar,
# Quanto menor o número mais rápido o script funcionará, porém
# será menos preciso.
Time = 60

end
=begin




Funções desse Anti-Lag

* Bug comum de posição de evento corrigido
* Frame Skip inteligente
* atualiza apenas o que é necessário
* ajuda inclusive outros scripts visuais a reduzir o lag
* Ele muda o seu comportamento de acordo com as necessidades de cada jogador
* Aumenta a prioridade do RPG Maker diante de outros programas
=end

#=================================================================#
#====================  Alias methods =============================#
# command_203          => Game_Interpreter
# start                => Scene_Map
# update               => Scene_Map
# perform_transfer     => Scene_Map
#=================================================================#
#====================  Rewrite methods ===========================#
# update_events        => Game_Map
# update_one_event     => Spriteset_Map
#=================================================================#
#========================  New methods ===========================#
# need_to_update?      => Game_Event
# near_the_screen?     => Sprite_Character
# call_position_event  => Scene_Map
# skip_calculate       => Scene_Map
# update_one_event     => Spriteset_Map
#=================================================================#
#=================================================================#

#==============================================================================
#============================  Início do Script!  =============================
#==============================================================================
#==============================================================================
# ** Scene_Map
#------------------------------------------------------------------------------
#  Esta classe executa o processamento da tela de mapa.
#==============================================================================

class Scene_Map < Scene_Base
alias lune_skip_start start
alias lune_skip_update update
alias lune_perform perform_transfer
  #--------------------------------------------------------------------------
  # * Inicialização do processo
  #--------------------------------------------------------------------------
  def start
    Graphics.frame_rate = Anti_conf::Fps
    @update_skip = false
    @count_up = 0
    lune_skip_start
  end
  #--------------------------------------------------------------------------
  # * Execução da transferência
  #--------------------------------------------------------------------------
  def perform_transfer
    $get_new_ids = Array.new
    Graphics.frame_rate = Anti_conf::Fps
    lune_perform
    @count_up = 0
    @update_skip = false
  end
  #--------------------------------------------------------------------------
  # * Atualização da tela
  #--------------------------------------------------------------------------
  def update
    @update_skip ? lune_skip_update : skip_calculate
  end
  #--------------------------------------------------------------------------
  # * Atualização de um personagem especifico
  #--------------------------------------------------------------------------
  def call_position_event(id)
    @spriteset.update_one_event(id)
  end
  #--------------------------------------------------------------------------
  # * Calcula o tempo necessário para rodar o update do Scene_Map
  #-------------------------------------------------------------------------- 
  def skip_calculate
    @count_up += 1
    return unless @count_up >= Anti_conf::Time
    auto_skip = Time.now
    lune_skip_update
    old_skip = Time.now
    get_skip = old_skip - auto_skip
    Graphics.frame_rate -= (get_skip * Graphics.frame_rate * 2 * Anti_conf::Fr - 1).to_i
    @update_skip = true
  end
end


#==============================================================================
# ** Scene_Base
#------------------------------------------------------------------------------
#  Esta é a superclasse de todas as cenas do jogo.
#==============================================================================
class Scene_Base
alias skipper_main main
  #--------------------------------------------------------------------------
  # * Processamento principal
  #--------------------------------------------------------------------------
  def main
    @fr_cont = 0
    skipper_main
  end
  #--------------------------------------------------------------------------
  # * Execução da transição
  #--------------------------------------------------------------------------
  def perform_transition
    Graphics.transition(transition_speed * Graphics.frame_rate / 60)
  end
  #--------------------------------------------------------------------------
  # * Atualização da tela (básico)
  #--------------------------------------------------------------------------
  def update_basic
    if @fr_cont >= 60
      Graphics.update       
      @fr_cont -= 60
    end
    @fr_cont += Graphics.frame_rate
    update_all_windows
    Input.update
  end
end

#==============================================================================
# ** Aumento da prioridade do rpg maker
#------------------------------------------------------------------------------
Lune_high = Win32API.new("kernel32", "SetPriorityClass", "pi", "i")
Lune_high.call(-1, 0x90)
#==============================================================================

#==============================================================================
# ** Game_Event
#------------------------------------------------------------------------------
#  Esta classe gerencia os eventos. Ela controla funções incluindo a mudança
# de páginas de event por condições determinadas, e processos paralelos.
# Esta classe é usada internamente pela classe Game_Map.
#==============================================================================

class Game_Event < Game_Character
  #--------------------------------------------------------------------------
  # * necessário atualizar?
  #--------------------------------------------------------------------------
  def need_to_update?
    ax = $game_map.adjust_x(@real_x) - 8
    ay = $game_map.adjust_y(@real_y) - 6
    return false unless @list
    ax.between?(-9, 9) && ay.between?(-7, 7) || @list[0].parameters.include?(':update:')
  end
end

#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
#  Este sprite é usado para mostrar personagens. Ele observa uma instância
# da classe Game_Character e automaticamente muda as condições do sprite.
#==============================================================================

class Sprite_Character < Sprite_Base
  #--------------------------------------------------------------------------
  # * Evento próximo a tela?
  #--------------------------------------------------------------------------
  def near_the_screen?
    ax = $game_map.adjust_x(@character.x) - 8
    ay = $game_map.adjust_y(@character.y) - 6
    ax.between?(-11, 11) && ay.between?(-8, 8)
  end
end
#==============================================================================
# ** Game_Event
#------------------------------------------------------------------------------
#  Esta classe gerencia os eventos. Ela controla funções incluindo a mudança
# de páginas de event por condições determinadas, e processos paralelos.
# Esta classe é usada internamente pela classe Game_Map.
#==============================================================================

class Game_Event < Game_Character
alias lune_ant_initialize initialize
  #--------------------------------------------------------------------------
  # * Inicialização do objeto
  #     event : RPG::Event
  #--------------------------------------------------------------------------
  def initialize(*args, &block)
    lune_ant_initialize(*args, &block)
    $get_new_ids.push(@event.id)
  end
end

#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
#  Um interpretador para executar os comandos de evento. Esta classe é usada
# internamente pelas classes Game_Map, Game_Troop e Game_Event.
#==============================================================================

class Game_Interpreter
alias lune_lag_command_203 command_203
  #--------------------------------------------------------------------------
  # Definir posição do evento
  #--------------------------------------------------------------------------
  def command_203
    lune_lag_command_203
    SceneManager.scene.call_position_event($get_new_ids.index(@event_id))
  end
end
#==============================================================================
# ** Game_Map
#------------------------------------------------------------------------------
#  Esta classe gerencia o mapa. Inclui funções de rolagem e definição de
# passagens. A instância desta classe é referenciada por $game_map.
#==============================================================================

class Game_Map
  #--------------------------------------------------------------------------
  # * Atualização dos comandos dos eventos
  #--------------------------------------------------------------------------
  def update_events
    @events.each_value {|event| event.update if event.need_to_update?}
    @common_events.each {|event| event.update}
  end
end


$get_new_ids = Array.new
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
#  Esta classe reune os sprites da tela de mapa e tilesets. Esta classe é
# usada internamente pela classe Scene_Map.
#==============================================================================
class Spriteset_Map
  #--------------------------------------------------------------------------
  # * Atualização dos personagens
  #--------------------------------------------------------------------------
  def update_characters
    refresh_characters if @map_id != $game_map.map_id
    @character_sprites.each {|sprite| sprite.update if sprite.near_the_screen? }
  end
  #--------------------------------------------------------------------------
  # * Atualização de algum personagem remoto
  #--------------------------------------------------------------------------
  def update_one_event(id)
    @character_sprites[id].update
  end
end
Título: Re: Lune Ultimate Anti-Lag
Enviado por: Klarth online 30/03/2014 às 13:45
Opa valeu mesmo raizen :D
Pelos testes aqui aumentou uns 4-5fps, ta rodando a 95-97 fps com umas 7 luzes no mapa.
Título: Re: Lune Ultimate Anti-Lag
Enviado por: LoudGamerBR online 16/04/2014 às 18:52
Ajuda aqui? ;-;
Eu coloquei o Script compatível com o Khas, mas quando fui fazer o PlayTest, deu esse erro:
line 155: NoMethodError ocurred.
undefined method `>='for nil:nilClass
Tem como consertar isso?  :T.T:
Título: Re: Lune Ultimate Anti-Lag
Enviado por: Raizen online 16/04/2014 às 19:04
Coloca o Anti-lag abaixo do script do khas x)
Título: Re: Lune Ultimate Anti-Lag
Enviado por: onimaru online 17/04/2014 às 11:16
Belo script Raizen, mesmo que ainda não percebi diferenças no meu projeto! :=p:

De qualquer forma, só passei pra falar que esse script da incompatibilidade com seu próprio script de reflexos! (Como também o de reflexo da incompatibilidade com o de adicionar mais frames no char! lol, eu estava colocando todos pra testar e deu isso! x3)

Bug
(http://i.imgur.com/PmR1ooa.png?1?7163)
[close]

De certa forma, eu acabei de pegar um punhado de script seu pra usar... :*-*:
E gostaria de te pedir um pequeno favor, se puder aceitar, enviarei uma PM com o assunto! x3

No mais, espero ter ajudado com isso e espero respostas! x3

Título: Re: Lune Ultimate Anti-Lag
Enviado por: Raizen online 17/04/2014 às 16:49
Vish, tentou mudar a ordem dos scripts?

coloca o anti-lag abaixo do de reflex, ou ao contrário.
Agora não posso testar isso :/

Pode mandar a MP eu vejo o que posso fazer.
Título: Re:  Lune Ultimate Anti-Lag
Enviado por: onimaru online 17/04/2014 às 18:49
Citação de: Raizen online 17/04/2014 às 16:49
Vish, tentou mudar a ordem dos scripts?

coloca o anti-lag abaixo do de reflex, ou ao contrário.
Agora não posso testar isso :/

Pode mandar a MP eu vejo o que posso fazer.

Sim sim, eu mudei a posição e ainda sim não funcionou! x-X
Mas nada pra se preocupar, não usarei o sistema de reflexo, vim mais mesmo dar avisar! x3

Oks, estarei mandando! :³
Título: Re: Lune Ultimate Anti-Lag
Enviado por: Zugzwang online 18/04/2014 às 12:36
Diminuiu bastante o lag. Mas começou a dar um problemas para iniciar os processos paralelos que usei. Alguém mais teve esse problema?
Título: Re: Lune Ultimate Anti-Lag
Enviado por: katumblo online 18/04/2014 às 12:50
Citação de: Zugzwang online 18/04/2014 às 12:36
Diminuiu bastante o lag. Mas começou a dar um problemas para iniciar os processos paralelos que usei. Alguém mais teve esse problema?

Coloque o comando " :update: " como comentário no inicio de seus eventos, eu já tive esse problema, em um comentário meu ali em cima explicou isso o/ kkkk
Bom, acho que é esse seu problema mesmo  :3'
Título: Re: Lune Ultimate Anti-Lag
Enviado por: djavan online 07/09/2015 às 13:55
Cara seu scrpt salvou meu projeto XD valewww por disponibilizar  :wow:
Título: Lune Ultimate Anti-Lag
Enviado por: Maquixo online 25/02/2017 às 15:08
Olá, quando eu tento usar o script o jogo não aparenta diferença com relação ao lag, e logo após alguns segundos aparece a mensagem de erro:
"Script "x" line 187:NoMethodError occured
undefined method '[]' for nil:NilClass"
Não entendo de programação e não encontrei alguém que pudesse me ajudar, o que eu poderia fazer para o script funcionar corretamente?
Título: Lune Ultimate Anti-Lag
Enviado por: Yamashi online 25/02/2017 às 16:05
Eu não sou um programador, então eu não sei se esta é a melhor solução. Mas parece que remover esta linha corrigir o problema.
Título: Lune Ultimate Anti-Lag
Enviado por: Raizen online 25/02/2017 às 18:11
Citação de: Maquixo online 25/02/2017 às 15:08
Olá, quando eu tento usar o script o jogo não aparenta diferença com relação ao lag, e logo após alguns segundos aparece a mensagem de erro:
"Script "x" line 187:NoMethodError occured
undefined method '[]' for nil:NilClass"
Não entendo de programação e não encontrei alguém que pudesse me ajudar, o que eu poderia fazer para o script funcionar corretamente?
Você está usando algum outro script junto com esse?
Título: Lune Ultimate Anti-Lag
Enviado por: Maquixo online 25/02/2017 às 19:59
Citação de: Raizen online 25/02/2017 às 18:11
Citação de: Maquixo online 25/02/2017 às 15:08
Olá, quando eu tento usar o script o jogo não aparenta diferença com relação ao lag, e logo após alguns segundos aparece a mensagem de erro:
"Script "x" line 187:NoMethodError occured
undefined method '[]' for nil:NilClass"
Não entendo de programação e não encontrei alguém que pudesse me ajudar, o que eu poderia fazer para o script funcionar corretamente?
Você está usando algum outro script junto com esse?

Eu estava, mas mesmo tirando e voltando a testar aconteceu o mesmo erro.
Título: Lune Ultimate Anti-Lag
Enviado por: Maquixo online 25/02/2017 às 20:02
Citação de: Yamashi online 25/02/2017 às 16:05
Eu não sou um programador, então eu não sei se esta é a melhor solução. Mas parece que remover esta linha corrigir o problema.

Estranhamente funcionou kkkk O erro deixou de aparecer, mas o lag permaneceu.
Título: Lune Ultimate Anti-Lag
Enviado por: KiritoYT online 09/06/2017 às 17:09
Dá um help ae, quando eu clico em novo jogo, ae ele entra na tela preta pra carregar da esse erro Script Lune Ultimate Anti-Lag line 188: TypeError ocurred. can't convert String into Tone
Obs: essa é a linha 188
ax.between?(-9, 9) && ay.between?(-7, 7) || @list[0].parameters.include?(':update:')
Título: Lune Ultimate Anti-Lag
Enviado por: Raizen online 13/06/2017 às 14:44
Isso é conflito com outro script que você está usando, pode listar eles aqui?

Você também pode alterar a ordem dos scripts, as vezes isso funciona.