Skocz do zawartości
  • 0

Compressor


ILikeBluePepper

Pytanie

Chciałbym zrobić compressor, czyli gdy player ma 64 jakiegoś bloku daje mu zenczantowany. Nie ma errorrów, ale gdy klikam drewno cały czas wyskakuje że compressor jest wyłączony. Ja chce, gdy masz permission to możesz włączyć i wyłączyć. Mógłby ktoś pomóc?

 

Edytowane przez ILikeBluePepper
Odnośnik do komentarza
https://skript.pl/temat/54183-compressor/
Udostępnij na innych stronach

13 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

every 1 tick? to lagmaszyna a nie skrypt ...

kolejna rzecz która się kupy nie trzyma:
 

			set {oak::%player's uuid%} to true if {oak::%player's uuid%} is false
			set {oak::%player's uuid%} to false if {oak::%player's uuid%} is true

zapętlony kod

po za tym jeżeli się nie myle to skript będzie widział te zenchantowane jako zwykle i bd je wymienial na jedno i to samo na czym gracze stracą 64 echantowane...

nie rozumiem również tego:
 

      set {_n} to number of oak wood in loop-player's inventory
      set {_n} to {_n} / 64
      set {_n} to floor({_n})
      loop {_n} times:
        remove ({_n} * 64) of oak wood from loop-player's inventory
        give {_n} of oak wood of aqua affinity 1 named "&6&lCompressed Oak Wood" with all flags hidden to the loop-player
        send action bar "&5&lCOMPRESSOR &8> &fCompressed &b%({_n} * 64)% &fitems" to loop-player
        wait 1 tick

jeżeli już obliczyłeś ile ma stacków to po co ten loop?

powiedzmy że  mam 5 stack drewna
włączam compresor
powtarzana jest 5 razy czynność:
usun 5 stacków drewna
dodaj 5 enchantowanego drewna

ponieważ po 1 loopie nie mam juz stacków drewna nie usuwa mi ich za to dodaje kolejne 5 enchantowanego drewna w efekcie za 5 stacjów drewana mam 25 drewna enchantowanego... chyba nie o to chodzi prawda?

spróbuj:
 

command /compressor:
	permission: op
	trigger:
		open chest inventory with 6 rows named "&cCompressor" to player
		if player has permission "compressor.oak":
			set slot 10 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&aUnlocked"
			stop
		set slot 10 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&cLocked"

on inventory click:
	if name of player's current inventory is "&cCompressor":
		cancel event
		if event-slot is 10:
			if player has permission "compressor.oak":
				if {oak::%player's uuid%} is false:
					set {oak::%player's uuid%} to true
					send "&aOak compressor has been enabled"
				else if {oak::%player's uuid%} is true:
					set {oak::%player's uuid%} to false
					send "&cOak compressor has been disabled"

on join:
	set {oak::%player's uuid%} to false if {oak::%player's uuid%} is not set
	while player is online:
		if {oak::%loop-player's uuid%} is true:
			set {_n} to number of oak wood in loop-player's inventory
			set {_n} to {_n} / 64
			set {_n} to floor({_n})
			remove ({_n} * 64) of oak wood from loop-player's inventory
			give {_n} of oak wood of aqua affinity 1 named "&6&lCompressed Oak Wood" with all flags hidden to the loop-player
			send action bar "&5&lCOMPRESSOR &8> &fCompressed &b%({_n} * 64)% &fitems" to loop-player
			wait 1 second
		else:
			wait 1 second

 

Edytowane przez Saanjuk
Odnośnik do komentarza
https://skript.pl/temat/54183-compressor/#findComment-329098
Udostępnij na innych stronach

  • 0

Jak wywala to sorrka nie testowałem bo mi Oracle zamknęło maszyny xD 

 

Już mam ogarnięte nowe maszyny wytestuje poprawie i wyślę w edycji tego posta nowy kod :)


nie wiem jak ty w moim kodzie miales tylko 1 błąd jak mi wyskoczylo ich z 10 xD

co ciekawe znalazlem twój kod tylko z every 1 second w necie...ale mniejsza


oto gotowy kod:

 

command /compressor:
	permission: op
	trigger:
		open chest inventory with 6 rows named "&cCompressor" to player
		if player has permission "compressor.oak":
			set slot 10 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&aUnlocked"
			stop
		set slot 10 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&cLocked"

on inventory click:
	if name of player's current inventory is "&cCompressor":
		cancel event
		if clicked slot is 10:
			if player has permission "compressor.oak":
				if {oak::%player's uuid%} is false:
					set {oak::%player's uuid%} to true
					send "&aOak compressor has been enabled"
					
				else if {oak::%player's uuid%} is true:
					set {oak::%player's uuid%} to false
					send "&cOak compressor has been disabled"

on join:
	if {oak::%player's uuid%} is not set:
		set {oak::%player's uuid%} to false 

every 1 second:
	loop all players where [input has 64 of unmodified oak wood]:
		if {oak::%loop-player's uuid%} is true:
			set {_n} to number of oak wood in loop-player's inventory
			set {_n} to {_n} / 64
			set {_n} to floor({_n})
			remove ({_n} * 64) of unmodified oak wood from loop-player's inventory
			give {_n} of glowing oak wood named "&6&lCompressed Oak Wood"  to the loop-player
			send action bar "&5&lCOMPRESSOR &8> &fCompressed &b%({_n} * 64)% &fitems" to loop-player


 

Edytowane przez Saanjuk
Odnośnik do komentarza
https://skript.pl/temat/54183-compressor/#findComment-329233
Udostępnij na innych stronach

  • 1

spróbuj z else zamiast stop:
 

		if player has permission "compressor.oak":
			set slot 10 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&aUnlocked"
		else:
		set slot 10 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&cLocked"
		if player has permission "compressor.stone":
			set slot 11 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&aUnlocked"
		else:
		set slot 11 of player's current inventory to oak wood named "&6Oak Wood Autocompressor" with lore "&cLocked"

stop nie zawsze działa tak jak chcemy chociaż kod jest wtedy ładniejszy

Odnośnik do komentarza
https://skript.pl/temat/54183-compressor/#findComment-329360
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ę...