Skocz do zawartości
  • 0

1.20.6 a placeholdery w skript


Pytanie

Witam, posiadam w skripcie fragment:

 

on placeholderapi placeholder request for "portfel":
     set the result to "{balance::%player%}"

Lecz mam z tym problem.
skript-placeholder nie działa mi, pokazuje ze jest out of date.
PlaceholderAPI nie posiada komendy do sciagniecia danych, chodzi o "/papi ecloud download skript"
Nie wiem w jaki sposob uzyskac ten placeholder poniewaz chce go uzyc do scoreboard czy innych miejsc jak np. topka na spawn.

Odnośnik do komentarza
https://skript.pl/temat/57886-1206-a-placeholdery-w-skript/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
29 minut temu, ezn7 napisał:
on placeholderapi placeholder request for "portfel":
	set the result to "{balance::%player%}"

 

Ten kod jest nieprawidłowy. Proszę spojrzeć na składnię pokazaną w dokumentacji dodatku skript-placeholders:

(placeholder[ ]api|papi) [placeholder] request (for|with) [the] prefix[es] %strings%

Jak widać, słowo 'prefix' przed faktyczną nazwą prefiksu placeholdera jest wymagane.

Ponadto, każdy placeholder wyróżnia się prefiksem i identyfikatorem oddzielonymi podkreślnikiem, a w kodzie widzę opisany jedynie prefiks, więc placeholder jest niezgodny z zaleceniami PlaceholderAPI. Szczerze mówiąc, nie mam pewności czy taki kod zadziała, bo być może PlaceholderAPI zezwoli na placeholder z samym prefiksem, ale jest to zła praktyka. Poniżej wstawiam przykład z dokumentacji, który pokazuje jak należy rejestrować nowe placeholdery.

on placeholderapi placeholder request for the prefix "custom":
	if the identifier is "message": # The placeholder would be 'custom_message'
		set the result to "Hey there %player%!"

Tak jak widać w komentarzu w kodzie, powyższy skrypt rejestruje placeholder 'custom_message', który można użyć wszędzie tam gdzie jest zapewnione wsparcie PlaceholderAPI.

Jeszcze jeden błąd się wkradł do kodu:

set the result to "{balance::%player%}"

Nawet jeśli placeholder zadziała, za niego zostanie podstawiony napis '{balance::nazwa gracza}'. Powodem jest brak procentów przy zmiennej.

42 minuty temu, ezn7 napisał:

skript-placeholder nie działa mi, pokazuje ze jest out of date.

Można prosić o treść błędu/ostrzeżenia?

Proszę również o podanie:

  • wersji Skripta,
  • listy dodatków do Skripta wraz z ich wersjami (w szczególności skript-placeholders),
  • silnika serwera i jego wersji.
43 minuty temu, ezn7 napisał:

PlaceholderAPI nie posiada komendy do sciagniecia danych, chodzi o "/papi ecloud download skript"

Jeżeli rejestrujemy placeholder za pomocą dodatku skript-placeholders, ta komenda nam się w ogóle nie przyda. Niemniej jednak, wytłumaczę dlaczego tak jest i jak można użyć tego rozszerzenia.

Powodem takiego stanu rzeczy jest to, że w eCloud (ExpansionCloud) nie istnieje zweryfikowana wersja rozszerzenia Skript, co można sprawdzić tutaj. Wystarczy wyszukać Skript aby zobaczyć, że istnieją łącznie 4 wersje (różnie nazwane, ale podejrzewam, że oferują to samo). Żadna z nich nie posiada symbolu niebieskiej tarczy, a więc są niezweyfikowane.

Aby możliwe było pobranie rozszerzenia z poziomu konsoli czy gry za pomocą powyższej komendy, musi ono być zweryfikowane. Jeżeli nie jest, można je pobrać ze strony eCloud, którą podlinkowałem wyżej.

PlaceholderAPI jasno informuje, że właściciele serwerów na własną odpowiedzialność instalują niezweryfikowane rozszerzenia. W końcu nie wiadomo co tak właściwie może w nich być.
Z ciekawości jednak sprawdziłem kod źródłowy tego rozszerzenia Skript i nie widzę niczego podejrzanego. Zresztą, cały plik .jar waży jedyne 3 KB i składa się z jednej klasy, więc zainstalowanie go na serwerze nie powinno być źródłem jakichś problemów.

Gdy już mamy zainstalowany placeholder, możemy pobierać zmienne ze Skript jakie tylko sobie zażyczymy w dowolnym pluginie wspierającym PlaceholderAPI, aby na przykład wstawić ich wartości na scoreboardzie.

%skript_<nazwa zmiennej>%

Jeżeli potrzebujemy wstawić gracza (lub jego UUID) do nazwy zmiennej, możemy użyć frazy '{player}' lub '{uuid}'.

Żeby to zobrazować, założmy, że mamy taką zmienną:

{playerStats::%player%::deaths}
# Lub:
{playerStats::%uuid of player%::deaths}

Odpowiadający jej placeholder będzie postaci:

%skript_playerStats::{player}::deaths%
# Dla UUID:
%skript_playerStats::{uuid}::deaths%

No, to właściwie tyle. Wydaje mi się, że wytłumaczyłem wszystko tak szczegółowo jak tylko mogłem.
Gdyby pojawiły się jakieś pytania, proszę śmiało je zadawać. Postaram się pomóc.

Pozdrawiam.

Odnośnik do komentarza
https://skript.pl/temat/57886-1206-a-placeholdery-w-skript/#findComment-344029
Udostępnij na innych stronach

  • 0

Cześć, dzięki za to, nie widziałem tego wczesciej:

on placeholderapi placeholder request for the prefix "custom":
	if the identifier is "message": # The placeholder would be 'custom_message'
		set the result to "Hey there %player%!"

Wykorzustując to zmieniłem kod na taki:

on placeholderapi placeholder request for the prefix "portfel":
    set the result to "%{balance::%player%}%"

i... zaczelo dzialac. Nie wiem czy jest dobrze, ale wazne ze dziala :P

Co do skript-placeholdera napisalem w kolejnym komentarzu juz ze zaczal dzialac, nie wiem czy zainstalowanie skUtilites w tym pomoglo lub czego, ale zainstalowalem z 2/3 takie addony i po restarcie działa.

Placeholder działa na TABie i innych miejscach. Dziekuje za pomoc.
 

Odnośnik do komentarza
https://skript.pl/temat/57886-1206-a-placeholdery-w-skript/#findComment-344055
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ę...