2/27/2023 0 Comments Mudlet lua![]() If you're working on coding Mudlet itself, use this function to tell where the actual definition of a function is. You can also use it to get more information on the Alias# / Trigger# objects you see in the error console: Lua brings a helpful debug.getinfo(function) function, which gets you some information about where a function comes from: whenever it's your own, or one defined by Mudlet (in C++ or Lua). Newer ones that do support them are completely fine, however!Ĭoroutines have many uses: finite state machines, running intensive tasks (yielding every once in a while so Mudlet isn't frozen), and so on. Older Mudlets that don't support coroutines might crash, which sucks. Note that if you'll be using coroutines as part of a package you'll give to others, remember about the if mudlet.supportscoroutines then return end bit. You can also install the demo as a package - paste this into Mudlet: You'll see that the send()'s are being sent one at a time, instead of all at once as they would have been without the yields. create a coroutine that'll be running our ritual function - or re-use the one we're already using if there is one ritualcoroutine = ritualcoroutine or coroutine.create ( ritual ) - run the coroutine until a coroutine.yield() and see - if there's any more code to run local moretocome = coroutine.resume ( ritualcoroutine ) - if there's no more code to run - remove the coroutine, - so next time you call the alias - a new one gets made if not moretocome then ritualcoroutine = nil end This is stored in multimatches as the value of key=1 in the sub-table matches which, in turn, is the value of key=1 of the table multimatches. The first trigger condition (=regex 1) got as the first full match "You have not completed any quests". You can now see what the table multimatches contains in this case. The function showMultimatches() prints out the content of the table multimatches. The table multimatches contains : - regex 1 captured : ( multimatches ) key = 1 value = You have not completed any quests key = 2 value = not key = 3 value = completed key = 4 value = any key = 5 value = quests regex 2 captured : ( multimatches ) key = 1 value = You are refreshed, hungry, very young and brave key = 2 value = refreshed key = 3 value = young key = 4 value = and key = 5 value = brave. You are refreshed, hungry, very young and brave. You have an almost non-existent ability for avoiding hits. The command "score" generates the following output on batMUD: In the case of a multiline trigger with these 2 Perl regex as conditions: The following example can be tested on the game : multimatches stores its matches by lines, inside each line are the relevant matches to it. Multimatches is the complement of matches when matching multi-line triggers. ![]() Nick Gammon has also written a nice overview on how to deal with Lua tables. Bear in mind the gauges and tabs you see are not part of the default client. It's forum has links to help pages for Mudlet and Lua and RegEx. Mudlet (is an open source mud client that works on PC and Mac that uses it. ![]() A good overview of tables is available on Lua's wiki in the TablesTutorial. Lua is used by many game engines such as World of Warcraft. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |