[Résolu] Problème uniform police

Bonjour

J’ai beaucoup de mal a trouvé un bon tuto pour personnalisé les uniforme police etc… Donc je fais avec les moyens du bord c’est à dire ce que je trouve a droite et a gauche, même ici beaucoup de liens sont mort dommage.

Donc j’ai un soucis j’essaie de mettre a mes différents grade gendarmerie, une tenue différente, je bosse sur le fichier fn_playerSkins.sqf, voici la partie concerné, quelqu’un peut t’il me dire si déjà c’est bon ?

Vous en remerciant d’avance

https://pastebin.com/BauAkvEn

Meilleur moyen de savoir si c’est bon est de tester :stuck_out_tongue:
Plusieurs choses, je n’ai pas testé et regardé que rapidement

_skinName = ["textures\Gendarmerie\PoloGendarmerie3_",(FETCH_CONST(life_coplevel)),".paa"] joinString "";

Si ta tenue PoloGendarmerie3 est spécifique pour ton grade 3 tu n’as pas besoin d’ajouter le FETCH_CONST(life_coplevel). Il est utilisé ici pour trouver la texture cop_uniform_X (X étant le niveau de grade) Dans ton gars tu pourrais simplement mettre:

skinName =["textures\Gendarmerie\PoloGendarmerie3_.paa"] ;

ou bien renommer tes textures PoloGendarmerie.paa et mettre dans ton fichier fn_playerSkins.sqf:

_skinName = ["textures\Gendarmerie\PoloGendarmerie",(FETCH_CONST(life_coplevel)),".paa"] joinString "";

Ainsi ton grade 1 aura la texture PoloGendarmerie1.paa
Ton grade 2 aura la texture PoloGendarmerie2.paa etc

Petit edit (je ne peux pas modifier ma publication précédente)

Oublie la seconde partie de mon message après avoir lu un peu plus ton code, mon conseil ne fonctionnera pas dans ton cas sauf si tu fais une texture pour chaque grade en ayant le même chiffre de grade dans ta condition et dans le nom de ta texture

Bonsoir

J’ai une texture pour chaque grade en effet, sur la texture c’est juste l’écusson qui change, mais je vais quand même test ce que tu me dis, car ma solution a moi ne fonctionne pas, et je te tiens au courant, en tout cas merci pour ta réponse

As-tu une erreur qui s’affiche?

Ligne 2 tu verifies si l’uniforme du joueur est égal à U_Rangemaster donc ligne 9 tu n’as pas besoin de refaire cette vérification puisque si la condition ligne 1 n’est pas remplie tu sors de la case west du switch
Ensuite toujours ligne 9 tu ne mets pas

if (FETCH_CONST(life_coplevel) >= 3)

mais

if (FETCH_CONST(life_coplevel) >= 2)

vu que tu vérifies ligne 13 si le coplevel est >= 3

Ensuite l’erreur doit se situer sur la façon dont tu as nommé tes textures
Ligne 6 tu parles d’un cop_uniform_1 dans ton dossier textures. Existe-t-il?
De même pour pour PoloGendarmerie2.paa et ton PoloGendarmerie3_3.paa dans ton dossier textures\cop_uniform_

Oui le cop_uniform_1 est bien dans mon dossier textures, c’est d’ailleurs le seul qui fonctionne, j’ai laisser la ligne d’origine en faite et juste changer l’image.

Ca se corse a partir du 2 qui est le nom PoloGendarmerie2.paa qui se trouve dans mon dossier textures\Gendarmerie\PoloGendarmerie2.paa

La j’ai refais :

https://pastebin.com/khVaiQyZ

Bon bah toujours pareil, le premier on le vois bien dans le magasin, les autres non

tu n’as pas compris ce que fait joinString
tu as ton nom de texture, par exemple: PoloGendarmerie2.paa
si tu mets ça

if (FETCH_CONST(life_coplevel) >= 2) then {
                    _skinName = ["textures\Gendarmerie\PoloGendarmerie2",(FETCH_CONST(life_coplevel)),".paa"] joinString "";
                };

le nom de la texture que le code cherchera ne sera pas PoloGendarmerie2.paa, mais PoloGendarmerie22.paa. Or ta texture s’appelle PoloGendarmerie2.paa.

Je dois faire quoi du coup ?

Renommé la texture PoloGendarmerie02.paa ?

Si tu utilises joinString renomme tes textures simplement
PoloGendarmerie1.jpg
PoloGendarmerie2.jpg
PoloGendarmerie3.jpg
PoloGendarmerie4.jpg
PoloGendarmerie5.jpg

et dans ton _skinName tu mets

_skinName = ["textures\Gendarmerie\PoloGendarmerie",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";

et dans le cas où tu ne souhaites plus utiliser joinString tu mets:
maTexture1.jpg
maTexture2.jpg
maTexture3.jpg
maTexture4.jpg
maTexture5.jpg

et ton _skinName:

_skinName = ["textures\Gendarmerie\maTexture1.jpg"] ;

Autre chose, je t’ai parlé de texture du type .paa mais enfaite si ton extension de fichier est différent cela va te soit que tu dois mettre dans ton _skinName le même format que ta texture

Merci encore pour ta réponse

J’ai mis cela https://pastebin.com/xkz2dZGv mais cela ne change rien…

Je sais plus trop quoi faire…

Sachant que la note pour mes skins c’est :

Grand froid : U_B_CombatUniform_mcam
Long : U_I_OfficerUniform
Polaire : U_B_CombatUniform_mcam
Recrue : U_Rangemaster

Recrue 2,3,4,5
Polaire 6
Officier 7

Comment as-tu nommé tes textures? Ensuite

Grand froid : U_B_CombatUniform_mcam
Long : U_I_OfficerUniform
Polaire : U_B_CombatUniform_mcam
Recrue : U_Rangemaster

Si je comprends bien ta tenue grand froid correspond à l’uniforme “U_B_CombatUniform_mcam”, mais lorsque je regarde ton code, je ne vois apparaitre nul par cette uniforme. De plus, ligne 2 tu as:

if (uniform player isEqualTo "U_Rangemaster") ...

Donc si le joueur n’a pas l’uniforme “U_Rangemaster”, tu ne rentres pas dans le code.
Il te faudrait donc faire par exemple:
(La je ne prends pas en compte le coplevel, mais seulement l’uniforme du joueur)

case west: {
    if (uniform player isEqualTo "U_Rangemaster") then {
        _skinName = "textures\Gendarmerie\taTexture1.jpg";
    };
    if (uniform player isEqualTo "U_I_OfficerUniform") then {
        _skinName = "textures\Gendarmerie\taTexture2.jpg";
    };
    if (uniform player isEqualTo "U_B_CombatUniform_mcam") then {
        _skinName = "textures\Gendarmerie\taTexture3.jpg";
    };
    if (uniform player isEqualTo "U_B_CombatUniform_mcam") then {
        _skinName = "textures\Gendarmerie\taTexture4.jpg";
    };
    player setObjectTextureGlobal [0, _skinName];
};

Autre chose importante, il faut que tes textures soient compatibles avec l’uniforme. Si tu souhaites jouer avec le coplevel, il te suffit de te servir FETCH_CONST et de joinString tel que:

if (FETCH_CONST(life_coplevel) >= 5) then {
  _skinName = ["textures\taTexture",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
};

Erreur que tu as faite:
Si tu veux utiliser le levelcop, tu dois vérifier dans ton “config\Config_master.hpp” si:

cop_extendedSkins = true;
ligne 66 pour moi

Si c’est sur true ta condition:

if (LIFE_SETTINGS(getNumber,"cop_extendedSkins") isEqualTo 1)

sera exécutée ensuite si tes textures s’appelle:
taTexture1.jpg
taTexture2.jpg
taTexture3.jpg

tu auras:

if (FETCH_CONST(life_coplevel) >= 1) then {
     _skinName = ["textures\Gendarmerie\taTexture",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
};              
if (FETCH_CONST(life_coplevel) >= 2) then {
     _skinName = ["textures\Gendarmerie\taTexture",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
};
if (FETCH_CONST(life_coplevel) >= 3) then {
     _skinName = ["textures\Gendarmerie\taTexture",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
};

On va décortiquer ça. Dans un premier temps, on regarde si le coplevel est égal ou supérieur à 1. Si la condition est remplie tu continues de lire le code sinon tu en sors. Ensuite tu as une variable _skinName à qui tu donnes pour valeur une l’élément “taTexture” auquel tu ajoutes le chiffre correspondant au coplevel (grâce à (FETCH_CONST(life_coplevel)) et à joinString “”) du joueur donc 1 + l’extension du fichier .jpg
Au final, tu recherches l’élément taTexture1.jpg se trouvant dans “textures\Gendarmerie”.

Bon j’ai modifier avec ce que j’ai compris que tu m’as mis, j’ai pas d’erreur mais quand je me co les textures sont invisible, je comprend pas pourtant c’est bien le bon chemin

https://pastebin.com/34xDcyqb

Ligne 8, 12, 16, 20, 24 et 33 tu as des erreurs, tu as mis un “,” au lieu d’un “;”
Ligne 5 tu as une condition vide donc inutile
essaie avec ça

case west: {
     if (uniform player isEqualTo "U_B_CombatUniform_mcam") then {
          _skinName = "textures\Gendarmerie\UniformePolaireGendarme.jpg";
     };
     if (uniform player isEqualTo "U_I_OfficerUniform") then {
          _skinName = "textures\Gendarmerie\UniformeColonel.jpg",
     };
     if (uniform player isEqualTo "U_Rangemaster") then {
          _skinName = "textures\cop_uniform.jpg";
          if (LIFE_SETTINGS(getNumber,"cop_extendedSkins") isEqualTo 1) then {
               if (FETCH_CONST(life_coplevel) >= 2) then {
                    _skinName = ["textures\Gendarmerie\PoloGradeDeux",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
               };
               if (FETCH_CONST(life_coplevel) >= 3) then {
                    _skinName = ["textures\Gendarmerie\PoloGradeTrois",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
               };
               if (FETCH_CONST(life_coplevel) >= 4) then {
                    _skinName = ["textures\Gendarmerie\PoloGradeQuatre",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
               };
               if (FETCH_CONST(life_coplevel) >= 5) then {
                    _skinName = ["textures\Gendarmerie\PoloGradeCinq",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
               };
           };
     };
     player setObjectTextureGlobal [0, _skinName];

};

Toujours invisible, par contre dans le magasin c’est les tenue de base mais elles sont pas invisible elles

ton cop_extendedSkins est bien sur true?
tes textures sont bien compatibles avec l’uniforme ciblé?
le chemin d’accès est-il le bon?





case west: {
    if (uniform player isEqualTo "U_Rangemaster") then {
        _skinName = "textures\cop_uniform.jpg";
        if (LIFE_SETTINGS(getNumber,"cop_extendedSkins") isEqualTo 1) then {
            if (FETCH_CONST(life_coplevel) >= 1) then {
                _skinName = ["textures\cop_uniform_",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
            };
            if (FETCH_CONST(life_coplevel) >= 2) then {
                _skinName = ["textures\cop_uniform_",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
            };
            if (FETCH_CONST(life_coplevel) >= 3) then {
                _skinName = ["textures\cop_uniform_",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
            };
            if (FETCH_CONST(life_coplevel) >= 4) then {
                _skinName = ["textures\cop_uniform_",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
            };
            if (FETCH_CONST(life_coplevel) >= 5) then {
                _skinName = ["textures\cop_uniform_",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
            };
        };
        player setObjectTextureGlobal [0, _skinName];
    };
};

Merci je vais test. Pour les deux autres tenues je les ajoute comment du coup ?

j’ai remarqué que lorsque l’on met un coplevel supérieur à la derniere condition, la tenue devient invisible
pour ce qui est des autres tenues si tu sais quel uniforme va avec quel texture il faut faire ça (contrairement à ce que je t’ai dit sur ta publi, je crois m’être trompé):

player setObjectTextureGlobal [0, "textures\taTexture.jpg"];