Jump to content
Eternal Lands Official Forums
Ghrae

Bot Inventory

Recommended Posts

We all know what is going on in the General Chat forums about limiting bot announcements on market and the *possible* creation of a bot channel. And it's pretty obvious how the majority of bot owners feel about such ideas.

 

So I wanted to get some opinions on another possible player resource.

 

The idea would be a website. It would allow players to either click on a bot and see what it is buying and selling. Or pick an item to see which bots are buying/selling that item.

 

The site itself would NOT include costs. It would include bot name, item and quantity.

 

The site would have to find a way to work with the bots to periodically check what items they had and how many they had of that item and update the page.

 

Again, this is just an idea. Something I would even like to do, if people would find benefit in it. But obviously it would require working with bot owners to maintain it, so opinions and suggestions are welcome

Share this post


Link to post
Share on other sites
The site would have to find a way to work with the bots to periodically check what items they had and how many they had of that item and update the page.
actually, if anything, I think it should be the other way around... unless you're going to work through EL, there's a fair chance you won't be able to contact the bots (firewalls, routers, etc), but the bots can probably make connections out... whether it's a web 'form' the bots fill out, or a FTP transfer of a items list, or something else, it probably wouldn't be any harder to make the code for outbound than it would be to respond to polling

ed: I was doing something similar to this for my own sales for a while... perl script that compared #sto in chat_log.txt against a price list, then FTP'd it up, where it was read using a perl script and an AJAX webpage... only took a few seconds and a couple of clicks to update stuff, so it worked pretty well

Edited by ttlanhil

Share this post


Link to post
Share on other sites

I haven't even begun to look into the "how" yet. Mostly because I wasn't sure if the idea would even be liked.

 

However, if bot owners like it, then the next step would find an easy way for ALL bot owners to get the information to the site. And how often they would like the information "refresh" the information.

Share this post


Link to post
Share on other sites

The bots I have (and host) all output a web page with their current inventory, I could easily modify it to output it in a form suitable for parsing (or even php.readfile("")ing directly onto the page if I had the format required, but for security just the parsed would be best)

Share this post


Link to post
Share on other sites

Apart from the possibility of abuse claims if the page is only constructed every so often and players seeing "stale" info, or lag if the page is generated in real time upon the http request (waiting for each bot to update its own portion then outputting the complete list), it seems like a sound idea, but depending on the bot code in use there may be quite some difficulty getting the list.

 

The easiest (well most straightforward) way would be to send an inv(or wanted) command to each bot and parse the output, but that would mean the "control" bot would need to know the format each bot sends and parse as required, quite a fun project as bots can and do change their layout as code develops.

 

If the control bot didn't wait for each bot to reply before sending the next bot the inv or wanted command but sent the command to all the bots at the same time, stored the return data by bot it would reduce lag quite a lot, and take maybe 4 seconds to complete the entire bot listing (unresponsive bots should just be timed out after the 4 seconds) and the list compiled and fed to the web server.

 

Hope I am making myself clear, I know what I mean but that doesn't help you if you don't get it, does it? :P

Share this post


Link to post
Share on other sites

I don't frequent the bot thread since I don't have a bot, but uh... is this forum typically so quiet?

 

I expected more answers (for OR against) to this thread. Since it would take a lot of cooperation to put it together I would like to know if people generally approved of this idea.

 

ttlanhil, LabRat - thanks for your input

Share this post


Link to post
Share on other sites

I too agree it would be a useful feature.

 

I think the inv syntax problem could be dealt with by defining a new type of inv command that has a standard syntax (a comma separated list of values). Any bot that wants to participate would need to be upgraded/enhanced with the new command/syntax. That way the control bot would have a known syntax and wouldn't need to worry about all the different ways a bot might reply.

Share this post


Link to post
Share on other sites

I have a few reservations about this:

 

How many players play with the game in a window so they can browse the web and play the game at the same time. I know I do, but then again I have a dual monitor setup. I suspect there are at least some players that this wouldn't work well for.

 

If the bot channel goes through, this would seem to be rather redundant. However, if the bot channel does not happen something like this could be a good alternative.

 

I'm assuming this would be separate from the game itself. As such, what happens if the person/group hosting this service decides to cease providing it for whatever reason?

Share this post


Link to post
Share on other sites

I have a few reservations about this:

 

How many players play with the game in a window so they can browse the web and play the game at the same time. I know I do, but then again I have a dual monitor setup. I suspect there are at least some players that this wouldn't work well for.

 

If the bot channel goes through, this would seem to be rather redundant. However, if the bot channel does not happen something like this could be a good alternative.

 

I'm assuming this would be separate from the game itself. As such, what happens if the person/group hosting this service decides to cease providing it for whatever reason?

 

Good points.

1 - Yes, if the bot channel goes into affect, this idea is pretty much useless :devlish:

2 - Would it be official? Not if I do it. I would probably do it as a page of the el-cel site, but at best that site is just an "Official Help Site" and not officially a part of the game itself

3 - I can not guarantee that the site will run 24/7. I have had server issues in the past. And sometimes real life calls and we must all leave, but I have been playing for years now and the site is a hobby of mine so I don't think there is any immediate concern about it going away.

4 - If I do go away, I'm sure someone can take over. *IF* the idea is accepted, once the protocol is worked out it should be easy for someone else to take over.

Share this post


Link to post
Share on other sites

If the control bot asks for inv and wanted to all bots that are registered with it, and does so every 10 minutes or so, then the information will be pretty uptodate. Also, it is in the interest of bot owners to provide a syntax that is recognized by the control bot.

 

The control bot (or more likely, another bot on the same database) could also accept player commands such as /controlbot search fire essence (for example), which would execute a search on the control bot's database looking for the INV and WANTED results of each bot and their prices, and then produce a list of buy/sell with price for fire essence for every listed bot. Compared to the database building, this would be very simple to code.

 

In this manner, all the data can be gathered in game. No need for any windows.

Share this post


Link to post
Share on other sites

If the control bot asks for inv and wanted to all bots that are registered with it, and does so every 10 minutes or so, then the information will be pretty uptodate.

 

Seriously bad idea due to the bandwidth being used. I doubt you would earn any friends with that sort of frequency.

 

Also, it is in the interest of bot owners to provide a syntax that is recognized by the control bot.

 

In the real world this wont happen especially for those owers who dont have access to their bots source code.

Share this post


Link to post
Share on other sites

In the real world this wont happen especially for those owers who dont have access to their bots source code.

There are plenty of open source bot programs out there. Plus, I remember seeing a post from Roja that indicated all bots had to be open source.

Share this post


Link to post
Share on other sites

which means that they have to be able to have the source if they have the binary... if someone else is hosting the bot for them, they may not (and it still be legal)

Share this post


Link to post
Share on other sites

There are plenty of open source bot programs out there. Plus, I remember seeing a post from Roja that indicated all bots had to be open source.

 

So your saying if you are using someone elses bot code (and its already functional), then you should just throw it away and tinker around with some other open source project? Lets be a little realistic..

 

Ill be intrigued to see the post about open source'edness if you can dig it out. I did a quick search but nothing obvious popped up. It doesnt help that you cant use the word "bot" in the search due to the number of characters!

I cant believe that its true though. There are quite a number of bots out there where the source code is not available.

 

Getting back slightly on topic. I think if you want to do this and run it through a website, the communication should be taken outside of EL. Im not so keen on the "pull" idea of having the site check each bots page everytime it has a connection and instead much prefer the standard "push" idea of ttlanhil.

Edited by Lunksnark

Share this post


Link to post
Share on other sites

If the control bot asks for inv and wanted to all bots that are registered with it, and does so every 10 minutes or so, then the information will be pretty uptodate.

 

Seriously bad idea due to the bandwidth being used. I doubt you would earn any friends with that sort of frequency.

 

 

I think it will actually decrease bandwidth usage, but perhaps the coders have a better idea. I get a few 'inv' commands per minute in prime time AFAIK, right now. If there is a search bot, this should decrease a lot. Then there's one additional inv and wanted every 10 minutes? who cares...

 

Also, it is in the interest of bot owners to provide a syntax that is recognized by the control bot.

 

In the real world this wont happen especially for those owers who dont have access to their bots source code.

 

Either they have a bot hosted by someone who is maintaining it (such as learner) in which case there are many instances of the same bot, or the owner has the source code. You have to be able to update your bot every time a new item is added, and certainly if other things happen to EL.

Share this post


Link to post
Share on other sites
There are plenty of open source bot programs out there. Plus, I remember seeing a post from Roja that indicated all bots had to be open source.

So your saying if you are using someone elses bot code (and its already functional), then you should just throw it away and tinker around with some other open source project? Lets be a little realistic..

If it meant having access to the source as opposed to not having access to the source, absolutely. After all, it's exactly what I've done with Freya.

 

Ill be intrigued to see the post about open source'edness if you can dig it out. I did a quick search but nothing obvious popped up. It doesnt help that you cant use the word "bot" in the search due to the number of characters!

I cant believe that its true though. There are quite a number of bots out there where the source code is not available.

Here it is: Roja's posting

 

You have to be able to update your bot every time a new item is added, and certainly if other things happen to EL.

Or you've coded your bot in such a way that it learns a new item by having it shown to it. Freya learns what she needs about an item any time it's put in her trade window.

Share this post


Link to post
Share on other sites

I'd say, start with:

* parse the /botname inv info with regexp (pretty fast; attach a reg expression, and the inv command to use, to each bot)

* update the info once per hour (with a cron job, or update when someone opens the page over an hour after the previous update time)

 

See how that works out, if people like it and use it, and such.

Any changes to bot code, for a fixed syntax with a special inv command, or even pushing the info to the site, should be a later issue imho.

Share this post


Link to post
Share on other sites
Either they have a bot hosted by someone who is maintaining it (such as learner) in which case there are many instances of the same bot
but the person who writes/hosts the bot can (and most likely will, in reasonably short order) make an interface to a directory. learner already has a directory made (even if it's not the same as proposed) so it's pretty likely he could hook up to another quickly
You have to be able to update your bot every time a new item is added, and certainly if other things happen to EL.
if there's a change in existing protocol, maybe (depends what the change is)... if there's an addition to the protocol, then probably not (unless it's a new protocol that I see reason to use, I'd only add it to my switch-case handler as a no-op... I log out unhandled protocol messages so I can see what needs doing)

for new items... nope. if I want to buy/sell it then I add a buy price, a sell price, and the name of it to a file. everything else with items is done with information from the server, not in local files (doing that is dangerous, since image IDs aren't safe to use)

 

for most bots, events like the single->multi channel chat are cases where upgrades are needed... but most changes can be safely ignored

Share this post


Link to post
Share on other sites

If anyone was wondering about where the open source part comes from, I have spotted it in Rule #5 of the in game help.

 

Really though, I think it would be easier to do a check on the server for a bot inventory list than to do something to have the bots all report to a website or another bot. It would be less stressful on the server than bots talking to eachother too. Perhaps less work than adding a bot channel even.

 

The catch is, just because a bot has an item on it, it does not mean it is for sale. It could be a storage bot and not selling. It could have an outfit on, etc.

 

If you really want the option of having bots advertise there, I would say it would be best to just have a text box that fills in the items of the bot you clicked on and you can have a search button that would search for it. If you want to filter out numbers, filter them out. This would have the bots inventory and buying list in their native format.

Share this post


Link to post
Share on other sites

Am in full support of the idea Ghrae. However Labrat hosts and maintains our ACE trade bot so we leave this side of things entirely in his capable hands (coz we are still tryin to figure out how to programme our outmoded VCRs here!)

 

One thing does spring to mind is..is it possible to access this info in a webpage, having the URL given to a player via a pmed command to the command bot? This way a player can f2 the info in much the same way as they do from #BC URLs and work from there on searching for what theyre looking for trade-wise. Or was that covered already and I simply didnt translate teh geekspeak right? :s

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×