- 0
Problema script.
-
Similar Content
-
- 0 replies
- 174 views
-
- 3 replies
- 488 views
-
- 2 answers
- 185 views
-
Problema turf
By Soryn.,
- 3 answers
- 289 views
-
- 1 reply
- 184 views
-
-
Recently Browsing 0 members
- No registered users viewing this page.
Question
2pacs
Problemă întâlnită (descriere):Merg cu masina 10-20 Kilometrii dar imi salveaza doar 3km dupa restart sau oprirea serverului.
Ero(area / rile) / warning-(ul / urile):-
Liniile de cod / sursa / script-ul:mai jos
Imagini / Video (optional):-
Aţi încercat să rezolvaţi singur?:Nu am stiut unde ar trebui sa ma uit.
[pawn]new LastCar[MAX_PLAYERS];[/pawn]
[pawn]new Float:VehicleKM[MAX_VEHICLES];
new Float:X1[MAX_VEHICLES];
new Float:Y1[MAX_VEHICLES];
new Float:Z1[MAX_VEHICLES];
new Float:X2[MAX_VEHICLES];
new Float:Y2[MAX_VEHICLES];
new Float:Z2[MAX_VEHICLES];
new timerkm[MAX_VEHICLES];
[/pawn]
[pawn]forward km_counter(vehicleid);
public km_counter(vehicleid)
{
//inlocuim valorile noi cu cele vechi
printf("#Debug 1: %f %f %f", X1[vehicleid], Y1[vehicleid], Z1[vehicleid]);
X1[vehicleid] = X2[vehicleid];
Y1[vehicleid] = Y2[vehicleid];
Z1[vehicleid] = Z2[vehicleid];
printf("#Debug 2: %f %f %f", X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);
//stocam noile valori
GetVehiclePos(vehicleid, X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);
printf("#Debug 3: %f %f %f", X2[vehicleid], Y2[vehicleid], Z2[vehicleid]);
//calculam distanta dintre cele doua punce vehciul punct si cel nou
X1[vehicleid] -= X2[vehicleid];
Y1[vehicleid] -= Y2[vehicleid];
Z1[vehicleid] -= Z2[vehicleid];
printf("#Debug 4: %f %f %f", X1[vehicleid], Y1[vehicleid], Z1[vehicleid]);
//acum il transformam in kilometrii(deoarece distanta este in metrii) impartind la 1000.0
VehicleKM[vehicleid] += floatsqroot((X1[vehicleid]*X1[vehicleid])+(Y1[vehicleid]*Y1[vehicleid])+(Z1[vehicleid]*Z1[vehicleid])) / 1000.0;
printf("#Debug 5: %f | %f", VehicleKM[vehicleid], floatsqroot((X1[vehicleid]*X1[vehicleid])+(Y1[vehicleid]*Y1[vehicleid])+(Z1[vehicleid]*Z1[vehicleid])) / 1000.0);
return 1;
}[/pawn]
[pawn]if(newstate == PLAYER_STATE_DRIVER)
{
LastCar[playerid] = GetPlayerVehicleID(playerid);
}
if(oldstate == PLAYER_STATE_ONFOOT && newstate == PLAYER_STATE_DRIVER)
{
timerkm[vehicleid] = SetTimerEx("km_counter", 1000, 1, "d", vehicleid);//pornim acel timer care masoara kilometrii parcursi
}
if(oldstate == PLAYER_STATE_DRIVER && newstate == PLAYER_STATE_ONFOOT )
{
KillTimer(timerkm[LastCar[playerid]]);
format(string, sizeof(string), "Vehiculul are in total %d kilometrii parcursi", floatround(VehicleKM[LastCar[playerid]], floatround_ceil));//afisam cati kilometrii are parcursi
SendClientMessage(playerid, -1, string);
} [/pawn]
Link to comment
Share on other sites
17 answers to this question
Recommended Posts