PDA

Просмотр полной версии : [Вопрос] Weapons Damage



vovandolg
13.12.2015, 05:14
Возможно ли как то запретить нанесение урона по другому игроку стреляя из какого то определенного оружия?
Желательно на сервере не выше 0.3е, если такое возможно...

VVWVV
13.12.2015, 05:24
Вы можете использовать: OnPlayerTakeDamage (http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage), OnPlayerGiveDamage (http://wiki.sa-mp.com/wiki/OnPlayerGiveDamage).

vovandolg
13.12.2015, 06:12
Вы можете использовать: OnPlayerTakeDamage (http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage), OnPlayerGiveDamage (http://wiki.sa-mp.com/wiki/OnPlayerGiveDamage).
Про эти штуки я знаю, но как задать в одной них так чтобы не наносило урон?
Ведь это в игру вшито наносить урон...

VVWVV
13.12.2015, 06:39
Про эти штуки я знаю, но как задать в одной них так чтобы не наносило урон?
Ведь это в игру вшито наносить урон...

Вот что у меня получилось:

public
OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{
/*
Проверяем, с помощью чего игрок нанес урон другому игроку.
29 - идентификатор оружия. Оружия: http://wiki.sa-mp.com/wiki/Weapons
*/
if (weaponid == 29)
{
new Float:fLastHealth; // Хранение здоровья игрока.
GetPlayerHealth(damagedid, fLastHealth); // Получаем здоровье игрока.
SetPlayerHealth(damagedid, fLastHealth + amount); // Устанавливаем здоровье на прежние значение.
}
return 1;
}

L0ndl3m
13.12.2015, 13:21
Данный вариант подходит для тех, у кого версия сервера >= 0.3z.


public
OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
switch(weaponid)
{
case <список_запрещённого_оружия_через_запятую>:
return 0; // "игнорировать" выстрелы
}
return 1; // в остальных случаях ничего не делать
}

VVWVV
13.12.2015, 13:29
public
OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
switch(weaponid)
{
case <список_запрещённого_оружия_через_запятую>:
return 0; // "игнорировать" выстрелы
}
return 1; // в остальных случаях ничего не делать
}


Данный паблик был добавлен только в 0.3z(«This callback was added in SA-MP 0.3z and will not work in earlier versions!»), а нужно «не выше 0.3е».

L0ndl3m
13.12.2015, 13:31
Данный паблик был добавлен только в 0.3z(«This callback was added in SA-MP 0.3z and will not work in earlier versions!»), а нужно «не выше 0.3е».
Спасибо за заметку, не увидел.

К ТС нескромный вопрос: Не боитесь что при запуске сервера на хостинге вас начнут атаковать?

vovandolg
13.12.2015, 14:23
Так других вариантов нету я так понял чтобы урон как то убрать?

Кроме этого(не проверял ещё пока что его, буду дома проверю...)

Вот что у меня получилось:

VVWVV
13.12.2015, 15:10
Так других вариантов нету я так понял чтобы урон как то убрать?

Кроме этого(не проверял ещё пока что его, буду дома проверю...)

К сожалению, больше способов — нет. Вы должны понимать, что версия вашего сервера давняя и вы не можете пользоваться новыми функциями, которые были добавлены после версии 0.3e.

vovandolg
13.12.2015, 16:58
К сожалению, больше способов — нет. Вы должны понимать, что версия вашего сервера давняя и вы не можете пользоваться новыми функциями, которые были добавлены после версии 0.3e.

В таком случае тему можно считать яснопонятной и закрывать как решенную :hi:
Придётся переходить вскоре на 0.3.7, чтобы всё было доступно...