Skocz do zawartości
  • 0

zapisywanie informacji o graczach nie działa.


Zasepamen

Pytanie

Witam

Od kilku dni uczę się pisać skrypty. Ogólnie  pojąłem o co chodzi itp. Postanowiłem napisać skrypt na mój serwer który będzie w przyszłości.

Skrypt polega na tym że zapisuje dane każdego gracza do pliku obecnie zapisuje tylko jedną daną ale ma być ich więcej np. ilość wejść, ranga, zawartość eku, lokalizacje sethomów, kasa,nazwa gildi jeśli należy itp.

 

Jednak mój skrypt nie działa tak jak powinien. Bo gdy wchodzę na serwer to on ma za każdym moim wejściem doliczać ilość wejść ma pobrać ją z pliku dodać 1 i zapisać spowrotem. Niestety tak się nie dzieje.

Ponieważ zawsze w pliku dane jest  1 mimo że kilka razy wchodziłem. Nie mam już pojęcia co jest nie tak.

Potrzebne mi to jest gdyż chcę mieć właśnie w pliku wszystkie informacje o graczach jak by w razie padł serwer to potem nie będę wiedział kto ile i co ma.

 

Do tego chcę aby do tych komentarzy zapisywanych w plikach logi_wejsc oraz logu_wyjsc dodać realny czas i datę zapisu. Jak to dodać?

 

Oto link do skryptu.

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Pozdrawiam i proszę o pomoc.

Edytowane przez Zasepamen
Odnośnik do komentarza
Udostępnij na innych stronach

11 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Co do godziny i daty to robisz np. tak: (nie testowałem)

on join:    set {_data} to text from url "http://papug.tk/skript/data.php"    set {_godzina} to text from url "http://papug.tk/skript/godzina.php"	wf "[%{_data}%] [%{_godzina}%] %player% dolaczyl do gry" to "plugins/Skript/Danekont/logi_wejsc.yml"	stop

PS. Na Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! stronie jest wiecej linków do daty i czasu.

Edytowane przez TheU5erPL
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

@Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! No nie wierze ale fajna strona :D Mam nadzieje ze nie zniknie któregoś dnia.

Leci like :D

A jak z tym 2 problemem? macie jakiś pomysł?

 

edit:

Skrypt działa ale w zmienionej formie w tej co podałeś wywalało błędy

	set {_godzina} to result of connect to "http://papug.tk/skript/godzina.php"	set {_minuta} to result of connect to "http://papug.tk/skript/minuta.php"	set {_data} to result of connect to "http://papug.tk/skript/data.php"	wf "[%{_data}% %{_godzina}%:%{_minuta}%]%player% dolaczyl do gry" to "plugins/Skript/Danekont/logi_wejsc.yml"

Jednak jest kłopot podczas wchodzenia na serwer. Bo zanim wejdę na serwer to czekam z 10sekund. a bez tego kody wchodzę od razu. więc w czym problem? słabe połączenie internetowe i te strony się wolno ładują?

Edytowane przez Zasepamen
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

@Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Z tego co zauważyłem to pobieranie tekstu ze strony tyle trwa (nie wiem czy tylko ta strona, czy inne też...)
Chyba nic nie da się zrobić.

 

Co do tego 2 problemu to nie wiem, musisz poczekać na kogoś innego.

 

@edit

Może coś takiego:

every 1 minute:    set {czas.minuta} to result of connect to "http://papug.tk/skript/minuta.php"every 1 hour:    set {czas.godzina} to result of connect to "http://papug.tk/skript/godzina.php"every 1 day:    set {czas.data} to result of connect to "http://papug.tk/skript/data.php"

I w kodzie wpisujesz:

wf "[%{czas.data}% %{czas.godzina}%:%{czas.minuta}%]%player% dolaczyl do gry" to "plugins/Skript/Danekont/logi_wejsc.yml"
Edytowane przez TheU5erPL
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Za bardzo serwer będzie lagowało moim zdaniem.

chyba zostaje mi 

log "Cos" to "logi.txt"

Tutaj jest wpisywana godzina minuta i data. No i nie wymaga dodatkowego kodu.

Więc zostaje ten drugi kłopot. Ma ktoś pomysł jak go rozwiązać. Może jakoś zmienne grupowe?

Edytowane przez Zasepamen
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Pozmieniałem troche ten twój kod:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!
I teraz działa :)

 

@edit

Zmieniłem:

"%player% Wejsc"

na:

"wejscia.%player%"

Dalej, skoro dałeś liczbę w "" to znaczy, że nie jest to liczba tylko tekst:

set "%player% Wejsc" to "1"

Więc przy odczytywaniu dodałem:

set {_wejscia} to {_wejscia.%player%} parsed as integer

Mam nadzieję, że rozumiesz ;)

Edytowane przez TheU5erPL
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Witam

Działa świetnie. Czyli za każdym razem gdy będę chciał odczytać jakąś zmienną z pliku to muszę korzystać z:

"parsed as integer" to działa na takiej zasadzie że ten odczytany z pliku string(tekst) zamienia na liczbę tak? Dobrze myślę?

 

Tylko w pliku dane.yml nie ładnie się wyświetlało zamieniłem odwrotnie zamiast

wejscia.%player%

dałem

%player%.wejscia

I teraz w pliku jest ładnie ustawione. Wcześniej były na odwrót nazwy.

Zasepamen: wejscia: '4'

Tylko po co dodawać kolejną tymczasową zmienną do skryptu. Ja jako że na co dzień programuje w języku C takie małe mikroprocesory to wykorzystuje pewną metodę aby posługiwać się tylko jedna zmienną, Nie wiem czy jest to poprawne w pisaniu skryptów dlatego proszę o ocenę.

Oto jak to skróciłem:

on join:	log "%player% Wszedl na serwer" to "logi_wejsc.txt"	set {_wejscia.%player%} to value "%player%.wejscia" get of "plugins/Skript/Danekont/dane.yml"	set {_wejscia.%player%} to {_wejscia.%player%} parsed as integer	add 1 to {_wejscia.%player%}	set "%player%.wejscia" to "%{_wejscia.%player%}%" in yml file "plugins/Skript/Danekont/dane.yml"	stop

Czy przy pisaniu skryptów można tak postąpić? Dokładnie tak że wynik nie jest zapisywany w inną zmienną tylko w tą samą:

set {_wejscia.%player%} to {_wejscia.%player%} parsed as integer

Opisuje to tak żeby lepiej pojąć zasady pisania skryptów :)

Pozdrawiam like leci :)

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Czyli za każdym razem gdy będę chciał odczytać jakąś zmienną z pliku to muszę korzystać z:

"parsed as integer" to działa na takiej zasadzie że ten odczytany z pliku string(tekst) zamienia na liczbę tak? Dobrze myślę?

Dokładnie - parsed as integer zamienia string na int

{zmienna} parsed as <typ> 

Działa tylko jeśli chcesz zamienic tekst na coś innego, może to być np. location itd.

 

Czy przy pisaniu skryptów można tak postąpić? Dokładnie tak że wynik nie jest zapisywany w inną zmienną tylko w tą samą:

set {_wejscia.%player%} to {_wejscia.%player%} parsed as integer

Tak.

Nawet nie musi to być {_wejscia.%player%}, wystarczy samo {_wejscia} lub, żeby było krócej {_w} albo {_} 

:)

Edytowane przez TheU5erPL
Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...