[Pomoc] kilometri


Započeo Ivann, Mart 18, 2014, 11:16:23 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim:FS
Detaljan opis problema: ne ocitava mi kilometre
Dio skripte:
enum cInfo
{
	cKilometer,                    
	cMeter,                         
};


speedometre[i][Kilometre] = TextDrawCreate(540.000000, 430.000000, "_");
		TextDrawBackgroundColor(speedometre[i][Kilometre], 255);
		TextDrawFont(speedometre[i][Kilometre], 2);
		TextDrawLetterSize(speedometre[i][Kilometre], 0.270000, 1.000000);
		TextDrawColor(speedometre[i][Kilometre], -1);
		TextDrawSetOutline(speedometre[i][Kilometre], 1);
		TextDrawSetProportional(speedometre[i][Kilometre], 1);



forward CarUpdate(i);
public CarUpdate(i)
{
    new vid = GetPlayerVehicleID(i);
    CarInfo[vid][cMeter] += (speed[i]*10)/36;
    if(CarInfo[vid][cMeter] > 999)
	{
		CarInfo[vid][cKilometer] += 1;
		CarInfo[vid][cMeter] = 0;
	}

	if(IsASportCar(vid))
 	{
  		if(speed[vid] == 0)
  		{
  			Gas[vid]-=10;
		}
  		else if(speed[vid] > 0 && speed[vid] <= 60)
  		{
			Gas[vid]-=20;
		}
		else if(speed[vid] > 60 && speed[vid] <= 120)
		{
  			Gas[vid]-=30;
		}
		else if(speed[vid] > 120 && speed[vid] <= 400)
		{
  			Gas[vid]-=45;
		}
	}
	else
	{
		if(speed[vid] == 0)
 		{
 			Gas[vid]-=5;
		}
 		else if(speed[vid] > 0 && speed[vid] <= 60)
 		{
			Gas[vid]-=10;
		}
		else if(speed[vid] > 60 && speed[vid] <= 120)
		{
 			Gas[vid]-=15;
		}
		else if(speed[vid] > 120 && speed[vid] <= 400)
		{
 			Gas[vid]-=25;
		}
	}
	return 1;
}



public OnPlayerUpdate(playerid)
{
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
	    new Float:fPos[3],vehicleid,Sspeed[256],string[256],kilo[256];
	    vehicleid = GetPlayerVehicleID(playerid);
		GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);
		speed[playerid] = GetVehicleSpeed(vehicleid);

		if( speed[playerid] <= SPEED_1 )
		{
			format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
		}
		else if(speed[playerid] <= SPEED_2 )
		{
			format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
		}
		else if(speed[playerid] <= MAX_SPEED )
		{
			format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
		}
		else
		{
			format(Sspeed,sizeof(Sspeed),"~R~Too much");
		}
		new carid=GetPlayerVehicleID(playerid);
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 1)
		{
			format(kilo,sizeof(kilo),"00000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 2)
		{
			format(kilo,sizeof(kilo),"0000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 3)
		{
			format(kilo,sizeof(kilo),"000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 4)
		{
			format(kilo,sizeof(kilo),"00%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 5)
		{
			format(kilo,sizeof(kilo),"0%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 6)
		{
			format(kilo,sizeof(kilo),"%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/100);
		}
		format(string,sizeof(string),"%s",kilo);
		TextDrawSetString(speedometre[playerid][Kilometre], string);
		format(string,sizeof(string),"%s",Sspeed);
		TextDrawSetString(speedometre1[playerid][Vitesse], string);
		format(string,sizeof(string),"%s",VehiclesName[GetVehicleModel(carid)-400]);
		TextDrawSetString(speedometre3[playerid][Vehicule], string);
	}
	return 1;
}
Poslednja Izmena: Mart 18, 2014, 11:17:07 PRE PODNE od Ivann

Na koji nacin si sredio da ti se ovi metri povecavaju ?

Citat: â–... â–† â–ˆ Alon â–ˆ â–† â–... poslato Mart 18, 2014, 12:12:46 POSLE PODNE
Na koji nacin si sredio da ti se ovi metri povecavaju ?
nez to sam naso pa me zanimalo zas ne ocitava
// Speedometer By Shawn Miller Thanks for use. Please leave the credits !

#include <a_samp>
#define MAX_CAR 100000 // Put here your number of maximum cars on your server.

new Text:Textdraw1347;

new VehiclesName[][] = {
	"Ldance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer",
	"Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer","Emperor",
	"Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car","Police Car",
	"Police Car","Police Ranger","Picador","S.W.A.T.","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer","Luggage Trailer",
	"Stair Trailer","Boxville","Farm Plow","Utility Trailer" };

enum cInfo
{
	cKilometer,                     // Kilometers of the vehicle
	cMeter,                         // Meters of the vehicle
};
new CarInfo[MAX_CAR][cInfo];
stock arrlen(&constinteger)
{
	new tmp[12];
	format(tmp, 12, "%i", constinteger);
	return strlen(tmp);
}

public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print(" Speedometer by Shawn Miller");
	print("--------------------------------------\n");
	
	print("Loading Speedometer ...\n");
	for(new i = 0; i < MAX_PLAYERS; i++)
  	{
		);
		TextDrawUseBox(Textdraw1337,1);
		TextDrawBoxColor(Textdraw1337,0x00000066);
		TextDrawTextSize(Textdraw1337,639.000000,160.000000);
		TextDrawAlignment(Textdraw1337,2);
		TextDrawBackgroundColor(Textdraw1337,0x00000000);
		TextDrawFont(Textdraw1337,3);
		TextDrawLetterSize(Textdraw1337,0.599999,8.300000);
	 	TextDrawColor(Textdraw1337,0xffffffff);
	 	TextDrawSetOutline(Textdraw1337,1);

		Textdraw1339 = TextDrawCreate(473.000000,390.000000,"Speed:");
		Textdraw1340 = TextDrawCreate(605.000000,395.500000,"I");
		Textdraw1341 = TextDrawCreate(588.000000,401.000000,"I");
		Textdraw1342 = TextDrawCreate(571.000000,406.900000,"I");
		Textdraw1343 = TextDrawCreate(555.000000,412.400000,"I");
		Textdraw1344 = TextDrawCreate(540.000000,416.000000,"I");
		Textdraw1345 = TextDrawCreate(473.000000,413.000000,"Fuel:");
		Textdraw1346 = TextDrawCreate(472.000000,369.000000,"Vehicle:");
		Textdraw1347 = TextDrawCreate(472.000000,430.000000,"Kilometers:");

		TextDrawUseBox(Textdraw1340,1);
		TextDrawBoxColor(Textdraw1340,0x00ffffff);
		TextDrawTextSize(Textdraw1340,614.000000,2.000000);
		TextDrawUseBox(Textdraw1341,1);
		TextDrawBoxColor(Textdraw1341,0x00ffffff);
		TextDrawTextSize(Textdraw1341,597.000000,0.000000);
		TextDrawUseBox(Textdraw1342,1);
		TextDrawBoxColor(Textdraw1342,0x00ffffff);
		TextDrawTextSize(Textdraw1342,580.000000,-2.000000);
		TextDrawUseBox(Textdraw1343,1);
		TextDrawBoxColor(Textdraw1343,0x00ffffff);
		TextDrawTextSize(Textdraw1343,564.000000,0.000000);
		TextDrawUseBox(Textdraw1344,1);
		TextDrawBoxColor(Textdraw1344,0x00ffffff);
		TextDrawTextSize(Textdraw1344,548.000000,0.000000);


		TextDrawAlignment(Textdraw1339,0);
		TextDrawAlignment(Textdraw1340,0);
		TextDrawAlignment(Textdraw1341,0);
		TextDrawAlignment(Textdraw1342,0);
		TextDrawAlignment(Textdraw1343,0);
		TextDrawAlignment(Textdraw1344,0);
		TextDrawAlignment(Textdraw1345,0);
		TextDrawAlignment(Textdraw1346,0);
		TextDrawAlignment(Textdraw1347,0);


		TextDrawBackgroundColor(Textdraw1339,0x000000ff);
		TextDrawBackgroundColor(Textdraw1340,0x00ffffff);
		TextDrawBackgroundColor(Textdraw1341,0x00ffffff);
		TextDrawBackgroundColor(Textdraw1342,0x00ffffff);
		TextDrawBackgroundColor(Textdraw1343,0x00ffffff);
		TextDrawBackgroundColor(Textdraw1344,0x00ffffff);
		TextDrawBackgroundColor(Textdraw1345,0x000000ff);
		TextDrawBackgroundColor(Textdraw1346,0x000000ff);
		TextDrawBackgroundColor(Textdraw1347,0x000000ff);


		TextDrawFont(Textdraw1339,1);
		TextDrawLetterSize(Textdraw1339,0.199999,1.199999);
		TextDrawFont(Textdraw1340,3);
		TextDrawLetterSize(Textdraw1340,1.000000,2.899999);
		TextDrawFont(Textdraw1341,3);
		TextDrawLetterSize(Textdraw1341,1.000000,2.299999);
		TextDrawFont(Textdraw1342,3);
		TextDrawLetterSize(Textdraw1342,1.000000,1.600000);
		TextDrawFont(Textdraw1343,3);
		TextDrawLetterSize(Textdraw1343,1.000000,1.000000);
		TextDrawFont(Textdraw1344,3);
		TextDrawLetterSize(Textdraw1344,1.000000,0.599999);
		TextDrawFont(Textdraw1345,1);
		TextDrawLetterSize(Textdraw1345,0.299999,1.000000);
		TextDrawFont(Textdraw1346,2);
		TextDrawLetterSize(Textdraw1346,0.199999,1.000000);
		TextDrawFont(Textdraw1347,2);
		TextDrawLetterSize(Textdraw1347,0.199999,1.000000);


		TextDrawColor(Textdraw1339,0xffffffff);
		TextDrawColor(Textdraw1340,0x00ffffff);
		TextDrawColor(Textdraw1341,0x00ffffff);
		TextDrawColor(Textdraw1342,0x00ffffff);
		TextDrawColor(Textdraw1343,0x00ffffff);
		TextDrawColor(Textdraw1344,0x00ffffff);
		TextDrawColor(Textdraw1345,0xffffffff);
		TextDrawColor(Textdraw1346,0xffffffff);
		TextDrawColor(Textdraw1347,0xffffffff);


		TextDrawSetOutline(Textdraw1339,1);
		TextDrawSetOutline(Textdraw1340,1);
		TextDrawSetOutline(Textdraw1341,1);
		TextDrawSetOutline(Textdraw1342,1);
		TextDrawSetOutline(Textdraw1343,1);
		TextDrawSetOutline(Textdraw1344,1);
		TextDrawSetOutline(Textdraw1345,1);
		TextDrawSetOutline(Textdraw1346,1);
		TextDrawSetOutline(Textdraw1347,1);


		TextDrawSetProportional(Textdraw1339,1);
		TextDrawSetProportional(Textdraw1340,1);
		TextDrawSetProportional(Textdraw1341,1);
		TextDrawSetProportional(Textdraw1342,1);
		TextDrawSetProportional(Textdraw1343,1);
		TextDrawSetProportional(Textdraw1344,1);
		TextDrawSetProportional(Textdraw1345,1);
		TextDrawSetProportional(Textdraw1346,1);
		TextDrawSetProportional(Textdraw1347,1);


		TextDrawSetShadow(Textdraw1339,1);
		TextDrawSetShadow(Textdraw1340,1);
		TextDrawSetShadow(Textdraw1341,1);
		TextDrawSetShadow(Textdraw1342,1);
		TextDrawSetShadow(Textdraw1343,1);
		TextDrawSetShadow(Textdraw1344,1);
		TextDrawSetShadow(Textdraw1345,1);
		TextDrawSetShadow(Textdraw1346,1);
		TextDrawSetShadow(Textdraw1347,1);
		print("Speedometer loaded\n");
		return 1;
  	}
  	return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_ONFOOT) // A pied
	{
		TextDrawHideForPlayer(playerid, speedometre[playerid][Kilometre]);
		TextDrawHideForPlayer(playerid, speedometre1[playerid][Vitesse]);
	    TextDrawHideForPlayer(playerid, speedometre3[playerid][Vehicule]);
	    TextDrawHideForPlayer(playerid, Textdraw1337);
	    TextDrawHideForPlayer(playerid, Textdraw1338);
	    TextDrawHideForPlayer(playerid, Textdraw1339);
	    TextDrawHideForPlayer(playerid, Textdraw1340);
	    TextDrawHideForPlayer(playerid, Textdraw1341);
	    TextDrawHideForPlayer(playerid, Textdraw1342);
	    TextDrawHideForPlayer(playerid, Textdraw1343);
	    TextDrawHideForPlayer(playerid, Textdraw1344);
	    TextDrawHideForPlayer(playerid, Textdraw1345);
	    TextDrawHideForPlayer(playerid, Textdraw1346);
	    TextDrawHideForPlayer(playerid, Textdraw1347);
	    return 1;
	}
	else if(newstate == PLAYER_STATE_DRIVER)
	{
	    new plname[MAX_PLAYER_NAME];
		GetPlayerName(playerid, plname, sizeof(plname));
		new vehicleid = GetPlayerVehicleID(playerid);
        TextDrawShowForPlayer(playerid, speedometre[playerid][Kilometre]);
	    TextDrawShowForPlayer(playerid, speedometre1[playerid][Vitesse]);
	    TextDrawShowForPlayer(playerid, speedometre3[playerid][Vehicule]);
	    TextDrawShowForPlayer(playerid, Text:Textdraw1337);
	    TextDrawShowForPlayer(playerid, Text:Textdraw1338);
	    TextDrawShowForPlayer(playerid, Text:Textdraw1339);
	    TextDrawShowForPlayer(playerid, Text:Textdraw1345);
	    TextDrawShowForPlayer(playerid, Text:Textdraw1346);
	    TextDrawShowForPlayer(playerid, Text:Textdraw1347);
	    if( Gas[vehicleid] >= 8 && Gas[vehicleid] <= 10 )
		{
		    TextDrawShowForPlayer(playerid,Text:Textdraw1340);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1341);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1342);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1343);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1344);
		}
     	if( Gas[vehicleid] >= 6 && Gas[vehicleid] < 8 )
		{
		    TextDrawShowForPlayer(playerid,Text:Textdraw1341);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1342);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1343);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1344);
		}
		if( Gas[vehicleid] >= 4 && Gas[vehicleid] < 6 )
		{
		    TextDrawShowForPlayer(playerid,Text:Textdraw1342);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1343);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1344);
		}
		if( Gas[vehicleid] >= 2 && Gas[vehicleid] < 4 )
		{
		    TextDrawShowForPlayer(playerid,Text:Textdraw1343);
		    TextDrawShowForPlayer(playerid,Text:Textdraw1344);
		}
		if( Gas[vehicleid] > 0 && Gas[vehicleid] < 2 )
		{
		    TextDrawShowForPlayer(playerid,Text:Textdraw1344);
		}
		if( Gas[vehicleid] == 0)
		{
		    return 1;
		}
	}
	return 1;
}



forward GetVehicleSpeed(vehicleid);
public GetVehicleSpeed(vehicleid)
{
    new Float:X, Float:Y, Float:Z;
    GetVehicleVelocity(vehicleid, X, Y, Z);
    return floatround(floatsqroot(X * X + Y * Y + Z * Z) * 180);
}

forward IsASportCar(carid);
public IsASportCar(carid)
{
    if(carid==0)
	    { return 0; }
	new car = GetVehicleModel(carid);
	if(car == 402  || car == 411 || car == 415 || car == 429 || car == 451 || car == 475 || car == 477 || car == 496 || car == 506 || car == 551 || car == 558 || car == 559 || car == 565 || car == 587 || car == 589)
	    { return 1; }
	else if(car == 602 || car == 603)
	    {return 1;}
	return 0;
}

forward CarUpdate(i);
public CarUpdate(i)
{
    new vid = GetPlayerVehicleID(i);
// Compteur de kilomčtres
    CarInfo[vid][cMeter] += (speed[i]*1)/3;
    if(CarInfo[vid][cMeter] > 1)
	{
		CarInfo[vid][cKilometer] += 1;
		CarInfo[vid][cMeter] = 0;
	}
// Essence
	if(IsASportCar(vid))
 	{
  		if(speed[vid] == 0)
  		{
  			Gas[vid]-=10;
		}
  		else if(speed[vid] > 0 && speed[vid] <= 6)
  		{
			Gas[vid]-=20;
		}
		else if(speed[vid] > 6 && speed[vid] <= 12)
		{
  			Gas[vid]-=30;
		}
		else if(speed[vid] > 12 && speed[vid] <= 40)
		{
  			Gas[vid]-=45;
		}
	}
	else
	{
		if(speed[vid] == 0)
 		{
 			Gas[vid]-=5;
		}
 		else if(speed[vid] > 0 && speed[vid] <= 6)
 		{
			Gas[vid]-=10;
		}
		else if(speed[vid] > 6 && speed[vid] <= 12)
		{
 			Gas[vid]-=15;
		}
		else if(speed[vid] > 12 && speed[vid] <= 40)
		{
 			Gas[vid]-=25;
		}
	}
	return 1;
}


public OnPlayerUpdate(playerid)
{
	if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
	{
	    new Float:fPos[3],vehicleid,Sspeed[256],string[256],kilo[256];
	    vehicleid = GetPlayerVehicleID(playerid);
		GetVehicleVelocity(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2]);
		speed[playerid] = GetVehicleSpeed(vehicleid);

		if( speed[playerid] <= SPEED_1 )
		{
			format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
		}
		else if(speed[playerid] <= SPEED_2 )
		{
			format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
		}
		else if(speed[playerid] <= MAX_SPEED )
		{
			format(Sspeed,sizeof(Sspeed),"%d~W~km/h", speed[playerid]);
		}
		else
		{
			format(Sspeed,sizeof(Sspeed),"~R~Too much");
		}
		new carid=GetPlayerVehicleID(playerid);
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 1)
		{
			format(kilo,sizeof(kilo),"00000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/1);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 2)
		{
			format(kilo,sizeof(kilo),"0000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/1);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 3)
		{
			format(kilo,sizeof(kilo),"000%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/1);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 4)
		{
			format(kilo,sizeof(kilo),"00%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/1);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 5)
		{
			format(kilo,sizeof(kilo),"0%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/1);
		}
		if(arrlen(CarInfo[vehicleid][cKilometer]) == 6)
		{
			format(kilo,sizeof(kilo),"%d~r~%d", CarInfo[carid][cKilometer], CarInfo[carid][cMeter]/1);
		}
		format(string,sizeof(string),"%s",kilo);
		TextDrawSetString(speedometre[playerid][Kilometre], string);
		format(string,sizeof(string),"%s",Sspeed);
		TextDrawSetString(speedometre1[playerid][Vitesse], string);
		format(string,sizeof(string),"%s",VehiclesName[GetVehicleModel(carid)-4]);
		TextDrawSetString(speedometre3[playerid][Vehicule], string);
	}
	return 1;
}
Poslednja Izmena: Mart 18, 2014, 14:17:09 POSLE PODNE od Ivann

Pokusaj nesto na ovaj fazon

Na vrh
new Float:Kilometri[MAX_VEHICLES];


I napravis neki stock il public koji bi ti ucitavao sve to
new Float:ST[4], vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
GetVehicleVelocity(vehicleid,ST[0],ST[1],ST[2]);
ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 179.28625;
Kilometri[vehicleid] += ST[3]/1000;



kako da sredam ono Vehisle i fuel?