i have a game with a mainloop - on each loop i call for every NPC in the game ->ProcessAI() to execute any actions.
This is a server so the call to ProcessAI is not executed on every frame like on a client game! Its also singlethreaded.
Now i wanted to extend the C++ codebase with lua using luabind (maybe, even with boost overhead). So i expose some functions of my NPC class to LUA.
I wanted to create actor scripts for example - boss battles which have more sophisticated behaviour - whenever in my c++ ProcessAI function an event happens - i would delegate this to the corresponding lua script for the specific NPC.
i imagined in my boss.lua script i would have something like this
NPC:say ("Some taunts...")
However - i have no idea how to do this - i gather ScheduleEvent should be some C++ function exported to Lua - but what would be the best approach to keep the object reference of the NPC (boss) with this and call a function in that script about 2 seconds later ?
Furthmore along with this delayed execution - i want that NPCs can interact with each other - my current idea is to have an actor behavior script for each special NPC.
Now what i imagined is to initiate a conversation between two NPCs e.g.
// check if NPC1 is close to NPC2
if NPC:DistanceToNpc("SomeGuy") < 10 then
// wait a moment now trigger NPC to reply
Basically - how do i call a function from lua scriptA which exists in lua scriptB which is the behavior script for NPC2.
What would be a good design?
MajinMLFMember Since 21 Nov 2011
Offline Last Active Jul 15 2012 06:21 AM
- Group Members
- Active Posts 5
- Profile Views 1,528
- Submitted Links 0
- Member Title Member
- Age Age Unknown
- Birthday Birthday Unknown