Modificando o Banco de Dados Dinamicamente com RGSS (RMXP)
Aula 4 - As Habilidades
Introdução
Habilidades, ou skills, são algo indispensável para um jogo fantástico, com muita magia e fantasia. Nesta aula, eu lhes apresentarei como criar habilidades dinamicamente, com RGSS.
A classe RPG::Skill
A classe RPG::Skill é a responsável pelas habilidades
Para criar uma habilidade, você precisa do código:
skill = RPG::Skill.new
Depois, para modificar as propriedades, é só esse código:
skill.property = value
Onde skill é a variável onde você colocou a RPG::Skill, property é a propriedade da habilidade e value é o valor.
Propriedades da RPG::Skill
As propriedades da RPG::Skill são essas:
name
É o nome da habilidade.
skill.name ="Recuperação Total"
icon_name
É o nome do ícone gráfico da habilidade.
skill.icon_name ="044-Skill01"
description
É a descrição da habilidade, aquela que aparece na janela de ajuda quando você foca a habilidade no jogo.
skill.description ="Recupera o HP."
scope
Indica qual é o alvo da habilidade. Equivale ao campo Afeta:. Coloque:
skill.scope =7# Herói
occasion
Indica onde a habilidade pode ser usada: no menu e na batalha, apenas no menu, apenas na batalha ou em nenhum dos dois. Coloque:
skill.occasion =0# Ambos
animation1_id e animation2_id
Indicam, respectivamente, a animação do invocador e a animação do alvo.
skill.animation1_id =1 skill.animation2_id =25
menu_se
É um RPG::AudioFile que indica qual será o efeito sonoro para essa habilidade no menu.
skill.menu_se = RPG::AudioFile.new("105-Heal01",80,100)
common_event_id
Indica qual evento comum deve ser executado quando a habilidade for usada. Coloque 0 para nenhum.
skill.common_event_id =0# Nenhum
sp_cost
Diz ao jogo o quanto de MP o invocador da habilidade consumirá.
skill.sp_cost =300
power
O poder da habilidade, que é o valor base para calcular os efeitos do dano. Coloque um valor negativo para um efeito de cura.
skill.power =-2000
atk_f e eva_f
Sào modificadores que indicarão a influência do ataque e da evasão no dano. Se atk_f for 0, a habilidade é considerada uma Magia.
skill.atk_f =0# Magia skill.eva_f =0
str_f, dex_f, agi_f e int_f
São modificadores que indicam a influência dos parâmetros Força, Destreza, Agilidade e Magia no dano.
skill.str_f =0 skill.dex_f =0 skill.agi_f =0 skill.int_f =0
hit
Indica a porcentagem de acerto da habilidade. Coloque 100 se a habilidade sempre acertar. Se atk_f for maior que 0, a porcentagem será multiplicada pela porcentagem de acerto do invocador dividida por 100.
skill.hit =100# Sempre acertar
pdef_f e mdef_f
Mais modificadores... Eles definem a influência da defesa física e da defesa mágica no dano. Colque 0 para ambos se não houver como defender ou se for uma habilidade de cura.
skill.pdef_f =0 skill.mdef_f =0
variance
Define o grau de variação do dano. 15 é o padrão.
skill.variance =15
element_set
Indica os elementos da habilidade.
skill.element_set =[]
plus_state_set e minus_state_set
Indicam a adição e remoção de elementos. plus_state_set indica quais os status que poderão ser adicionados ao alvo e minus_state_setindica quais status serão removidos.
skill.plus_state_set =[] skill.minus_state_set =[]
Adicionando a Habilidade ao Banco de Dados
Agora teremos de adicionar a nossa habilidade ao banco de dados. Use esse código:
skill.id = $data_skills.size $data_skills << skill
Para salvá-la no arquivo:
save_data($data_skills,"Data/Skills.rxdata")
Código Completo de Exemplo
skill = RPG::Skill.new skill.name ="Recuperação Total" skill.icon_name ="044-Skill01" skill.description ="Recupera o HP." skill.scope =7# Herói skill.occasion =0# Ambos skill.animation1_id =1 skill.animation2_id =25 skill.menu_se = RPG::AudioFile.new("105-Heal01",80,100) skill.common_event_id =0# Nenhum skill.sp_cost =300 skill.power =-2000 skill.atk_f =0# Magia skill.eva_f =0 skill.str_f =0 skill.dex_f =0 skill.agi_f =0 skill.int_f =0 skill.hit =100# Sempre acertar skill.pdef_f =0 skill.mdef_f =0 skill.variance =15 skill.element_set =[] skill.plus_state_set =[] skill.minus_state_set =[] skill.id = $data_skills.size $data_skills << skill save_data($data_skills,"Data/Skills.rxdata")
Observação
Quando for testar o jogo e fizer modificações direto no arquivo de dados, para ver as modificações, feche o jogo sem salvar e reabra-o.
Conclusão
Nessa aula, aprendemos como fazer as habilidades. Na próxima, aprenderemos a criar os... itens!