Помогите с бензином(проверки)
#1

Здравствуйте, вот хотел сделать так чтобы если двигатель транспорта заведен, и игрока в нем нету, чтобы бензин заканчивался, вот код:
PHP код:
public CheckGas()
{
    new 
string[256];
    for(new 
i=0;i<MAX_PLAYERS;i++)
    {
        if(
IsPlayerConnected(i))
           {
               if(
GetPlayerState(i) == PLAYER_STATE_DRIVER)
               {
                   new 
vehicle GetPlayerVehicleID(i);
                if(
Gas[vehicle] >= 1)
                   {
                       if(
Gas[vehicle] <= 10)
                    {
                           
PlayerPlaySound(i10850.00.00.0);
                           if(
gGas[i] == 1) {
                               
GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel is low",5000,3);
                        }
                    }
                       if(
gGas[i] == 1) {
                       if(
IsAPlane(vehicle) || IsABoat(vehicle) || IsABike(vehicle) || IsAHarvest(vehicle) || IsADrugHarvest(vehicle) || IsASweeper(vehicle))
                       {
                          
format(stringsizeof(string), "~b~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel:~w~ N/A");
                    }
                    else
                    {
                        
format(stringsizeof(string), "~b~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel:~w~ %.1f",Gas[vehicle]);
                    }
                      
GameTextForPlayer(i,string,20500,3); }
                      if(
IsAPlane(vehicle) || IsABoat(vehicle) || IsABike(vehicle) || IsAHarvest(vehicle) || IsADrugHarvest(vehicle) || IsASweeper(vehicle) || engineOn[vehicle] == 0) {  }
                      else { 
Gas[vehicle] -= 0.1; }
                   }
                   else
                   {
                      
NoFuel[i] = 1;
                      
TogglePlayerControllable(i0);
                    
GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~No fuel in Vehicle",1500,3);
                }
            }
        }
    }
    return 
1;

а это то что сделал я:
PHP код:
public CheckGas()
{
    new 
string[256];
    
//for(new i=0;i<MAX_PLAYERS;i++)
    
for(new i=0;i<MAX_VEHICLES;i++)
    {
        if(
IsPlayerConnected(i))
           {
               
//if(GetPlayerState(i) == PLAYER_STATE_DRIVER)
               
if(engineOn[GetPlayerVehicleID(playerid)])
               {
                   new 
vehicle GetPlayerVehicleID(i);
                if(
Gas[vehicle] >= 1)
                   {
                       if(
Gas[vehicle] <= 10)
                    {
                           
PlayerPlaySound(i10850.00.00.0);
                           if(
gGas[i] == 1) {
                               
GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel is low",5000,3);
                        }
                    }
                       if(
gGas[i] == 1) {
                       if(
IsAPlane(vehicle) || IsABoat(vehicle) || IsABike(vehicle) || IsAHarvest(vehicle) || IsADrugHarvest(vehicle) || IsASweeper(vehicle))
                       {
                          
format(stringsizeof(string), "~b~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel:~w~ N/A");
                    }
                    else
                    {
                        
format(stringsizeof(string), "~b~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel:~w~ %.1f",Gas[vehicle]);
                    }
                      
GameTextForPlayer(i,string,20500,3); }
                      if(
IsAPlane(vehicle) || IsABoat(vehicle) || IsABike(vehicle) || IsAHarvest(vehicle) || IsADrugHarvest(vehicle) || IsASweeper(vehicle) || engineOn[vehicle] == 0) {  }
                      else { 
Gas[vehicle] -= 0.1; }
                   }
                   else
                   {
                      
NoFuel[i] = 1;
                      
TogglePlayerControllable(i0);
                    
GameTextForPlayer(i,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~No fuel in Vehicle",1500,3);
                }
            }
        }
    }
    return 
1;

но не работает, подскажите какую проверку можно поставить?
Reply
#2

Quote:

for(new i=0;i<MAX_VEHICLES;i++)
{
if(IsPlayerConnected(i))
{

Как так 0_О
Нужно MAX_PLAYERS
Reply
#3

Quote:
Originally Posted by White_116
Посмотреть сообщение
Как так 0_О
Нужно MAX_PLAYERS
нет, не помогло, как было так и осталось
Reply
#4

можно new string[64];
Quote:

if(engineOn[GetPlayerVehicleID(playerid)])
{
new vehicle = GetPlayerVehicleID(i);

вот так
Quote:

new vehicle = GetPlayerVehicleID(i);
if(engineOn[vehicle])
{

3 пасажира в 3 раза быстрее бензин жрать будет
Reply
#5

Quote:
Originally Posted by White_116
Посмотреть сообщение
можно new string[64];

вот так

3 пасажира в 3 раза быстрее бензин жрать будет
no, мне надо если двигатель включен а игрока нет в транспорте, тогда чтобы бензин тратился, а он у меня стоит на месте, вот код /engine (http://pastebin.com/K353p75V)
какю там проверку можно будет взять? чтобы проверял у авто заведен ли движок или не заведен
я пробовал ставить цикл на MAX_VEHICLES и ставил проверку на заведен ли двиг у авто или нет. и нифига не пашет нз что я не так сделал
Reply
#6

мде что-то я в другую сторону попёр. этот код тебе совсем не подходит! тебе нужно все машины проверять и к ним создать нужные переменные. ещё отдельно делай инфу для игроков.
Reply
#7

Quote:
Originally Posted by White_116
Посмотреть сообщение
мде что-то я в другую сторону попёр. этот код тебе совсем не подходит! тебе нужно все машины проверять и к ним создать нужные переменные. ещё отдельно делай инфу для игроков.
погоди, можно получается циклом проверять? и в /engine поставить при завождении транспорта новую переменную, например:
PHP код:
new perem[MAX_VEHICLES]; 
PHP код:
perem[vehicleid] = 1
а при выключении двигателя:
PHP код:
perem[vehicleid] = 0
а в checkgas проверку:
PHP код:
if(perem[i] == 1)
{
//тогда тут действие

так чтоли?А про какую инфу ты говоришь?
Reply
#8

Держи мой код, перепишешь под себя:
Код:
public CheckGas()
{
	new string[256];
	new sendername[MAX_PLAYER_NAME];
	for(new c=0;c<CAR_AMOUNT;c++)
	{
		new engine,lights,alarm,doors,bonnet,boot,objective;
		GetVehicleParamsEx(c,engine,lights,alarm,doors,bonnet,boot,objective);
	    if(Gas[c] >= 1)
		{
	        if(engine && !IsAPlane© && !IsABoat© && !IsArmyAir© && !IsAVeloBike© && !IsAHarvest© && !IsADrugHarvest© && !IsASweeper©)
			{
				Gas[c]--;
			}
		}
	   	else
	   {
			for(new i=0;i<MAX_PLAYERS;i++)
			{
				if(IsPlayerInAnyVehicle(i))
				{
					if(GetPlayerVehicleID(i) == c)
					{
						if(PlayerInfo[i][pMaskuse] == 1)
						{
							format(string, sizeof(string), "* Двигатель заглох (( Незнакомец ))");
						}
						else
						{
							GetPlayerName(i, sendername, sizeof(sendername));
							format(string, sizeof(string), "* Двигатель Заглох (( %s ))", sendername);
						}
						ProxDetector(30.0, i, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
						SendClientMessage(i,COLOR_GREY," (( В автомобиле кончился бензин! Вызовите механика или заправьтесь из своей канистры! ))");
					}
				}
			}
	       SetVehicleParamsEx(c,false,lights,alarm,doors,bonnet,boot,objective);
		}
	}
	return 1;
}
работает)
Reply
#9

if(IsPlayerConnected(i))
Это лишнее у тебя
Reply
#10

Quote:
Originally Posted by Crystal_Speed
Посмотреть сообщение
Держи мой код, перепишешь под себя:
спс братан, я подделан под свое кое как, и у меня при чекании каждый раз глохнет движок сам по себе, попробую исправить
Лови +!
PHP код:
public CheckGas()
{
    new 
string[256];
    new 
sendername[MAX_PLAYER_NAME];
    for(new 
c=0;c<CAR_AMOUNT;c++)
    {
    
//    new engine,lights,alarm,doors,bonnet,boot,objective;
        
GetVehicleParamsEx(c,engine,lights,alarm,doors,bonnet,boot,objective);
        if(
Gas[c] >= 1)
{
if(
Gas[c] <= 10)
{
//PlayerPlaySound(playerid, 1085, 0.0, 0.0, 0.0);
if(gGas[c] == 1) {
//GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel is low",5000,3);
}
}
if(
gGas[c] == 1) {
if(
IsAPlane(c) || IsABoat(c) || IsABike(c) || IsAHarvest(c) || IsADrugHarvest(c) || IsASweeper(c))
{
//format(string, sizeof(string), "~b~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel:~w~ N/A");
}
else
{
//format(string, sizeof(string), "~b~~n~~n~~n~~n~~n~~n~~n~~n~~n~Fuel:~w~ %.1f",Gas[c]);
}
//GameTextForPlayer(playerid,string,20500,3);
}
if(
IsAPlane(c) || IsABoat(c) || IsABike(c) || IsAHarvest(c) || IsADrugHarvest(c) || IsASweeper(c) || engineOn[c] == 0) {  }
else {
Gas[c] -= 0.1;
}
//else
//{
//NoFuel[playerid] = 1;
//TogglePlayerControllable(playerid, 0);
//GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~No fuel in Vehicle",1500,3);
//}
}
else
       {
            for(new 
i=0;i<MAX_PLAYERS;i++)
            {
                if(
IsPlayerInAnyVehicle(i))
                {
                    if(
GetPlayerVehicleID(i) == c)
                    {
                        if(
PlayerInfo[i][pMaskuse] == 1)
                        {
                            
format(stringsizeof(string), "* ????????? ?????? (( ?????????? ))");
                        }
                        else
                        {
                            
GetPlayerName(isendernamesizeof(sendername));
                            
format(stringsizeof(string), "* ????????? ?????? (( %s ))"sendername);
                        }
                        
ProxDetector(30.0istringCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                        
SendClientMessage(i,COLOR_GREY," (( ? ?????????? ???????? ??????! ???????? ???????? ??? ??????????? ?? ????? ????????! ))");
                    }
                }
            }
           
SetVehicleParamsEx(c,false,lights,alarm,doors,bonnet,boot,objective);
        }
    }
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)