Pular para o conteúdo

Objetivos

Visão Geral

O sistema de objetivos impulsiona jogabilidade similar a quests através de quatro tipos de arquivo: Objectives definem conjuntos sequenciais de tarefas e recompensas de conclusão, ObjectiveLines agrupam objetivos em uma cadeia de progressão, ObjectiveLocationMarkers posicionam gatilhos de área que ativam objetivos quando jogadores entram, e ReachLocationMarkers definem pontos de passagem nomeados usados por tarefas de alcançar-localização. As tarefas suportam tipos de matar, coletar, fabricar, recompensa, mapa do tesouro, usar-bloco, usar-entidade e alcançar-localização.

Localização dos Arquivos

Assets/Server/Objective/
Objectives/
Objective_Bounty.json
Objective_Craft.json
Objective_Gather.json
Objective_Gameplay_Trailer.json
Objective_Kill.json
Objective_KillSpawnBeacon.json
Objective_KillSpawnMarker.json
Objective_ReachLocation.json
Objective_TreasureMap.json
Objective_Tutorial.json
Objective_UseBlock.json
Objective_UseEntity.json
ObjectiveLines/
ObjectiveLine_Test.json
ObjectiveLine_Tutorial.json
ObjectiveLocationMarkers/
ObjectiveLocationMarker_Gameplay_Trailer.json
ObjectiveLocationMarker_KillSpawnBeacon.json
ObjectiveLocationMarker_Test.json
ObjectiveLocationMarker_Trigger.json
ReachLocationMarkers/
ObjectiveReachMarker_Example.json

Schema

Objective

CampoTipoObrigatórioPadrãoDescrição
TaskSetsTaskSet[]SimArray ordenado de conjuntos de tarefas. Cada conjunto deve ser completado antes que o próximo se torne ativo.
CompletionsCompletion[]Não[]Recompensas ou ações disparadas quando todos os conjuntos de tarefas são finalizados.
RemoveOnItemDropbooleanNãofalseQuando true, o objetivo é removido se o jogador dropar o item associado.

TaskSet

CampoTipoObrigatórioPadrãoDescrição
TasksTask[]SimArray de tarefas dentro deste conjunto. Todas as tarefas devem ser completadas para avançar ao próximo conjunto.

Task

CampoTipoObrigatórioPadrãoDescrição
TypestringSimTipo da tarefa. Veja os tipos de tarefa abaixo.
CountnumberNão1Número de vezes que a ação deve ser realizada.
ItemIdstringNãoID do item para tarefas de fabricação ou relacionadas a itens.
NPCGroupIdstringNãoID do grupo de NPC para tarefas de matar.
NpcIdstringNãoID específico do NPC para tarefas de recompensa.
TaskIdstringNãoIdentificador da tarefa para tarefas de usar-entidade.
AnimationIdToPlaystringNãoAnimação a reproduzir na entidade alvo durante tarefas de usar-entidade.
BlockTagOrItemIdBlockTagOrItemIdNãoFiltro de tag de bloco ou ID de item para tarefas de coletar e usar-bloco.
TargetLocationstringNãoNome do marcador de localização para tarefas de alcançar-localização.
WorldLocationConditionWorldLocationConditionNãoRestrições espaciais para tarefas de recompensa e mapa do tesouro.
SpawnBeaconsSpawnBeacon[]NãoDefinições de beacons de spawn para tarefas de kill-spawn-beacon.
ChestsTreasureChest[]NãoDefinições de baús para tarefas de mapa do tesouro.
TaskConditionsTaskCondition[]Não[]Condições adicionais que devem ser atendidas para a tarefa contar.

Tipos de Tarefa

TipoDescriçãoCampos Principais
KillNPCMatar um número de NPCs de um grupoNPCGroupId, Count
KillSpawnBeaconMatar NPCs gerados por beacons específicosNPCGroupId, Count, SpawnBeacons
GatherColetar itens ou blocos correspondentes a um filtroBlockTagOrItemId, Count
CraftFabricar um item específicoItemId, Count
UseBlockInteragir com um tipo de bloco específicoBlockTagOrItemId, Count, TaskConditions
UseEntityInteragir com um NPC ou entidadeTaskId, Count, AnimationIdToPlay
ReachLocationViajar até um ponto de passagem nomeadoTargetLocation
BountyCaçar um NPC específico dentro de um raioNpcId, WorldLocationCondition
TreasureMapEncontrar e abrir baús do tesouroChests

BlockTagOrItemId

CampoTipoObrigatórioPadrãoDescrição
ItemIdstringNãoID específico do item para corresponder.
BlockTagstringNãoTag de bloco para corresponder (corresponde a qualquer bloco com esta tag).

WorldLocationCondition

CampoTipoObrigatórioPadrãoDescrição
TypestringSim"LocationRadius" ou "LookBlocksBelow".
MinRadiusnumberNãoDistância mínima do provedor do objetivo.
MaxRadiusnumberNãoDistância máxima do provedor do objetivo.
BlockTagsstring[]NãoTags de blocos para verificar abaixo da localização alvo (para "LookBlocksBelow").
CountnumberNãoNúmero de blocos para verificar abaixo.
MinRangenumberNãoIntervalo mínimo de profundidade para verificação de blocos.
MaxRangenumberNãoIntervalo máximo de profundidade para verificação de blocos.

TreasureChest

CampoTipoObrigatórioPadrãoDescrição
MinRadiusnumberSimDistância mínima de posicionamento do jogador.
MaxRadiusnumberSimDistância máxima de posicionamento do jogador.
DropListstringSimID da lista de drops para o conteúdo do baú.
WorldLocationConditionWorldLocationConditionNãoRestrições de terreno para posicionamento do baú.
ChestBlockTypeKeystringSimTipo de bloco usado para o baú do tesouro.

TaskCondition

CampoTipoObrigatórioPadrãoDescrição
TypestringSimTipo de condição: "SoloInventory".
BlockTagOrItemIdBlockTagOrItemIdNãoItem ou bloco que o jogador deve possuir.
QuantitynumberNãoQuantidade necessária do item.

Completion

CampoTipoObrigatórioPadrãoDescrição
TypestringSimAção de conclusão: "GiveItems" ou "ClearObjectiveItems".
DropListstringNãoID da lista de drops para recompensas de itens (quando Type é "GiveItems").

ObjectiveLine

CampoTipoObrigatórioPadrãoDescrição
ObjectiveIdsstring[]SimArray ordenado de IDs de objetivos a apresentar em sequência.

ObjectiveLocationMarker

CampoTipoObrigatórioPadrãoDescrição
SetupMarkerSetupSimO que acontece quando um jogador entra na área do marcador.
AreaMarkerAreaSimDefinição espacial da zona de gatilho.
TriggerConditionsTriggerCondition[]Não[]Condições adicionais que devem ser atendidas para o marcador ser ativado.

MarkerSetup

CampoTipoObrigatórioPadrãoDescrição
TypestringSimTipo de configuração: "Objective".
ObjectiveIdstringSimID do objetivo a ser ativado.

MarkerArea

CampoTipoObrigatórioPadrãoDescrição
TypestringSimTipo de área: "Radius".
EntryRadiusnumberSimDistância em blocos na qual o marcador é ativado.
ExitRadiusnumberSimDistância em blocos na qual o marcador é desativado. Deve ser maior que EntryRadius para prevenir oscilação.

TriggerCondition

CampoTipoObrigatórioPadrãoDescrição
TypestringSimTipo de condição: "HourRange" ou "Weather".
MinHournumberNãoHora de início para condições de intervalo de horas.
MaxHournumberNãoHora de fim para condições de intervalo de horas. Funciona através da meia-noite.
WeatherIdsstring[]NãoIDs de clima necessários para condições de clima.

ReachLocationMarker

CampoTipoObrigatórioPadrãoDescrição
RadiusnumberSimDistância em blocos dentro da qual o jogador é considerado ter alcançado a localização.
NamestringSimNome de exibição para o marcador do ponto de passagem.

Exemplos

Objetivo de matar (Assets/Server/Objective/Objectives/Objective_Kill.json):

{
"TaskSets": [
{
"Tasks": [
{
"Type": "KillNPC",
"Count": 3,
"NPCGroupId": "Trork_Warrior"
}
]
}
],
"Completions": [
{
"Type": "GiveItems",
"DropList": "Trork_Camp_Inventory"
}
]
}

Linha de objetivo do tutorial (Assets/Server/Objective/ObjectiveLines/ObjectiveLine_Tutorial.json):

{
"ObjectiveIds": [
"Objective_Tutorial"
]
}

Marcador de localização com condições de gatilho (Assets/Server/Objective/ObjectiveLocationMarkers/ObjectiveLocationMarker_Trigger.json):

{
"Setup": {
"Type": "Objective",
"ObjectiveId": "Objective_Kill"
},
"Area": {
"Type": "Radius",
"EntryRadius": 25,
"ExitRadius": 35
},
"TriggerConditions": [
{ "Type": "HourRange", "MinHour": 17, "MaxHour": 2 },
{ "Type": "Weather", "WeatherIds": ["Zone1_Cloudy_Medium"] }
]
}

Objetivo de mapa do tesouro (Assets/Server/Objective/Objectives/Objective_TreasureMap.json):

{
"TaskSets": [
{
"Tasks": [
{
"Type": "TreasureMap",
"Chests": [
{
"MinRadius": 10,
"MaxRadius": 20,
"DropList": "Zone1_Encounters_Tier3",
"WorldLocationCondition": {
"Type": "LookBlocksBelow",
"BlockTags": ["Stone", "Soil"],
"Count": 3,
"MinRange": 0,
"MaxRange": 5
},
"ChestBlockTypeKey": "Furniture_Ancient_Chest_Large"
}
]
}
]
}
],
"Completions": [
{ "Type": "ClearObjectiveItems" }
],
"RemoveOnItemDrop": true
}

Páginas Relacionadas