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

Ostatni parametr LoadFileForMe i odpowiednie użycie is_user_connected


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

#1 Ogen Dogen

    Czempion

  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 08.03.2014 21:58

Witam. Tak więc mam 2 pytania. Pierwsze jak powinno wyglądać użycie funkcji LoadFileForMe ? Mam problem z ostatnim parametrem , nie wiem za bardzo jak uzupełnić a w dokumentacji nie ma przykładu.

 

Druga rzecz to kiedy używać funkcji is_user_connected żeby kod był optymalny ? Wiem że przed dodaniem broni się sprawdza lub w menu żeby się zabezpieczyć przed wykonaniem na nie istniejącym graczu. Kiedy jeszcze i jak używać żeby nie zostało niepotrzebnie użyte ?


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#2 ^Grzyboo

    Wszechobecny

  • Użytkownik

Reputacja: 246
Wszechwidzący

  • Postów:461
  • Imię:Grzyboo
  • Lokalizacja:Tak
Offline

Napisano 08.03.2014 22:41

Nie ma co się bać o to is_user_connected. Warto w jakiś eventach itd, tam gdzie przez "przypadek" może się wykonać na niepołączonych graczach. Jeśli Cię bardzo boli optymalizacja to możesz stworzyć zmienną i to ją sprawdzać, zamiast natywu.

new gbConnected[33];

public client_connect(id)
    gbConnected[id] = true;

public client_disconnect(id)
    gbConnected[id] = false;

Ogólnie unikać niepotrzebnie w prethinku sprawdzania tego, a tak to możesz wrzucać gdziekolwiek chcesz. Lepiej wrzucić, niż potem mieć crashe, albo inne dziwne problemy bez powodu.

 

Co do LoadFileForMe

 

to &length: "Variable to store the file length. This may return a number larger than the buffer size".

Jest to zmienna referencyjna, czyli do niej zostanie zwrócona długość pliku. Po prostu tworzysz nową zmienną.

new iReturn;
LoadFileForMe(..., ..., ..., iReturn);


Do iReturn zostanie zwrócona owa długość i nic poza tym. Nie ma to żadnego wpływu na działanie funkcji.


  • +
  • -
  • 1

#3 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 08.03.2014 23:19


Druga rzecz to kiedy używać funkcji is_user_connected żeby kod był optymalny ? Wiem że przed dodaniem broni się sprawdza lub w menu żeby się zabezpieczyć przed wykonaniem na nie istniejącym graczu. Kiedy jeszcze i jak używać żeby nie zostało niepotrzebnie użyte ?

 

Broni nie daje się martwym graczom dlatego możesz użyć po spawnie is_user_alive(id) (automatycznie nie musisz używać is_user_connected bo jeżeli gracz żywy to wiadomo że połączony, kiedyś ktoś o tym pisał na forum) i wtedy rozdać broń. is_user_connected używaj kiedy operujesz na martwym graczu, a is_user_alive na żywym.

Nie dodawaj tego w żadnych prethinkach, jeżeli musisz sprawdzić czy gracz dalej nie żyje albo czy jest połączony do jakiegoś pluginu np do respawnu to ustaw sobie taska


  • +
  • -
  • 2
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.

#4 Ogen Dogen

    Czempion

  • Autor tematu
  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 09.03.2014 00:10

A czy przy pomocy LoadFileForMe mogę wczytać zawartość plików nvault i statystyk .dat ? Chciałbym zrobić sobie funkcje do backup'u takich plików , bo ze zwykłymi nie byłoby problemów ;)


is_user_connected używaj kiedy operujesz na martwym graczu, a is_user_alive na żywym.

To co zwróci is_user_alive kiedy nie ma gracza w grze ? False , -1 ?

 


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#5 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 09.03.2014 00:14


To co zwróci is_user_alive kiedy nie ma gracza w grze ? False , -1 ?

 

Dokumentacji już ci się nie chciało sprawdzać ;P

Funkcja zwraca 1 gdy jest żywy, 0 w pozostałych przypadkach.

  • +
  • -
  • 1
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.

#6 Ogen Dogen

    Czempion

  • Autor tematu
  • Power User

Reputacja: 261
Wszechwidzący

  • Postów:837
  • GG:
  • Steam:steam
  • Imię:Marcin
  • Lokalizacja:Dąbrowa Górnicza
Offline

Napisano 09.03.2014 01:00

Dzięki , plusy dla was. Nurtuje mnie jeszcze jedna kwestia. Co gdy gracza się zwiesi w grze , bo np. miał problem z łączem a cały czas stoi na respie. Wtedy is_user_alive zwróci true , wykona kod a gracz przecież jest nie połączony. Chyba że to tak samo się zachowuje :)


  • +
  • -
  • 0

b_350_20_360204_C20008_FFFFFF_000000.png 193.33.176.115:27015

 

94e23d811c.png

 


#7 Engi

    [EKSiD] playaz44

  • Power User

Reputacja: 315
Wszechpomocny

  • Postów:1 071
  • GG:
  • Imię:Seba
  • Lokalizacja:Praga
Offline

Napisano 09.03.2014 01:22

Wydaje mi się, że gracz który ma laga (wisi w powietrzu na respie np.) jest traktowany jako połączony i żywy, wnioskuję tym że da się go slapować (zawsze sprawdzam zanim wykopie takiego gracza właśnie slapem, jak wisi w powietrzu to kick), serwer wyrzuca go zazwyczaj sam po 30 sekundach (bodajże ustawiane w server.cfg ale ręki uciąć nie dam) z powodem "connection time out" czy jakoś tak.

Należy jeszcze zwrócić uwagę, że gracz który ma laga, zamknie cs'a i wróci na serwer zanim serwer wykopie jego zlagowanego "klona" będzie miał zmieniony nick z dodanym (1), będzie się "gryzło" z zapisem na nick póki zlagowany "klon" nie zostanie wyrzucony z serwera, a gracz nie zrobi reconnecta

 

Co do kopiowania plików poczekaj na TibacK'a, kiedyś też szukał kodu na kopiowanie pliku .vault ale kazał zamknąć temat, napisałem do niego pw z prośbą o wstawienie tego kodu jeżeli nie jest ściśle tajny ;P


  • +
  • -
  • 1
Użytkowniku! Zanim napiszesz wiadomość wiedz, że:

W odpowiedzi na ten status, przejrzałem kilka ostatnich Twoich postów i dodałem Ci kolejne 3 punkty ostrzeżeń. Mam nadzieję, że pomogłem.

1:0 dla Benia :D
Nie pomagam za darmo na pw.

#8 Rivit

    Godlike

  • Support Team

Reputacja: 1 319
Godlike

  • Postów:4 380
Offline

Napisano 09.03.2014 09:45

Niestety nie mam tego kodu. Trzebaby kopiowac plik linijke po linijce.
  • +
  • -
  • 0




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

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