Jump to content
  • 0

Question

Posted

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

17 answers to this question

Recommended Posts

Posted

La OnGameModeExit, salveaza variabila specifica kilometrilor parcursi pentru fiecare vehicul, pune eventual si un printf ca sa vezi daca merge, astept un raspuns.

Rate me :)

  • Administrator
Posted

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.

Posted

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.

  • Administrator
Posted

Cum adica? Nu ai zis tu ca nu se salveaza, e o problema.

 

Tu salvezi undeva kilometrii parcursi in ini?

 

Ai incercat sa scrii "exit" in consola?

Posted

Pai am folosit comanda exit in consola, s-a inchis si vad ca acum s-au salvat kilometri... nu toti dar din 20 de kilometri s-au salvat 14...

kilometrii nu ii salvez nicaieri in ini si nici nu stiu unde se salveaza..

Posted

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.

 

1859311972_BANNER-GIREADAcopy-min.thumb.png.48e5e420ae2185dce5b244965a1d2601.png

 

Posted

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.

  • Administrator
Posted

Deci sa inteleg. Tu ai facut un sistem care salveaza kilometrii la masina?

Posted

Deci hai sa mai explic odata:

Am facut exact ca in tutorial si exact ce mi-ai dat tu in problema precedenta care nu functiona scriptul... acum nu mi se salveaza toti kilometri parcursi, se salveaza doar un sfert din intreg.

  • Administrator
Posted

Sincer, nu inteleg de ce se salveaza kilometrii la tine. La mine am testat si se reseteaza la 0. Esti extrem de sigur ca nu ai facut tu sa se salveze kilometrii?

In tutorial gireada nu a facut si cu salvarea lor.

  • Administrator
Posted

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.

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.