GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: yogame le 19 Juin 2013, 19:47:53
-
Bonsoir/Bonjour
je voudrais savoir comment faire un numero aléatoire qui est en rapport avec l'id du joueur c'est-a-dire que quand le jouer est en nomoff il y a une numero aléatoire comme par exemple 2039 qui est en rapport avec l'id du joueur, par exemple que quand un policier taper ce numero aléatoire /policier arreter 2039 c'est comme si il entrer l'id du joueur ( l'id du joueur = 1 ).
J’espère que vous aurais compris se que je voulais :) Merci d'avance
-
Je n'ai absolument rien compris, essaye de mieux expliquer.
-
En gros, tu veux un id secondaire aléatoire mais propre à chaque joueur ?
-
une variable genre auxId[MAX_PLAYERS];
un random à la connexion
et après c'est toi qui dois penser aux petites subtilités à la deconnexion par exemple
:wink:
-
Et lors de l'affectation d'une valeur, penses à une boucle qui vérifie qu'elle n'est pas déjà attribuée à un autre joueur (c'est aléatoire donc on sait jamais).
-
En gros, tu veux un id secondaire aléatoire mais propre à chaque joueur ?
Oui voila mais seulement quand le joueur met une cagoule
-
Tu trouves un commande pour ajouter un nombre aléatoire qui se déclenche quand il met la cagoule. Et une commande pour le retirer se nombre quand il la retire.
-
À ce que je comprends, tu veux un indice alternatif permettant d'identifier le joueur.
Sympa comme méthode pour éviter que les gens regarde le tableau des scores pour arrêter tel ou tel joueur.
Alors, je vois ça comme un tableau de la taille du nombre de joueur maximum.
Les joueurs commencent à l'indice 0 (Starting IDs - SA-MP Wiki (http://wiki.sa-mp.com/wiki/Starting_IDs)).
Si dans le tableau, la valeur est -1, le joueur n'est pas caché, sinon, il est caché avec la valeur contenu.
new playersHide[MAX_PLAYERS] = {-1, ...};
Après, si un joueur utilise la commande pour se cacher, s'il n'est pas caché, tu génère ton nombre et tu le met dans le tableau à la bonne place:
playersHide[playerid] = randomNumber;
S'il est déjà caché, tu met dans ce cas -1.
Après, à toi de faire ce que tu veux de ces valeurs.
-
Bonjour,
Sa donne donc ceci ?
if(strcmp(cmd, "/cagoule", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pLevel] < 5)
{
SendClientMessage(playerid, COLOR_USAGE, " Vous devez être niveau 5 pour pouvoir être nomoff.");
return 1;
}
new playersHide[MAX_PLAYERS] = {1, ...};
new randomNumber = random(2000);
playersHide[playerid] = randomNumber;
CagouleUse[playerid]=1;
ShowPlayerNameTagForPlayer(playerid, i, 1);
SendClientMessage(playerid, COLOR_OOC, "Vous êtes avez mis une cagoule.");
}
-
La variable doit être globale pour commencer.
-
Salut,
n'oublie pas de décaler les valeurs vers le haut si tu veux éviter qu'un ID alternatif soit le même que celui d'un joueur...
new nombre_hasard= random(TA_PLAGE) + LIMITE_INFÉRIEURE;
sans oublier de modifier à nouveau la valeur de la variable lorsque le joueur retire sa cagoule...
Bonne chance
++Sim++
-
Merci tout le monde ! :D