Script de bloco

O que é um script de bloco?

imagem-20250402145046440

Você já percebeu que as cabeças dos personagens no Free Fire ficam muito grandes?

Esse efeito é obtido usando um script de bloco poderoso.

imagem-20250402192617114

O script de bloco é um método de programação visual que permite escrever uma lógica de jogo altamente personalizada.

Ponto de entrada

Você pode encontrar o ponto de entrada para bloquear o script no menu Mais.

imagem-20250402145458469

image-20250402145643612

Existem também outros locais onde você pode acessar a interface de edição de scripts de bloco. Você pode encontrar a entrada para scripts de bloco em Configurações Básicas e Configurações de Propriedade em Editar Regras de Jogo. A interface de edição para a qual eles acessam é a mesma.

Introdução básica aos blocos

Editor

Primeiro, podemos ver as áreas importantes no editor de blocos.

image-20250402181900017

À esquerda, estão todos os blocos disponíveis em diferentes categorias. No centro, está a cena de edição que chamamos de “tela”. Os blocos precisam ser arrastados e soltos na tela para terem efeito.

Categorias de bloco

Existem duas categorias principais de blocos:

  1. Eventos, que determinam quando a lógica é acionada, por exemplo, sempre que um jogador entra no jogo ou no início de uma rodada. Os eventos atualmente disponíveis para o script estão na categoria de bloco vermelho.

  2. Ações, que são instruções para o jogo. No nosso caso, precisamos de uma ação para aumentar o tamanho da cabeça do personagem! Você encontra a grande maioria das ações nas categorias de blocos verde e azul.

Usando blocos

Da esquerda para a direita, mantenha pressionado o bloco e arraste-o para a tela para usá-lo no script atual.

image-20250402182437921 image-20250402182455584

Os blocos podem ser conectados uns aos outros.

image-20250402182616637 image-20250402182630147

Manipulando blocos

Selecionando

Clicar em um bloco o selecionará, e um painel de operação de bloco aparecerá diretamente abaixo da tela, com o bloco selecionado destacado.

image-20250402184106420

Excluir

Clique para excluir. Isso excluirá o bloco selecionado do grupo de blocos, e os blocos abaixo serão preenchidos automaticamente para cima.

image-20250402184414500

Você também pode arrastar blocos conectados para o lado direito para excluí-los.

image-20250402184634175 image-20250402184645257

Desfazer e refazer

Com medo de cometer um erro? O menu de atalho à direita permite desfazer ou refazer todas as alterações no script de bloco:

image-20250402184455422

Bloquear dados

Como você deve ter notado, há vários blocos coloridos e sinais de mais nos blocos. Isso indica os dados que o bloco pode fornecer para o bloco abaixo dele e os dados de que ele precisa.

imagem-20250402160101108

Alguns dos dados necessários já foram preenchidos com um valor padrão para você, como “Reprodução Automática” na imagem acima

Cada bloco tem sua própria lógica única, e os dados fornecidos e os dados necessários são de tipos diferentes. Às vezes, precisamos usar blocos de dados, variáveis e até funções para fornecer e receber dados. No fim das contas, um jogo é apenas um amontoado de cálculos de dados.

Aumentar a cabeça do jogador

Agora que você sabe como manipular blocos, vamos acompanhar e aumentar a cabeça do personagem no seu mapa!

Tudo o que precisamos fazer é completar o script do bloco assim:

imagem-20250402192617114

Não se deixe assustar pelo tamanho, o objetivo é apenas definir o zoom do cabeçalho para três vezes o tamanho padrão.

imagem-20250402192733907

Primeiro, vamos preparar os blocos que precisamos:

image-20250402151812785

Ajustar o zoom da cabeça é um pouco mais complicado, pois não é possível obter o zoom da cabeça do jogador diretamente nas propriedades do jogador. Portanto, precisamos do bloco “Obter propriedade” para nos ajudar a obter propriedades que não podem ser lidas diretamente do bloco “Definir propriedade”.

Usamos a propriedade Get para obter o equipamento do jogador:

imagem-20250402153444311

A entidade de destino de Obter propriedade é arrastada para baixo de Ao entrar no jogo, o que significa: sempre que um jogador entra no jogo, obtenha as propriedades do jogador que entrou no jogo.

Use o equipamento obtido como entidade alvo e continue até obter a “cabeça”

imagem-20250402153810754

Arraste a “cabeça” obtida acima para a propriedade Definir e selecione a propriedade “Escala do esqueleto”:

imagem-20250402154010766

Clique no sinal de mais ao lado de Valor e selecione o bloco de atribuição Vector3 à esquerda.

image-20250402154128112

Preencha X, Y e Z com 3.

imagem-20250402154314494

Vector3 é um tipo de dado composto por três números. Aqui, a escala padrão do equipamento é (1,1,1). Preencher (3,3,3) significa que a cabeça é ampliada três vezes em todas as três dimensões do espaço 3D. Você também pode tentar preencher diferentes combinações de números para ver o desempenho real.

Por fim, vamos conectar o bloco Definir Propriedade ao bloco On Player Join. Somente blocos conectados fazem a lógica funcionar.

image-20250402154557829

Clique no botão de depuração para entrar no jogo e ver seu desempenho:

imagem-20250402154750511

image-20250402154804522 image-20250402154814476

Há funções ainda mais poderosas no script de bloco esperando para serem descobertas por você.

Diferentes scripts

O mesmo bloco pode se comportar de forma diferente em scripts diferentes!

Isso ocorre porque, além do “script global” que acabamos de usar, cada jogador terá um “script de jogador” e cada equipe terá um “script de equipe”. Se desejar, você pode até adicionar scripts a objetos e consumíveis na Cena.

Os scripts entram em vigor na entidade em que estão. Se um evento como “On Player Join” for colocado no “script do jogador”, todos os jogadores em campo (incluindo o novo jogador) responderão a esse evento sempre que um jogador entrar. Se o nosso bloco deve dar ao jogador uma M4A1 quando ele entrar, se ela for colocada no script global, cada jogador terá uma M4A1; se for colocada no script do jogador, cada jogador dará ao novo jogador uma M4A1, e o novo jogador terá muitas armas para controlar!