ai-robberies para desenvolvedores
As chaves de GlobalState dos alvos roubados, a metadata de casa, os alertas e motivos de registro do ai-robberies, e seus eventos privados.
O ai-robberies não tem exports. Lugares e alvos são dados do painel, e recompensas, ferramentas, alertas e portas passam pelo AI Core. O que outro script pode ler está listado abaixo.
GlobalState rob:<targetId>
true enquanto um alvo foi roubado e espera o tempo de espera do seu lugar, false depois do tempo de espera. O servidor escreve; todo cliente pode ler. Na inicialização do recurso, todas as chaves são zeradas. Os ids de alvo são os ids de registro da aba Targets (store_1_register_1, store_1_safe, vangelico_vitrine_1...).
Lado: Servidor e cliente (leitura) · Espera: não
GlobalState[`rob:${targetId}`]: boolean | undefinedlocal emptied = GlobalState['rob:' .. targetId] == trueRetorno
true enquanto esvaziado. false depois que o tempo de espera acabou, undefined / nil quando o alvo não foi roubado desde que o recurso iniciou.
Exemplo
Mostre uma marca de "roubado" no seu próprio script de loja enquanto o cofre estiver vazio:
// cliente
const SAFE = "store_1_safe";
AddStateBagChangeHandler(`rob:${SAFE}`, "global", (_bag: string, _key: string, value: unknown) => {
const emptied = value === true;
// ... mostre ou esconda sua marca
});
const emptiedNow = GlobalState[`rob:${SAFE}`] === true;Leia essas chaves, nunca as escreva: o ai-robberies é dono delas e as define a partir dos próprios timers. Um valor escrito por outro script deixa as verificações do servidor e os rótulos dos clientes fora de sincronia.
Metadata de personagem robbery_house
O id do lugar de casa em que um personagem está (house_12), ou null quando está fora. O ai-robberies define quando o ladrão invade e limpa quando ele sai. Um personagem que saiu do jogo dentro de uma casa é colocado de volta na porta da casa no próximo carregamento.
Alertas da polícia
Enviados pelo dispatch.alert da lib, então chegam a qualquer script de alerta que estiver rodando:
| Quando | Código | Título | Ícone | Prioridade |
|---|---|---|---|---|
| O primeiro roubo de uma visita (conforme a chance de alerta do lugar) | 10-90 | Texto de alerta de roubo, com o nome do lugar como mensagem e o ponto de alerta do lugar como coords | sack-dollar | high |
| Um trabalho de carro-forte começa | 10-90 | Texto de alerta de carro-forte, na posição do ladrão, sprite de blip 67 vermelho | truck | high |
Dinheiro
O dinheiro roubado vai para a Money account do painel com o motivo de registro robbery:<placeId> (por exemplo robbery:store_1).
Portas
Um alvo de porta com um id de Doorlock door é destrancado pela camada de portas do AI Core (doors.setLocked da lib) e trancado de novo quando o tempo de espera do lugar acaba.
Eventos e callbacks privados
O contrato próprio do script (resource/common/robbery.ts). O servidor verifica a contagem de policiais, a distância, os itens e as reservas a cada chamada. Eles podem mudar entre versões: não os dispare nem os escute a partir de outros recursos.
| Nome | Direção | O que carrega |
|---|---|---|
ai-robberies:start | callback do cliente | (targetId): começa a roubar um alvo; responde { ok, entered? }. O servidor roda a barra de progresso e a recompensa. |
ai-robberies:exit | callback do cliente | (): sai da casa em que o jogador está. |
ai-robberies:client:inside | servidor -> jogador | (placeId | null, to): o jogador agora está dentro desta casa (ou saiu); teleporta para to. |
ai-robberies:truckStart | callback do cliente | (): paga por um trabalho de carro-forte com quem dá o trabalho. |
ai-robberies:client:truckJob | servidor -> jogador | (netId, x, y, z): o carro-forte a roubar e suas portas traseiras. |
ai-robberies:truckPlant | callback do cliente | (): planta a carga (barra de progresso rodada pelo servidor; as portas explodem depois do pavio). |
ai-robberies:client:truckOpen | servidor -> jogadores perto do carro-forte | (netId): as portas traseiras estão abertas. |
ai-robberies:truckLoot | callback do cliente | (): pega o dinheiro (barra de progresso rodada pelo servidor). |
ai-robberies:client:truckEnd | servidor -> jogadores que conheciam o carro-forte | (): o trabalho do carro-forte acabou. |
ai-robberies
Roubos a lojas, bancos, joalheria e casas, mais o trabalho do carro-forte, tudo configurado no painel de administração e verificado no servidor.
ai-drugs
Venda de drogas na rua para estranhos, ligada pelo menu radial, e plantas de maconha que crescem com o tempo e são salvas no banco de dados.