Skocz do zawartości
  • 0

Reset zmiennej


TheFightaz
 Udostępnij

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
Udostępnij na innych stronach

7 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 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
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
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:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! 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
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:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść! 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
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
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.

 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...