• 05 Juin 2026, 10:42:26


Auteur Sujet: [RESOLU]couleur décimale  (Lu 1893 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
[RESOLU]couleur décimale
« le: 26 Septembre 2009, 13:30:33 »
salut il y a quelque temp javais vue un fonction qui perméter de convertire une coueleur en décimale j'en aurai besoins car je narive pas a faire cela


format(unlimited, sizeof(unlimited), "%d%d%d", col1, col2, col3);



SetPlayerColor(playerid, unlimited);



ou si vous avez une autre solution .....



mercie a ++  :)
« Modifié: 26 Septembre 2009, 23:33:48 par Mr_C30 »



Radis du soir bonsoir !


Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : couleur décimale
« Réponse #1 le: 26 Septembre 2009, 13:31:55 »
La couleur que tu veux convertir est en HEXA ?


++
FS'

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : couleur décimale
« Réponse #2 le: 26 Septembre 2009, 14:02:25 »
format(unlimited, sizeof(unlimited), "%d%d%dAA", col1, col2, col3);
je supose pour une commande qui changerais la couleur du pseudo
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne FuSion

  • Pawn coder
  • *
  • Grand Banditisme
  • for(new i = 0; i < INFINI; i++)
  • Messages: 888
    • Voir le profil
Re : couleur décimale
« Réponse #3 le: 26 Septembre 2009, 14:13:08 »
Oui mais voir sa question il faut d'abord savoir l'origine de sa couleur pour pouvoir la convertir en décimal

On peux pas convertir a partir de rien ..

PS : Il faudrait savoir d'abord s'il ne sait pas tromper dans sa question , parceque je trouve sa louche


++
FS'

Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
Re : couleur décimale
« Réponse #4 le: 26 Septembre 2009, 16:46:48 »
donc voila pour fusion

new col1 = 155;
new col2 = 40;
new col3 = 50;


format(unlimited, sizeof(unlimited), "0x%d%d%dAA", col1, col2, col3);



SetPlayerColor(playerid, unlimited);


le pprobléme c'est que j'ai un argument type mismatch (argument 2)


et surtout que la chaine n'est pas en décimal :/

++



Radis du soir bonsoir !


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : couleur décimale
« Réponse #5 le: 26 Septembre 2009, 18:39:14 »
faudrat demande a syg lui il las fait sur lalu =)



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : couleur décimale
« Réponse #6 le: 26 Septembre 2009, 19:10:20 »
en gros je lui est dit de faire comme ceci mais franchement je ne sais pas

new col1 = 255;
new col2 = 126;
new col3 =0;

new colodeci = col1 && col2 && col3;

SetPlayerColor(playerid, colodeci);

voila sa compile mais franchement je n'est pas tester cette reponse je lui est donner par msn mais je ne sais pas si elle est fonctionnelle.


a vrai dire /color bleu par exemple serais telement plus simple avec un switch est hop
pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : couleur décimale
« Réponse #7 le: 26 Septembre 2009, 19:19:32 »
faites comme ca

new id1 = 255000000;
new id2 = 125000;
new id3 = 150;

new result = id1+id2+id3;

SetPlayerColor(playerid,result);

j ai pas test mais je pense que c' est bon



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne cristab

  • *
  • Messages: 8379
    • Voir le profil
Re : couleur décimale
« Réponse #8 le: 26 Septembre 2009, 19:30:25 »
j'y est penser mais je pense que c'est pour une commande du genre

/nickcolor 255 255 255

donc au final ce seras intepetrer 765


pas d'aide en PM, vous êtes sur un forum est il me semble que vous êtes la pour avoir de l'aide donc pourquoi MP une seul personne qui ne vous répondra pas alors qu'il y a plein de membre ici

Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
Re : Re : couleur décimale
« Réponse #9 le: 26 Septembre 2009, 20:00:15 »
faites comme ca

new id1 = 255000000;
new id2 = 125000;
new id3 = 150;

new result = id1+id2+id3;

SetPlayerColor(playerid,result);

j ai pas test mais je pense que c' est bon

lol mais bon on c'est jamais je go test ^^

et j'edit :P


edit:

enfaite j'ai esaye secis

new col = 2551001000;




SetPlayerColor(playerid, col);


se qui ma donner une couleur rouge / bordeux


donc si je fait ta solution elle devrai marcher ( logiquement)


j'y est penser mais je pense que c'est pour une commande du genre

/nickcolor 255 255 255

donc au final ce seras intepetrer 765




pas forcément si je multiplie le premier "col1" par 1000000 ( sil est inférieur a 99 par 100000 et inférieur a 9 10000)

ainsi de suite


je posterais la commande si ji arive :P



++ :)
« Modifié: 26 Septembre 2009, 20:08:25 par Mr_C30 »



Radis du soir bonsoir !


Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : couleur décimale
« Réponse #10 le: 26 Septembre 2009, 20:56:19 »
yep tu a juste a multiplier

j pensais que vous avez comrpis



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
Re : couleur décimale
« Réponse #11 le: 26 Septembre 2009, 20:59:49 »
oui mais si je multiplie disons 80  par 1000000 =  80000000   mais comen ajouter un zero devan le 8 car sinon sa me compteras toujour 800 ^^


++



Radis du soir bonsoir !


Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : couleur décimale
« Réponse #12 le: 26 Septembre 2009, 21:11:46 »
Salut,

hélas, la solution est légèrement plus compliqué, il faut utiliser un opérateur moins connu, le left shit (<<)

je donne un exemple, une petite fonction pour convertir un nombre en hexadécimale (en texte) en sa valeur:

stock strhex(string[])//par sim (légèrement inspiré de la fonction de Y_LESS)
{
new retour = 0, idx = 0;
if((idx = strfind(string, "0x", true)) != -1)
{
idx+=2;
while(string[idx] >= '0' && string[idx] <= 'F')
{
switch(string[idx])
{
case '0'..'9':
{
retour <<= 4;
retour += string[idx] - '0';
}
case 'a'..'f','A'..'F':
{
retour <<= 4;
retour += (string[idx]|0x20) - 'a' +10;
}
default:
{
   break;
}
}
idx++;
}
}
printf("return value: %d (%x)", retour, retour);
return retour;
}

donc on envoie utilise comme ceci:

blanc = strhex("0xFFFFFFFF");
donc maintenant dans ton cas, tu récupère les trois composantes, puis tu fais un truc de ce genre:

new color = composante1;
color <<= 8;//correspond à la taille d'une composante, 8 bit
color += composante2;
color <<= 8;
color += composante3;

++Sim++
« Modifié: 26 Septembre 2009, 21:13:29 par Sim »





Hors ligne Mr_C30

  • *
  • Gangster
  • souvent conquise jamais soumise
  • Messages: 1937
    • Voir le profil
Re : couleur décimale
« Réponse #13 le: 26 Septembre 2009, 21:16:43 »
hum ok je vais observer secis  mercie :)

++

edit ok mercie beaucoup sim


voicie la commande /ncol comme promit  qui permet de choisir la couleur de son pseudo


if(strcmp(cmd, "/ncol", true) == 0)
{

if(logged[playerid] == 1)
{
tmp = strtokgp(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_SYSTEM, "/ncol [Rouge 0/255] [Vert 0/255] [Bleu 0/255]");
return 1;
}

new col1;
col1 = strval(tmp);
if(col1 < 0 || col1 > 255) { SendClientMessage(playerid, COLOR_ORANGE, "Coueleur 1 Invalide!"); return 1; }
tmp = strtokgp(cmdtext, idx);
n1[playerid] = col1;

new col2;
col2 = strval(tmp);
if(col2 < 0 || col2 > 255) { SendClientMessage(playerid, COLOR_ORANGE, "Couleur 2 Invalide!"); return 1; }
            tmp = strtokgp(cmdtext, idx);
n2[playerid] = col2;

            new col3;
col3 = strval(tmp);
if(col3 < 0 || col3 > 255) { SendClientMessage(playerid, COLOR_ORANGE, "Couleur 3 Invalide!"); return 1; }
n3[playerid] = col3;


    format(unlimited, sizeof(unlimited), "%s voicie vos Couleurs NCOL  R:%d  G:%d  B:%d!", name[playerid], col1, col2, col3);
SendClientMessage(playerid, COLOR_ORANGE, unlimited);


new color = col1;
color <<= 8;//By sim
color += col2;
color <<= 8;
color += col3;
color <<= 8;


SetPlayerColor(playerid, color);
}
else
{
    format(unlimited, sizeof(unlimited), "%s Vous devez être loger !", name[playerid]);
SendClientMessage(playerid, COLOR_ORANGE, unlimited);
  }
return 1;
}



voila a vous de jouer avec les variables ^^


++ :)
« Modifié: 26 Septembre 2009, 23:32:55 par Mr_C30 »



Radis du soir bonsoir !