Как вычеслить урон автомобиля при ударе? -
safari - 06.07.2011
Как вычеслить урон автомобиля при ударе?
Суть в том что я хочу сделать античит на починку авто с помошью функции
PHP код:
OnVehicleDamageStatusUpdate
но не знаю как вычеслить там урон и вычесть этот урон из переменной хп автомобиля.
Re: Как вычеслить урон автомобиля при ударе? -
CaHbKo - 06.07.2011
OnVehicleDamageStatusUpdate не очень хорошо подойдёт для этой цели, тк. если к примеру я снёс себе бампер и врежусь этим же местом снова, калбэк вызван не будет.
Re: Как вычеслить урон автомобиля при ударе? -
safari - 06.07.2011
Но при ударе вычетается урон авто так?И этот урон в этом паблике вычеслить не как?
Re: Как вычеслить урон автомобиля при ударе? -
Ru-user - 06.07.2011
Делай при помощи таймера, через секунду после вызова OnVehicleDamageStatusUpdate
Re: Как вычеслить урон автомобиля при ударе? -
ZiGGi - 06.07.2011
OnVehicleDamageStatusUpdate срабатывает только при визуальных изменениях здоровья, если просто изменить здоровье транспорта - не сработает.
Re: Как вычеслить урон автомобиля при ударе? -
safari - 07.07.2011
Quote:
Originally Posted by Ru-user
Делай при помощи таймера, через секунду после вызова OnVehicleDamageStatusUpdate
|
Пробывал чтот не то.
Re: Как вычеслить урон автомобиля при ударе? -
safari - 07.07.2011
Quote:
Originally Posted by ZiGGi
OnVehicleDamageStatusUpdate срабатывает только при визуальных изменениях здоровья, если просто изменить здоровье транспорта - не сработает.
|
Против читеров хочу использовать.Значит.
Мне в переменную надо записывать урон авто чтоб с этой переменной сравнивать реальное и читерское хп авто!
Re: Как вычеслить урон автомобиля при ударе? -
CaHbKo - 07.07.2011
В OnPlayerUpdate или в таймере проверяй, если вдруг тачка похилилась, но не с помощью P'n'S (OnVehicleSpray походу) или SetPlayerHealth (тебе нужно будет заменить её на что-то что запоминает её использование), бань.
Re: Как вычеслить урон автомобиля при ударе? -
Johnny_Xayc - 07.07.2011
pawn Код:
new Float:VehicleHealth[MAX_VEHICLES] = 1000.0;
public OnGameModeInit()
{
SetTimer("OnVehicleUpdateHealth",500,1);
}
forward OnVehicleUpdateHealth();public OnVehicleUpdateHealth()
{
new Float:VHealth;
for(new v = 1; v < MAX_VEHICLES; v++)
{
if(!GetVehicleModel(v))continue;
GetVehicleHealth(v,VHealth);
if(floatround(VHealth) != floatround(VehicleHealth[v]))
{
CallLocalFunction("VehicleUpdateHealth","iff",v,VHealth,VehicleHealth[v]);
VehicleHealth[v] = VHealth;
}
}
}
forward VehicleUpdateHealth(vehicleid,Float:newhealth,Float:oldhealth);
public VehicleUpdateHealth(vehicleid,Float:newhealth,Float:oldhealth)
{
printf("Машина(ID):%d | Новое хп:%.2f | Старое хп:%.2f",vehicleid,newhealth,oldhealth);
return 1;
}
Re: Как вычеслить урон автомобиля при ударе? -
CaHbKo - 07.07.2011
Правильней было-бы поменять названия OnVehicleUpdateHealth и VehicleUpdateHealth местами, а так впринципе должно работать.
Ещё можешь сделать чтото типо такого:
pawn Код:
new bool:HealthChanged[MAX_VEHICLES];
_SetVehicleHealth(vehicleid, Float:health)
{
SetVehicleHealth(vehicleid, health);
HealthChanged[vehicleid] = true;
}
#define SetVehicleHealth _SetVehicleHealth
Таким образом можешь проверять было ли хп изменено функцией. Также с OnVehicleRespawn OnVehicleSpray и тд.