Jump to content
  • 0

pomoc Tachometer - benzin


CryGame

Dotaz

Čaute !

 

Pawnujem si pomaličky svoj mód a potrebujem poradiť.

Dnes som si začal robiť svoj tachometer podľa niektorých príspevkov, ale potrebujem od Vás pomoc.

Časť kódu s ktorou potrebujem pomôcť.:

 

 

	  if(Benzin[vehid] <= 60) format(str,1520,"Stav: %.1f %~n~~g~IIIIIIIIIIIIIIIIIIIIIIIIIII",Benzin[vehid];
	  if(Benzin[vehid] <= 56) format(str,1520,"Stav: %.1f %~n~~g~IIIIIIIIIIIIIIIIIIIIIIIIII-",Benzin[vehid]);
	  if(Benzin[vehid] <= 52) format(str,1520,"Stav: %.1f %~n~~g~IIIIIIIIIIIIIIIIIIIIIIII--",Benzin[vehid]);
	  if(Benzin[vehid] <= 48) format(str,1520,"Stav: %.1f %~n~~g~IIIIIIIIIIIIIIIIIIIIII---",Benzin[vehid]);
	  if(Benzin[vehid] <= 44) format(str,1520,"Stav: %.1f %~n~~g~IIIIIIIIIIIIIIIIIIII----",Benzin[vehid]);
	  if(Benzin[vehid] <= 40) format(str,1520,"Stav: %.1f %~n~~g~IIIIIIIIIIIIIIIIII-----",Benzin[vehid]);
	  if(Benzin[vehid] <= 42) format(str,1520,"Stav: %.1f %~n~~w~~y~IIIIIIIIIIIIIII------",Benzin[vehid]);
	  if(Benzin[vehid] <= 38) format(str,1520,"Stav: %.1f %~n~~w~~y~IIIIIIIIIIIII-------",Benzin[vehid]);
	  if(Benzin[vehid] <= 34) format(str,1520,"Stav: %.1f %~n~~w~~y~IIIIIIIIIII--------",Benzin[vehid];
  	  if(Benzin[vehid] <= 30) format(str,1520,"Stav: %.1f %~n~~w~IIIIIIIII---------",Benzin[vehid]);
 	  if(Benzin[vehid] <= 26) format(str,1520,"Stav: %.1f %~n~~w~IIIIIII----------",Benzin[vehid];
	  if(Benzin[vehid] <= 22) format(str,1520,"Stav: %.1f %~n~~r~IIIII-----------",Benzin[vehid]);
	  if(Benzin[vehid] <= 18) format(str,1520,"Stav: %.1f %~n~~r~III-----------",Benzin[vehid];
	  if(Benzin[vehid] <= 14) format(str,1520,"Stav: %.1f %~n~~r~I------------",VBenzin[vehid]);
	  if(Benzin[vehid] <= 0) format(str,1520,"Stav: %.1f %~n~~r~-------------",Benzin[vehid]);

 

 

Ide o to, že mi to pripadá moc veľké, takže prvá otázka znie: Nedá sa to dať niako do cyklu ? Lebo skúšal som rozmýšľať nad hocičím, ale nejde to :d.

Chcel by som sa ešte opýtať, ako spraviť to, že niektoré autá budú mať 40l nádrž, iné 100,200,900 ... Zadefinovať ich viem, ale keby som mal písať tento kód samostatne pre každý typ, tak asi 300 riadkov je tam iba pre tachometer. Ďakujem za každý príspevok, čo i len o niake návody ako to spraviť.

Edited by CryGame
Link to comment
Share on other sites

12 odpovědí na tuto otázku

Recommended Posts

  • 0

Skús takto:

    new iPrepocet = floatround( float( Benzin[ vehid ] ) / 10.0 );
    iPrepocet = clamp( iPrepocet, 0, 9 );
    new const s_GasBar[ 10 ][ ] = {
        "------------------",
        "II----------------",
        "IIII--------------",
        "IIIIII------------",
        "IIIIIIII----------",
        "IIIIIIIIII--------",
        "IIIIIIIIIIII------",
        "IIIIIIIIIIIIII----",
        "IIIIIIIIIIIIIIII--",
        "IIIIIIIIIIIIIIIIII"
    };
	format( str, 1520, "Stav: %.1f %~n~~r~%s", Benzin[ vehid ], s_GasBar[ iPrepocet ] );
Edited by K@T4pULT
Link to comment
Share on other sites

  • 0

ok, zajtra testnem, a ako to mám spraviť s tou väčšiou nádržou ?

Čo chceš testovať? :d To bol len hrubý náčrt, ja robím síce Pawn ale len do CSka (niečo som skúšal aj samozrejme v sampe) takže nevím či to funguje na 100%..

Možno to bude ešte treba nejak poupraviť.. Každopádne asi takto nejako by som to spravil ja. Dávať tam switch ako ti poradil kolega vôbec nemá zmysel. toto bude najlepší spôsob na to si myslím..

 

Aká väčšia nádrž?

 

EDIT: Ok, skúsil som to otestovať, dal som to naopak :d Takto to bude fungovať:

	new iPrepocet = floatround( float( Benzin[ vehid ] ) / 10.0 );
	iPrepocet = clamp( iPrepocet, 0, 9 );
	new const s_GasBar[ 10 ][ ] = {
		"------------------",
		"II----------------",
		"IIII--------------",
		"IIIIII------------",
		"IIIIIIII----------",
		"IIIIIIIIII--------",
		"IIIIIIIIIIII------",
		"IIIIIIIIIIIIII----",
		"IIIIIIIIIIIIIIII--",
		"IIIIIIIIIIIIIIIIII"
	};
	format( str, 1520, "Stav: %.1f %~n~~r~%s", Benzin[ vehid ], s_GasBar[ iPrepocet ] );

file_YEVG66QAXL.png

Edited by K@T4pULT
Link to comment
Share on other sites

  • 0

Asi prvú otázku ti dám, čo to vlastne robí ? :d

Popíš mi prosím tie príkazy .. Myslím tak, že obmedzenie nádrže ... na osobáky chcem mať 90l nádrž, na motorky 30l na nákladné 500+ atd...

Definície mám, ale neviem či mám ten istý kód, len s inými hodnotami prepísať,

Edited by CryGame
Link to comment
Share on other sites

  • 0

To je ľahké.. :d Ty máš palivo v % to je celkom fajn pretože vďaka tomu si my do premennej dáme len 10 stavov.

Palivo v % vydelíme 10timi a zaokrúhlením sa dostaneme do jedného z tých "stavov".

 

Keď tam bude 50% tak je to stav číslo 4

pod 4 máme v premennej string "IIIIIIII----------"

 

Keď tam bude 100% tak je to stav číslo 9 (10ty string)

pod 9 máme v premennej string "IIIIIIIIIIIIIIIIIIIII"

Kód sa spracuje v podstate celkom rýchlo pretože je jednoduchý, tam nie sú žiadne zložité akcie.

Rýchly výpočet, vytvorí sa (konštantný) string potom formátujeme :)

Najviac času asi zaberie funkcia format() :d

 

Veď pozri si obrázok je to len ukážka ako to pracuje.

Edited by K@T4pULT
Link to comment
Share on other sites

  • 0

Takto si môžeš rozdeliť vozidlá podla toho, kolko majú mať maximálne v "nádrži"...

stock GetVehicleMaxFuel(model)
{
switch(model)
{
case 400,401,402: return 50;
case 403: return 100;
case 404: return 200;
}
return false;
}

_________________________________________________________

 

Všetko sa dá, treba chcieť...

 

Toto by malo byť podobné tvojmu, akurát cez for...

new string[25];
format(string, sizeof(string), "%d L - ", Fuel[vehicleid]);

for(new i=0;i<(floatround(Fuel[vehicleid]/GetVehicleMaxFuel(model)*10));i++) strcat(string, "I");

PS: nebolo to odskúšané

Link to comment
Share on other sites

  • 0

Chyba: error 017: undefined symbol "model"

Riadok: for(new l=0;l<(floatround(Benzin[vehicleid]/GetVehicleMaxFuel(model)*10));l++) strcat(string2, "I");

PS: Musel som prerobiť cyklus z i na l, lebo I už využívam na hráčov.

 

 

 

 

Wow xD To je kódik.

Tie tvoje trápne poznámky si nechaj pre seba ...

 

+ prerobil som si to zatial na HP vozidla, a problém je, že ja chcem napr od 500hp-350hp nastaviť inú farbu ako pri 1000hp a neukazuje mi to za tímy I -. Dá sa s tým niečo urobiť ?

Edited by CryGame
Link to comment
Share on other sites

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