Skocz do zawartości
  • 0

Ulepszanie itema , set name of player's tool


xXx_Skrypter_xXx

Pytanie

 

on inventory click:
	if "%inventory name of player's current inventory%" is "&8Menu: Magiczne Kowadlo":
		cancel event
		if clicked inventory is not player's inventory:
			if "%clicked slot%" is "10":
				if player's tool is {@miecze}:
					if name of player's tool does not contain  "[+1]" or "[+2]" or "[+3]" or "[+4]" or "[+5]" or "[+6]" or "[+7]" or "[+8]" or "[+9]":
						if player have 8 diamond:
							set {ulepszenie::%player's tool%} to 1
							set name of player's tool to "%name of player's tool% &4[&c+{ulepszenie::%player's tool%}&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+1&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop
						else:
							send "&3[&bMagiczne Kowadlo&3] &fNie posiadasz &a8 diamentow&f!" to player
                    if name of player's tool contain "[+1]" or "[+2]" or "[+3]" or "[+4]" or "[+5]" or "[+6]" or "[+7]" or "[+8]":
						if player have 8 diamond:
							set name of player's tool to "%name of player's tool% &4[&c+({ulepszenie::%player's tool%} + 1)&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+{ulepszenie::%player's tool%}&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop

Jest ktoś w stanie mi pomóc?

Chodzi o to, że po kliknięciu w dany slot osoba gdy trzyma wybrany miecz zmieni się jej nazwa na "nazwa itema [+1]"

W moim przypadku gdy klikam nie nazwanym mieczem skrypt nie działa a gdy jest juz nazwany to miecz dostaje nazwę "nazwa itema +{ulepszenie::diamond_sword}" przy kolejnym kliknięciu nazwa się podwaja i tak w nieskończoność...

Proszę szybko o pomoc jeżeli źle wytłumaczyłem to pisać postaram się lepiej objaśnić.

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

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Teraz, xXx_Skrypter_xXx napisał:

 


on inventory click:
	if "%inventory name of player's current inventory%" is "&8Menu: Magiczne Kowadlo":
		cancel event
		if clicked inventory is not player's inventory:
			if "%clicked slot%" is "10":
				if player's tool is {@miecze}:
					if name of player's tool does not contain  "[+1]" or "[+2]" or "[+3]" or "[+4]" or "[+5]" or "[+6]" or "[+7]" or "[+8]" or "[+9]":
						if player have 8 diamond:
							set {ulepszenie::%player's tool%} to 1
							set name of player's tool to "%name of player's tool% &4[&c+1&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+1&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop
						else:
							send "&3[&bMagiczne Kowadlo&3] &fNie posiadasz &a8 diamentow&f!" to player

Jest ktoś w stanie mi pomóc?

Chodzi o to, że po kliknięciu w dany slot osoba gdy trzyma wybrany miecz zmieni się jej nazwa na "nazwa itema [+1]"

W moim przypadku gdy klikam nie nazwanym mieczem skrypt nie działa a gdy jest juz nazwany to miecz dostaje nazwę "nazwa itema +{ulepszenie::diamond_sword}" przy kolejnym kliknięciu nazwa się podwaja i tak w nieskończoność...

Proszę szybko o pomoc jeżeli źle wytłumaczyłem to pisać postaram się lepiej objaśnić.

Źle masz to zrobione, bo próbujesz wykrywać "[+1]" itd. Tymczasem dodajesz do nazwy" &4[&c+1&4]". Albo do wykrywania musisz dać kolory, albo musisz dać wyrażenie:

if name of player's tool doesn't contain uncolored "[+1]" or uncolored "[+2]"

Sprawdź czy ci to pomoże.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
24 minuty temu, Kormic napisał:

Źle masz to zrobione, bo próbujesz wykrywać "[+1]" itd. Tymczasem dodajesz do nazwy" &4[&c+1&4]". Albo do wykrywania musisz dać kolory, albo musisz dać wyrażenie:


if name of player's tool doesn't contain uncolored "[+1]" or uncolored "[+2]"

Sprawdź czy ci to pomoże.

Pierwsze ulepszenie działa tak jak chciałem.

Teraz przy kolejnych ulepszeniach na chatcie pisze ulepszono przedmiot na +<none> oraz dochodzi kolejne [+1] i tak w kółko

Kod: 

on inventory click:
	if "%inventory name of player's current inventory%" is "&8Menu: Magiczne Kowadlo":
		cancel event
		if clicked inventory is not player's inventory:
			if "%clicked slot%" is "10":
				if player's tool is {@miecze}:
					if name of player's tool does not contain uncolored "[+1]" or uncolored "[+2]" or uncolored "[+3]" or uncolored "[+4]" or uncolored "[+5]" or uncolored "[+6]" or uncolored "[+7]" or uncolored "[+8]":
						if player have 8 diamond:
							set {ulepszenie::%player's tool%} to 1
							set name of player's tool to "%name of player's tool% &4[&c+%{ulepszenie::%player's tool%}%&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+%{ulepszenie::%player's tool%}%&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop
						else:
							send "&3[&bMagiczne Kowadlo&3] &fNie posiadasz &a8 diamentow&f!" to player
					if name of player's tool contain uncoloured "[+1]" or uncoloured "[+2]" or uncoloured "[+3]" or uncoloured "[+4]" or uncoloured "[+5]" or uncoloured "[+6]" or uncoloured "[+7]" or uncoloured "[+8]":
						if player have 8 diamond:
							set {ulepszenie::%player's tool%} to {ulepszenie::%player's tool%} parsed as an integer
							add 1 to {ulepszenie::%player's tool%}
							set name of player's tool to "%name of player's tool% &4[&c+{ulepszenie::%player's tool%}&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+%{ulepszenie::%player's tool%}%&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop

 

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

  • 0
7 minut temu, xXx_Skrypter_xXx napisał:

Teraz przy ulepszaniu na chatcie pisze ulepszono przedmiot na +<none> oraz do nazwy miecza dochodzi kolejne [+1]

Kod: 


on inventory click:
	if "%inventory name of player's current inventory%" is "&8Menu: Magiczne Kowadlo":
		cancel event
		if clicked inventory is not player's inventory:
			if "%clicked slot%" is "10":
				if player's tool is {@miecze}:
					if name of player's tool does not contain uncolored "[+1]" or uncolored "[+2]" or uncolored "[+3]" or uncolored "[+4]" or uncolored "[+5]" or uncolored "[+6]" or uncolored "[+7]" or uncolored "[+8]":
						if player have 8 diamond:
							set {ulepszenie::%player's tool%} to 1
							set name of player's tool to "%name of player's tool% &4[&c+%{ulepszenie::%player's tool%}%&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+%{ulepszenie::%player's tool%}%&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop
						else:
							send "&3[&bMagiczne Kowadlo&3] &fNie posiadasz &a8 diamentow&f!" to player
					if name of player's tool contain uncoloured "[+1]" or uncoloured "[+2]" or uncoloured "[+3]" or uncoloured "[+4]" or uncoloured "[+5]" or uncoloured "[+6]" or uncoloured "[+7]" or uncoloured "[+8]":
						if player have 8 diamond:
							set {ulepszenie::%player's tool%} to {ulepszenie::%player's tool%} parsed as an integer
							add 1 to {ulepszenie::%player's tool%}
							set name of player's tool to "%name of player's tool% &4[&c+{ulepszenie::%player's tool%}&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+%{ulepszenie::%player's tool%}%&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop

 

Masz to źle zrobione, w drugiej "części" skryptu dodajesz do %name of player's tool% po raz kolejny [+1], tymczasem nazwa narzędzia już posiada ten znaczek. Ja bym raczej zrobił coś takiego w takim wypadku:

set {_name} to (length of player's tool's name - 5) first characters of player's tool's name
set player's tool's name to "%{_name}% [+1]"

Co do tych - 5 nie jestem pewien, bo nie wiem czy będzie uznawało kolory za litery.

Ewentualnie pod sendem w else od pierwszej części kodu daj stop.

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

  • 0
26 minut temu, Kormic napisał:

Masz to źle zrobione, w drugiej "części" skryptu dodajesz do %name of player's tool% po raz kolejny [+1], tymczasem nazwa narzędzia już posiada ten znaczek. Ja bym raczej zrobił coś takiego w takim wypadku:


set {_name} to (length of player's tool's name - 5) first characters of player's tool's name
set player's tool's name to "%{_name}% [+1]"

Co do tych - 5 nie jestem pewien, bo nie wiem czy będzie uznawało kolory za litery.

Ewentualnie pod sendem w else od pierwszej części kodu daj stop.

Próbowałem z twoim kodem i dalej to samo.. zrobiłem też z replace ale dalej do nazwy się dodaje to [+1]

Kod:

					if name of player's tool contains "&4[&c+1&4]" or "&4[&c+2&4]" or "&4[&c+3&4]" or "&4[&c+4&4]" or "&4[&c+5&4]" or "&4[&c+6&4]" or "&4[&c+7&4]" or "&4[&c+8&4]":
						if player have 8 diamond:
							replace all "&4[&c+1&4]" and "&4[&c+2&4]" and "&4[&c+3&4]" and "&4[&c+4&4]" and "&4[&c+5&4]" and "&4[&c+6&4]" and "&4[&c+7&4]" and "&4[&c+8&4]" with "" in name of player's tool
							set {ulepszenie::%player's tool%} to {ulepszenie::%player's tool%} parsed as an integer
							add 1 to {ulepszenie::%player's tool%}
							set name of player's tool to "%name of player's tool% &4[&c+{ulepszenie::%player's tool%}&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+%{ulepszenie::%player's tool%}%&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop
						else:
							send "&3[&bMagiczne Kowadlo&3] &fNie posiadasz &a8 diamentow&f!" to player

Gdy próbuje ulepszyć na +2 i wyżej na chatcie jest napisane, że ulepszono na +<none> może problem jest też w tej zmiennej {ulepszenie::%player's tool%}

Skrypt nie wywala żadnych błędów

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

  • 0
3 godziny temu, xXx_Skrypter_xXx napisał:

Próbowałem z twoim kodem i dalej to samo.. zrobiłem też z replace ale dalej do nazwy się dodaje to [+1]

Kod:


					if name of player's tool contains "&4[&c+1&4]" or "&4[&c+2&4]" or "&4[&c+3&4]" or "&4[&c+4&4]" or "&4[&c+5&4]" or "&4[&c+6&4]" or "&4[&c+7&4]" or "&4[&c+8&4]":
						if player have 8 diamond:
							replace all "&4[&c+1&4]" and "&4[&c+2&4]" and "&4[&c+3&4]" and "&4[&c+4&4]" and "&4[&c+5&4]" and "&4[&c+6&4]" and "&4[&c+7&4]" and "&4[&c+8&4]" with "" in name of player's tool
							set {ulepszenie::%player's tool%} to {ulepszenie::%player's tool%} parsed as an integer
							add 1 to {ulepszenie::%player's tool%}
							set name of player's tool to "%name of player's tool% &4[&c+{ulepszenie::%player's tool%}&4]"
							set {sharpness::%player%} to enchant level of sharpness of player's tool
							add 1 to {sharpness::%player%}
							send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+%{ulepszenie::%player's tool%}%&4]&f!" to player
							execute console command "(((kowal))) %player% sharpness %{sharpness::%player%}%"
							remove 8 of diamond from player's inventory
							stop
						else:
							send "&3[&bMagiczne Kowadlo&3] &fNie posiadasz &a8 diamentow&f!" to player

Gdy próbuje ulepszyć na +2 i wyżej na chatcie jest napisane, że ulepszono na +<none> może problem jest też w tej zmiennej {ulepszenie::%player's tool%}

Skrypt nie wywala żadnych błędów

Zaraz przetestuję ponownie twój kod i zobaczę o co konkretnie chodzi. Wtedy postaram się to poprawić i wrócić z gotowym skryptem.

EDIT:

Cóż, wydaje mi się, że jest jakiś problem w Skript'cie z porównywaniem nazw przedmiotów.

command /test:
	trigger:
		open chest with 3 rows named "&8Menu: Magiczne Kowadlo" to player
		set slot 10 of player's current inventory to gold block 

on inventory click:
	if name of player's current inventory is "&8Menu: Magiczne Kowadlo":
		cancel event
		if clicked inventory is player's inventory:
			stop
		if clicked slot is not 10:
			stop
		if player's tool is not iron sword:
			stop
		if player's tool's name contains "&4[&c+":
			if player have 8 diamond:
				add 1 to {ulepszenie::%player%}
				set {_u} to {ulepszenie::%player%}
				set {_name} to (length of player's tool's name - 11) first characters of player's tool's name
				set player's tool's name to "%{_name}% &4[&c+%{_u}%&4]"
				send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+%{_u}%&4]&f!" to player
				remove 8 of diamond from player's inventory
			else:
				send "&3[&bMagiczne Kowadlo&3] &fNie posiadasz &a8 diamentow&f!" to player
		else:
			if player have 8 diamond:
				set {ulepszenie::%player%} to 1
				set {_u} to {ulepszenie::%player%}
				set player's tool's name to "%name of player's tool% &4[&c+%{_u}%&4]"
				send "&3[&bMagiczne Kowadlo&3] &fPomyslnie ulepszyles swoj miecz na &4[&c+%{_u}%&4]&f!" to player
				remove 8 of diamond from player's inventory
			else:
				send "&3[&bMagiczne Kowadlo&3] &fNie posiadasz &a8 diamentow&f!" to player
				
command /test2:
	trigger:
		clear {ulepszenie::*}

Cóż, zrobiłem i zdałem sobie sprawę, że zmienna {ulepszenie::%player's tool%} generowała całe zamieszanie. Chodziło o to, że ona nie zapisuje samego itemu, ale również jego nazwę. Zresztą, ja bym radził ci taki system z ulepszeniami zrobić poprzez NBT itemów.

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