Aller au contenu
San Andreas Multiplayer
Blush

Aide pour une commande.

Messages recommandés

Salut,

 

Alors j'ai un problème avec ma commande: 

if(strcmp(tmp, "attach", true)==0)
	{
	    new vehicleid = GetPlayerVehicleID(playerid);
	    new Float:X, Float:Y, Float:Z;
	    if(IsPlayerInAnyVehicle(playerid))
        {
            for(new i = 0; i < MAX_VEHICLES; i++)
			{
            	GetVehiclePos(i, X, Y, Z);
            	if(IsPlayerInRangeOfPoint(playerid, 6.0, X, Y, Z))
				{
                    if(!IsTrailerAttachedToVehicle(vehicleid))
                    {
						AttachTrailerToVehicle(i,vehicleid);
					}
                    else
                    {
						DetachTrailerFromVehicle(vehicleid);
					}
     			}
				else SendClientMessage(playerid, COLOR_GREY, "Aucune remorque à votre porté");
        	}
        }
        else SendClientMessage(playerid, COLOR_GREY, "Vous devez être dans un véhicule pour effectuer cette action !");
	}

 

donc ma commande au complet est : /v attach

Le soucis ce passe quand je tape la commande, la remorque s'attache et se détache correctement, mais le "SendClientMessage(playerid, COLOR_GREY, "Aucune remorque à votre porté")" spam dans le chat alors qu'il ne devrait pas s'affiché. 

 

Des idées ? Solutions en tête ?

Modifié par Blush

Partager ce message


Lien à poster
Partager sur d’autres sites
if(strcmp(tmp, "attach", true)==0)
{
	new vehicleid = GetPlayerVehicleID(playerid);
	new Float:X, Float:Y, Float:Z;
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Vous devez être dans un véhicule pour effectuer cette action !");
	for(new i = 0; i < MAX_VEHICLES; i++)
	{
		GetVehiclePos(i, X, Y, Z);
		if(!IsPlayerInRangeOfPoint(playerid, 6.0, X, Y, Z)) return SendClientMessage(playerid, COLOR_GREY, "Aucune remorque à votre porté");
		{
			if(!IsTrailerAttachedToVehicle(vehicleid))
			{
				AttachTrailerToVehicle(i,vehicleid);
			}
			else
			{
				DetachTrailerFromVehicle(vehicleid);
			}
		}
	}
}

🤔

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 3 minutes, Heaven a dit :

if(strcmp(tmp, "attach", true)==0)
{
	new vehicleid = GetPlayerVehicleID(playerid);
	new Float:X, Float:Y, Float:Z;
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Vous devez être dans un véhicule pour effectuer cette action !");
	for(new i = 0; i < MAX_VEHICLES; i++)
	{
		GetVehiclePos(i, X, Y, Z);
		if(!IsPlayerInRangeOfPoint(playerid, 6.0, X, Y, Z)) return SendClientMessage(playerid, COLOR_GREY, "Aucune remorque à votre porté");
		{
			if(!IsTrailerAttachedToVehicle(vehicleid))
			{
				AttachTrailerToVehicle(i,vehicleid);
			}
			else
			{
				DetachTrailerFromVehicle(vehicleid);
			}
		}
	}
}

🤔

 

Non, ça va stop la boucle dès que le premier véhicule (ID0) ne se trouve pas à côté du joueur.

 

@Blush lis les commentaires dans le code:

 

if(!strcmp(tmp, "attach", true)) {
	new Float:x, Float:y, Float:z,
        vehicleid = GetPlayerVehicleID(playerid);

	if(!vehicleid) 
        return SendClientMessage(playerid, COLOR_GREY, "Vous devez être dans un véhicule pour effectuer cette action !");

	for(new i; i < MAX_VEHICLES; i++) {
		GetVehiclePos(i, x, y, z);
		if(!IsPlayerInRangeOfPoint(playerid, 6.0, x, y, z)) continue; 

        if(IsTrailerAttachedToVehicle(vehicleid)){
            // veh untow, return impératif
            return DetachTrailerFromVehicle(vehicleid);
        } else {
            // veh tow, idem
            return AttachTrailerToVehicle(i, vehicleid);
        } 
	}
    // aucun return : atteindre ce code
    return SendClientMessage(playerid, COLOR_GREY, "Aucune remorque à votre porté");
}

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @Heaven & @Toretto mais aucune des deux solutions ne fonctionne, dans les 2 cas on ne me spam plus mais je ne peut plus attaché la remorque au véhicule

Partager ce message


Lien à poster
Partager sur d’autres sites

Bah écoute, si ton code marchait au début, il devrait marcher maintenant, je n'ai pas fait de grandes modifications, après, si t'es pas dans le rayon 6.0 à un autre véhicule stream, bah ça te retourne le message d'erreur, essaye de l'augmenter, ajoute des debugs et dis moi où ça bloque.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×