Advertisement
Fehu

Prism Engine - Running Speed

Mar 9th, 2017
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 9.19 KB | None | 0 0
  1. #╔═════════════════════════════════════════════════════════════════════════════╗
  2. #║ ҉ Prism Engine - Running Speed                                              ║
  3. #╠═════════════════════════════════════════════════════════════════════════════╣
  4. #║ Autor:  Alisson                                                             ║
  5. #║ Data:   09/03/2017                                                          ║
  6. #║ Versão: 1.1                                                                 ║
  7. #╠═════════════════════════════════════════════════════════════════════════════╣
  8. #║ Histórico:                                                                  ║
  9. #║   → 1.1 - Estados agora afetam a velocidade do jogador.                     ║
  10. #║   → 1.0 - Lançado                                                           ║
  11. #╠═════════════════════════════════════════════════════════════════════════════╣
  12. #║ Requer: Prism Core.                                                         ║
  13. #╠═════════════════════════════════════════════════════════════════════════════╣
  14. #║ Informações:                                                                ║
  15. #║ Este script modifica a velocidade de corrida do jogador para que seja       ║
  16. #║ baseada nos pontos de agilidade do líder, ao invés de um valor fixo.        ║
  17. #╠═════════════════════════════════════════════════════════════════════════════╣
  18. #║ Instruções:                                                                 ║
  19. #║ Você pode fazer modificações gerais nas configurações abaixo, mas caso      ║
  20. #║ queira criar configurações especiais para um único personagem, você pode    ║
  21. #║ usar algumas notas.                                                         ║
  22. #║                                                                             ║
  23. #║ Na caixa de notas do personagem, você pode usar as seguintes tags:          ║
  24. #║ <Run Speed Rate: n> Muda a taxa de alteração de velocidade para o número n. ║
  25. #║ <Run Min Speed: n> Os pontos de agilidade mínimos para começar a alteração. ║
  26. #║ <Run Max Speed: n> Até onde a agilidade interfere na velocidade.            ║
  27. #║                                                                             ║
  28. #║ Na caixa de notas dos estados, você pode usar as seguintes tags:            ║
  29. #║ <Run Speed Increase: n> Aumenta a taxa de velocidade do jogador para n.     ║
  30. #║ <Run Speed Decrease: n> Diminui a taxa de velocidade do jogador para n.     ║
  31. #║                                                                             ║
  32. #║ Nota: n precisa ser um número inteiro ou decimal, como 1, 2 ou 0.05.        ║
  33. #╚═════════════════════════════════════════════════════════════════════════════╝
  34. Prism.register("Prism - Running Speed", 1.0, nil, true)
  35. module Prism::Running_Speed
  36.   extend self
  37.  
  38.  #╔═══════════════════════════════════════════════════════════════════════════╗
  39.  #║ ♦ Configuração                                                            ║
  40.  #╚═══════════════════════════════════════════════════════════════════════════╝
  41.  
  42.   Min_Speed  = 10    # Agilidade Mínima para começar a alteração.
  43.   Max_Speed  = 80    # Até onde os pontos de agilidade interferem na velocidade.
  44.   Speed_Rate = 0.03  # Taxa de alteração de velocidade. Valores mais altos
  45.                      # fazem ele se mover mais rápido a cada ponto.
  46.  
  47.  #╔═══════════════════════════════════════════════════════════════════════════╗
  48.  #║ ♦ Fim das Configurações                                                   ║
  49.  #╠═══════════════════════════════════════════════════════════════════════════╣
  50.  #║ Editar algo após aqui pode prejudicar o funcionamento do script.          ║
  51.  #║ Mexa apenas se souber o que está fazendo.                                 ║
  52.  #╚═══════════════════════════════════════════════════════════════════════════╝
  53.  
  54.  #┌───────────────────────────────────────────────────────────────────────────┐
  55.  #│ ♦ get_speed                                                               │
  56.  #└───────────────────────────────────────────────────────────────────────────┘
  57.   def get_speed(original_speed, event)
  58.     ignore_limit = false
  59.     increase = 0
  60.     decrease = 0
  61.     $game_party.leader.equips.each {|e|
  62.       next unless e
  63.       if e.in_container?(/<Run Ignore Limit>/i)
  64.         ignore_limit = true
  65.         break
  66.       end
  67.     }
  68.     $game_party.leader.states.each {|st|
  69.       next unless st
  70.       if st.in_container?(/<Run Speed Increase:\s*(.*)>/i)
  71.         increase = st.get_tag(/<Run Speed Increase:\s*(.*)>/i).to_f
  72.       end
  73.       if st.in_container?(/<Run Speed Decrease:\s*(.*)>/i)
  74.         decrease = st.get_tag(/<Run Speed Decrease:\s*(.*)>/i).to_f
  75.       end
  76.     }
  77.     os = original_speed
  78.     min = Min_Speed
  79.     max = Max_Speed
  80.     rate = Speed_Rate
  81.     inc = increase
  82.     dec = decrease
  83.     reg = [/<Run Speed Rate:\s*(.*)>/i,
  84.            /<Run Min Speed:\s*(.*)>/i,
  85.            /<Run Max Speed:\s*(.*)>/i]
  86.     if $game_party.members.size > 0
  87.       actor = $data_actors[$game_party.leader.id]
  88.       rate = actor.get_tag(reg[0]).to_f if actor.in_container?(reg[0])
  89.      
  90.       min = actor.get_tag(reg[1]).to_f if actor.in_container?(reg[1])
  91.       max = actor.get_tag(reg[2]).to_f if actor.in_container?(reg[2])
  92.      
  93.       ls = $game_party.leader.agi
  94.       ls = max if ls > max && !ignore_limit
  95.       ls = min if ls < min && !ignore_limit
  96.     else
  97.       ls = 1
  98.     end
  99.     return os + (event.dash? ? (ls * rate + inc) - dec : 0)
  100.   end
  101.  
  102. end # ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ Prism::Running_Speed ◄
  103.  
  104. #╔═════════════════════════════════════════════════════════════════════════════╗
  105. #║ ҉ Game_Player                                                               ║
  106. #╚═════════════════════════════════════════════════════════════════════════════╝
  107. class Game_Player < Game_Character
  108.  
  109.  #┌───────────────────────────────────────────────────────────────────────────┐
  110.  #│ ♦ real_move_speed                                                         │
  111.  #└───────────────────────────────────────────────────────────────────────────┘
  112.   def real_move_speed
  113.     return Prism::Running_Speed.get_speed(@move_speed, self)
  114.   end
  115.  
  116. end # ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫  Game_Player ◄
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement