Jump to content
Eternal Lands Official Forums

bluap

Moderators
  • Content count

    2985
  • Joined

  • Last visited

Posts posted by bluap


  1. Which distro are you using?  On Arch for example, I have installed the old version and will hold the package until the updated version arrives.  If you build your own package, most packages will support installing into the /usr/local tree which would be picked up by the build and at runtime, hopefully.  If not you may have to remove the old package too.


  2. Wow, that's an unintended consequence of adding the return value check for the read_actor_defs() call!

    I've had a quick look at what you have found and I think you found a long standing bug.   If the statement:

    	if (!have_sound_config) return 0;

    returns zero, the defs for sound are never loaded, even when you enable sound later.  I would suggest we just remove the check completely which will fix part of the long standing bug and also fix the issue you have with return value check for the read_actor_defs() call failing too.

     

    Edit: Perhaps safer for now, leave the have_sound_config and return 1 to just prevent the error.

     

    I'll check some more later, but what do you think?


  3. I just tested again and it works fine for me.  Sorry to ask but, are you sure you were pointing at the new libxml2 headers when you compiled? If the conditional compiles is not included the higher threshold will not be set in actor_defs.c.  Everything will compile but the defs will not load.

    #if LIBXML_VERSION >= 21200
        xmlCtxtSetMaxAmplification (ctxt, 100);
    #endif

    You can also test the library is working using xmlint:

    $ which xmllint
    /usr/local/bin/xmllint
    
    $ cd ~/eternallands/actor_defs
    xmllint --noent actor_defs.xml
    actor_defs.xml:143: parser error : Maximum entity amplification factor exceeded, see xmlCtxtSetMaxAmplification.
    	&elf_female;
    
    $ xmllint --noent --max-ampl 100 actor_defs.xml
    ... outputs the expanded xml
    
    

     


     


  4. I've tested the new version of the library (2.12 not yet released) and using the new ability to set a higher threshold does fix the problem.  I've committed the change but stick with version 2.10 of libxml2 until 2.12 is released. Version 2.11 will never work and I've made compiling against that version fail.


  5. 12 minutes ago, revi said:

    Are you sure all those files are actually valid XML?

    A valid xml file should start with

    
    <?xml version="1.0"?>

    and several of the EL xml files do not sta

    It could be.  I've tried looking at this but I have no idea when its needed.  Adding it to the top of the actor_defs.xml does parse, but we still get the error.

     

    I've created an issue on the libxml2 repo.  We may get some pointers there:

    https://gitlab.gnome.org/GNOME/libxml2/-/issues/581


  6. I've been trying to fix this for a while now but so far unable.  As I said above, I think there may be more than one issue.  I've committed the possible fix for reading files but actor defs still fail to load.  I added proper detection of this and a pointer to this thread in the error logging.   I'll keep trying but help from someone more familiar with libxml2 would be great.  I may create an issue on their bug tracker but suspect its and EL problem.


  7. On 12/07/2023 at 1:12 PM, Erdie said:

    Just to confirm, Nimbus has the same problem after updating something not related to el and she uses Manjaro linux, which more or less a based on arch. It looks like arch has some incompatibilites right now.

    The 2.11.x series of libxml2 has new protections for "entity expansion attacks" which we appear to be triggering with the el xml files.  I'm looking into this but cannot find fix a solution so far, it will hit us eventually on other platforms, not just arch based.  There is also a change to the way custom loaders work with libxml2 that triggers another issue that I have fixed (I think).

     

    On 12/07/2023 at 1:12 PM, Erdie said:

    BTW: I am trying to build a static binary on my own machine in order to copy this on the Manjaro based system. I am not familiar with that. Could you roughly explain how to get this done? I tried to include "-static" in the c-flags but this leads to errors when linking the binary. What I am doing wrong?

    Building a static binary unfortunately requires a lot of work as you need to build all the libraries yourself making static versions.  I have scripts to do this and still intended to publish them to my EL build methods repo once they are cleaned up a bit. There is a flatpak package that works on Arch and Manjaro, and other distros, available in the flatpak store.  I publish a development version too (needs updated to the latest git) that you can install by enabling the flatpak beta channel.


  8. 16 hours ago, Aislinn said:

    Looks like you were right about the xml parsing.  My update today included "upgrading" libxml2 (libxml2-2.11.4-1-x86_64.pkg.tar.zst) and downgrading it to the last version (libxml2-2.10.4-6-x86_64.pkg.tar.zst) lets me log in. 

    Son of a gun, I'm so sorry for wasting your time and thank you for trying to help me.

    Definitely not wasting time.   I was testing using one of the package builds which works.  But if I compile my own. I have the same problem with the new version of libxml.  I'll look into why that is in case its something we're going in the client that is no longer supported.


  9. The console background is a texture so can be changed reasonably easily.  It might help if you lighten the darker parts a little.  I tried a flat (for simplicity), but lighter texture and its arguably better IMHO.  Too light though, and the colours get washed out and you start to see the font outlines.  The file is textures/console.dds in the data directory.  As always, save a copy before changing it.


  10. On 28/03/2023 at 3:01 AM, Aislinn said:

    Omg I love it. Absolutely perfect!  Thank you so much! :)

    That's good.  It was nice to contribute something again, its been a while.

     

    On 28/03/2023 at 9:57 AM, caladina said:

    which system are you on Aislinn, havent gotten mine to work, is there something you need to add
    mac not available yet?

    As revi said, you'll have to build you own client for now unless someone provides one for Mac.  I do not have a way to build on Mac but Ben has provided build instructions on Github.


  11. It could be your ISP is blocking port 2000.  Can you try connecting using telnet?  You should see something like this:

    $ telnet game.eternal-lands.com 2000
    Trying 192.99.21.222...
    Connected to game.eternal-lands.com.
    Escape character is '^]'.
    G�Welcome to the new server! Please report any problems on channel 6.

    On second thoughts, if you got as far as character creation, you already connected to the server.

    I assume you are still using the default server not trying to connect to one of the SSL or proxy servers as those no longer work.


  12. Some unused options were removed from the last Android client to declutter the options window.  Shadows was one of the removed options so it should already be effectually doing what unchecking the trouble shooting option does.   Poor_man disables a set of options so you could try these individually to see which is "fixing" the problem.  I suspect its the eye candy.

     

    Poor man turns off these options, I've striked-through out those already disabled on Android:

            show_reflection= 0;
            shadows_on= 0;
            clouds_shadows= 0;
            use_shadow_mapping= 0;
            special_effects= 0;
            use_eye_candy = 0;
            use_fog= 0;
            show_weather = 0;
            use_frame_buffer= 0;
            skybox_show_clouds = 0;
            skybox_show_sun = 0;
            skybox_show_moons = 0;
            skybox_show_stars = 0;
     

×