Здравствуйте, начну я сразу с кода.
Код:
/* plugin init */
RegisterHam(Ham_TakeDamage, "player", "KnifeDamage");
public KnifeDamage(victim, inflictor, attacker, Float:damage) {
if(!attacker || victim == attacker || !is_user_connected(attacker)) return HAM_IGNORED;
if(get_user_weapon(attacker) == CSW_KNIFE) {
SetHamParamFloat(4, damage + 100.0);
client_print(attacker, print_chat, "Knife --> + Damage : 100.0 !");
}
return HAM_IGNORED;
}
в общем как видно в коде урон прибавляется в случаи если я с ножом нанесу урон.
Представьте себе такой случай :
Вы бежите по карте, у вас в руках граната и нож(больше ничего что могло занимать слот в инвентаре).
Вы кидаете гранату по противнику(рядом возле него или как то так)
в общем нанесли урон гранатой, но по каким-то причинам урон увеличился(и вывелся текст), Хотя проверка стоит с ножом.
Я как бы понимаю как оно вызвало, то есть бросил гранату, у игрока автоматом сменилось на нож, проверку проходит и +100 урона...
Начал копаться по решение проблемы, я пока что не нашел здесь темы, да и вообще в интернете, возможно я что то упустил.
знаю, есть
forward grenade_throw, пытался как то накрыть проверкой... но у меня вылезла ещё одна проблема как я могу определить что я ударил именно Ножом.
думал про дистанцию игрока, Я на этом всё бросил и нерво пошол курить.
Не знаю как решить проблему с этой багой. Просто было бы не заметно если бы там урон прибавлялся 1 - 10 но 100 сразу заметно.