Tarcz SWAT i inne podobne perki problem
WolfIDraV
07.12.2016
Mam taki problem, że mam na serwerze 3 perki na które nie powinny działać miny, rakiety, dynamity, oraz trutko ale dalej działają.
W linijce w której jest dmg mam tak zrobione:
for (new i=0; i < numfound; i++) { new pid = entlist[i]; if(!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || cod_get_user_perk(pid) == cod_get_perkid("Nano Kamizelka") || cod_get_user_perk(pid) == cod_get_perkid("Tarcza SWAT") || cod_get_user_perk(pid) == cod_get_perkid("Niwelator[VIP]") || cod_get_user_perk(pid) == cod_get_perkid("Sprawdzanie[Admin]")) continue; cod_inflict_damage(attacker, pid, 120.0, get_cvar_float("Rakieciarz_RakietDmgInt"), ent, (1<<24)); }
Ale dmg dalej od otrzymuje z min, rakiet, dynamitow oraz trutek
Użytkownik WolfIDraV edytował ten post 07.12.2016 12:21
Kmf!p
07.12.2016
if(!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || cod_get_user_perk(pid) == cod_get_perkid("Nano Kamizelka") || cod_get_user_perk(pid) == cod_get_perkid("Tarcza SWAT") || cod_get_user_perk(pid) == cod_get_perkid("Niwelator[VIP]") || cod_get_user_perk(pid) == cod_get_perkid("Sprawdzanie[Admin]")) continue;
to musi byc wklejone w kazdej klasie / perku ktora ma rakiety/miny itp., zakladam ze rakiet/min nie mozna kupowac np. przez sklep bo wtedy na pewno nie zablokujesz tym. do tego nie widze zebys tu dal warunek wykluczenia obrazen zadawanych przez klase, chodzi mi ze jesli zalozmy masz perk blokujacy inne perki z rakietami/minami to jesli cie ktos trafi rakieta z klasy to i tak ci zada obrazenia.
WolfIDraV
07.12.2016
if(!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || cod_get_user_perk(pid) == cod_get_perkid("Nano Kamizelka") || cod_get_user_perk(pid) == cod_get_perkid("Tarcza SWAT") || cod_get_user_perk(pid) == cod_get_perkid("Niwelator[VIP]") || cod_get_user_perk(pid) == cod_get_perkid("Sprawdzanie[Admin]")) continue;to musi byc wklejone w kazdej klasie / perku ktora ma rakiety/miny itp., zakladam ze rakiet/min nie mozna kupowac np. przez sklep bo wtedy na pewno nie zablokujesz tym. do tego nie widze zebys tu dal warunek wykluczenia obrazen zadawanych przez klase, chodzi mi ze jesli zalozmy masz perk blokujacy inne perki z rakietami/minami to jesli cie ktos trafi rakieta z klasy to i tak ci zada obrazenia.
Mam tylko w klasach to wpisane bo perku żadnego nie mam co daje miny,rakiety itd.
Czyli muszę zrobić osobno to cod_get_user_perk(pid) == cod_get_perkid("Nazwa Perku")
i pod tym dac return HAM_SUPERCEDE; ?
Kmf!p
07.12.2016
skoro niby masz to zablokowane w kazdej klasie to pozostaje sprawdzic czy nazwy perkow tu:
cod_get_perkid("Nazwa Perku")
sa dokladnie takie same jak nazwy perkow jesli wszystko sie zgadza, mysle ze mozna sprubowac rozdzielic te perki na osobne warunki bo czasami cos inaczej sprawdza niz myslimy zrob tak:
if(!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid)) continue; if(cod_get_user_perk(pid) == cod_get_perkid("Nano Kamizelka")) continue;
itd, choc nie sadze zeby to cos zmienilo ;D
ja mam taki warunek we wsparciu ogniowym:
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || cod_get_user_perk(pid) == cod_get_perkid("Nano Kamizelka")) continue;
i o dziwo podczas testowania na bocie rakiety zadaja obrazenia, ale jesli ja mam ten perk nano kamizelke to mi juz nie zabiera hp z rakiet.
Użytkownik Kmf!p edytował ten post 07.12.2016 13:55
WolfIDraV
07.12.2016
skoro niby masz to zablokowane w kazdej klasie to pozostaje sprawdzic czy nazwy perkow tu:
cod_get_perkid("Nazwa Perku")sa dokladnie takie same jak nazwy perkow jesli wszystko sie zgadza, mysle ze mozna sprubowac rozdzielic te perki na osobne warunki bo czasami cos inaczej sprawdza niz myslimy zrob tak:
if(!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid)) continue; if(cod_get_user_perk(pid) == cod_get_perkid("Nano Kamizelka")) continue;itd, choc nie sadze zeby to cos zmienilo ;D
ja mam taki warunek we wsparciu ogniowym:
if (!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || cod_get_user_perk(pid) == cod_get_perkid("Nano Kamizelka")) continue;i o dziwo podczas testowania na bocie rakiety zadaja obrazenia, ale jesli ja mam ten perk nano kamizelke to mi juz nie zabiera hp z rakiet.
Dalej pozostaje bez zmian obrażenia sa otrzymywane.
Czyli nici z tego perku
AwIlL^^
09.12.2016
możesz też spróbować w taki sposób
pod
new ma_klase[33];
napisz
new id_perku[4];
w plugin_init
id_perku[0] = cod_get_perkid("Nano Kamizelka"); id_perku[1] = cod_get_perkid("Tarcza SWAT"); id_perku[2] = cod_get_perkid("Niwelator[VIP]"); id_perku[3] = cod_get_perkid("Sprawdzanie[Admin]");
a warunek zamien na ten
if(!is_user_alive(pid) || get_user_team(attacker) == get_user_team(pid) || cod_get_user_perk(pid) == id_perku[0] || cod_get_user_perk(pid) == id_perku[1] || cod_get_user_perk(pid) == id_perku[2] || cod_get_user_perk(pid) == id_perku[3])