Le service EGS s'arrête sur l'erreur “node != NULL” (dans le fichier log.log du serveur)
Le fichier server/ryzom/common/data_common/database.xml n'est pas en phase avec le code du serveur. Assurez-vous d'en avoir la version la plus à jour.
Si la nouvelle version du database.xml ne permet pas de résoudre le problème, le log précise le fichier source et la ligne où l'erreur est survenue. Voici comment j'ai procédé (bon, j'ai un peu plus galéré que ça puisqu'il m'a fallu déterminer que le fichier database.xml était concerné) :
J'ai ouvert le fichier database_plr.cpp et me suis rendu à ladite ligne. L'erreur se produisait dans la fonction
TPACK_ANIMAL::TBEAST::init
après l'appel de
node = parent->getNode( ICDBStructNode::CTextId("NAME"), false );
J'ai ouvert le fichier database.xml et y ait recherché PACK_ANIMAL. Comme PACK_ANIMAL apparaissait deux fois, j'ai choisi la deuxième occurrence parce que les appels faits dans la fonction TPACK_ANIMAL::TBEAST::init faisaient référence à des entrées présentes dans le database.xml.
J'ai créé l'entrée
<leaf name="NAME" type="I32" />
en respectant l'ordre dans lequel les appels étaient faits dans le code.
Pour le type I32, il faut fouiller un peu dans le fichier database_plr.h, rechercher la définition de la classe TPACK_ANIMAL pour arriver sur
uint32 getNAME(const CCDBSynchronised &dbGroup)
⇒ donc le type est I32 (= uint32).