Mecânica do jogo

1

Visão geral do mapa

Mecânica do jogo (reeditável) é um dos modelos oficiais de jogabilidade pré-instalados no editor Free Fire CraftLand. Ele fornece aos desenvolvedores um plano reutilizável para recursos básicos de jogabilidade, composto principalmente por três componentes principais: cenas do mapa, configurações de regras e scripts de sprites.

Neste modelo, você pode experimentar e aprender a metodologia básica de edição da jogabilidade, interagindo com mecanismos pré-projetados e experimentando seus loops de feedback.

Simultaneamente, você pode compreender rapidamente e se aprofundar em outros mecanismos interativos comuns dentro do jogo. Isso inclui ativar gatilhos personalizados, aumentar/diminuir a saúde do jogador, gerar monstros (zumbis), mover objetos, teletransportar jogadores para locais designados, exibir texto personalizado, alterar a aparência dos personagens e interagir com interfaces HUD personalizadas. Com base nessas lógicas de script fundamentais, você pode expandi-las e reeditá-las para criar ainda mais seus próprios trabalhos exclusivos.

Cenário do mapa

Primeiro, uma introdução ao design de cenas: a área geral é baseada na cena em branco padrão, com um espaço quadrado simples construído e mecanismos interativos espalhados por toda parte (dentro da caixa vermelha na parte superior da imagem abaixo). Os jogadores podem ser divididos em três equipes e aparecerão em um lado do mapa ao entrar no jogo (caixa vermelha na parte inferior da imagem abaixo), participando livremente da experiência central do jogo.

2

Além de fazer ajustes rápidos nos objetos diretamente na cena, você também pode gerenciar todos os objetos da cena de forma abrangente clicando em Mais - Gerenciador de Objetos

3

Relacionado à funcionalidade

Regras

Para configurar as regras do jogo, navegue até Configurações > Configurações do jogo > Editor de regras do jogo

4

Aqui você pode editar regras detalhadas específicas para este modelo, incluindo: Modo, Configurações de Atributos, Economia e Câmera.

As configurações de regras do modelo atual diferem principalmente das configurações padrão nas seguintes áreas: Modo e Economia. As entradas de regras específicas que diferem dos padrões estão listadas abaixo.

Modo

Configurações de Turnos: Configure parâmetros relacionados aos turnos.

Configuração da equipe: determina o número de jogadores por sessão, vagas disponíveis na equipe e número mínimo de jogadores necessários para iniciar o jogo

5

Economia

Edição da loja: determina os itens que os jogadores podem comprar com fichas em locais específicos e seus preços

Observação: como a jogabilidade principal deste modelo se concentra em experiências mecânicas, as máquinas de venda automática não são pré-configuradas. Se necessário, elas podem ser arrastadas da biblioteca de objetos para a cena e criadas

6 7

Interface do usuário

Para construir uma interface de usuário personalizada, clique em Mais - HUD personalizado

8

Aqui você pode editar a interface HUD personalizada com a qual os jogadores podem interagir durante as partidas e navegar até os designs de script correspondentes

A interface HUD personalizada do modelo atual serve exclusivamente para mecanismos de porta ativada por botão

Para editar controles específicos, selecione Editar layout e escolha o controle desejado na lista à esquerda

9 10

Aqui você pode ajustar várias propriedades de controles específicos, tais como: tamanho, posição, ângulo de rotação, visibilidade, transparência, cor, conteúdo exibido, etc.

Ir para o design do script do elemento gráfico correspondente:

Clique em Editar Script - Ir para a interface de edição do script HUD. Os métodos específicos de criação de scripts serão detalhados abaixo.

11

Visão geral da interface HUD no jogo: (Exibida automaticamente quando o personagem do jogador entra no alcance do gatilho personalizado da porta com botão)

12

Este botão controla a abertura/fechamento da porta dentro do mecanismo da porta com botão

Metaprogramação

Mecânicas de jogo adicionais requerem o Editor de Metaprogramação, acessado por:

Clique em Mais - Scripts de Elementos e selecione o script específico que deseja editar no canto superior direito da interface

13 14

Esta seção apresenta principalmente a mecânica central do jogo em “Mecânica do jogo” e como outras regras específicas são implementadas por meio de scripts.

Você pode editar scripts específicos e ajustar parâmetros relevantes aqui

Para funções de script que exigem maior compreensão, clique no script específico para ver os detalhes

Scripts de acionamento personalizados

Esta seção detalha os efeitos e o conteúdo do script para cada mecanismo

Nº. Nome do mecanismo
Zona de cura
Zona de dano
Zona de spawn de monstros
Zona de armadilha
Zona de teletransporte
Zona de exibição de texto
Zona de troca de roupa
Elevador
Porta automática
Porta com botão

Zona de Cura

15
  1. Ao entrar, os personagens dos jogadores recuperam saúde continuamente a uma taxa de 15 HP por segundo, acompanhada por efeitos visuais de cura

Visão geral:

16
  • A função principal desse mecanismo — curar jogadores (aumentar seus pontos de saúde) — está encapsulada na seguinte função, que é executada para cada jogador elegível que entra no mecanismo. Abaixo está a implementação específica do script:

Área 2-3

Função “Updatetreat”

  1. Se “ListOfTreat” > 0 e o resultado do tempo de jogo menos a variável personalizada “LastUpDateTime” for maior que 1000, defina a variável personalizada “LastUpDateTime” igual ao tempo de jogo
  2. Indexe o elemento “Player” dentro do contêiner de dados “ListOfTreat”. Se a saúde atual do jogador for < sua saúde máxima, aumente a saúde desse jogador em 15
17
  • Quando um jogador recebe cura, também queremos fornecer feedback visual por meio de efeitos especiais para indicar que a função está ativa. Essa funcionalidade está encapsulada na seguinte função; abaixo está a implementação específica do script:

Área 2-2

Função “CreateEffects”

  1. Adicione o jogador à lista “ListOfTreat”
  2. Crie um efeito de corrente de ar ascendente no jogador, com um tipo de loop definido como “Loop”, “Play Immediately” definido como “True” e retorne um “SpecialEffect”
  3. Insira o “SpecialEffect” na lista “SpecialEffect” no índice correspondente à sua primeira aparição no jogador
  4. Crie um “Tween” para o “SpecialEffect” seguir o alvo do jogador, sem deslocamento nos eixos XYZ, sem sistema de coordenadas de referência e definido como “Play Immediately”, retornando um “Tween”
  5. Defina a cor do efeito “SpecialEffect” como verde
  6. Defina a escala do efeito “SpecialEffect” como 0,5x ao longo de todos os eixos XYZ
  7. Insira o “Tween” na lista “Tween” no índice correspondente à sua primeira ocorrência no player
18
  • Esta seção define principalmente variáveis para determinar o tempo de execução do evento, lida com os mecanismos de entrada/saída dos jogadores e invoca funções nos momentos apropriados. Abaixo está a implementação específica do script:

Área 2-1

  1. No início da fase, defina a variável personalizada “LastUpdateTime” para o tempo de jogo
  2. Quando o personagem do jogador entrar neste gatilho personalizado, chame a função “CreateEffects”
  3. Quando o personagem do jogador sair deste gatilho personalizado, destrua e exclua em lote os valores-alvo (alguns alvos exigem indexação por meio de uma lista)
  4. Após a atualização, chame a função “UpdateTreat”
19

Apêndice: variáveis e funções personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis e Funções.

20 21

Zonas de dano

“22”
  1. Ao entrar, os personagens dos jogadores sofrem perda contínua de saúde a uma taxa de 15 HP por segundo

Visão geral:

23
  • A função principal desse mecanismo — causar danos aos jogadores (reduzindo sua saúde) — está encapsulada na seguinte função, que é executada para todos os jogadores elegíveis que entram na área. A implementação específica do script é a seguinte:

Área 3-2

Função “UpdateInjure”

  1. Se o comprimento de “ListOfInjure” > 0
  2. Se o resultado do tempo de jogo menos a variável personalizada “LastUpdateTime” exceder 1000, defina a variável personalizada “LastUpdateTime” igual ao tempo de jogo e, em seguida, indexe o elemento “Player” dentro do contêiner de dados “ListOfInjure”
  3. Se a saúde atual do jogador ≠ 0, infligir 15 de dano a esse jogador
24
  • Esta seção define principalmente variáveis para determinar o tempo de execução do evento, lida com jogadores que entram/saem do mecanismo e invoca funções conforme necessário. A implementação específica do script é a seguinte:

Área 3-1

  1. No início da fase, defina a variável personalizada “LastUpdateTime” para o tempo atual do jogo
  2. Quando um personagem jogador entrar/sair deste gatilho personalizado, acrescente/remova o jogador da “ListOfInjure”
  3. Após a atualização, invoque a função “UpdateInjure”
26

Apêndice: variáveis e funções personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis e Funções

27 28

Zona de Spawn de Monstros

29
  1. Gera um zumbi perto desta zona quando um personagem jogador entra
  • A função principal desse mecanismo — gerar zumbis — pode ser acionada por todos os jogadores que entrarem nela, acompanhada dos efeitos sonoros correspondentes. Abaixo está a implementação específica do script:
  1. Quando um personagem do jogador entra neste gatilho personalizado, crie um zumbi nas coordenadas: XYZ = (coordenada X do jogador - 2, coordenada Y do jogador, coordenada Z do jogador - 2). O zumbi deve ser do tipo normal, com o alvo automático definido como verdadeiro, tipo de comportamento passivo e sem caminho atribuído.
  2. Crie um efeito sonoro de alerta não direcionado com um tipo de loop de “uma vez” e “reproduzir imediatamente” definido como verdadeiro.
“30”

Área de armadilha

31 32
  1. Quando um personagem jogador entra, a gaiola armadilha acima de sua cabeça cai, confinando o jogador dentro dessa área
  2. Após a gaiola armadilha cair, uma contagem regressiva de 10 segundos será exibida, e a armadilha será restaurada ao final da contagem regressiva

Visão geral:

33
  • A funcionalidade principal deste mecanismo — a queda da gaiola e a captura dos jogadores — está encapsulada na seguinte função, que é executada para cada jogador elegível que entra no mecanismo
  • Simultaneamente, a inicialização do mecanismo é encapsulada como uma função, abrangendo o agrupamento unificado de objetos de armadilha da cena e a pré-ocultação do texto da contagem regressiva. A implementação específica do script é a seguinte:

Área 4-2

Função “TrapFalls”

  1. Se “TrapState” for verdadeiro, mova o objeto de nível “Trap” (elemento “Trap” dentro do contêiner de dados de índice “Trap”) para as coordenadas XYZ = (“Trap” coordenada X, “Trap” coordenada Y - 2, “Trap” coordenada Z)
  2. Defina “TrapState” como falso

Função “Initialisation”

  1. Acrescente “Iron Fence1-4” a “Trap”
  2. Defina a variável personalizada “TrapTime” como verdadeira
  3. Crie um objeto de texto nas coordenadas XYZ = (entidade da cena “Bloco” coordenada X, entidade da cena “Bloco” coordenada Y + 3, entidade da cena “Bloco” coordenada Z), retorne “Texto”
  4. Defina a variável personalizada “Time” como “Text”
  5. Defina a posição “Text” nas coordenadas: XYZ = (coordenada X da entidade da cena “Block”, coordenada Y da entidade da cena “Block” + 3, coordenada Z da entidade da cena “Block”)
  6. Defina o conteúdo “Text” como a string “10”
  7. Defina o fator de escala “Text” como 0 em todas as direções XYZ
34
  • Ao ativar a armadilha, exiba uma contagem regressiva de 10 segundos para o jogador. Após o término da contagem regressiva, retraia a armadilha e oculte o texto da contagem regressiva. Essa funcionalidade está parcialmente encapsulada na seguinte função; a implementação específica do script é a seguinte:

Área 4-3

Função “UpdateInjure”

  1. Se “TrapState” for falso e o resultado do tempo de jogo menos a variável personalizada “LastUpDateTime” exceder 1000, defina a variável personalizada “LastUpDateTime” igual ao tempo de jogo. Converta a string “Time” em um número inteiro e retorne “ Result", define o conteúdo de “Time” como “Result”-1
  2. Se o conteúdo de “Time” for 0, defina o fator de escala de “Text” como 0 em todas as direções XYZ, defina o conteúdo de “Text” como a string “10”, chame a função “TrapRecovery” e defina “TrapState” como verdadeiro
35

Área 4-4

  1. Se “TrapState” for falso, indexe o elemento “Each” no contêiner de dados “Trap”, movendo o objeto de nível “Each” para as coordenadas XYZ = (coordenada X de “Each”, coordenada Y de “Each” + 2, coordenada Z de “Each”)
  2. Defina o fator de escala “Time” como 2 em todas as direções XYZ
36
  • Esta seção determina principalmente o momento para invocar cada função; abaixo está a implementação específica do script:

Área 4-1

  1. Ao iniciar o jogo, invoque a função “Inicialização”
  2. Quando o personagem do jogador entrar neste gatilho personalizado, aguarde 0,3 segundos antes de invocar as funções “TrapFalls” e “CountDown”
  3. Durante as atualizações, invoque a função “UpdateInjure”
37

Apêndice: Variáveis e funções personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis e Funções, respectivamente.

38 39

### Zona de Transmissão

40 41
  1. Exiba uma contagem regressiva de 3 segundos quando o personagem do jogador entrar, reproduzindo simultaneamente um efeito de teletransporte no personagem
  2. Após a conclusão da contagem regressiva, o personagem é teletransportado para o local designado

Visão geral:

42
  • A funcionalidade principal desse mecanismo — teletransportar os jogadores que entram para um local designado após 3 segundos — está encapsulada na seguinte função, que pode ser executada para todos os jogadores elegíveis que entram no mecanismo. Abaixo está a implementação específica do script:

Área 5-2

Função “MyUpdate”

  1. Recupere o elemento “Player” do contêiner de dados de índice “PlayerList”
  2. Defina a variável temporária “State” para o valor “index” de “PlayerStateList”
  3. Se “state” = 1, defina a variável temporária “enter_tick” como “index” em “EnterTickList”, defina a variável temporária “stay_tick” como tempo de jogo - “enter_tick”, defina a variável temporária “countdown” como (3000 - “stay_tick”) * 0,001 arredondado para cima
  4. Se “countdown” > 0, defina o conteúdo de “index” em “TextEntityList” como a string “countdown”. Caso contrário, defina a variável temporária “target_pos” como a posição do objeto de cena “TeleportTar” e, em seguida, teletransporte o jogador para as coordenadas XYZ = (coordenada X de “target_pos”, coordenada Y de “target_pos” + 2, coordenada Z de “target_pos”). , gire com ângulos de Euler XYZ = (0, 0, 0)
43
  • Quando o jogador está prestes a ser teletransportado, também queremos alertá-lo visualmente por meio de efeitos especiais de que a função está ativa, enquanto exibimos uma contagem regressiva de 3 segundos para o teletransporte. Essa funcionalidade está encapsulada na seguinte função; abaixo está a implementação específica do script:

Área 5-3

Função “InitPlayerData”

  1. Anexe o jogador à “PlayerList”, anexe 0 à “PlayerStateList”, anexe 0 à “EnterTickList”
  2. Crie um objeto de texto nas coordenadas XYZ = (0, 0, 0), retorne “TextEntity”
  3. Crie “TextEntity” para seguir o jogador, deslocado de seu sistema de coordenadas por XYZ = (0, 1,5, 0) e reproduza imediatamente
  4. Adicione “TextEntity” a “TextEntityList”
  5. Crie um efeito visual de faísca no jogador, defina o tipo de loop como looping, defina a reprodução imediata como verdadeira, retorne “VisualEffectEnti”
  6. Defina a cor do efeito visual “VisualEffectEnti” como azul
  7. Crie “ VisualEffectEnti“ para seguir o alvo do jogador, sem deslocamento ao longo dos eixos XYZ em relação ao seu sistema de coordenadas, e reproduzir imediatamente.
  8. Anexar ‘VisualEffectEnti’ a ”VisualEffectList"
44

Área 5-4

Função “ReadyToTeleport”

  1. Defina o “índice” de “PlayerStateList” como 1
  2. Defina o “índice” de “EnterTickList” como o tempo do jogo
  3. Defina o conteúdo do “índice” em “TextEntityList” como vazio
  4. Defina o fator de escala do “índice” em “TextEntityList” como 1 em todas as direções dos eixos XYZ
  5. Defina o fator de escala para o “índice” em “VisualEffectList” como 1 em todas as direções XYZ
45
  • Ao cancelar o teletransporte do jogador, as seguintes ações são realizadas: Ocultar o texto da contagem regressiva e os efeitos de teletransporte. Essa funcionalidade está encapsulada na seguinte função; a implementação específica do script é a seguinte:

Área 5-5

Função “AbortTeleport”

  1. Defina o “índice” de “PlayerStateList” como 0
  2. Defina o fator de escala do “índice” em “TextEntityList” como 0 em todas as direções XYZ
  3. Defina o fator de escala do “índice” em “VisualEffectList” como 0 em todas as direções XYZ
46
  • Esta seção determina principalmente o tempo de invocação da função; a implementação específica do script segue:

Área 5-1

  1. Inicie a execução do loop: aguarde 0,2 segundos e invoque a função “MyUpdate”
  2. Quando o personagem do jogador entrar neste gatilho personalizado, defina a variável temporária “index” para a posição em que “Player” aparece pela primeira vez em “PlayerList”. Se index=-1, chame a função “InitPlayerData”; chame a função “ReadyToTeleport”
  3. Quando o personagem do jogador sair deste gatilho personalizado, chame a função “AbortTeleport”
47

Apêndice: variáveis e funções personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis e Funções

48 49

Área de exibição de texto

50
  1. Exibir o texto “HelloWorld” quando o personagem do jogador entrar
  2. Ocultar o texto “HelloWorld” quando o personagem do jogador sair
  • A funcionalidade principal desse mecanismo — exibir e ocultar o texto “HelloWorld” nos momentos apropriados — está encapsulada na seguinte função
  • Esse conteúdo também determina o momento de invocação da função mencionada acima; a implementação específica do script é a seguinte:
  1. Quando o personagem do jogador entrar/sair deste gatilho personalizado, acrescente/remova “Player” da lista “ListOfPlayer”
  2. Na posição da entidade da cena “CueArea” (registrada como Localização), chame a função “CreateTips”/chame a função “DeleteTips”

Função “CreateTips”

  1. Crie um objeto de texto nas coordenadas de posição XYZ = (coordenada X de “Location”, coordenada Y de “Location” + 2, coordenada Z de “Location”), retornando “Tips”
  2. Defina a variável personalizada “Tips” = “Tips”
  3. Defina o conteúdo de “Dicas” como “Olá, mundo”

Função “DeleteTips”

Se o comprimento de “PlayerList” ≤ 0, destrua “Dicas”

51

Apêndice: Variáveis e funções personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis e Funções
52 53

Área de troca de roupas

54
  1. Ao entrar, a aparência do personagem do jogador muda de acordo com seu gênero
  • A função principal desse mecanismo — mudar os jogadores para roupas apropriadas ao gênero — pode ser acionada por todos os jogadores que entrarem nele; a implementação específica do script é a seguinte:

O script desta área demonstra como mudar aleatoriamente o personagem do jogador que entra para a roupa do gênero correspondente ao acionar este gatilho personalizado

  1. No início do jogo, acrescente as seguintes roupas ao “Guarda-roupa feminino” e ao “ Guarda-roupa masculino“
  2. Quando um personagem entra neste gatilho personalizado, se seu gênero for 2, embaralhe o ”Guarda-roupa masculino“ e defina sua roupa para o conjunto no índice 0 do ”Guarda-roupa masculino“
  3. Caso contrário, embaralhe o ”Guarda-roupa feminino“ e defina sua roupa para o conjunto no índice 0 do ”Guarda-roupa feminino"
55

Apêndice: Variáveis personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis

56

Elevador

57
  1. Quando o personagem do jogador entra no elevador, ele sobe gradualmente até atingir a altura máxima definida
  2. Quando o personagem do jogador sai do elevador, ele desce gradualmente até retornar à sua posição inicial

Visão geral:

58
  • A funcionalidade principal desse mecanismo — fazer com que o objeto elevador suba quando um jogador entra e desça quando ele sai — está encapsulada na seguinte função. Essa função é executada para cada jogador elegível que entra no mecanismo. Abaixo está a implementação específica do script:

Área 6-2, 6-3

Função “CreateAnElevator”

  1. Defina a variável personalizada “ElevatorsLocation” para a posição de “Elevator”
  2. Execute o loop quando a condição for atendida: comprimento da PlayerList > 0. Aguarde 0,5 segundos, defina a coordenada Y de ElevatorsLocation para o valor atual + 0,2, atualize a variável personalizada ElevatorsLocation, defina a posição do Elevator para ElevatorsLocation, defina a posição deste gatilho personalizado para ElevatorsLocation
  3. Continue o loop até que o comprimento de “PlayerList” ≤ 0 ou a variável personalizada “Mark” ≥ 20, caso contrário, incremente “Mark” em 1

Função “DescendElevator”

  1. Condição atendida: Execute o loop quando o comprimento de “PlayerList” = 0: Aguarde 0,5 segundos, defina a variável temporária “Time” para a posição “Elevator”, defina a coordenada Y de “Time” para o valor atual - 0,2, atualize a variável personalizada “Time”, defina a posição “Elevator” para “Time”, defina a posição deste gatilho personalizado para “Time”
  2. Até “PlayerList” comprimento > 0 ou coordenada Y de “Time” ≤ 2,8, caso contrário, continue o loop e defina o valor de “Mark” para o valor atual menos 1.
“59” 60
  • Esta seção determina principalmente o tempo das chamadas de função e define variáveis para atribuir valores aos objetos da cena. Abaixo está a implementação específica do script:

Área 6-1

  1. Quando o personagem do jogador entrar neste gatilho personalizado, acrescente o jogador à “ListOfInjure” e chame a função “CreateAnElevator”
  2. Quando o personagem do jogador sair deste gatilho personalizado, remova o jogador da “ListOfInjure”. Se o comprimento de “ PlayerList“ ≤ 0, chame a função ”DescendElevator“
  3. No início do jogo, defina a variável personalizada ‘Elevator’ para o objeto da cena ”High-Tech Platform A1"
61

Apêndice: Variáveis e funções personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis e Funções.

62 63

Portas automáticas

64
  1. Quando um personagem jogador se aproxima da porta (entrando no alcance do gatilho personalizado), a porta se abre automaticamente
  2. Quando o personagem se afasta da porta novamente (saindo do alcance do gatilho personalizado), a porta se fecha automaticamente.

Visão geral:

65
  • A funcionalidade principal desse mecanismo — abrir a porta quando o jogador se aproxima e fechá-la quando ele se afasta — está encapsulada na seguinte função, que é executada para cada jogador elegível que entra no mecanismo. Abaixo está a implementação específica do script:

Áreas 7-3 e 7-4

Função “OpenTheDoor”

Se o comprimento de “PlayerList” ≥ 0, a condição é satisfeita: comece a executar o loop quando “Mark” ≤ 5 até que o comprimento de “PlayerList” = 0 ou “Mark” > 5; caso contrário, continue o loop:

  1. Aguarde 0,5 segundos
  2. Defina as coordenadas de posição XYZ da “Plataforma de estilo japonês A1” = (coordenada X da “Plataforma de estilo japonês A1” + 0,2, coordenada Y da “Plataforma de estilo japonês A1”, coordenada Z da “Plataforma de estilo japonês A1”)
  3. Defina as coordenadas de posição XYZ da “Plataforma de estilo japonês A1(1)” para: (coordenada X da “Plataforma de estilo japonês A1(1)” - 0,2, coordenada Y da “Plataforma de estilo japonês A1(1)”, coordenada Z da “Plataforma de estilo japonês A1(1)”)
  4. Incremente o valor de “Marca” em 1

Função “CloseTheDoor”

Se o comprimento de “PlayerList” for igual a 0, execute o loop quando “Mark” ≥ 0 até que o comprimento de “PlayerList” > 0 ou “Mark” = 0; caso contrário, continue o loop:

  1. Aguarde 0,5 segundos
  2. Defina o valor de “Mark” como 1 a menos que seu valor atual
  3. Defina as coordenadas de posição XYZ da “Plataforma de estilo japonês A1” para: (coordenada X da plataforma de estilo japonês A1 - 0,2, coordenada Y da plataforma de estilo japonês A1, coordenada Z da plataforma de estilo japonês A1)
  4. Defina as coordenadas de posição XYZ da “Plataforma de estilo japonês A1(1)” para: XY = (coordenada X da “Plataforma de estilo japonês A1(1)” + 0,2), Y = (coordenada Y da “Plataforma de estilo japonês A1(1)”), Z = (coordenada Z da “Plataforma de estilo japonês A1(1)”) coordenada Z da “Plataforma de estilo japonês A1(1)”)
66 67
  • Esta seção envolve principalmente a definição de variáveis para determinar o tempo de execução do evento, processar jogadores entrando/saindo dos mecanismos e invocar funções nos momentos apropriados. Abaixo está a implementação específica do script:

Zona 7-1, 7-2

  1. Ao iniciar o jogo, defina a variável personalizada “Mark” como 0
  2. Quando o personagem do jogador entrar/sair deste gatilho personalizado, espere até o próximo quadro, adicione/remova o jogador da “PlayerList”, espere até o próximo quadro e, em seguida, chame a função ‘OpenTheDoor’/“CloseTheDoor”
68 69

Apêndice: Variáveis e funções personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis e Funções

70 71

Botão Gate

72 73
  1. Quando o personagem do jogador se aproxima da porta (entrando no alcance do gatilho), a interface da IU exibe um botão XX. Clicar neste botão abre a porta; clicar novamente fecha a porta
    . Quando o personagem se afasta da porta (saindo do alcance do gatilho), o botão da interface do usuário XX desaparece, enquanto a porta permanece em seu estado atual aberto/fechado.
  • A funcionalidade principal desse mecanismo — abrir a porta quando o jogador pressiona o botão e fechá-la quando ele pressiona novamente — está encapsulada na seguinte função, executável para todos os jogadores elegíveis que entram no mecanismo:
  • Isso também inclui o processamento para jogadores que entram/saem do mecanismo e a invocação oportuna da função. A implementação específica do script é a seguinte:
  1. Quando um jogador entrar neste gatilho personalizado, defina a propriedade de visibilidade da IU personalizada “HudList” como verdadeira

  2. Quando um jogador entrar no jogo, invoque a função “CreateHUD”

  3. A função “CreateHUD”

Adiciona o jogador à “PlayerList”

Cria um “Botão” HUD personalizado para o jogador XX e retorna o “Ui”

Insira o “Ui” na “HudList” na posição correspondente à primeira ocorrência do “Player” na “PlayerList”

Defina a propriedade de visibilidade da “HudList” (como a interface personalizada) como falsa

  1. Quando o jogador sair deste gatilho personalizado, defina a propriedade de visibilidade da IU personalizada “HudList” como falsa
74

Apêndice: Variáveis e funções personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis e Funções

75 76

Script global

  • Para otimizar o conteúdo do script e facilitar o monitoramento de vários status de mecanismos por meio de uma única variável (por exemplo, a duração da operação de elevação do mecanismo ⑧ ou o status da porta do botão do mecanismo ⑩), precisamos de uma variável global (designada como Mark).

Ao iniciar o jogo, defina a variável personalizada “Marcação” como 0

77

Observação: as variáveis personalizadas necessárias para este script podem ser visualizadas e gerenciadas clicando em Variáveis

78

Script do jogador

  • Para garantir que os jogadores possam desfrutar da jogabilidade principal sem problemas, eles devem poder reaparecer após a morte. Abaixo está a implementação específica do script:
  1. Quando um jogador entra no jogo, defina a variável personalizada “DamageDetermina” como falsa
  2. Quando um jogador é morto, aguarde 3 segundos e faça-o reaparecer no próximo quadro
79

Apêndice: Variáveis personalizadas necessárias para este script. Você pode visualizá-las e gerenciá-las clicando em Variáveis

80

Script HUD

Visão geral:

81
  • Como os jogadores que clicam no botão acionarão diferentes comportamentos com base no estado atual da porta, é necessário avaliar as propriedades da entidade e o valor da variável personalizada Mark, invocando subsequentemente a função correspondente. Abaixo está a implementação específica do script:

Área 1-1

  1. Quando o botão!XX é clicado, se a posição do eixo X da entidade “Frozen Steel Panel A1” for ≥2 e a variável personalizada “Mark” ≠ 1, então chame a função “CloseTheDoor”
  2. Caso contrário, chame a função “OpenTheDoor”
82
  • A funcionalidade principal do Mecanismo ⑩Botão Porta — abrir/fechar e segurar a porta — está encapsulada na seguinte função, executável para todos os jogadores elegíveis que entram neste mecanismo. Abaixo está a implementação específica do script:

Zonas 1-2, 1-3

Função “OpenTheDoor”

  1. Se a variável personalizada “Mark” = 0, defina “Mark” = 1
  2. Inicie o loop: aguarde 0,5 segundos, mova o objeto 0,2 unidades ao longo do eixo X. Continue até que a coordenada X do objeto seja ≥ 2, depois defina “Mark” = 2 e interrompa o loop

Função “CloseTheDoor”

  1. Se a variável personalizada “Marca” = 2, defina “Marca” = 1
  2. Inicie o loop: aguarde 0,5 segundos, mova o objeto ao longo do eixo X em -0,2 até que sua posição X ≤ 1, defina “Marca” = 0 e interrompa o loop
83 84

Apêndice: Funções personalizadas exigidas por este script. Você pode visualizá-las e gerenciá-las clicando em Funções

85

Script do ponto de respawn

  • Quando os jogadores entram no jogo e começam a experimentar a jogabilidade principal, o ponto de respawn se torna um componente não funcional que pode atrapalhar a atividade dos jogadores. Portanto, ele deve ser definido como inativo.
  1. Quando a rodada começar, defina o status ativo desta entidade como verdadeiro
  2. Aguarde 2 segundos
  3. Defina o status ativo desta entidade como falso
86

Recomendações de edição secundária

  • Ajuste os valores em scripts específicos para configurar comportamentos de armadilhas mais exagerados e aleatórios, aumentando o impacto dramático do jogo
  • Integre com a mecânica da loja e introduza a jogabilidade de combate PVP, utilizando armadilhas como parte do sistema de obstáculos
  • Expanda ou aprofunde a funcionalidade das armadilhas, explorando e implementando novas aplicações de diversos mecanismos de script