Jump to content
  • 0

Ajutor Speedometer


Rivalry

Question

Salut..am si eu o problema cu Speedometrul.

Incerc sa invat niste chestii pe gm ul bluffs v4 si recent am adaugat un speedometru nou si am incercat sa l scot pe ala vechi..toare bune si frumoase..doar ca la asta nou nu merge faza cu combustibilul..ii 100 tot timpul oricat ai merge..

Apare pe undeva in script sa pui codul legat de fuel dar nu stiu ce cod imi trebuie mai exact..

Ma poate ajuta cineva?

Link la Speedometru: https://anonfiles.com/L9e5f8lfpd/source_pwn

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Salut @Rivalry,

In primul rand, iti recomand sa muti speedometrul intr-un timer ceva mai mare, deoarece OnPlayerUpdate se apeleaza odata la milisecunda daca imi aduc bine aminte, sau ceva pe acolo.

In alta ordine de idei, fuelul nu scade deoarece nu ai adaugat nicaieri un script prin care acesta sa scada. Pentru a face asta, avand in vedere ca nu ai libraria YSI, pe care ti-o recomand sa o cauti pe forum, va trebui sa creezi un nou timer, de preferat sa se apeleze odata la 20-30 de secunde. Acesta ar trebui sa arate in felul urmator:

public OnGameModeInit( ) {
	SetTimer( "Vehicle_Fuel", 1000 * 20, true ); //practic, de aici porneste timerul cand porneste serverul, ai grija sa pui doar functia SetTimer in publicul OnGameModeInit, nu sa introduci iar OnGameModeInit in script. Intelegi ce zic. Se va repeta odata la 20 de secunde
	return true; }

forward Vehicle_Fuel( );
public Vehicle_Fuel( ) {
	foreach( new i : Player ) {
		if( IsPlayerLogged[ i ] && IsPlayerInAnyVehicle( i ) && GetPlayerState( i ) == PLAYER_STATE_DRIVER ) {
			new vehicleid = GetPlayerVehicleID( i );
			if( !IsAbicycle( vehicleid ) && vehicle_Engine[ vehicleid ] ) { // aici verifici daca nu e bicicleta si daca motorul este pornit
				if( carfuel[ vehicleid ] > 0 ) carfuel[ vehicleid ] --; // aici scade benzina in cazul in care este mai mare de 0
				else GameTextForPlayer( i, "Ai ramas fara benzina!", 5000, 3 ); // aici, daca nu mai ai benzina si te afli in vehicul, iti va aparea textul respectiv
			}
		}
	}
	return true; }

Cam asta ar fi cea mai simpla metoda dupa parerea mea.

Va trebui sa mai adaugi tu niste variabile noi, cum ar fi IsPlayerLogged ca sa verifici daca jucatorul este logat pe server (daca a introdus parola corecta si l a bagat pe server). In cazul in care nu vrei sa folosesti, sau din alte motive, schimbu IsPlayerLogged[ i ] cu IsPlayerConnected( i ).

De asemenea, mai ai variabila Vehicle_Engine[ vehicleid ], care verifica daca motorul vehiculului este pornit, va trebui sa o adaugi sau sa o scoti din script daca nu vrei sa o folosesti.

  • Like 1

Daca te-am ajutat =>

spacer.png

Link to comment
Share on other sites

  • 0
7 hours ago, shane said:

Salut @Rivalry,

In primul rand, iti recomand sa muti speedometrul intr-un timer ceva mai mare, deoarece OnPlayerUpdate se apeleaza odata la milisecunda daca imi aduc bine aminte, sau ceva pe acolo.

In alta ordine de idei, fuelul nu scade deoarece nu ai adaugat nicaieri un script prin care acesta sa scada. Pentru a face asta, avand in vedere ca nu ai libraria YSI, pe care ti-o recomand sa o cauti pe forum, va trebui sa creezi un nou timer, de preferat sa se apeleze odata la 20-30 de secunde. Acesta ar trebui sa arate in felul urmator:

public OnGameModeInit( ) {
	SetTimer( "Vehicle_Fuel", 1000 * 20, true ); //practic, de aici porneste timerul cand porneste serverul, ai grija sa pui doar functia SetTimer in publicul OnGameModeInit, nu sa introduci iar OnGameModeInit in script. Intelegi ce zic. Se va repeta odata la 20 de secunde
	return true; }

forward Vehicle_Fuel( );
public Vehicle_Fuel( ) {
	foreach( new i : Player ) {
		if( IsPlayerLogged[ i ] && IsPlayerInAnyVehicle( i ) && GetPlayerState( i ) == PLAYER_STATE_DRIVER ) {
			new vehicleid = GetPlayerVehicleID( i );
			if( !IsAbicycle( vehicleid ) && vehicle_Engine[ vehicleid ] ) { // aici verifici daca nu e bicicleta si daca motorul este pornit
				if( carfuel[ vehicleid ] > 0 ) carfuel[ vehicleid ] --; // aici scade benzina in cazul in care este mai mare de 0
				else GameTextForPlayer( i, "Ai ramas fara benzina!", 5000, 3 ); // aici, daca nu mai ai benzina si te afli in vehicul, iti va aparea textul respectiv
			}
		}
	}
	return true; }

Cam asta ar fi cea mai simpla metoda dupa parerea mea.

Va trebui sa mai adaugi tu niste variabile noi, cum ar fi IsPlayerLogged ca sa verifici daca jucatorul este logat pe server (daca a introdus parola corecta si l a bagat pe server). In cazul in care nu vrei sa folosesti, sau din alte motive, schimbu IsPlayerLogged[ i ] cu IsPlayerConnected( i ).

De asemenea, mai ai variabila Vehicle_Engine[ vehicleid ], care verifica daca motorul vehiculului este pornit, va trebui sa o adaugi sau sa o scoti din script daca nu vrei sa o folosesti.

mersi frumos, incerc acum!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.