Skip to content

RetroAchievements website

RA discord server

Recursos de lógica para achievementslink

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:

achievement_editor

Para ajuda sobre esses, o nosso servidor do Discord estará sempre aberto para ajudar.

Valores Deltalink

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

Hit Countslink

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

Special Flagslink

No Achievement Editor, é o campo intitulado como Special?.

Essas flags condicionais só funcionam se você definir uma contagem de hits para uma condição.

PauseIflink

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.

ResetIflink

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

N64 Special Flagslink

Ao desenvolver para o N64, existem "operações de flags aritméticas" ("arithmetic flag operations") adicionais que podem ser usadas. Esses flags são atualmente exclusivos do N64. Por favor, note que qualquer condição com flags aritméticos sempre é considerada verdadeira, independentemente dos valores de comparação.

Add Sourcelink

Adicionará o valor da fonte no campo denominado Memory à próxima condição de realização. O valor total será usado na próxima condição de conquista.

Sub Sourcelink

Funciona de forma semelhante ao Add Source, mas subtrai o valor de origem.

Add Hitslink

Adicionará a contagem de hits atual à próxima condição. O valor de sucesso total será usado na próxima condição de achievement.

Neste exemplo, as condições # 1 e # 2 terão seus valores (5 e 3, respectivamente) adicionados até atingirem a condição # 3. Nesse ponto, o valor contido no campo Memory será 5 + 3 + 20, e o valor novo será 28. A condição # 3 será verdadeira e será lida como: 28> 20

Groupslink

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.

Comments