Перейти к содержанию

Рекомендуемые сообщения

www_vlad

Добрый день уважаемые форумчане.Возникла проблема с одной системой.

Система заключается в повреждении двигателя при определенном скажем так "здоровье" автомобиля.Не могу сделать так, чтобы когда двигатель ломался, он ломался для авто в котором сидит игрок, а не для всех авто сразу.Пробовал и так, и сяк - не выходит.Помогите.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus
кинь код! там наверное стоит не правильная переменная !

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
www_vlad

public SetPlayerUnjail(playerid)
{
if(IsPlayerInAnyVehicle(playerid) && CarBroken[playerid] == 0)
    {
        new Float:vhealth;
        GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
        if(vhealth <= 400)
        {
            if(!IsAPlane(GetPlayerVehicleID(playerid)) && !IsABycicle(GetPlayerVehicleID(playerid)))
            {
             SendClientMessage(playerid, COLOR_YELLOW, "Двигатель повреждён и машина не может двигаться.");
             SendClientMessage(playerid, COLOR_YELLOW, "Вызовите автомеханика или эвакуатор. Для выхода используйте /exit.");
             new engine,lights,alarm,doors,bonnet,boot,objective;
                        GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
                        SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
             CarBroken[playerid] = 1;
  }
  }
}
}

Далее:

 

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 512)
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerInAnyVehicle(playerid))
{
if(CarBroken[playerid] == 1)
{
SendClientMessage(playerid, COLOR_WHITE, "Двигатель сломан.");
return 1;
}
if(!engineOn[GetPlayerVehicleID(playerid)])
{
if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
return 1;
}

new string[256];
new sendername[MAX_PLAYER_NAME];
new engine,lights,alarm,doors,bonnet,boot,objective;
new vid = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
if(gEngine[playerid] == 1) { return 1; }
new playerveh = GetPlayerVehicleID(playerid);
PutPlayerInVehicle(playerid, playerveh, 0);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s пытается завести двигатель.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetTimerEx("StartingTheVehicle",3500,0,"i",playerid);
gEngine[playerid] = 1;
return 1;
}
if(engineOn[GetPlayerVehicleID(playerid)])
{
if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
{
return 1;
}
new string[256];
new sendername[MAX_PLAYER_NAME];
new engine,lights,alarm,doors,bonnet,boot,objective;
new vid = GetPlayerVehicleID(playerid);
GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(vid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
engineOn[GetPlayerVehicleID(playerid)] = false;
TogglePlayerControllable(playerid, 1);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s повернул ключ и заглушил двигатель.", sendername);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
gEngine[playerid] = 0;
return 1;
}
}
}
return 1;
}

Это те строки, где находится

CarBroken[MAX_PLAYERS];

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

О_о парень по легче с кодами) зачем это


if(IsPlayerInAnyVehicle(playerid) && CarBroken[playerid] == 0)
{
new Float:vhealth;
GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
if(vhealth {
if(!IsAPlane(GetPlayerVehicleID(playerid)) && !IsABycicle(GetPlayerVehicleID(playerid)))
{
SendClientMessage(playerid, COLOR_YELLOW, "Двигатель повреждён и машина не может двигаться.");
SendClientMessage(playerid, COLOR_YELLOW, "Вызовите автомеханика или эвакуатор. Для выхода используйте /exit.");
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
CarBroken[playerid] = 1;
}
}
}
в SetPlayerUnJail , и тут код не рабочий

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus

О_о парень по легче с кодами) зачем это

if(IsPlayerInAnyVehicle(playerid) && CarBroken[playerid] == 0)
	 {
			 new Float:vhealth;
			 GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth);
			 if(vhealth <= 400)
			 {
					 if(!IsAPlane(GetPlayerVehicleID(playerid)) && !IsABycicle(GetPlayerVehicleID(playerid)))
					 {
						 SendClientMessage(playerid, COLOR_YELLOW, "Двигатель повреждён и машина не может двигаться.");
						 SendClientMessage(playerid, COLOR_YELLOW, "Вызовите автомеханика или эвакуатор. Для выхода используйте /exit.");
						 new engine,lights,alarm,doors,bonnet,boot,objective;
											 GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
											 SetVehicleParamsEx(GetPlayerVehicleID(playerid),VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
						 CarBroken[playerid] = 1;
}
}
}
в SetPlayerUnJail , и тут код не рабочий

 

Не ,ну ты дебил ? Тут же используется CarBroken[playerid] == 0, это переменая отвечает за поломку движка! Изменено пользователем Trateus 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus

Только я немогу понять почему у тебя ,велик и самолёт = машина?

if(!IsAPlane(GetPlayerVehicleID(playerid)) && !IsABycicle(GetPlayerVehicleID(playerid)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.