SA-MP Forums Archive
[Помогите!] Система бензина - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: [Помогите!] Система бензина (/showthread.php?tid=288207)



[Помогите!] Система бензина - Skinni - 06.10.2011

Во общем у меня такая проблема количество бензина в машине уходит в "минус"
Помогите сделать так что бы при 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'"); 
             } 
            } 
        } 
помогите буду благодарен.


Re: [Помогите!] Система бензина - -Stranger- - 06.10.2011

Жестко я сегодня туплю, но может так?
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'");
        }
    }




Re: [Помогите!] Система бензина - OKStyle - 07.10.2011

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



Re: [Помогите!] Система бензина - Stepashka - 07.10.2011

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


Re: [Помогите!] Система бензина - Skinni - 07.10.2011

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




Re: [Помогите!] Система бензина - Stepashka - 07.10.2011

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


Re: [Помогите!] Система бензина - Stepashka - 07.10.2011

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


Re: [Помогите!] Система бензина - Stepashka - 07.10.2011

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


Re: [Помогите!] Система бензина - Skinni - 07.10.2011

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 соответственно, параметры машины не булевы значения!
Спасибо помогло, компиляция удалась. сейчас про тестирую в игре.


Re: [Помогите!] Система бензина - Skinni - 07.10.2011

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