Skocz do zawartości
  • 0

Używanie zmiennych w argumentach funkcji


Pytanie

Więc mój problem polega na tym, że nie mogę używać zmiennych jako argumentu w funkcji np.

function funkcja(p: player, t: text):
	send {_t} to {_p}
    
// costamcostam kod bla bla bla
		funkcja(player, {_textzczatu})

powyższy kod niewiedzieć czemu nie działa, funkcja się nie wykonuje, żadnych błędów w konsoli.

Natomiast, jeśli zrobię coś takiego:

function funkcja(p: player, t: text):
	send {_t} to {_p}
    
// costamcostam kod bla bla bla
		funkcja(player, "text")

Kod działa bez zarzutu.

Ma ktoś jakiś pomysł jak wstawić inaczej, w moim skrypcie konkretnie liczbę, w przykładzie tekst, ze zmiennej do funkcji?

Będę wdzięczny, daje plusy czy co tam się daje.

Odnośnik do komentarza
https://skript.pl/temat/32005-u%C5%BCywanie-zmiennych-w-argumentach-funkcji/
Udostępnij na innych stronach

6 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

A to działa?

function test(p: player, t: text):
	send {_t} to {_p}
command /test:
	trigger:
		set {_p} to player
		set {_t} to "Jakis tekst"
		test({_p}, {_t})

możliwe, że zmienne są w innym typie, lub o zgrozo masz literówkę w zmiennej

Odnośnik do komentarza
https://skript.pl/temat/32005-u%C5%BCywanie-zmiennych-w-argumentach-funkcji/#findComment-207359
Udostępnij na innych stronach

  • 0

@LloydPL tak jak napisałem, w swoim skrypcie mam inta, nie stringa, na którym wykonuję działania, więc tak średnio
@knugi twoja funkcja działa jak należy u mnie

lecz ja u siebie wykonuję coś takiego:

function f2(p: player, c: number):
	open chest with 5 rows named "bla bla" to {_p}
	wait 1 tick
	loop all players:
   		if loop-player is {_p}:
			format slot 10 of {_p} with 1 of green concrete named "bla bla" to run [f2(loop-player, {_c} + 21)]

function f1(p: player):
	open chest with 3 rows named "bla bla" to {_p}
	wait 1 tick
    loop all players: # musialem zrobic loopa bo mi nie chcialo sie odpalic f2 gdy bylo {_p}
        if loop-player is {_p}:
			format slot 0 of {_p} with 1 of iron ingot named "bla bla$" with lore "bla bla" to run [f2(loop-player, 1)]

on rightclick on entity:
	# bla bla bla
	format slot 0 of player with 1 of emerald named "bla bla" with lore "bla bla" to close then run [f1(player)]

i to nie dziala (jestem zmuszony to zrobić w ten sposób czy jest jakiś inny) w przykładzie chodzi o to, że mam 3 menu GUI do których mogę mieć dostęp bezpośrednio z nich (w linijce 6 wywołuję ponownie f2 z pewnego powodu i jest to zamierzone)

 

EDIT:

Okej, nic nie zrobiłem ale nagle zaczęła działać funkcja, problem polega na tym, że po ponownym wywołaniu funkcji zmienna {_c} ciągle jest równa 21 zamiast zwiększać się o tyle

Edytowane przez TOSTERpp
Poprawka
Odnośnik do komentarza
https://skript.pl/temat/32005-u%C5%BCywanie-zmiennych-w-argumentach-funkcji/#findComment-207361
Udostępnij na innych stronach

  • 0
Gość ZiemniaQ
function f2(p: player, c: number):
	close inventory of {_p}
	open chest with 5 rows to {_p}
	set {_c} to ({_c} + 21)
	format gui slot 10 of {_p} with green concrete to run function f2({_p}, {_c})

function f1(p: player):
	close inventory of {_p}
	open chest with 3 rows to {_p}
	format gui slot 0 of {_p} with diamond to run function f2({_p}, 1)

on rightclick on entity:
	#(...)
	open chest with 1 row to player
	format gui slot 0 of player with potato to run function f1(player)

Zainstaluj sobie TuSke (nie buguje się tak jak SkQuery przy robieniu GUI). To co masz powyżej będzie ci działać na pewno.

Odnośnik do komentarza
https://skript.pl/temat/32005-u%C5%BCywanie-zmiennych-w-argumentach-funkcji/#findComment-207364
Udostępnij na innych stronach

  • 0
5 minut temu, LuckyPotato napisał:

function f2(p: player, c: number):
	close inventory of {_p}
	open chest with 5 rows to {_p}
	set {_c} to ({_c} + 21)
	format gui slot 10 of {_p} with green concrete to run function f2({_p}, {_c})

function f1(p: player):
	close inventory of {_p}
	open chest with 3 rows to {_p}
	format gui slot 0 of {_p} with diamond to run function f2({_p}, 1)

on rightclick on entity:
	#(...)
	open chest with 1 row to player
	format gui slot 0 of player with potato to run function f1(player)

Zainstaluj sobie TuSke (nie buguje się tak jak SkQuery przy robieniu GUI). To co masz powyżej będzie ci działać na pewno.

Wow! działa wyśmienicie, dziękuje bardzo!

Odnośnik do komentarza
https://skript.pl/temat/32005-u%C5%BCywanie-zmiennych-w-argumentach-funkcji/#findComment-207368
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ę...