![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Jestem w trakcie pisania dużgo projektu,serwera do gry. Zakładam osiągnięcie więcej niż 550 graczy w jednej chwili. Jest problem dlatego, że niestety MUSZĘ mieć około 100 kolumn w bazie. Do tego powinno dojść około 700 postaci, bo nie każdy gra w jednej chwili ale tam są te 'Postacie graczy'. Dlatego podczas uruchamiania serwera, zamykania, crashingu, wychodzenia gracza z serwera, wchodzenia gracza na serwer muszę jakoś umiejętnie pobrać te dane. Przy starcie i zamknięciu serwera dane wszystkich osób z serwera co są aktywne. Ale jak gracz wchodzi na serwer to mogę tylko jego. Myślałem nad czymś takim: ?Wczytywanie wszystkich graczy
Potem przypisuję postacID do stałej player by skrypty wiedziały o którego gracza chodzi. Jeżeli chodzi o inne skrypt to zamierzam się odwoływać w sposób p[ source ].Coś_co_chce. Działać na takiej tablicy i jak serwer zostanie zamknięy, gracz wyjdzie czy coś to całą zrzucić do bazy zapytaniem. Jak ktoś wie jak to zoptymalizować albo coś zmienić to będę wdzięczny. http://lua-users.org/wiki/TablesTutorial ![]() Ten post edytował php'master 26.02.2011, 16:11:00 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Przy starcie nie masz co pobierać danych graczy. Pobierz tylko przy logowaniu się gracza na serwer i dopisz do listy, a jak się wylogowuje uaktualniasz bazę danych i czyścisz go z listy. Do tego dla bezpieczeńśtwa co pare min. robisz zapis całego stanu gry.
Bardzo niekonsekwentnie nazywasz sobie zmienne. Kod p[ source ].characterName = gracze.NazwaPostaci Tak po angielsku a w bazie po polsku. Łatwiej dla ciebie będzie przypisywać sobie tak jak masz w bazie. Ogólnie dbać musisz o pamięć, 100 kolumn to w miarę dużo. Może powiesz czego gra będzie dotyczyć? -------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Odwzorcowywania realnego świata/roleplay w grze. Czyli normalnie, możesz mieć samochód, dom itd. ale nie odrazu, musisz na to zapracować.
Mam jeszcze pytanko małe, aby sprawdzić czy jakiś gracz jest Adminem... to trzeba iterować wszystkich ?
Sorry, że na forum PHP, ale ten język wogóle nie jest w Polsce rozwinięty no i zna go około 15 osób. Ten post edytował php'master 27.02.2011, 10:21:12 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
sorry za offtop, ale zdziwiłbyś się ile osób zna lua, OTS'y do Tibii są na nim oparte
![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 25.02.2011 Ostrzeżenie: (0%) ![]() ![]() |
Aha, ale mało osób zna funkcje bardziej rozwinięte np. interpolacje.
A więc jak gracz wchodzi to pobieram jego dane i wrzucam do tablicy, a jak chce komuś zmienić życie to pobieram jego Nick po czym iteruję tablicę pętlą for by znaleść identyczny nick? ...czy jest jakieś lepsze rozwiązanie. Ten post edytował php'master 27.02.2011, 10:52:56 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
15 osób? Fajnie, jestem dość wyjątkowy
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Kolegów moich dwóch właśnie do OTSów robi skrypty w lua
![]() Co do sprawdzania czy ktoś jest adminem. Ja przy wczytywaniu danych gracza sprawdziłbym czy jest adminem i wrzucił do osobnej tablicy adminów jego id np. I pamiętaj, jak wczytujesz graczy do tablicy to najlepszym wyjściem będzie jako klucz wrzucić id gracza. -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 651 Pomógł: 28 Dołączył: 4.12.2004 Ostrzeżenie: (0%) ![]() ![]() |
[...] Jest problem dlatego, że niestety MUSZĘ mieć około 100 kolumn w bazie. [...] Wiesz, co to jest normalizacja? -------------------- Sygnatura niezgodna z regulaminem.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 12:20 |