Jaarold 2 Opublikowano 4 stycznia 2022 Udostępnij Opublikowano 4 stycznia 2022 JaroStats Hejka! Jako, że nie zauważyłem żadnego skryptu (gotowego) na statystyki gracza w grze oraz na stronie www, to postanowiłem osobom chociaż w stopniu średnim wiedzy pokazać jak mniej więcej* to zrobić. Z góry informuję osoby, które dopiero zaczynają przygodę ze skryptami, aby trzymały się z daleka od tego tematu - możecie tego nie zrozumieć albo zwyczajnie coś z... zepsuć *Dlaczego mniej więcej? Ponieważ każdy myśli samodzielnie Ja zrobiłem to według mnie najprościej, ale może komuś się uda jeszcze lepiej? Te pole manewru zostawiam wam w komentarzach, z chęcią nauczę się dodatkowych sztuczek WYMAGANIA: Aby całość działała poprawnie, wymagane są pluginy: Skript, SQLibrary oraz SKQuery KONFIGURACJA MYSQL: To cudeńko dodajemy na samej górze naszego skryptu. Można też ewentualnie pobawić się w confingi samego pluginu, ale dam sobie w tym temacie z tym spokój. Nazwa bazy danych - Nazwa ustalana w phpMyAdmin. Nazwa użytkownika - Większość serwerów gdzie jest dostępny hosting oraz MySQL oferuje zintegrowaną nazwę bez możliwości edycji. W przypadku hostingu enderchest to np. edb_1234567 Hasło użytkownika - Nie muszę chyba wyjaśniać Następnie odpalamy naszego phpMyAdmin, szukamy bazy danych lub używamy "Nowa", aby dodać bazę. Przykład: Następnym krokiem będzie wejście w naszą bazę danych, odszukanie górnego menu i wejście w SQL Przykład: Otworzy nam się "konsola": W tej konsolce musimy wklepać następującą komendę: Utworzy nam się baza danych o nazwie statystyki z tabelami id, nick, dedy oraz diaxy: Po wejściu: Z bazy danych MYSQL póki co to wszystko. Najważniejsza rzecz jest gotowa --------------------------------- SKRYPT: Następnym krokiem po wklejeniu linijki z bazą jest ustalenie Variables, czyli zmienne. Tutaj macie dowolność, możecie dać zjedzone koxy, wykopany dirt, ile gracz przeszedł kratek, czas gry... no wszystko Następnie wklejamy to - Po pierwszym wejściu gracza na serwer jest mu przydzielane losowe ID* od 1 do 10000000 (czyli mała szansa na powtórzenie), które również pojawi się w naszej bazie danych. Następna linijka odpowiada za dodanie tabeli do bazy danych (robi to automatycznie, spokojnie... bez nerwów XD) *Tutaj macie dowolność, możecie dać losowe cyferki lub znaczki - kto co potrafi Gdy gracz wejdzie pierwszy raz na serwer w naszej bazie danych pojawi się to: Więc do naszego skryptu musimy dodać kolejne linijki: Wiadomo - odpowiada to za dodanie zmiennej po wykonanej czynności jak śmierć czy zniszczenie złoża. Z nudów możemy dodać jeszcze to: Po wpisaniu komendy /statystyki wyświetlą nam się na czacie w grze te same dane co w bazie MYSQL I drugie najważniejsze, zarazem ostatnie - zapisanie tych danych do MYSQL: Te linijeczki sprawiają, że o wyjściu gracza z serwera jego zmienne zostaną zapisane również w bazie danych na serwerze phpMyAdmin. Dwie ostatnie linijki odpowiadają za nadpisanie danych a nie ich skasowanie, czyli to samo co zmienne w grze, nie musimy nic robić ręcznie --------------------------------- WYŚWIETLANIE STATYSTYK NA STRONIE WWW: Tutaj dla osób nieznających się na języku PHP będzie mega trudno, trzeba połączyć się z bazą danych a następnie ją wyświetlić na stronie www. Dla osób dociekliwych serdecznie polecam zapoznać się z tematem PDO (funkcja php odpowiadająca za połączenia z bazą). Jak ktoś nie będzie wiedział jak to zrobić to edytuję poradnik i dodam te informacje. GOTOWY SKRYPT: Ode mnie póki co to wszystko, dziękuję Mam nadzieję, że napisałem to jasno i wyraźnie. W razie problemów zadawajcie pytania, piszcie co byście zmienili i jakie ewentualnie błędy wy widzicie. Całość była testowana na wersji 1.12.2: skript v2.6 SkQuery v4.1.5 SQLibrary v7.1 Poprawiam formatowanie na ciemnym stylu. Notatka dodana przez Glicz jaku49 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/51464-jarostats-statystyki-gracza-w-grze-i-na-stronie-www-poradnik/ Udostępnij na innych stronach Więcej opcji udostępniania...
Jaarold 2 Opublikowano 4 stycznia 2022 Autor Udostępnij Opublikowano 4 stycznia 2022 Jakby ktoś chciał zobaczyć całkowity efekt końcowy to proszę: https://herobrine.pl/ranking.php Oczywiście można również zrobić osobne rankingi, dodać wygląd i jakieś tam bajery Cytuj Odnośnik do komentarza https://skript.pl/temat/51464-jarostats-statystyki-gracza-w-grze-i-na-stronie-www-poradnik/#findComment-316467 Udostępnij na innych stronach Więcej opcji udostępniania...
Glicz 246 Opublikowano 4 stycznia 2022 Udostępnij Opublikowano 4 stycznia 2022 Ten temat został przeniesiony. Cytuj Odnośnik do komentarza https://skript.pl/temat/51464-jarostats-statystyki-gracza-w-grze-i-na-stronie-www-poradnik/#findComment-316469 Udostępnij na innych stronach Więcej opcji udostępniania...
Intxo 10 Opublikowano 9 stycznia 2022 Udostępnij Opublikowano 9 stycznia 2022 (edytowane) Przydatny poradnik, ale w momencie gdy chcesz poznać sam sposób przenoszenia zmiennych z skrypta do bazy danych Nie potrzebne jest dawanie randomowej liczby z zakresu od 1 do 10000000 przez podstawe powody: a) lepiej jest zostawić id samej bazie danych, aby przydzielała go po kolei od 0 do końcowej liczby z ilości max. cyfr które definuje się po int(x) b) zwiększasz niepotrzebnie od samego początku ilość bajtów, które potrzebujezz do zapisywania zmiennych w bazie danych [np. zamiast przy 100 graczach mieć zakres 1-100, możesz mieć nawet i 100 x 8 liczb (zakres 1-99999999), pamiętając, że jeden znak = 1 bajt] c) id nie będzie z zakresu 1 - 10000000 jak to napisałeś, tylko z zakresu 1 - 99999999 co daje aż około 31381059609 unikalnych id dla unikalnych graczy co jest ogromną liczbą d) poprawnym użyciem liter w id, byłoby wtedy gdy użytkownik chce zaoszczędzić miejsce, tzn. tworząc kombinacje z 9 liczb i 32 liter (w przypadku alfabetu PL) może w o wiele mniejszej ilości znaków zmieścić tyle ID ile zmieściłby w większej ilości znaków samymi liczbami e) co do samego ID zapisywanie go w zmiennej w skrypcie również jest głupotą, bo końcowo aktualizujesz dane identyfikując gracza po jego nicku, a nie po ID f) co do samego skryptu, zalecałbym korzystanie z zmiennych grupowych, jak i aktualizowaniu danych w bazie danych zaraz po wykonaniu danego eventu dla wygody gracza, który nie musiałby wychodzić cały czas aby sprawdzić swoje statystyki Dodam, że jeśli ktoś chciałby tworzyć coś podobnego dla wygody jest lepiej zrobić dwie tabele (gracze - statystyki) łącząc je id, dając lepsze możliwości organizacji tego co w tabeli będziecie mieć (ale to już taki mój wymysł tego jak takie bazy danych powinny wyglądać) Edytowane 9 stycznia 2022 przez Intxo Jaarold 1 Cytuj Odnośnik do komentarza https://skript.pl/temat/51464-jarostats-statystyki-gracza-w-grze-i-na-stronie-www-poradnik/#findComment-316716 Udostępnij na innych stronach Więcej opcji udostępniania...
Queito 104 Opublikowano 26 stycznia 2022 Udostępnij Opublikowano 26 stycznia 2022 (edytowane) Możesz stworzyć tabelę poprzez start skryptu dodając do kwerendy IF NOT EXISTS, i możesz dołączyć primary key w jednej kwerendzie dodając na końcu po przecinku primary key(id). Jaki jest sens w tworzeniu takiego klucza głównego? Nie wystarczy stworzyć sobie zmienną {lastId} i dodawać ją o 1 przy każdym dodanym użytkowniku? Pamiętaj, że dalej jest ten cień szans, że będzie to samo id i baza sie posypie z serwerem ;/ Zalecam również stworzyć jakiegoś taska który co jakiś czas będzie zapisywał stan aktualny graczy bo będzie lipa jak serwer dostanie randomowego crasha ;/ @edit napomnę jeszcze, że id nie ma sensu bo każdy gracz ma swoj klucz jakim jest uuid, dlatego zalecam Ci odejść od tworzeniu nowego klucza tylko zacząć nad posługiwaniem się uuid = ) Edytowane 26 stycznia 2022 przez Queito Cytuj Odnośnik do komentarza https://skript.pl/temat/51464-jarostats-statystyki-gracza-w-grze-i-na-stronie-www-poradnik/#findComment-317439 Udostępnij na innych stronach Więcej opcji udostępniania...
LeviBoyPL 161 Opublikowano 26 stycznia 2022 Udostępnij Opublikowano 26 stycznia 2022 6 godzin temu, Queito napisał: Pamiętaj, że dalej jest ten cień szans, że będzie to samo id i baza sie posypie z serwerem ;/ W większości masz rację, ale nie posypie się baza ani serwer. Baza danych po prostu zwróci odpowiedź, że taki klucz już istnieje i nie wykona się insert. Wtedy "nowy gracz" podczas swojej sesji będzie nabijał staty, które się nie zapiszą i tyle. Cytuj Odnośnik do komentarza https://skript.pl/temat/51464-jarostats-statystyki-gracza-w-grze-i-na-stronie-www-poradnik/#findComment-317458 Udostępnij na innych stronach Więcej opcji udostępniania...
Queito 104 Opublikowano 26 stycznia 2022 Udostępnij Opublikowano 26 stycznia 2022 2 godziny temu, LeviBoyPL napisał: W większości masz rację, ale nie posypie się baza ani serwer. Baza danych po prostu zwróci odpowiedź, że taki klucz już istnieje i nie wykona się insert. Wtedy "nowy gracz" podczas swojej sesji będzie nabijał staty, które się nie zapiszą i tyle. "baza sie posypie z serwerem" może zamiast posypie mam użyć zdesynchronizuje, żeby każdy zrozumiał? Cytuj Odnośnik do komentarza https://skript.pl/temat/51464-jarostats-statystyki-gracza-w-grze-i-na-stronie-www-poradnik/#findComment-317463 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Dołącz do dyskusji
Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.