AI Core
Crime e corridasai-streetraces

ai-streetraces para desenvolvedores

O ai-streetraces não tem exports. Seu alerta da polícia, motivos de registro e eventos privados.

O ai-streetraces não tem exports nem state bags. As corridas vivem só na memória do servidor, e dinheiro, alertas e o item do menu passam pelo AI Core.

Alerta da polícia

Quando a contagem regressiva de uma corrida começa, ela pode enviar um alerta (conforme a Alert chance do painel) pelo dispatch.alert da lib: o título "Street race", a mensagem "(count) vehicles lining up for an illegal race", na linha de largada, com o primeiro corredor como source, ícone flag-checkered. Ele chega a qualquer script de alerta que estiver rodando.

Dinheiro

Todo o dinheiro se move na Money account do painel com estes motivos de registro:

MotivoQuando
streetrace:<raceId>Um valor de entrada é cobrado ao criar ou entrar.
streetrace:refundUm valor de entrada é devolvido (saiu antes da largada, cancelada, poucos corredores, recurso parado).
streetrace:wonO vencedor leva o prêmio.
streetrace:splitO tempo limite acabou; cada corredor ainda na corrida recebe uma parte.

Abrindo o menu a partir de outro script

O servidor abre o menu de corrida com o evento de cliente ai-streetraces:client:openMenu (o que o /race faz). Use-o para colocar o menu no app do seu próprio celular ou no seu ponto de interação.

Lado: Servidor -> cliente · Argumentos: nenhum

// servidor
emitNet("ai-streetraces:client:openMenu", source);

O menu mostra só o que o jogador pode fazer agora (criar até o destino, aceitar um convite, largar, cancelar, sair ou desistir), e cada escolha é verificada no servidor, então abri-lo para qualquer um é seguro.

Eventos e callbacks privados

O contrato próprio do script (resource/common/race.ts). O servidor verifica o veículo, a distância, o dinheiro e o estado da corrida a cada chamada. Eles podem mudar entre versões: não os dispare nem os escute a partir de outros recursos.

NomeDireçãoO que carrega
ai-streetraces:createcallback do cliente(buyIn, finishX, finishY): cria uma corrida da posição do jogador até a chegada.
ai-streetraces:joincallback do cliente(raceId): entra em uma corrida para a qual o jogador foi convidado (paga o valor de entrada).
ai-streetraces:leavecallback do cliente(): sai da corrida; o anfitrião saindo antes da largada a cancela.
ai-streetraces:begincallback do cliente(): o anfitrião encerra o tempo de entrada agora.
ai-streetraces:finishcallback do cliente(): o corredor chegou ao destino.
ai-streetraces:client:stateservidor -> corredor(race, serverNow): um snapshot da corrida em que o jogador está.
ai-streetraces:client:racerservidor -> corredores(racer, pot): um corredor entrou.
ai-streetraces:client:racerLeftservidor -> corredores(racerId, pot): um corredor saiu.
ai-streetraces:client:startservidor -> corredores(startAt, serverNow): a contagem regressiva roda; GO em startAt (relógio do servidor).
ai-streetraces:client:endedservidor -> corredor(): a corrida acabou para este jogador.
ai-streetraces:client:inviteservidor -> jogadores perto de uma nova corrida(invite, serverNow).
ai-streetraces:client:uninviteservidor -> jogadores convidados(raceId): a corrida não aceita mais corredores.

Nesta página