Jump to content
Autentificarea cu Google și Facebook nu mai este disponibilă. ×
  • 0

Question

Posted

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

2 answers to this question

Recommended Posts

  • 0
Posted

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

  • 0
Posted
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!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.