Skocz do zawartości
  • 0

zapis ekwipunku


Pytanie

czesc, chcialbym by zapisywało itemki i pozniej bym mogl sobie ja powrocic na dokladnie te miejsca, gdzie je mam podczas zapisku, tylko nie wiem jak to za bardzo zrobic

 

command /z [<text>]:
	trigger:
		zapis(player, "")


function zapis(p:player, t:text):
	if {_t} is "":
		if {i.%{_p}%::*} is set:
			clear {i.%{_p}%::*}

		loop all items in {_p}'s inventory:
			add "%{%loop-item%.%index of loop-item%}%" to {i.%{_p}%::*}

na zapis zrobiłem cos takiego, nie wiem czy to dobrze

na przywrocenie nie mam za bardzo pomyslu

command /i [<text>]:
	trigger:
		if {i.%player%::*} is set:
			loop (amount of {i.%player%::*}) times:

 

Edytowane przez Mexicodelaamigo
Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/
Udostępnij na innych stronach

15 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
command /zapisz [<text>]:
    trigger:
        zapis(player, "")


function zapisz(p: player, t: text):
    if {_t} is "":
        if {i.%{_p%::*} is set:
            clear {i.%{_p%::*}
        loop all items in {_p}'s inventory:
            add "%loop-item%" to {i.%{_p%::*}

command /odtworz [<player>]:
	trigger:
		odtworz(player)

function odtworz(p: player):
	if {i.%{_p%::*} is set:
		clear {_p}'s inventory
		loop all items in {i.%{_p%::*}:
			give loop-item to {_p}

:kappaseems:

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-329863
Udostępnij na innych stronach

  • 0
6 godzin temu, xMarmo321 napisał:
command /zapisz [<text>]:
    trigger:
        zapis(player, "")


function zapisz(p: player, t: text):
    if {_t} is "":
        if {i.%{_p%::*} is set:
            clear {i.%{_p%::*}
        loop all items in {_p}'s inventory:
            add "%loop-item%" to {i.%{_p%::*}

command /odtworz [<player>]:
	trigger:
		odtworz(player)

function odtworz(p: player):
	if {i.%{_p%::*} is set:
		clear {_p}'s inventory
		loop all items in {i.%{_p%::*}:
			give loop-item to {_p}

:kappaseems:

Tak  trochę nie działa :D

Nie daje itemów i nie zapisałeś slota, w której był item, więc nie odda go w miejsce, w którym był :/

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-329877
Udostępnij na innych stronach

  • 0
command /zapisz [<text>]:
	trigger:
		zapis(arg 1, "")


function zapisz(p: player, t: text):
	if {_t} is "":
		if {i::%{_p}%::*} is set:
			clear {i::%{_p}%::*}
		loop all items in {_p}'s inventory:
			add "%loop-item%" to {i::%{_p}%::*}

command /odtworz [<player>]:
	trigger:
		odtworz(arg 1)

function odtworz(p: player):
	if {i::%{_p}%::*} is set:
		clear {_p}'s inventory
		loop all items in {i::%{_p}%::*}:
			add loop-item to {_p}'s inventory

Nie odda itemkow na miejsce niestety 😿

 

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-329949
Udostępnij na innych stronach

  • 0
5 godzin temu, xMarmo321 napisał:
command /zapisz [<text>]:
	trigger:
		zapis(arg 1, "")


function zapisz(p: player, t: text):
	if {_t} is "":
		if {i::%{_p}%::*} is set:
			clear {i::%{_p}%::*}
		loop all items in {_p}'s inventory:
			add "%loop-item%" to {i::%{_p}%::*}

command /odtworz [<player>]:
	trigger:
		odtworz(arg 1)

function odtworz(p: player):
	if {i::%{_p}%::*} is set:
		clear {_p}'s inventory
		loop all items in {i::%{_p}%::*}:
			add loop-item to {_p}'s inventory

Nie odda itemkow na miejsce niestety 😿

 

Dzięki za chęci, ale nie o to prosiłem :/

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-329960
Udostępnij na innych stronach

  • 0
3 godziny temu, gujix64 napisał:

Najlepiej zrobić to pluginem możesz do tego użyć mapy, która będzie łączyła blok oraz lokalizację. Następnie mape możesz zapisywać w pliku konfiguracyjnym 

a skryptem? nie wiem za bardzo o co chodzi z tymi mapami

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-330211
Udostępnij na innych stronach

  • 0
9 minut temu, Mexicodelaamigo napisał:

a skryptem? nie wiem za bardzo o co chodzi z tymi mapami

Nie mam pojęcia czy jest HashMapa lub jakiś jej odpowiednik w skryptach. Tutaj masz o hashmapie w Javie https://www.w3schools.com/java/java_hashmap.asp

Edit: Dobra ja też się zakręciłem w akcji i zrozumiałem, że potrzebujesz skryptu, który przywraca bloki po czasie. W takim razie musisz skorzystać z HashMapy ale dla obiektu klasy Player oraz obiektu klasy Inventory Map<Player,Inventory> storage;

Edytowane przez gujix64
Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-330212
Udostępnij na innych stronach

  • 0
21 godzin temu, gujix64 napisał:

Nie mam pojęcia czy jest HashMapa lub jakiś jej odpowiednik w skryptach. Tutaj masz o hashmapie w Javie https://www.w3schools.com/java/java_hashmap.asp

Edit: Dobra ja też się zakręciłem w akcji i zrozumiałem, że potrzebujesz skryptu, który przywraca bloki po czasie. W takim razie musisz skorzystać z HashMapy ale dla obiektu klasy Player oraz obiektu klasy Inventory Map<Player,Inventory> storage;

tutaj chodzi o zapis ekwipunku gracza i później przywrócenie go. chciałbym to zrobić w skrypcie, ale ciężko coś idzie

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-330242
Udostępnij na innych stronach

  • 0
15 minut temu, Mexicodelaamigo napisał:

tutaj chodzi o zapis ekwipunku gracza i później przywrócenie go. chciałbym to zrobić w skrypcie, ale ciężko coś idzie

Tak jak powiedziałem i się poprawiłem najłatwiej zrobisz to pluginem bo tam możesz zapisywać obiekty klasy inventory gracza w tym rozłożenie itemów w ekwipunku. Ewentualnie w skrypcie iteruj po każdym miejscu w ekwipunku tam gdzie nic nie ma zapisz null a tam gdzie jest przedmiot zapisz jego id.

 

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-330243
Udostępnij na innych stronach

  • 0

Nwm czy już rozwiązane, nie chce mi się czytać xD ale możesz zrobić jeszcze w ten sposób

Zamiast loop bo to bez sensu dać

set {zmienna::*} to player's inventory

Potem set player's inventory to {zmienna::*} 

nie jestem pewny w 100% czy to działa na graczu ale na skrzynce to wiem że działa, przetestuj ewentualnie pomogę ci w inny sposób 😂

 

 

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-330250
Udostępnij na innych stronach

  • 0
W dniu 19.02.2023 o 06:35, kokekoke2002 napisał:

Nwm czy już rozwiązane, nie chce mi się czytać xD ale możesz zrobić jeszcze w ten sposób

Zamiast loop bo to bez sensu dać

set {zmienna::*} to player's inventory

Potem set player's inventory to {zmienna::*} 

nie jestem pewny w 100% czy to działa na graczu ale na skrzynce to wiem że działa, przetestuj ewentualnie pomogę ci w inny sposób 😂

 

 

Niestety nie działa. nie wywala bledow ale nie daje itemów

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-330366
Udostępnij na innych stronach

  • 0
command /zapisz [<text>]:
	trigger:
		if player's inventory is empty:
			send "&cTwój ekwipunek jest pusty!"
			stop
		if arg is not set:
			send "&cPodaj nazwę ekwipunku!"
			stop
		if {saveInv::%player%::%arg%} is set:
			send "&cTa nazwa jest już zajęta!"
			stop
		set {saveInv::%player%::%arg%} to arg
		set {saveInv::%player%::%arg%::date} to now
		set {_s} to 0
		loop 41 times:
			if slot {_s} of player is not empty:
				set {saveInv::%player%::%arg%::items::%{_s}%} to slot {_s} of player
			add 1 to {_s}
		clear player's inventory
		send "&eTwój ekwipunek z nazwą &9%arg% &ezostał zapisany dnia &9%{saveInv::%player%::%arg%::date}%"
		send "&7Zapisanych przedmiotów: &9%size of {saveInv::%player%::%arg%::items::*}%"
command /przywroc [<text>]:
	trigger:
		set {_inv} to chest inventory with 1 row named "&aZapisane ekwipunki"
		set {_s} to 0
		loop {saveInv::%player%::*}:
			set slot {_s} of {_inv} to chest named "&c%loop-index%" with lore "&eData zapisu: &9%{saveInv::%player%::%loop-index%::date}%" and "&eZapisanych przedmiotów: &9%size of {saveInv::%player%::%loop-index%::items::*}%" and "&ePrzedmioty:"
			loop {saveInv::%player%::%loop-index%::items::*}:
				add " &e- &9%loop-value-2%" to lore of slot {_s} of {_inv}
			add 1 to {_s}
		open {_inv} to player
on inventory click:
	if name of event-inventory is "&aZapisane ekwipunki":
		cancel event
		if clicked inventory is player's inventory:
			stop
		if type of clicked slot is not chest:
			stop
		if player's inventory is not empty:
			send "&cTwój ekwipunek musi być pusty!"
			stop
		set {_id} to uncolored name of clicked slot
		loop {saveInv::%player%::%{_id}%::items::*}:
			set {_s} to loop-index parsed as integer
			set {_i} to loop-value
			set slot {_s} of player to {_i}
		close player's inventory
		send "&eEkwipunek z dnia &9%{saveInv::%player%::%{_id}%::date}% &ezostał przywrócony."
		clear {saveInv::%player%::%{_id}%::*} and {saveInv::%player%::%{_id}%}

 

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-330495
Udostępnij na innych stronach

  • 0
W dniu 26.02.2023 o 16:28, Shooterowy napisał:
command /zapisz [<text>]:
	trigger:
		if player's inventory is empty:
			send "&cTwój ekwipunek jest pusty!"
			stop
		if arg is not set:
			send "&cPodaj nazwę ekwipunku!"
			stop
		if {saveInv::%player%::%arg%} is set:
			send "&cTa nazwa jest już zajęta!"
			stop
		set {saveInv::%player%::%arg%} to arg
		set {saveInv::%player%::%arg%::date} to now
		set {_s} to 0
		loop 41 times:
			if slot {_s} of player is not empty:
				set {saveInv::%player%::%arg%::items::%{_s}%} to slot {_s} of player
			add 1 to {_s}
		clear player's inventory
		send "&eTwój ekwipunek z nazwą &9%arg% &ezostał zapisany dnia &9%{saveInv::%player%::%arg%::date}%"
		send "&7Zapisanych przedmiotów: &9%size of {saveInv::%player%::%arg%::items::*}%"
command /przywroc [<text>]:
	trigger:
		set {_inv} to chest inventory with 1 row named "&aZapisane ekwipunki"
		set {_s} to 0
		loop {saveInv::%player%::*}:
			set slot {_s} of {_inv} to chest named "&c%loop-index%" with lore "&eData zapisu: &9%{saveInv::%player%::%loop-index%::date}%" and "&eZapisanych przedmiotów: &9%size of {saveInv::%player%::%loop-index%::items::*}%" and "&ePrzedmioty:"
			loop {saveInv::%player%::%loop-index%::items::*}:
				add " &e- &9%loop-value-2%" to lore of slot {_s} of {_inv}
			add 1 to {_s}
		open {_inv} to player
on inventory click:
	if name of event-inventory is "&aZapisane ekwipunki":
		cancel event
		if clicked inventory is player's inventory:
			stop
		if type of clicked slot is not chest:
			stop
		if player's inventory is not empty:
			send "&cTwój ekwipunek musi być pusty!"
			stop
		set {_id} to uncolored name of clicked slot
		loop {saveInv::%player%::%{_id}%::items::*}:
			set {_s} to loop-index parsed as integer
			set {_i} to loop-value
			set slot {_s} of player to {_i}
		close player's inventory
		send "&eEkwipunek z dnia &9%{saveInv::%player%::%{_id}%::date}% &ezostał przywrócony."
		clear {saveInv::%player%::%{_id}%::*} and {saveInv::%player%::%{_id}%}

 

Woo, dziękuje bardzo!

Odnośnik do komentarza
https://skript.pl/temat/54355-zapis-ekwipunku/#findComment-330561
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ę...