Skocz do zawartości
  • 0

Pomoc przy poprawie skryptu


uiuin
 Udostępnij

Pytanie

Cześć 
Mam mały problem, bo chcę zrobić coś w stylu, że jak gracz umiera to nie wpadają z niego przedmioty, a tworzy się skrzynka w niej lądują przedmioty. Problem jest taki, że skrzynka ma 27 slotów, a gracz może mieć na sobie o 14 więcej (9 slotów na przedmioty, tarcza i zbroja). 
Chciałbym bym po śmierci przedmioty lądowały w skrzyni, a jak się nie mieszczą to wypadały by na miejscu tej skrzynki. Zrobiłem coś takie i pojawia się skrzynka, ale itemki się nie przenoszą.
 

on damage:
	if victim is player:
		if damage >= victim's health:
			set {_x} to location of block at location of victim
			set block at location of {_x} to chest
			set {_x} to block at {_x}
			loop all items in victim's inventory:
				add loop-item to {items:%victim%::*}
			loop all items in {items:%victim%::*}:
				set {treasureblock} to block at {_x}
				if {treasureblock} can hold loop-item:
					add loop-item to {treasureblock}'s inventory
				else:
					drop loop-item at {_x}
			cancel event

 

Odnośnik do komentarza
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
on death of player:
	set {_drops::*} to drops
	clear drops
	set block at victim to chest
	loop {_drops::*}:
		if (inventory of block at victim) can hold loop-item:
			add loop-item to (inventory of block at victim)
		else:
			drop loop-item at above block at victim

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
5 godzin temu, xAxee napisał:
on death of player:
	set {_drops::*} to drops
	clear drops
	set block at victim to chest
	loop {_drops::*}:
		if (inventory of block at victim) can hold loop-item:
			add loop-item to (inventory of block at victim)
		else:
			drop loop-item at above block at victim

 

e065e0bc4548f.png

Wyskakują dwa błędy. Skrzynka pojawia się normalnie

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

Spróbuj tak:

on death of player:
	set {_drops::*} to drops
	clear drops
	set block at victim to chest
	loop {_drops::*}:
		if player's inventory is not empty:
			if (inventory of block at victim) can hold loop-value:
				add loop-value to (inventory of block at victim)
			else:
				drop {_drops::*}
		else:
			stop

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0

@San4dY wtedy pomimo dodania itemów do skrzyni wydropi całe inventory ponożone przez rozmiar listy.

xAxee zrobił dobrze tylko zamiast loop-item trzeba wszędzie wpisać loop-value, bo zapętlamy zmienną z itemami, a nie itemy.

on death of player:
	set {_drops::*} to drops
	clear drops
	set block at victim to chest
	loop {_drops::*}:
		if (inventory of block at victim) can hold loop-value:
			add loop-value to (inventory of block at victim)
		else:
			drop loop-value at above block at victim

 

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

  • 0
W dniu 25.12.2019 o 12:56, PanMaruda napisał:

@San4dY wtedy pomimo dodania itemów do skrzyni wydropi całe inventory ponożone przez rozmiar listy.

xAxee zrobił dobrze tylko zamiast loop-item trzeba wszędzie wpisać loop-value, bo zapętlamy zmienną z itemami, a nie itemy.

on death of player:
	set {_drops::*} to drops
	clear drops
	set block at victim to chest
	loop {_drops::*}:
		if (inventory of block at victim) can hold loop-value:
			add loop-value to (inventory of block at victim)
		else:
			drop loop-value at above block at victim

 

Działa prawie wszystko. Tworzy się skrzynka i przedmioty są do niej wkładane, ale wyskakuje błąd do tej jeden linii
 

else:
			drop loop-value at above block at victim

There's no loop that matches 'loop-value at'

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
on death of player:
	set {_drops::*} to drops
	clear drops
	set block at victim to chest
	loop {_drops::*}:
		if (inventory of block at victim) can hold loop-value:
			add loop-value to (inventory of block at victim)
		else:
			drop loop-value at block above block at victim

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • 0
3 minuty temu, PanMaruda napisał:
on death of player:
	set {_drops::*} to drops
	clear drops
	set block at victim to chest
	loop {_drops::*}:
		if (inventory of block at victim) can hold loop-value:
			add loop-value to (inventory of block at victim)
		else:
			drop loop-value at block above block at victim

 

Działa. Dziękuje

Odnośnik do komentarza
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...