Mamont
Новичок
когда покупаешь дом, в машине 0 литров. Когда прописываешь бензин, он появляется и можно ехать, но отнимается 2-7 литров и становится 0. Машина глохнет. А если убрать проверку на наличие бензина, то в минус литры отбaвляются нормально без скачков. Почему если 300 или 20000 или 100 литров есть, то отбaвляется 2-7 литров и бензина становится 0. Помогите плиз.
---------- Post added at 22:07 ---------- Previous post was at 21:40 ----------
поднимаем тему, вопрос актуален
PHP:
public UpdateSpeedometr(playerid)//обновляем каждую секунду наш текстдрав
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
new maxx[7];
if(PlayerInfo[playerid][pOgran] >= 1){maxx = "~R~Max";}
else{maxx = "~l~Max";}
new locked[8];
if(IsLocked[GetPlayerVehicleID(playerid)] == 1){locked = "~R~Lock";}
else{locked = "Unlock";}
format(str1, sizeof(str1),"%d ~b~km/h",SpeedVehicle(playerid) / 2);
if(Fuell[vehicleid] >50)
{
format(str2, sizeof(str2),"~g~%.0f ~r~FUEL",Fuell[vehicleid]);
}
if(Fuell[vehicleid] ==50)
{
format(str2, sizeof(str2),"~y~%.0f ~r~FUEL",Fuell[vehicleid]);
}
if(Fuell[vehicleid] <50)
{
format(str2, sizeof(str2),"~r~%.0f ~r~FUEL",Fuell[vehicleid]);
}
format(str5, sizeof(str5), "%s",locked);
format(str6, sizeof(str6), "%s",maxx);
/******************************************************************************************************/
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && PlayerInfo[playerid][pOgran] >= 1)
{
#define MAX_SPEEDO 0.5 // Максимально допустимая скорость.
#define SLOW_FACTOR 0.8 // На сколько будет сбавляться скорость
new Float:x,Float:y,Float:z,veh;
veh = GetPlayerVehicleID(playerid);
GetVehicleVelocity(veh,x,y,z);
if((x > MAX_SPEEDO || x < -MAX_SPEEDO) || (y > MAX_SPEEDO || y < -MAX_SPEEDO))
{
SetVehicleVelocity(veh,x*SLOW_FACTOR,y*SLOW_FACTOR,z);
}
}
/******************************************************************************************************/
if(SpeedVehicle(playerid) / 2 > MAX_SPEED)
{
SendClientMessage(playerid, COLOR_LIGHTRED, "Вы были кикнуты по подозрению в читерстве. (Код ошибки: 2888)");
SendClientMessage(playerid, COLOR_LIGHTRED, "Удалите чит программу, чтобы продолжить игру на сервере");
Kick(playerid);
}
/******************************************************************************************************/
if(Fuell[vehicleid] <= 0)
{
Fuell[vehicleid] = 0;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
zavodis[vehicleid] = false;
}
if(SpeedVehicle(playerid) >= 50 && Playerderbi[playerid] >= 1)
{
SendClientMessage(playerid, COLOR_NEWS, "Вы были дисквалифицированы!");
DisablePlayerRaceCheckpoint(playerid);
derbichet[playerid] = 0;
DerbiPlayers -= 1;
TogglePlayerControllable(playerid, 1);
SetPlayerInterior(playerid, 1);
SetPlayerPos(playerid,-2159.0461,640.3610,1052.3817);
SetPlayerFacingAngle(playerid, 76.4112);
Playerderbi[playerid] = 0;
}
if(zavodis[vehicleid] == true)
{
Fuell[vehicleid] -= 0.004;
if(GetPlayerVehicleID(playerid) == caridhouse[playerid])PlayerInfo[playerid][pFuelcar] -= 0.004;
}
TextDrawSetString(SpeedShow[playerid],str1);
TextDrawSetString(FuelShow[playerid],str2);
TextDrawSetString(StatusShow[playerid],str5);
TextDrawSetString(MaxShow[playerid],str6);
if(!SpecialVehicle(GetPlayerVehicleID(playerid))) UnSurfCar(GetPlayerVehicleID(playerid));
}
}
PHP:
new tacha = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)//если входит в авто мы показываем ему текстдрав
{
if(!IsAPlane(tacha) && !IsAZapretCar(tacha))
{
STimer[playerid] = SetTimerEx("UpdateSpeedometr", Update, true, "i", playerid);
TextDrawShowForPlayer(playerid,Box);
TextDrawShowForPlayer(playerid,SpeedShow[playerid]);
TextDrawShowForPlayer(playerid,FuelShow[playerid]);
TextDrawShowForPlayer(playerid,StatusShow[playerid]);
TextDrawShowForPlayer(playerid,MaxShow[playerid]);
}
}
else if(newstate == PLAYER_STATE_ONFOOT)//выходит скрываем
{
KillTimer(STimer[playerid]);
TextDrawHideForPlayer(playerid,Box);
TextDrawHideForPlayer(playerid,SpeedShow[playerid]);
TextDrawHideForPlayer(playerid,FuelShow[playerid]);
TextDrawHideForPlayer(playerid,StatusShow[playerid]);
TextDrawHideForPlayer(playerid,MaxShow[playerid]);
}
if(newstate == PLAYER_STATE_DRIVER)
{
if(IsAZapretCar(caridi))//если не на велике то...
{
zavodis[caridi] = true;
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);
}
if(zavodis[caridi] == false)
{
SendClientMessage(playerid,COLOR_GREEN,"{26931c}Чтобы завести двигатель нажмите на клавишу {ffffff}'2'{26931c}, включить фары {ffffff}'CTRL'");
}
}
PHP:
else if (strcmp("/en", cmdtext, true) == 0)
{
new caridi = GetPlayerVehicleID(playerid);//Присваиваем значение переменной caridi
if(zavodis[caridi] == false && !IsAZapretCar(caridi))//проверяем на состояние двигателя и велик
{
if(GetPlayerVehicleID(playerid) != INVALID_VEHICLE_ID)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);//перечисляем переменные
SetVehicleParamsEx(GetPlayerVehicleID(playerid) ,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);//вкл. движок
zavodis[caridi] = true;//ставим движку состояние вкл.
}
}
}
else if(zavodis[caridi] == true && !IsAZapretCar(caridi))//проверяем на состояние двигателя и велик
{
if(GetPlayerVehicleID(playerid) != INVALID_VEHICLE_ID)
{
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);//перечисляем переменные
SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);//выкл. движок
zavodis[caridi] = false;//ставим движку состояние выкл.
}
}
}
return true;
}
---------- Post added at 22:07 ---------- Previous post was at 21:40 ----------
поднимаем тему, вопрос актуален
