Перейти к содержанию
Авторизация  
Kekcuk

Система урона автомобиля

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

Kekcuk

Здравствуйте Уважаемые Форумчане!
Помогите пожалуйста сделать, чтобы при столкновении глох, и когда меньше 500 хп тоже глох. 

public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
	SetPVarInt(playerid,"EngineStalled",GetPVarInt(playerid,"EngineStalled")+1);
	if(GetPVarInt(playerid,"EngineStalled") >= 6 && Engine[vehicleid] == true)
	{
		new stringi[64];
		Engine[vehicleid] = false;
		Lights[vehicleid] = false;
		GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
		SetVehicleParamsEx(vehicleid,0,0,alarm,doors,bonnet,boot,objective);
		format(stringi,63,"Заглох двигатель (( %s ))",PlayerInfo[playerid][pSendername]);
		ProxDetectorNew(playerid,10.00,COLOR_PURPLE,stringi);
		DeletePVar(playerid,"EngineStalled");
		}
	return true;
}

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


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

@Kekcuk, вообще этот паблик не всегда при повреждениях вызывается. Проверял это.

Не советую использовать PVar'ы. Тем более, если они будут использоваться неоднократно. Уж больно медленные. Сделайте так:

В начало мода:

new engine_stalled[MAX_PLAYERS];

В OnPlayerDisconnect (или OnPlayerConnect):

engine_stalled[playerid] = 0;

И свой код замените этим:

public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
	engine_stalled[playerid]++;
	new Float:health;
	GetVehicleHealth(vehicleid, health);
	if(Engine[vehicleid] && (engine_stalled[playerid] >= 6 || health <= 500.0))//если двигатель заведен и (больше шести ударов или хп меньше 500)
	{
		/*выключаем все*/
		!Engine[vehicleid];
		!Lights[vehicleid];
		GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
		SetVehicleParamsEx(vehicleid,0,0,alarm,doors,bonnet,boot,objective);

		/*отправляем сообщение*/
		new string[64];
		format(string,sizeof(string),"Заглох двигатель (( %s ))",PlayerInfo[playerid][pSendername]);
		ProxDetectorNew(playerid,10.00,COLOR_PURPLE,string);

		engine_stalled[playerid] = 0;
	}
	return 1;
}
Изменено пользователем Elrmrnt-Kritik

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


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

, у машины было 300 хп, только тогда она заглохла...И то, один раз за сколько ударов то. Именно чтобы на 500 хп можно сделать, чтобы глохла? Если сильно ударился, то чтобы например с 300 хп далось 500. 
Помогите пожалуйста.  

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


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

@Kekcuk,

 


вообще этот паблик не всегда при повреждениях вызывается

Вы сначала проверьте, вызывался ли он вообще, когда было 500хп у него.

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


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

, Я несколько раз бахнулся, было меньше 500 хп (300 с чем-то) вот только тогда она заглохла. Мне нужно, чтобы она заглохла когда именно 500 хп, если меньше хп, то чтобы ей давалось 500 хп и она глохла. 

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


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

@Kekcuk, я тебе говорю проверь, точно ли вызывается паблик, а не точно ли ты ударился и сколько раз. 


В начало паблика добавь:

SendClientMessage(playerid, -1, "[DEBUG]Public was call");

И сверяй количество ударов с количеством таких строк в чате.

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


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

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

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


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

 

 


не совпадает

Ну вот о чем и говорю. Это не тот паблик, в котором стоит выполнять подобные проверки.

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


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

, а в каком паблике стоит выполнять подобные проверки? 

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


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

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

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

×

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

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