GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: LePtitClown le 24 Avril 2009, 20:36:50

Titre: ID au hasard
Posté par: LePtitClown le 24 Avril 2009, 20:36:50
Slt

Je cherche à réaliser un petit script qui me permettrait de choisir un joueur connecté au hasard grâce à son id
Mais je ne sais pas comment faire
J'ai entendu parler de "random" mais je ne sais pas à quoi cela peut me servir ni à quoi elle sert
Si quelqu'un peut m'aider, merci de répondre

A++ :)
Titre: Re : ID au hasard
Posté par: cristab le 24 Avril 2009, 20:45:25
j'avais trouver sa une fois je cherche et te dit sa

voila dans ta commande et ou timer met ceci
Citer
new id = GetRandomID();

voici le code en question
Citer
stock GetRandomID()
{
   new bool:connected[MAX_PLAYERS] = false, amount = 0;
   for(new i = 0; i < MAX_PLAYERS; i++)
       if(IsPlayerConnected(i))
       {
           connected = true;
           amount++;
       }
   if(amount == 0) return -1;
   new rand = random(amount), done = 0;
   for(new i = 0; i < MAX_PLAYERS; i++)
       if(connected)
       {
          if(done == rand) return i;
          done++;
      }
   return -1;
}
credit boylett
Titre: Re : ID au hasard
Posté par: MrFredo le 24 Avril 2009, 20:55:42
un random(GetMaxPlayers())

dans une boucle do while qui verifie que l'id choisi au hasard est connecter

Vla une ebauche que j'ai fait en vitesse pas sur que sa marche
Code: (pawn) [Sélectionner]
RandomPlayer()
{
new playerid,nbconnect;
for(new i=0;i<GetMaxPlayers();i++)
{
    if(IsPlayerConnected(i)) nbconnect++; // On compte le nombre de personne connecter
}
if(nbconnect > 0) // Si ya des personne connecter
{
do
{
playerid = random(GetMaxPlayers()); // On choisi un id au hasard entre 0 et le nombre maximum de joueur defini dans le CFG
}
while(!IsPlayerConnected(playerid)); // Si l'id choisi au hasard n'est pas connecter on recomence la boucle
return playerid; // une fois un id de joueur connecter trouver on le renvoi
}
return INVALID_PLAYER_ID; // Si aucun joueur de connecter on renvoi INVALID_PLAYER_ID qui equivaut a la valeur 255
}

Tu doit appeler la fonction de cette maniere:

Code: (pawn) [Sélectionner]
new randomid = RandomPlayer();
Titre: Re : ID au hasard
Posté par: LePtitClown le 24 Avril 2009, 21:03:32
Merci pour vos réponses
Désolé mais je ne comprend strictement rien ???
Pourriez vous précisez vos réponses, car je sais pas du tout où je dois mettre ça, j'ai essayé de le mettre dans oneplayercmdtext mais ça ne compile pas que dois je faire exactement?
PS: ne vous inquiétez pas les crédits seront respectés

A++ :D
Titre: Re : ID au hasard
Posté par: MrFredo le 24 Avril 2009, 21:06:23
Je vient d'editer mon post pour mettre quelque commentaire
Titre: Re : ID au hasard
Posté par: LePtitClown le 24 Avril 2009, 21:20:58
Merci à toi mais je dsoi mettre ça dans quel "public"??

A++
Titre: Re : ID au hasard
Posté par: MrFredo le 24 Avril 2009, 21:22:13
C'est une fonction donc tu la met tout en bas de ton script, et ensuite tu l'apel de la facon qui est expliquer dans le post

new randomid = RandomPlayer();


Tu met se bout de code la ou t'en a besoin
Titre: Re : ID au hasard
Posté par: LePtitClown le 24 Avril 2009, 21:29:24
Désolé mais je ne comprend vraiment pas :(