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

[ROZWIĄZANE] Jakie funkcje wywołują się podczas crasha?


Najlepsza odpowiedź GwynBleidD, 24.11.2013 16:21

Da się... ale bardzo głupim sposobem :D Aczkolwiek skutecznym...

 

1. W każdym pluginie, który ma "coś" zapisywać do nvaulta przy crashu, tworzysz print do konsoli serwera w każdym momencie, gdy to coś się zmieni. Dla przykładu LVL. Gdy ktoś nabije lvl wyrzucasz do konsoli komunikat kto nabił i jaki lvl. Musi być szczegółowo określone i łatwe do przetworzenia przez zewnętrzny program, który ma to na celu wyłapać.

 

2. Tworzysz program, który przechwyci dane z konsoli i będzie śledził dane, które śledzić ma (np wyżej wspomniane lvle). Program ten musi akceptować z jednego z dwóch źródeł - przez UDP/TCP lub przez Console Input (stdin czy jak to tam ludzie jeszcze nazywają). To w zależności od tego, którą możliwość posiadasz z pkt 3

 

3. Jedno z poniższych:

 a) Modyfikujesz hlds_run (to jest plik tekstowy ze skryptem, łatwo go edytować) tak, aby wszystko co konsola wypluła szło na Console Input naszego programu.

 B) stawiasz program jako serwer logów gdzieś w internetach (potrzebny hosting z dostępem do SSH) i odpowiednią komendą w HLDSie kierujesz do niego wszystkie logi.

 

4. Gdy programik wykryje, że nastąpił crash, aktualizuje nvault albo bazę SQL.

 

 

Ale po co z tym się trudzić? powinniśmy wyeliminować przyczynę crashy, a nie problem obchodzić naokoło. Ewentualnie postawić zamiast nvaulta bazę SQL, która jest dużo bardziej odporna na błędy i zapisywać co jakiś czas wszystko, co się zmieniło, redukując straty do minimum.

Przejdź do postu


  • Zamknięty Temat jest zamknięty
6 odpowiedzi w tym temacie

#1 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 23.11.2013 20:02

Jak w temacie
Ogólnie chciałbym zrobić tak, aby gdyby byl crash zapisywałoby się coś do nVault.
GT mówił o try i catch, ale musiałbym wtedy pakować to do wszystkich plugów.
Czy jest inna możliwość? Z góry dziękuję.
  • +
  • -
  • 0

#2 DarkGL

    Nie oddam ciasteczka !

  • Administrator

Reputacja: 6 555
Godlike

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

Napisano 23.11.2013 20:12

Funkcje pluginu ? procesu ? systemu ?


  • +
  • -
  • 0

#3 MAGNET

    SourceLearned ;)

  • Autor tematu
  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 23.11.2013 20:14

Coś, co można złapać do pluga i wywołać funkcję
  • +
  • -
  • 0

#4 MAGNET

    SourceLearned ;)

  • Autor tematu
  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 23.11.2013 22:38

Zle sie wyrazilem
Chce zapobiec straty lvli, monet itp. przy crashu, zapisujac je tuz przed tym momentem
  • +
  • -
  • 0

#5 Droso

    Dawniej HubertTM

  • Support Team

Reputacja: 1 291
Godlike

  • Postów:2 371
  • Steam:steam
  • Imię:Hubert
  • Lokalizacja:Wrocław
Offline

Napisano 23.11.2013 22:41

Na 99% - się nie da (1% - Niepewność, bo Dark potrafi zaskoczyć xD)

 

 

Możesz jedynie zapisywać dane graczy co 2 minuty i po problemie - strata danych będzie mała ;)


  • +
  • -
  • 1

Piszę pluginy pod: AMX MOD X oraz SOURCE MOD!

Na zlecenie i bez zlecenia zresztą też!


#6 GwynBleidD

    Godlike

  • Przyjaciel

Reputacja: 1 869
Godlike

  • Postów:3 066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 24.11.2013 16:21   Najlepsza odpowiedź

Da się... ale bardzo głupim sposobem :D Aczkolwiek skutecznym...

 

1. W każdym pluginie, który ma "coś" zapisywać do nvaulta przy crashu, tworzysz print do konsoli serwera w każdym momencie, gdy to coś się zmieni. Dla przykładu LVL. Gdy ktoś nabije lvl wyrzucasz do konsoli komunikat kto nabił i jaki lvl. Musi być szczegółowo określone i łatwe do przetworzenia przez zewnętrzny program, który ma to na celu wyłapać.

 

2. Tworzysz program, który przechwyci dane z konsoli i będzie śledził dane, które śledzić ma (np wyżej wspomniane lvle). Program ten musi akceptować z jednego z dwóch źródeł - przez UDP/TCP lub przez Console Input (stdin czy jak to tam ludzie jeszcze nazywają). To w zależności od tego, którą możliwość posiadasz z pkt 3

 

3. Jedno z poniższych:

 a) Modyfikujesz hlds_run (to jest plik tekstowy ze skryptem, łatwo go edytować) tak, aby wszystko co konsola wypluła szło na Console Input naszego programu.

 B) stawiasz program jako serwer logów gdzieś w internetach (potrzebny hosting z dostępem do SSH) i odpowiednią komendą w HLDSie kierujesz do niego wszystkie logi.

 

4. Gdy programik wykryje, że nastąpił crash, aktualizuje nvault albo bazę SQL.

 

 

Ale po co z tym się trudzić? powinniśmy wyeliminować przyczynę crashy, a nie problem obchodzić naokoło. Ewentualnie postawić zamiast nvaulta bazę SQL, która jest dużo bardziej odporna na błędy i zapisywać co jakiś czas wszystko, co się zmieniło, redukując straty do minimum.


  • +
  • -
  • 2

NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark


#7 MAGNET

    SourceLearned ;)

  • Autor tematu
  • Moderator

Reputacja: 661
Wszechmogący

  • Postów:1 535
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 24.11.2013 16:29

hehehe chodziło mi raczej o ogólnodostępny plugin dla wszystkich, który radziłby sobie z zapisywaniem do nVault w momencie crasha, nie będącego powodem owego pluginu. Nie chodzi mi o łatkę, tylko o chociażby Punkty Chwały ;). No dobrze, więc chyba pozostaje zapis co 2 min w tasku, z czego nie skorzystam ^^

Dziękuję za pomoc


  • +
  • -
  • 0




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

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