17.02.2013, 16:15
Hey, how I can optimatizotion this code? Please give examples.
pawn Код:
forward speedtim(playerid);
public speedtim(playerid){
if(IsPlayerInAnyVehicle(playerid))
{
new vehicleid = GetPlayerVehicleID(playerid);
new model = GetVehicleModel(vehicleid);
new String[128],Str[150];
new HH, MM, SS;
gettime(HH, MM, SS);
if(model == BMX || model == MTBIKE || model == BIKE)
{
format(String,sizeof(String),"~y~%i",ZaidejoGreitis( playerid ));
TextDrawSetString(SPEED1[playerid], String);
TextDrawShowForPlayer(playerid, SPEED1[playerid]);
TextDrawShowForPlayer(playerid, SPEEDPAPILD2[playerid]);
}else{
new vehid=GetPlayerVehicleID(playerid);
new Float:speed_x,Float:speed_y,Float:speed_z,Float:final_speed;
GetVehicleVelocity(vehid,speed_x,speed_y,speed_z);
final_speed = floatsqroot(((speed_x*speed_x)+(speed_y*speed_y))+(speed_z*speed_z))*136.666667; // 136.666667 = kmph // 85.4166672= mph
CarInfo[vehid][prav] += final_speed;
CarInfo[vehid][rida] += final_speed;
if(CarInfo[vehid][prav]/10000 > 1.0)
{
if(CarInfo[vehid][degalutipas] == 1)
{
CarInfo[vehid][benzinas95]-=1;
}
if(CarInfo[vehid][degalutipas] == 2)
{
CarInfo[vehid][benzinas98]-=1;
}
if(CarInfo[vehid][degalutipas] == 3)
{
CarInfo[vehid][dyzelis]-=1;
}
if(CarInfo[vehid][degalutipas] == 4)
{
CarInfo[vehid][dujos]-=1;
}
CarInfo[vehid][prav] = 0.0;
if(CarInfo[vehid][degalutipas] == 1 && CarInfo[vehid][benzinas95] < 1)
{
Variklis(vehid,false);
}
if(CarInfo[vehid][degalutipas] == 2 && CarInfo[vehid][benzinas98] < 1)
{
Variklis(vehid,false);
}
if(CarInfo[vehid][degalutipas] == 3&& CarInfo[vehid][dyzelis] < 1)
{
Variklis(vehid,false);
}
if(CarInfo[vehid][degalutipas] == 4 && CarInfo[vehid][dujos] < 1)
{
Variklis(vehid,false);
}
}
new autop[25];
if(GetPVarInt(playerid, "AutoPilotas")==1) autop = "~g~Ijungtas";
else if(GetPVarInt(playerid, "AutoPilotas")==0) autop = "~g~Isjungtas";
new lockas[25];
if(CarInfo[vehid][lock] == true) lockas = "~g~Uzrakinta";
else if(CarInfo[vehid][lock] == false) lockas = "~r~Atrakinta";
new eng[25];
if(CarInfo[vehid][variklis] == true) eng = "~g~Uzvestas";
else if(CarInfo[vehid][variklis] == false) eng = "~r~Uzgesintas";
new Float:ridrod=CarInfo[vehid][rida]/10000;
if(CarInfo[vehid][degalutipas] == 1)
{
format(Str,150,"~n~~n~~n~~w~Degalai(Benzinas95): ~g~%i~w~l~n~Rida: ~r~%0.3f~w~km~n~Auto pilotas: %s~n~~w~Masina yra %s~n~~w~Variklis: %s",CarInfo[vehid][benzinas95],ridrod,autop,lockas,eng);
}
if(CarInfo[vehid][degalutipas] == 2)
{
format(Str,150,"~n~~n~~n~~w~Degalai(Benzinas98): ~g~%i~w~l~n~Rida: ~r~%0.3f~w~km~n~Auto pilotas: %s~n~~w~Masina yra %s~n~~w~Variklis: %s",CarInfo[vehid][benzinas98],ridrod,autop,lockas,eng);
}
if(CarInfo[vehid][degalutipas] == 3)
{
format(Str,150,"~n~~n~~n~~w~Degalai(Dyzelis): ~g~%i~w~l~n~Rida: ~r~%0.3f~w~km~n~Auto pilotas: %s~n~~w~Masina yra %s~n~~w~Variklis: %s",CarInfo[vehid][dyzelis],ridrod,autop,lockas,eng);
}
if(CarInfo[vehid][degalutipas] == 4)
{
format(Str,150,"~n~~n~~n~~w~Degalai(Dujos): ~g~%i~w~l~n~Rida: ~r~%0.3f~w~km~n~Auto pilotas: %s~n~~w~Masina yra %s~n~~w~Variklis: %s",CarInfo[vehid][dujos],ridrod,autop,lockas,eng);
}
if(ZaidejoGreitis( playerid )<100)
{
format(String,sizeof(String),"~y~%i",ZaidejoGreitis( playerid ));
}
if(ZaidejoGreitis( playerid )>=100)
{
format(String,sizeof(String),"~r~%i",ZaidejoGreitis( playerid ));
}
TextDrawSetString(SPEED1[playerid], String);
TextDrawSetString(SPEED2[playerid], Str);
TextDrawSetString(SPEEDPAPILD1[playerid], aVehicleNames[GetVehicleModel(vehid)-400]);
TextDrawShowForPlayer(playerid, SPEED1[playerid]);
TextDrawShowForPlayer(playerid, SPEED2[playerid]);
TextDrawShowForPlayer(playerid, SPEEDPAPILD1[playerid]);
TextDrawShowForPlayer(playerid, SPEEDPAPILD2[playerid]);
}
}
return 1;
}