GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: rapido le 06 Août 2010, 00:22:06

Titre: Couleur Random
Posté par: rapido le 06 Août 2010, 00:22:06
Salut , Me revoilà pour une autre aide ,

Allor voila j'ai fait un DM avec lorsque l'on fait /dma Bah sa nous envoie dans un DM dans une Equipe et /dmb dans une autre équipe mais c'est le même DM
Et chaque Equipe a Une Couleur Spécifique /dma (Vert) /dmb (Rouge)

Bah mon problème c'est quand on fait /dmquit Bah Que sa puisse nous remettre les couleur original car rester avec les couleur DM c'est pas trop Excellent
 
Voila j'espert mettre bien exprimé

Merci

++
Titre: Re : Couleur Random
Posté par: Brian Turner le 06 Août 2010, 00:29:59
Bonsoir,

avant de changer la couleur enregistre dans une variable la couleur du joueur avec GetPlayerColor(playerid);
donc :
en haut du GM :
Code: (pawn) [Sélectionner]
new CouleurJoueur[MAX_PLAYERS];dans ta commande /dmb( /!\ avant de changer la couleur du joueur) :
Code: (pawn) [Sélectionner]
CouleurJoueur[playerid] = GetPlayerColor(playerid);dans ta commande /dmquit :
Code: (pawn) [Sélectionner]
SetPlayerColor(playerid, CouleurJoueur[playerid]);
Voila j'espere que tu as compris
Titre: Re : Couleur Random
Posté par: rapido le 06 Août 2010, 01:08:21
Merci , J'ai test mais Aprés avoir fait /dmquit la seul couleur qui vient c'est Noir du coup On voit meme pas les pseudo dans TAB et nis dans le Chat  :-\
Titre: Re : Couleur Random
Posté par: S!m le 06 Août 2010, 04:39:42
Salut,

comme par hasard, en voyant ce topic je vient de me rappeler que la couleur de connexion n'est pas accessible. Il faut changer la couleur au moins une fois avant que GetPlayerColor soit fonctionnel.
sinon la fonction retourne 0 (donc noir).

++Sim++
Titre: Re : Couleur Random
Posté par: rapido le 06 Août 2010, 04:46:57
C'est a dire , Comment dois-je m'y prendre ?
Titre: Re : Couleur Random
Posté par: Brian Turner le 06 Août 2010, 11:00:03
quand le joueur se connecte(OnPlayerConnect) tu lui change la couleur
Titre: Re : Couleur Random
Posté par: rapido le 06 Août 2010, 16:00:40
Haaa ... Donc

Public OnPlayerConnect
{
GetPlayerColor(playerid,/*Je mais quoi ici*/);
return 1;
}

Merci
Titre: Re : Couleur Random
Posté par: rapido le 06 Août 2010, 16:33:00
Oui je connais mais je doit faire Des multiple couleurs car si le serveur détient beaucoup de joueurs je ne pas me permettre ne noté une couleur par une
Titre: Re : Couleur Random
Posté par: rapido le 06 Août 2010, 17:16:34
Oui , mais C'est long en plus si ya plus de 20 personne donc plus de 20 couleurs , Fraudais une technique que lorsque le joueurs leave le DM bah sa remais sa couleur quant il c'est connecter ou sinon une manière rapide de changer de couleur aprés son leave mais je trouve pas
Titre: Re : Couleur Random
Posté par: rapido le 06 Août 2010, 17:39:41
Citer
fait comme je t'ai dis un array de couleur et puis tu lui random SetPlayerColor a la connection , tu save quand il va en DM et quand il leave tu lui remet

Houla Je voit pas comment Mis prendre Heu (Sans vouloir chercher à avoir le script total) Tu pourrai me donner un bout de code car je voit pas du tout (J'ai compris mais je voit pas)

Merci
Titre: Re : Couleur Random
Posté par: D0os-Nox le 06 Août 2010, 18:34:53
Bonjour, Le wiki contient la réponse à ta question, une recherche plus approfondi t'aurai permis de trouver ceci : http://wiki.sa-mp.com/wiki/Random (http://wiki.sa-mp.com/wiki/Random)

Donc, dans l'exemple donner c'est pour un random de position ( Il suffit de la modifier celons tes envies ) Voici un exemple :

new RandomCouleur[][2] =
{
    // Couleur en format Hex
    {0xFFFFFFAA, 0xFFFFFFAB}
};

public OnPlayerSpawn(playerid) // CallBack Appelé au spawn du joueur
{
    new rand = random(sizeof(RandomCouleur)); // On defini rand comme étant le random couleur

    // On met la fonction SetPlayerColor au joueur avec le random créer plus haut
    SetPlayerColor(playerid, RandomCouleur[rand][0]); // [0] = Valeur 1  ( Il faut compter la valeur neutre comme positif, donc 0 = +1)

    return 1; // On ferme la callback
}

 :blink D0os-Nox  :laugh
Titre: Re : Couleur Random
Posté par: cristab le 06 Août 2010, 18:35:45
plus simple samp donne une couleur differente par joueur par default donc

new CouleurPerso[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
   CouleurPerso[playerid]=GetPlayerColor(playerid);
   return 1;
}

pour remettre la couleur SetPlayerColor(playerid,CouleurPerso[playerid];);
Titre: Re : Couleur Random
Posté par: Brian Turner le 06 Août 2010, 18:56:46
c'est ce que j'ai dit plus haut non? et apres dans sa commande pour quitter le dm il fait un SetPlayerColor(playerid,CouleurPerso[playerid]);
Titre: Re : Couleur Random
Posté par: rapido le 06 Août 2010, 19:01:51
Cristab J'ai essayer (0 Erreur Ni warning) J'ai tester bah Sa foncitonne pas  ???
Titre: Re : Couleur Random
Posté par: S!m le 07 Août 2010, 00:19:05
Salut,

tout est expliqué sur le wiki, donnez vous la peine de lire:

1. GetPlayerColor est "buggé", la fonction retourne 0 tant qu'on a pas utiliser SetPlayerColor.
2. Le wiki donne LA solution. Quelqu'un a fais la liste des couleurs de base (qui vont selon le ID, un même ID est toujours de la même couleur) et la méthode (très simple) afin de pouvoir s'en servir correctement est clairement citée

(la page: http://wiki.sa-mp.com/wiki/ColorFix (http://wiki.sa-mp.com/wiki/ColorFix))

le seul ennui c'est qu'il n'y a que les 200 premiers, mais vous n'aurez qu'à rouvrir le topic quand vous aurez atteint les 200 joueurs....

++Sim++
Titre: [Résolu]Re : Couleur Random
Posté par: rapido le 07 Août 2010, 01:41:12
Houaaa C'est exactement ce que je rechercher en plus j'ai tout fini (Grace a la Superbe Aide de Brian Turner) et il me manquer exactement les couleurs plein en plus , Houaa

Merci Sim t le meilleur :)

Ps: Look Pas Car si il faut que je t'en reparle aprés arriver a 200joueurs on c'est jamais lol

++
Titre: Re : Couleur Random
Posté par: Brian Turner le 07 Août 2010, 13:49:38
Merci Sim, car hier soir avec Rapido on c'est fait "chier" a trouvé une solution, j'avais connencé, il y avait que 14 couleurs lol.

Sim (ou un autre scripteur) dit moi tu peux me dire si j'ai bien coder(sa permet que un joueur n'est jamais la couleur d'un autre) :
Code: (pawn) [Sélectionner]

new ......

for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerColor(playerid) == GetPlayerColor(playerid))continue;
if(GetPlayerColor(i) == GetPlayerColor(playerid))
{
new RandColor = random(sizeof(PlayerColor));
SetPlayerColor(playerid, PlayerColor[RandColor][0]);
}
}
compiler et aucune erreur, mais j'aimerai savoir si sa sert a quelque chose
Titre: Re : Couleur Random
Posté par: S!m le 07 Août 2010, 16:22:31
Salut,

plus ou moins car déjà:

 - tu risque d'avoir des couleurs de transparence différentes (même invisible :s)
 - un changement de 1 dans une composante, peu importe laquelle permet d'avoir la couleur, alors que les couleurs sont pratiquement identique (surtout si c'est la composante alpha)

le mieux c'est vraiment de faire un tableau manuellement sinon  ce ne sera jamais parfait. On pourrait toujours faire un truc du genre on pige au hasard dans le tableau en vérifiant que personne n'a cette couleur, mais c'est plutôt long et ennuyeux.

++Sim++
Titre: Re : Couleur Random
Posté par: Brian Turner le 08 Août 2010, 01:55:21
dernier message, le prochain dans1 semaine(par en vac), mon new PlayerColor est un tableau, et j'ai mis des couleurs pas trop transparente. a Dans 1 semaine, bon script a tous!
Titre: Re : Couleur Random
Posté par: S!m le 08 Août 2010, 19:45:27
Salut,

ah je suis dans les pommes désolé, j'avais pas vu que tu pigeais dans un tableau, je pensais que tu générais une couleurs simplement avec un random (genre random(0xFFFFFFFF)).
Dans ce cas, le résultat peut-être interessant^^
(pardonne moi  :'()

++Sim++
Titre: Re : Couleur Random
Posté par: Ssk le 08 Août 2010, 20:51:52
if(GetPlayerColor(playerid) == GetPlayerColor(playerid))continue;

sert un peu à rien ^^


Je pense que tu a voulut faire

if( playerid == i )continue;
non ?


EDIT: Sinon voila j'ai codé un soft, qui m'a fait ça, pour 500 joueur ^^

new PlayerColors[501] = {
0x2750AC20, 0x1415C574, 0x11F733EC, 0x0A0133F8, 0x000B8D9B,
0x01906254, 0x0221C012, 0x004AA0E3, 0x17599F0B, 0x09920FB9,
0x1761DD4A, 0x136F266C, 0x00372B38, 0x00091C0E, 0x1C31FD54,
0x0A0BC822, 0x283BEEF1, 0x0237DD28, 0x0A288596, 0x070DBF92,
0x0B90D704, 0x06F57F7B, 0x04E9BBF8, 0x38A139F2, 0x28BC935D,
0x0146CE5A, 0x05108CF7, 0x0F5B83E7, 0x3FC5848E, 0x2A1814D4,
0x1A014600, 0x04D17460, 0x00844D40, 0x026FAFFC, 0x023A5BF4,
0x052897BC, 0x1BD14D26, 0x164C000C, 0x065F8722, 0x26F15C5E,
0x15D84BEC, 0x022EEAE0, 0x0D3C8900, 0x1CA4F2E8, 0x0EC4C663,
0x169B2DED, 0x02000CAC, 0x071BB362, 0x109EC386, 0x20C2F050,
0x2A42F762, 0x01EBCE32, 0x0D701AE0, 0x08335B66, 0x08F6992B,
0x05043480, 0x18DAE34D, 0x022DACF6, 0x1E9B4E00, 0x089A47C5,
0x02E54BEC, 0x15F5621A, 0x210046ED, 0x0A2D0C2C, 0x13001AB4,
0x0C2B02CF, 0x37FA504D, 0x02DAF294, 0x15EFA2AC, 0x01DFED54,
0x1AD5CFAC, 0x12BBC47E, 0x07EFA1AD, 0x112CF6A7, 0x0B51F39F,
0x01D9CD66, 0x01BF91BC, 0x1C88E830, 0x155CCC6C, 0x098C81CC,
0x053A541C, 0x06A58763, 0x08539644, 0x21D086A8, 0x06994DAE,
0x1CB3E3D0, 0x25D0E1AC, 0x06949404, 0x06284168, 0x12EA1F1C,
0x00812B9D, 0x018ED270, 0x2BFDFEA4, 0x00019DDB, 0x02562DCE,
0x0CEFCFC2, 0x05A4D7F6, 0x0291D15B, 0x2107D358, 0x034F2F50,
0x292D8032, 0x1F1200DC, 0x0671EC78, 0x13B2087D, 0x067EDCC0,
0x02A4EC93, 0x03E6AE67, 0x1D3767A6, 0x0B5BD254, 0x04157000,
0x184874D0, 0x054F0654, 0x0B2FEA80, 0x109AA7BE, 0x02E322C1,
0x0D9501A8, 0x1CD2FDD0, 0x2D56739D, 0x18489D36, 0x0D7A716E,
0x0D24A28C, 0x1B0840D8, 0x02EFC50A, 0x202784DE, 0x08B3AC62,
0x1FFCFA6B, 0x07AD677C, 0x1B7059F0, 0x1D0398B0, 0x028B2F64,
0x03676CAF, 0x0B798E26, 0x29BB6A0E, 0x02032F20, 0x23DC0396,
0x21A2FC87, 0x00639430, 0x033D8508, 0x288BE9C4, 0x06098CAC,
0x0ED30ABE, 0x0327E4FA, 0x0EEED401, 0x07D1AF35, 0x0FA306E0,
0x1A5A307D, 0x0089063A, 0x12208E20, 0x2885BFF5, 0x32BD4FA0,
0x0437FFA8, 0x03632552, 0x0D7AA2CB, 0x040CB900, 0x254D6108,
0x0C762D3F, 0x19395994, 0x0BF34ECD, 0x04DBB546, 0x20732B8C,
0x1B2714AE, 0x040317C0, 0x00444EDB, 0x0F553EA2, 0x176F8E61,
0x043AAAF6, 0x269584AC, 0x0CA2212A, 0x131AB36A, 0x17C3E310,
0x0722A78C, 0x02497FA8, 0x00966780, 0x25462065, 0x0642D4AB,
0x00EB12C9, 0x1BF56EC8, 0x001E6A30, 0x27702AA4, 0x2103E026,
0x14978418, 0x296EE7EC, 0x0F8C6C44, 0x06F84FAA, 0x06BF275E,
0x01CFBAF0, 0x0779003C, 0x06889872, 0x05D70C71, 0x2E00CD7C,
0x0E561DC0, 0x06F74966, 0x02344DEA, 0x07E9431A, 0x0B176F73,
0x03AA077E, 0x0CA0B8B7, 0x13CC3DF6, 0x1D48DFCC, 0x2D3D3C8C,
0x0D47C5FF, 0x019161C0, 0x0E54AC28, 0x0047C5C4, 0x222F71F6,
0x0B0A33F9, 0x13B1382C, 0x002D4C9C, 0x04C6BCFF, 0x012C5846,
0x201D8CC4, 0x00126668, 0x11A693C3, 0x1CCA3B29, 0x32B13538,
0x006E8FBB, 0x18CF8F9C, 0x2960F5E6, 0x098F8F78, 0x0626CAE0,
0x03793B48, 0x001D40E8, 0x05730FBE, 0x0541A2F0, 0x1E43BB60,
0x064CB3C6, 0x1742D8F6, 0x23857C7C, 0x225D4C60, 0x038C8397,
0x0390CDF8, 0x0304C290, 0x1D24BD90, 0x01BA24E0, 0x243A9484,
0x022E7C2C, 0x10560BE2, 0x1140B6B8, 0x26F4216E, 0x028E001A,
0x0AB659D8, 0x040278DB, 0x19843FDA, 0x062513A3, 0x0806EDEC,
0x13C3B2B7, 0x02F42B85, 0x002E299C, 0x0627BD8C, 0x2B379918,
0x09C31CB9, 0x35357B89, 0x06180E24, 0x03000EC8, 0x009F4FC0,
0x0F61F07E, 0x0623B724, 0x2728BDC4, 0x1A7FD7E8, 0x1B21FE10,
0x0A003BC6, 0x00D22670, 0x067C35E3, 0x13DCE54C, 0x209F9E74,
0x1AF7E1F2, 0x12BBFA6F, 0x01F8D464, 0x02AE6D44, 0x01C06628,
0x18C0CFAC, 0x353A40E0, 0x0790791C, 0x153514F8, 0x13548F90,
0x06C9B2B6, 0x00E82792, 0x1C71EC40, 0x10405393, 0x0A9F5150,
0x0E2BE268, 0x11D9CF80, 0x0A026F40, 0x29C5A12D, 0x28B1320F,
0x27ACF7E8, 0x037DEF9C, 0x0697B449, 0x23200B27, 0x1099CD29,
0x03FAB64C, 0x126085F1, 0x06BB3368, 0x065A1400, 0x0C2F8D6A,
0x02EF1022, 0x039AEE1E, 0x0DB5AFC0, 0x00A1BC3D, 0x0062C5DD,
0x03184ECC, 0x036E48E6, 0x16CC96B3, 0x1B58BA3B, 0x0937F596,
0x0296C87E, 0x09412A7E, 0x1E2537BB, 0x18BB845C, 0x1CCDF863,
0x0E4BC54D, 0x0048B28C, 0x04608828, 0x0F974DC0, 0x00A8F654,
0x01ED0B48, 0x27C7F3B0, 0x32D0CD4F, 0x08FA7C84, 0x1D6A26D9,
0x00E7B7B4, 0x00774EE4, 0x010BFD78, 0x0592BC38, 0x155FBA88,
0x03023AA5, 0x20A3A96A, 0x1FA3A9C0, 0x12B4AC27, 0x336EC6B0,
0x002CC5F9, 0x0ECACB58, 0x1DB9FB3C, 0x16477D22, 0x17762476,
0x0A786BFC, 0x1D341F80, 0x06815043, 0x1257C070, 0x0512C118,
0x305D3B8E, 0x30A74A88, 0x0B63106F, 0x302F79D3, 0x1EEA66E4,
0x15F8EAA0, 0x089F08E0, 0x0BBEB018, 0x0A7653BD, 0x07764855,
0x08EFB0C9, 0x1710EC64, 0x0B4803D6, 0x06D28E3C, 0x0434B3C8,
0x1DE2BF40, 0x0BE81B46, 0x00CDBD0E, 0x1CAA6EC3, 0x00FA3DC4,
0x012072C6, 0x11822CA0, 0x03088550, 0x097F46D3, 0x1284CC18,
0x0329D818, 0x0B0CE500, 0x0E24BEF6, 0x0034CF02, 0x0074D44D,
0x0719E7A7, 0x019BF6CE, 0x1388AC9C, 0x24DF1668, 0x0F2017C3,
0x10354F23, 0x2F0A9504, 0x23577254, 0x032A80AC, 0x1AE25248,
0x030836A1, 0x1E7B4BC3, 0x32AEFD4E, 0x2899B5F0, 0x1ED2F720,
0x02377C23, 0x03279078, 0x00093444, 0x04A61603, 0x12A590D0,
0x02394096, 0x01296E80, 0x0112D3D8, 0x0168A1C1, 0x23589AD7,
0x0134EE64, 0x20B9A238, 0x0615C12F, 0x0094EFE4, 0x254B1B30,
0x0A891360, 0x0F0D3029, 0x065EBCDE, 0x22A45886, 0x059E78C8,
0x1FD841A3, 0x2D7C0E64, 0x04683270, 0x2F9DE4BE, 0x03FD238D,
0x089F2533, 0x18FE3FE8, 0x0A8A2988, 0x0CC34AF8, 0x259CAECB,
0x0CF34254, 0x261C2AF9, 0x11C8570C, 0x20CC9C40, 0x1E03CE08,
0x0B0248EC, 0x199874D0, 0x0FD549F4, 0x22C0AA63, 0x24A6AA28,
0x1362CA56, 0x016AAB9D, 0x01A77A96, 0x2BFF1900, 0x0345FF00,
0x06B8D03D, 0x074D133C, 0x01EFBC34, 0x0824A1F2, 0x01C0C63B,
0x1659AC50, 0x1029F0E6, 0x073A431E, 0x06103790, 0x112BDFE0,
0x156BAF9C, 0x24B05580, 0x26D331CC, 0x0317CD41, 0x00191F10,
0x0329B926, 0x2F8B60FF, 0x029BA7A4, 0x1C884BA0, 0x22A04106,
0x046C3E0F, 0x023AA61E, 0x040F1118, 0x010B13AA, 0x2A5D1614,
0x13938F40, 0x0CCB354D, 0x2ADE2679, 0x19A064C0, 0x04AECC32,
0x0BB0AC82, 0x0745FCA2, 0x0480B2C4, 0x023B36F2, 0x3150710D,
0x000D0278, 0x2AE8E5CD, 0x02482527, 0x01883D3B, 0x076D203C,
0x34BDB9A0, 0x0351FD26, 0x0B701EED, 0x0E9C446B, 0x15DEF948,
0x0A1E1C53, 0x0EE46764, 0x242778D8, 0x13DB035E, 0x034548A4,
0x33398544, 0x19E9C5F4, 0x01156D94, 0x1A69651C, 0x01D018ED,
0x0AA23140, 0x000AC280, 0x0231A701, 0x0C2DF4D6, 0x0F93B718,
0x27EDD768, 0x16489B6F, 0x0F72575F, 0x01671A4A, 0x0091DB33,
0x0762BAE4, 0x0866CD00, 0x00ECF4B1, 0x046FC0BC, 0x0903875C
};
Titre: Re : Couleur Random
Posté par: Syg le 12 Août 2010, 11:10:40
Ton tableau est pas mal Sazuke sauf que il ne faut pas avoir de transparence aléatoire sinon certaines couleurs ne se verront pas (0x0D3C8900 par exemple).
Donc toutes tes couleurs devraient se terminer par FF.

Sinon, avec le tableau qu'a donné Sim, il n'est pas utile d'utiliser la fonction random puisque le tableau lui-même semble avoir été généré aléatoirement.
Donc il suffit de faire PlayerColors[playerid] pour être sûr qu'aucun joueur n'a la même couleur qu'un autre.

Et si on veut que les couleurs en DM et dans le jeu ne soient pas les mêmes, on peut par exemple utiliser PlayerColors[199-playerid] pour les couleurs DM.
De cette façon, il n'y aura pas 2 couleurs pareil (tant que le nombres de joueur reste inférieur à 100  ce qui sera certainement toujours le cas sur nos serveurs, même Lalu's Stunt n'a jamais eu autant de joueurs).

++
Syg