Skip to main content
Version: latest - a1.7.0 ⚖️

Classes Guide

Alles was Sie über Klassen wissen müssen

Alle Entitäten in nanos Welt werden durch eine Gruppe repräsentiert. 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). Auf dieser Seite werden wir mehr dazu erklären.

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:

-- Spawnen einer Entität mit einem Konstruktor
lokal my_entity = Entity()

-- Interagieren mit der Entität mit ihren Methoden
my_entity:MyFunction()
tip

Zugriff auf Entitäten / Spawned Objects Methoden sind mit : erstellt.

So funktioniert OOP! Sie erstellen Objekte und rufen Funktionen und Ereignisse auf diesem Objekt auf/ab. Im Gegensatz zu anderen Skriptspielen, die tonnenweise globale Funktionen und Ereignisse haben, um mit Entities zu interagieren, nanos world scripting ist ein moderner Ansatz bis modernes Programmieren.

Klassen Vererbung

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. It contains the most of methods which are shared through all Classes we have, and also Static Methods to get and retrieve entities directly.

Spawn-Entitäten

Spawnen von Entitäten in nanos Welt ist extrem einfach und unkompliziert, sagen wir, wir wollen einen Charakter spawnen:

Server/Index.lua
lokales my_character = Character()
tip

Jede Klasse wird ihren eigenen Constructor, Eigenschaften, Methoden und Ereignisse enthalten.

Überprüfen Sie alle Klassen, die nanos world in der Sidebar bietet Skriptreferenz -> Klassen Artikel.

info

Beachten Sie, dass einige Klassen nur im Server erzeugt werden können, andere können nur im Client erzeugt werden.

Zerstöre Entitäten

Alle Klassen (but Player) erlauben es dir, sie mit der Methode Destroy() zu zerstören:

Server/Index.lua
my_character:Destroy()
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

Statische Klassen in nanos Welt sind Klassen, die du nicht spawnen kannst. Stattdessen können Sie ihre Methoden direkt mit verwenden..

Wenn Sie zum Beispiel mit Welt (den Sonnenuntergang verschieben, Regen setzen usw.) interagieren wollen, benötigen Sie die Welt Statische Klasse:

Client/Index.lua
-- Macht es 9:25 Uhr
Welt.SetTime(9, 25)
tip

Der Zugriff auf Statische Klassen / Statische Methoden erfolgt mit ..

Utility Classes

Neben Kursen und Statikkursen haben wir die Utility Classes! Dies sind meist Strukturen, die in nanos world API wie Vector, Rotator, Color, JSON und einigen anderen verwendet werden.

tip

Alle Utility Classes sind Open Sourced unter https://github.com/nanos-world/nanos-world-lua-lib. Feel free to push merge requests and suggest changes!