Ok I'm no expert at bard songs... but it looks like your getting caught up in the mainloop
where you have
Code: Select all
Sub Main
/call sing1
:mainloop
/doevents
/goto :mainloop
this is telling MQ to call the sub sing1, do whats in there, then in the sing1 sub your telling to go back to :mainloop, do the event then go back to :mainloop, do the event, go back ....etc etc etc..
if you approach it like draekz did where each sub calls the next sub, sounds like it would work a lil easier. where sing1 does what it needs to do then calls sing2 and so on and so forth, this way it loops through all the sing subs before returning to :mainloop.
also I seems like it would be a good idea to include the /call sing1 inside the :mainloop label like
Code: Select all
Sub Main
:mainloop
/call sing1
/doevents
/goto :mainloop
or another appoach would be to call each sub out in the main and have each sub return when its done
Code: Select all
Sub Main
:mainloop
/call sing1
/delay 1
/call sing2
/delay 1
/call sing3
/doevents
/goto :mainloop
Sub sing1
/(do your song coding here)
/return
Sub sing2
/(song code here)
/return
etc,etc...
this would tell it to call the sub, in the sub do what you want with the song then return to main, then it calls the next song...etc etc etc.
again I not familiar with bard songs so If I'm wrong, please correct me.
Just a few ideas to try.