Skocz do zawartości
  • 0

Komenda /przepal. Problem


TrefeleK

Pytanie

Czesc napisałem skrypta na komende /przepal ktora miałaby zamieniać surowe jedzenie, ory, surowce i tak dalej na przepalone. W moim kodzie mam zdefiniowane wszystkie rzeczy ktore mozna przepalic w minecrafcie ale tutaj daję tylko kawałek, gdyż dalej wygląda to tak samo.


Problem w tym, że po wpisaniu /przepal przez gracza "przepalają się" wszystkie itemy w zaleznosci jaki item gracz ma w lapce (Przyklad: trzymam porkchopa w lapce wpisuje /przepal i przepala sie każdy porkchop w eq), a chcialbym aby przepalal sie tylko item w lapce. Wiem że błąd leży w replace X in player's inventory with Y. Próbowałem z replace player's tool with Y, replace X in player's tool with Y i tak dalej i nie działa, prosiłbym o pomoc nie mam już pomysłu :(

PS. ponadto chciałbym jeszcze że jak gracz trzyma w lapce jakis inny item, nie raw porkchop i inne przepalalne rzeczy w minecrafcie to żeby pisało mu że nie można tego przepalić. Nie chodzi mi o: if player's tool is raw porkchop: (reszta kodu) else: send "Nie mozna tego przepalic", bo w przypadku kiedy tych przepalalnych itemow jest dużo to wiadomość się dubluje na czacie.

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/
Udostępnij na innych stronach

15 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

można to zrobić mniej więcej tak

if type of player's held item is porkchop:
	set {_} to amount of porkchop in player's inventory
	remove {_} of porkchop from player
	give player {_} of (przepalony item) 
else:
	send "&cNie trzymasz w ręce nic do przepalenia"

 

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336801
Udostępnij na innych stronach

  • 0

Już bez sprawdzania widziałem że nie będzie działać tak jak chciałem, sprawdziłem i miałem racje bo wszystkie raw porkchopy z eq znikają i stakują się w jednym slocie w eq jako przepalone, a ja chciałem żeby ten item pozostawał w łapce na swoim miejscu po przepaleniu. Ponadto przypominam też że chce żeby przepalał się tylko item w łapce ;/ 

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336806
Udostępnij na innych stronach

  • 0
1 minutę temu, TrefeleK napisał:

Ponadto przypominam też że chce żeby przepalał się tylko item w łapce ;/ 

Od tego jest warunek

if type of player's held item is porkchop:

I chyba jezeli dobrze rozumiem to o to ci chodzi:

on right click:
    if type of player's held item is porkchop:
        set {_} to amount of porkchop in player's inventory
        remove {_} of porkchop from player
        set player's tool to {_} of porkchop
    else:
        send "&cNie trzymasz w ręce nic do przepalenia"

Tylko podmien sobie item przepalany bo nie pamietam jak on sie nazywal przepalony

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336808
Udostępnij na innych stronach

  • 0

W dalszym ciągu przepalają się wszystkie porkchopy w ekwipunku bo "set {_} to amount of porkchop in player's inventory" oraz "remove {_} of porkchop from player" to robią a tego właśnie chcialbym uniknąć jakoś ale nie wiem czym zastąpić aby tylko z łapki setowało amount of porkchop

Edytowane przez TrefeleK
Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336809
Udostępnij na innych stronach

  • 0

Jezeli gracz trzyma w łapce 1, lub 4, lub 7, lub 54 lub inną dowolną liczbe porkchopa to ma się "przepalic" ale tylko to co ma w łapce
Przyklad:

trzymam se w łapce 64 raw porkchopy, a w slocie obok mam kolejne 31 raw porkchopy. Wpisuję komende /przepal i przepalają się tylko te 64 raw porkchopy które mam w łapce, a te 31 ktore byly w slocie obok (nie w łapce) zostają surowe czyli bez zmian. Podalem przykladowe liczby

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336820
Udostępnij na innych stronach

  • 0
on right click:
    if type of player's held item is porkchop:
        set {_1} to player's held item
        replace "porkchop" and "of" with "" in {_1}
        set {_1} to "%{_1}%" parsed as integer
        set player's tool to {_1} of porkchop #(upieczony)
    else:
        send "&cNie trzymasz w ręce nic do przepalenia"

Na tą chwilę mam tylko taki pomysł, zapewne da się lepiej.

Edytowane przez Fendi
Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336824
Udostępnij na innych stronach

  • 0
4 godziny temu, Fendi napisał:

zapewne da się lepiej

if player's tool is porkchop:
	set player's tool to (item amount of player's tool) of cooked porkchop

hm

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336851
Udostępnij na innych stronach

  • 0

O działa dzięki <3. Teraz kolejna sprawa to jak zrobić że jak gracz nie trzyma zadnego z wymienionych w kodzie poniżej itemów to żeby wyświetlalo ze nie mozesz tego przepalić?

 

Na pewno nie rozwiąże tego else: send "Nie mozesz tego przepalic" do ifa sprawdzającego czy players tool to X, bo w przypadku jak gracz nie trzyma żadnego z wymienionych itemów to wiadomość na czacie sie powtarza.

Edytowane przez TrefeleK
Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336855
Udostępnij na innych stronach

  • 0

Pierwszy warunek (ten z air) możesz na razie usunąć. 

Potem zbuduj sobie warunek w następujący sposób:
if ... (porkchop), else if ... (beef), else if (chicken),.... i na końcu samo else i tam możesz wysłać, że nie może tego przepalić,

w razie pytań jak coś jest niejasne to pytaj

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336856
Udostępnij na innych stronach

  • 0
14 minut temu, TrefeleK napisał:

I dziala :D 

fakt, że działa, nie oznacza, że jest to napisane prawidłowo.

Polecam Ci spróbować napisać to tak, jak zalecałem. 

22 minuty temu, CoFFeIN04 napisał:

if ... (porkchop), else if ... (beef), else if (chicken),.... i na końcu samo else i tam możesz wysłać, że nie może tego przepalić,

Coś w tym stylu:

command /przepal:
    trigger:
        if player has permission "mani.przepal":
            if player's tool is raw porkchop:
                set player's tool to (item amount of player's tool) of cooked porkchop
                send "&8&l > &aPomyslnie przepaliles surowego schaba!"
                
            else if player's tool is raw beef:
                set player's tool to (item amount of player's tool) of beef
                send "&8&l > &aPomyslnie przepaliles surowa wolowine!"

            else if player's tool is raw chicken:
                set player's tool to (item amount of player's tool) of cooked chicken
                send "&8&l > &aPomyslnie przepaliles surowego kurczaka!"

            else:
                send "nie mozesz tego przepalic"

Dodatkowo, permisję w komendzie zapisuje się inaczej:

command /przepal:
    permission: mani.przepal
    trigger:

 

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336860
Udostępnij na innych stronach

  • 0
31 minut temu, CoFFeIN04 napisał:

Dodatkowo, permisję w komendzie zapisuje się inaczej:

command /przepal:
    permission: mani.przepal
    trigger:

Tak wiem ale ja wszędzie używam tej mojej wersji  z ifem, już troche za późno na poprawki bo mój serwer to 70% skrypty i wszędzie mam z if player has permission... Ważne że działa jak trzeba ;) 

 

31 minut temu, CoFFeIN04 napisał:

fakt, że działa, nie oznacza, że jest to napisane prawidłowo.

Co jeżeli nie zmienię bo nie wiem ?

 

Edytowane przez TrefeleK
Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336863
Udostępnij na innych stronach

  • 0
11 godzin temu, TrefeleK napisał:

Co jeżeli nie zmienię bo nie wiem ?

Teoretycznie wydajność będzie na pewno sporo niższa, ponieważ dobry kod to wydajny kod ;)

Odnośnik do komentarza
https://skript.pl/temat/56085-komenda-przepal-problem/#findComment-336873
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ę...