fivemx.com

FiveM Scripting lernen (LUA): Dein Einstieg in die Welt des Moddings

Hallo angehender Entwickler!

Hast du jemals davon geträumt, deine eigenen Spielmodifikationen in Grand Theft Auto V zu erstellen? Möchtest du einzigartige Spielerlebnisse schaffen und deine Ideen mit der Welt teilen? Dann bist du hier genau richtig! In dieser Anleitung zeige ich dir, wie du mit FiveM Scripting in Lua beginnst. Keine Sorge, ich führe dich Schritt für Schritt durch alles, was du wissen musst.

Was ist FiveM?

FiveM ist eine Modifikation für GTA V, die es Spielern ermöglicht, auf benutzerdefinierten Multiplayer-Servern zu spielen. Mit FiveM kannst du eigene Server erstellen, die ganz nach deinen Vorstellungen gestaltet sind. Das Beste daran? Du kannst mithilfe von Lua-Skripten das Gameplay anpassen, neue Features hinzufügen und das Spielerlebnis komplett verändern.


Warum Lua?

Lua ist eine leichte, einfach zu erlernende Skriptsprache. Sie ist perfekt für Einsteiger und wird oft in Spielen verwendet, um Modifikationen und Erweiterungen zu erstellen. Mit Lua kannst du schnell Ergebnisse sehen und musst dich nicht mit komplexer Syntax herumschlagen.

Voraussetzungen

Bevor wir beginnen, solltest du sicherstellen, dass du Folgendes hast:

  • Grundlegende Programmierkenntnisse: Wenn du schon einmal programmiert hast, wird dir der Einstieg leichter fallen.
  • GTA V installiert auf deinem PC.
  • FiveM Client installiert.
  • Einen einfachen Texteditor (z.B. Notepad++, Visual Studio Code).

Dein erstes Skript: „Hello World“

Beginnen wir mit etwas Einfachem. Wir erstellen ein Skript, das eine Nachricht im Spiel anzeigt.

Schritt 1: Verzeichnisstruktur erstellen

  1. Gehe in dein FiveM-Server-Verzeichnis.
  2. Erstelle einen neuen Ordner namens hello-world.
  3. In diesem Ordner erstellst du eine Datei namens __resource.lua oder fxmanifest.lua (je nach FiveM-Version).

Schritt 2: fxmanifest.lua erstellen

Für neuere Versionen von FiveM nutzen wir fxmanifest.lua.

-- fxmanifest.lua
fx_version 'cerulean'
game 'gta5'

client_scripts {
'client.lua'
}

Schritt 3: client.lua erstellen

Erstelle eine Datei namens client.lua und füge folgenden Code hinzu:

-- client.lua
Citizen.CreateThread(function()
while true do
Citizen.Wait(0)
DrawTextOnScreen("Hallo, FiveM-Welt!", 0.5, 0.5)
end
end)

function DrawTextOnScreen(text, x, y)
SetTextFont(4)
SetTextScale(0.0, 0.5)
SetTextColour(255, 255, 255, 255)
SetTextCentre(true)
SetTextEntry("STRING")
AddTextComponentString(text)
DrawText(x, y)
end

Schritt 4: Skript aktivieren

  1. Öffne die server.cfg deines FiveM-Servers.
  2. Füge start hello-world hinzu.

Schritt 5: Server starten und testen

Starte deinen FiveM-Server und verbinde dich. Du solltest nun in der Mitte des Bildschirms die Nachricht „Hallo, FiveM-Welt!“ sehen.

Erklärung des Codes

Der Code mag auf den ersten Blick etwas einschüchternd wirken, aber keine Sorge, ich erkläre ihn dir.

  • Citizen.CreateThread: Erstellt einen neuen Thread, der parallel läuft.
  • while true do: Eine Endlosschleife, die ständig läuft.
  • Citizen.Wait(0): Wartet 0 Millisekunden, um die Schleife nicht zu blockieren.
  • DrawTextOnScreen: Eine Funktion, die wir definiert haben, um Text auf dem Bildschirm anzuzeigen.

Client vs. Server Skripte

In FiveM gibt es zwei Arten von Skripten:

  • Client-Skripte: Laufen auf dem Computer des Spielers.
  • Server-Skripte: Laufen auf dem Server.

Je nachdem, was du erreichen möchtest, musst du dein Skript entsprechend platzieren.

Beispiel: Eine Nachricht an alle Spieler senden (Server-Skript)

Erstelle eine Datei namens server.lua und füge sie in deinem fxmanifest.lua hinzu:

fx_version 'cerulean'
game 'gta5'

client_scripts {
'client.lua'
}

server_scripts {
'server.lua'
}
-- server.lua
AddEventHandler('playerConnecting', function(name, setKickReason, deferrals)
print(name .. " verbindet sich mit dem Server.")
TriggerClientEvent('chat:addMessage', -1, {
args = { "SERVER", name .. " hat den Server betreten." }
})
end)

Jetzt wird jedes Mal, wenn ein Spieler dem Server beitritt, eine Nachricht an alle Spieler gesendet.

Events und Natives

Was sind Events?

Events sind Aktionen oder Ereignisse, die im Spiel stattfinden, wie z.B. wenn ein Spieler beitritt, eine Taste drückt oder ein Fahrzeug betritt. Du kannst auf diese Events reagieren und dein Skript entsprechend handeln lassen.

Was sind Natives?

Natives sind Funktionen, die von FiveM bereitgestellt werden, um mit dem Spiel zu interagieren. Sie ermöglichen dir, Dinge wie Spielerpositionen, Fahrzeugdaten und mehr zu manipulieren.

Beispiel: Spieler teleportieren

-- client.lua
RegisterCommand('teleport', function(source, args)
local x = tonumber(args[1])
local y = tonumber(args[2])
local z = tonumber(args[3])
if x and y and z then
SetEntityCoords(PlayerPedId(), x, y, z)
else
print("Bitte geben Sie gültige Koordinaten ein.")
end
end)

Mit diesem Befehl /teleport x y z kannst du deinen Spieler an beliebige Koordinaten teleportieren.

Ressourcen erstellen

In FiveM werden Skripte als Ressourcen bezeichnet. Eine Ressource kann aus mehreren Skripten, Dateien und Assets bestehen.

Beispiel: Fahrzeug-Spawner

Erstellen wir ein einfaches Skript, um ein Fahrzeug zu spawnen.

-- client.lua
RegisterCommand('spawncar', function(source, args)
local vehicleName = args[1] or 'adder'

RequestModel(vehicleName)

while not HasModelLoaded(vehicleName) do
Citizen.Wait(0)
end

local playerPed = PlayerPedId()
local pos = GetEntityCoords(playerPed)

local vehicle = CreateVehicle(vehicleName, pos.x, pos.y, pos.z, GetEntityHeading(playerPed), true, false)
SetPedIntoVehicle(playerPed, vehicle, -1)
end)

Jetzt kannst du mit /spawncar [Fahrzeugname] ein Fahrzeug spawnen.

Tipps zum Weitermachen

  • Experimentiere: Ändere Werte, füge Funktionen hinzu und sieh, was passiert.
  • Dokumentation nutzen: Die FiveM-Dokumentation und die Native Reference sind deine besten Freunde.
  • Community beitreten: Trete FiveM-Foren und Discord-Servern bei, um Hilfe und Inspiration zu erhalten.

Schlusswort

Herzlichen Glückwunsch! Du hast deinen ersten Schritt in die Welt des FiveM-Scriptings gemacht. Denke daran, dass jeder Experte einmal ein Anfänger war. Mit Geduld und Übung wirst du schon bald komplexe Skripte erstellen können, die das Spielerlebnis für dich und andere bereichern.

Also, worauf wartest du noch? Tauche ein, experimentiere und hab Spaß beim Coden!

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Warenkorb
de_DEGerman