←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Otwieranie vault przy zapisie/odczycie, a...


Best Answer GwynBleidD 18.02.2015 13:15

Ogólnie nie spowoduje to błędu, ale nie powinieneś tak robić. Otwarcie i zamknięcie pliku nvault przy dużym jego rozmiarze może trwać dłuższą chwilę, ponieważ cały plik musi zostać załadowany do pamięci RAM. Jeśli będziesz to robił w trakcie rozgrywki może to powodować lagi serwera. Wykonywanie tego w plugin_end nie spowoduje jakiegoś szczególnego negatywnego efektu, ale nic Ci nie da jeśli będziesz chciał omijać otwieranie i zamykanie pliku w trakcie rozgrywki.

Właściwie to dobrym miejscem na otwarcie/zamknięcie pliku byłaby nowa runda (moment respawnowania graczy), czyli event HLTV. W tym miejscu mógłbyś po prostu zamknąć plik i otworzyć go na nowo, a w trakcie rundy po prostu się nim posługiwać, w ten sposób po każdej rundzie masz pewność, że dane zostaną zapisane w pliku. Go to the full post

  • +
  • -
Rivit's Photo Rivit 17.02.2015

Witam, co będzie lepsze?

Mam 5 zapisów do vault. I jaka metoda będzie lepsza?

Otwieranie vault przy zapisie/odczycie czy w init/end.

 

Dodam, że 2 zapisy tak zrobiłem, bo rzadko ich się używa.

 

Proszę o propozycje

Quote

  • +
  • -
Droso's Photo Droso 17.02.2015

wydaje mi sie, ze czasami zadajecie takie glupie pytania xD

 

Jak istnieje szansa, że dane nie zostaną użyte, ale też nie będą częściej pobierane/zapisywane niż 1 (1-odczyt 1-zapis) raz - to wiadomo lepiej Otwieranie przy zapisie/odczycie

 

Inne wypadki init/end - to chyba logiczne.

 

też zależy co siedzi w środku nvault - bo jak chodzi o zapis informacji o graczu - to lepiej pobierac i zapisywac przy jego wejsciu/wyjsciu niz pobierac na poczatku mapy - tyle 'wyników'

 

 

Quote

  • +
  • -
Rivit's Photo Rivit 17.02.2015

Hm, a jak otworzę w end? Nigdy się nie bawiłem z tym co tam się dzieje.


Chodzi mi o zamykanie nvault żeby w razie crasha danych nie utracić
Quote

  • +
  • -
GwynBleidD's Photo GwynBleidD 17.02.2015

Jeśli nie chcesz utracić danych przy crashu - użyj SQL.
Quote

  • +
  • -
Rivit's Photo Rivit 18.02.2015

Tak, wiem, ale czy mogę otwierać w end? Co tam się dzieje tak w ogóle? Używam plugin end do niszczenia array co tam jeszcze można
Quote

  • +
  • -
Best Answer GwynBleidD's Photo GwynBleidD 18.02.2015

Ogólnie nie spowoduje to błędu, ale nie powinieneś tak robić. Otwarcie i zamknięcie pliku nvault przy dużym jego rozmiarze może trwać dłuższą chwilę, ponieważ cały plik musi zostać załadowany do pamięci RAM. Jeśli będziesz to robił w trakcie rozgrywki może to powodować lagi serwera. Wykonywanie tego w plugin_end nie spowoduje jakiegoś szczególnego negatywnego efektu, ale nic Ci nie da jeśli będziesz chciał omijać otwieranie i zamykanie pliku w trakcie rozgrywki.

Właściwie to dobrym miejscem na otwarcie/zamknięcie pliku byłaby nowa runda (moment respawnowania graczy), czyli event HLTV. W tym miejscu mógłbyś po prostu zamknąć plik i otworzyć go na nowo, a w trakcie rundy po prostu się nim posługiwać, w ten sposób po każdej rundzie masz pewność, że dane zostaną zapisane w pliku.
Quote