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:
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.
PauseIf
link
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.
ResetIf
link
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
Add Source
link
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:
Sub Source
link
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
.
Add Hits
link
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.
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.
Changeloglink
Last 10 changes on this page:
[2018-07-14 13:33] meleu:
melhorando explicações sobre AddSource/SubSource e afins[2018-07-14 13:17] meleu:
Updated Achievement Logic Features pt_BR (markdown)[2018-03-28 19:57] meleu:
Updated Achievement Logic Features pt_BR (markdown)[2018-03-28 19:56] meleu:
Updated Achievement Logic Features pt_BR (markdown)[2018-03-25 11:46] KingDice001:
Updated Achievement Logic Features pt_BR (markdown)[2018-03-23 01:17] meleu:
Updated Achievement Logic Features.pt_BR (markdown)