Bienvenue, Invité. Merci de vous connecter ou de vous enregister.

Auteur Sujet: Erreur code ressources - MOD eXpedition v1.2.2  (Lu 526 fois)

Santoryu

  • Arrivant
  • Messages: 1
  • Karma: +0/-0
Erreur code ressources - MOD eXpedition v1.2.2
« le: 07 juin 2020, 15:50:57 »
Bonjour à tous,

Je viens de mettre à dispo pour mon alliance un OGSpy sur serveur dédié. Pour l'installation, quelques petites batailles de version avec php sinon tout s'est bien passé.
Par contre je me heurte à un bug concernant le mod eXpedition, impossible de lui faire prendre en compte les messages de gain ressources. Tous les autres types de messages d'expédition passent (vaisseaux, retard, pirates, aliens...) mais pas les ressources.

Dans les logs erreur, j'ai ce message :
PHP Warning:  preg_match(): Compilation failed: escape sequence is invalid in character class at offset 33 in /opt/ogspy/mod/expedition/_xtense.php on line 187

La ligne 187 correspond à la première ligne de ce bloc...
                else if(preg_match($regexRess, $content, $expRess) != 0){
                        logging("RESSOURCES");
                        logging("Ressources1 : ".$expRess[1]);
                        logging("Ressources2 : ".$expRess[2]);
                        //      L`attaquant obtient Antimatière (AM) 310.Extrait du journal
                        log_('debug', $expRess[2]);
                        if(preg_match("/Métal/", $expRess[1]))
                        {
                                $typeRess = 0;
                                $met = str_replace('.','', $expRess[2]);
                                $cri = 0;
                                $deut = 0;
                                $antimat = 0;
                        }
                        if(preg_match("/Cristal/", $expRess[1]))
                        {
                                $typeRess = 1;
                                $met = 0;
                                $cri = str_replace('.','', $expRess[2]);
                                $deut = 0;
                                $antimat = 0;
                        }
                        if(preg_match("/Deutérium/", $expRess[1]))
                        {
                                $typeRess = 2;
                                $met = 0;
                                $cri = 0;
                                $deut = str_replace('.','', $expRess[2]);
                                $antimat = 0;
                        }
                        if(preg_match("/Antimatière/", $expRess[1]))
                        {
                                $typeRess = 3;
                                $met = 0;
                                $cri = 0;
                                $deut = 0;
                                $antimat = str_replace('.','', $expRess[2]);
                        }
                        if($typeRess == -1)
                        {
                                die("Parsing Error");
                        }

                        logging("Ressources : Insertion table : ".TABLE_EXPEDITION);
                        $query =
                                        "INSERT INTO ".TABLE_EXPEDITION."
                                        (user_id, date, pos_galaxie, pos_sys, type)
                                        VALUES ($uid, $timestamp, $galaxy, $system, 1)";
                        $db->sql_query($query);
                        $idInsert = $db->sql_insertid();
                        logging("Ressources : Insertion table : ".TABLE_EXPEDITION." = OK");
                        logging("Ressources : Insertion table : ".TABLE_EXPEDITION_RESS);
                        $query =
                                "INSERT INTO ".TABLE_EXPEDITION_RESS."
                                (id_eXpedition, typeRessource, metal, cristal, deuterium, antimatiere)
                                VALUES ($idInsert, $typeRess, $met, $cri, $deut, $antimat)";
                        $db->sql_query($query);
                        logging("Ressources : Insertion table : ".TABLE_EXPEDITION_RESS." = OK");
                        return true;
                }

Quelqu'un aurait une idée?
Merci
 

DarkNoon

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 2629
  • Country: fr
  • Karma: +15/-2
  • Retraité Actif
    • Hébergement de serveurs OGSpy
Re : Erreur code ressources - MOD eXpedition v1.2.2
« Réponse #1 le: 19 juin 2020, 18:08:27 »
Hello

La correction a été identifiée. La publication est proche ;-)
Héberger votre OGSpy : Hébergement
Réseaux Sociaux OGSteam :Facebook
 

roms0406

  • Dev OGSteam
  • Complètement accro !
  • ***
  • Messages: 300
  • Karma: +3/-0
Re : Erreur code ressources - MOD eXpedition v1.2.2
« Réponse #2 le: 19 juin 2020, 19:00:04 »
Bonjour,

Oui en effet c'est un problème lié à la version 7.4 de php, un changement dans la syntaxe qui fait que ça ne fonctionne plus normalement.
C'est toujours fonctionnel avec les versions antérieures de php, je n'ai pas eu trop le temps de m'y metttre ces derniers temps, je vais essayer de corriger ça au plus vite ;)
 

DarkNoon

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 2629
  • Country: fr
  • Karma: +15/-2
  • Retraité Actif
    • Hébergement de serveurs OGSpy
Re : Erreur code ressources - MOD eXpedition v1.2.2
« Réponse #3 le: 30 juin 2020, 16:42:30 »
La Pull Request est disponible :-)
Héberger votre OGSpy : Hébergement
Réseaux Sociaux OGSteam :Facebook
 

Obscur

  • Arrivant
  • Messages: 4
  • Karma: +0/-0
Re : Erreur code ressources - MOD eXpedition v1.2.2
« Réponse #4 le: 10 septembre 2020, 20:04:59 »
Hello,

Je ne sais pas si c'est toujours d'actualité, mais le problème est effectivement lié aux échappements (et à ce qui doit maintenant être échappé) des caractères des regex sur la version 7.4 de php.
J'avais réussi à faire marcher le truc en bidouillant la ligne 74 du fichier xtense.php dans le dossier du mod extension:
J'ai remplacé:
$regexRess  = "/L`attaquant\sobtient\s(\S+)\s[\(\AM\)]*\s?([\d+\.+]*)/";
Par la ligne suivante:
$regexRess  = "/L`attaquant\sobtient\s(\S+)\s[\\\(\\\AM\\\)]*\s?([\d+\.+]*)/";

Je partage à tout hasard, si ça peut servir à quelqu'un  :)
 

DarkNoon

  • Administrator
  • Complètement accro !
  • *****
  • Messages: 2629
  • Country: fr
  • Karma: +15/-2
  • Retraité Actif
    • Hébergement de serveurs OGSpy
Re : Erreur code ressources - MOD eXpedition v1.2.2
« Réponse #5 le: 11 septembre 2020, 15:49:32 »
Je peux même faire une version du coup :-)
Héberger votre OGSpy : Hébergement
Réseaux Sociaux OGSteam :Facebook