Kit de Armas

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Para ajudar na criação de experiências competitivas baseadas em combate, várias armas aprovadas estão disponíveis para uso em qualquer experiência. O sistema central conta com armas baseadas em projéteis com uma câmera sobre o ombro, e definir a velocidade do projétil alta o suficiente pode simular armas de raycasting, como pistolas laser.

Para usar uma arma aprovada em sua experiência:

  1. Selecione uma arma abaixo, navegando até o link da biblioteca de ativos.
Pistola
Espingarda
Fuzil Automático
Metralhadora
Rifle de Precisão
Bestica
Lança-granadas
Lança-R foguetes
Railgun
  1. Na página do item da arma, clique no botão verde Obter e confirme a transação.

  2. No Studio, abra a Caixa de Ferramentas.

  3. Selecione a seção Inventário da sua caixa de ferramentas.

  4. Localize a arma e clique nela para adicioná-la ao local. Ao ser solicitado se deseja colocar a ferramenta no pacote inicial, clique em Sim se quiser que os jogadores comecem com a arma na mochila, ou clique em Não para simplesmente colocar a arma no mundo 3D como um item de coleta.

  5. Se esta for a primeira vez que está trazendo uma arma aprovada, mova a pasta WeaponsSystem para o ServerScriptService para servir como a pasta do sistema unificada para todas as armas aprovadas na experiência.

Estrutura da pasta do sistema

A pasta WeaponsSystem é uma pasta unificada que contém ativos, configurações e scripts que alimentam todas as armas aprovadas na experiência. Se localizada no ServerScriptService, ela substitui quaisquer pastas equivalentes WeaponsSystem que possam residir dentro de armas individuais.

A pasta WeaponsSystem contém as seguintes instâncias:

Dentro da pasta WeaponsSystem, diferentes aspectos são controlados pelos seguintes ModuleScripts:

AspectoManipulado principalmente dentro de...
Funcionalidade das Armas
  • Bibliotecas/BaseWeapon
  • TiposdeArmas/BulletWeapon
  • TiposdeArmas/BowWeapon
Câmera do Ombro
  • Bibliotecas/ShoulderCamera
GUI das Armas
  • Bibliotecas/WeaponsGui
  • Bibliotecas/DirectionalIndicatorGuiManager
  • Bibliotecas/DamageBillboardHandler

Estrutura da arma

Armas aprovadas são Tools e são nomeadas como aparecerão na mochila do jogador. Cada arma é estruturada com uma hierarquia semelhante.

Tipo de Arma

O WeaponType StringValue corresponde com o ModuleScript para a arma na pasta WeaponsSystem/WeaponTypes. Os dois valores base são BulletWeapon e BowWeapon.

Modelo da Arma

Cada arma contém um Model composto por uma ou mais BaseParts para formar a arma física. Um desses deve ser definido como a PrimaryPart do modelo.

O modelo também inclui os seguintes descendentes importantes que podem ser parentados a uma das BaseParts do modelo:

  • TipAttachmentAttachment cuja posição na BasePart pai determina onde os projéteis saem.
  • HandleAttachmentAttachment cuja posição na BasePart pai determina onde o Handle está soldado.
  • Fired
    optional
    Sound que toca quando a arma é disparada.
  • Reload
    optional
    Sound que toca quando a arma é recarregada.
  • Descendentes adicionais para quaisquer opções especializadas.

Cabo da Arma

A parte Handle determina onde um personagem jogador segura a arma. Este deve ser um Part, deve ser nomeado Handle, e deve ser um filho direto da arma (ferramenta).

Pasta de Configuração

A pasta Configuration contém tipos de "valor" específicos para o comportamento da arma. Além dos valores padrão, você pode adicionar itens de configuração adicionais para opções especializadas quando aplicável.

A seguir estão as configurações básicas e seus valores padrão:

ItemDescriçãoPadrão
AmmoCapacityNúmero de disparos em cada "cartucho de munição" antes que o jogador precise recarregar. Observe que a munição é ilimitada e isso não especifica quanto de munição um jogador está carregando.30
FireModeEscolha entre Semiautomática (um disparo por clique/toque), Automática (fogo contínuo), ou Rajada (rajada de disparos igual a NumBurstShots a cada clique/toque).Semiautomática
ShotCooldownTempo mínimo de espera entre cliques. Para armas com FireMode de Automática, este é também o tempo entre os disparos enquanto pressionar o botão de disparo ou segurar o clique.0.1
BurstShotCooldownTempo entre cada disparo em uma rajada; só importa se você definir FireMode para Rajada.Valor de ShotCooldown
NumBurstShotsNúmero de disparos por clique/rajada; só importa se você definir FireMode para Rajada.3
HitDamageQuantidade de dano que cada acerto direto causa.10
FullDamageDistanceDistância máxima que os disparos causarão dano total. Qualquer coisa atingida além dessa distância receberá menos e menos dano à medida que a distância se aproxima de ZeroDamageDistance.1000
ZeroDamageDistanceQualquer coisa atingida nesta distância ou além dela não receberá dano.10000
BulletSpeedVelocidade que balas/projetéis viajam quando disparados. Definir isso para um valor muito alto como 20000 simula armas de raycasting como armas laser.1000
MaxDistanceDistância máxima que balas/projetéis viajam antes de desaparecer.2000
MinSpreadQuantidade mínima de dispersão para a arma.0
MaxSpreadQuantidade máxima de dispersão para a arma.Valor de MinSpread
GravityFactorQuantidade que a gravidade deve influenciar cada bala/projetil. Por exemplo, este valor para o Bestica é 1 porque as flechas arqueiam durante o voo, mas este valor para o Lança-R foguetes é 0 porque os foguetes propulsados viajam reto.0
HasScopeDefina como true se você quiser usar o escopo especificado na GUI do Sistema de Armas.false
ReloadAnimationNome da animação de recarga na Assets/Animations da pasta do sistema.RifleReload
AimTrackNome da animação de mira na Assets/Animations da pasta do sistema.RifleAim
AimZoomTrackNome da animação de zoom na mira na Assets/Animations da pasta do sistema.RifleAimDownSights
RecoilMinRecuo mínimo adicionado para cada disparo.0.05
RecoilMaxRecuo máximo adicionado para cada disparo.0.5
TotalRecoilMaxRecuo total máximo acumulado. O recuo atual da arma nunca excederá este valor.2
RecoilDecayMultiplicador de decaimento para recuo; essencialmente a taxa na qual o recuo diminui após o disparo.0.825
RecoilDelayTimeTempo de espera após disparo/clique antes que o recuo seja adicionado à câmera.0.07
StartupTimeDuração do tempo após equipar a arma antes que o jogador possa disparar. Isso previne que os jogadores disparem um único tiro de várias armas diferentes em rápida sucessão.0.2
FiredPlaybackSpeedRangeQuantidade que o tom pode variar para o som Fired da arma. Defina isso como 0 para sempre tocar no mesmo tom.0.1
NumProjectilesNúmero de balas/projetéis que serão disparados ao mesmo tempo quando você clicar/tocar uma vez. Isso é útil para armas como a Espingarda que dispara várias balas ao mesmo tempo. Observe que um disparo sempre usará exatamente uma munição, independentemente deste valor.1

Opções especializadas

Você pode adicionar/modificar as seguintes opções para qualquer arma. Essas personalizações requerem modificar o Model da arma, a Configuration da arma, ou ambos. Algumas configurações dependem de outras, como Partículas de Bocal que requerem os filhos necessários para Efeitos e Sons de Projetil/Acerto.

Animações e sons do bolt

O bolt de uma arma é a parte que se move para frente e para trás cada vez que é disparada.

BoltBasePart que se move quando a arma é disparada.
BoltMotorMotor6D usado para animar o bolt. Certifique-se de definir Part0 do motor para a PrimaryPart do modelo da arma e Part1 para a parte Bolt.
BoltMotorStartAttachment cuja posição na BasePart pai determina onde o bolt está quando está em repouso.
BoltMotorTargetAttachment cuja posição na BasePart pai determina onde o bolt anima ao disparar.
BoltOpenSoundSound que toca quando o bolt se abre.
optional
BoltCloseSoundSound que toca quando o bolt se fecha.
optional
ItemDescriçãoPadrão
ActionOpenTimeTempo que leva para o bolt animar na posição aberta.0.025
ActionCloseTimeTempo que leva para o bolt animar na posição fechada.0.075

Ejeção de cartuchos

As armas podem incluir cartuchos de bala físicos que ejetam ao disparar e caem no chão.

CasingEjectPointAttachment cuja posição na BasePart pai determina onde você deseja que os cartuchos de bala saiam. Observe que sua orientação determina a direção em que os cartuchos saem.
ItemDescriçãoPadrão
CasingEffectNome do BasePart de cartucho em Assets/Effects/Casings da pasta do sistema.
CasingEjectSpeedMinVelocidade mínima de ejeção dos cartuchos15
CasingEjectSpeedMaxVelocidade máxima de ejeção dos cartuchos18
CasingHitSoundSound que toca quando os cartuchos atingem o chão.
optional

Efeitos e sons de projétil/acerto

Você pode configurar projetéis físicos para qualquer arma, junto com Sons, Feixes, e Emissores de Partículas para efeitos de acerto e outros efeitos especiais.

ItemDescriçãoPadrão
ShotEffectNome de um efeito de disparo armazenado em Assets/Effects/Shots da pasta do sistema.
ShouldMovePartDefina como true se o ShotEffect da arma deve se mover com o projétil ou false se não. Você deve apenas definir isso como true se há um objeto visível que se move a cada disparo, como uma flecha ou foguete.false
BeamFadeTimeTempo que leva para Beam0 ou Beam1 (veja abaixo) desaparecer após o projétil atingir algo. Por padrão, nenhum desvanecimento manual será aplicado pelo código.0
BeamWidth0Espessura de Beam0 ou Beam1 em Attachment0 (veja abaixo).1.5
BeamWidth1Espessura de Beam0 ou Beam1 em Attachment1 (veja abaixo).1.8
NumHitParticlesNúmero de partículas que o emissor HitParticles (veja abaixo) emitirá.3
HitParticlesUsePartColorDefina como true se você quiser que as partículas de acerto sejam da cor da superfície atingida; false se você quiser que as partículas de acerto não mudem de cor.true

Descendentes de ShotEffect

Descendentes do ShotEffect especificado na seção anterior

FlyingSound que toca enquanto o projétil está viajando.
optional
Beam0Primeiro slot para um Beam rastreando atrás do projétil. Não se esqueça de definir Attachment0 e Attachment1.
optional
Beam1Segundo slot para um Beam rastreando atrás do projétil. Não se esqueça de definir Attachment0 e Attachment1.
optional
Attachment0Attachment cuja posição na BasePart pai determina a parte traseira dos feixes rastreadores; certifique-se de definir Beam.Attachment0 em ambos os Beam0 e Beam1 para isso.
optional
Attachment1Attachment cuja posição na BasePart pai determina a parte dianteira dos feixes rastreadores; certifique-se de definir Beam.Attachment1 em ambos os Beam0 e Beam1 para isso.
optional
TrailParticlesParticleEmitter parentado como um filho direto de Attachment0; isso irá emitir enquanto o projétil está viajando.
optional
LeadingParticlesParticleEmitter parentado como um filho direto de Attachment1; isso irá emitir enquanto o projétil está viajando.
optional
HitEffectAttachment cuja posição será definida como Beam.Attachment1 de Beam0 quando o projétil atingir. Você deve especificar Beam0 e seus anexos para que isso funcione corretamente.
optional
HitSoundSound parentado como um filho direto de HitEffect; toca quando o projétil atinge.
optional
HitParticlesSound parentado como um filho direto de HitEffect; emite quando o projétil atinge.
optional
[ProjectilePart]Qualquer Part ou MeshPart que você deseja aparecer como um projétil físico. Certifique-se de definir ShouldMovePart conforme indicado na seção anterior para true se você tiver um objeto visível aqui.
optional

Partículas de bocal

Esta opção emite partículas do especificado ParticleEmitter no TipAttachment da arma quando é disparada.

Descendentes da configuração:

  • ShotEffect (StringValue) — Nome de um efeito de disparo armazenado em WeaponsSystem/Assets/Effects/Shots.
  • NumMuzzleParticles (IntValue) (opcional) — Número de partículas de bocal que serão emitidas; o padrão é 50.

Para o efeito de disparo especificado, adicione um ativo ParticleEmitter dentro de WeaponsSystem/Assets/Effects/Shots nomeado MuzzleParticles.

Flashes de bocal

Esta opção cria um efeito de flash Beam quando a arma é disparada.

Descendentes do modelo:

  • MuzzleFlash0 (Attachment) — Usado para especificar um lado do flash de bocal. A posição não importa.
  • MuzzleFlash1 (Attachment) — Usado para especificar o lado oposto do flash de bocal. A posição não importa.
  • MuzzleFlash (Beam) — Certifique-se de definir Attachment0 para MuzzleFlash0 e Attachment1 para MuzzleFlash1.

Descendentes da configuração:

  • MuzzleFlashTime (NumberValue) (opcional) — Duração que o flash de bocal será exibido; o padrão é 0.03.
  • MuzzleFlashRotation0 (NumberValue) (opcional) — Rotação mínima do flash de bocal; o padrão é -math.pi.
  • MuzzleFlashRotation1 (NumberValue) (opcional) — Rotação máxima do flash de bocal; o padrão é math.pi.
  • MuzzleFlashSize0 (NumberValue) (opcional) — Tamanho mínimo do flash de bocal; o padrão é 1.
  • MuzzleFlashSize1 (NumberValue) (opcional) — Tamanho máximo do flash de bocal; o padrão é 1.

Trilhas de partículas

Esta opção cria uma trilha de comprimento variável da arma até o ponto de impacto do projétil.

Descendentes da configuração:

  • TrailLength (NumberValue) (opcional) — Comprimento da trilha atrás do projétil; o padrão é nil, o que significa que o comprimento da trilha será calculado usando TrailLengthFactor.
  • TrailLengthFactor (NumberValue) (opcional) — O comprimento da trilha será definido para este valor multiplicado pela distância que o projétil viajou no último quadro; o padrão é 1. Observe que isso será substituído se você incluir TrailLength.
  • ShowEntireTrailUntilHit (BoolValue) (opcional) — Defina como true para renderizar a trilha da ponta da arma até onde quer que o projétil esteja; isso substituirá tanto TrailLength quanto TrailLengthFactor e a trilha só desaparecerá uma vez que o projétil atinja algo. Defina como false para usar uma das duas opções acima para calcular o comprimento da trilha. O padrão é false.

Marcas de acerto

Esta adição visual aparece na superfície onde os projéteis atingem e é útil para flechas, buracos de bala, marcas de queimado, etc.

Descendentes da configuração:

  • HitMarkEffect (StringValue) (opcional) — Nome do efeito de marca de acerto armazenado em WeaponsSystem/Assets/Effects/HitMarks; o padrão é BuracoDeBala.
  • AlignHitMarkToNormal (BoolValue) (opcional) — Defina como true se a marca de acerto deve sempre se alinhar plana contra a superfície como um buraco de bala, ou false se a marca de acerto deve aparecer presa na superfície da direção de onde o projétil veio (como uma flecha). O padrão é true.

Você pode adicionar o seguinte ativo opcional dentro de WeaponsSystem/Assets/Effects/HitMarks:

  • Glow (Decal) (opcional) — Aparece na superfície atingida totalmente opaca, depois rapidamente fica mais transparente, como um efeito de brilho na superfície que desaparece rapidamente. Útil para coisas como mostrar uma marca vermelha brilhante onde explosivos atingem.
  • BuracoDeBala (Decal) (opcional) — Aparece na superfície atingida totalmente opaca e, após 4 segundos, desaparece para transparente por 1 segundo.
  • ImpactBillboard (BillboardGui) (opcional) — Exibe na superfície atingida, sempre de frente para a câmera.
    • Impact (ImageLabel) (opcional) — Filho direto de ImpactBillboard; começa totalmente opaco, cresce para o tamanho total do ImpactBillboard em 0.1 segundos, depois encolhe para metade do seu tamanho e desaparece para totalmente transparente em 0.1 segundos.
  • Qualquer Part/MeshPart/SpecialMesh que você deseja aparecer como um projétil físico (opcional). Por exemplo, incluir uma MeshPart de flecha e definir AlignHitMarkToNormal indicado acima para false fará com que a flecha saia da superfície na direção de onde você a disparou.

Projetéis explosivos

Os projéteis podem incluir um objeto de Explosão para causar dano a personagens jogadores em uma área ao redor do ponto de impacto.

Descendentes da configuração:

  • ExplodeOnImpact (BoolValue) (opcional) — Defina como true se você quiser que balas/projetéis da arma explodam ao impactar, false caso contrário. O padrão é false.
  • BlastRadius (NumberValue) (opcional) — Raio de explosão; o padrão é 8.
  • BlastPressure (NumberValue) (opcional) — Pressão de explosão; o padrão é 10000.
  • BlastDamage (NumberValue) (opcional) — Dano causado às coisas no centro da explosão. Observe que a explosão causa menos dano quanto mais longe os objetos atingidos estão do centro da explosão. O padrão é 100.

Arma de carga

Uma arma de carga, como o Railgun, precisa ser carregada entre disparos antes que possa ser disparada novamente.

Descendentes do modelo:

  • Charging (Sound) (opcional) — Toca enquanto a arma está sendo carregada.
  • Discharging (Sound) (opcional) — Toca enquanto a arma está descarregando, por exemplo, se você carrega a arma apenas parcialmente e solta o botão de disparo.
  • ChargeComplete (Sound) (opcional) — Toca quando a arma alcançou carga total.
  • DischargeComplete (Sound) (opcional) — Toca quando a arma foi totalmente descarregada.
  • ChargeGlow (BasePart) (opcional) — Este objeto ficará menos transparente à medida que a arma carga, de modo que ficará totalmente opaco a 100% de carga.
  • ChargeCompleteParticles (ParticleEmitter) (opcional) — Emite quando a arma termina de carregar. Este emissor pode ser um filho de qualquer BasePart do modelo ou um filho de um Attachment dentro do BasePart.
  • DischargeCompleteParticles (ParticleEmitter) (opcional) — Emite quando a arma foi completamente descarregada. Este emissor pode ser um filho de qualquer BasePart do modelo ou um filho de um Attachment dentro do BasePart.
  • ChargingParticles (ParticleEmitter) (opcional) — Emite enquanto a arma está sendo carregada. Você pode incluir vários emissores desse nome e cada um emitirá enquanto estiver carregando. Este emissor pode ser um filho de qualquer BasePart do modelo ou um filho de um Attachment dentro do BasePart.

Descendentes da configuração:

  • ChargeRate (NumberValue) — Taxa na qual a arma carregará. Este valor deve ser especificado para indicar que a arma usa carregamento.
  • DischargeRate (NumberValue) (opcional) — Taxa na qual a arma descarregará; o padrão é 0, o que significa que a arma não descarregará.
  • ChargePassively (BoolValue) (opcional) — Defina como true se quiser que a arma carregue passivamente para que dispare instantaneamente quando você clicar, ou false se quiser clicar/tocar para carregar a arma e disparar assim que a carga total for alcançada. O padrão é false.
  • ChargingParticlesRatePerCharge (IntValue) (opcional) — Número de partículas que serão emitidas de todos os emissores de ChargingParticles multiplicado pela carga atual da arma. O padrão é 20, o que significa que se a carga da arma estiver a 10%, cada emissor de ChargingParticles emitirá 2 partículas (20×0.1), e se a carga da arma estiver a 90%, cada emissor emitirá 18 partículas (20×0.9).
  • FireDischarge (NumberValue) (opcional) — Quantidade de carga que a arma perderá após disparar um disparo totalmente carregado; o padrão é 1.
  • NumChargeCompleteParticles (IntValue) (opcional) — Número de partículas que o emissor ChargeCompleteParticles emitirá uma vez que a arma estiver totalmente carregada. O padrão é 25.
  • NumDischargeCompleteParticles (IntValue) (opcional) — Número de partículas que o emissor DischargeCompleteParticles emitirá quando a arma estiver totalmente descarregada. O padrão é 25.

Arma de arco

Uma arma de arco, como a Bestica, pode incluir uma construção de corda e braços realista, bem como uma flecha visual nockada na corda.

Além de adicionar descendentes ao modelo, você precisa aplicar o seguinte:

  • Transforme a arma em uma arma de carga. Por exemplo, adicione a ChargeRate necessária dentro da Configuration da arma que especifica a velocidade com que a corda é puxada. Além disso, considere adicionar descendentes opcionais ao Model da arma, como um som de Charging para a corda/braços sendo puxados para trás.
  • Defina o WeaponType como BowWeapon conforme indicado na Estrutura da Arma.

Descendentes do modelo:

  • LeftString (Beam) (opcional) — A metade visual esquerda da corda.
  • RightString (Beam) (opcional) — A metade visual direita da corda.
  • Arrow (BasePart) (opcional) — A flecha que aparece quando o arco está totalmente puxado. Observe que isso é apenas para aparência visual no arco (a flecha realmente disparada será um ShotEffect conforme descrito em Efeitos e Sons de Projetil/Acerto).
  • String1 (Attachment) (opcional) — O ponto central da corda.
  • StringLoose (Attachment) (opcional) — Ponto onde String1 deve estar quando o arco está em repouso.
  • StringTight (Attachment) (opcional) — Ponto onde String1 deve estar quando o arco está totalmente puxado.
  • Arms (Part) (opcional) — Uma parte que serve apenas como um indicador interno de que os braços do arco serão animados. Isso pode conter os seguintes filhos diretos:
  • LeftString0 (Attachment) (opcional) — Ponto onde o lado esquerdo da corda está preso ao arco.
  • RightString0 (Attachment) (opcional) — Ponto onde o lado direito da corda está preso ao arco.
  • LeftLoose (Attachment) (opcional) — Ponto onde LeftString0 deve estar quando o arco está em repouso.
  • RightLoose (Attachment) (opcional) — Ponto onde RightString0 deve estar quando o arco está em repouso.
  • LeftTight (Attachment) (opcional) — Ponto onde LeftString0 deve estar quando o arco está totalmente puxado.
  • RightTight (Attachment) (opcional) — Ponto onde RightString0 deve estar quando o arco está totalmente puxado.
  • [SpecialMesh] (SpecialMesh) (opcional) — A parte do arco que realmente se dobra quando o arco é puxado. Observe que você deve especificar os seguintes quatro objetos Vector3Value para que isso anime.
  • LooseOffset (Vector3Value) (opcional) — Deslocamento do SpecialMesh quando o arco está em repouso.
  • TightOffset (Vector3Value) (opcional) — Deslocamento do SpecialMesh quando o arco está totalmente puxado.
  • LooseScale (Vector3Value) (opcional) — Escala do SpecialMesh quando o arco está em repouso.
  • TightScale (Vector3Value) (opcional) — Escala do SpecialMesh quando o arco está totalmente puxado.

GUI do sistema de armas

O sistema central das armas interage com este sistema para atualizar a GUI com base em elementos como a dispersão da arma, indicadores para quando você é atingido ou acerta outros, etc.

A WeaponsSystemGui é um objeto ScreenGui em WeaponsSystem/Assets que é parentado ao PlayerGui quando a experiência começa. O WeaponSystemGui possui 4 descendentes:

Elementos de Escala

ScalingElements é uma Folder parentada sob WeaponsSystemGui com os seguintes descendentes:

NomeTipo de instânciaDescrição
DirectionalIndicatorsFolderUma Folder onde todos os indicadores direcionais são armazenados.
CrosshairFrameUma Frame contendo os seguintes objetos:

[UIAspectRationConstraint] - UIAspectRatioConstraint
Bottom - ImageLabel
Left - ImageLabel
Right - ImageLabel
Top - ImageLabel
HitMarkerFrameUma Frame contendo os seguintes objetos:

[UIAspectRatioConstraint] - UIAspectRatioConstraint
HitMarkerImage - ImageLabel que aparece e desaparece quando o jogador acerta outro personagem jogador.

LargeTouchscreen

LargeTouchscreen é uma Frame contendo botões que são exibidos em grandes telas sensíveis ao toque. LargeTouchscreen tem os seguintes descendentes:

Scope

Scope é uma Frame que contém ScopeImage (ImageLabel) que aparece ao ampliar uma arma com HasScope habilitado (veja Estrutura da Arma).

Scope tem os seguintes descendentes:

NomeTipo de instânciaDescrição
ScopeInstanceFrameUma Frame contendo os seguintes ativos usados ao ampliar uma arma com HasScope habilitado:

[UIAspectRationConstraint] - UIAspectRatioConstraint
BottomBlack - Frame
LeftBlack - Frame
RightBlack - Frame
TopBlack - Frame

SmallTouchscreen

SmallTouchScreen é uma Frame contendo botões que são exibidos em pequenas telas sensíveis ao toque. SmallTouchscreen tem os seguintes descendentes:

Criar um indicador direcional

Indicadores direcionais são usados para mostrar a direção de algo ao redor da mira do jogador. Por exemplo, se alguém te atirar, um semi-círculo vermelho pode aparecer ao redor da sua mira na direção de onde o tiro veio. Outros exemplos incluem indicadores para mostrar a direção de passos, tiros indiretos, ou até mesmo objetos ambientais como baús.

Para criar um novo indicador, adicione um novo Frame de Indicador em WeaponsSystemGui/ScalingElements/DirectionalIndicators com a seguinte estrutura:

NomeTipo de instânciaDescrição
[UIAspectRationConstraint] UIAspectRatioConstraint
[ImageLabel]ImageLabelImagem do indicador direcional. Ajustes na rotação da imagem no Studio podem ser necessários, a menos que você faça o upload da imagem de modo que ela esteja voltada para baixo e haja pouco ou nenhum espaço em branco ao redor.
Esta imagem label também deve conter sua própria
UIAspectRatioConstraint.
[Configuração]ConfigurationContém propriedades opcionais para ajustar. Consulte Configuração do Indicador para mais informações.

Uma vez criado, você pode ativar um indicador via o seguinte comando dentro de WeaponsSystem/Libraries/WeaponsGui onde indicatorName é o nome da string do indicador a ser ativado e worldPos é a posição mundial onde o indicador direcional deve apontar:


self.DirectionalIndicatorGuiManager:ActivateDirectionalIndicator(indicatorName, worldPos)

Configuração do indicador

Os DirectionalIndicators podem ser ainda mais modificados ajustando o objeto Configuration parentado sob o [Indicator]. Todas essas configurações têm um valor padrão, portanto, não há necessidade de configurar itens quando não estiver modificando uma configuração.

As seguintes configurações podem ser definidas:

NomeTipo de instânciaDescrição
DistanceLevelFromCenterNumberValueNúmero de níveis de distância a partir do centro da tela (cada nível de distância é cerca de 0.03 da escala da tela); o padrão é 6.
FadeTimeNumberValueTempo de desvanecimento do indicador após sua ativação e o tempo TimeBeforeFade; o padrão é 1.
NomeStringValueNome do indicador direcional como você deseja referenciá-lo no código; o padrão é o nome do Frame de nível superior do indicador.
TimeBeforeFadeNumberValueNúmero de segundos que o indicador aparecerá antes de desaparecer; o padrão é 1.
TransparencyBeforeFadeNumberValueTransparência do indicador antes de começar a desaparecer; o padrão é 0.
WidthLevelNumberValueNúmero de níveis de largura a partir do centro (cada nível de largura é cerca de 0.03 da escala da tela); o padrão é o valor de DistanceLevelFromCenter.

Mostrar painel de dano

O painel de dano é usado para mostrar números pequenos acima da cabeça de um personagem quando são danificados. Esses aparecerão apenas para o jogador que causou dano a outro personagem jogador, não para jogadores espectadores.

Os painéis de dano são gerenciados em WeaponsSystem/Libraries/DamageBillboardHandler e podem ser ativados de qualquer código do lado do cliente da seguinte forma, onde damage é a quantidade de dano feito e adornmentPart é a parte na qual adornar o painel, como a cabeça da vítima:


DamageBillboardHandler:ShowDamageBillboard(damage, adornmentPart)

Câmera sobre o ombro

A câmera sobre o ombro é uma câmera em terceira pessoa que olha sobre o ombro direito do personagem jogador. Para personalizar a câmera sobre o ombro, modifique as variáveis sob o comentário -- Parâmetros de configuração (constantes) na função ShoulderCamera.new() de WeaponsSystem/Libraries/ShoulderCamera. Você pode modificar coisas como campo de visão, deslocamento em relação ao personagem, velocidade de caminhada enquanto correndo ou ampliando, etc.

Controle de corrida e zoom

Por padrão, o sistema de armas adiciona a capacidade de "correr", para que os jogadores possam correr segurando a tecla Shift, pressionando totalmente para cima no thumbstick dinâmico (móvel), ou pressionando totalmente para cima no joystick esquerdo (gamepad). Se você deseja desabilitar a corrida, defina o valor de SprintEnabled dentro de WeaponsSystem/Configuration para false.

O sistema também reduz a velocidade do jogador enquanto eles estão mirando/ampliando, mas você pode desabilitar esse comportamento definindo o valor de SlowZoomWalkEnabled para false.

©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.