Skocz do zawartości
  • 0

Problem z wykonywaniem czynności


tromek1337

Pytanie

Witam czy można zrobić aby wykonywało to dla każdego gracza.

every 5 minutes:
    loop all players:
        set {_uuid} to placeholder "player_uuid"
        set {_name} to placeholder "player_name"
        set {_smierci} to placeholder "statistic_deaths"
        set {_diax} to placeholder "statistic_mine_block:diamond_ore"
        set {_bed} to placeholder "statistic_sleep_in_bed"
        set {_godziny} to placeholder "statistic_hours_played"
        set {_bloki} to placeholder "statistic_mine_block"
        set {_firstjoin} to placeholder "player_first_join_date"
        set {_status} to placeholder "player_online"
        update "INSERT INTO staty (UUID, Name, Bed, Time, Diax, Death, Block, Status, FirstTime) VALUES ('%{_uuid}%', '%{_name}%', '%{_bed}%', '%{_godziny}%', '%{_diax}%', '%{_smierci}%', '%{_bloki}%', '%{_status}%', '%{_firstjoin}%');"

7FIRrmU.png

Odnośnik do komentarza
Udostępnij na innych stronach

10 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, tromek1337 napisał:

Witam czy można zrobić aby wykonywało to dla każdego gracza.

Jakiego dodatku używasz do przechwytywania placeholderów?

Podaj:

  • wersję serwera
  • silnik serwera
  • wersję Skripta
  • listę dodatków do Skripta wraz z wersjami
  • błędy w konsoli (o ile takowe występują)
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
4 minuty temu, Kormic napisał:

Jakiego dodatku używasz do przechwytywania placeholderów?

Dodatek to jest Ersatz

Wszystkie informacje:

6GJW6eZ.png

Błędy z konsoli:

[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 9: set {_uuid} to placeholder "player_uuid"')
[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 10: set {_name} to placeholder "player_name"')
[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 11: set {_smierci} to placeholder "statistic_deaths"')
[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 12: set {_diax} to placeholder "statistic_mine_block:diamond_ore"')
[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 13: set {_bed} to placeholder "statistic_sleep_in_bed"')
[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 14: set {_godziny} to placeholder "statistic_hours_played"')
[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 15: set {_bloki} to placeholder "statistic_mine_block"')
[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 16: set {_firstjoin} to placeholder "player_first_join_date"')
[22:47:58 ERROR]: There's no world in a periodic event if no world is given in the event (e.g. like 'every hour in "world"') (staty.sk, line 17: set {_status} to placeholder "player_online"')

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Ersatz jest relatywnie stary, zalecam przerzucić się na skript-placeholders.

A jest jakiś sposób aby zrobić to na skript-placeholders?

2 minuty temu, Kormic napisał:

Co właściwie próbujesz zrobić za pomocą tego kodu?

Robię statystyki graczy na stronie. Po prostu chcę aby statystyki graczy się odświeżały za 5 minut.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 1
32 minuty temu, tromek1337 napisał:

A jest jakiś sposób aby zrobić to na skript-placeholders?

Na stronie dodatku jest link do dokumentacji.

32 minuty temu, tromek1337 napisał:

Robię statystyki graczy na stronie. Po prostu chcę aby statystyki graczy się odświeżały za 5 minut.

Dodam, że widzę, iż używasz zwykłych statystyk gracza oraz wyrażeń, które można łatwo w Skript'cie otrzymać. W takim wypadku możesz to zrobić inaczej (z pomocą skript-reflect i czystego Skripta).

import:
	org.bukkit.Statistic
	org.bukkit.Material

set {_uuid} to loop-player's uuid # Tak samo robisz z nazwą
set {_smierci} to loop-player.getStatistic(Statistic.DEATHS) # I tak samo z resztą (poza statystyką od wykopanych rud diamentu i dwiema ostatnimi)
set {_diaxy} to loop-player.getStatistic(Statistic.MINE_BLOCK, Material.DIAMOND_ORE) # W przypadku wykopanych rud diamentu
set {_firstjoin} to loop-player's first login

Raczej powinieneś załapać co i jak. W przypadku ostatniej zmiennej wystarczy ustawić, że gracz jest online (np. set {_status} to "Online"), gdyż lista 'all players' zawiera jedynie graczy online.

Wymagany Skript 2.5+ oraz skript-reflect.

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

  • 0

@Kormic No zrobiłem to trochę inaczej niż miało być początkowo ale i tak dziękuje tobie za pomoc.

script options:
    $ init com.mysql.jdbc.Driver
    $ db url jdbc:mysql://mysql.---------:3306/---------
    $ db username ---------
    $ db password ---------

variables:
    {statystykistrona.%player%} = true

on first join:
    set {statystykistrona.%player%} to true

on join:
    if {statystykistrona.%player%} is true:
        set {_uuid} to "%placeholder ""player_uuid"" from player%"
        set {_name} to "%placeholder ""player_name"" from player%"
        set {_smierci} to "%placeholder ""statistic_deaths"" from player%"
        set {_diax} to "%placeholder ""statistic_mine_block:diamond_ore"" from player%"
        set {_bed} to "%placeholder ""statistic_sleep_in_bed"" from player%"
        set {_godziny} to "%placeholder ""statistic_hours_played"" from player%"
        set {_bloki} to "%placeholder ""statistic_mine_block"" from player%"
        set {_firstjoin} to "%placeholder ""player_first_join_date"" from player%"
        update "INSERT INTO staty (UUID, Name, Bed, Time, Diax, Death, Block, Status, FirstTime) VALUES ('%{_uuid}%', '%{_name}%', '%{_bed}%', '%{_godziny}%', '%{_diax}%', '%{_smierci}%', '%{_bloki}%', 'Online', '%{_firstjoin}%');"
        set {statystykistrona.%player%} to false
    else:
        set {_uuid} to "%placeholder ""player_uuid"" from player%"
        set {_smierci} to "%placeholder ""statistic_deaths"" from player%"
        set {_diax} to "%placeholder ""statistic_mine_block:diamond_ore"" from player%"
        set {_bed} to "%placeholder ""statistic_sleep_in_bed"" from player%"
        set {_godziny} to "%placeholder ""statistic_hours_played"" from player%"
        set {_bloki} to "%placeholder ""statistic_mine_block"" from player%"
        update "UPDATE `staty` SET `Bed` = '%{_bed}%', `Diax` = '%{_diax}%', `Death` = '%{_smierci}%', `Block` = '%{_bloki}%', `Time` = '%{_godziny}%', `Status` = 'Online' WHERE `staty`.`UUID` = '%{_uuid}%';"

on quit:
	if {statystykistrona.%player%} is false:
		set {_uuid} to "%placeholder ""player_uuid"" from player%"
		update "UPDATE `staty` SET `Status` = 'Offline' WHERE `staty`.`UUID` = '%{_uuid}%';"

I również udostępniam jakby ktoś chciał zrobić coś podobnego. Temat do zamknięcia

Edytowane przez tromek1337
Naprawiam błąd w skript'e
Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
5 minut temu, tromek1337 napisał:

a jaka jest różnica?

Taka, że listami zmiennych o wiele łatwiej jest manipulować aniżeli zwykłymi zmiennymi.

# Możesz całą listę od razu wyczyścić:
clear {statystykistrona::*}

# Możesz ją zapętlić i wykonywać na niej operacje:
loop {statystykistrona::*}:

# Możesz zobaczyć jej rozmiar:
size of {statystykistrona::*}

Ale według mnie to i tak w twoim przypadku nie ma większego znaczenia, gdyż i tak nie będziesz ręcznie operował na tych zmiennych.

Możesz to w sumie zignorować, bo to nic nie wnosi do twojego problemu.

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

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ą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

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