• Annonces

    • vic1997

      CAMPAGNE DE RECRUTEMENT #3   19/03/2018

      Suite au départ de notre Community Manager Bibidech ainsi que de notre Graphiste Wonderer, mais aussi au besoin d'un rédacteur pour notre futur fonctionnalité, nous ouvrons donc une nouvelle campagne de recrutement.   Cliquez ici pour accéder au message : https://sa-mp-fr.com/topic/1753-campagne-de-recrutement-3/   Cliquez ici pour postuler : https://sa-mp-fr.com/forms/2-administration/
Stincky

Bug de véhicule qui despawn automatiquement sur LL:RP

25 messages dans ce sujet

salut, j'ai un gros bug en utilisant le script: Limitless Roleplay

dès qu'on monte dans un véhicule, et qu'on roule 1 minutes il despawn et sa casse vraiment la tête pour les patrouilles etc..

https://github.com/thememester/Limitless-Roleplay

Voilà le script pour ceux qui veulent m'aider ...

Partager ce message


Lien à poster
Partager sur d’autres sites

bon pour toi sa a laire qui faut donner

Recherche tous se qui peut apparenté a

Quote

DespawnTimer

 Et apres regarde comment le modifier

Partager ce message


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

bon pour toi sa a laire qui faut donner

Recherche tous se qui peut apparenté a

 Et apres regarde comment le modifier

Il n'y a pas: "DespawnTimer" dans le script...

Partager ce message


Lien à poster
Partager sur d’autres sites

en cherchant dans le script original si mais apres si vous l'aver modifier alors la cest pas notre probleme sérieusement :P

Partager ce message


Lien à poster
Partager sur d’autres sites
à l’instant, Tysanio a dit :

en cherchant dans le script original si mais apres si vous l'aver modifier alors la cest pas notre probleme sérieusement :P

dans le script original j'ai tous supprimé les trucs genre: "DespawnTimer", "CarDespawn", j'ai tous supprimé..

Partager ce message


Lien à poster
Partager sur d’autres sites

Apres si tu a tout supprimer alors il doit surment te manquer quelque chose a supprimer cest pour cela qui respawn au bout de quelque temps

Et ne dit pas le contraire cherche bien

Modifié par Tysanio

Partager ce message


Lien à poster
Partager sur d’autres sites

DespawnVehicle(vehicleid, bool:save = true)
{
    if(VehicleInfo[vehicleid][vID] > 0)
    {
        if(VehicleInfo[vehicleid][vNeonEnabled])
        {
            DestroyDynamicObject(VehicleInfo[vehicleid][vObjects][0]);
            DestroyDynamicObject(VehicleInfo[vehicleid][vObjects][1]);
        }

        if(save) {
            new
                Float:health;

            GetVehicleHealth(vehicleid, health);
            SaveVehicleModifications(vehicleid);

            mysql_format(connectionID, queryBuffer, sizeof(queryBuffer), "UPDATE vehicles SET fuel = %i, health = '%f' WHERE id = %i", vehicleFuel[vehicleid], health, VehicleInfo[vehicleid][vID]);
            mysql_tquery(connectionID, queryBuffer);
        }

        DestroyVehicle(vehicleid);
        ResetVehicle(vehicleid);
    }
}

 

//

 

ResetVehicle(vehicleid)
{
    strcpy(VehicleInfo[vehicleid][vPlate], "None", 32);
    
    if(VehicleInfo[vehicleid][vTimer] >= 0)
    {
        KillTimer(VehicleInfo[vehicleid][vTimer]);
    }

    VehicleInfo[vehicleid][vID] = 0;
    VehicleInfo[vehicleid][vOwnerID] = 0;
    VehicleInfo[vehicleid][vOwner] = 0;
    VehicleInfo[vehicleid][vModel] = 0;
    VehicleInfo[vehicleid][vPrice] = 0;
    VehicleInfo[vehicleid][vTickets] = 0;
    VehicleInfo[vehicleid][vLocked] = 0;
    VehicleInfo[vehicleid][vHealth] = 1000.0;
    VehicleInfo[vehicleid][vPosX] = 0.0;
    VehicleInfo[vehicleid][vPosY] = 0.0;
    VehicleInfo[vehicleid][vPosZ] = 0.0;
    VehicleInfo[vehicleid][vPosA] = 0.0;
    VehicleInfo[vehicleid][vColor1] = 0;
    VehicleInfo[vehicleid][vColor2] = 0;
    VehicleInfo[vehicleid][vPaintjob] = -1;
    VehicleInfo[vehicleid][vInterior] = 0;
    VehicleInfo[vehicleid][vWorld] = 0;
    VehicleInfo[vehicleid][vCash] = 0;
    VehicleInfo[vehicleid][vMaterials] = 0;
    VehicleInfo[vehicleid][vWeed] = 0;
    VehicleInfo[vehicleid][vCocaine] = 0;
    VehicleInfo[vehicleid][vMeth] = 0;
    VehicleInfo[vehicleid][vPainkillers] = 0;
    VehicleInfo[vehicleid][vWeapons][0] = 0;
    VehicleInfo[vehicleid][vWeapons][1] = 0;
    VehicleInfo[vehicleid][vWeapons][2] = 0;
    VehicleInfo[vehicleid][vHPAmmo] = 0;
    VehicleInfo[vehicleid][vPoisonAmmo] = 0;
    VehicleInfo[vehicleid][vFMJAmmo] = 0;
    VehicleInfo[vehicleid][vGang] = -1;
    VehicleInfo[vehicleid][vFactionType] = FACTION_NONE;
    VehicleInfo[vehicleid][vJob] = JOB_NONE;
    VehicleInfo[vehicleid][vObjects][0] = INVALID_OBJECT_ID;
    VehicleInfo[vehicleid][vObjects][1] = INVALID_OBJECT_ID;
    VehicleInfo[vehicleid][vTimer] = -1;

    for(new i = 0; i < 14; i ++)
    {
        VehicleInfo[vehicleid][vMods] = 0;
    }
}

 

// 

 

ReloadVehicle(vehicleid)
{
    if(VehicleInfo[vehicleid][vPaintjob] >= 0)
    {
        ChangeVehiclePaintjob(vehicleid, VehicleInfo[vehicleid][vPaintjob]);
    }
    if(VehicleInfo[vehicleid][vNeon] && VehicleInfo[vehicleid][vNeonEnabled])
    {
        ReloadVehicleNeon(vehicleid);
    }

    for(new i = 0; i < 14; i ++)
    {
        if(VehicleInfo[vehicleid][vMods] >= 1000)
        {
            AddVehicleComponent(vehicleid, VehicleInfo[vehicleid][vMods]);
        }
    }

    if(strcmp(VehicleInfo[vehicleid][vPlate], "None") != 0)
    {
        SetVehicleNumberPlate(vehicleid, VehicleInfo[vehicleid][vPlate]);
        ResyncVehicle(vehicleid);
    }

    LinkVehicleToInterior(vehicleid, VehicleInfo[vehicleid][vInterior]);
    SetVehicleVirtualWorld(vehicleid, VehicleInfo[vehicleid][vWorld]);
    SetVehicleHealth(vehicleid, VehicleInfo[vehicleid][vHealth]);
    SetVehicleParams(vehicleid, VEHICLE_DOORS, VehicleInfo[vehicleid][vLocked]);
}

 

voilà tout ce que je trouve pour les veh's..

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai jsute regarder se qui me semble logique

 ResyncVehicle(vehicleid);

    if(VehicleInfo[vehicleid][vTimer] >= 0)
    {
        KillTimer(VehicleInfo[vehicleid][vTimer]);
    }

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Faut pas se compliquer la vie fallait juste regarder les callback appelé quand on monte dans un véhicule ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_CARRY)
    {
        new
            Float:x,
            Float:y,
            Float:z;
        GetPlayerPos(playerid, x, y, z);
        SetPlayerPos(playerid, x, y, z + 0.5);
        ClearAnimations(playerid);
    }

    if((!ispassenger) && (PlayerInfo[playerid][pCuffed] || PlayerInfo[playerid][pInjured]))
    {
        new
            Float:x,
            Float:y,
            Float:z;
        GetPlayerPos(playerid, x, y, z);
        SetPlayerPos(playerid, x, y, z + 0.5);
        ClearAnimations(playerid);
    }

    if(!ispassenger)
    {
        if((pizzaVehicles[0] <= vehicleid <= pizzaVehicles[5]) && !PlayerHasJob(playerid, JOB_PIZZAMAN))
        {
            SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas rentrer dans ce véhicule, vous n'êtes pas Pizzaman.");
            ClearAnimations(playerid);
        }
        if((courierVehicles[0] <= vehicleid <= courierVehicles[6]) && !PlayerHasJob(playerid, JOB_COURIER))
        {
            SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas rentrer dans ce véhicule, vous n'êtes pas Courier.");
            ClearAnimations(playerid);
        }
        if((sweeperVehicles[0] <= vehicleid <= sweeperVehicles[3]) && !PlayerHasJob(playerid, JOB_SWEEPER))
        {
            SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas rentrer dans ce véhicule, vous n'êtes pas Street Sweeper.");
            ClearAnimations(playerid);
        }
        if((taxiVehicles[0] <= vehicleid <= taxiVehicles[3]) && !PlayerHasJob(playerid, JOB_TAXIDRIVER))
        {
            SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas rentrer dans ce véhicule, vous n'êtes pas un Taxi Driver.");
            ClearAnimations(playerid);
        }
        if((testVehicles[0] <= vehicleid <= testVehicles[4]) && !PlayerInfo[playerid][pDrivingTest])
        {
            SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas prendre ce véhicule quand vous ne passez pas votre test DMV.");
            ClearAnimations(playerid);
        }
        if(VehicleInfo[vehicleid][vFactionType] != FACTION_NONE && GetFactionType(playerid) != VehicleInfo[vehicleid][vFactionType])
        {
            SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas rentrer dans ce véhicule, vous ne faites pas partie de la faction en question.");
            ClearAnimations(playerid);
        }
        if(VehicleInfo[vehicleid][vGang] >= 0 && PlayerInfo[playerid][pGang] != VehicleInfo[vehicleid][vGang])
        {
            SendClientMessage(playerid, COLOR_GREY, "Vous ne pouvez pas rentrer dans ce véhicule, vous ne faites pas partie du gang en question.");
            ClearAnimations(playerid);
        }
        if(VehicleInfo[vehicleid][vJob] >= 0 && PlayerInfo[playerid][pJob] != VehicleInfo[vehicleid][vJob])
        {
            SendClientMessageEx(playerid, COLOR_GREY, "Vous ne pouvez pas rentrer dans ce véhicule car vous n'êtes pas %s.", GetJobName(VehicleInfo[vehicleid][vJob]));
            ClearAnimations(playerid);
        }
    }

    return 1;
}

Partager ce message


Lien à poster
Partager sur d’autres sites

Déjà, pour le code, utilise la balise code pour les petits bout de code ou un pastebin pour les longs bout de code.

Ensuite pour ton problème, est-ce que ça fait ce problème pour tous les véhicules et tous les joueurs ou seulement ceux de la police ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Sa le fais pour tout les véhicules, faction, job... Et tous les joueurs

Modifié par Stincky

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 5 heures, Stincky a dit :

Sa le fais pour tout les véhicules, faction, job... Et tous les joueurs

 

Donne nous la callback OnPlayerStateChange

Partager ce message


Lien à poster
Partager sur d’autres sites
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(PlayerInfo[playerid][pKicked]) return 0;

	if(newstate == PLAYER_STATE_DRIVER)
	{
	    new vehicleid = GetPlayerVehicleID(playerid);

	    if((pizzaVehicles[0] <= vehicleid <= pizzaVehicles[5]) && !PlayerHasJob(playerid, JOB_PIZZAMAN))
	    {
	        SendClientMessage(playerid, COLOR_GREY, "You cannot operate this vehicle as you are not a Pizzaman.");
	        RemovePlayerFromVehicle(playerid);
	        return 1;
	    }
	    if((courierVehicles[0] <= vehicleid <= courierVehicles[6]) && !PlayerHasJob(playerid, JOB_COURIER))
	    {
	        SendClientMessage(playerid, COLOR_GREY, "You cannot operate this vehicle as you are not a Courier.");
	        RemovePlayerFromVehicle(playerid);
	        return 1;
	    }
	    if((sweeperVehicles[0] <= vehicleid <= sweeperVehicles[3]) && !PlayerHasJob(playerid, JOB_SWEEPER))
	    {
	        SendClientMessage(playerid, COLOR_GREY, "You cannot operate this vehicle as you are not a Street Sweeper.");
	        RemovePlayerFromVehicle(playerid);
	        return 1;
	    }
	    if((taxiVehicles[0] <= vehicleid <= taxiVehicles[3]) && !PlayerHasJob(playerid, JOB_TAXIDRIVER))
	    {
	        SendClientMessage(playerid, COLOR_GREY, "You cannot operate this vehicle as you are not a Taxi Driver.");
	        RemovePlayerFromVehicle(playerid);
	        return 1;
	    }
	    if((testVehicles[0] <= vehicleid <= testVehicles[4]) && !PlayerInfo[playerid][pDrivingTest])
	    {
	        SendClientMessage(playerid, COLOR_GREY, "You cannot operate this vehicle as you are not taking your drivers test.");
	        RemovePlayerFromVehicle(playerid);
	        return 1;
	    }
	    if(VehicleInfo[vehicleid][vFactionType] != FACTION_NONE && GetFactionType(playerid) != VehicleInfo[vehicleid][vFactionType])
	    {
	        SendClientMessage(playerid, COLOR_GREY, "You cannot operate this vehicle as it doesn't belong to your faction.");
	        RemovePlayerFromVehicle(playerid);
	        return 1;
	    }
	    if(VehicleInfo[vehicleid][vGang] >= 0 && PlayerInfo[playerid][pGang] != VehicleInfo[vehicleid][vGang])
	    {
	        SendClientMessage(playerid, COLOR_GREY, "You cannot operate this vehicle as it doesn't belong to your gang.");
	        RemovePlayerFromVehicle(playerid);
	        return 1;
	    }
	    if(VehicleInfo[vehicleid][vJob] >= 0 && PlayerInfo[playerid][pJob] != VehicleInfo[vehicleid][vJob])
	    {
	        SendClientMessageEx(playerid, COLOR_GREY, "You cannot operate this vehicle as you are not a %s.", GetJobName(VehicleInfo[vehicleid][vJob]));
	        RemovePlayerFromVehicle(playerid);
	        return 1;
	    }

	    if(!VehicleHasEngine(vehicleid))
	    {
	        SetVehicleParams(vehicleid, VEHICLE_ENGINE, true);
		}
		else if(!GetVehicleParams(vehicleid, VEHICLE_ENGINE))
		{
		    if(testVehicles[0] <= vehicleid <= testVehicles[4])
		    {
		        PlayerInfo[playerid][pCP] = CHECKPOINT_TEST;
		        PlayerInfo[playerid][pTestVehicle] = vehicleid;
		        PlayerInfo[playerid][pTestCP] = 0;

		        SetVehicleParams(vehicleid, VEHICLE_ENGINE, 1);
				SetPlayerCheckpoint(playerid, drivingTestCPs[PlayerInfo[playerid][pTestCP]][0], drivingTestCPs[PlayerInfo[playerid][pTestCP]][1], drivingTestCPs[PlayerInfo[playerid][pTestCP]][2], 3.0);
				SendClientMessage(playerid, COLOR_AQUA, "Drive through the checkpoints to proceed with the test. Try not to damage your vehicle.");
		    }
		    else
		    {
			    GameTextForPlayer(playerid, "~r~Demarrer le moteur~n~~w~/engine", 3000, 3);
			}
	    }

	    if(!PlayerInfo[playerid][pCarLicense] && !PlayerInfo[playerid][pDrivingTest])
	    {
	        SendClientMessage(playerid, COLOR_LIGHTRED, "** Vous conduisez sans votre permis, vous pouvez vous faire arrêter a tous moment.");
	    }

	    if(IsVehicleOwner(playerid, vehicleid) && VehicleInfo[vehicleid][vTickets] > 0)
	    {
	        SendClientMessageEx(playerid, COLOR_AQUA, "This vehicle has $%i in unpaid tickets. You can pay your tickets using /paytickets.", VehicleInfo[vehicleid][vTickets]);
	    }

	    if(!PlayerInfo[playerid][pToggleTextdraws])
	    {
		    PlayerTextDrawShow(playerid, PlayerInfo[playerid][pText][1]);
		    PlayerTextDrawShow(playerid, PlayerInfo[playerid][pText][2]);
		}

		SetPlayerArmedWeapon(playerid, 0);

		/*if(isnull(vehicleStream[vehicleid]))
		{
	  		SendClientMessage(playerid, COLOR_LIGHTORANGE, "Radio: Use {FFD700}/setradio{F7A763} to listen to a radio station.");
		}*/
		
		/*if(isnull(vehicleStream[vehicleid]))
		{
		    SendClientMessage(playerid, COLOR_WHITE, "** Use {C8C8C8}/setradio{FFFFFF} to change the radio station in this vehicle.");
		}*/
	}
	else if(oldstate == PLAYER_STATE_DRIVER)
	{
     	if(PlayerInfo[playerid][pDrivingTest])
	    {
         	PlayerInfo[playerid][pDrivingTest] = 0;
         	SetVehicleToRespawn(PlayerInfo[playerid][pTestVehicle]);
         	SendClientMessage(playerid, COLOR_LIGHTRED, "** You have exited the vehicle and therefore failed the test.");
		}

	    PlayerTextDrawHide(playerid, PlayerInfo[playerid][pText][1]);
	    PlayerTextDrawHide(playerid, PlayerInfo[playerid][pText][2]);
	}
	else if(newstate == PLAYER_STATE_PASSENGER)
	{
	    new driverid = GetVehicleDriver(GetPlayerVehicleID(playerid));

		if((driverid != INVALID_VEHICLE_ID && PlayerInfo[driverid][pTaxiFare] > 0 && PlayerInfo[driverid][pTaxiPassenger] == INVALID_PLAYER_ID) && (GetVehicleModel(GetPlayerVehicleID(playerid)) == 420 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 438))
		{
		    if(PlayerInfo[playerid][pCash] < PlayerInfo[driverid][pTaxiFare])
		    {
		        SendClientMessage(playerid, COLOR_GREY, "You can't afford to pay the fare. Therefore you can't ride this taxi.");
		        RemovePlayerFromVehicle(playerid);
		        return 1;
		    }

			PlayerInfo[driverid][pTaxiPassenger] = playerid;
			PlayerInfo[driverid][pTaxiBill] = PlayerInfo[driverid][pTaxiFare];
			PlayerInfo[driverid][pTaxiTime] = 0;

			SendProximityMessage(playerid, 20.0, COLOR_PURPLE, "** %s enters %s's taxi cab.", GetPlayerRPName(playerid), GetPlayerRPName(driverid));
			SendClientMessageEx(playerid, COLOR_YELLOW, "You will be charged the fare price of {FF6347}$%i{33CCFF} every 15 seconds during your ride.", PlayerInfo[driverid][pTaxiFare]);
			SendClientMessageEx(driverid, COLOR_AQUA, "*%s has entered your taxi. You will earn {00AA00}$%i{33CCFF} every 15 seconds during the ride.", GetPlayerRPName(playerid), PlayerInfo[driverid][pTaxiFare]);
		}

     	switch(GetPlayerWeapon(playerid))
     	{
     	    case 22, 23, 25, 28..34:
     	        SetPlayerArmedWeapon(playerid, GetScriptWeapon(playerid));
	        default:
				SetPlayerArmedWeapon(playerid, 0);
		}
	}

	if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
	{
	    new vehicleid = GetPlayerVehicleID(playerid);

	    foreach(new i : Player)
	    {
	        if(GetPlayerState(i) == PLAYER_STATE_SPECTATING && PlayerInfo[i][pSpectating] == playerid)
	        {
	            PlayerSpectateVehicle(i, vehicleid);
			}
		}

		if(!isnull(vehicleStream[vehicleid]) && PlayerInfo[playerid][pStreamType] == MUSIC_NONE && !PlayerInfo[playerid][pToggleMusic])
  		{
  		    PlayerInfo[playerid][pStreamType] = MUSIC_VEHICLE;
    		PlayAudioStreamForPlayer(playerid, vehicleStream[vehicleid]);
      		SendClientMessage(playerid, COLOR_WHITE, "** Vous entendez maintenant l'autoradio du véhicule - /stopmusic to stop listening.");
	    }
	}
	else if(oldstate == PLAYER_STATE_DRIVER || oldstate == PLAYER_STATE_PASSENGER)
	{
	    foreach(new i : Player)
	    {
	        if(GetPlayerState(i) == PLAYER_STATE_SPECTATING && PlayerInfo[i][pSpectating] == playerid)
	        {
	            PlayerSpectatePlayer(i, playerid);
			}
		}

		if(PlayerInfo[playerid][pStreamType] == MUSIC_VEHICLE)
		{
		    StopAudioStreamForPlayer(playerid);
		    PlayerInfo[playerid][pStreamType] = MUSIC_NONE;
		}
	}

	return 1;
}

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je ne voit pas d'erreur, par contre quand sa t'ejecte du véhicule , tu aurais pas un scm dans le tchat ?

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 4 heures, Marcus62 a dit :

Je ne voit pas d'erreur, par contre quand sa t'ejecte du véhicule , tu aurais pas un scm dans le tchat ?

Non, il n'y a rien ...

Partager ce message


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

Non, il n'y a rien ...

Faudrait savoir a quelle moment sa arrive, genre par exemple des qu'un joueurs se connecte .. 

Partager ce message


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

Faudrait savoir a quelle moment sa arrive, genre par exemple des qu'un joueurs se connecte .. 

Bah ... Je sais pas au pire télécharge le script si tu veux comme sa tu pourra mieux voir

Partager ce message


Lien à poster
Partager sur d’autres sites
8 minutes ago, Stincky said:

Bah ... Je sais pas au pire télécharge le script si tu veux comme sa tu pourra mieux voir

cela sert a rien vu que tu a déja modifier le gm alors on ne peut savoir se que tu a modifier en entier

Partager ce message


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

cela sert a rien vu que tu a déja modifier le gm alors on ne peut savoir se que tu a modifier en entier

j'ai juste traduit et supprimer les despawntimer

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 25/12/2017 à 16:42, Stincky a dit :

j'ai juste traduit et supprimer les despawntimer

 

Si tu a supprimer les timer despawntimer logiquement je dit bien le problème devrait être régler ou alors c'est une backdoor laisser par le développeur dans c'est cas la c'est a toi de chercher a la retirer.

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est pas du tout une bonne idée de tout supprimé. Le mieux c'est d'envoyé un message IG pour chaque despawn, pour savoir lequel c'est et comprendre pourquoi.

Partager ce message


Lien à poster
Partager sur d’autres sites

Essaie de remettre les despawntimer

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 17 heures, Marcus62 a dit :

Essaie de remettre les despawntimer

Oui, je vais essayez on va bien voir.

Partager ce message


Lien à poster
Partager sur d’autres sites

Solution donné en mp à voir si c'est good oublie pas de confirmer ici pour lock

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