Топливо авто на спидометре!
Здравствуйте все!
Сразу к делу, мод в котором я ковыряюсь, был обнаружен баг, на спидометре авто, ТД бензина не убавляется, и я не могу понять, толи бензин бесконечный, толи он очень медленно расходуется, толи ТД не работает по мере потребления топлива.
На том же спидометре есть шкала состояния машины, так вот она работает нормально, а горючка нет, вот код шкалы топлива!
Открыть/закрыть
PHP код:
switch(VehInfo[vehicleid][vFuel])
{
case 0: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1]," ");
case 1..3: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"II");
case 4..5: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"III");
case 6..7: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIII");
case 8..9: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIII");
case 10..11: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIII");
case 12..13: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIII");
case 14..15: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIII");
case 16..17: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIII");
case 18..19: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIII");
case 20..21: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIII");
case 22..23: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIII");
case 24..25: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIII");
case 26..27: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIII");
case 28..29: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIII");
case 30..31: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIII");
case 32..35: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIIII");
case 36..40: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIIIII");
case 41..50: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIIIIII");
default: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIIIIIII");
}
А вот полностью паблик спидометра, с этим кодом, который выше!
Открыть/закрыть
PHP код:
publics: UpdateSpeedometr(playerid)
{
if(!GetPVarInt(playerid,"ShowSpeed") || GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
if(!pTemp[playerid][pAFK])
{
new vehicleid = GetPVarInt(playerid,"VehicleEnters");
if(vehicleid <= 0) return 0;
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 538) return 1;
if(VehInfo[vehicleid][vFuel] <= 1.0)
{
SendClientMessage(playerid,-1,""#net"В машине нет бензина");
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vehicleid, false, lights, alarm, doors, bonnet, boot, objective);
return 0;
}
new Float:X2, Float:Y2, Float:Z2,Float:X,Float:Y,Float:Z;
X2 = VehInfo[vehicleid-1][vehicleX];
Y2 = VehInfo[vehicleid-1][vehicleY];
Z2 = VehInfo[vehicleid-1][vehicleZ];
GetVehicleVelocity(vehicleid,X,Y,Z);
new Float:speed = floatsqroot(floatadd(floatadd(floatpower(X, 2), floatpower(Y, 2)), floatpower(Z, 2))) * 126.31;
new PlayerSpeed = floatround(speed);
if (PlayerSpeed>=350)
{
OnPlayerCheat(playerid,AC_SPEED_HACKCAR_code, AC_KICK);
return 0;
}
if(PlayerSpeed <= 165 && VehInfo[vehicleid-1][vEngineRestyle] && GetPVarInt(playerid, "SPRINT_KEY") && VehInfo[vehicleid-1][vEngine] && GetPVarInt(playerid,"VehicleEnters") != 462)
{
new Float:vAngles, Float:dis = 0.05;
GetVehicleZAngle(vehicleid, vAngles);
SetVehicleVelocity(vehicleid,floatadd(X,floatmul(dis,floatsin(-vAngles,degrees))), floatadd(Y,floatmul(dis,floatcos(-vAngles,degrees))), Z);
}
if(GetPVarInt(playerid, "slimit") && PlayerSpeed >= GetPVarInt(playerid,"slimit"))
{
new Float:dif = GetPVarInt(playerid,"slimit") / speed;
SetVehicleVelocity(vehicleid,X*dif,Y*dif,Z);
}
GetVehiclePos(vehicleid, X, Y, Z);
if(X > 10000.0 || Y > 10000.0 || Z > 10000.0 || X < -10000.0 || Y < -10000.0 || Z < -10000.0)
{
SetVehicleToRespawn(vehicleid);
OnPlayerCheat(playerid, AC_PlayerSpeedHack_code, AC_KICK);
return 0;
}
//
VehInfo[vehicleid-1][vehicleX] = X;
VehInfo[vehicleid-1][vehicleY] = Y;
VehInfo[vehicleid-1][vehicleZ] = Z;
//
new Float:veloc = PointToPoint3D(X2,Y2,Z2,X,Y,Z)/1000;
VehInfo[vehicleid-1][vDrived] += veloc;
if(VehInfo[vehicleid][vFuel] > 1.0 && !IsAPlane(GetVehicleModel(vehicleid))) VehInfo[vehicleid][vFuel] -= (veloc*2);
else if(IsAPlane(GetVehicleModel(vehicleid))) VehInfo[vehicleid][vFuel] -= 0.001;
new Float: CarH;
GetVehicleHealth(vehicleid, CarH);
switch(VehInfo[vehicleid][vFuel])
{
case 0: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1]," ");
case 1..3: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"II");
case 4..5: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"III");
case 6..7: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIII");
case 8..9: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIII");
case 10..11: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIII");
case 12..13: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIII");
case 14..15: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIII");
case 16..17: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIII");
case 18..19: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIII");
case 20..21: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIII");
case 22..23: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIII");
case 24..25: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIII");
case 26..27: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIII");
case 28..29: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIII");
case 30..31: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIII");
case 32..35: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIIII");
case 36..40: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIIIII");
case 41..50: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIIIIII");
default: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][1],"IIIIIIIIIIIIIIIIIIII");
}
switch(floatround(CarH / 10.0, floatround_ceil))
{
case 0: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2],"I");
case 1..10: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2], "II");
case 11..20: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2], "IIIII");
case 21..30: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2], "IIIIIIII");
case 31..40: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2], "IIIIIIIIII");
case 41..50: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2], "IIIIIIIIIIII");
case 51..60: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2], "IIIIIIIIIIIIII");
case 61..70: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2], "IIIIIIIIIIIIIIII");
case 71..80: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2], "IIIIIIIIIIIIIIIIII");
case 81..100: PlayerTextDrawSetString(playerid,TD_SPEED[playerid][2] ,"IIIIIIIIIIIIIIIIIIII");
}
format(string, 64, "%i", PlayerSpeed);
PlayerTextDrawSetString(playerid, TD_SPEED[playerid][0], string);
if(IsVehicleDrivingBackwards(vehicleid)) PlayerTextDrawSetString(playerid,TD_SPEED[playerid][3],"~w~N ~r~R ~w~1 2 3 4 5");
else
{
if(!PlayerSpeed) PlayerTextDrawSetString(playerid,TD_SPEED[playerid][3],"~r~N ~w~R 1 2 3 4 5");
if(PlayerSpeed > 1 && PlayerSpeed < 40) PlayerTextDrawSetString(playerid,TD_SPEED[playerid][3],"~w~N R ~r~1 ~w~2 3 4 5");
if(PlayerSpeed > 40 && PlayerSpeed < 79) PlayerTextDrawSetString(playerid,TD_SPEED[playerid][3],"~w~N R 1 ~r~2 ~w~3 4 5");
if(PlayerSpeed > 80 && PlayerSpeed < 109) PlayerTextDrawSetString(playerid,TD_SPEED[playerid][3],"~w~N R 1 2 ~r~3 ~w~4 5");
if(PlayerSpeed > 110 && PlayerSpeed < 129) PlayerTextDrawSetString(playerid,TD_SPEED[playerid][3],"~w~N R 1 2 3 ~r~4 ~w~5");
if(PlayerSpeed > 130 && PlayerSpeed < 220) PlayerTextDrawSetString(playerid,TD_SPEED[playerid][3],"~w~N R 1 2 3 4 ~r~5");
}
}
SetTimerEx("UpdateSpeedometr",200,0,"i",playerid);
return 1;
}
Помогите пожалуйста разобраться в этом! За помощь, с меня как полагается!