Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #╔═════════════════════════════════════════════════════════════════════════════╗
- #║ ҉ Prism Engine - Running Speed ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Autor: Alisson ║
- #║ Data: 09/03/2017 ║
- #║ Versão: 1.1 ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Histórico: ║
- #║ → 1.1 - Estados agora afetam a velocidade do jogador. ║
- #║ → 1.0 - Lançado ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Requer: Prism Core. ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Informações: ║
- #║ Este script modifica a velocidade de corrida do jogador para que seja ║
- #║ baseada nos pontos de agilidade do líder, ao invés de um valor fixo. ║
- #╠═════════════════════════════════════════════════════════════════════════════╣
- #║ Instruções: ║
- #║ Você pode fazer modificações gerais nas configurações abaixo, mas caso ║
- #║ queira criar configurações especiais para um único personagem, você pode ║
- #║ usar algumas notas. ║
- #║ ║
- #║ Na caixa de notas do personagem, você pode usar as seguintes tags: ║
- #║ <Run Speed Rate: n> Muda a taxa de alteração de velocidade para o número n. ║
- #║ <Run Min Speed: n> Os pontos de agilidade mínimos para começar a alteração. ║
- #║ <Run Max Speed: n> Até onde a agilidade interfere na velocidade. ║
- #║ ║
- #║ Na caixa de notas dos estados, você pode usar as seguintes tags: ║
- #║ <Run Speed Increase: n> Aumenta a taxa de velocidade do jogador para n. ║
- #║ <Run Speed Decrease: n> Diminui a taxa de velocidade do jogador para n. ║
- #║ ║
- #║ Nota: n precisa ser um número inteiro ou decimal, como 1, 2 ou 0.05. ║
- #╚═════════════════════════════════════════════════════════════════════════════╝
- Prism.register("Prism - Running Speed", 1.0, nil, true)
- module Prism::Running_Speed
- extend self
- #╔═══════════════════════════════════════════════════════════════════════════╗
- #║ ♦ Configuração ║
- #╚═══════════════════════════════════════════════════════════════════════════╝
- Min_Speed = 10 # Agilidade Mínima para começar a alteração.
- Max_Speed = 80 # Até onde os pontos de agilidade interferem na velocidade.
- Speed_Rate = 0.03 # Taxa de alteração de velocidade. Valores mais altos
- # fazem ele se mover mais rápido a cada ponto.
- #╔═══════════════════════════════════════════════════════════════════════════╗
- #║ ♦ Fim das Configurações ║
- #╠═══════════════════════════════════════════════════════════════════════════╣
- #║ Editar algo após aqui pode prejudicar o funcionamento do script. ║
- #║ Mexa apenas se souber o que está fazendo. ║
- #╚═══════════════════════════════════════════════════════════════════════════╝
- #┌───────────────────────────────────────────────────────────────────────────┐
- #│ ♦ get_speed │
- #└───────────────────────────────────────────────────────────────────────────┘
- def get_speed(original_speed, event)
- ignore_limit = false
- increase = 0
- decrease = 0
- $game_party.leader.equips.each {|e|
- next unless e
- if e.in_container?(/<Run Ignore Limit>/i)
- ignore_limit = true
- break
- end
- }
- $game_party.leader.states.each {|st|
- next unless st
- if st.in_container?(/<Run Speed Increase:\s*(.*)>/i)
- increase = st.get_tag(/<Run Speed Increase:\s*(.*)>/i).to_f
- end
- if st.in_container?(/<Run Speed Decrease:\s*(.*)>/i)
- decrease = st.get_tag(/<Run Speed Decrease:\s*(.*)>/i).to_f
- end
- }
- os = original_speed
- min = Min_Speed
- max = Max_Speed
- rate = Speed_Rate
- inc = increase
- dec = decrease
- reg = [/<Run Speed Rate:\s*(.*)>/i,
- /<Run Min Speed:\s*(.*)>/i,
- /<Run Max Speed:\s*(.*)>/i]
- if $game_party.members.size > 0
- actor = $data_actors[$game_party.leader.id]
- rate = actor.get_tag(reg[0]).to_f if actor.in_container?(reg[0])
- min = actor.get_tag(reg[1]).to_f if actor.in_container?(reg[1])
- max = actor.get_tag(reg[2]).to_f if actor.in_container?(reg[2])
- ls = $game_party.leader.agi
- ls = max if ls > max && !ignore_limit
- ls = min if ls < min && !ignore_limit
- else
- ls = 1
- end
- return os + (event.dash? ? (ls * rate + inc) - dec : 0)
- end
- end # ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ Prism::Running_Speed ◄
- #╔═════════════════════════════════════════════════════════════════════════════╗
- #║ ҉ Game_Player ║
- #╚═════════════════════════════════════════════════════════════════════════════╝
- class Game_Player < Game_Character
- #┌───────────────────────────────────────────────────────────────────────────┐
- #│ ♦ real_move_speed │
- #└───────────────────────────────────────────────────────────────────────────┘
- def real_move_speed
- return Prism::Running_Speed.get_speed(@move_speed, self)
- end
- end # ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ ▫ Game_Player ◄
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement