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


Dodatki SourceMod













