Premièrement, on ne peut détruire les véhicules que si ils ont été crées avec CreateVehicle et non pas avec AddStaticVehicle mais c'est peut-être déjà ton cas.
Ensuite, il suffit de faire correspondre les ID des vehicules et des joueurs. Le joueur 2 aura toujours le véhicule 3, le joueur 7 le véhicule 8, etc.
NB : La correspondance est décalé car les ID de véhicule commencent à 1 alors que les ID de joueurs commencent à 0.
Dans ton cas, on peut faire une boucle sur le nombre de véhicules :
/*
Le bout de script suivant se base sur le postula suivant :
- Si tout les ID de véhicule sont utilisés entre 1 et VIdMax,
- Si on détruit le véhicule avec l'id Vid alors le prochain véhicule créer aura l'ID Vid.
En d'autres mots : SAMP prend le premier ID libre pour l'affecter au véhicule créé.
Si ce postula est faux alors le bout de script suivant ne fonctionnera pas.
*/
#define NB_MAX_VEHICULES 16
PutAllPlayerInVehicle (model, color = -1, color2 = -1)
{
new i;
new vehicleid = 0;
new Float:X, Float:Y, Float:Z, Float:A;
for (i=0 ; i<NB_MAX_VEHICULES ; i++)
{
/* Dans tous les cas, on détruit le véhicule */
DestroyVehicle (i+1); // Les ID de véhicules commencent à 1 alors que les ID de joueurs commencent à 0
/* Si le joueur est connecté */
if (IsPlayerConnected (i))
{
/* Le véhicule ayant été détruit, il ne reste plus qu'à en créer
un pour le joueur et à la mettre dedans */
GetPlayerPos (playerid,X,Y,Z);
GetPlayerFacingAngle (playerid,A);
vehicleid = CreateVehicle (model, X, Y, Z+1, A, color1, color2);
/* Si le postula ennoncé en haut est juste alors on devrait avoir :
vehicleid = i+1 */
PutPlayerInVehicle (i, vehicleid, 0);
}
}
}
NB : Ce bout de script n'a pas été testé.
++
Syg