Skocz do zawartości
  • 0

Usuwanie wartości co sekunde ze zmiennej z lokalizacją bloku


Pytanie

on break red tulip:
	cancel event
	if {Czasrd.%location of event-block%.%player%} is not set:
		set {Czasrd.%location of event-block%.%player%} to 0
	if {Czasrd.%location of event-block%.%player%} is smaller than or equal to 0:
		set {Czasrd.%location of event-block%.%player%} to 300
		add 2 to {Aexp.%player%}
		add 2 to {Awexp.%player%}
		set {_tulip.%player%} to "%20+{Alvl.%player%}*2%" parsed as number
		chance of {_tulip.%player%}%:
			give 1 red tulip named "&aWscieklo-kwiat" with lore "&5Alchemia" to player
		
every 1 seconds in "Murloc":
	loop {Czasrd.%location of event-block%.%player%}:
		remove 1 from {Czasrd.%location of event-block%.%player%}

wzór na dole o co mi chodzi, ktoś mi pomoże lub wytłumaczy jak to mogę zrobić?

Odnośnik do komentarza
https://skript.pl/temat/49149-usuwanie-warto%C5%9Bci-co-sekunde-ze-zmiennej-z-lokalizacj%C4%85-bloku/
Udostępnij na innych stronach

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Gość Usunięty#35900

Rozumiem, że chcesz zrobić z czerwonych tulipanów swego rodzaju generator? 🤭

Niestety, już na początku trochę źle to zrobiłeś, najpierw musisz lokalizację tulipana zapisać w zmiennej inaczej tego nie zrobisz...

add location of target block to {rtulip::*}

Z kodu widzę, że tworzysz te 'generatory' niszcząc blok, więc:

on break red tulip: # tulipan, który zniszczyłeś - event-block / target block
	cancel event
	loop {rtulip::*}: # loopujemy wszystkie lokalizacje tulipanów
		if loop-value is location of target block: # wykonujemy, jeśli target block znajduje się w zmiennej {rtulip::*}
			...
		else: # jeśli jednak się tam nie znajduje
			add location of target block to {rtulip::*} # to go dodajemy.

Następnie cooldown, z tego co rozumiem, co 300 sekund można skorzystać z tego generatora? Jeśli tak, to zróbmy to w ten sposób: (skomentowałem poprzedni kod)

#on break red tulip:
#	cancel event
#	loop {rtulip::*}:
#		if loop-value is location of target block:
			if {rtulip::%loop-value%.time} is 0: # jeśli czas wynosi 0, wykonaj dalszy kod ...
				...
			else:
				stop # w przeciwnym wypadku nie rób nic
#		else:
#			add location of target block to {rtulip::*}
			set {rtulip::%loop-value%.time} to 300 # dodajemy zmienną odpowiadającą za cooldown 
            
every 1 second in "Murloc":
	loop {rtulip::*}: # loopujemy wszystkie lokalizacje tulipanów
		if {rtulip::%loop-value%.time} is not 0: # sprawdzamy, czy przypadkiem czas danego tulipana nie wynosi 0
			set {rtulip::%loop-value%.time} to {rtulip::%loop-value%.time} - 1 # jeśli nie wynosi, odejmujemy 1

Cały kod będzie wyglądał w ten sposób: 

 

Odnośnik do komentarza
https://skript.pl/temat/49149-usuwanie-warto%C5%9Bci-co-sekunde-ze-zmiennej-z-lokalizacj%C4%85-bloku/#findComment-305532
Udostępnij na innych stronach

  • 0
1 godzinę temu, Mushkrem napisał:

Rozumiem, że chcesz zrobić z czerwonych tulipanów swego rodzaju generator? 🤭

Niestety, już na początku trochę źle to zrobiłeś, najpierw musisz lokalizację tulipana zapisać w zmiennej inaczej tego nie zrobisz...


add location of target block to {rtulip::*}

Z kodu widzę, że tworzysz te 'generatory' niszcząc blok, więc:


on break red tulip: # tulipan, który zniszczyłeś - event-block / target block
	cancel event
	loop {rtulip::*}: # loopujemy wszystkie lokalizacje tulipanów
		if loop-value is location of target block: # wykonujemy, jeśli target block znajduje się w zmiennej {rtulip::*}
			...
		else: # jeśli jednak się tam nie znajduje
			add location of target block to {rtulip::*} # to go dodajemy.

Następnie cooldown, z tego co rozumiem, co 300 sekund można skorzystać z tego generatora? Jeśli tak, to zróbmy to w ten sposób: (skomentowałem poprzedni kod)


#on break red tulip:
#	cancel event
#	loop {rtulip::*}:
#		if loop-value is location of target block:
			if {rtulip::%loop-value%.time} is 0: # jeśli czas wynosi 0, wykonaj dalszy kod ...
				...
			else:
				stop # w przeciwnym wypadku nie rób nic
#		else:
#			add location of target block to {rtulip::*}
			set {rtulip::%loop-value%.time} to 300 # dodajemy zmienną odpowiadającą za cooldown 
            
every 1 second in "Murloc":
	loop {rtulip::*}: # loopujemy wszystkie lokalizacje tulipanów
		if {rtulip::%loop-value%.time} is not 0: # sprawdzamy, czy przypadkiem czas danego tulipana nie wynosi 0
			set {rtulip::%loop-value%.time} to {rtulip::%loop-value%.time} - 1 # jeśli nie wynosi, odejmujemy 1

Cały kod będzie wyglądał w ten sposób: 

 

Coś jest nie tak z tym skryptem bo nic mi nie działa w tym skrypcie a error nie wyskakuje. Próbowałem sprawdzać zmienne poprzez else i wysłanie wiadomości do mnie ale nawet to nie działa.

Odnośnik do komentarza
https://skript.pl/temat/49149-usuwanie-warto%C5%9Bci-co-sekunde-ze-zmiennej-z-lokalizacj%C4%85-bloku/#findComment-305541
Udostępnij na innych stronach

  • 0
20 minut temu, Mushkrem napisał:

podmień event na ten:




on break of red tulip

Nic, mówie Ci że jest coś nie tak bo nic nie działa w tym skrypcie. takto by raczej error wyrzuciło przez ten event 

+ Teraz zwróciłem uwage, że twój skrypt uwzględnia wszystkich graczy nie tylko jednego.
i nie wiem dlaczego ale twój skrypt dodał mi do variablesów 3000 rekordów timingu.

Edytowane przez piotrus131102
Odnośnik do komentarza
https://skript.pl/temat/49149-usuwanie-warto%C5%9Bci-co-sekunde-ze-zmiennej-z-lokalizacj%C4%85-bloku/#findComment-305543
Udostępnij na innych stronach

  • 0
Gość Usunięty#35900

Oj dobrze, że nie działało - zapomniałem pętle kończyć przy każdym loopie..😛

Nie mam teraz za bardzo czasu, żeby poprawić, więc napisałem skrypt inaczej:

Zanim go jednak odpalisz, dodaj do skryptu linijkę,

on load:
    delete {rtulip::*}

a potem ją usuń, tak na wszelki wypadek.

Z tym skryptem musisz ręcznie najpierw postawić tulipany, jak znajdę czas to może napiszę dokładny, który chciałeś, ale raczej sobie z tym poradzisz 😃(wierzę w ciebie)

Odnośnik do komentarza
https://skript.pl/temat/49149-usuwanie-warto%C5%9Bci-co-sekunde-ze-zmiennej-z-lokalizacj%C4%85-bloku/#findComment-305544
Udostępnij na innych stronach

  • 0

Po kilku przeróbkach i usunięciu exit loop co jedną sekunde działa w 80% tak jak bym chciał, ale podział na graczy już chyba sobie daruje.

Odnośnik do komentarza
https://skript.pl/temat/49149-usuwanie-warto%C5%9Bci-co-sekunde-ze-zmiennej-z-lokalizacj%C4%85-bloku/#findComment-305545
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ę...