Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Skript - jak tworzyć argumenty w GUI?


Gość vertek123

Rekomendowane odpowiedzi

Opublikowano

Witam wie ktoś jak tworzyć argumenty ( if ) po kliknięciu w GUI skryptu na jakiś item (np. kamień - to jest obojętne jaki item)
Potrzebuję zrobić coś w stylu "if {item} clicked" to wtedy otwierają mi się bardzo duże możliwości na stworzenie GUI ?

Opublikowano

on rightclick with stone:

    if name of tool of player is "&7&lnazwa przedmiotu":

 

Chociaż jeśli tworzysz GUI w skripcie to polecam dodatek TuSKe ?

Opublikowano

Zobaczę (początkowo nie działał skrypt, zobaczę czy da radę zrobić to co chcę z tym co mi dałeś :p)

 

edit: nie chodzi mi o klikanie prawym przyciskiem na pasku tylko klikanie itemu W GUI - w gui nie działa klikanie tego...

 

skrypt:
 

Spoiler

command /ulepszenia:
	trigger:
		open chest with 3 rows named "&6&lUlepszenie wielkosci" to player
		format slot 13 of player with 1 of stone named "&6&lUlepszenie wielkosci" to be unstealable
	
on rightclick with stone:
	if name of tool of player is "&6&lUlepszenie wielkosci":
		send "test"

 

 

Opublikowano

@vertek123

 

Sprawdź to (jeżeli o to chodzi)

 

variables:
	{zmienna.%player%} = false

command /ulepszenia:
	trigger:
		if {zmienna.%player%} is false:
			open chest with 3 rows named "&6&lUlepszenie wielkosci" to player
			format slot 13 of player with 1 of stone named "&6&lUlepszenie wielkosci" to close then run "ustaw"
		if {zmienna.%player%} is true:
			open chest with 3 rows named "&6&lUlepszenie wielkosci" to player
			format slot 13 of player with 1 of stone named "&6&lUlepszenie wielkosci" to be unstealable
	
command /ulepsz:
	trigger:
		send "&cUstawiono!"
		set {zmienna.%player%} to true

 

Opublikowano

command /warp:
    trigger:
        open chest with 1 rows named "WARP Lista" to player
        wait 1 tick
        format slot 0 of player with 1 of crafting table named "&a&lCRAFTING STONIARKI" to close then run "ewarp crafting %player%"
        format slot 1 of player with 1 of redstone torch named "&a&lEKIPA" to close then run "ewarp ekipa %player%"
        format slot 2 of player with 1 of anvil named "&a&lKOWAL" to close then run "ewarp kowal %player%"
        format slot 3 of player with 1 of chest named "&a&lSKRZYNKI" to close then run "ewarp skrzynki %player%"
        format slot 4 of player with 1 of redstone lamp named "&a&lSALA CHWAŁY" to close then run "ewarp salachwaly %player%"
        format slot 5 of player with 1 of diamond sword named "&a&lArena PVP" to close then run "ewarp pvp %player%"

 

on inventory click:
    if inventory name of current inventory of player is "Warpy":
        cancel event
        if player's current inventory's slot 0 is workbench:
            cancel event
            execute player command "ewarp crafting %player%"
        if player's current inventory's slot 1 is redstone:
            cancel event
            execute player command "ewarp ekipa %player%"
        if player's current inventory's slot 2 is anvil:
            cancel event
            execute player command "ewarp kowal %player%"
        if player's current inventory's slot 3 is chest:
            cancel event
            execute player command "ewarp skrzynki %player%"
        if player's current inventory's slot 4 is redstone lamp:
            cancel event
            execute player command "ewarp salachwaly %player%"
        if player's current inventory's slot 5 is diamond sword:
            cancel event
            execute player command "ewarp pvp %player%"

Opublikowano

nie nie chodzi mi ani o warpa ani to co mi tam napisałeś AlexsanderARG

Opublikowano

@MPC Popular User
nie chodzi mi o zrobienie skryptu tylko o robieniu warunków (jeśli coś ... to drugie coś ma się stać) w linijce z "format slot ... to run" albo w jakiś inny sposób żeby na końcu chodziło o jeden konkretny blok w konkretnym gui (tak w razie W) (jeśli by ktoś pisał coś "on inventory slot" czy jakoś tak na klikanie slotów to od razu mówię że nie chcę żeby to się wykonało po wciśnięciu pustego pola a tym bardziej żeby nic nie działo się po kliknięciu w jakąś kratkę w ekwipunku (pod gui jest ekwipunek, nie wiem czy zawsze ale u mnie w moim skrypcie jest :p)

Opublikowano

dokładnie to co powiedziałeś ? (może być "on inventory click" ale żeby nie bugowało się że jak się kliknie nie w skrzynkowy slot tylko w ekwipunkowy slot to też się to coś wykona ?
Przykład co mi się buguję w jednym (13-stym) slocie ekwipunkowym :

 

Spoiler

on inventory click:
	if inventory name of current inventory of player is "&6&lUlepszenie wielkosci":
		if clicked slot is 13:
			if player's current inventory's slot 13 is stone named "test":	
				if slot 13 isn't "air":
					send "test"
					close player's inventory

 

 

Opublikowano
command /ulepszenia:
	trigger:
        open chest with 3 row named "&6&lUlepszenia" to player
        wait 1 tick
        format gui slot 0 of player with cyan glass pane named "" to close 
        format gui slot 1 of player with cyan glass pane named "" to close
        format gui slot 2 of player with cyan glass pane named "" to close
        format gui slot 3 of player with cyan glass pane named "" to close
		format gui slot 4 of player with stone named "&c&l200&7x&c&l200" to close then run player command "ulepszenia-cmd 200 %player%" using left mouse

command /ulepszenia-cmd [<text>] [<text>]:
    trigger:
        if arg 1 is "200":
            if arg 2 is set:
                execute console command "komenda na ulepszenia wyspy dla %player%"
			else:
  				send "&cNie znaleziono gracza!" to player
  		else:
  			send "&cNie wybrano poprawnie ulepszenia!" to player

 

Opublikowano

@vertek123

 

No to dokładnie to, co wysłałem powinno zadziałać

 

variables:
	{ulepszenie.%player%} = false

command /ulepszenia:
	trigger:
		if {ulepszenie.%player%} is false:
			open chest with 3 rows named "&6&lUlepszenie wielkosci x6" to player
			format slot 2 of player with 1 of stone named "&6&lUlepszenie wielkosci x6" to close then run "ulepsz-wyspa %player%"
		if {ulepszenie.%player%} is true:
			open chest with 3 rows named "&6&lUlepszenie wielkosci" to player
			format slot 3 of player with 1 of stone named "&6&lUlepszenie wielkosci x12" to be unstealable
	
command /ulepsz-wyspa [<text>]:
	trigger:
  		if arg 1 is not set:
  			send "&cNiepoprawnie wykonana komenda &7(&c/ulepsz-wyspa <nick>&7)"
  			stop
		send "&cKupiono!"
		set {ulepszenie.%player%} to true

 

Opublikowano

Dzięki za próbę pomocy ale chciałbym bazować TYLKO na komendzie /ulepszenia bez żadnych [<text>] i tym podobne
Samemu mam pomysł na skrypt jak już go zrobić ale mam 1 mini błąd który chciałbym wyeliminować (wiem szczegóły, ale nie lubię takich rzeczy - ktoś przypadkowo kliknie i lipa ...)
Mój skrypt:
 

Spoiler

command /ulepszenia:
	trigger:
		if player has permission "powiekszenie.wyspy0":
			if player's money is smaller than or equal to 200:
				open chest with 3 rows named "&6&lUlepszenie wielkosci" to player
				format slot 13 of player with 1 of stone named "&6&lUlepszenie wielkosci" with lore "&7Kliknij lewym przyciskiem aby zakupic ulepzenie" and "&7Pierwsze ulepszenie twojej wyspy kosztuje &a200$" to be unstealable
		if player has permission "powiekszenie.wyspy0":
			if player's money is more than or equal to 200:
				open chest with 3 rows named "&6&lUlepszenie wielkosci" to player
				format slot 13 of player with 1 of stone named "&6&lUlepszenie wielkosci" to be unstealable
		if player has permission "powiekszenie.wyspy1":
			if player's money is more than or equal to 200:
				open chest with 3 rows named "&6&lUlepszenie wielkosci" to player
				format slot 13 of player with 1 of stone named "test" to be unstealable
		if player has permission "powiekszenie.wyspy1":
			if player's money is smaller than or equal to 199:
				open chest with 3 rows named "&6&lUlepszenie wielkosci" to player
				format slot 13 of player with 1 of stone named "&c&lBrak kasy" to be unstealable 
				
on inventory click:
	if inventory name of current inventory of player is "&6&lUlepszenie wielkosci":
		if clicked slot is 13:
			if player's current inventory's slot 13 is stone named "test":	
				send "test"
				close player's inventory

 

(Jeszcze pod koniec zamierzam zrobić mam nadzieję że z powodzeniem odświeżanie jakoś gdy jest się już w środku GUI - żeby po ewentualnej zmianie pieniędzy wszystko się zaktualizowało albo zamknęło (coś w stylu jeśli ilość pieniędzy się zmieni to wtedy albo zamknie albo zaktualizuję gui)
Ale wracając: minimalnym błędem jest to ( skrypt z "on inventory click" ) że jeśli slot 13 zostanie kliknięty, tam jest "kamień" z nazwą "test" to wtedy akcja się wywoła (tak, wszystko się zgadza, nawet jeśli nie kliknie się w slocie GUI tylko w slocie ekwipunkowym - teoretycznie slot 13 zostaje kliknięty, w slocie 13 jest kamień (ale w slocie w GUI) więc komenda send "test" i close player's inventory się normalnie wykonuję po kliknięciu slotu 13 ekwipunkowego ) - może zna ktoś jakiś argument co by zapobiegał temu? ?

PS: byłbym wdzięczny za stworzenie skryptu który po zmianie ilości $$$$ JEŚLI gracz jest w gui z komendy /ulepszenia to wtedy zamknie (albo byłbym bardziej wdzięczny za odświeżenie) ekwipunek/ekwipunku

Opublikowano

Nie chodzi mi o plugin tylko skrypt - nic nie rozumiem z tych rzeczy a na dodatek piszą po angielsku...

Opublikowano

Przecież tam piszą o skrypcie skUnity...

Poza tym, żeby tam zrozumieć, nie trzeba być orłem tylko znać angielski na poziomie kali pić

Opublikowano

a zrobiłbyś skrypt w skunity który odświeża co sekundę każdemu graczu gui ? i jeszcze dalej potrzebuję zablokowania możliwości klikania "on inventory click" w inventory  - chce tylko żeby klikanie działało w gui - jest na to jakiś argument?

  • 2 tygodnie później...
Opublikowano

tak jak by udało mi się wyjść z tego problemu - zrobiłem skrypt /KOMENDA [<player>]: a tą komendę może używać tylko console'a która wywołuje to dla danego gracza (w moim przypadku dla %player% ponieważ gdy klikasz jakiś item w gui to %player% odnosi się do gracza - a kliknięcie wywołuję własnie tą komendę /KOMENDA [<GRACZ_KTÓRY_KLIKNĄŁ>] ) i po prostu w tej komende /KOMENDA [<Gracz>] znajdują się wszystkie argumenty

Temat do zamknięcia

  • Biter. zmienił(a) tytuł na Skript - jak tworzyć argumenty w GUI?
  • Rayzer. zablokował(a) ten temat

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...