Pular para o conteúdo principal

Vehicle

Veículos dirigíveis com combustível, vida, combate por resistência, habilidades, níveis, skins e garagem.

Privadasv0.1Entidades e modelos
RequerTypeWriter0.9.0-beta-177 (BTC build)BasicBTCMobsPacketEventsGUIopcionalBetterModelopcional

Criada para a rede BornToCraft. Esta extensão é documentada como referência e não é distribuída.

Visão geral​

O Vehicle permite que os jogadores possuam, invoquem e conduzam veículos personalizados: carros, barcos, montarias voadoras. Você define um tipo de veículo uma vez (sua aparência, velocidade, vida, combustível, combate e progressão) e cada jogador possui instâncias dele, com nível, combustível, vida, escudo e skin próprios, salvos em um artifact. O jogador invoca um veículo pelo menu da garagem ou por uma ação, o conduz com as teclas de movimento e o guarda de volta.

O veículo é feito de duas partes. Uma entidade carrier invisível carrega a física e o passageiro. Um visual é anexado a ela: um item exibido, um mob vanilla, um modelo do BetterModel ou um mob do BTCMobs. Você pode, portanto, usar um item simples para um veículo barato ou um modelo animado para um veículo de destaque.

Condução, combustível, dano, habilidades e evolução de nível são todos expostos ao TypeWriter: disparam eventos, expõem facts, e as habilidades executam qualquer lista de ações do TypeWriter. Ele roda no build BTC do TypeWriter e exige recursos do BTC Core.

Recursos​

  • Quatro tipos de movimento — GROUND, WATER, AMPHIBIOUS e AIR, cada um com seu próprio carrier.
  • Quatro visuais — display (item), vanilla (mob), bettermodel e btcmobs, com o modelo resolvido por jogador.
  • Combustível — um tanque, uma taxa de consumo por segundo, itens de combustível aceitos e uma ação de reabastecimento.
  • Vida e escudo — os golpes são absorvidos primeiro pelo escudo; com vida 0, o veículo é destruído e precisa ser reparado.
  • Níveis e atributos — uma curva de XP configurável e um bônus de atributo por nível.
  • Combate — ataque com clique esquerdo com alcance, cooldown e custo de stamina, uma carga ao segurar a tecla de salto e dano por colisão opcional.
  • Habilidades — habilidades ativáveis com cooldown e custo de stamina que executam quaisquer ações do TypeWriter.
  • Menu de garagem — um menu paginado dos veículos do jogador, construído sobre um layout GUI.
  • Limite de posse — um limite base aumentado por permissão.
  • Eventos e facts — colisão, combustível esgotado, subida de nível, ataque, acerto de carga, destruído e stamina esgotada.

Instalação​

  1. Instale as extensões BTCMobs e Basic (ambas são dependências declaradas), além da extensão GUI para o menu da garagem. Veja BTCMobs.
  2. Instale o PacketEvents. Sem ele, a direção fica desativada e o log diz PacketEvents not found! WASD steering will be disabled.
  3. Opcionalmente, instale o BetterModel para usar o visual bettermodel.
  4. Coloque o JAR do Vehicle em plugins/Typewriter/extensions/ e reinicie o servidor.

Primeiros passos​

  1. No painel web do TypeWriter, abra uma page static e adicione um artifact Vehicle Storage.
  2. Adicione uma entry Vehicle Config e defina storage como o artifact. Sem isso, os dados dos veículos não são carregados nem salvos, e o log diz Aucun stockage designe.
  3. Adicione uma Vehicle Definition: escolha movement (GROUND), um visual (display com um material como MINECART) e ajuste stats, fuel (adicione um item a allowedFuels) e combat.
  4. Adicione uma ação Spawn Vehicle que referencie a definição e dispare-a a partir de um comando, de um NPC ou de um evento. A primeira chamada dá ao jogador um novo veículo desse tipo, com combustível e vida cheios, e o monta nele.
  5. Para uma garagem, adicione um Vehicle Garage Menu construído com layoutPool e depois dispare Open Vehicle Garage.
  6. Adicione Refill Vehicle Fuel e Repair Vehicle em um posto de gasolina ou em um NPC de garagem. Publique e teste.
Sem comandos

O Vehicle não registra nenhum comando próprio. Invoque, guarde e repare por meio de ações, do menu da garagem ou de entries de comando do TypeWriter.

Como funciona​

O carrier depende de movement: GROUND usa um armor stand movido pelo servidor, WATER e AMPHIBIOUS usam um barco, que o próprio cliente simula, e AIR usa um happy ghast. Nos barcos, o servidor não conduz: ele valida a cada tick e move o veículo de volta quando excede maxSpeed, quando o tanque está vazio ou (para GROUND) quando entra em um líquido.

A direção usa os pacotes de entrada do jogador: frente, trás, esquerda, direita, salto e agachar. Desmontar guarda o veículo (ele é removido e os dados são salvos).

Uma instância de veículo tem nível, XP, vida, escudo, combustível e skin. Os atributos são multiplicados por 1 + statBonusPerLevel * (level - 1) (exceto a gravidade). O XP necessário para sair de um nível é baseXp * level ^ xpGrowth. Em maxLevel, o XP para.

O Vehicle Garage Menu é construído como qualquer menu GUI: um layoutPool, um mainLayoutId, views opcionais e um baseMenuId para herdar um chassi compartilhado. Coloque itens com estes tipos de botão (o buttonType de um item):

Tipo de botãoComportamento
vehicle_button:VEHICLE_SLOT#<n>Mostra o n-ésimo veículo do jogador (ordenado por id de instância); um clique o invoca. Vazio se o jogador possui menos veículos.
vehicle_button:VEHICLE_SPAWNInvoca o veículo ativo.
vehicle_button:VEHICLE_DESPAWNGuarda o veículo montado e fecha o menu.
vehicle_button:VEHICLE_INFOImprime no chat o nível, o combustível e a vida do veículo ativo.
vehicle_button:NAV_BACKVolta ao menu anterior.
vehicle_button:NAV_CLOSEFecha o menu.

vehicleDisplay define a aparência de um slot de veículo: um item, um nameFormat e uma lore, com os tokens %name%, %level%, %max_level%, %fuel%, %max_fuel%, %health%, %max_health% e %shield%. Um item que você coloca para um botão mantém o próprio nome e lore se a page os definir.

Permissões​

PermissãoConcede
typewriter.vehicle.limit.<n>Aumenta o limite de posse em <n> quando uma entry Vehicle Ownership Limit a lê (o maior valor conta).

Nenhuma outra permissão é definida pela extensão.

Placeholders​

Dois facts podem ser lidos como placeholders pelo TypeWriter: Vehicle Ownership Limit e Vehicles Owned Count, cada um retornando um número. A extensão não registra nenhum placeholder próprio.

Entries​

25 entradas, geradas a partir do código-fonte da extensão.

Ações9
Eventos7
Fatos4
Artefatos1
Manifestos4

Solução de problemas​

Nada é salvo após um reinício. vehicle_config não tem storage, ou aponta para um artifact inexistente. O log informa Aucun stockage designe dans 'vehicle_config'. Defina o artifact em storage.

O veículo não se move com WASD. O PacketEvents está ausente, então a direção fica desativada. Instale-o e reinicie.

O veículo volta de repente ou não se move. O servidor reverte quando o veículo se move mais rápido que stats.maxSpeed (blocos por tick), quando fuel é 0 (e dispara On Vehicle Fuel Empty) ou, em GROUND, quando ele entra em água ou lava. Aumente maxSpeed, reabasteça ou mude para AMPHIBIOUS.

Ce vehicule n'est pas disponible pour le moment. O visual não pôde ser criado: um id de modelo que não existe no BetterModel, um mobId do BTCMobs desconhecido ou um material de display que não é um item. Verifique no log non spawne ou visuel.

A invocação é recusada com a mensagem de limite. O jogador já possui baseOwnershipLimit veículos (1 por padrão). O limite só inclui permissões se você criou uma entry Vehicle Ownership Limit; caso contrário, apenas baseOwnershipLimit se aplica.

This vehicle is destroyed — repair it before summoning it again. A vida chegou a 0. Execute Repair Vehicle: ele consome repair.amount de repair.item e restaura healthPerRepair de vida no veículo ativo.

Uma habilidade não faz nada. Ela deve estar listada em abilities da definição do veículo, e o jogador deve estar dirigindo, ter stamina suficiente e estar fora de cooldown; cada falha envia uma mensagem de vehicle_config.

Extensões relacionadas​

  • BTCMobs — fornece o visual btcmobs.
  • GUI — renderiza o menu da garagem.