Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Plugin] Projekt pluginu Castle


Gość jakubhere

Rekomendowane odpowiedzi

Opublikowano

 

Widzę niezły projekt się szykuje ;) Tak myślę, że mógłbyś kille/deady zapisywać w oddzielnej kolekcji - dzięki temu będziesz mógł zapisywać dane zabicia/śmierci.

 

W dokumencie zapisywałbyś:

  • ObjectId gracza
  • ObjectId killera (jeżeli gracz), lub nazwę zabicia (jeżeli inny przypadek)
  • Listę ObjectId z innymi graczami, którzy mają asysty,

Zaindeksuj w Mongo UUID gracza w kolekcji users - baza przyspieszy. ;)

@PabloTL

 

Ciekawy pomysł. Możliwe nawet, że dodam to.

Postaram się zindeksować. Dopiero zacząłem ogarniać Mongo więc chwilowo nawet nie wiem o co chodzi. :v

 

Indeksuj, bo inaczej Mongo musi jeździć po wszystkich dokumentach w poszukiwaniu tej, której szukasz.

Nie indeksuj też każdego fieldu (pola), bo wtedy baza spowolni, nie przyspieszy! Indeksuj tylko to, co często używasz!

 

Dodam jeszcze parę pomysłów.

- do "deaths" dodaj też ObjectId, który będzie reprezentować mecz, w którym było zabicie - dzięki temu możesz robić statystyki ile było killi/deadów w meczu.

- Stwórz sobie kolekcję "servers", gdzie w dokumencie będziesz zapisywać

  • display - string - Nazwa serwera wyświetlana dla graczy
  • bungee - string - Nazwa serwer w BungeeCord
  • update - ObjectId - czas ostatniego updatu - dzięki temu możesz sprawdzić czy serwer jest online.
  • online - int - ilość graczy online - aktualizujesz co 5 sekund z serwera
  • slots - int - ilość slotów
  • status - int - 0: restarting, 1: starting, 2: ingame, 3: ending
  • match - ObjectId - ID meczu, patrz niżej

 

- Jako, że będzie to Castle, to domyślam się, że będzie to oparte o tzw. "mecze". Chodzi o to, że gra się zaczyna z pewnymi uczestnikami, ostatecznie wygrywa jedna drużyna. Możesz więc stworzyć sobie kolekcję "matches" do zapisu tych meczów.

Zapisuj w dokumencie więc:

  • server - ObjectId - ID serwera
  • end - ObjectId - czas zakończenia - domyślnie bez tego
  • map - string - nazwa mapy
  • teams - lista dokumentów - lista drużyn jakie były w grze

                    name - string - nazwa drużyna

                    won - bool - true jeżeli wygrała, lub remis - domyślnie bez tego

                    players - lista ObjectId - lista ID z "users"

Q8eOMob.png

Opublikowano

 

 

Widzę niezły projekt się szykuje ;) Tak myślę, że mógłbyś kille/deady zapisywać w oddzielnej kolekcji - dzięki temu będziesz mógł zapisywać dane zabicia/śmierci.

 

W dokumencie zapisywałbyś:

  • ObjectId gracza
  •  
  • ObjectId killera (jeżeli gracz), lub nazwę zabicia (jeżeli inny przypadek)
  •  
  • Listę ObjectId z innymi graczami, którzy mają asysty,
  •  

Zaindeksuj w Mongo UUID gracza w kolekcji users - baza przyspieszy. ;)

@PabloTL

 

Ciekawy pomysł. Możliwe nawet, że dodam to.

Postaram się zindeksować. Dopiero zacząłem ogarniać Mongo więc chwilowo nawet nie wiem o co chodzi. :v

 

Indeksuj, bo inaczej Mongo musi jeździć po wszystkich dokumentach w poszukiwaniu tej, której szukasz.

Nie indeksuj też każdego fieldu (pola), bo wtedy baza spowolni, nie przyspieszy! Indeksuj tylko to, co często używasz!

 

Dodam jeszcze parę pomysłów.

- do "deaths" dodaj też ObjectId, który będzie reprezentować mecz, w którym było zabicie - dzięki temu możesz robić statystyki ile było killi/deadów w meczu.

- Stwórz sobie kolekcję "servers", gdzie w dokumencie będziesz zapisywać

  • display - string - Nazwa serwera wyświetlana dla graczy
  •  
  • bungee - string - Nazwa serwer w BungeeCord
  •  
  • update - ObjectId - czas ostatniego updatu - dzięki temu możesz sprawdzić czy serwer jest online.
  •  
  • online - int - ilość graczy online - aktualizujesz co 5 sekund z serwera
  •  
  • slots - int - ilość slotów
  •  
  • status - int - 0: restarting, 1: starting, 2: ingame, 3: ending
  •  
  • match - ObjectId - ID meczu, patrz niżej
  •  

 

- Jako, że będzie to Castle, to domyślam się, że będzie to oparte o tzw. "mecze". Chodzi o to, że gra się zaczyna z pewnymi uczestnikami, ostatecznie wygrywa jedna drużyna. Możesz więc stworzyć sobie kolekcję "matches" do zapisu tych meczów.

Zapisuj w dokumencie więc:

  • server - ObjectId - ID serwera
  •  
  • end - ObjectId - czas zakończenia - domyślnie bez tego
  •  
  • map - string - nazwa mapy
  •  
  • teams - lista dokumentów - lista drużyn jakie były w grze
  •  

                    name - string - nazwa drużyna

                    won - bool - true jeżeli wygrała, lub remis - domyślnie bez tego

                    players - lista ObjectId - lista ID z "users"

 

Zobaczymy. Aktualnie nie mam sił na ten projekt, także zobaczymy co z tego wyjdzie. ;v

 

@update

 

Wleciał mały update. Szczerze to prawie nic nie zmienia, a tylko poprawia kilka małych rzeczy. (do wglądu na githubie)

Dla chcących dodałem możliwość pobrania aktualnej wersji.

 

Download: https://github.com/jakubhere/Castle/releases/tag/0.0.1

Skanu nie daje bo to github.

Opublikowano

@ PabloTL

Z Tym szukaniem dokumentu przez MongoDB poprzez ID nie jest tak do konca, aczkolwiek ID sie powinno zapisywac zawsze ;]

 

@Plugin/Topic

 

Jest kilka rzeczy ktore bym zmienil, poprawil na "swoje", aczkolwiek lepszy projekt niz 60% na tym forum.

Opublikowano

@ [/size]

PabloTL[/size]

Z Tym szukaniem dokumentu przez MongoDB poprzez ID nie jest tak do konca, aczkolwiek ID sie powinno zapisywac zawsze ;]

 

@Plugin/Topic

 

Jest kilka rzeczy ktore bym zmienil, poprawil na "swoje", aczkolwiek lepszy projekt niz 60% na tym forum.

 

ObjectId (_id) zapisuje się zawsze w dokumencie - robi to za nas Mongo, jeżeli nie podamy takie klucza. Co znaczy "nie jest tak do końca"?

Q8eOMob.png

Opublikowano

@ PabloTL

Z Tym szukaniem dokumentu przez MongoDB poprzez ID nie jest tak do konca, aczkolwiek ID sie powinno zapisywac zawsze ;]

 

@Plugin/Topic

 

Jest kilka rzeczy ktore bym zmienil, poprawil na "swoje", aczkolwiek lepszy projekt niz 60% na tym forum.

@OtekPlay

 

Sam teraz znajduje rzeczy które bym poprawił ale po prostu nie chce mi się tego robić. Może kiedyś.

 

A programisty to ty potrzebujesz? ;v

@mikigal

 

Zawsze i wszędzie. Pisz PW. :)

 

@topic

 

Jak się komuś nudzi i chce rozwijać projekt razem ze mną to zapraszam na PW.

Jutro postaram się dać jakiś update tylko nie wiem jeszcze jaki.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...