[Tutorial] Fixer le bug ZeeX compiler patch et sscanf
#1

Yop.

Micro tutoriel, car y'a pas besoin d'en dire beaucoup lа-dessus : c'est simple ET risquй.

Explications :

Il y a un bug qui fait que le compilateur de ZeeX ne lit pas _samp_included а la compilation. C'est emmerdant car sscanf a besoin de ce define pour fonctionner. Heureusement, y'a un moyen de fixer зa. Je le dis et je le rйpиte : je ne suis pas ****** donc si votre include crash et que votre script est mort а cause de зa, dйsolй.

J'ai fait une micro bidouille de l'include pour pouvoir l'utiliser avec le patch compilateur de ZeeX : le hic c'est que maintenant si on oublie d'ajouter l'include a_samp (y'a des gogoles sur terre hein), votre compilateur plante.

La bidouille ?

Au dйbut de l'include, vous devriez avoir зa (en dessous des commentaires, lignes 27 а 31)

PHP Code:
#if defined _inc_a_npc
        #pragma library sscanf
#elseif !defined _inc_a_samp
        #error Please include <a_npc> or <a_samp> first.
#endif 

Le truc, c'est de remplacer ces quatre lignes par une seule :

PHP Code:
#pragma library sscanf 

Voilа, tout devrait bien aller.
Orvoir.








Nan j'rigole, j'explique un peu quand mкme.

Puisque _samp_included n'est pas lu, sscanf ne peut pas fonctionner (enfin ne peut pas compiler).
La solution est simple : "sauter" l'йtape de vйrification de l'include a_samp dans l'йtape de compilation.

Mais pourquoi pas tout supprimer ? Pour ceux qui savent se servir de #pragma, la question se pose pas. Pour les gens normaux, disons que sans cette ligne, l'include ne sert plus а rien.

Par exemple, pour #pragma library s4t3kleboss , зa indiquera au compilateur d'aller chercher dans le dossier plugins un fichier s4t3kleboss.dll ou .so . Pour sscanf, c'est pareil. Sans cette ligne, le plugin devient inutile dans votre code.

Si j'ai fait un truc qu'il fallait pas faire ou que je vais tuer des millions de scripts franзais avec ma mйthode, merci а un bon samaritain d'йclairer ma lanterne.

Orvoir (pour du vrai)

EDIT : 12 juin

Selon ******, y'a une autre solution qui permet de fonctionner sans bidouilles.
Par contre, зa ne marche qu'avec pawno. (Enfin ceux qui savent modifier les ordres passйs а la ligne de commande, faudra vraiment m'expliquer).

Allez dans le dossier pawno (lа oщ y'a pawno.exe).
Crйer un nouveau fichier appelй pawn.cfg et dedans, mettez-y SEULEMENT "-Z" (sans les guillemets).

Si vous compilez dйjа en d3, rajoutez -Z derriиre.

A tester.
Reply
#2

Je suis officiellement passй sous le compilateur de Zeex (oui bah quoi, j'm'en passais bien jusqu'а aujourd'hui) et c'йtait juste pour te faire remarquer que moi non plus j'ai pas compris comment modifier la ligne de commande en utilisant Pawno, mais en tout cas j'utilise Notepad++ et зa fonctionne parfaitement.

Voilа c'йtait le dйterrage de sujet de Dutheil, BTTF.

Pour revenir au sujet, y a une autre mйthode, c'est d'utiliser "compat" avec pragma, voir ce que j'ai mis dans mon GM :
PHP Code:
#if __Pawn != 0x030A
    #error Download the Zeex's PAWN Compiler : https://github.com/Zeex/pawn/releases
// '
#endif

#pragma compat 1 // https://github.com/Zeex/pawn/wiki/Compatibility-mode 
Reply
#3

J'ai trouvй la version officielle pour rйparer le bug : compiler avec -Z
Reply
#4

Trou d'balle, j't'ai dit d'utiliser "#pragma compat 1" c'est mieux, comme si c'est ton code est compilй par d'autres gens, ils auront pas besoin de se prendre la tкte avec le params du compilateur. :mrgreen:
Reply
#5

Qu'est-ce que j'en ai a foutre des autres gens ? :mrgreen:
Reply
#6

Quel manque de respect olalala
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)