Hallo liebe LS Gemeinde,
vor ein paar Tagen bin ich auf folgendes Problem gestoßen.
Ich erstelle eine LUA Datei und binde diese in eine Map mittels modDesc.xml ein.
Dafür verwende ich innerhalb der xml den extraSourceFiles Tag:
Der Inhalt der LUA Datei ist lediglich ein Duplikat der bereits implementierten Klasse Rotator innerhalb der Rotator.lua, die bereits standartmäßig von GIANTS eingebunden wird.
Innerhalb der Datei wurde nur der Klassenname von Rotator in Test geändert.
Alles anzeigen
Die Datei wird auch geladen, da der Debug String von print(); ausgegeben wird.
Nun möchte ich im Editor ein Objekt erstellen. Ich wähle ein beliebiges Objekt aus, z.B. einen Baum der sich drehen soll.
Unter "User Attributes" füge ich einen Script callback unter "onCreate" mit dem Parameter "Test.onCreate" ein.
Allerdings passiert überhaupt nichts. Es wird zwar der print im Konstruktor (onCreate) aufgerufen, jedoch wird keine id übergeben, woraus ein Fehler resultiert, da er aus einem nicht vorhandenem Dummy Objekt mit der id "nil" ein Objekt erzeugen will.
Freundliche Grüße
Skript
vor ein paar Tagen bin ich auf folgendes Problem gestoßen.
Ich erstelle eine LUA Datei und binde diese in eine Map mittels modDesc.xml ein.
Dafür verwende ich innerhalb der xml den extraSourceFiles Tag:
Der Inhalt der LUA Datei ist lediglich ein Duplikat der bereits implementierten Klasse Rotator innerhalb der Rotator.lua, die bereits standartmäßig von GIANTS eingebunden wird.
Innerhalb der Datei wurde nur der Klassenname von Rotator in Test geändert.
Python-Quellcode
- print("LUA: Test geladen");
- Test = {}
- function Test:onCreate(id)
- print("LUA: created Test, id: ", id);
- g_currentMission:addUpdateable(Test:new(id));
- end;
- function Test:new(name)
- print("LUA: created Test, name: ", name);
- local self = {};
- setmetatable(self, Rotator_mt);
- self.axisTable = {0, 0, 0};
- self.me = name;
- self.speed = Utils.getNoNil(getUserAttribute(name, "speed"), 0.0012);
- local axis = Utils.getNoNil(getUserAttribute(name, "axis"), 3);
- self.axisTable[axis] = 1;
- return self;
- end;
- function Test:delete()
- end;
- function Test:update(dt)
- rotate(self.me, self.axisTable[1] * self.speed * dt, self.axisTable[2] * self.speed * dt, self.axisTable[3] * self.speed * dt);
- end;
Nun möchte ich im Editor ein Objekt erstellen. Ich wähle ein beliebiges Objekt aus, z.B. einen Baum der sich drehen soll.
Unter "User Attributes" füge ich einen Script callback unter "onCreate" mit dem Parameter "Test.onCreate" ein.
Allerdings passiert überhaupt nichts. Es wird zwar der print im Konstruktor (onCreate) aufgerufen, jedoch wird keine id übergeben, woraus ein Fehler resultiert, da er aus einem nicht vorhandenem Dummy Objekt mit der id "nil" ein Objekt erzeugen will.
Freundliche Grüße
Skript
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Skript ()