ai-exitsleeping
Um jogador que sai do jogo fica no mundo como um corpo dormindo que outros podem carregar e colocar em veículos.
O ai-exitsleeping mantém no mundo os personagens que saíram do jogo. Quando um jogador sai do servidor ou volta para a tela de personagens, o personagem dele se deita como um corpo dormindo onde estava. Outros jogadores podem carregá-lo, colocá-lo em um veículo e tirá-lo de novo, e o dono acorda onde quer que o corpo tenha ido parar.
O que faz no jogo
- Corpos dormindo. O corpo tem a aparência do personagem (pela camada de aparência do AI Core, então qualquer script de roupas suportado funciona) e uma das poses deitadas do painel. Todos os jogadores veem a mesma pose.
- Carregar. Vá até um corpo e aperte a tecla de interação em Carry Sleeping Player. X (ou Stop Carrying) o coloca no chão onde você está. Você não pode carregar dentro de um veículo, caído ou algemado.
- Veículos. Enquanto carrega, Put in Vehicle em um veículo senta o corpo em um banco de passageiro. Take Out Sleeping Player em um veículo com um corpo dentro o tira (você passa a carregá-lo).
- Acordar. O próximo spawn do dono é onde o corpo está agora: no chão, no ombro de quem o carrega, ou no banco do veículo em que foi colocado.
- Expiração. Os corpos de jogadores que saíram há mais tempo que os dias do painel são removidos.
- Áreas escondidas e mundos privados. Nenhum corpo é deixado dentro de uma área escondida (painel), e corpos colocados ali ficam escondidos. Com Ignore private worlds ligado, jogadores dentro do interior de uma casa ou motel não deixam corpo e não veem nenhum.
Instalação
Instalado pela receita do AI Core. À mão: ensure ai-exitsleeping depois do ai-core. A tabela ai_exitsleeping_sleepers é criada na primeira inicialização.
Se o seu script de spawn posiciona o jogador por conta própria depois do spawn do ai-core, defina Wake up on como PlayerLoaded export (spawn script) e chame exports['ai-exitsleeping']:PlayerLoaded() a partir dele (veja a página para desenvolvedores).
Configurações do painel
Painel de administração > Exit Sleeping.
Aba: General
Quanto tempo os corpos dormindo ficam, até que distância são desenhados e o que os jogadores podem fazer com eles.
Sleeping bodies: um jogador que sai do jogo fica no mundo como um corpo dormindo onde saiu, e acorda onde o corpo foi parar.
| Configuração | O que muda | Unidade | Padrão |
|---|---|---|---|
| Keep bodies for | Os corpos de jogadores que saíram há mais tempo que isso são removidos. 1-365. | dias | 3 |
| Draw distance | Os corpos dormindo aparecem quando um jogador chega a essa distância e desaparecem além dela. 5-60, passos de 0.5. | m | 25 |
| Ignore private worlds | Jogadores dentro de um mundo privado (o interior de uma casa ou quarto de motel) não deixam corpo quando saem do jogo e não veem corpos enquanto estão dentro. | ligado / desligado | ligado |
| Wake up on | Character spawn (ai-core) ou PlayerLoaded export (spawn script). Mantenha o padrão, a menos que um script de spawn chame exports['ai-exitsleeping']:PlayerLoaded() depois do próprio spawn. | Character spawn (ai-core) |
Carrying and vehicles: os jogadores podem carregar um corpo dormindo, colocá-lo no banco de um veículo e tirá-lo de novo.
| Configuração | O que muda | Unidade | Padrão |
|---|---|---|---|
| Interaction distance | A que distância um jogador precisa estar para carregar um corpo ou alcançar um veículo. 1-10, passos de 0.5. | m | 2.5 |
| Server distance check | O servidor recusa uma ação de carregar ou de veículo feita de mais longe que isso (contra trapaças). 2-30, passos de 0.5. | m | 6 |
| Position check | Com que frequência o servidor atualiza onde estão os corpos carregados e os corpos em veículos, para que o dono acorde no lugar certo. 1-60. | s | 5 |
| Debug messages | Imprime o que o script faz nos consoles do servidor e do cliente. | ligado / desligado | desligado |
Aba: Animations
As poses deitadas dos corpos dormindo e a animação de carregar. Cada animação é um Animation dictionary, um Animation name e Animation flags (flags de animação do GTA, 0-65535: 1 repete, 49 repete na parte de cima do corpo enquanto anda, 33 repete enquanto preso).
| Cartão | O que muda | Padrão |
|---|---|---|
| Lying poses | Cada corpo escolhe uma destas ao acaso; todos os jogadores veem a mesma pose. Até 20. | amb@world_human_bum_slumped@male@laying_on_left_side@idle_a / idle_b, flags 1 |
| Carrying player | A animação do jogador que carrega um corpo. | missfinale_c2mcs_1 / fin_c2_mcs_1_camman, flags 49 |
| Carried body | A animação do corpo no ombro de quem carrega. | nm / firemans_carry, flags 33 |
Carry position: onde o corpo carregado fica em quem o carrega.
| Configuração | O que muda | Unidade | Padrão |
|---|---|---|---|
| Bone index | Índice do bone de quem carrega ao qual o corpo é preso (0 = a raiz do ped). | 0 | |
| Offset right | -5 a 5, passos de 0.01. | m | 0.2 |
| Offset forward | -5 a 5. | m | 0.15 |
| Offset up | -5 a 5. | m | 0.63 |
| Rotation X | -360 a 360, passos de 0.5. | ° | 0.5 |
| Rotation Y | -360 a 360. | ° | 0.5 |
| Rotation Z | -360 a 360. | ° | 5 |
Aba: Hidden areas
Lugares onde nenhum corpo dormindo é mostrado, como interiores ou zonas seguras. Um registro por área (New area / Delete area). Apagar uma área torna visíveis de novo os corpos dormindo dentro dela. Nenhuma vem pronta.
Area: jogadores que saem do jogo dentro dela não deixam corpo; corpos colocados dentro ficam escondidos (o dono ainda acorda ali).
| Configuração | O que muda | Unidade | Padrão para novos |
|---|---|---|---|
| Name | O nome da área. | ||
| Shape | Ball, Cylinder ou Polygon: uma esfera ou um cilindro ao redor de um ponto central, ou um polígono a partir de pontos de canto. | Ball | |
| Centre | O meio da área (esfera e cilindro). | ponto | |
| Radius | Metros do centro até a borda (esfera e cilindro). 1-2000. | m | 25 |
| Height | Metros para cima e para baixo que a área alcança (cilindro: a partir do centro; polígono: além do seu canto mais baixo e mais alto). 0.5-1000. | m | 10 |
Polygon corners (só polígono): adicione um canto em cada curva da borda, em ordem (câmera livre ou sua posição); um polígono precisa de pelo menos três, até 64. A forma é desenhada no mundo enquanto este campo está na tela.
Comandos
| Comando | Argumentos | Quem | O que faz |
|---|---|---|---|
/exitsleeptest | nenhum | Administradores (ai.admin) | Alterna seu próprio corpo dormindo (teste): cria um corpo onde você está, ou o remove. |
Teclas
| Tecla padrão | O que faz |
|---|---|
| X | Coloca no chão o jogador dormindo que você carrega |
Limites conhecidos
- Os corpos existem só no mundo compartilhado: dentro de um interior instanciado, um corpo carregado é colocado na sua última posição do lado de fora.
- Depois de um reinício do servidor, todo corpo fica deitado no chão na sua última posição salva (os estados de carregado e sentado não são mantidos).
- Um jogador que acorda poucos segundos depois que quem o carregava ou o veículo sumiu pode aparecer no último ponto salvo (o intervalo do Position check).