O seu recurso ao lado dele
Exports e state bags trata de como conversar com o telefone. Esta página trata da direção oposta: as poucas coisas que um recurso deve saber para que os dois não fiquem disputando o mesmo jogador.
Nada disso precisa de dependência, evento ou permissão. Quatro state bags e um export, e a maioria dos scripts só precisa de uma linha.
1. Alguém está tirando uma foto
Seção intitulada “1. Alguém está tirando uma foto”Uma fotografia captura o quadro inteiro. Qualquer coisa que você estivesse desenhando quando o obturador disparou — um aviso de ajuda, o texto de um marcador, uma barra de progresso, uma interface de texto — sai na foto, e este recurso não pode impedir você de desenhá-la. Nada nosso fica entre a sua chamada de desenho e a tela.
Então há algo que você pode verificar antes:
if LocalPlayer.state.phoneCamera then goto skip end -- or return, or whatever your loop wantsphoneCamera é true desde o momento em que o visor da câmera abre até fechar. Uma linha e o seu aviso fica de fora do álbum de fotos de um desconhecido.
O próprio HUD do telefone já sai da frente: o minimapa e as barras de vida do jogo ficam ocultos enquanto a câmera estiver aberta, para que a pessoa fotografe exatamente o que está enquadrando.
2. O telefone na mão não é lixo no chão
Seção intitulada “2. O telefone na mão não é lixo no chão”O telefone dobrável é composto por dois objetos anexados à mão do ped. Um script que limpa props soltos pelo mapa, ou oferece Pressione [E] para deletar o objeto para qualquer coisa próxima, vai oferecer deletar o telefone de alguém — e fará isso enquanto a pessoa o estiver segurando.
A regra geral vale mais do que o nome de um modelo: um objeto anexado a um ped não é lixo.
if IsEntityAttached(object) then goto skip endSe você precisar ser específico, os modelos são pear_fold_base* e pear_fold_leaf*, um para cada acabamento.
3. O ped pertence ao telefone enquanto ele está na mão
Seção intitulada “3. O ped pertence ao telefone enquanto ele está na mão”mic_phone_props controla a pose do ped enquanto o telefone está na mão, e leva isso a sério: há um watchdog que recoloca a animação de segurar o telefone meio segundo depois de qualquer outra coisa assumir a parte superior do corpo. Ele não tem como saber de quem é a animação que está vendo.
Se o seu script anima esse ped — uma chamada, um cenário, uma tarefa própria — peça os braços emprestados primeiro:
exports.mic_phone_props:SetPose(false) -- they are yours; the phone hangs where a phone hangs-- … your animation …exports.mic_phone_props:SetPose(true) -- and backLiberar a pose também move o prop: ele vai para o osso e o deslocamento que o próprio prop_npc_phone_02 do jogo usa, e se dobra, de modo que todas as animações originais de celular funcionam sem que você precise medir nada. SetPose(true) devolve a pegada, o ângulo da dobradiça e a animação que ele tinha antes.
IsOut() informa se há algum telefone na mão para ser recolhido.
4. O modo item muda o que um identificador significa
Seção intitulada “4. O modo item muda o que um identificador significa”Quando os telefones são itens, o telefone pertence ao dispositivo em vez de ao personagem. phoneDevice no jogador indica o item em que aquele telefone vive, e é nil no modo personagem.
Isso importa se você armazena qualquer coisa associada a um telefone: um número, uma assinatura, uma licença. Use exports.mic_phone:GetDevice() e use isso como chave, caso contrário os seus dados seguirão a pessoa quando o que ela vendeu foi o telefone.
5. Quatro state bags e um comando que imprime todas elas
Seção intitulada “5. Quatro state bags e um comando que imprime todas elas”phoneOpen boolean the phone is out and on screenphoneCamera boolean a viewfinder is uponCallWith number | nil the source at the other endflashlight boolean their torch is onA lista completa, com todas as demais, está em Exports e state bags. phoneapi <id> imprime cada uma delas para um jogador no console do servidor, o que é mais rápido do que tentar adivinhar qual lado está errado.
Colocando algo dentro do telefone
Seção intitulada “Colocando algo dentro do telefone”Uma notificação, uma mensagem, um e-mail, uma fatura — todos são exports de servidor, todos de uma única linha, todos em Exports e state bags.
Um aplicativo inteiro feito por você está em o seu próprio app nele: uma chamada, nenhuma configuração no telefone, nenhuma reinicialização, rodando em um frame próprio.
O que ainda não existe aqui
Seção intitulada “O que ainda não existe aqui”Não há um hook para impedir a abertura do telefone. As regras vivem em Config.Open.Restrict — morto, algemado, nadando, dirigindo e assim por diante — e um recurso externo não pode adicionar uma regra própria. Se você precisa que o telefone não possa ser aberto durante o seu minigame hoje, as opções sinceras são usar uma regra de configuração que coincida com o seu estado ou chamar exports.mic_phone:Close() quando a sua atividade começar. Avise se precisar desse hook; é algo pequeno de adicionar e ninguém pediu até agora.
Tudo resumido em uma lista de verificação
Seção intitulada “Tudo resumido em uma lista de verificação”- O seu script desenha na tela? → pule enquanto
phoneCameraestiver ativo - Ele deleta, limpa ou pega objetos próximos? → pule objetos anexados (
IsEntityAttached) - Ele anima o jogador? → use
SetPose(false)eSetPose(true) - Ele guarda dados por telefone? → use
phoneDevicecomo chave, não o personagem - Ele precisa saber se alguém está disponível? → verifique
phoneOpen,onCallWith