Skocz do zawartości
  • 0

Reset zmiennej


TheFightaz

Pytanie

Siemka,
Mam pewien problem, nie wiem jak sie z nim uporać. Mianowicie mam dany kod, który po zdobyciu danej sumy ze zmiennej powinno dawać level w góre, level daje, ale zmienna się cofa i kod leci od początku przez cofanie zmiennej do 0. Ma ktoś jakiś pomysl jak temu zaradzic?

Chodzi mi o to, aby po zerowaniu zmiennej, kod szedl dalej, a nie od początku 

on death:
	if attacker is a player:
		if victim is entity:
			add 5 to {expStrengthLevel.%attacker%}
			if {expStrengthLevel.%attacker%} is equal to {strengthLevel1.%player%}: #100
				set {strengthLevelFirst.%attacker%} to {strengthLevel2.%player%} #250
				send "{@tag} &aAwansowałes na kolejny poziom &4Siły! &7- Sprawdź &2drzewko umiejętności &7i wydaj swoje &6punkty!" to attacker
				set {expStrengthLevel.%player%} to 0
			if {expStrengthLevel.%attacker%} is equal to {strengthLevel2.%player%}: #250
				set {strengthLevelFirst.%attacker%} to {strengthLevel3.%player%} #550
				send "{@tag} &aAwansowałes na kolejny poziom &4Siły! &7- Sprawdź &2drzewko umiejętności &7i wydaj swoje &6punkty!" to attacker
				set {expStrengthLevel.%player%} to 0
			if {expStrengthLevel.%attacker%} is equal to {strengthLevel3.%player%}: #550
				set {strengthLevelFirst.%attacker%} to {strengthLevel4.%player%} #950
				send "{@tag} &aAwansowałes na kolejny poziom &4Siły! &7- Sprawdź &2drzewko umiejętności &7i wydaj swoje &6punkty!" to attacker
				set {expStrengthLevel.%player%} to 0
			if {expStrengthLevel.%attacker%} is equal to {strengthLevel4.%player%}: #950
				set {strengthLevelFirst.%attacker%} to {strengthLevel5.%player%} #1350
				send "{@tag} &aAwansowałes na kolejny poziom &4Siły! &7- Sprawdź &2drzewko umiejętności &7i wydaj swoje &6punkty!" to attacker
				set {expStrengthLevel.%player%} to 0
			if {expStrengthLevel.%attacker%} is equal to {strengthLevel5.%player%}: #1350
				set {strengthLevelFirst.%attacker%} to {strengthLevel6.%player%} #1750
				send "{@tag} &aAwansowałes na kolejny poziom &4Siły! &7- Sprawdź &2drzewko umiejętności &7i wydaj swoje &6punkty!" to attacker
				set {expStrengthLevel.%player%} to 0


 

Odnośnik do komentarza
https://skript.pl/temat/52371-reset-zmiennej/
Udostępnij na innych stronach

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Nie rozumiem twojego kodu, jest bardzo niejasny (tak jak twoje próby wytłumaczenia), ale chyba logiczne, że jeśli ustawiasz zmienną na 0 to będzie się nabijać od 0.

Powiedz, co chcesz uzyskać

Odnośnik do komentarza
https://skript.pl/temat/52371-reset-zmiennej/#findComment-320229
Udostępnij na innych stronach

  • 0
11 minut temu, CoFFeIN04 napisał:

Nie rozumiem twojego kodu, jest bardzo niejasny (tak jak twoje próby wytłumaczenia), ale chyba logiczne, że jeśli ustawiasz zmienną na 0 to będzie się nabijać od 0.

Powiedz, co chcesz uzyskać

Cięzko to wytlumaczyc, moze dam przyklad.

Zdobywamy 100 punktów, awansujemy na poziom 2, kod zalicza poziom drugi i daje zmienną, gdzie musimy wbić 250 punktów, lecz cofa się do pierwszego "ifa" i po wbiciu 100 punktów na 250 wbijamy kolejny poziom i tak w kółko. Chciałbym uzyskać efekt taki, ze po zdobyciu 100 punktów awansujemy na drugi poziom, po czym zdobyte punkty sie resetują i kod przechodzi dalej, gdy zdobędziemy 250 punktow na 250 awansujemy dalej i tak w kolko

Odnośnik do komentarza
https://skript.pl/temat/52371-reset-zmiennej/#findComment-320235
Udostępnij na innych stronach

  • 0

Ogólnie to wiem o co Ci chodzi i jest tak napisane.

Tylko pytanie, dlaczego raz bierzesz zmienne attackera a raz victima :D
W evencie on death expression %player% oznacza %victim%.

 

I tutaj jest problem z nazewnictwem zmiennych. Przyjrzyj się na te dwie linijki (wszystkie są bardzo podobne i zawierają ten sam błąd), zgrubiłem błąd.

if {expStrengthLevel.%attacker%} is equal to {strengthLevel1.%player%}: #100
    set {strengthLevelFirst.%attacker%} to {strengthLevel2.%player%} #250

 

W ogóle co to jest za system porównywania poziomów.

Dla każdego gracza przypisujesz constans który może być zmienny. WTF? (Sam nie rozumiem co napisałem)

ja bym to zapisał tak:

{TheFightaz::ExpStrength::%player%} - Exp gracza

{TheFightaz::ExpStrength::%player%::lvl} - LVL gracza

 

i natomiast event by wyglądał w ten sposób:

Spoiler
on script load:
	#Stałe lvl-owe
	set {TheFightaz::ConstStrengthLvl::1} to 100
	set {TheFightaz::ConstStrengthLvl::2} to 250
	set {TheFightaz::ConstStrengthLvl::3} to 550
	set {TheFightaz::ConstStrengthLvl::4} to 950
	set {TheFightaz::ConstStrengthLvl::5} to 1350
	set {TheFightaz::ConstStrengthLvl::6} to 1750
on death:
	attacker is player
	victim is entity
	add 5 to {TheFightaz::ExpStrength::%attacker%}
	
	#Zabezpieczenie przed poziomem ktorego nie ma (wystarczy dodac linijke w script load na kolejne poziomy
	set {_lvl} to {TheFightaz::ExpStrength::%attacker%::lvl}
	if {TheFightaz::ConstStrengthLvl::%{_lvl}+1%} is not set:
		stop
		
	#Sprawdzanie awansu
	set {_exp} to {TheFightaz::ExpStrength::%attacker%}	
	if {_exp} is larger than or equal to {TheFightaz::ConstStrengthLvl::%{_lvl}%}:
		#Awans
		set {TheFightaz::ExpStrength::%attacker%} to 0
		add 1 to {TheFightaz::ExpStrength::%attacker%::lvl}
		send "Awansowales!" to attacker
		stop

 

 

Odnośnik do komentarza
https://skript.pl/temat/52371-reset-zmiennej/#findComment-320236
Udostępnij na innych stronach

  • 0
15 minut temu, knugi napisał:

Ogólnie to wiem o co Ci chodzi i jest tak napisane.

Tylko pytanie, dlaczego raz bierzesz zmienne attackera a raz victima :D
W evencie on death expression %player% oznacza %victim%.

 

I tutaj jest problem z nazewnictwem zmiennych. Przyjrzyj się na te dwie linijki (wszystkie są bardzo podobne i zawierają ten sam błąd), zgrubiłem błąd.

if {expStrengthLevel.%attacker%} is equal to {strengthLevel1.%player%}: #100
    set {strengthLevelFirst.%attacker%} to {strengthLevel2.%player%} #250

 

W ogóle co to jest za system porównywania poziomów.

Dla każdego gracza przypisujesz constans który może być zmienny. WTF? (Sam nie rozumiem co napisałem)

ja bym to zapisał tak:

{TheFightaz::ExpStrength::%player%} - Exp gracza

{TheFightaz::ExpStrength::%player%::lvl} - LVL gracza

 

i natomiast event by wyglądał w ten sposób:

  Ukryj zawartość
on script load:
	#Stałe lvl-owe
	set {TheFightaz::ConstStrengthLvl::1} to 100
	set {TheFightaz::ConstStrengthLvl::2} to 250
	set {TheFightaz::ConstStrengthLvl::3} to 550
	set {TheFightaz::ConstStrengthLvl::4} to 950
	set {TheFightaz::ConstStrengthLvl::5} to 1350
	set {TheFightaz::ConstStrengthLvl::6} to 1750
on death:
	attacker is player
	victim is entity
	add 5 to {TheFightaz::ExpStrength::%attacker%}
	
	#Zabezpieczenie przed poziomem ktorego nie ma (wystarczy dodac linijke w script load na kolejne poziomy
	set {_lvl} to {TheFightaz::ExpStrength::%attacker%::lvl}
	if {TheFightaz::ConstStrengthLvl::%{_lvl}+1%} is not set:
		stop
		
	#Sprawdzanie awansu
	set {_exp} to {TheFightaz::ExpStrength::%attacker%}	
	if {_exp} is larger than or equal to {TheFightaz::ConstStrengthLvl::%{_lvl}%}:
		#Awans
		set {TheFightaz::ExpStrength::%attacker%} to 0
		add 1 to {TheFightaz::ExpStrength::%attacker%::lvl}
		send "Awansowales!" to attacker
		stop

 

 

Dzięki za wytłumaczenie i zobrazowanie skryptu, pomogłeś mi bardzo. Dzięki <3

Odnośnik do komentarza
https://skript.pl/temat/52371-reset-zmiennej/#findComment-320239
Udostępnij na innych stronach

  • 0
21 godzin temu, knugi napisał:

Ogólnie to wiem o co Ci chodzi i jest tak napisane.

Tylko pytanie, dlaczego raz bierzesz zmienne attackera a raz victima :D
W evencie on death expression %player% oznacza %victim%.

 

I tutaj jest problem z nazewnictwem zmiennych. Przyjrzyj się na te dwie linijki (wszystkie są bardzo podobne i zawierają ten sam błąd), zgrubiłem błąd.

if {expStrengthLevel.%attacker%} is equal to {strengthLevel1.%player%}: #100
    set {strengthLevelFirst.%attacker%} to {strengthLevel2.%player%} #250

 

W ogóle co to jest za system porównywania poziomów.

Dla każdego gracza przypisujesz constans który może być zmienny. WTF? (Sam nie rozumiem co napisałem)

ja bym to zapisał tak:

{TheFightaz::ExpStrength::%player%} - Exp gracza

{TheFightaz::ExpStrength::%player%::lvl} - LVL gracza

 

i natomiast event by wyglądał w ten sposób:

  Pokaż ukrytą zawartość
on script load:
	#Stałe lvl-owe
	set {TheFightaz::ConstStrengthLvl::1} to 100
	set {TheFightaz::ConstStrengthLvl::2} to 250
	set {TheFightaz::ConstStrengthLvl::3} to 550
	set {TheFightaz::ConstStrengthLvl::4} to 950
	set {TheFightaz::ConstStrengthLvl::5} to 1350
	set {TheFightaz::ConstStrengthLvl::6} to 1750
on death:
	attacker is player
	victim is entity
	add 5 to {TheFightaz::ExpStrength::%attacker%}
	
	#Zabezpieczenie przed poziomem ktorego nie ma (wystarczy dodac linijke w script load na kolejne poziomy
	set {_lvl} to {TheFightaz::ExpStrength::%attacker%::lvl}
	if {TheFightaz::ConstStrengthLvl::%{_lvl}+1%} is not set:
		stop
		
	#Sprawdzanie awansu
	set {_exp} to {TheFightaz::ExpStrength::%attacker%}	
	if {_exp} is larger than or equal to {TheFightaz::ConstStrengthLvl::%{_lvl}%}:
		#Awans
		set {TheFightaz::ExpStrength::%attacker%} to 0
		add 1 to {TheFightaz::ExpStrength::%attacker%::lvl}
		send "Awansowales!" to attacker
		stop

 

 

Teraz miałem okazje przetestować to i niby działa, ale jak zdobęde poczatkowe 100 to nie usuwa no i liczy dalej, czyli 105, 110 i tak dalej ;/

Odnośnik do komentarza
https://skript.pl/temat/52371-reset-zmiennej/#findComment-320266
Udostępnij na innych stronach

  • 0
18 godzin temu, TheFightaz napisał:

Teraz miałem okazje przetestować to i niby działa, ale jak zdobęde poczatkowe 100 to nie usuwa no i liczy dalej, czyli 105, 110 i tak dalej ;/

Pisałem z głowy, i nie testowałem. Sprawdź nazwy zmiennych czy nie ma literówek, jak nie ma to zamiast set zmienna to 0, napisz. Clear zmienna

Odnośnik do komentarza
https://skript.pl/temat/52371-reset-zmiennej/#findComment-320304
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ę...