GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Boubou29 le 20 Mai 2012, 19:44:28

Titre: Problème /v garer
Posté par: Boubou29 le 20 Mai 2012, 19:44:28
Bonsoir à tous,

J'ai un bug récurent et je n'arrive pas à le résoudre.
Il arrive parfois lorsque des joueurs veulent garer un de leur véhicule via la commande "/v garer", celui disparait complétement du serveur et il est remplacé aléatoirement par un autre véhicule... A savoir que ce bug n'apparait qu'une fois sur 10...
Je ne peux plus TP le véhicule ni aller à sa position.. Le seul moyen est de redémarrer le serveur..

Voici le code :

if(strcmp(subcmd, "park", true) == 0 || strcmp(subcmd, "garer", true) == 0 || strcmp(subcmd, "parquer", true) == 0)
{
new Float:x, Float:y, Float:z, Float:a;
new getcarid = GetPlayerVehicleID(playerid);
GetPlayerName(playerid, playername, sizeof(playername));
new Float:health;
GetVehicleHealth(getcarid, health);
if(health < 850)
   {SendClientMessage(playerid, COLOR_VEHICULE, "[Vehicule] Votre véhicule est gravment endommagé, vous ne pouvez pas le garer !"); return 1;}
if(!IsPlayerInAnyVehicle(playerid))
{SendClientMessage(playerid, COLOR_VEHICULE, "[Vehicule] Vous n'êtes pas dans une voiture."); return 1;}
if(GetVehicleVirtualWorld(getcarid) != 0)
   {SendClientMessage(playerid, COLOR_VEHICULE, "[Vehicule] Ce véhicule est dans un virtual world particulier, retournez à l'exterieur."); return 1;}
if(CarInfo[getcarid][cOwned] !=1 || strcmp(CarInfo[getcarid][cOwner], playername, true)!=0)
{
   if(!pack_isAdmin(playerid, 3))
    {SendClientMessage(playerid, COLOR_VEHICULE, "[Vehicule] Vous n'êtes pas le propriétaire de ce vehicule."); return 1;}
   else if(aDuty[playerid])
       {SendClientMessage(playerid, COLOR_ADMIN, "[Admin] Voiture parquée.");}
else
   {SendClientMessage(playerid, COLOR_ADMIN, "[Admin] En ServiceAdmin pour pourriez la parquer."); return 1;}
}
GetVehiclePos(getcarid, x, y, z);
GetVehicleZAngle(getcarid, a);
       new panels,doors,lights,tires,Float:damage;
  GetVehicleHealth(getcarid, damage);
  DestroyVehicle(getcarid);
CarInfo[getcarid][cLocationx] = x;
CarInfo[getcarid][cLocationy] = y;
CarInfo[getcarid][cLocationz] = z;
CarInfo[getcarid][cAngle] = a;
   CeintureNotUpdate[playerid]=3;
GetVehicleDamageStatus(getcarid,panels,doors,lights,tires);
         CreateVehicle(CarInfo[getcarid][cModel],x,y,z+1.0,a,CarInfo[getcarid][cColorOne],CarInfo[getcarid][cColorTwo],-1);
            PutPlayerInVehicle(playerid,getcarid, 0);
   UpdateVehicleDamageStatus(getcarid, panels, doors, lights, tires);
SetVehicleHealth(getcarid, damage);
//CarInfo[getcarid][cHealth] = damage;
            format(sql, 256, "UPDATE XXXXXXXXX_cars SET park_x=%f, park_y=%f, park_z=%f, park_angle=%f WHERE id=%d", x, y, z, a, getcarid);
            MySQLCheckConnection();
mysql_query(sql);
//SQLLog(sql);
tuning_applyDbTuning(getcarid);
            GameTextForPlayer(playerid, "~w~Vehicule parque", 1000, MSG_STYLE);
SaveSQLCar(getcarid,false);
car_Engine(getcarid);
return 1;
}

Si quelqu'un à une idée s'il vous plait.. Je galère..
Titre: Re : Problème /v garer
Posté par: cristab le 20 Mai 2012, 19:48:45
si c'est juste /v garer pourquoi tu crfeer un vehicule STP ???

CreateVehicle(CarInfo[getcarid][cModel],x,y,z+1.0,a,CarInfo[getcarid][cColorOne],CarInfo[getcarid][cColorTwo],-1);
Titre: Re : Problème /v garer
Posté par: Boubou29 le 20 Mai 2012, 19:53:38
Justement. Sans détruire et recreer le véhicule dans la foulée, sa position n'est pas sauvegardée.. Enfin si mais après le reboot du serveur.
Lorsque je respawn la voiture, elle apparait à son emplacement précédent.
Titre: Re : Problème /v garer
Posté par: cristab le 20 Mai 2012, 20:33:42
mais je voit que tu save la nouvelle position et que tu met a jour tes variable donc il y a un probleme autre tu ne pense pas

tente de regarder comment j'ai fait dans mon script de voiture essaie de t'en inspirer
Titre: Re : Problème /v garer
Posté par: Boubou29 le 21 Mai 2012, 23:44:09
J'ai beau tourner le truc dans tout les sens, impossible à sauvegarder la position de la voiture sans qu'elle soit respawn. Même en me basant sur ton système...
Titre: Re : Problème /v garer
Posté par: cristab le 22 Mai 2012, 07:57:17
la c'est bizard car c'est une chose ultra simple a faire
Titre: Re : Problème /v garer
Posté par: Boubou29 le 25 Mai 2012, 14:25:18
Oui c'est pas le plus compliqué à faire mais là ca ne sauvegarde la position qu'après un reboot.. Allez comprendre...