Jump to content

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.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Posted Image Posted Image

Guest Message by DevFuse
 

Photo

Łączenie warunków "if"


Best Answer dasiek , 12.10.2021 07:23

Lecimy gumową kaczuszką!

Twój warunek wygląda tak - 
 

Jeśli użytkownik NIE JEST 
- hltv 
  ORAZ
- Użytkownikiem steam
  ORAZ
- Botem
  ORAZ
- Nie ma flagi ADMIN_LEVEL_G

Użytkownik musi spełnić te wszystkie warunki i na nim negujesz. 

Szybki test ze sprawdzania (js ale logiczne operatory są te same)

let isHltv = false;
let isSteam = false;
let isBot = false;
let hasFlag = false;


if(!isHltv && !isSteam && !isBot && !hasFlag) {
    console.log('dupa');
}
// 'dupa'

Wszystkie flagi są ustawione na false (czyli użytkownik nie jest botem, nie jest steamem, nie jest hltv i nie ma flagi). Teraz jest, jak użytkownik spełnia wszystkie te warunki


let isHltv = true;
let isSteam = true;
let isBot = true;
let hasFlag = true;


if(!(isHltv && isSteam && isBot && hasFlag)) {
    console.log('dupa');
}
// undefined - nic nie wypisało

zakładając, że zamieniamy console.log z dupą na uruchomienie taska, task się nie uruchomi. Ale jeśli przynajmniej jeden z tych warunków będzie true, task się uruchomi

let isHltv = true;
let isSteam = false;
let isBot = false;
let hasFlag = false;


if(!(isHltv && isSteam && isBot && hasFlag)) {
    console.log('dupa');
}
// 'dupa'

W tej sytuacji, proponuję każdą flagę sprawdzać oddzielnie, nie grupować w nawiasach. 

Przykładowo - Twój task ma się uruchomić dla użytkowników którzy
- Nie są botami

- nie są steam

- Nie są botem

- Nie mają fagi

Korzystając z tego samego kodu, tylko dodając sprawdzenie na każdym warunku 

let isHltv = true;
let isSteam = false;
let isBot = false;
let hasFlag = false;


if(!isHltv && !isSteam && !isBot && !hasFlag) {
    console.log('dupa');
}

// undefined - nie wyświetla się


let isHltv = false;
let isSteam = false;
let isBot = false;
let hasFlag = true;


if(!isHltv && !isSteam && !isBot && !hasFlag) {
    console.log('dupa');
}
// undefined - nie wyświetla się

Więc, jeśli chcesz, aby task nie wykonywał się, dla osób, które są botem albo hltv albo steamem albo nie maja flagi (słowo klucz, w Twoim przypadku było na głos Sobie przeczytaj to zdanie raz ze słowem albo a raz ze słowem "i") nie mają tej flagi warunek powinien wyglądać tak :

if(!is_user_hltv(id) && !is_steam(id) && !is_user_bot(id) && !(get_user_flags(id) & ADMIN_LEVEL_G))

PS - kod który podałem śmiało możesz wrzucić np w konsole js w przeglądarce i pobawić się tym sam.

Go to the full post


  • You cannot start a new topic
  • Please log in to reply
4 replies to this topic

#1 PANDA_2zl

    Guru

  • Power User

Reputacja: 178
Profesjonalista

  • Postów:728
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Posted 11.10.2021 16:25

Stworzyłem coś takiego

if(!(is_user_hltv(id) && is_steam(id) && is_user_bot(id) && get_user_flags(id) & ADMIN_LEVEL_G))

wszystko ma byc zanegowane, czy to jest poprawnie?

 

I pytanko nr. 2, czy można łączyć zanegowane warunki z tymi nie negowanymi, czy trzeba osobno pisac?

 

przykład:

if(is_steam(id)){
if(!(get_user_flags(id) & ADMIN_LEVEL_G)){

Edited by SezonowyGracz, 11.10.2021 16:27.

  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6,559
Godlike

  • Postów:11,989
  • GG:
  • Steam:steam
  • Imię:Rafał
  • Lokalizacja:Warszawa
Offline

Posted 11.10.2021 17:30

A jaki dokładnie efekt tym warunkiem chcesz osiągnąć ?


  • +
  • -
  • 0

#3 PANDA_2zl

    Guru

  • Autor tematu
  • Power User

Reputacja: 178
Profesjonalista

  • Postów:728
  • Imię:Michał
  • Lokalizacja:Kraków
Offline

Posted 11.10.2021 18:49

By task nie uruchamiał się przy tych użytkownikach, chodzi tylko o to że chce to złączyć razem, by nie był if pod if'em

Edited by SezonowyGracz, 11.10.2021 18:49.

  • +
  • -
  • 0

#4 N1K1Cz

    Zaawansowany

  • Użytkownik

Reputacja: 44
Pomocny

  • Postów:138
  • GG:
  • Steam:steam
  • Imię:/\^-^/\
Offline

Posted 12.10.2021 05:43

Jeżeli chcesz aby to był jeden if i oba warunki musza być spełnione to zrób tak:
if(is_steam(id) && !(get_user_flags(id) & ADMIN_LEVEL_G))
  • +
  • -
  • 0

Potrzebujesz pomocy z serwerem/paczką? Napisz do mnie! Chętnie pomogę  ^D^ 

- Discord: N1K1Cz#0751

- GG: 70679564

- Steam: https://steamcommunity.com/id/N1K1Cz/

 


#5 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2,079
Godlike

  • Postów:5,709
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Posted 12.10.2021 07:23   Best Answer

Lecimy gumową kaczuszką!

Twój warunek wygląda tak - 
 

Jeśli użytkownik NIE JEST 
- hltv 
  ORAZ
- Użytkownikiem steam
  ORAZ
- Botem
  ORAZ
- Nie ma flagi ADMIN_LEVEL_G

Użytkownik musi spełnić te wszystkie warunki i na nim negujesz. 

Szybki test ze sprawdzania (js ale logiczne operatory są te same)

let isHltv = false;
let isSteam = false;
let isBot = false;
let hasFlag = false;


if(!isHltv && !isSteam && !isBot && !hasFlag) {
    console.log('dupa');
}
// 'dupa'

Wszystkie flagi są ustawione na false (czyli użytkownik nie jest botem, nie jest steamem, nie jest hltv i nie ma flagi). Teraz jest, jak użytkownik spełnia wszystkie te warunki


let isHltv = true;
let isSteam = true;
let isBot = true;
let hasFlag = true;


if(!(isHltv && isSteam && isBot && hasFlag)) {
    console.log('dupa');
}
// undefined - nic nie wypisało

zakładając, że zamieniamy console.log z dupą na uruchomienie taska, task się nie uruchomi. Ale jeśli przynajmniej jeden z tych warunków będzie true, task się uruchomi

let isHltv = true;
let isSteam = false;
let isBot = false;
let hasFlag = false;


if(!(isHltv && isSteam && isBot && hasFlag)) {
    console.log('dupa');
}
// 'dupa'

W tej sytuacji, proponuję każdą flagę sprawdzać oddzielnie, nie grupować w nawiasach. 

Przykładowo - Twój task ma się uruchomić dla użytkowników którzy
- Nie są botami

- nie są steam

- Nie są botem

- Nie mają fagi

Korzystając z tego samego kodu, tylko dodając sprawdzenie na każdym warunku 

let isHltv = true;
let isSteam = false;
let isBot = false;
let hasFlag = false;


if(!isHltv && !isSteam && !isBot && !hasFlag) {
    console.log('dupa');
}

// undefined - nie wyświetla się


let isHltv = false;
let isSteam = false;
let isBot = false;
let hasFlag = true;


if(!isHltv && !isSteam && !isBot && !hasFlag) {
    console.log('dupa');
}
// undefined - nie wyświetla się

Więc, jeśli chcesz, aby task nie wykonywał się, dla osób, które są botem albo hltv albo steamem albo nie maja flagi (słowo klucz, w Twoim przypadku było na głos Sobie przeczytaj to zdanie raz ze słowem albo a raz ze słowem "i") nie mają tej flagi warunek powinien wyglądać tak :

if(!is_user_hltv(id) && !is_steam(id) && !is_user_bot(id) && !(get_user_flags(id) & ADMIN_LEVEL_G))

PS - kod który podałem śmiało możesz wrzucić np w konsole js w przeglądarce i pobawić się tym sam.


  • +
  • -
  • 3




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users