GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: Dauvix le 04 Février 2010, 16:23:00

Titre: Problème de Compteur
Posté par: Dauvix le 04 Février 2010, 16:23:00
Je sais il y a deja pas mal de Topic sur ce thème, J'ai regardé mais je n'est pas trouvé ce que je voulais ...
En faite j'ai reprit un compteur Speedo de "TheAlex86" Donc j'ai réussit a bien reglé la vitesse ...
Mais alors quand je roule ma vitesse augente et diminue ...
Exemple elle faite de 36 km a 54 km puis 37km ... Enfin la vitesse monte et redescend continuellement ...
Comment je dois regler ca ?
Voici le bout de script ...  :-[

new HGG[265]; new Float:Can;
GetVehicleHealth(GetPlayerVehicleID(i), Can);
GetPlayerPos(i,Xa,Ya,Za);
KMH = floatsqroot(floatpower(floatabs(floatsub(Xa,Xb[i])),2)+floatpower(floatabs(floatsub(Ya,Yb[i])),2)+floatpower(floatabs(floatsub(Za,Zb[i])),2));
KMH *= 5.5;
Yukseklik = Za;
format(HGG, sizeof(HGG), "~b~~h~~h~Vehicule: ~w~%s~n~~g~~h~Vitesse: ~w~%0.0f km/h~n~~n~~y~~h~Altitude: ~w~%.1f m~n~~r~~h~Etat: ~w~%.2f", ArIsim[GetVehicleModel(GetPlayerVehicleID(i))-400], KMH, Yukseklik, Can);
TextDrawSetString(Text:GostergeYazi[i], HGG);
TextDrawShowForPlayer(i, GostergeYazi[i]);

Merci,
Dauvix
Titre: Re : Problème de Compteur
Posté par: Ssk le 04 Février 2010, 16:25:20
utilise la callback OnPlayerUpdate()

Et GetVehicleVelocity()


Et la tu aura un Speedo plus précis ^^
Titre: Re : Problème de Compteur
Posté par: Dauvix le 04 Février 2010, 16:55:43
J'ai essayé comme ceci mais rien n'a changé ...
Enfin je ne voit aucune différence ...

public OnPlayerUpdate()
{
for(new i=0; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && Gosterge[i] == 1)
{
TextDrawShowForPlayer(i, Text:ArkaPlan0);
TextDrawShowForPlayer(i, Text:ArkaPlan1);
TextDrawShowForPlayer(i, Text:ArkaPlan2);
TextDrawShowForPlayer(i, Text:ArkaPlan3);
TextDrawShowForPlayer(i, Text:ArkaPlan4);
TextDrawShowForPlayer(i, Text:ArkaPlan5);
TextDrawShowForPlayer(i, Text:ArkaPlan6);

new HGG[265]; new Float:Can;
GetVehicleHealth(GetPlayerVehicleID(i), Can);
GetVehicleVelocity(GetPlayerVehicleID(i), Xa, Ya, Za);
GetPlayerPos(i,Xa,Ya,Za);
KMH = floatsqroot(floatpower(floatabs(floatsub(Xa,Xb[i])),2)+floatpower(floatabs(floatsub(Ya,Yb[i])),2)+floatpower(floatabs(floatsub(Za,Zb[i])),2));
KMH *= 5.5;
Yukseklik = Za;
format(HGG, sizeof(HGG), "~b~~h~~h~Vehicule: ~w~%s~n~~g~~h~Vitesse: ~w~%0.0f km/h~n~~n~~y~~h~Altitude: ~w~%.1f m~n~~r~~h~Etat: ~w~%.2f", ArIsim[GetVehicleModel(GetPlayerVehicleID(i))-400], KMH, Yukseklik, Can);
TextDrawSetString(Text:GostergeYazi[i], HGG);
TextDrawShowForPlayer(i, GostergeYazi[i]);

if(KMH >= 250)
{
TextDrawTextSize(Hizg[i],603.000000,0.000000);
}
else
{
TextDrawTextSize(Hizg[i], floatadd(534.0, floatdiv(KMH, 3.900000)),0.000000);
}
TextDrawShowForPlayer(i, Hizg[i]);

if(Can < 0)
{
TextDrawTextSize(Cang[i],538.000000,0.000000);
}
else if(Can >= 1000)
{
TextDrawTextSize(Cang[i],603.000000,0.000000);
}
else
{
TextDrawTextSize(Cang[i],floatadd(534.0, floatdiv(Can, 14.6000000)),0.000000);
}
TextDrawShowForPlayer(i, Cang[i]);
TextDrawShowForPlayer(i, Cizgi);
}
else
{
TextDrawHideForPlayer(i, Text:GostergeYazi[i]);
TextDrawHideForPlayer(i, Text:Hizg[i]);
TextDrawHideForPlayer(i, Text:Cang[i]);
TextDrawHideForPlayer(i, Text:ArkaPlan0);
TextDrawHideForPlayer(i, Text:ArkaPlan1);
TextDrawHideForPlayer(i, Text:ArkaPlan2);
TextDrawHideForPlayer(i, Text:ArkaPlan3);
TextDrawHideForPlayer(i, Text:ArkaPlan4);
TextDrawHideForPlayer(i, Text:ArkaPlan5);
TextDrawHideForPlayer(i, Text:ArkaPlan6);
TextDrawHideForPlayer(i, Text:Cizgi);
} GetPlayerPos(i,Xb[i],Yb[i],Zb[i]), Xb[i] = Xa; Yb[i] = Ya; Zb[i] = Za;
}
}