//СИСТЕМА РАСХОДА ТОПЛИВА: чем выше скорость тем больше расход
if(benzProv[nCarID[playerid]] < 10)//15 как только benzProv достигает 10 начинает отниматься топливо
{
if(velocity <= 1) benzProv[nCarID[playerid]]=2+benzProv[nCarID[playerid]];//при скорости <2 топливо не уменьшается
if(velocity>1 && velocity<=60) benzProv[nCarID[playerid]]=4+benzProv[nCarID[playerid]];//при скорости <2 топливо не уменьшается
if(velocity>60 && velocity<=75) benzProv[nCarID[playerid]]=6+benzProv[nCarID[playerid]];//при скорости <90 топливо уменьшается каждые 10 секунд по литру
if(velocity>75 && velocity<=90) benzProv[nCarID[playerid]]=8+benzProv[nCarID[playerid]];//при скорости >90 топливо уменьшается каждые 5 секунд по литру
if(velocity>90 && velocity<=100) benzProv[nCarID[playerid]]=10+benzProv[nCarID[playerid]];//при скорости >90 топливо уменьшается каждые 5 секунд по литру
if(velocity>100) benzProv[nCarID[playerid]]=12+benzProv[nCarID[playerid]];//при скорости >190 топливо уменьшается каждые 3.3 секунды по литру
}
else
{
if(LevelFuel[nCarID[playerid]] >= 1)//если уровень топлива больше 1
{
if(LevelFuel[nCarID[playerid]] <= 10) PlaySoundForPlayer(playerid, 1085);
if(IsAPlane(nCarID[playerid]) || IsABoat(nCarID[playerid]) //если не на авиации и не в лодке
|| VehicleName[nCarModel[playerid]-400][Category]==Rail_Transport//и не в поездах
|| VehicleName[nCarModel[playerid]-400][Category]==Bicycle//и не на велике
|| ( nCarID[playerid]>=(35+NH)&&nCarID[playerid]<=(46+NH) )//и не в дерби
) LevelFuel[nCarID[playerid]]++; //прибавляем по литру, чтобы скомпенсировать отнятие у тех кто не может заправиться
LevelFuel[nCarID[playerid]]--;//отнимаем по литру топливо
}
}
if(LevelFuel[nCarID[playerid]]>50)
{
format(strBak,sizeof(strBak),"~g~FUEL:~w~%d~n~",LevelFuel[nCarID[playerid]]);
}
if(LevelFuel[nCarID[playerid]]<=50&&LevelFuel[nCarID[playerid]]>=20)
{
format(strBak,sizeof(strBak),"~g~FUEL:~y~%d~n~",LevelFuel[nCarID[playerid]]);
}
if(LevelFuel[nCarID[playerid]]<20)
{
format(strBak,sizeof(strBak),"~g~FUEL:~r~%d~n~",LevelFuel[nCarID[playerid]]);
}
//КОНЕЦ РАСЧЁТА ТОПЛИВА
new Float:Level;
Level = float(LevelFuel[nCarID[playerid]]); Я так понял ? |
if( LevelFuel[car] < (GasMax-fuel+1) ) LevelFuel[car] += fuel; else { fuel = GasMax - LevelFuel[car]; LevelFuel[car] += fuel; }
new FillUp = GasMax - LevelFuel[nCarID[playerid]];
new FillUp = GasMax - LevelFuel[nCarID[playerid]];
new FillUp = GasMax - LevelFuel[nCarID[playerid]];
new FillUp = GasMax - LevelFuel[vehicleid];
new FillUp = GasMax - LevelFuel[nCarID[playerid]];
Тебе нужно полностью переделать все переменные с топливом и методы работы на десятичные числа (float).
Подсказал, работай. |
new Float: FillUp = floatsub(GasMax, LevelFuel[nCarID[playerid]]) |
new FillUp = floatround( floatsub(GasMax, LevelFuel[nCarID[playerid]]) ); |
new Float: FillUp = floatsub(GasMax, LevelFuel[nCarID[playerid]]); CostFuel = FillUp * SBizzInfo[3][sbEntranceCost];
я же написал
пробуй использовать вот так new FillUp = floatround( floatsub(GasMax, LevelFuel[nCarID[playerid]]) ); |
if(LevelFuel[nCarID[playerid]] >= 1) { LevelFuel[nCarID[playerid]]++; LevelFuel[nCarID[playerid]]--; } if(LevelFuel[nCarID[playerid]] < 1) { if(LevelFuel[nCarID[playerid]]>50) { format(strBak,sizeof(strBak),"~g~FUEL:~w~%f~n~",LevelFuel[nCarID[playerid]]); } if(LevelFuel[nCarID[playerid]]<=50&&LevelFuel[nCarID[playerid]]>=20) { format(strBak,sizeof(strBak),"~g~FUEL:~y~%f~n~",LevelFuel[nCarID[playerid]]); } if(LevelFuel[nCarID[playerid]]<20) { format(strBak,sizeof(strBak),"~g~FUEL:~r~%f~n~",LevelFuel[nCarID[playerid]]); }
floatround( floatadd(LevelFuel[nCarID[playerid]]), 0.1) ); floatround( floatsub(LevelFuel[nCarID[playerid]]), 0.1) );