SA-MP Forums Archive
Как вычеслить урон автомобиля при ударе? - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Как вычеслить урон автомобиля при ударе? (/showthread.php?tid=266862)



Как вычеслить урон автомобиля при ударе? - 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 и тд.