Jump to content
Eternal Lands Official Forums


  • Content count

  • Joined

  • Last visited

About LeFallen

  • Rank
  1. ELChat2

    I always envisaged a nice simple chat client that looked something like IRC. You would have a list of people in the "channel", where by default that would be in your vicinity, perhaps with the other channels being the other EL channels you are in. You could then similarly have the add/remove messages and/or the list always there, on the side somewhere.
  2. Current CVS errors

    Have a look on the previous page. I'm still hoping for a better solution... What I think is weird (though I don't pretend to understand the EL client in it's entirety) is that it seems to include a copy of an original glext.h file (platform.h, line 82). From my QUICK testing (although I believe Korrode's been running it for a while now without issue), you can simply include the ORIGINAL system file instead: - #include "glext.h" + #include <GL/glext.h> Of course, ymmv.
  3. Having trouble figuring out WITHDRAW_ITEM

    I agree. I think this should be 7 bytes not 6. I guess if the last byte is the MSB however, it wouldn't show as a bug as the client doesn't allow you to remove more than 9999 at a time (IIRC). It probably should still be changed next time someone's checking in the file however (items.c (line 826)). Just my 2c
  4. bot killed

    Sure. This only occurs with certain players however so it's sometimes difficult to track. Ironically you are one of them In a ~40 day period, of the 1503 unique player/guild pairs that went through EVTR, 76 of them had names like this. A normal ADD_NEW_ENHANCED_ACTOR from the server contains various data including the name and guild tag (where applicable) as well as the size of the message (as with all msgs in EL). Examples are as follows. Note that I don't necessarily know these people - this is just the data from the server: Player: Viorica OFFSET:000 - 051 (ADD_NEW_ENHANCED_ACTOR) OFFSET:001 - 037 000 (LENGTH = 37) OFFSET:003 - * 28 bytes of char appearence data * OFFSET:031 - 'Viorica' OFFSET:038 - 000 (Null terminator perhaps) This brings us to 39 bytes in total (LENGTH + 2 as per all EL msgs) Player: ThunderCloud wWw (as in 'ThunderCloud' in guild 'wWw') OFFSET:000 - 051 (ADD_NEW_ENHANCED_ACTOR) OFFSET:001 - 049 000 (LENGTH = 49) OFFSET:003 - * 28 bytes of char appearence data * OFFSET:031 - 'ThunderCloud' OFFSET:043 - 032 (Space) OFFSET:044 - 131 (Colour - Light Blue) OFFSET:045 - 'wWw' OFFSET:048 - 000 (Null terminator perhaps) OFFSET:049 - 051 (the character '3') OFFSET:050 - 067 (the character 'C') This brings us to 51 bytes in total (LENGTH + 2 as per all EL msgs) Player: ThunderCloud (as in 'ThunderCloud' NOT in any guild) OFFSET:000 - 051 (ADD_NEW_ENHANCED_ACTOR) OFFSET:001 - 044 000 (LENGTH = 44) OFFSET:003 - * 28 bytes of char appearence data * OFFSET:031 - 'ThunderCloud' OFFSET:043 - 000 (Null terminator perhaps) OFFSET:044 - 051 (the character '3') OFFSET:045 - 067 (the character 'C') This brings us to 46 bytes in total (LENGTH + 2 as per all EL msgs) BlackThorne's bot code does something like splitting the incoming data at the space if there is one, and using the first part for the name, the second for the guild. In the event there is no space, it just takes it all as the name. This of course makes poor ThunderCloud's name "ThunderCloud[NULL]3C" which makes him unrecognised by any bot using this code (or ANY code that listens to the server's length variable and uses it to determine the data length). This data varies in length (1 - 2) and value, including 51, 67 and 204. Why don't more people notice this then? Because it doesn't happen if they are in a guild (the [NULL]3C is in the GUILD data then, not the name data) and probably also because if you were to use C string functions they will hit the NULL and take that as string termination. In the example above, the server should send 2 less bytes of data and have LENGTH -= 2 as well. The other possibility is that this represents some other piece of information but it is then strange that it's only some users. Try it out with yourself - as I say you are one of the lucky few (You have just 1 byte: 51). Either way, the server does send this extra data so we need to instead look to the [NULL] and ignore the length (for the most part). After thinking about it it's probably more likely it's a new or mod related feature and not the server not storing/dealing with it's data properly but from the bot point of view the result at this end is the same. EDIT: Formatting
  5. Australians - Electronic Freedom Project

    Yeah! Let's do something about it! Protest! I'm going and so is Korrode so come and show your support (or anti-support as the case is here)!
  6. "@@guild " is a lot longer than "#gm ". That's where you could compromise a little and have "@@g" do it or something. Since after 2 @'s the only valid input is a channel, one could simply make it use the letter "g".
  7. Global Game Messages color chat...

    hmm, where'd you get that idea?
  8. missing server messages

    I do understand the limitations from the server development side of things but I don't think dirty client hacks are a solution. When confronted with a requirement one needs to ensure that it is implemented correctly or hacks of hacks of hacks will end up being required and the product will suffer greatly for it. Again I think the counters thing is a great example. It depends on so many messages and other things to try to track this information. I doubt it even does so accurately. That kind of coding is just scary IMHO. While it's not the most desirable from the users to wait, getting a server msg delivering the REAL data would be much more preferable and I think any real developer (not to say you aren't one) would agree that it's the cleaner, better solution.
  9. missing server messages

    I just mean when the decision was made to have a harvesting effect, the first thing that should have happened was the creation of a message of some kind. The 1 byte isn't really a limitation as you could have an EVENT message (for example) and extended information in that. Worst case you have a EXTENDED_MSG message that then gives you another 255. Either would be much nicer than looking for a particular string or the +harv xp. Another place where this seems really bad is the counters. I was more referring to other areas. Stuff like location retrieval returns a string via RAW_TEXT. And you have to look for "Trade request from" to detect a trade request etc. To be fair though, the game was obviously never designed for much of the data to be interpreted, just displayed.
  10. missing server messages

    Why aren't these sorts of things server messages anyway? Scraping messages from the server and "guessing" states like this seems stupid. Is it a technical limitation of some kind? It'd sure make bot coding easier too
  11. bot killed

    It would seem that the server either stores the name length as a value and doesn't reset it, or doesn't clear the old data out and uses fixed length. So if a char was 'SUPER_WINGMAN' then it has a length of 13. This is stored as 'SUPER_WINGMANx' where 'x' is a NULL character (character 0). Then they rename to 'SLACKER' but length is kept at 13 (or again, in the case of fixed length, doesn't clear it). So 'SLACKER' here is actually: 'SLACKERxNGMAN' where 'x' is actually a NULL character. The client doesn't display this as it most likely uses standard string handling which terminates with the NULL. But because there's more data following the NULL, I assume Python is keeping it all as the name. Really the server should probably be truncating the data but as it does not, you have to do it client side. Split the data at the NULL ('\0') and take the front half. You can then deal with it correctly. Hope that's clear - if you need more help, just ask.
  12. Restoration spell change

    FWIW, I like Acelon's suggestion, or a variation of it.
  13. bot owners...

    Whether or not a forum should exist I do not know, but the reasons listed are a not really justified I think. People have been arguing over security through obscurity for quite some time as an argument for closed source over open source. Microsoft claims their software is more secure, because flaws are secret. This has been demonstrated many times to be not true. It's pointless trying to hide vulnerabilities. If they are openly known, they will be fixed quicker and easier. Additionally, it just makes it harder for bot developers not in the list to be able to fix the bugs in their code. And if ANYONE can get in the list easily enough, so can scammers etc. Just my 2c of course but as stated, this just seems like the same argument Microsoft have been trying to discredit open source software for a decade. EDIT: corrected some speling[sic]
  14. Preparing for the server change

    That's what I get: ;; ANSWER SECTION: game.eternal-lands.com. 86339 IN A LINUX USERS Linux users may want to note that the config is located in your home directory, under the .elc directory. It also appears to have both Carriage Return, Line Feed and just Line Feed terminated lines so you might want to ensure your editor doesn't change this just in case - though I doubt it matters. There is actually an el.ini file where I installed it to as (on my system anyway) which you won't have to worry about unless you've got multiple users playing the game I would think. Regards,