Skocz do zawartości
  • 0

Edycja enderchesta dla gracza offline


Pytanie

Witam,

Próbuje komendą dodać graczowi offline pewien item wprost do enderchesta.
Czy macie jakieś szybkie rozwiązanie? Przeszukałem forum i kilka innych konkurencyjnych miejsc. Niestety wszystko kończy się błędem w konsoli.
Może to dlatego że to mój pierwszy skrypt :)
 

command /dajjajko [<offlineplayer>]:
  trigger:
    if argument 1 is set:
      if arg-1 is online:
        set {_pl} to "%arg 1%" parsed as player
        give 1 of dragon egg to {_pl}
      if arg-1 is offline:
		set {_plo} to "%arg 1%" parsed as offlineplayer
        add 1 of dragon egg to {_plo} enderchest
    else:
      message "argument 1 not set"



Proszę o wyrozumiałość.

Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/
Udostępnij na innych stronach

11 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, tnhtDev napisał:

Witam,

Próbuje komendą dodać graczowi offline pewien item wprost do enderchesta.
Czy macie jakieś szybkie rozwiązanie? Przeszukałem forum i kilka innych konkurencyjnych miejsc. Niestety wszystko kończy się błędem w konsoli.
Może to dlatego że to mój pierwszy skrypt :)

Trochę ci się rozjechał kod, ale to nieważne. Problem leży w tym, że zapomniałeś dodać "'s" po zmiennej zawierającej tego gracza (po zmiennej {_plo}).

Dodam, że nie ma sensu parse'ować offline playera na offline playera, po prostu możesz użyć 'arg-1's enderchest'.

Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279877
Udostępnij na innych stronach

  • 0

Błędy z konsoli zniknęły więc mocno na plus i faktycznie zapomniałem o tym "s".
Teraz po wpisaniu komendy w konsoli gdy gracz jest offline robi się pauza.

 

command /dajpandore [<offline player>]:
  trigger:
    if command sender is console:
      if argument 1 is set:
        if arg-1 is online:
          set {_pl} to "%arg 1%" parsed as player
          give 1 of dragon egg to {_pl}
        if arg-1 is offline:
          set {_plo} to "%arg 1%"
          add 1 of dragon egg to {_plo}'s enderchest
      else:
        message "argument 1 not set"

Zrzut z ekranu: https://ibb.co/k0Q5czN

Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279879
Udostępnij na innych stronach

  • 0
Teraz, tnhtDev napisał:

Błędy z konsoli zniknęły więc mocno na plus i faktycznie zapomniałem o tym "s".
Teraz po wpisaniu komendy w konsoli gdy gracz jest offline robi się pauza.

Nie, nie. Źle zrobiłeś, gdyż zamieniasz argument nr 1 będący graczem offline na tekst.

Usuń linijkę ustawiającą zmienną {_plo} i użyj 'arg-1's enderchest'.

Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279881
Udostępnij na innych stronach

  • 0

Oki, poprawiłem

command /dajpandore [<offlineplayer>]:
  trigger:
    if command sender is console:
      if argument 1 is set:
        if arg-1 is online:
          set {_pl} to "%arg 1%" parsed as player
          give 1 of dragon egg to {_pl}
        if arg-1 is offline:
          add 1 of dragon egg to arg-1's ender chest
      else:
        message "argument 1 not set"


Tylko po wpisaniu komendy w konsole nic się nie zmienia a enderchest pozostaje pusty.
Jakieś pomysły? :)

Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279882
Udostępnij na innych stronach

  • 0
1 minutę temu, tnhtDev napisał:

Tylko po wpisaniu komendy w konsole nic się nie zmienia a enderchest pozostaje pusty.
Jakieś pomysły? :)

Zajrzałem do dokumentacji i spojrzałem na składnię otwierania ender chestu danego gracza.

[the] ender[ ]chest[s] of %players%
%players%'[s] ender[ ]chest[s]

Jak widać, jest tutaj podany %players%, czyli musi to być gracz online. Jeżeli byłby %offline players%, wtedy moglibyśmy edytować ender chest gracza offline.

Edytowane przez Kormic
Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279885
Udostępnij na innych stronach

  • 0

Hmmm, to troszeczkę komplikuje sprawę.
Z samym inventory gracza pewnie jest tak samo.
Jest jakiś sensowny sposób na podarowanie tego itemka np. zaraz po pierwszym wejściu na serwer? Może kojarzysz jakieś gotowe rozwiązania, które mógłbym dostosować? 
Tak jak mówi moja ranga na tym forum - jestem totalnym świeżakiem :)

Generalnie plan jest taki, żeby po zakupie w sklepie przyznawało itemek przez konsole graczowi.

Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279887
Udostępnij na innych stronach

  • 0
35 minut temu, tnhtDev napisał:

Z samym inventory gracza pewnie jest tak samo.

Otóż to.

35 minut temu, tnhtDev napisał:

Jest jakiś sensowny sposób na podarowanie tego itemka np. zaraz po pierwszym wejściu na serwer? Może kojarzysz jakieś gotowe rozwiązania, które mógłbym dostosować? 

Zaraz po pierwszym wejściu? Możesz użyć eventu 'on first join'.

35 minut temu, tnhtDev napisał:

Tak jak mówi moja ranga na tym forum - jestem totalnym świeżakiem :)

Każdy kiedyś był świeżakiem, w tym ja.

35 minut temu, tnhtDev napisał:

Generalnie plan jest taki, żeby po zakupie w sklepie przyznawało itemek przez konsole graczowi.

A mógłbym wiedzieć co to za sklep?

Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279894
Udostępnij na innych stronach

  • 0
Cytat

Zaraz po pierwszym wejściu? Możesz użyć eventu 'on first join'.

Może, źle to ująłem. Zaraz po pierwszym wejściu od zakupów w itemshopie.
Sklep to itemshop hostowany przez hosting serwerów minecraft pixelhost

Daje opcje płatności i zaraz po pozytywnym wyniku całego procesu pozwala skorzystać z jednej komendy w konsoli.
Wtedy właśnie chciałbym przekazać graczom ten przedmiot.

Teoretycznie pozostaje mi opcja taka, że jeśli ktoś chce dokonać zakupu z itemshopu to musi być online w grze.
To załatwia cały temat.

Edytowane przez xNightPower_
Nieaktywny

Naprawiam formatowanie cytatu.

Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279902
Udostępnij na innych stronach

  • 0

No więc... Musisz stworzyć komendę którą ustawisz do wykonania w itemshopie. Ta komenda będzie ustawiała zmienną dla podanego w itemshopie gracza czyli np.:

command /komenda [<offline player>]:
    trigger:
        if arg-1 is online:
            #twoj kod
            stop
        set {zmienna::%arg-1%} to true

(oczywiście to tylko przykład, zrób coś podobnego gdyż i tak byś musiał zmienić nazwę zmiennej [Ale musi być ::%arg-1% w zmiennej!] i komendy)

A następnie po dołączeniu gracza sprawdzasz czy ta zmienna jest ustawiona na True, czyli np.:

on join:
    if {zmienna::%player%} is true:
        clear {zmienna::%player%} 
        #twoj kod

(tutaj również zmień nazwę zmiennej na taką samą jaka jest w komendzie) 

Dzięki temu nie musisz ustawiać w itemshopie, że gracz musi być online 

Edytowane przez Michix
Odnośnik do komentarza
https://skript.pl/temat/44602-edycja-enderchesta-dla-gracza-offline/#findComment-279904
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ę...