Skocz do zawartości
  • 0

Pilna pomoc: Losowanie itemu do levela


Brax

Pytanie

Witajcie! Robię skrypt na losowanie itemu względem poziomu gracza i zamiast dawać mi item max 2 poziomy wyżej to daje normalnie loop-value.

 

			loop 1000 times:
				loop {itemy.lvl%arg%::*}:
					chance of 100/size of {itemy.lvl%arg%::*}%:
						set {_item} to loop-value-2
						set {_lor::*} to lore of {_item}
						loop {_lor::*}:
							set {_c} to loop-value-3
							if {_c} contains "{@reqlvl}":
								replace "{@reqlvl}" with "" in {_c}
								set {_c} to {_c} parsed as integer
								set {_lvl} to {lv::%player%}
								add 2 to {_lvl}
								if {_lvl} is more than or equal to {_c}:
									exit loop
				if {_item} is set:
					if arg is 1:
						send formatted "{@pdlvl-1}" to player
					if arg is 2:
						send formatted "{@pdlvl-2}" to player
					if arg is 3:
						send formatted "{@pdlvl-3}" to player
					if arg is 4:
						send formatted "{@pdlvl-4}" to player
					exit loop
			give {_item} to player
			send "&8[Debug] &7%{_c}%"
			send "&8[Debug] &7%{_lvl}%"

Co ja tu źle robię?
{@reqlvl} -> Nazwa do odpowiedniej linijki lore
w miejce %arg% jest liczba od 1 do 4

Odnośnik do komentarza
Udostępnij na innych stronach

18 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
3 minuty temu, Brax napisał:

Witajcie! Robię skrypt na losowanie itemu względem poziomu gracza i zamiast dawać mi item max 2 poziomy wyżej to daje normalnie loop-value.

Mógłbyś jaśniej?

Pokaż w czym dokładnie jest błąd. Dobrze byłoby wskazać dokładną linijkę i podrzucić jakiegoś screenshota na Imgurze.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, Kormic napisał:

Mógłbyś jaśniej?

Pokaż w czym dokładnie jest błąd. Dobrze byłoby wskazać dokładną linijkę i podrzucić jakiegoś screenshota na Imgurze.

Błąd jest taki, że ja mam np {lv::%player%} 5, więc {_lvl} jest 7, a daje mi item z lvl 76

 

8 minut temu, Brax napisał:

if {_c} contains "{@reqlvl}": replace "{@reqlvl}" with "" in {_c} set {_c} to {_c} parsed as integer set {_lvl} to {lv::%player%} add 2 to {_lvl} if {_lvl} is more than or equal to {_c}: exit loop

to są linijki odpowiedzialne za czytanie levelu {_item} z lore

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Brax napisał:

Błąd jest taki, że ja mam np {lv::%player%} 5, więc {_lvl} jest 7, a daje mi item z lvl 76

 

to są linijki odpowiedzialne za czytanie levelu {_item} z lore

Mógłbyś pokazać jak ten przedmiot wygląda w grze (nazwa, lore, itd.)?

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
4 minuty temu, Brax napisał:

Oto układ takiego dropu:

Zarejestruj się lub zaloguj, aby zobaczyć ukrytą treść!

Okej, już zaczynam łapać. Robisz jakiegoś RPG'a. W sumie dobry pomysł na serwer.

Co do skryptu, prosiłbym o ostatnią rzecz, a mianowicie 'reqlvl' z sekcji 'options'. Chciałbym zobaczyć co tam jest.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, Kormic napisał:

Okej, już zaczynam łapać. Robisz jakiegoś RPG'a. W sumie dobry pomysł na serwer.

Co do skryptu, prosiłbym o ostatnią rzecz, a mianowicie 'reqlvl' z sekcji 'options'. Chciałbym zobaczyć co tam jest.

Serwer już nawet testowo stoi xD

Oto opcja:
reqlvl: &cWymagany poziom: &7

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
2 minuty temu, knugi napisał:

A w {itemy.lvl5::*} to masz itemy które są na 76 ?

Tablice mam od 1-4 {itemy.lvl<numer>::*}. Loopuję daną tablicę i w każdej jest level 1-400

@Edit

I chcę loopować daną tablicę i zobaczyć czy level itemu jest mniejszy lub równy {_lvl} i wtedy dodać, lecz nie wychodzi

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

  • 0
1 minutę temu, Brax napisał:

Tablice mam od 1-4 {itemy.lvl<numer>::*}. Loopuję daną tablicę i w każdej jest level 1-400

To już rozumiem.

Możesz spróbować tym sposobem:

			loop {itemy.lvl%arg%::*}:
				set {_lor::*} to lore of loop-value
				loop {_lor::*}:
					set {_c} to loop-value-2
					if {_c} contains "{@reqlvl}":
						replace "{@reqlvl}" with "" in {_c}
						set {_c} to {_c} parsed as integer
						set {_lvl} to {lv::%player%}
						add 2 to {_lvl}
						if {_lvl} is larger than or equal to {_c}:
							add loop-value-1 to {_lista::*}
							exit loop
			give random item out of {_lista::*} to player

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
1 minutę temu, knugi napisał:

Możesz spróbować tym sposobem:

Ja nie widzę aby losowało przedmiot tylko pobiera listę i leci według niej, więc tak patrząc dostanę chyba zawsze to co pierwsze będzie

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Brax napisał:

Ja nie widzę aby losowało przedmiot tylko pobiera listę i leci według niej, więc tak patrząc dostanę chyba zawsze to co pierwsze będzie

Zrobiłem tym sposobem:

Bierze w pętle wszystkie przedmioty z listy,

sprawdza czy twój level jest większy niż przedmiot z listy.

Jeżeli tak to dodaje ten przedmiot do osobnej listy {_lista::*}

i później expressionem random element losuje przedmiot.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
Teraz, Brax napisał:

loop 1000 times:
	loop {itemy.lvl%arg%::*}:
		chance of 100/size of {itemy.lvl%arg%::*}%:

@knugi A to wzięte z twojego poradnika na luckyblocki i używane w 3 rzeczach u mnie :D

właśnie zauważyłem. Teraz myślę że to nie praktyczne i lepiej tym sposobem co teraz przedstawiłem.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
11 minut temu, knugi napisał:

Zrobiłem tym sposobem:

Bierze w pętle wszystkie przedmioty z listy,

sprawdza czy twój level jest większy niż przedmiot z listy.

Jeżeli tak to dodaje ten przedmiot do osobnej listy {_lista::*}

i później expressionem random element losuje przedmiot.

Jak podejrzewałem. Dodaje graczowi pierwszy item napotkany

Odnośnik do komentarza
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ę...