Noob-Frage zu Scriptfunktion

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

Firstdeathmaker

Betreff: Noob-Frage zu Scriptfunktion

BeitragSa, Aug 13, 2005 14:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum schreibt das Programm hier nicht zweimal den Inhalt von "Text" in die Konsole?

BlitzBasic: [AUSKLAPPEN]
Import Pub.LuaScript

Global LuaScr:ScriptEngine = New ScriptEngine


Function Debug(ls:Byte Ptr)
Local Text:String = LuaScr.CheckString(ls,1)
Print Text ' <------
Print Text ' <------ Müsste ja zweimal angezeigt werden...
End Function



LuaScr.AddFunction(Debug, \"Print\")


LuaScr.RunScriptFile(\"script1.txt\")

LuaScr.ShutDown()


Inhalt der Scriptdatei:
Zitat:
print("Hallo")
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Suco-X

Betreff: ....

BeitragSa, Aug 13, 2005 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
Lua ist Case sensitive (Groß/Kleinschreibung beachten), daran liegt es wohl.
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Firstdeathmaker

BeitragSa, Aug 13, 2005 14:41
Antworten mit Zitat
Benutzer-Profile anzeigen
? Einmal schreibt das Programm ja den gewüschten Text ins Konsolenfenster, nur eben nicht zweimal wie es eigentlich soll...
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Suco-X

Betreff: ....

BeitragSa, Aug 13, 2005 14:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, Sorry, zu schnell gelesen.
Also er ruft komischerweise die BMax Print Funktion auf, musst deine Funktion wohl umbennen. z.b.

Code: [AUSKLAPPEN]

Import Pub.LuaScript

Global LuaScr:ScriptEngine = New ScriptEngine


Function Debug(ls:Byte Ptr)
        Local Text:String = LuaScr.CheckString(ls,1)
      
        Print Text ' <------
        Print Text ' <------ Müsste ja zweimal angezeigt werden...
End Function



LuaScr.AddFunction(Debug, "print2")


LuaScr.RunScriptFile("script.txt")

LuaScr.ShutDown()



Und Script

Code: [AUSKLAPPEN]


print2("hallo")


EDIT:

Aber auch nur wenn du "Print" groß schreibst. Wenn du bei AddFunction wie gesagt "print" nimmst, führt er die richtige Funktion aus. Bin auch etwas verwirrt Wink

Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Firstdeathmaker

BeitragSa, Aug 13, 2005 15:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, jetzt gehts garnicht mehr. Es kommt immer ein "Unhandled Exception: Unhandled Memory Exception Error"
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Suco-X

Betreff: .....

BeitragSa, Aug 13, 2005 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Der kommt bei mir auch, wenn ich groß und Kleinschreibung nicht beachte....
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Firstdeathmaker

BeitragSa, Aug 13, 2005 21:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ok, ich hab jetzt die Groß- und Kleinschreibung 10 mal kontrolliert, konnte aber immer noch keinen Fehler entdecken. Ich paste den Code im jetzigen Zustand mal genauso hier rein, genauso das Script:

Code: [AUSKLAPPEN]
Import Pub.LuaScript

Global LuaScr:ScriptEngine = New ScriptEngine


Function Owntext(ls:Byte Ptr)
        Local Text:String = LuaScr.CheckString(ls,1)
     
        Print Text ' <------
        Print Text ' <------ Müsste ja zweimal angezeigt werden...
End Function



LuaScr.AddFunction(Owntext, "Owntext")


LuaScr.RunScriptFile("script1.txt")

LuaScr.ShutDown()


Script:
Zitat:
Owntext(1)
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Suco-X

Betreff: .....

BeitragSa, Aug 13, 2005 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi
Bei mir funktioniert das Script + Code (Aus deinem Post) ohne Fehler (Debug an/aus). Vielleicht haben wir ja unterschiedliche Versionen von Bmax/LUA Modul, bist du auf dem neusten Stand?
Mfg Suco
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Firstdeathmaker

BeitragSa, Aug 13, 2005 23:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Eigentlich schon, hab es erst 3 Tage, und zwischendrin auch nochmal die automatische Updatefunktion für Module aktiviert.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

bruZard

BeitragSo, Aug 14, 2005 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum sollte der Text zweimal angezeigt werden? Die Funktion wird von LUA aus doch nur einmal aufgerufen.

[EDIT]
Axo, das meinst Du ... sorry, muss ich mal testen.

[/EDIT]
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

bruZard

BeitragSo, Aug 14, 2005 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Fehler gefunden: Die Funktion die Du an LUA übergibst (in Deinem Fall "Owntext") muss vom Typ Integer sein.

Code: [AUSKLAPPEN]

Function Owntext:Int(ls:byte ptr)
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Firstdeathmaker

BeitragSo, Aug 14, 2005 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Funktioniert immer noch nicht, immer noch der gleiche Fehler. Hab meine Funktion so wie du gesagt hast, als Integer deklariert, aber es ändert sich nix:

Code: [AUSKLAPPEN]
Import Pub.LuaScript

Global LuaScr:ScriptEngine = New ScriptEngine


Function Owntext:Int(ls:Byte Ptr)
        Local Text:String = LuaScr.CheckString(ls,1)
     
        Print Text ' <------
        Print Text ' <------ Müsste ja zweimal angezeigt werden...
End Function



LuaScr.AddFunction(Owntext, "Owntext")


LuaScr.RunScriptFile("script1.txt")

LuaScr.ShutDown()
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

bruZard

BeitragSo, Aug 14, 2005 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Dann liegt der Fehler woanders, bei mir funktioniert es so.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Firstdeathmaker

BeitragSo, Aug 14, 2005 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weis jetzt woran es lag:

Man darf als Scriptdateiendung nicht .txt nehmen, sondern muss es als .lua benennen damit es geöffnet werden kann.
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

bruZard

BeitragMo, Aug 15, 2005 7:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Nö, ich kann meine Script Files nennen wie ich will ... selbst eine script.bmp schluckt LUA ohne zu meckern.
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32

User posted image

Firstdeathmaker

BeitragMo, Aug 15, 2005 13:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir nicht. Ich muss sie so nennen, sonst kommt ein Fehler. Echt seltsam...
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon
Gewinner des BCC #57 User posted image

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group