Forums » RPG Maker XP

Modificando o Banco de Dados Dinamicamente com RGSS (RMXP)

    • 404 posts
    22 de maio de 2015 18:36:12 ART

    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::Skillproperty é 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:

    • 0 para Nada
    • 1 para Inimigo
    • 2 para Todos os Inimigos
    • 3 para Aliado
    • 4 para Todo o Grupo
    • 5 para Aliado (HP 0)
    • 6 para Todo o Grupo (HP 0)
    • 7 para Herói (ou seja, o invocador é o alvo)
    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:

    • 0 para Ambos
    • 1 para Apenas Batalha
    • 2 para Apenas Menu
    • 3 para Não Usar
    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çaDestrezaAgilidade 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!