Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
Dano minimo e máximo janela de habilidades
4 participantes
Aldeia RPG :: VXA-OS Engine :: Recursos :: Scripts
Página 1 de 2
Página 1 de 2 • 1, 2
Dano minimo e máximo janela de habilidades
Pessoal, criei um script que mostra o dano minimo e máximo de uma habilidade, utilizando o "damage formula" do próprio editor de habilidades do RPG Maker VX Ace.
O script pega apenas a parte do dano que é calculável em atributos do jogador, ignorando a parte de defesa do oponente, por exemplo, uma habilidade chamada "Fogo":
Formula:
50 + a.mat * 2 - b.mdf * 2
O script corta esse texto para apenas:
50 + a.mat * 2
Ou seja, removemos a parte que calcula a defesa, com isso podemos calcular o dano minimo e máximo em base na variação, alterando os tipos de atributos a.atk (ataque), a.mat (ataque mágico), a.agi (agilidade) para os pontos de atributos do personagem. Por exemplo, suponhamos que o personagem tem 50 pontos de ataque mágico:
Original:
50 + a.mat * 2
Alterando o atributo
50 + 50 * 2
Agora temos o calculo real do dano máximo, a variação apenas subtrai desse valor para gerar o minimo e máximo, uma variação de 20 seria o resultado:
50 + 50 * 2 = 200
200 - 20 = 180
Dano mínimo: 180, Dano Máximo: 200
Chega de calculo e bora para o script e o resultado:
Adicione as linhas abaixo no final do script: [VS] Vocab:
Agora em [VS] Script_Help, substitua a função inteira draw_skill pela de baixo:
Fiz esse script rapidinho aqui, fiquem a vontade para ajustar.
xD
O script pega apenas a parte do dano que é calculável em atributos do jogador, ignorando a parte de defesa do oponente, por exemplo, uma habilidade chamada "Fogo":
Formula:
50 + a.mat * 2 - b.mdf * 2
O script corta esse texto para apenas:
50 + a.mat * 2
Ou seja, removemos a parte que calcula a defesa, com isso podemos calcular o dano minimo e máximo em base na variação, alterando os tipos de atributos a.atk (ataque), a.mat (ataque mágico), a.agi (agilidade) para os pontos de atributos do personagem. Por exemplo, suponhamos que o personagem tem 50 pontos de ataque mágico:
Original:
50 + a.mat * 2
Alterando o atributo
50 + 50 * 2
Agora temos o calculo real do dano máximo, a variação apenas subtrai desse valor para gerar o minimo e máximo, uma variação de 20 seria o resultado:
50 + 50 * 2 = 200
200 - 20 = 180
Dano mínimo: 180, Dano Máximo: 200
Chega de calculo e bora para o script e o resultado:
Adicione as linhas abaixo no final do script: [VS] Vocab:
- Código:
# Janela de Habilidades
Damage = 'Dano:'
Agora em [VS] Script_Help, substitua a função inteira draw_skill pela de baixo:
- Código:
def draw_skill
return unless @item.is_a?(RPG::Skill)
self.bitmap.draw_text(21, 70, 100, line_height, Vocab::MPCost)
self.bitmap.draw_text(21, 88, 105, line_height, Vocab::Hit)
self.bitmap.draw_text(125, 70, 40, line_height, @item.mp_cost, 2)
self.bitmap.draw_text(140, 88, 25, line_height, @item.success_rate, 2)
# Show only in HP Damage skills type
if @item.damage.type == 1
# Begin - Show skill damage
atk = $game_actors[1].param(2)# Attack power
mat = $game_actors[1].param(4) # Magic power
agi = $game_actors[1].param(6) # Agility
variance = @item.damage.variance # Skill variance %
if variance == 0
variance = 1
end
formula = @item.damage.formula # Damage formula
min_damage = 0 # Min damage
max_damage = 0 # Max damage
damage_variance = 0 # Damage variance
# Change atk, mat and agi formula values for actor attributes
map = {'a.atk' => atk.to_s, 'a.mat' => mat.to_s, 'a.agi' => agi.to_s}
map.each {|k,v| formula.sub!(k,v)}
# Remove enemy defense part of damage formula, Ex: a.atk * 2 - b.def
# keep only a.atk * 2
if formula.include? "-"
new_formula = formula.split('-')[0]
max_damage = eval(new_formula)
if max_damage > 0
damage_variance = max_damage / max_damage * variance
min_damage = max_damage - damage_variance
end
else
max_damage = eval(formula)
if max_damage > 0
damage_variance = max_damage / max_damage * variance
min_damage = max_damage - damage_variance
end
end
color = crisis_color
self.bitmap.font.color.set(color)
self.bitmap.draw_text(21, 106, 100, line_height, Vocab::Damage)
self.bitmap.draw_text(65, 106, 100, line_height, min_damage.to_s + '~' + max_damage.to_s, 2)
self.bitmap.font.color.set(normal_color)
end
# End
end
Fiz esse script rapidinho aqui, fiquem a vontade para ajustar.
xD
Última edição por GallighanMaker em Sex Jun 21, 2019 1:23 am, editado 3 vez(es)
_________________
using C# and import Python developer || Expert in Unity Engine IDE. || 2D pixel games.
Re: Dano minimo e máximo janela de habilidades
muito bom *-*
partiu usar rsrs
malz aproveitando o script [sabe falar como removo esse precisão ? acho q ele desnecessário rsrs]
partiu usar rsrs
malz aproveitando o script [sabe falar como removo esse precisão ? acho q ele desnecessário rsrs]
_________________
PROJETO: Heros Online [20%]
Classes: Guerreiro, Arqueiro, Mago e Sacerdote
VXA-OS "gráficos RM.vx.ace"
retropiguru- Novato
- Mensagens : 14
Créditos : 0
Re: Dano minimo e máximo janela de habilidades
Você diz a variação do dano min e max?. Não entendi exatamente a precisão que quer remover kk.
_________________
using C# and import Python developer || Expert in Unity Engine IDE. || 2D pixel games.
Re: Dano minimo e máximo janela de habilidades
_________________
PROJETO: Heros Online [20%]
Classes: Guerreiro, Arqueiro, Mago e Sacerdote
VXA-OS "gráficos RM.vx.ace"
retropiguru- Novato
- Mensagens : 14
Créditos : 0
Re: Dano minimo e máximo janela de habilidades
Só remover essas duas linhas:
- Código:
self.bitmap.draw_text(21, 88, 105, line_height, Vocab::Hit)
self.bitmap.draw_text(140, 88, 25, line_height, @item.success_rate, 2)
_________________
using C# and import Python developer || Expert in Unity Engine IDE. || 2D pixel games.
Re: Dano minimo e máximo janela de habilidades
vlw +10 xD
_________________
PROJETO: Heros Online [20%]
Classes: Guerreiro, Arqueiro, Mago e Sacerdote
VXA-OS "gráficos RM.vx.ace"
retropiguru- Novato
- Mensagens : 14
Créditos : 0
Manticora- Membro Ativo
- Mensagens : 265
Créditos : 62
Ficha do personagem
Nível: 1
Experiência:
(0/0)
Vida:
(30/30)
Re: Dano minimo e máximo janela de habilidades
@Azel,
Pode ser alguma variação com valor 0 e da o erro ao tentar criar o dano minimo, poderia me passar a linha que isso ocorre?. Se você entrar em scripts após o erro provavelmente ele irá apontar a linha.
Outra coisa, alterei um pouco o script, poderia trocar pelo do tópico dnv?. Aguardo o feedback.
Pode ser alguma variação com valor 0 e da o erro ao tentar criar o dano minimo, poderia me passar a linha que isso ocorre?. Se você entrar em scripts após o erro provavelmente ele irá apontar a linha.
Outra coisa, alterei um pouco o script, poderia trocar pelo do tópico dnv?. Aguardo o feedback.
_________________
using C# and import Python developer || Expert in Unity Engine IDE. || 2D pixel games.
Re: Dano minimo e máximo janela de habilidades
Obrigado Gall troquei pela nova alteração o script funcionou normalmente
Erro não aparece mais
Azel- Iniciante
- Mensagens : 47
Créditos : 7
Página 1 de 2 • 1, 2
Tópicos semelhantes
» Máximo e mínimo de caracteres para criar char.
» Nova janela de descrição de itens e habilidades
» Limitar lvl mínimo para o pvp..
» Dano do NPC
» Alteração de dano
» Nova janela de descrição de itens e habilidades
» Limitar lvl mínimo para o pvp..
» Dano do NPC
» Alteração de dano
Aldeia RPG :: VXA-OS Engine :: Recursos :: Scripts
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos