PDA

Просмотр полной версии : [Callback] OnVehicleDamageStatusUpdate



Osetin
12.11.2013, 16:17
Здравствуйте! Думаю многие уже видели эту функцию. По моему очень полезная. Вызывается она тогда, когда игрок повредил транспорт.

Пример использования:


public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new string[128];
format(string, sizeof(string), "Вы повредили транспорт номер %d", vehicleid);
SendClientMessage(playerid, COLOR_WHITE, string);
return 1;
}
За одно можно сделать заглушение двигателя, если авто сильно побилось.
Если нету - ко всем new:

new engine,lights,alarm,doors,bonnet,boot,objective;
И паблик:


public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new Float:hp;
new carid = GetPlayerVehicleID(playerid);
GetVehicleHealth(carid, hp);
if (hp <= 350)
{
GetVehicleParamsEx(carid,engine,lights,alarm,doors,bonnet,boot,objective);
SetVehicleParamsEx(carid,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
SendClientMessage(playerid, COLOR_WHITE, "Ваш двигатель заглох!");
/*В разных модах все разное! мб.*/
}
return 1;
}
Так же, если вы не хотите, что бы авто у вас взрывались:


public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new Float:hp;
new carid = GetPlayerVehicleID(playerid);
GetVehicleHealth(carid, hp);
if (hp <= 300)
{
SetVehicleHealth(carid, 300.0);//Теперь авто не получится взорвать
}
return 1;
}

DmX
20.01.2016, 04:10
А зачем тут


new carid = GetPlayerVehicleID(playerid);

Если есть


(vehicleid, playerid)

SliM
20.01.2016, 05:41
Банальная невнимательность, не более, я думаю.

ziggi
20.01.2016, 12:10
Так же, если вы не хотите, что бы авто у вас взрывались:


public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
new Float:hp;
new carid = GetPlayerVehicleID(playerid);
GetVehicleHealth(carid, hp);
if (hp <= 300)
{
SetVehicleHealth(carid, 300.0);//Теперь авто не получится взорвать
}
return 1;
}

Этот паблик не вызывается при изменении здоровья транспорта, так что этот вариант использования не подойдёт.

Glant
23.01.2016, 00:57
Как не вызывается? Еще как вызывается

- - - Добавлено - - -


Этот паблик не вызывается при изменении здоровья транспорта, так что этот вариант использования не подойдёт.

Desulaid
23.01.2016, 01:48
Как не вызывается? Еще как вызывается

- - - Добавлено - - -

"This callback is called when a vehicle element such as doors, tires, panels, or ..." чтобы узнать больше, смотри (http://wiki.sa-mp.com/wiki/OnVehicleDamageStatusUpdate).