Skocz do zawartości
  • 0

Problem z Dropem


kiroxtv

Pytanie

Witam, czy jest ktoś w stanie pomóc mi jak zapisać to wszystko wyraźniej, w jednej funkcji czy komendzie, prosiłbym kogoś doświadczonego, albo o link do odpowiednika ładnie zrobionego.
Zależy mi na tym, by zrobić to wszystko albo w pliku yaml gdzieś w folderze, ew. zostać przy skripcie (wszystko w kodzie)
Resztę jestem sam w stanie dopisać, jedynie potrzebuję malego wyjaśnienia w razie dodawania kolejnych itemów.
Chcialbym by drop umiał przeczytać, czy kilof ma fortune, czy gracz ma wykupiony turbodrop
Tak samo z poziomem gracza - tj. jezeli gracz jest poniżej y 65, itd..

 

Odnośnik do komentarza
https://skript.pl/temat/37138-problem-z-dropem/
Udostępnij na innych stronach

5 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

Myślę, że da radę domyślić się z kontekstu - drop umiał przeczytać - inaczej - skript przeczytał czy gracz ma fortune 3/2/1 na kilfoie i odpowiednio przypisywał do niego procentową szansę na coś, chyba oczywiste
 

Odnośnik do komentarza
https://skript.pl/temat/37138-problem-z-dropem/#findComment-236652
Udostępnij na innych stronach

  • 0

Statusy dropu możesz robić funkcją z returnami, coś w tym stylu;
 

function bReturnStatus(p: player, t: text) :: string:
	if {drop::%{_p}%::%{_t}%} is true:
		return "Wlaczony"
	if {drop::%{_p}%::%{_t}%} is false:
		return "Wylaczony"

Wtedy lore wygląda w tym stylu; 

with lore "Status: %bReturnStatus(player, "diament")%"


Polecam Ci zmienić zmienne z statusem na {drop::%player%::<surowiec>}.

 

function bDropStatus(p: player, t: text):
	if {drop::%{_p}%::%{_t}%} is true:
		set {drop::%{_p}%::%{_t}%} to false
	if {drop::%{_p}%::%{_t}%} is false:
		set {drop::%{_p}%::%{_t}%} to true

Wtedy na końcu formatu w gui dajesz;

to run function bDropStatus(player, "diament")

A co do sprawdzania, czy gracz ma turbodrop i tak dalej, to myślę, że ifami będzie najlepiej.
Sprawdzanie poziomu gracza; if player's y-coordinate >= 65:
 

Odnośnik do komentarza
https://skript.pl/temat/37138-problem-z-dropem/#findComment-236670
Udostępnij na innych stronach

  • 0
12 godzin temu, LjayPL789 napisał:

Statusy dropu możesz robić funkcją z returnami, coś w tym stylu;
 


function bReturnStatus(p: player, t: text) :: string:
	if {drop::%{_p}%::%{_t}%} is true:
		return "Wlaczony"
	if {drop::%{_p}%::%{_t}%} is false:
		return "Wylaczony"

Wtedy lore wygląda w tym stylu; 


with lore "Status: %bReturnStatus(player, "diament")%"


Polecam Ci zmienić zmienne z statusem na {drop::%player%::<surowiec>}.

 


function bDropStatus(p: player, t: text):
	if {drop::%{_p}%::%{_t}%} is true:
		set {drop::%{_p}%::%{_t}%} to false
	if {drop::%{_p}%::%{_t}%} is false:
		set {drop::%{_p}%::%{_t}%} to true

Wtedy na końcu formatu w gui dajesz;


to run function bDropStatus(player, "diament")

A co do sprawdzania, czy gracz ma turbodrop i tak dalej, to myślę, że ifami będzie najlepiej.
Sprawdzanie poziomu gracza; if player's y-coordinate >= 65:
 

Bardzo dziękuję! Przetestuję i w tym samym poście dam znać, jeśli będzie coś nie działało/coś jeszcze mi brakowało, dzięki wielkie.
Swoją drogą jak ładnie napisać drop? Tzn. obliczanie szans procentowych względem rang, fortune i turbodropu? Chciałbym wiedzieć jak to ładnie napisać, może jest jakiś poradnik na forum odnośnie funkcji?

BTW - nie chce działać lore, tzn. jakby nie chcę przeczytać tej wartości z funkcji, wyskakuje błąd

Tak mam ułożone na obecną chwilę wszystko,



Okej, spytałem na discordzie skripta - powinno dać się podwójny cudzysłów, mimo wszystko skript zamiast pokazywać mi Włączony - pokazuje wyłączony, dziwne, poza tym wyskakują mi problemy w konsoli z - to run function bDropStatus - jakby TuSke tego nie czytał.. dziwne

 

Edytowane przez kiroxtv
Odnośnik do komentarza
https://skript.pl/temat/37138-problem-z-dropem/#findComment-236718
Udostępnij na innych stronach

  • 0
on load:
	set {drop::sam} to true #Jezeli chcesz aby byla mozliwosc dropu wiecej niz 1 itemu z 1 stona daj na false
	clear {drop::drop::*} and {drop::name::*}
	#Dropy najlepiej dawac od najmniejszych do najwiekszych
	set {drop::drop::diamond} to 0.1 #10%
	set {drop::drop::emerald} to 0.1 #10%
	set {drop::drop::iron ingot} to 0.2 #20%
	set {drop::drop::gold ingot} to 0.2 #20%
	set {drop::drop::redstone} to 0.2 #10%
	set {drop::drop::obsidian} to 0.5 #50%
	
	#Nazwa w gui i wiadomosciach o dropie
	set {drop::name::diamond} to "&bDiament"
	set {drop::name::emerald} to "&aEmerald"
	set {drop::name::iron ingot} to "&7Zelazo"
	set {drop::name::gold ingot} to "&6Zloto"
	set {drop::name::redstone} to "&4Redstone"
	set {drop::name::obsidian} to "&8Obsidian"

function getStatus(p: player, d: string) :: string:
	if {drop::player::%{_p}%::%{_d}%} is false:
		return "&cWylaczone"
	return "&aWlaczone"
function toggleStatus(p: player, d: string):
	if {drop::player::%{_p}%::%{_d}%} is false:
		set {drop::player::%{_p}%::%{_d}%} to true
		send "&aWlaczono" to {_p}
	else:
		set {drop::player::%{_p}%::%{_d}%} to false
		send "&cWylaczono" to {_p}
function getDropItem(n: number) :: string:
	set {_s} to 0
	loop {drop::drop::*}:
		if {_s} is {_n}:
			return "%loop-index%"
		add 1 to {_s}
function setGuiItems(p: player):
	set {_s} to 0
	loop {drop::drop::*}:
		set {_i} to "%loop-index%"
		set {_p}'s current inventory's slot {_s} to ({_i} parsed as item) named {drop::name::%loop-index%} with lore " &7Szansa: &e%loop-value*100%%%|| &7Status: %getStatus({_p}, {_i})%"
		add 1 to {_s}
function addDrops(p: player, i: item):
	if {_p} can hold {_i}:
		add {_i} to {_p}
	else:
		drop {_i} at {_p}
command /drop [<text>]:
	trigger:
		open chest with 3 rows named "&6Drop" to player
		setGuiItems(player)
on inventory click:
	if inventory name of current inventory of player is "&6Drop":
		cancel event
		if (clicked slot) is between 0 and (size of {drop::drop::*}):
			toggleStatus(player, getDropItem(clicked slot))
			setGuiItems(player)
on mine of stone:
	if y-loc of player <= 65:
		add (random integer between 1 and 5) to player's xp
		set {_s} to level of fortune of player's tool+1
		if {drop::turbo::%player%} is set:
			set {_s} to {_s}*1.5
		loop {drop::drop::*}:
			chance of loop-value:
				if getStatus(player, "%loop-index%") is "&cWylaczone":
					stop
				set {_ilosc} to (random integer between 1 and {_s})
				addDrops(player, {_ilosc} of (loop-index parsed as item))
				send "&7Wydropiles: &e%{_ilosc}%x %{drop::name::%loop-index%}%"
				if {drop::sam} is true:
					stop

niby pytania i problemy ale mi się nudziło.
Naj odp + <3

Edytowane przez xAxee
Odnośnik do komentarza
https://skript.pl/temat/37138-problem-z-dropem/#findComment-236811
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ę...