[GELÖST] LUA Returnvalues?

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: [GELÖST] LUA Returnvalues?

BeitragFr, Sep 01, 2017 1:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

für ein aktuelles Projekt ( Very Happy ) möchte ich gerne wieder LUA nutzen. Jetzt klappt alles auch soweit gut, bis zu dem Punkt, wo ich die Returnvalue einer Lua-Funktion abrufen möchte...
Ich habe zur Zeit folgendes Konstrukt
LUACode: [AUSKLAPPEN]
function passed()
   return true
end


Das Gegenstück dazu in BlitzMax: [AUSKLAPPEN]
Method LevelPassed:Byte()
Local obj:Object = Self.luaobj.Invoke("passed", Null)
End Method


Das obj innerhalb der LevelPassed-Methode ist nie Null. Ich kann es aber in nichts umwandeln.
Kann ich überhaupt den Return einer LUA-Funktion in BlitzMax abfragen?
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti
  • Zuletzt bearbeitet von CO2 am Fr, Sep 01, 2017 14:03, insgesamt einmal bearbeitet

Lobby

BeitragFr, Sep 01, 2017 10:47
Antworten mit Zitat
Benutzer-Profile anzeigen
In was hast du es versucht umzuwandeln?

In diesem Worklogeintrag zeigt Xeres ein Beispiel, bei dem der Rückgabewert einer Funktion abgefragt wird.
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux
 

CO2

ehemals "SirMO"

BeitragFr, Sep 01, 2017 14:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Vielen Dank für die Antwort.

Ich habe es zunächst versucht, in einen String zu casten. Mit BlitzMax: [AUSKLAPPEN]
DebugLog(str <> Null)
habe ich dann geprüft, ob der String ungleich Null ist, was jedoch nie der Fall ist.

Ich habe sogar in meiner Verzweiflung den String anschließend in ein Byte umgewandelt, jedoch ging das natürlich auch schief.

EDIT: Offensichtlich können die Rückgabewerte true und false nicht in BlitzMax ausgewertet werden. Ich haben den LUA-Code deart umgeschrieben, dass er nun 1 oder 0 zurückgibt und siehe da: Es klappt... Seltsam...
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Lobby

BeitragFr, Sep 01, 2017 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Du könntest versuchen auf dem Object die Methode ToString() aufzurufen. Was Anderes macht brl.maxlua bei den anderen Datentypen auch nicht.

Die Methode TypeId() sollte dir sagen können, was für ein Objekt es sich handelt.
TheoTown - Eine Stadtaufbausimulation für Android, iOS, Windows, Mac OS und Linux

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group