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
-
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
++
-
Bonsoir,
avant de changer la couleur enregistre dans une variable la couleur du joueur avec GetPlayerColor(playerid);
donc :
en haut du GM : new CouleurJoueur[MAX_PLAYERS];dans ta commande /dmb( /!\ avant de changer la couleur du joueur) : CouleurJoueur[playerid] = GetPlayerColor(playerid);dans ta commande /dmquit : SetPlayerColor(playerid, CouleurJoueur[playerid]);
Voila j'espere que tu as compris
-
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 :-\
-
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++
-
C'est a dire , Comment dois-je m'y prendre ?
-
quand le joueur se connecte(OnPlayerConnect) tu lui change la couleur
-
Haaa ... Donc
Public OnPlayerConnect
{
GetPlayerColor(playerid,/*Je mais quoi ici*/);
return 1;
}
Merci
-
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
-
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
-
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
-
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
-
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];);
-
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]);
-
Cristab J'ai essayer (0 Erreur Ni warning) J'ai tester bah Sa foncitonne pas ???
-
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++
-
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
++
-
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) :
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
-
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++
-
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!
-
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++
-
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
};
-
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