PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterschiede von LUA zu LUA



Zamy
01.01.2010, 04:11
Der Titel mag für euch so komisch klingen wie es für mich folgendes tut:
In Operation Flashpoint: Dragon Rising, welches auch mit LUA gescriptet wird, konnte man mit diesen (siehe unten) Funktionen und Befehlen einfach Missionen erstellen. Nun dachte ich mir es sei mit LUA hier in Garrysmod gleich, aber wenn ich mir mal den "Base" Gamemode anschaue ist ja alles in einzelne .lua Dateien aufgeteilt. Gibt es hier also nicht die Möglichkeit alles in einer Datei wie man möchte zu ordnen? Also dass ich selber bestimme "am Anfang der .lua Datei habe ich alle meine befehle (zb /help), weitere unten ein paar Abfragen und ..."?

Trotz des Einsteiger Tutorials, welches oben angepinnt/sticky ist, verstehe ich nicht in welche .lua Datei nun die Befehle (Beispiel: /me Code-Snippet hier aus dem Forum) müssen, oder die Abfragen was passieren soll wenn der Spieler in ein Fahrzeug einsteigt.


function onMissionStart()
completed =0;
end

function onObjectiveCompleted(objectiveName)
completed = completed + 1
if completed >= 3 then
OFP:displaySystemMessage("your message here");
end
end


Vermutlich bekomme ich gleich ein "Lies dir Tutorials durch du Noob" an den Kopf geklatscht, aber ich bitte euch das nicht zu tun da ich eigentlich nicht ein volleinsteiger in LUA bin. Bloß die eine oder andere Einstiegsschwierigkeit ob OFP:DR zu Gmod LUA habe ich. ;)

A.I.
01.01.2010, 04:17
http://wiki.garrysmod.com/?title=Lua

->http://wiki.garrysmod.com/?title=Internal_gamemode_workings

Zamy
01.01.2010, 05:02
http://wiki.garrysmod.com/?title=Lua

->http://wiki.garrysmod.com/?title=Internal_gamemode_workings

Fein, das sagt mir zwar wie Gmod wohl den Gamemode lädt/startet, aber in keinster Weise zeigt mir das annährend wo den nun beispielsweise Befehle reinkommen, oder ob ich da .lua files anlegen darf wie ich gerade lustig bin. :-?

WeltEnSTurm
01.01.2010, 10:56
Clientside sachen kommen in die cl_init.lua, serverside in die init.lua, sachen die du auf beiden seiten brauchst in die shared.lua.
Wenn du ne neue datei machst, musst du in cl_ oder init include(filename) machen damit sie geladen wird.

Zamy
01.01.2010, 14:12
Clientside sachen kommen in die cl_init.lua, serverside in die init.lua, sachen die du auf beiden seiten brauchst in die shared.lua.
Wenn du ne neue datei machst, musst du in cl_ oder init include(filename) machen damit sie geladen wird.

Das heißt ich kann eine .lua Datei mit dem namen "befehle.lua" erstellen und diese einfach in init.lua oben mit dem von dir gezeigten befehl vermerken?

include( 'befehle.lua' )

Scarecrow
02.01.2010, 23:17
Aaaaaaaaaaaaalso:

In Garry's Mod haben die Luascripts nicht, wie in OFP, nur die Aufgabe, ein paar Kleinigkeiten für die Mission zu bestimmen (Trigger und sowas), sondern sind nahezu für das gesamte Gameplay und sonstige Funktionen zuständig (seid V10).

Daher werden die ganzen Scripts stark aufgeteilt. Es gibt also Bereiche für Waffen, Gegenstände (wie z.B. Stargates), Tools (z.B. um Gegenstände aneinander zu "schweißen"), Gegner, Spielabläufe (Events und deren Handler bzw. hier auch Hooks genannt) usw. Diese werden im objektorientierten Stil dann ins Game geladen, ausgeführt und das Endprodukt ist dann das, was im Spiel zu sehen ist.

Grundsätzlich macht es aber keinen Unterschied, ob alles in einer Datei liegt oder aufgeteilt in mehrere .lua Files gepackt wird (das dient wohl eher der Übersichtlichkeit). Von daher sollte es am Anfang, vorallem zu Testzwecken, nicht an der Komplexität scheitern. Heißt: Einfach eine .lua Datei schreiben und in den lua/autorun - Ordner packen!

Jedenfalls gibts es aber auch hier wieder 2 Kategorien: Serverside und Clientside. Während die Serversachen für alle geregelten Spielabläufe sorgen, befinden sich in den Clientsachen alljene, die für Effekte wie Explosionen (das, was man davon sieht) oder Schriftzüge stehen. Grundsätzlich sollten spieltechnisch wichtige Abläufe immer auf dem Server ausgeführt werden. Alles, was mit Grafik zu tun hat, dann wieder auf dem Client.

Was Weltensturm meint ist nicht ganz richtig. Da in der Grundstruktur der lua/autorun Ordner einfach alles ausführt, was sich darin befindet, können die Dateien auch monkey.lua oder wie auch immer heissen.
Jedoch wird es eine Rolle spielen, sobald du dich an die vorhin erwähnten kategorisierten Objekte wie "Scripted Entities oder auch Weapons" heranwagst bzw. deinen eigenen Gamemode machst.

Für den Anfang solltest du aber erst einmal ein paar imperative Scripts machen und diese automatisch ausführen lassen, um zu sehen, dass und wie überhaupt was funktioniert.

WeltEnSTurm
03.01.2010, 00:05
scarecrow, es geht nicht um den autorun sondern den ordner des gamemodes, also stimmt was ich gesagt hab schon

Scarecrow
03.01.2010, 15:38
Ja kann ja keiner Riechen, ob der jetzt direkt mit Gamemodes anfängt :lol:

Ich hab ja nicht gesagt, dass das, was du gesagt hast, falsch ist. Ich dachte nur, dass er grundlegende Scripts probieren will - und da braucht er Gamemodes ja überhaupt nicht.