I had considered suggesting paths a while back, but I decided that it would be easy enough to write my own in lua. The rough plan I had for it was to capture the directions to a numbered list. The reason being how simple it would be to duplicate the reversing of the path, and also how easy to duplicate slow walking.
The use of #SLOW .pathname with 0 timeout on slow-walking is the key to botting tasks like harvesting areas or even clearing out the locusts from Antioch's sewers. For Heiko: In zmud terms, slowwalking is when the path sends each direction on at a time, confirmed and advanced in script with #OK (some other commands exist as well).
In other words, sending all the directions at once is only a small part of the pathing system (and since many muds limit the number of moves you can make per second) its often not even a useful feature. Placing directions into a numbered list makes it pretty easy for the average user to manipulate and use the paths however they want. IMO all that is needed is a "toolbox" package with some functions written in lua to prevent every user from reinventing the wheel. I suppose they could be added to the general library of functions, but I do suggest considering the use of numbers lists rather than storing the directions in a string. That way it is easy for people to use them in strange and different ways.
Last requests before feature freeze
-
- Posts: 14
- Joined: Sun May 31, 2009 7:40 am
Re: Last requests before feature freeze
Caled, good call. I completely forgot about path slow-walking as it related to the mapper.
I certainly wasn't suggesting paths be utilized by the system as strings... just instantiated using strings.
p = path.new('s2w3e') => Path object with attribute: {'s', 'w', 'w', 'e', 'e', 'e'}
Then you get all kinds of hotness...
p.reverse()
p.nth(3)
p.last
And Path should return an iterator, too. (not sure if this can be done with "interfaces" + the for loop or what)
I'm afraid I'm terribly new to Lua, so pardon me if I screw up syntax/idioms.
I certainly wasn't suggesting paths be utilized by the system as strings... just instantiated using strings.
p = path.new('s2w3e') => Path object with attribute: {'s', 'w', 'w', 'e', 'e', 'e'}
Then you get all kinds of hotness...
p.reverse()
p.nth(3)
p.last
And Path should return an iterator, too. (not sure if this can be done with "interfaces" + the for loop or what)
I'm afraid I'm terribly new to Lua, so pardon me if I screw up syntax/idioms.
Re: Last requests before feature freeze
Hello Heiko,
as we've already talked about earlier, I - and perhaps others - would like to get a well working Copy feature, when timestamps are enabled:
as we've already talked about earlier, I - and perhaps others - would like to get a well working Copy feature, when timestamps are enabled:
Thanks for your efforts!timestamps on, mark one line: "EricB idles: real life intrusion".. copy, paste --> "s: real life intrusion"
-
- Posts: 14
- Joined: Sun May 31, 2009 7:40 am
Re: Last requests before feature freeze
Would it be possible to get PCRE as part of the global API?
Like mushclient? http://www.mushclient.com/scripts/doc.p ... al=lua_rex
Like mushclient? http://www.mushclient.com/scripts/doc.p ... al=lua_rex
Re: Last requests before feature freeze
This is already available as well as a myriad of other Lua modules like SQL database support etc. that can be used by users who want this kind of functionality.
To load a Lua module, you simply have to load it via "require" in an init script (script item).
Regex libs:
# [lrexlib] (5.1) - a POSIX and Perl (PCRE) regular expression library for Lua.
# [LPeg] (5.1) - a New Pattern-Matching Library for Lua. See also LpegRecipes.
Here is a list of available modules: http://lua-users.org/wiki/LibrariesAndBindings
To load a Lua module, you simply have to load it via "require" in an init script (script item).
Regex libs:
# [lrexlib] (5.1) - a POSIX and Perl (PCRE) regular expression library for Lua.
# [LPeg] (5.1) - a New Pattern-Matching Library for Lua. See also LpegRecipes.
Here is a list of available modules: http://lua-users.org/wiki/LibrariesAndBindings
-
- Posts: 14
- Joined: Sun May 31, 2009 7:40 am
Re: Last requests before feature freeze
Heiko, absolutely true. As a matter of fact, I built lrexlib yesterday. It was a bear, because there were some undocumented problems I encountered (maybe the way MacPorts installs luarocks borked something... I dunno). The whole time, I kept thinking, "Man, why isn't regexps packaged with Mudlet?" The reason I made the request is if I build a Lua "plugin" that requires regexps, I'd have to ask every interested party to build the dependency*. Some people don't have that experience.
(*Actually, I just remembered Windows has that nice Lua installer with tons of packages pre-built. OS X has nothing of the sort. Bah.)
I can see your point of view, definitely. Especially when most of your user-base is probably Windows with the packages already installed.
(*Actually, I just remembered Windows has that nice Lua installer with tons of packages pre-built. OS X has nothing of the sort. Bah.)
I can see your point of view, definitely. Especially when most of your user-base is probably Windows with the packages already installed.
Re: Last requests before feature freeze
That is true. We should discuss what additional Lua packages we should include. PCRE or LPeg? Maybe even SQLLite. Lua Rocks didn't work for Mac OSX?
Re: Last requests before feature freeze
Yeah, I agree there are tons of Lua-extending modules available. We could ship some, but... Lua Rocks also provides functionality for installing them. Shipping Lua Rocks with Mudlet would be an even better solution.
Requires some discussions on this, though - It's a big thing.
Requires some discussions on this, though - It's a big thing.
-
- Posts: 14
- Joined: Sun May 31, 2009 7:40 am
Re: Last requests before feature freeze
Lua Rocks did (eventually) work, but it didn't "just work".
In order to install lrexlib, I had to do: luarocks install lrexlib-pcre PCRE_INCDIR=/opt/local/include PCRE_LIBDIR=/opt/local/lib
Prior to setting PCRE_INCDIR and PCRE_LIBDIR, the error I was getting was... Error: Could not find expected file pcre.h for PCRE -- you may have to install PCRE in your system and/or set the PCRE_DIR variable
I tried export PCRE_DIR=..., but that didn't work. Research eventually revealed it is a Luarocks variable, not an environment variable. So, as suggested in an older message on lua-users, I tried: luarocks install lrexlib-pcre PCRE_DIR=/opt/local/include
Still no dice. Finally, I thought to open up the lrexlib rockspec, saw the PCRE_INCDIR and PCRE_LIBDIR variables, tried them out, and lucky for me, my guess was on the money. All in all it was a pretty annoying process.
Oh, another thing. Distributing Mudlet with a set of modules will help keep people from having to modify the package.path and package.cpath variables. That would certainly encourage plug-in sharing, for sure.
In order to install lrexlib, I had to do: luarocks install lrexlib-pcre PCRE_INCDIR=/opt/local/include PCRE_LIBDIR=/opt/local/lib
Prior to setting PCRE_INCDIR and PCRE_LIBDIR, the error I was getting was... Error: Could not find expected file pcre.h for PCRE -- you may have to install PCRE in your system and/or set the PCRE_DIR variable
I tried export PCRE_DIR=..., but that didn't work. Research eventually revealed it is a Luarocks variable, not an environment variable. So, as suggested in an older message on lua-users, I tried: luarocks install lrexlib-pcre PCRE_DIR=/opt/local/include
Still no dice. Finally, I thought to open up the lrexlib rockspec, saw the PCRE_INCDIR and PCRE_LIBDIR variables, tried them out, and lucky for me, my guess was on the money. All in all it was a pretty annoying process.
Oh, another thing. Distributing Mudlet with a set of modules will help keep people from having to modify the package.path and package.cpath variables. That would certainly encourage plug-in sharing, for sure.
-
- Posts: 14
- Joined: Sun May 31, 2009 7:40 am
Re: Last requests before feature freeze
SQLite would definitely be nice. I also ran into stdlib, which provides a whole host of awesomeness.Heiko wrote:That is true. We should discuss what additional Lua packages we should include. PCRE or LPeg? Maybe even SQLLite.