-
Notifications
You must be signed in to change notification settings - Fork 10
Achievement Logic Features pt_BR
Link para o texto em inglês: Achievement Logic Features
Existem várias ferramentas e opções disponíveis para o desenvolvedor, saber como utilizá-las adequadamente melhorará a qualidade de seus sets. Essas ferramentas/opções podem ser usadas no Achievement Editor:
Para ajuda sobre esses, o nosso servidor do Discord estará sempre aberto para ajudar.
Um valor Delta
é o valor do frame anterior.
Exemplos de como ele pode ser usado:
- Detectar se o nível foi aumentado:
level > delta level
. Significa que "o nível atual é maior que o nível do frame anterior". - Detectar danos:
health < delta health
. Significa que "a saúde atual é menor do que a saúde do frame anterior". Ou você pode apenas tornar o valor do frame anterior um requisito.delta health = 1
significa que "o valor do frame anterior para a saúde deve ser 1". Você pode ver como isso funciona no Exemplos Reais
No Achievement Editor, o campo do lado direito é Hit Count.
Zero é o valor padrão. Isso significa que a condição deve ser verdadeira quando a conquista aparecer.
Se você definir manualmente uma contagem (hit), por exemplo 1, significa que a condição deve ser verdadeira por pelo menos 1 frame e, uma vez que a contagem de hits seja atendida, ela não precisa ser atendida novamente em outro momento.
ATENÇÃO: se uma condição tiver uma contagem de hits e atingir o número necessário, esta condição não é mais testada. Ela é verdadeira e permanece verdadeira, A MENOS que você tenha um Reset If
, o qual discutiremos abaixo.
Você pode ver como isso funciona no Exemplos Reais
No Achievement Editor, é o campo intitulado como Special?.
Essas flags condicionais só funcionam se você definir uma contagem de hits para uma condição.
Isso pausará a atividade para todas as condições no mesmo grupo.
Nota: tenha em mente que isso não irá pausar as condições em outros grupos.
O PauseIf
é usado para pausar a contagem de hits em uma situação específica (como pausar o jogo). É usado quando você deseja manter a contagem de hits previamente conquistada, mas não deseja reiniciá-la quando alguém simplesmente faz uma pausa no jogo, por exemplo.
Isso irá zerar a contagem de hits para todas condições em que você definiu uma contagem de hits. Ele é muito mais comum de usar do que PauseIf
Nota: Ao contrário do PauseIf
, le irá zerar as condições em todos os grupos
Você pode ver como isso funciona no Real Examples
Quando uma condição tem a flag Add Source
o valor daquele endereço de memória é adicionado ao valor do endereço na condição logo abaixo, e a comparação é feita na condição abaixo daquela com o Add Source
. Isso pode soar um pouco confuso, mas o exemplo a seguir vai esclarecer como funciona:
Neste exemplo o valor em 0x8010
será adicionado ao valor em 0x8020
e a comparação é se esta soma é maior ou igual a zero.
Se o valor em 0x8010
é 1
e o valor em 0x8020
é 2
, a comparação será 1 + 2 > 0
, ou 3 > 0
.
Nota: todos os campos de comparação na condição com a flag Add Source
são ignorados.
Tentando resumir esta explicação com uma imagem:
Nota: você pode usar Add Source
para somar mais endereços, como no exempo abaixo:
Funciona muito semelhante ao Add Source
, porém o Sub Source
faz o valor naquele endereço de memória ser negativo.
Nota 1: Sub Source
NÃO é um flag de subtração. Ele apenas torna o valor negativo.
Nota 2: A linha final (sem Add Source
ou Sub Source
) ainda é adicionada para a comparação final.
Usando aquele exemplo de uso de Add Source
example, se nós o substituíssemos por Sub Source
e com os mesmos valores (valor(0x8010) = 1
e valor(0x8020) = 2
), a comparação seria -1 + 2 > 0
, or 1 > 0
.
Também funciona de maneira de similar ao Add Source
, porém relacionado aos hitcounts.
O Add Hits
adiciona o hitcount da condição atual à próxima condição. O hitcount total a ser checado será aquele definido na condição logo após a última condição com Add Hits
. Se a condição logo após o último Add Hits
não tiver um hitcount definido, todas as condições com Add Hits
serão ignoradas.
Diferentemente do Add Source
, todos os campos são usados numa condição Add Hits
, inclusive os campos de comparação. Se uma condição é verdadeira, o hitcount para esta condição é incrementada (e parará de incrementar se assim que o número de hitcount definido for atingido).
As condições com Add Hits
não precisam ser verdadeiras para a conquista disparar. Porém primeira condição após o último Add Hits
, sim, precisa ser verdadeira.
Os achievements podem ter grupos adicionados a eles que podem atuar como requisitos alternativos para desbloquear um achievement. Estes são chamados de Alt Groups.
Uma coisa extremamente importante a notar: para uma conquista desbloquear, deve ter o Core group E pelo menos um Alt group ser verdadeiro. Se não houver nenhum grupo Alt presente, apenas as condições do Core group's precisam ser verdadeiras.
Dica: devido ao grupo Core sempre precisar ser verdadeiro, normalmente você colocaria lá condições que sejam à todos os requisitos alternativos. No entanto, um truque que você pode usar para basicamente para ignorar a necessidade de um grupo Core é dar-lhe uma condição que é sempre verdadeira, como:
Mem 0x0001 = Mem 0x0001
Como o grupo Core agora é sempre verdadeiro, agora você pode se concentrar em diferenciar os grupos Alt.
- User Guidelines
- Developer Guidelines
- Content Guidelines
- FAQ
- Setup Guide
- Emulator Support and Issues
- Ways to Contribute
- RABot, the RA Discord Robot
- Events
- Overlay Themes
- Useful Links
- Contributing with the docs
- About Us
- Tutorials
- Developer Docs
- How to Become an Achievement Developer
- Getting Started as an Achievement Developer
- Game Identification
- Achievement Design
- Achievement Scoring
- Difficulty Scale and Balance
- Progression and Win Condition Typing
- Badge and Icon Creation
- Achievement Development Overview
- Flags
- BitCount Size
- Alt Groups
- Hit Counts
- Delta Values
- Prior Values
- Value Definition
- Condition Syntax
- Minimum Required Versions for Logic Features
- Memory Inspector
- Real Examples
- Set Development Roadmap
- Achievement Templates
- Tips and Tricks
- Leaderboards
- Rich Presence
- RATools
- Console Specific Tips
- Emulator Hotkeys for Developers
- libretro core support
- Docs To Do List
- WIP User Code of Conduct
- WIP CoC FAQ
- WIP Content Guidelines
- WIP-Jr
- WIP---Dev-Tips---Code-Notes-En-Masse
- WIP-‐-Reauthorship-Policy
- Manifesto RetroAchievements
- Código de Conduta do Usuário
- FAQ - Perguntas Frequentes
- Como contribuir se você não é um desenvolvedor
- Tutorial para Jogos Multi-Discos
- Introdução
- Primeiros Passos como um Desenvolvedor de Conquistas
- Recursos de Lógica para Achievements
- Exemplos Reais
- Dicas e Truques
- Dicas Específicas de Console
- Modelos de Achievement
- Escala de Dificuldade e Equilíbrio
- Roteiro de Desenvolvimento de um Set de Conquistas
- Criação de Ícones e Emblemas
- Leaderboards
- Rich Presence
- Design de Conquistas
- Manifesto RetroAchievements
- Código de Conducta del Usuario
- FAQ - Preguntas Frecuentes
- Tablas Globales y Reglas para la Casería de Logros
- Mi juego no esta cargando los logros
- Como contribuir si no eres un desarrollador
- Por que no deberías utilizar la función de cargar estado
- Contribuyendo con los documentos
- Como funciona la Documentación de RA
- Descargas
- Intro
- Código de Conducta del Desarrollador
- Como convertirme en un Desarrollador de Logros
- Primeros pasos como un Desarrollador de Logros
- Un vistazo al Inspector de Memoria
- Características en la Logica de un Logro
- Ejemplos Reales
- Intro
- Utilizando Hit Counts como un Temporizador
- Utilizando Valores Delta y Hit Counts para Detectar un Incremento
- Un Ejemplo Simple en como evitar el Abuso de Estados de Guardado
- Evitar el Problema de que un Contador se Incremente Dos Veces en el Mismo Frame
- Creando un Temporizador con un ResetIf Hits basándote en la Velocidad de un Juego
- Plantillas para Logros
- Tips y Trucos
- Escala de Dificultad y Balance
- Diseño de Logros
- Mapa de Desarrollo de Set
- Revisiones en Set de Logros
- Creación de Iconos y Badges
- Tablas de Clasificación
- Rich Presence
- Trabajando con el ROM apropiado
- Identificación del Juego
- Guía para Sets Bonus
- Logros para ROM hacks
- Tips Específicos por Consola