Cálculos de combate customizados e pequenas mudanças Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Cálculos de combate customizados e pequenas mudanças

Ir para baixo

Cálculos de combate customizados e pequenas mudanças Empty Cálculos de combate customizados e pequenas mudanças

Mensagem por GallighanMaker Sex Mar 12, 2021 11:45 am

Sobre


Comissão que entreguei no final do ano de 2020, talvez ajude em alguns projetos abrindo a mente para algumas alterações, lembre-se de fazer backup e testar pois foi entregue a um membro que acabou não retornando o feedback.

Visão geral


- [x] 1. Trocar o atributo "Defesa Mágica" para "Vitalidade"
- [x] 2. Alterar função de recuperar os vitals (HP/ MP) para recuperar HP 3x a vitalidade e MP 2x a vitalidade
- [x] 3. Alterar a função de dano critico para receber o atributo "sorte" como uma variação de acerto
- [x] 4. Alterar a função de esquiva para receber o atributo "agilidade" como uma variação de acerto

Tutorial


1.


Client

Abra o editor de scripts (F11), procure por "Modules/[VS] Vocab", no final adicione:
Código:
 # Janela de Atributos
  HP                 = 'Vida:'
  MP                 = 'Mana:'
  Atk                = 'Força:'
  Def                = 'Constituição:'
  Mat                = 'Inteligência:'
  Vit                = 'Vitalidade'
  Agi                = 'Agilidade:'
  Lck                = 'Sorte:'

Procure por "RMVXA/[RM] Game_BattlerBase", encontre a declaração "def mdf;" e substitua por "def vit;".
Procure por "Game Windows/[VS] Window_Status" e substitua pelo código abaixo:
Código:
#==============================================================================
# ** Window_Status
#------------------------------------------------------------------------------
#  Esta classe lida com a janela de informações do
# jogador, como parâmetros, classe e pontos.
#------------------------------------------------------------------------------
#  Autor: Valentine
#  Mod: Gallighanmaker
#==============================================================================

class Window_Status < Window_Base
  
  def initialize
    super(40, 150, 280, 420)
    self.visible = false
    self.closable = true
    self.title = Vocab.status
    @param_buttons = []
    btn1 = Button.new(self, 220, 118, '+') {$network.send_add_param(0) }
    btn2 = Button.new(self, 220, 148, '+') {$network.send_add_param(1) }
    btn3 =  Button.new(self, 220, 178, '+') {$network.send_add_param(2) }
    btn4 =  Button.new(self, 220, 208, '+') {$network.send_add_param(3) }
    btn5 =  Button.new(self, 220, 238, '+') {$network.send_add_param(4) }
    btn6 =  Button.new(self, 220, 268, '+') {$network.send_add_param(5) }
    btn7 =  Button.new(self, 220, 298, '+') {$network.send_add_param(6) }
    btn8 =  Button.new(self, 220, 328, '+') {$network.send_add_param(7) }
    @param_buttons.push(btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8)
  end
  
  def refresh
    contents.clear
    
    #draw_text(40, 106, 60, line_height, Vocab::Class)
    draw_actor_graphic($game_actors[1], 60, 75)
    
    change_color(normal_color)
    
    draw_text(86, 27, 100, line_height, $game_actors[1].name)
    draw_text(86, 42, 100, line_height, 'Lv. ' + $game_actors[1].level.to_s)
    draw_text(86, 57, 100, line_height, 'Exp. ' + $game_actors[1].now_exp.to_s + '/' +  $game_actors[1].next_exp.to_s)
    
    change_color(system_color)
    
    draw_text(40, 106, 50, line_height, Vocab::HP)
    draw_text(40, 136, 50, line_height, Vocab::MP)
    draw_text(40, 166, 100, line_height, Vocab::Atk)
    draw_text(40, 196, 170, line_height, Vocab::Def)
    draw_text(40, 226, 170, line_height, Vocab::Mat)
    draw_text(40, 256, 170, line_height, Vocab::Vit)
    draw_text(40, 286, 100, line_height, Vocab::Agi)
    draw_text(40, 316, 100, line_height, Vocab::Lck)
    
    change_color(normal_color)
    
    change_color(text_color(30))
    draw_text(40, 346, 60, line_height, Vocab::Points)
    
    change_color(normal_color)
    
    draw_text(180, 108, 40, line_height, $game_actors[1].param(0))
    draw_text(180, 138, 40, line_height, $game_actors[1].param(1))
    
    
    draw_text(180, 168, 40, line_height, $game_actors[1].param(2))
    draw_text(180, 198, 40, line_height, $game_actors[1].param(3))
    draw_text(180, 228, 40, line_height, $game_actors[1].param(4))
    draw_text(180, 256, 40, line_height, $game_actors[1].param(5))
    draw_text(180, 286, 40, line_height, $game_actors[1].param(6))
    draw_text(180, 316, 40, line_height, $game_actors[1].param(7))  
    
    draw_text(180, 346, 40, line_height, $game_actors[1].points > 0 ? $game_actors[1].points : 0)
    @param_buttons.each { |button| button.visible = $game_actors[1].points > 0 }
    
  end
  
end

2.


Servidor


Abra o arquivo "configs.ini" e adicione duas novas chaves
Código:
# Sistema multiplicador para recuperar HP e MP baseados em "vitalidade"
HP_MULTIPLICADOR = 3
MP_MULTIPLICADOR = 2

Abra o arquivo Scripts/game_client.rb, procure pela função "def recover_vital" e troque por:
Código:
def recover_vital
  return if @recover_time > Time.now
  @recover_time = Time.now + RECOVER_TIME
  if @hp < mhp || @mp < mmp
    n_hp = (mdf * HP_MULTIPLICADOR).next
    n_mp = (mdf * MP_MULTIPLICADOR).next
    change_vitals((@hp + RECOVER_HP * vip_recover_bonus * n_hp).to_i, (@mp + RECOVER_MP * vip_recover_bonus * n_mp).to_i)
  end
end

Pronto, agora o atributo novo "vitalidade" irá curar conforme o multiplicador de HP e MP desejado, esse valor é customizável.

3.


Servidor

Em configs.ini adicione:
Código:
# Sistema de Critical e Esquiva baseado no satributos Luck e Agilidade
# Formula Critico: base_damage + (luck * multiplicador)
CRITICAL_MULTIPLICADOR = 3

Vá até o "Scripts/game_battle.rb" e faça as seguintes instruções:
Procure pela função "def make_damage_value", substitua por:

Código:
def make_damage_value(user, item, critical, animation_id, ani_index)
 value = item.damage.eval(user, self, user.variables)
 value *= item_element_rate(user, item)
 value *= pdr if item.physical?
 value *= mdr if item.magical?
 value *= rec if item.damage.recover?
 value = value + (user.luk * CRITICAL_MULTIPLICADOR) if critical
 value = apply_variance(value, item.damage.variance)
 value = apply_guard(value)
 # Se no cálculo do dano tinha número decimal, converte o resultado em inteiro
 make_damage(value.to_i, item, user, critical, animation_id, ani_index)
end

Procure pela função "def item_cri(user, item)" e substitua por:
Código:
def item_cri(user, item)
  # It should increase your crit rate by 1% for each 10 points of luck you have more than your target.
  # If your target has more, then it should decrease your crit rate by 1% per 10 point difference.
  item.damage.critical ? user.cri * (1 - cev) + ((user.luk - luk) * 0.001) : 0
end

Procure pela função "def item_eva(user, item)" e substitua por:
Código:
def item_eva(user, item)
  # It should increase your evasion rate by 1% for each 10 points of agility you have more than your target.
  # If your target has more, then it should decrease your evasion rate by 1% per 10 point difference.
  return eva * (1 - cev) + ((user.agi - agi) * 0.001)
end

Done!

_________________
Cálculos de combate customizados e pequenas mudanças 8dVK0ku
using C# and import Python developer || Expert in Unity Engine IDE. || Cálculos de combate customizados e pequenas mudanças 769_heart 2D pixel games.
GallighanMaker
GallighanMaker
Colaborador
Colaborador

Medalhas : Cálculos de combate customizados e pequenas mudanças ZgLkiRU
Mensagens : 985
Créditos : 102

Ficha do personagem
Nível: 1
Experiência:
Cálculos de combate customizados e pequenas mudanças Left_bar_bleue0/0Cálculos de combate customizados e pequenas mudanças Empty_bar_bleue  (0/0)
Vida:
Cálculos de combate customizados e pequenas mudanças Left_bar_bleue30/30Cálculos de combate customizados e pequenas mudanças Empty_bar_bleue  (30/30)

https://kingsland-online.com/

Valentine e Kiyoko gostam desta mensagem

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos