Skocz do zawartości

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

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Wykonanie funkcji gdy gracz jest na kucaka


Najlepsza odpowiedź Sniper Elite, 02.01.2016 03:25

No i warto dodać jakąś zmienną typu boolean (zasięg globalny, początkowo false), którą ustawisz na true po wykonaniu FUNKCJA(1) i będziesz sprawdzał jej stan przy 2 warunku co by się te funkcje nie wywoływały co klatkę serwera, np:

new Float:fVelocity[3];
pev(id, pev_velocity, fVelocity);

if(get_user_button(id) & IN_DUCK && get_user_weapon(id) == CSW_KNIFE && fVelocity[0] == 0.0 && fVelocity[1] == 0.0 && fVelocity[2] == 0.0 && !ma[id])    {
        //Gdy jest na kucaku, ma np. kosę oraz jest w bezruchu.
        FUNKCJA(1);
        ma[id] = true;
    }
else if(ma[id]){
        //Gdy nie jest na kucaku, nie ma broni kosy, oraz nie jest w bezruchu
        FUNKCJA(2);
       ma[id] = false;
    }

Chyba, że funkcje mają się wywoływać co klatkę.

Przejdź do postu


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
3 odpowiedzi w tym temacie

#1 Andrzejek

    Ucze się :]

  • Power User

Reputacja: 136
Zaawansowany

  • Postów:1 300
  • Imię:Andrzej
Offline

Napisano 01.01.2016 23:53

Witam,

piszę tutaj bo mam mały problem, chciałbym osiągnąć gdy gracz jest na kucaku czyli ( get_user_button(index) & IN_DUCK ), gdy ma broń np. ( get_user_weapon(index) == CSW_KNIFE ), oraz gdy jest w bezruchu czyli ( pev(index, pev_flags) & FL_ONGROUND ) żeby została na nim wykonana jakaś tam funkcja, no to ja tak robię ale coś nie działa.

 

if(get_user_button(id) & IN_DUCK && get_user_weapon(id) == CSW_KNIFE && pev(id, pev_flags) & FL_ONGROUND)
    {
        //Gdy jest na kucaku, ma np. kosę oraz jest w bezruchu.
        FUNKCJA(1);
    }
    else {
        //Gdy nie jest na kucaku, nie ma broni kosy, oraz nie jest w bezruchu
        FUNKCJA(2);
    }

 

Noi problem polega na tym, że coś nie za bardzo to działa, fakt gdy jest na kucaku i ma kosę, wykonuje FUNKCJA(1) ale gdy się poruszy to zamiast wykonywać FUNKCJA(2), wykonuję nadal FUNKCJA(1);

 

Wie ktoś w czym jest problem? Może powinienem użyć inne biblioteki?


  • +
  • -
  • 0

Mam do sprzedania pluginy AMXX pod serwery typu, JB, ONLY DD2, ZOMBIE, COD MOD, DR i inne...

 

Jeżeli jesteś zainteresowany(a), napisz na PW lub GG 42384104


#2 GeDox

    Wszechpomocny

  • Użytkownik

Reputacja: 125
Zaawansowany

  • Postów:315
  • Steam:steam
  • Imię:Przemysław
  • Lokalizacja:Kielce
Offline

Napisano 02.01.2016 00:59

Podmień:
pev(id, pev_flags) & FL_ONGROUND
Na:
new Float:vct[3]
entity_get_vector(id, EV_VEC_velocity, vct)
new Float:speeds = floatsqroot(vct[0]*vct[0]+vct[1]*vct[1]+vct[2]*vct[2])

speeds == 0
//something
I spróbuj ;)

Użytkownik GeDox edytował ten post 02.01.2016 01:00

  • +
  • -
  • 1

#3 NiczegoWinien

    Wszechpomocny

  • Użytkownik

Reputacja: 64
Pomocny

  • Postów:334
  • Lokalizacja:No Disc
Offline

Napisano 02.01.2016 02:29

http://amxx.pl/topic...edy-gracz-stoi/


  • +
  • -
  • 1

#4 Sniper Elite

    Master

  • Power User

Reputacja: 176
Profesjonalista

  • Postów:981
  • GG:
  • Imię:Konrad
  • Lokalizacja:Skryptolandia
Offline

Napisano 02.01.2016 03:25   Najlepsza odpowiedź

No i warto dodać jakąś zmienną typu boolean (zasięg globalny, początkowo false), którą ustawisz na true po wykonaniu FUNKCJA(1) i będziesz sprawdzał jej stan przy 2 warunku co by się te funkcje nie wywoływały co klatkę serwera, np:

new Float:fVelocity[3];
pev(id, pev_velocity, fVelocity);

if(get_user_button(id) & IN_DUCK && get_user_weapon(id) == CSW_KNIFE && fVelocity[0] == 0.0 && fVelocity[1] == 0.0 && fVelocity[2] == 0.0 && !ma[id])    {
        //Gdy jest na kucaku, ma np. kosę oraz jest w bezruchu.
        FUNKCJA(1);
        ma[id] = true;
    }
else if(ma[id]){
        //Gdy nie jest na kucaku, nie ma broni kosy, oraz nie jest w bezruchu
        FUNKCJA(2);
       ma[id] = false;
    }

Chyba, że funkcje mają się wywoływać co klatkę.


  • +
  • -
  • 1

Kontakt:

Steam: CSnajper

GG: 4394855

 

Na steam i GG pomagam wyłącznie odpłatnie.





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych