call a LUA function with parametes from BMX in lug
BlitzMax Forums/BlitzMax Programming/call a LUA function with parametes from BMX in lug
| ||
| Hey, a small question in here about lugi and lua. Now with an extra topic, sorry =) i thought it where not good to make an extra topic. I was able to become lugi and lua running and i can execute scipts now. But when i have the following lua src:
function startevent(event)
print ("starting event")
event:say()
end
how can i then run this code from bmx out and pass over a event type, i tried it with this: (glue code and stuff is all generated)
type event {expose}
field text:string
method say()
print ("event says:"+self.text)
end method
end type
type luafuncs {expose static noclass}
method getnextevent()
local ev:event = new event
ev.text = " its me!"
return ev
end method
end type
'call the lua func "startevent"
local str = "startevent(getnextevent())"
luaL_dostring(luastate,str)
then the lua function "startevent" is running fine, but event is allways nil, so its not passed over correctly :( what am i making wrong here? or is there another easyer way to call functions in lua and give them values/objects withound that trick with the getnextevent() call from lua? Last edited 2012 |
| ||
| . Last edited 2012 |
| ||
| . Last edited 2012 |
| ||
| it works! Thank you very much, and thank you for lugi at all. well another related question, is this: local str = "startevent(getnextevent())" luaL_dostring(luastate,str) really the best way to solve this? |
| ||
| . Last edited 2012 |
| ||
so in my case where the function i want to run is "startevent" i should have do it this way:lua_getglobal(luastate,"startevent") 'push the function lua_pushbmaxobject(ev) 'push the event object to the stack lua_pcall(luastate,1,0,0)' run it with 1 argument, 0 returns lua_pop(luastate,1) 'pop back the func ? Edit, i tried it now and it works =) well is the lua_pop at the end right? should i not pop 2? since i pushed the object and the function? Last edited 2012 Last edited 2012 |
| ||
| . Last edited 2012 |
| ||
| . Last edited 2012 |