two When passed a number, will delete the record for that _row_id.This example shows getting the row id from a table. three As above, but this example just passes in the row id directly.four Here, we will delete anything which matches the same kind of query as db:fetch uses- namely, anyone who is in the city of San Francisco.five And finally, we will delete the entire contents of the enemies table.ĭb:eq db:eq(field reference, value) Returns a database expression to test if the field in the sheet is equal to the value.db:exp db:exp(string) Returns the string as-is to the database. Use this function with caution, but it is very useful in some circumstances. If you're working on coding Mudlet itself, use this function to tell where the actual definition of a function is.One of the most common of such is incrementing an existing field in a db:set() operation, as so:ĭb : fetch ( mydb. 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. A good overview of tables is available on Lua's wiki in the TablesTutorial.
0 Comments
Leave a Reply. |