PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SEnt: Globale Methode



makkurona
15.11.2008, 14:36
Tag auch.

Ich suche schon seit längerem eine Möglichkeit SEnts mit eigenen Funktionen auszustatten, die ich dann auch simpel aufrufen kann.
Ergo, sollte man aus anderen Entities beispielsweise die zuvor definierte Funktion DoSomething() aufrufen können.

Quasi etwas wie ( Es ist ein Beispiel. An sich habe ich etwas anderes vor. ;D )

function ENT:think()
// Hier wird einfach irgendeine Variable errechnet, nennen wir sie i.
// Über ein Traceline holen wir uns jetzt ein Entity und nennen es ent.
ent:DoSomething(i)
end



Nunja, geht so etwas? Ich fand bisher keine Lösung...
Danke im Voraus!

monky2k6
15.11.2008, 14:40
Klar geht sowas! Schreibst einfach die Funktion rein. Z.B.:


function ENT:think()
// Es wird nun ein Entity ermittelt und in die Variable "ent1" gespeichert
ENT:DoSomething(ent1)
end

function ENT:DoSomething(ent)
//hier wird nun was mit dem "ent" gemacht, ent ist der wert der beim aufrufen der Funktion übergeben worden ist,
//also was mit "ent1" übergeben worden ist, wird hier aufgerufen!
end

makkurona
15.11.2008, 14:58
Ich werde es mal testen...
Und mich tierisch aufregen, wenn es tatsächlich so einfach sein sollte... >_<

Edit: Es funktioniert... >_<
War ja auch zu einfach... ^^"

Pac_187
15.11.2008, 15:37
Du kannst diese Funktionen auch in separate Lua-Datein packen
um deinen Code z.B. Übersichtlich zu halten, sollt er zu lang sein
oder um einfach alles ein wenig zu trennen.



Z.B. heißt deine Datei mit der Funktion dann:

meinefunktionen.lua

Deine Hauptdatei heißt z.B.

meinhauptscript.lua

im "meinhauptscript.lua" schreibst du einfach ganz oben rein:


include( "meinefunktionen.lua" )


somit wird die "meinefunktionen.lua" Datei automatisch in die "meinehauptfunktionen.lua" Datei eingebunden.