Ir para o conteúdo principal
Version: latest - a1.19.x ⚖️

Classes Guide

Tudo o que você precisa saber sobre as aulas

Todas as entidades em nanos no mundo são representadas por um Class. In Lua, classes are represented by tables. That means that every interaction with entities (Players, Characters, Props, etc) are made with Classes/tables methods following an OOP (Object-oriented programming pattern). Nesta página vamos explicar mais sobre isso.

tip

In nanos world we have 3 types of Classes (or structures): Classes, Static Classes and Utility Classes.

Classes

If you read our Quick Start guide, you noticed we were spawning entities in the following format:

-- Criando uma entidade com um Construtor
my_entity = Entity()

-- Interagindo com a entidade com seus métodos
my_entity:MyFunction()
tip

Acesso a Entidades / Objetos Gerados Métodos são feitos com :.

É assim que OP funciona! Você cria objetos e chama funções/capturar eventos sobre esse objeto. Ao contrário de outros jogos de script que têm toneladas de funções e eventos globais para interagir com as entidades, nanos world scripting é uma abordagem moderna para programação moderna.

Herança de aulas

Under the hood, nanos world Classes follow an Inheritance Pattern, which means we have base parent classes, and it’s children which inherits all functions, events and properties from them. You will notice that all Classes that can be spawned in the world are Actors, for example in Character and Prop (which are Actors) it is possible to call the function: :SetLocation(Vector).

info

The Base Class Actor is a very important class in nanos world. Contém a maior parte dos métodos que são partilhados por todas as nossas Classes e também Métodos estáticos para obter e recuperar entidades diretamente.

Gerando Entidades

Gerar entidades em nanos o mundo é extremamente fácil e direto, digamos que queremos gerar um personagem:

Server/Index.lua
meu_personagem local = Característica()
tip

Cada classe conterá seus próprios Construtores, Propriedades, Métodos e Eventos.

Verificar todas as classes que o mundo do nanos fornece no item da barra lateral Referência de Scripts -> Classes.

info

Tenha em mente que algumas Classes só podem ser geradas no Servidor, outros só podem ser gerados no cliente ****.

Destruindo Entidades

Todas as classes (mas Player) permitem que você destrua-as com o método Destroy():

Server/Index.lua
meu_caractere:Destruir()
info

Destroying an Entity will trigger the event Destroy and also will automatically detach all attached entities it had attached*.

*If you attached entities with auto_destroy_when_detached parameter, all attached entities will be destroyed as well 😉.

Static Classes

Aulas estáticas em nanos o mundo são Classes que você não pode gerar. Em vez disso, você pode usar métodos diretamente com ..

Por exemplo, se você quiser interagir com o Mundo (mover o sol, selecioná-lo chover, etc), você precisará da Classe Estática de:

Client/Index.lua
-- Faça com que 9:25 AM
World.SetTime(9, 25)
tip

Acesso a Classes Estáticas / Métodos Estáticos são feitos com ..

Utility Classes

Além de Aulas e Aulas Estáticas, temos as Classes de Utilidade! Essas são principalmente construções usadas na nanos API mundo como Vector, Rotator, Color, JSON e algumas outras.

tip

Todos as Classes Utilitárias são Código Aberto no https://github.com/nanos-world/nanos-world-lua-lib. Feel free to push merge requests and suggest changes!