Witam, w jaki sposób mógłbym po jakiejś wykonanej pętli czy po wykonaniu kodu przypisać bool dla gracza?
Np. gdy coś się tam stanie to graczowi (id) włącza się takie coś asysty[id] = 1 - i ta wartosc chciałbym też zwrócic w natywie.
Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Dodawanie bool dla gracza
Najlepsza odpowiedź Rivit, 21.08.2019 10:42
public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits) { if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker) return HAM_IGNORED if(oznacz[victim] && oznacz[attacker]){ return HAM_IGNORED } return HAM_SUPERCEDE }
cos takiego mozesz zrobic.
Pamietaj ze w RegisterHam musisz miec event typu pre (ostatni parametr na 0). Więcej o tym poczytasz tu: RegisterHam
if(!oznacz[victim] && !oznacz[attacker]) return HAM_SUPERCEDE if(oznacz[victim] && oznacz[attacker])) return HAM_SUPERCEDE
Pierwszy warunek w twoim kodzie mówi:
jeśli victim jest nieoznaczony i attacker jest nieoznaczony to zablokuj obrazenia
Drugi zaś mówi:
jeśli victim jest oznaczony i attacker jest oznaczony to zablokuj obrazenia
wniosek: jesli ktorys z graczy jest oznaczony a drugi nie, to obrazenia beda zadawane
PS. proszę wstawiać kod na forum w odpowiednich tagach lub użyć przycisku "Kod" w edytorze posta
#1
Napisano 21.08.2019 10:05
#2
Napisano 21.08.2019 10:09
https://amxx.pl/topi...ę-tablic-wstęp/
https://amxx.pl/topi...e-api-w-amxxie/
https://amxx.pl/topi...tywy/?hl=natywy
wartosc w natywie zwracasz jak każda inna, wykorzystujesz return i tyle. Pokaż jakiś kawałek kodu to Ci nakreśle co i jak
#3
Napisano 21.08.2019 10:24
{
if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker)
return HAM_IGNORED
if(!oznacz[victim] && !oznacz[attacker])
return HAM_SUPERCEDE
if(oznacz[victim] && oznacz[attacker]))
return HAM_SUPERCEDE
return HAM_IGNORED
}
#4
Napisano 21.08.2019 10:42 Najlepsza odpowiedź
public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits) { if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker) return HAM_IGNORED if(oznacz[victim] && oznacz[attacker]){ return HAM_IGNORED } return HAM_SUPERCEDE }
cos takiego mozesz zrobic.
Pamietaj ze w RegisterHam musisz miec event typu pre (ostatni parametr na 0). Więcej o tym poczytasz tu: RegisterHam
if(!oznacz[victim] && !oznacz[attacker]) return HAM_SUPERCEDE if(oznacz[victim] && oznacz[attacker])) return HAM_SUPERCEDE
Pierwszy warunek w twoim kodzie mówi:
jeśli victim jest nieoznaczony i attacker jest nieoznaczony to zablokuj obrazenia
Drugi zaś mówi:
jeśli victim jest oznaczony i attacker jest oznaczony to zablokuj obrazenia
wniosek: jesli ktorys z graczy jest oznaczony a drugi nie, to obrazenia beda zadawane
PS. proszę wstawiać kod na forum w odpowiednich tagach lub użyć przycisku "Kod" w edytorze posta
#5
Napisano 21.08.2019 10:46
czyli jakbym chciał przenieść ten bool do innego pluginu w którym ustawiam player_attack to natyw tak ma wyglądac?
public oznacz(pid) { return oznacz[pid]; }
a następnie wykonać to?
public player_attack(victim, attacker, Float:damage, Float:direction[3], tracehandle, damagebits) { if(!is_user_connected(victim) || !is_user_connected(attacker) || victim == attacker) return HAM_IGNORED if(oznacz(victim) && oznacz(attacker)){ return HAM_IGNORED } return HAM_SUPERCEDE }
#6
Napisano 21.08.2019 10:49
Nie, proszę poczytaj poradniki, które Ci wysłałem.
#7
Napisano 21.08.2019 13:39
Edytuje ponieważ jest błąd. Jak oznacze gracza to moga sie wszyscy bic a jak nie oznacze to nikt sie bic nie moze.
#8
Napisano 21.08.2019 13:51
następnie chciałbym zrobić że jeżeli gracz ma oznacz[pid] = 1 to moze bic innego gracza ktory tez ma oznacz[pid] = 1
Z tego wynika, że chcesz żeby gracze którzy są oznaczeni się mogli bić.
Więc jak nikt nie jest oznaczony to nikt sie nie moze bic.
Jeśli jedna osoba jest ozn, a druga nie to one sie nie moga mic.
jesli obie sa ozn to moga sie bic.
Pokaz wiecej kodu
#9
Napisano 22.08.2019 19:43
Tu jest cala funkcja z zabijania
if(gTeam[id] == 1 && gTeam[attacker] == 1) { if(!oznacz(id) && !oznacz(attacker)) return HAM_SUPERCEDE; }
I wyglada to aktualnie tak ze kazdy moze kazdego bic a chce ze jak jest wlaczony mode_gracza[FF_TT] i sa jacys oznaczeni to moga sie bic oznaczeni
Użytkownik mlekovita edytował ten post 22.08.2019 19:57
#10
Napisano 22.08.2019 20:48
if(gTeam[id] == 1 && gTeam[attacker] == 1) { if(!oznacz[id] && !oznacz[attacker]) return HAM_SUPERCEDE; }
#11
Napisano 22.08.2019 21:36
Niestety nadal nie działa to poprawnie podrzucam cały kod z pluginu na zabijanie aktualnie wyglada to tak: Jezeli walka dla wszystkich jest wlaczona a gracze nie sa oznaczeni to nie moze sie nikt bic, natomiast jesli walka dla wszystkich jest wlaczona a gracze sa oznaczeni to gracze moga lac tych co nie sa oznaczeni i odwrotnie.
public TakeDamage(id, ent, attacker, Float:damage, damagebits) return vAttackDamagePlayer(id, attacker, damage, damagebits, true); public TraceAttack(id, attacker, Float:damage, Float:direction[3], tracehandle, damagebits) return vAttackDamagePlayer(id, attacker); stock vAttackDamagePlayer(id, attacker, Float:damage=0.0, damagebits=0, bool:dmg=false) { if(!is_user_connected(id)) return HAM_IGNORED; if(is_user_connected(attacker)) { new Float:fObr = damage; if(gTeam[id] == 1 && gTeam[attacker] == 1) { if(dmg) { fObr *= 2.954; //return HAM_HANDLED; } } if(gTeam[id] == 1 && gTeam[attacker] == 1) { if(!walkaDlaWszystkichTT){ return HAM_SUPERCEDE; } if(!oznacz[id] && !oznacz[attacker] && walkaDlaWszystkichTT) { return HAM_SUPERCEDE; } } if(dmg) { if(get_user_weapon(attacker) == CSW_KNIFE && damagebits & DMG_BULLET) fObr *= 0.4; } if(fObr != damage) { SetHamParamFloat(4, fObr); return HAM_HANDLED; } } return HAM_IGNORED; }
#12
Napisano 23.08.2019 05:10
if(!oznacz[id] || !oznacz[attacker])
Takie coś próbowałeś?
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych