@Red Eye
Quote: "@TZK: Are you filling the entityelement table by hand assigning each element with a value returned by a function which does a dbcall? Or are you directly passing the whole structure into lua. Script looks good!"
I'm filling it by hand, is there a way to do it without setting each element value by hand with a built-in function?
I'm currently doing it similar to this:
During initialization:
lua new table "entityelement"
lua new table "entityelement.darkai"
lua new table "entityelement.eleprof"
lua new table "entityelement.mover"
lua new table "entityelement.ai"
lua new table "entityelement.spawn"
lua new table "entityelement.force"
lua new table "entityelement.frozen"
Setting a couple of values:
function setElementInfo(Element as Integer)
lua set int "entityelement.enterwater", entityelement(Element).enterwater
lua set int "entityelement.isflak", entityelement(Element).isflak
// darkai
lua set int "entityelement.curvcmx", entityelement(Element).curvcmx
lua set int "entityelement.curvcmy", entityelement(Element).curvcmy
lua set int "entityelement.curvcmz", entityelement(Element).curvcmz
lua set int "entityelement.spine", entityelement(Element).spine
lua set float "entityelement.spiner", entityelement(Element).spiner
lua set float "entityelement.spineraim", entityelement(Element).spineraim
lua set int "entityelement.eyeoffset", entityelement(Element).eyeoffset
lua set int "entityelement.aimoved", entityelement(Element).aimoved
lua set float "entityelement.aimovex", entityelement(Element).aimovex
lua set float "entityelement.aimovez", entityelement(Element).aimovez
lua set int "entityelement.ttarget", entityelement(Element).ttarget
lua set int "entityelement.etimer", entityelement(Element).etimer
lua set int "entityelement.etimerpaused", entityelement(Element).etimerpaused
lua set int "entityelement.lastdamagetimer", entityelement(Element).lastdamagetimer
lua set int "entityelement.lastdamagepaused", entityelement(Element).lastdamagepaused
lua set int "entityelement.editorfixed", entityelement(Element).editorfixed
lua set int "entityelement.servercontrolled", entityelement(Element).servercontrolled
lua set int "entityelement.fakeplrindex", entityelement(Element).fakeplrindex
lua set int "entityelement.active", entityelement(Element).active
lua set int "entityelement.dormant", entityelement(Element).dormant
// eleprof
// mover
// ai
// spawn
// force
lua set int "entityelement.maintype", entityelement(Element).maintype
lua set int "entityelement.bankindex", entityelement(Element).bankindex
lua set int "entityelement.profileobj", entityelement(Element).profileobj
lua set int "entityelement.staticflag", entityelement(Element).staticflag
lua set int "entityelement.obj", entityelement(Element).obj
lua set int "entityelement.attachmentobj", entityelement(Element).attachmentobj
lua set int "entityelement.attachmentbaseobj", entityelement(Element).attachmentbaseobj
lua set int "entityelement.attachmentweapontype", entityelement(Element).attachmentweapontype
lua set int "entityelement.attachmentobjfirespotlimb", entityelement(Element).attachmentobjfirespotlimb
lua set int "entityelement.attachmentblobobj", entityelement(Element).attachmentblobobj
lua set float "entityelement.x", entityelement(Element).x
lua set float "entityelement.y", entityelement(Element).y
lua set float "entityelement.z", entityelement(Element).z
lua set float "entityelement.rx", entityelement(Element).rx
lua set float "entityelement.ry", entityelement(Element).ry
lua set float "entityelement.rz", entityelement(Element).rz
lua set int "entityelement.norotate", entityelement(Element).norotate
lua set int "entityelement.nogravity", entityelement(Element).nogravity
lua set float "entityelement.dry", entityelement(Element).dry
lua set float "entityelement.floorposy", entityelement(Element).floorposy
lua set int "entityelement.colr", entityelement(Element).colr
lua set int "entityelement.colg", entityelement(Element).colg
lua set int "entityelement.colb", entityelement(Element).colb
lua set int "entityelement.limbslerp", entityelement(Element).limbslerp
lua set float "entityelement.logiccount", entityelement(Element).logiccount
lua set int "entityelement.logiccountburst", entityelement(Element).logiccountburst
`lua set dword "entityelement.logictimestamp", entityelement(Element).logictimestamp
lua set int "entityelement.priorityai", entityelement(Element).priorityai
lua set int "entityelement.priorityduration", entityelement(Element).priorityduration
lua set int "entityelement.raycastcount", entityelement(Element).raycastcount
lua set int "entityelement.raycastlaststate", entityelement(Element).raycastlaststate
lua set int "entityelement.nofloorlogic", entityelement(Element).nofloorlogic
lua set int "entityelement.crouchprofile", entityelement(Element).crouchprofile
lua set float "entityelement.plrdist", entityelement(Element).plrdist
lua set int "entityelement.decalindex", entityelement(Element).decalindex
lua set int "entityelement.decalmode", entityelement(Element).decalmode
lua set float "entityelement.decalloop", entityelement(Element).decalloop
lua set int "entityelement.decalslotused", entityelement(Element).decalslotused
lua set float "entityelement.decalsizex", entityelement(Element).decalsizex
lua set float "entityelement.decalsizey", entityelement(Element).decalsizey
lua set int "entityelement.animset", entityelement(Element).animset
lua set int "entityelement.animdir", entityelement(Element).animdir
lua set int "entityelement.animdo", entityelement(Element).animdo
lua set int "entityelement.animtime", entityelement(Element).animtime
lua set float "entityelement.animframe", entityelement(Element).animframe
lua set float "entityelement.animspeed", entityelement(Element).animspeed
lua set int "entityelement.animonce", entityelement(Element).animonce
lua set float "entityelement.destanimframe", entityelement(Element).destanimframe
lua set int "entityelement.animframeupdate", entityelement(Element).animframeupdate
lua set int "entityelement.spinrate", entityelement(Element).spinrate
lua set float "entityelement.spinvalue", entityelement(Element).spinvalue
lua set int "entityelement.floatrate", entityelement(Element).floatrate
lua set float "entityelement.floatvalue", entityelement(Element).floatvalue
lua set int "entityelement.possibletarget", entityelement(Element).possibletarget
lua set int "entityelement.actualtarget", entityelement(Element).actualtarget
lua set int "entityelement.realtarget", entityelement(Element).realtarget
endfunction
As you can see, the entityelement system is currently very incomplete. Which is why I'm using things like getEntityPosition and getEntityHealth to get many values.
@s4real
Just to clarify:
I'm not mixing fpi and lua
I probably need to edit the OP. For testing, since I haven't completely removed fpi yet, I used an fpi command to execute a sample lua file.
I'm not really sure about performance yet either, then again, the project isn't in the optimization stages yet, it's moreso in the "just get it to work" stage.
Quote: "100% agree but fpsc needs a big re-write for lua to work in my eyes."
You'd be surprised how little the main source has had to be edited so far.
-TZK