Jump to content
  • 0

Problema script.


2pacs

Question

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]

  • Upvote 1
Link to comment
Share on other sites

17 answers to this question

Recommended Posts

Poti sa stergi acele printf-uri de la km_counter. Le salvezi kilometrii undeva in MySQL?

 

Daca nu, atunci mai mergi cu masina si cand vrei sa inchizi server-ul scrie in consola comanda "exit" si vezi iar.

 

Serverul este pe ini, dar de ce nu se salva cand dadeam "X" la server si se salveaza cu "exit" ?

 

PS. Din cate vad nu este nici o problema... deci se poate da TC.

Link to comment
Share on other sites

Eu l-am facut doar sa se salveze intr-o variabila, ca poate cineva vrea sa il salveze intr-un sistem de vehicule pe mysql sau pe ini si  este alegerea lui.

 

Problema mea este ca mi se salveaza doar un sfert din cat am parcurs cu masina(ex: 1 din 3) si intrebarea mea este cum pot face sa se salveze 3 din 3?

Asta vreau eu sa ii dau de cap.

Link to comment
Share on other sites

Nu stiu ce sa zic, la mine nu se salveaza nimic. Asa si trebuie facut, adica variabila aia se reinitializeaza mereu. Poate e masina personala si de asta, se salveaza dar tu nu stii.

 

Daca vrei, fai tu sa se salveze in MySQL sau ceva si sa o incarce.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.