Skip to content

Missões ​

Missões pela cidade, exploração do mapa, sequência de dias, loja da semana e marcos. O jogador usa tudo pelo app Missões do tablet. Outros scripts podem registrar as próprias missões.

Precisa de: krs, phone

Só funciona no framework krs. Sem o phone, o app não abre: /missoes só mostra o aviso "Abra o app Missões pelo tablet."

Instalação ​

cfg
ensure kay_missoes

Coloque depois do krs e do phone. As tabelas são criadas sozinhas. Veja a ordem completa.

Como usar ​

/missoes abre o app.

ParteO que faz
MissõesAté Missao.Ofertas ofertas por vez, dos tipos visita, entrega e ronda. O destino fica marcado no mapa. No ponto, o jogador aperta E
ExploraçãoO mapa é dividido em células. Andar descobre células, pontos de interesse e regiões
SequênciaConta um dia a cada dia com missão concluída. Ao chegar em Streak.Maximo, dá pontos e o marco de sequência, e a contagem recomeça
BaúUm por dia, sorteado, depois de Missao.Cheias missões concluídas no dia
LojaOfertas da semana por raridade, pagas em dinheiro ou diamantes: skins, carros, peças, toques e animações
MarcosPrêmios únicos por metas, como concluir 50 missões ou descobrir 50% do mapa

Tudo isso dá pontos no passe de batalha do krs, com os limites de Teto. Pontos de marco não entram no limite.

Permissão ​

Quem tem o grupo Admin vê o painel de admin no app. Nele é possível ligar e desligar missões, mudar peso e recompensa, forçar uma missão, reiniciar o próprio mapa e ver a posição atual.

Configuração ​

Tudo fica em shared-side/config.lua. Regiões e pontos de interesse ficam em shared-side/regioes.lua, e a loja fixa em shared-side/loja.lua. Os textos são só em português, sem suporte a ox:locale. O idioma não muda com ox:locale.

OpçãoPadrãoO que muda
Comando"missoes"Nome do comando
Grade200.0Tamanho de cada célula do mapa, em metros
Largura, Altura48, 64Número de células
Origem-4400.0, -4000.0Canto da grade
RegiaoCompleta0.8Parte da região para contar como descoberta
Intervalo3000Tempo entre leituras de posição, em ms
DistanciaMaxima320.0Maior distância aceita entre duas leituras, em metros
PodeConcederpause = trueResources que podem chamar Grant
Raridadescomum, raro, epico, lendarioRaridades da loja
DificuldadesFácil, Média, DifícilNomes das dificuldades

Pontos (Passe e Teto):

OpçãoPadrãoO que muda
Passe.Celula1Pontos por célula
Passe.Achado30Pontos por ponto de interesse
Passe.Regiao120Pontos por região
Passe.Mapa500Pontos por completar o mapa
Passe.Streak40Pontos por sequência
Passe.Necessario500Pontos mostrados como meta do passe
Teto.Dia300Limite diário de pontos
Teto.Explorar150Limite diário de pontos por exploração

Missões (Missao):

OpçãoPadrãoO que muda
Ofertas3Ofertas por vez
Minimo10Segundos mínimos antes de poder concluir
Raio4.0Raio do ponto, em metros
Duracao3600Duração padrão, em segundos
Cheias, Metade3, 8Até a 3ª missão do dia o prêmio é cheio, até a 8ª é a metade. Depois, sem prêmio
Recompensasver abaixoPrêmio por dificuldade
Distancias1800.0, 4200.0Distâncias que separam as dificuldades, em metros
Maximo6000, 100, 60Maior dinheiro, pontos e XP aceitos numa missão registrada
DificuldadeDinheiroPontosXP
1600155
214003010
328005520

Sequência e loja:

OpçãoPadrãoO que muda
Streak.Maximo7Dias para fechar a sequência
Streak.Perde2Dias perdidos por dia sem jogar
Streak.Bau5 prêmiosChance e prêmio do baú diário
Loja.Slots3, 3, 2, 1Ofertas por raridade

Marcos, no mesmo arquivo, define nome, descrição e prêmio de cada marco.

Para programadores ​

lua
-- servidor
exports.kay_missoes:RegisterMission({
	Id = "minha_missao",
	Tipo = "evento",
	Titulo = "Minha missão",
	Descricao = "Fale com o vendedor.",
	Dificuldade = 1,
	Duracao = 3600,
	Privada = true,
	Recompensa = { Dinheiro = 1000, Pontos = 10, XP = 10 },
	Tarefas = { { Id = "falar", Descricao = "Fale com o vendedor", Total = 1 } }
})

exports.kay_missoes:Start(charId, "minha_missao")              -- só o resource que registrou
exports.kay_missoes:Progress(charId, "minha_missao", "falar", 1)
exports.kay_missoes:Cancel(charId, "minha_missao")
exports.kay_missoes:Active(charId)                             -- id da missão ativa, ou false
exports.kay_missoes:Owns(charId, tipo, ref)
exports.kay_missoes:Grant(charId, tipo, ref)                   -- só resources de Config.PodeConceder
CampoRegra
Tipoevento, ponto, entrega ou ronda
Dificuldade1, 2 ou 3
DuracaoDe 300 a 14400 segundos
TarefasDe 1 a 8, só em evento
PontosEm ponto e ronda, até 40 pontos com X, Y e Z
Origens, DestinosEm entrega, até 20 pontos com X, Y e Z

Ao iniciar, o script dispara o evento local de servidor kay_missoes:Pronto. Registre as missões nesse evento e também no início do seu script.

As missões saem da lista quando o resource que registrou para.

Problemas comuns ​

[kay_missoes] missão recusada de <resource>: <motivo>: a definição da missão está fora das regras. O motivo diz o campo, como Dificuldade deve ser 1, 2 ou 3.

[kay_missoes] missão <id> já pertence a <resource>: outro resource já registrou esse Id.