Jump to content
Eternal Lands Official Forums

AnnaH

Members
  • Content count

    9
  • Joined

  • Last visited

About AnnaH

  • Rank
    Newbie
  1. Can't log in - The rules.xml file was not found

    diff --git a/asc.c b/asc.c index dc046479..79057202 100644 --- a/asc.c +++ b/asc.c @@ -5,6 +5,7 @@ #include <ctype.h> #include <iconv.h> #include <errno.h> +#include <libxml/encoding.h> #include "asc.h" #include "errors.h" #include "md5.h" diff --git a/named_colours.cpp b/named_colours.cpp index 6d46b4f9..65874370 100644 --- a/named_colours.cpp +++ b/named_colours.cpp @@ -15,6 +15,7 @@ #include <string> #include <cstring> #include <sstream> +#include <libxml/parser.h> #include "asc.h" #include "elloggingwrapper.h" you can patch with those two #includes for now
  2. Can't log in - The rules.xml file was not found

    If you feel like experimenting, you may try pointing build system to custom location of your libraries if they are not in default locations on system. Never done it with EL, but generally in other projects its done with flags to preprocessor and linker, e.g.: CPPFLAGS="-I /your/path/to/libxml2/include ${CPPFLAGS}" LDFLAGS="-L/your/path/to/libxml2/lib ${LDFLAGS}" and option -rpath for runtime linking with LDFLAGS="-Wl,-rpath,/your/path/to/libxml2/lib ${LDFLAGS}" edit: looks like el's Makefile doesn't use CPPFLAGS, so just prepend the "-I ..." option from CPPFLAGS to both CFLAGS and CXXFLAGS edit 2: since you are also on Gentoo, another option is to use version of libxml2 from upstream github by unmasking version "9999" with echo '=dev-libs/libxml2-9999 **' >> /etc/portage/package.accept_keywords/libxml2 and rebuild libxml2 emerge --oneshot --ask --verbose --quiet-build dev-libs/libxml2 which you can later update with emerge @live-rebuild target to emerge, because 9999 version are not picked up in normal emerge --update @world target. And when version 2.12 gets stabilized in portage tree, switch back by removing unmask from accept_keywords
  3. Can't log in - The rules.xml file was not found

    Yep, I've seen your latest fix in repo, looks good! Thanks (also fixed my EL sound by just recompiling OpenAL without pipewire support, so that's good too) (also also, sorry A. for spamming your thread instead of using edit, in my defense it was 5am)
  4. Can't log in - The rules.xml file was not found

    Ok so having #disable_sound= 1 in el.ini will trigger the if statement diff --git a/actor_scripts.c b/actor_scripts.c index be4fd426..530a2f06 100755 --- a/actor_scripts.c +++ b/actor_scripts.c @@ -11,6 +11,7 @@ #include "draw_scene.h" #include "elconfig.h" #include "errors.h" +#include "elloggingwrapper.h" #include "gamewin.h" #include "hud_statsbar_window.h" #include "interface.h" @@ -4922,7 +4923,14 @@ void init_actor_defs() memset (actors_defs, 0, sizeof (actors_defs)); memset (attached_actors_defs, 0, sizeof (attached_actors_defs)); set_invert_v_coord(); - read_actor_defs ("actor_defs", "actor_defs.xml"); + if (read_actor_defs ("actor_defs", "actor_defs.xml") != 1) + { + char *message = "This is likely the libxml2 > v2.10 issue\nSee https://www.eternal-lands.com/forum/index.php?/topic/61996-cant-log-in-the-rulesxml-file-was-not-found\n"; + LOG_ERROR(message); + fprintf(stderr, message); + FATAL_ERROR_WINDOW("Failed to read actor defs. See Going to exit."); + exit(1); + } } from commit: commit d067d1548c8906dc1ef56d6b2cb9bd901612caf6 Now i need to figure out how to deal with this: [ALSOFT] (EE) Failed to connect PipeWire event context (errno: 112) but that's different topic
  5. Can't log in - The rules.xml file was not found

    I narrowed it down to problem with sound in: 4476 int parse_actor_nodes(actor_types *act, const xmlNode *cfg, const xmlNode *defaults) i added printfs as this: 4546 } else if (!strcmp(name, "neck")) { 4547 ok &= parse_actor_neck(act, item, defaults); 4548 } else if (!strcmp(name, "sounds")) { 4549 #ifdef NEW_SOUND 4550 printf("neck ok: %i\n", ok); 4551 ok &= parse_actor_sounds(act, item->children); 4552 printf("sound ok: %i\n", ok); 4553 #endif //NEW_SOUND output when running el: ➜ eternallands ./el.linux.bin neck ok: 1 sound ok: 0 neck ok: 1 sound ok: 0 neck ok: 1 sound ok: 0 neck ok: 1 sound ok: 0 ... recompiled with NEW_SOUND commented out in make.defaults: 12 #FEATURES += NEW_SOUND # Enables extended sound effects system and game loads and can log in chars. found out that this is the culprit for me: 3620 if (!have_sound_config) return 0; inside: 3611 int parse_actor_sounds(actor_types *act, const xmlNode *cfg) 3612 { 3613 const xmlNode *item; 3614 char str[255]; 3615 int ok; 3616 int i; 3617 3618 if (cfg == NULL) return 0; 3619 if (!have_sound_config) return 0; // returns here, hence "ok &=" in caller gets zeroed 3620 Looks like sound system for EL is broken for me. Im using pulseaudio as my sound server, but EL for some reason wants to use pipewire. Which is installed on system as dependency of some packages but not used as sound server. Now to figure out how to make EL keep using pulseaudio.
  6. Can't log in - The rules.xml file was not found

    libxml2 2.12 is the only version on the system installed, so i think it uses correct one the code inside condition: #if LIBXML_VERSION >= 21200 xmlCtxtSetMaxAmplification (ctxt, 100); #endif is definitely ran 4900 #if LIBXML_VERSION >= 21200 4901 xmlCtxtSetMaxAmplification (ctxt, 100); 4902 printf("set new max amplification, i think?\n"); 4903 #endif ➜ eternallands ./el.linux.bin set new max amplification, i think? ➜ eternallands Testing with xmllint: ➜ eternallands xmllint --version xmllint: using libxml version 21200 compiled with: Threads Tree Output Push Reader Patterns Writer SAXv1 FTP HTTP DTDValid HTML C14N Catalog XPath XPointer XInclude Iconv ICU ISO8859X Unicode Regexps Automata Schemas Schematron Modules Debug Zlib ➜ eternallands xmllint --noent actor_defs/actor_defs.xml actor_defs/actor_defs.xml:143: parser error : Maximum entity amplification factor exceeded, see xmlCtxtSetMaxAmplification. &elf_female; ^ ➜ eternallands xmllint --noent --max-ampl 100 actor_defs/actor_defs.xml | wc -l 80618 (that's a lot of lines!) It looks like it reads the defs in ok with functon read_actor_defs, ok variable is = 1 all the way through the if block in read_actor_defs function: 4881 int read_actor_defs (const char *dir, const char *index) until getting assigned 0 by return val from parse_actor_defs function, at line: 4924 ok = parse_actor_defs (root); at second iteration of 'for' loop in parse_actor_defs function, first iteration: ok = 1, then ok = 0, wish i knew why, or how to test whats going on better
  7. Can't log in - The rules.xml file was not found

    ➜ Eternal-Lands git:(master) ldd el.linux.bin | grep xml libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00007fab32224000) ➜ Eternal-Lands git:(master) ll /usr/lib64/libxml2* lrwxrwxrwx 1 root root 17 Aug 23 17:03 /usr/lib64/libxml2.so -> libxml2.so.2.12.0* lrwxrwxrwx 1 root root 17 Aug 23 17:03 /usr/lib64/libxml2.so.2 -> libxml2.so.2.12.0* -rwxr-xr-x 1 root root 1.4M Aug 23 17:03 /usr/lib64/libxml2.so.2.12.0*
  8. Can't log in - The rules.xml file was not found

    That's some good news, thanks bluap for all the work! Just for testing tried it out with =dev-libs/libxml2-9999 which pulls from git "at the commit: 778cca386dd29893958310576792e08e018f8e23" of libxml2 repo. It compiles fine, but when trying to run el.bin i get error popup with msg from line 4943 in actor_scripts.c, but without any other errors in console or in ~/.elc/log 4943 FATAL_ERROR_WINDOW("Failed to read actor defs. See logs, going to exit."); Call to read_actor_defs() returns 0. The "ok" is still == "1" before this code (just at the entrance of else), but is changed to 0 in line 4924 by the parse_actor_defs func. And the "if" at line 4941 triggers: 4922 } else { 4923 #ifndef EXT_ACTOR_DICT 4924 ok = parse_actor_defs (root); 4925 #else // EXT_ACTOR_DICT 4926 ok = parse_actor_data (root); 4927 #endif // EXT_ACTOR_DICT 4928 }
  9. Can't log in - The rules.xml file was not found

    named_colours.xml:24: parser error : Growing input buffer <colour name="popup.optiontextmouseover" r="1.0" g="1.0" b="1.0" a="1.0"/> ^ languages/en/strings/console.xml:83: parser error : Growing input buffer <markpos>markpos</markpos> ^ languages/en/strings/console.xml:83: parser error : Growing input buffer <markpos>markpos</markpos> ^ languages/en/strings/errors.xml:168: parser error : Growing input buffer <accept>I Accept</accept> ^ languages/en/strings/errors.xml:168: parser error : Growing input buffer <accept>I Accept</accept> ^ languages/en/strings/help.xml:139: parser error : Growing input buffer <logon>%.*s has logged on.</logon> ^ languages/en/strings/help.xml:139: parser error : Growing input buffer <logon>%.*s has logged on.</logon> ^ languages/en/strings/options.xml:302: parser error : Growing input buffer Manufacture, Storage and Inventory windows to appear above the map and console. ^ languages/en/strings/options.xml:302: parser error : Growing input buffer Manufacture, Storage and Inventory windows to appear above the map and console. ^ languages/en/strings/spells.xml:95: parser error : Growing input buffer </remove> ^ languages/en/strings/spells.xml:95: parser error : Growing input buffer </remove> ^ languages/en/strings/stats.xml:157: parser error : Growing input buffer <shortname>eng</shortname> ^ languages/en/strings/stats.xml:157: parser error : Growing input buffer <shortname>eng</shortname> ^ languages/en/strings/titles.xml:44: parser error : Growing input buffer <tab_adv_video>Adv Video</tab_adv_video> ^ languages/en/strings/titles.xml:44: parser error : Growing input buffer <tab_adv_video>Adv Video</tab_adv_video> ^ mines.xml:18: parser error : Growing input buffer <mine id="7" type="Mana drainer">./3dobjects/ward1.e3d</mine> ^ sound/snds_enviro.xml:498: parser error : Growing input buffer <stereo>1</stereo> ^ sound/sound_config.xml:30: parser error : Entity 'snds_enviro' failed to parse &snds_enviro; ^ sound/sound_config.xml:321: parser error : Growing input buffer <sound name = "Poison"> ^ actor_defs/player_standard.xml:1: parser error : Growing input buffer <ghost>no</ghost> ^ actor_defs/playerav_human_female.xml:84: parser error : Entity 'standard_players' failed to parse &standard_players; ^ actor_defs/playerav_human_female.xml:135: parser error : Growing input buffer <torso>./meshes/torso_skinhf_tan.dds</torso> ^ actor_defs/actor_defs.xml:141: parser error : Entity 'human_female' failed to parse &human_female; ^ actor_defs/actor_defs.xml:233: parser error : Growing input buffer &dragon2_gray; ^ emotes.xml:460: parser error : Growing input buffer <CAL_emote_sit index="1000">./animations/player_idle1.caf 0</CAL_emote_sit> ^ actor_defs/missile_defs.xml:78: parser error : Growing input buffer </missile> ^ ./weather.xml:19: parser error : Growing input buffer <density>1.0</density> ^ ./spells.xml:361: parser error : Growing input buffer <sigil id="21" name="Protection">protection</sigil> ^ languages/en/Encyclopedia/index.xml:21: parser error : Growing input buffer <Category>Miscellanea</Category> ^ languages/en/strings/channels.xml:50: parser error : Growing input buffer <channel number="4900" name="Russian">Chat in Russian</channel> ^ languages/en/strings/channels.xml:50: parser error : Growing input buffer <channel number="4900" name="Russian">Chat in Russian</channel> ^ languages/en/rules.xml:206: parser error : Growing input buffer eas detailed above, can result in permanent banishment from the forums and game. ^ languages/en/rules.xml:206: parser error : Growing input buffer eas detailed above, can result in permanent banishment from the forums and game. ^ The rules.xml file was not found. You will have to redownload your game. also hit this error with >=dev-libs/libxml2-2.11.4::gentoo (v2.10.4 worked fine) nothing else on system that depends on libxml2 had any problems since update on Jul 10 :<
×