PDA

Просмотр полной версии : [Вопрос] Бензин



Killer
23.05.2017, 09:04
Как сделать чтобы бензин тратился только при езде?

DeimoS
23.05.2017, 09:46
Ну если у тебя есть спидометр, то вот тебе и показатель того, что человек едет.
Соответственно, если скорость больше нуля - производи действия над бензином.

Killer
23.05.2017, 11:06
Да, есть у меня таймер со спидометром. Если к примеру сделаю так -


If(SpeedVeh > 1) Fuell[veh] -= 0.0082

Рабочий код?

Alpano
23.05.2017, 11:11
да, но лучше сделать "If(SpeedVeh > 2)", чтобы исключить погрешность

Killer
23.05.2017, 17:09
Как реализовать так, чтобы на 1 проеханный км, уходил по 1 литру?


new Float:ms = (SpeedVehicle(playerid)/30.0)/600;
Probeg[veh] += ms;
if(SpeedVehicle(playerid) > 2) Fuell[veh] -= 0.0001;

Killer
24.05.2017, 08:53
Подскажите, пожалуйста. Очень буду благодарен.

DeimoS
24.05.2017, 11:18
Probeg[veh] += ms;
Ну вот же у тебя пробег вычисляется. От этого значения и пляши

Killer
24.05.2017, 12:14
И как это получается?

Probeg[veh] > 2? И уже прибавлять, или потом обнулять, как сделать каждые 2 км

DeimoS
24.05.2017, 12:45
Ну создай дополнительный массив и в него так же заноси значение ms. Когда оно становится больше определённого значения - обнуляй и отнимай бензин

Killer
24.05.2017, 15:33
Не понял ваших слов..

Наверное так?


bak[playerid] += ms;
if(bak[playerid] > 2) Fuell[veh] -= 1, bak[playerid] = 0;

DeimoS
24.05.2017, 19:10
Не понял ваших слов..

Наверное так?


bak[playerid] += ms;
if(bak[playerid] > 2) Fuell[veh] -= 1, bak[playerid] = 0;

А если не "наверное так", а просто взять и проверить? :)
Или без моего одобрения код 100% не заработает?

Seregamil
24.05.2017, 19:46
А если не "наверное так", а просто взять и проверить? :)
Или без моего одобрения код 100% не заработает?

Нельзя просто так взять и проверить код, пока Великий не одобрит его.

Killer
24.05.2017, 20:07
Не стал бы просто так спрашивать, просто бензин не отбавляеться, а км идут.
Вот моя реализация:


Float:bak[MAX_PLAYERS];
new Float:ms = (SpeedVehicle(playerid)/30.0)/600;
Probeg[veh] += ms;
bak[playerid] += ms;
if(bak[playerid] > 2) Fuell[veh] -= 1, bak[playerid] = 0;

DeimoS
24.05.2017, 20:21
Не стал бы просто так спрашивать, просто бензин не отбавляеться, а км идут.
Вот моя реализация:


Float:bak[MAX_PLAYERS];
new Float:ms = (SpeedVehicle(playerid)/30.0)/600;
Probeg[veh] += ms;
bak[playerid] += ms;
if(bak[playerid] > 2) Fuell[veh] -= 1, bak[playerid] = 0;

Ну так ты глобальной переменную сделай. И обнулять при входе в авто не забывай