🤔 Para Refletir :
"Refatorar o código é como usar inseticida: Elimina bugs."
- Mayleone

RPG Maker MV Atributo Sorte no RPG Maker: Explorando sua Função

Tigrão Masculino

Cidadão
Colaboração
Colaboração
"Não consigo ler nada..."
Juntou-se
04 de Novembro de 2020
Postagens
169
Bravecoins
1.639
Área
Roteiro
Motor de jogo
RPG Maker MV
Olá, pessoal! Espero que estejam bem.

O atributo Sorte é um dos mais misteriosos para quem desenvolve projetos no RPG Maker, presente nas versões VX Ace, MV e MZ. Embora seja um atributo menos intuitivo do que outros como ataque ou defesa, ele desempenha um papel único no sistema de batalha. Dentro da engine, caso o desenvolvedor deixe o cursor parado na área onde é configurado o atributo Sorte da Classe (Banco de Dados > Aba Classes), aparecerá uma breve explicação:

“A sorte afeta a chance de ocorrência de maus estados. Referência para Script: LUK.” - RPG Maker VX Ace

“Afeta parâmetros como a possibilidade de status de doenças ocorridas.” - RPG Maker MV

“Afeta as chances de ser afetado por status de doença.” - RPG Maker MZ

Como podem observar, os três sistemas possuem a mesma função. A fórmula é também similar (usarei a do MV em rpg_objects.js, entre linhas 1869 e 1888, como exemplo):
Javascript:
Game_Action.prototype.itemEffectAddAttackState = function(target, effect) {
    this.subject().attackStates().forEach(function(stateId) {
        var chance = effect.value1;
        chance *= target.stateRate(stateId);
        chance *= this.subject().attackStatesRate(stateId);
        chance *= this.lukEffectRate(target);
        if (Math.random() < chance) {
            target.addState(stateId);
            this.makeSuccess(target);
        }
    }.bind(this), target);
};
Game_Action.prototype.lukEffectRate = function(target) {
    return Math.max(1.0 + (this.subject().luk - target.luk) * 0.001, 0.0);
};

// this.subject() = Usuário
// target = Alvo
// luk = Sorte

// Efeitos como a chance de redução de atributos e estados da habilidade de ser aplicado e a taxa de resistência do alvo influenciam após os cálculos.

O atributo Sorte afeta diretamente a chance de aplicar ou resistir a redução de atributos e anomalias (como veneno, paralisia, sonolência, entre outros). Quanto maior a Sorte de um personagem, maior sua resistência e maior a chance de aplicação em oponentes. No entanto, o impacto do atributo na chance de aplicação e resistência é baixo.

“Eu também gostaria de destacar que, por padrão, o efeito de Sorte (LUK) na aplicação de estados é muito sutil. Por exemplo, uma chance de 20% de infligir Veneno se torna uma chance de 20,4% quando um personagem com 30 de Sorte usa contra um personagem com 10 de Sorte. Se fosse um personagem com 999 de Sorte utilizando, a chance seria de cerca de 40%.” - Wavelength, de Forums RPG Maker Web

Configurando a Sorte

Por padrão, ela já atua nesses parâmetros de estados, mas é possível criar habilidades e itens que a utilizem de maneira mais criativa, como bônus temporários de sorte ou habilidades que aumentam seu impacto em batalha.


Dicas para Aproveitar o Atributo Sorte​

  1. Personalize as Fórmulas: Modificar as fórmulas para que a Sorte influencie diretamente no dano crítico.​
  2. Itens e Equipamentos: Crie itens e equipamentos que aumentem a Sorte para dar mais controle ao jogador sobre a aplicação e resistência a estados.​
  3. Habilidades Baseadas em Sorte: Desenvolva habilidades que utilizem a Sorte como base, aumentando o impacto desse atributo em classes que dependem de redução de atributos ou habilidades de controle de estado. O uso do atributo em fórmulas de dano pode ser um diferencial, especialmente a habilidades de personagens que possuem uma grande aptidão ao fator aleatoriedade.​

Veja exemplos abaixo, usando o MV como base:

Javascript:
// Original

Game_Action.prototype.applyCritical = function(damage) {
    return damage * 3;
};

// Modificado

Game_Action.prototype.applyCritical = function(damage) {
    return damage * (1.5 + (((this.subject().luk * 0.30) - (target.luk * 0.05)) * 0.001));
};

photo_2024-09-14_22-35-11.jpg


O atributo Sorte, quando bem utilizado, pode ser uma ferramenta poderosa para adicionar profundidade tática ao sistema de batalhas, tornando o combate mais imprevisível e dinâmico em seu projeto no RPG Maker.
 
Eu acho sorte um fator fantástico! Principalmente em RPG's de mesa, mas colocar esse conceito em jogos eletrônicos é muito divertido, @Tigrão em Fallout temos o sistema de Sorte - sendo a SORTE um atributo do personagem, e ela influencia em TUDO NO JOGO - desde sua chance de conseguir acertar um golpe crítico, quantidade de loot que vai encontrar até mesmo os tipos de díalogos disponíveis em conversas com determinados NPCs, muito legal e muito interessante essa bodagem que você para o sistema de Batalhas do Maker! Parabéns...

Mas a real pergunta é.... @Dr.XGB está sentindo com sorte hoje Cenourão?
Abraços! :love:
 
Olá, pessoal! Espero que estejam bem.

O atributo Sorte é um dos mais misteriosos para quem desenvolve projetos no RPG Maker, presente nas versões VX Ace, MV e MZ. Embora seja um atributo menos intuitivo do que outros como ataque ou defesa, ele desempenha um papel único no sistema de batalha. Dentro da engine, caso o desenvolvedor deixe o cursor parado na área onde é configurado o atributo Sorte da Classe (Banco de Dados > Aba Classes), aparecerá uma breve explicação:







Como podem observar, os três sistemas possuem a mesma função. A fórmula é também similar (usarei a do MV em rpg_objects.js, entre linhas 1869 e 1888, como exemplo):

Javascript:
Game_Action.prototype.itemEffectAddAttackState = function(target, effect) {
    this.subject().attackStates().forEach(function(stateId) {
        var chance = effect.value1;
        chance *= target.stateRate(stateId);
        chance *= this.subject().attackStatesRate(stateId);
        chance *= this.lukEffectRate(target);
        if (Math.random() < chance) {
            target.addState(stateId);
            this.makeSuccess(target);
        }
    }.bind(this), target);
};
Game_Action.prototype.lukEffectRate = function(target) {
    return Math.max(1.0 + (this.subject().luk - target.luk) * 0.001, 0.0);
};

// this.subject() = Usuário
// target = Alvo
// luk = Sorte

// Efeitos como a chance de redução de atributos e estados da habilidade de ser aplicado e a taxa de resistência do alvo influenciam após os cálculos.

O atributo Sorte afeta diretamente a chance de aplicar ou resistir a redução de atributos e anomalias (como veneno, paralisia, sonolência, entre outros). Quanto maior a Sorte de um personagem, maior sua resistência e maior a chance de aplicação em oponentes. No entanto, o impacto do atributo na chance de aplicação e resistência é baixo.



Configurando a Sorte

Por padrão, ela já atua nesses parâmetros de estados, mas é possível criar habilidades e itens que a utilizem de maneira mais criativa, como bônus temporários de sorte ou habilidades que aumentam seu impacto em batalha.


Dicas para Aproveitar o Atributo Sorte​

  1. Personalize as Fórmulas: Modificar as fórmulas para que a Sorte influencie diretamente no dano crítico.​
  2. Itens e Equipamentos: Crie itens e equipamentos que aumentem a Sorte para dar mais controle ao jogador sobre a aplicação e resistência a estados.​
  3. Habilidades Baseadas em Sorte: Desenvolva habilidades que utilizem a Sorte como base, aumentando o impacto desse atributo em classes que dependem de redução de atributos ou habilidades de controle de estado. O uso do atributo em fórmulas de dano pode ser um diferencial, especialmente a habilidades de personagens que possuem uma grande aptidão ao fator aleatoriedade.​

Veja exemplos abaixo, usando o MV como base:

Javascript:
// Original

Game_Action.prototype.applyCritical = function(damage) {
    return damage * 3;
};

// Modificado

Game_Action.prototype.applyCritical = function(damage) {
    return damage * (1.5 + (((this.subject().luk * 0.30) - (target.luk * 0.05)) * 0.001));
};

Visualizar anexo 8771

O atributo Sorte, quando bem utilizado, pode ser uma ferramenta poderosa para adicionar profundidade tática ao sistema de batalhas, tornando o combate mais imprevisível e dinâmico em seu projeto no RPG Maker.
Bem interessante a maneira com que você conseguiu expandir as possibilidades de uso do atributo sorte dentro do padrão do RPG Maker.
No Ragnarok Online, por exemplo, o atributo tem esses mesmos objetivos, mas principalmente serve para aumentar a taxa e o dano crítico, para o qual é mais usado.
Eu gosto muito da ideia que o @Ricky O Bardo trouxe. A sorte, como quaisquer outros atributos, deveriam ultrapassar as barreiras do campo de batalha e influenciar em outros aspectos do game. Vi o @Aleth728 comentando algo semelhante, se não estou enganado. "A sorte poderia influenciar acontecimentos específicos no decorrer do game".
Bom, enfim. Particularmente, aprecio a ideia de ter atributos que não fiquem restritos às batalhas, mas impactem a jogabilidade como um todo. Imagina só ter muita agilidade e, consequentemente, ter um personagem que se movimenta mais rápido nos mapas, ou ter muito HP e resistir por mais tempo a fome/sede etc. Acredito que assim tudo fica mais divertido.
 
Última edição:
Então, aplicando no MV exatamente desta forma: (sua mudança), temos uma aplicação do crítico de forma mais sortida.

Javascript:
/*:
 * @plugindesc Melhoria do atributo sorte para batalhas.
 * @author Nome do Autor
 *
 * @help Este plugin melhora o atributo de sorte dos cálculos de batalha.
 */

(function() {
    const oldApplyCritical = Game_Action.prototype.applyCritical
    Game_Action.prototype.applyCritical = function(damage) {
        return damage * (1.5 + (((this.subject().luk * 0.30) - (target.luk * 0.05)) * 0.001))
        //oldApplyCritical.call(this, damage)
    }
})();

Gostei do raciocínio, da linha de pensamento e explicação, mas isso não faz com que você tire a responsabilidade desta função? Atribuindo um fator sorte?

Por que oque a applYCritical serve para Aplicar o crítico, então ela não deve ser sorte e sim um multiplicador mesmo.
O Fator sorte vem antes do multiplicador.
 
Voltar
Topo Inferior