[Помогите!] Система бензина
#1

Во общем у меня такая проблема количество бензина в машине уходит в "минус"
Помогите сделать так что бы при 0 количестве бензина автомобиль останавливался.

вот команда на заводку двигателя:
PHP Code:
else if (strcmp("/en"cmdtexttrue) == 0
    { 
    new 
caridi GetPlayerVehicleID(playerid); 
         if(
zavodis[playerid] == 0
         { 
         if(
GetPlayerVehicleID(playerid) != INVALID_VEHICLE_ID
         { 
         if(
GetPlayerState(playerid) == PLAYER_STATE_DRIVER
         { 
         if(
Fuell[caridi] <= 0) return SendClientMessage(playerid,COLOR_WHITE"::: Нет бензина! :::" );
         
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective); 
         
SetVehicleParamsEx(GetPlayerVehicleID(playerid) ,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective); 
         
zavodis[playerid] = 1
         } 
       } 
    } 
    else if(
zavodis[playerid] == 1
    { 
         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,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective); 
         
zavodis[playerid] = 0
         } 
       } 
    } 
    return 
1
вот сообщение о 0 количестве бензина:
PHP Code:
    if(newstate == PLAYER_STATE_DRIVER)
    {
   if(
Fuell[caridi] <= 0)
        {
        
GetVehicleParamsEx(caridi ,engine,lights,alarm,doors,bonnet,boot,objective); 
        
SetVehicleParamsEx(caridi ,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective); 
        
SendClientMessage(playeridCOLOR_REDD"::: В автомобиле нет бензина ::: "); 
        
SendClientMessage(playeridCOLOR_GREEN"{62AD50}Используйте телефон {FFFFFF}(( /call )) {62AD50}вызвать механика / таксиста"); 
        
PlayerInfo[playerid][pFuelcar] = 0;
        } 
            if(
GetVehicleModel(caridi) != 481 || GetVehicleModel(caridi) != 509 || GetVehicleModel(caridi) != 510
            { 
              if(
zavodis[playerid] == 0
             { 
                 
SendClientMessage(playerid,COLOR_GREEN,"{26931c}Чтобы завести двигатель нажмите на клавишу {ffffff}'2'{26931c} или введите {ffffff}'/en'"); 
             } 
            } 
        } 
помогите буду благодарен.
Reply
#2

Жестко я сегодня туплю, но может так?
PHP Code:
new EngineRunning[MAX_VEHICLES]; // в начало кода (состояние двигателя)
// далее заменяешь свой второй код на это (предварительно сделал бекап :))
if(newstate == PLAYER_STATE_DRIVER)
{
    if(
Fuell[caridi] <= 0)
    {
        
GetVehicleParamsEx(caridi ,engine,lights,alarm,doors,bonnet,boot,objective);
        
SetVehicleParamsEx(caridi ,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
        
SendClientMessage(playeridCOLOR_REDD"::: В автомобиле нет бензина ::: ");
        
SendClientMessage(playeridCOLOR_GREEN"{62AD50}Используйте телефон {FFFFFF}(( /call )) {62AD50}вызвать механика / таксиста");
        
PlayerInfo[playerid][pFuelcar] = 0;
        if(
EngineRunning[caridi] == true// Если двигатель работает, то глушим его
        
{
            new 
enginelightsalarmdoorsbonnetbootobjective;
            
GetVehicleParamsEx(caridienginelightsalarmdoorsbonnetbootobjective);
            
SetVehicleParamsEx(caridifalselightsalarmdoorsbonnetbootobjective);
            
EngineRunning[caridi] = false;
        }
    }
    else
    {
        if(
EngineRunning[caridi] == false// Если двигатель загрушен, то заводим его
        
{
            new 
enginelightsalarmdoorsbonnetbootobjective;
            
GetVehicleParamsEx(caridienginelightsalarmdoorsbonnetbootobjective);
            
SetVehicleParamsEx(cariditruelightsalarmdoorsbonnetbootobjective);
            
EngineRunning[caridi] = true;
        }
    }
    
    if(
GetVehicleModel(caridi) != 481 || GetVehicleModel(caridi) != 509 || GetVehicleModel(caridi) != 510)
    {
        if(
zavodis[playerid] == 0)
        {
            
SendClientMessage(playerid,COLOR_GREEN,"{26931c}Чтобы завести двигатель нажмите на клавишу {ffffff}'2'{26931c} или введите {ffffff}'/en'");
        }
    }

Reply
#3

Для начала поправить надо Fuell[caridi] <= 0 на
pawn Code:
Fuell[caridi] < 1
Reply
#4

Quote:
Originally Posted by OKStyle
View Post
Для начала поправить надо Fuell[caridi] <= 0 на
pawn Code:
Fuell[caridi] < 1
А в чем разница?
Тоже самое что писать вместо 16 => 0x000010
Reply
#5

Quote:
Originally Posted by -Stranger-
View Post
Жестко я сегодня туплю, но может так?
Вот что получилось...
PHP Code:
Process started >>>
new.
pwn(20118) : warning 213tag mismatch
new.pwn(20120) : warning 219local variable "engine" shadows a variable at a preceding level
new.pwn(20120) : warning 219local variable "lights" shadows a variable at a preceding level
new.pwn(20120) : warning 219local variable "alarm" shadows a variable at a preceding level
new.pwn(20120) : warning 219local variable "doors" shadows a variable at a preceding level
new.pwn(20120) : warning 219local variable "bonnet" shadows a variable at a preceding level
new.pwn(20120) : warning 219local variable "boot" shadows a variable at a preceding level
new.pwn(20120) : warning 219local variable "objective" shadows a variable at a preceding level
new.pwn(20128) : warning 213tag mismatch
new.pwn(20130) : warning 219local variable "engine" shadows a variable at a preceding level
new.pwn(20130) : warning 219local variable "lights" shadows a variable at a preceding level
new.pwn(20130) : warning 219local variable "alarm" shadows a variable at a preceding level
new.pwn(20130) : warning 219local variable "doors" shadows a variable at a preceding level
new.pwn(20130) : warning 219local variable "bonnet" shadows a variable at a preceding level
new.pwn(20130) : warning 219local variable "boot" shadows a variable at a preceding level
new.pwn(20130) : warning 219local variable "objective" shadows a variable at a preceding level
Pawn compiler 3.2.3664              Copyright 
(c1997-2006ITB CompuPhase
Header size
:           9316 bytes
Code size
:          2085552 bytes
Data size
:          7134848 bytes
Stack
/heap size:      24000 bytesestimated maxusageunknowndue to recursion
Total requirements
9253716 bytes
16 Warnings

Reply
#6

удали строки new engine, lights, alarm, doors, bonnet, boot, objective; внутри IF
Reply
#7

А все false и true замени на 0 и 1 соответственно, параметры машины не булевы значения!
Reply
#8

Что у тебя задано под VEHICLE_PARAMS_OFF?
Reply
#9

Quote:
Originally Posted by Stepashka
View Post
удали строки new engine, lights, alarm, doors, bonnet, boot, objective; внутри IF
Quote:
Originally Posted by Stepashka
View Post
А все false и true замени на 0 и 1 соответственно, параметры машины не булевы значения!
Спасибо помогло, компиляция удалась. сейчас про тестирую в игре.
Reply
#10

Не помогло, топливо все ровно уходит в минус, и машина продолжает двигаться...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)