une remarque
int Rdm = Random(nombre de waypoints + 1);
bon, je suis jamais trop sur sur ces trucs là, je me plante tt le tps
mais, pour 10 wp, 10+1=11
donc Random(10+1) ca donne un chiffre entre 0 et 10 inclu, or si t'as 10 wp, le dernier c'est 09
donc justement, il ne faut pas faire
int Rdm = Random(nombre de waypoints + 1);
mais
int Rdm = Random(nb du dernier wp + 1);
je dis ca parce que si quelqu'un le réutilise ca peut être source de bug, et j'en bouffe depuis 3 semaines du Random
autrement, moi j'aurais utilisé un fonction qui remet le nb de zéros adéquat, ou alors mis les tag : WP_1 ... WP_11 ... WP_111
Azrael07 en a donnée une il y a deux jours, je sais plus où ... et j'en utilise une ... je la met si ca peut servir une autre fois
//par Reyan
//transforme une string de chiffres en lui rajoutant des zéro jusqu'à
//obtenir le nombre de caractères voulus
//faire attention, c'est bien une string, il faut un IntToString avant
string NormalizeNbStr( string sNbToNormalize, int nNorme);
string NormalizeNbStr( string sNbToNormalize, int nNorme)
{
string sF;
int nTaille=GetStringLength(sNbToNormalize);
if(nTaille > nNorme)
{
sF = GetStringRight(sNbToNormalize, nNorme);
}
else
{
int nDif = nNorme;
nDif -= nTaille;
sF=sNbToNormalize;
string sF2 = sNbToNormalize;
while(nDif > 0)
{
sF = "0"+sF2;
nDif--;
sF2 = "0"+sF2;
}
}
return sF;
}
sinon, pour faciliter la customisation, j'aurais proposé qq chose comme :
//par Reyan
//transforme une string de chiffres en lui rajoutant des zéro jusqu'à
//obtenir le nombre de caractères voulus
//faire attention, c'est bien une string, il faut un IntToString avant
string NormalizeNbStr( string sNbToNormalize, int nNorme);
//script
void main()
{
//a customiser
int nNbNb = 3; //nombre de chiffres dans les tag de wp
string sTag = "WP_MVT_ALEA_"; //tag des wp sans le nb
int nAP = GetUserDefinedEventNumber();
switch(nAP)
{
case 1001:
int Rdm = RandomRandom(nb du dernier wp + 1);
string sNb = NormalizeNbStr(IntToString(Rdm), nNbNb);
object oGo = GetWaypointByTag(sTag+sNb);
location lGo = GetLocation(oGo);
ActionMoveToLocation(lGo,FALSE);
break;
}
}
//definition de la fonction
string NormalizeNbStr( string sNbToNormalize, int nNorme)
{
string sF;
int nTaille=GetStringLength(sNbToNormalize);
if(nTaille > nNorme)
{
sF = GetStringRight(sNbToNormalize, nNorme);
}
else
{
int nDif = nNorme;
nDif -= nTaille;
sF=sNbToNormalize;
string sF2 = sNbToNormalize;
while(nDif > 0)
{
sF = "0"+sF2;
nDif--;
sF2 = "0"+sF2;
}
}
return sF;
}
tiens, une autre remarque, je crois que tu ferais mieux de définir les variable que tu utilises dans un script, dans le script où tu les utilise, je dis ca pour le
int nAP = GetUserDefinedEventNumber();
que tu avais mis avant le void main(), ce qui n'est pas grave, mais pas top non plus
ca peut poser des probleme dans les gros script avec beaucoup de fonction et des bout d'includes
edit : c'est ma fonction sapristi