Skocz do zawartości
  • 0

Wirtualna skrzynia - kosz i kopiowanie itemków


Bartusiak
 Udostępnij

Pytanie

Witam !

Moim problemem jest skrypt (podany niżej), który odpowiada za wirtualną skrzynie zwaną koszem. Tam wszyscy gracze mogą brać / wyrzucać rzeczy.
Wszystko działa pięknie, ale jest drobny problem, albo nawet krytyczny :D - gracze mogą kopiować itemy.

Napisze przebieg jak bugować:
 

1. Wchodzę w /kosz i daje np. diaxy
2. Potem wychodzę i ponownie wchodzę (dalej są diaxy, bo nikt nie zabrał)
3. Potem wchodzi druga osoba, która także widzi diaxy i je bierze
4. Pomimo, że druga osoba zabrała już diaxy, pierwsza osoba dalej je widzi i też je zabiera - skopiowane !

Szczerze problem do rozwiązania teoretycznie prosty, ale jest sporo zabawy.

Ta wirtualna skrzynia - kosz powinna działać jak zwykła skrzynia, czyli jeśli do skrzyni patrzą dwie osoby to jeśli jedna zabierze przedmiot to skrzynia się odświeża w czasie rzeczywistym i tej drugiej znika ten przedmiot.


SKRYPT:

 

command /kosz:	permission: skrypt.kosz.used	permission message: &c[&bMMO24&c] &a NIE MASZ UPRAWNIEN !	trigger:		open chest with 6 rows named "                 &1KOSZ" to player 		wait 1 tick		set {_} to 6 * 9		loop {_} times:			set slot loop-number - 1 of current inventory of player to {kosz::Items::%loop-number%}on inventory close:	if inventory name of current inventory of player is "                 &1KOSZ":		clear {kosz::Items::*}		set {_} to 6 * 9		loop {_} times:			set {kosz::Items::%loop-number%} to slot "%loop-number - 1%" parsed as an integer of current inventory of player
Odnośnik do odpowiedzi
Udostępnij na innych stronach

9 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

command /ustawkosz:

trigger:

if targeted block is chest block:

set {kosz} to location of targeted block

send "&aUstawiles kosz!"

else:

send "&cMusisz patrzec na skrzynie!"

command /kosz:

trigger:

if {kosz} is set:

open inventory of block at {kosz} to player

else:

send "&cKosz nie zostal ustawiony!"

Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • 0

to daj może on inventory click i sprawdz czy inv to KOSZ i w tedy zabiera graczowi i dodaje do kosza.

A może dać "on inventory click" i "on inventory close" ?

Wtedy przy otwieraniu i zamykaniu będzie odświeżał, bo tak mi się wydaje (logicznie myśląc) , że jest to samo co było tylko w drugą stronę .

Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • 0

to daj może on inventory click i sprawdz czy inv to KOSZ i w tedy zabiera graczowi i dodaje do kosza.

Dalej nie działa (dodałem tak jak napisałem)

 

 

command /ustawkosz:	trigger:		if targeted block is chest block:			set {kosz} to location of targeted block			send "&aUstawiles kosz!"		else:			send "&cMusisz patrzec na skrzynie!"command /kosz:	trigger:		if {kosz} is set:			open inventory of block at {kosz} to player		else:			send "&cKosz nie zostal ustawiony!"

Na takiej zasadzie nie ma działać ten skrypt - po prostu komenda /kosz i ma być kosz, bo ktoś będzie spam robił potem tym /ustawkosz i lipa

Aktualny skrypt:

 

command /kosz:	permission: skrypt.kosz.used	permission message: &c[&bMMO24&c] &a NIE MASZ UPRAWNIEN !	trigger:		open chest with 6 rows named "                 &1KOSZ" to player 		wait 1 tick		set {_} to 6 * 9		loop {_} times:			set slot loop-number - 1 of current inventory of player to {kosz::Items::%loop-number%}on inventory close:	if inventory name of current inventory of player is "                 &1KOSZ":		clear {kosz::Items::*}		set {_} to 6 * 9		loop {_} times:			set {kosz::Items::%loop-number%} to slot "%loop-number - 1%" parsed as an integer of current inventory of playeron inventory close:	if inventory name of current inventory of player is "                 &1KOSZ":		clear {kosz::Items::*}		set {_} to 6 * 9		loop {_} times:			set {kosz::Items::%loop-number%} to slot "%loop-number - 1%" parsed as an integer of current inventory of player
Edytowane przez Bartusiak
Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • 0

Nie praktyczne?



command /ustawkosz:
    trigger:
        if player has permission "kosz.use":
            if target block is chest:
                set {kosz.loc} to location of target block
                send "&aUstawiles kosz!"
            else:
                send "&cTo nie jest skrzynia!"
        else:
            send "&cNie masz do tego uprawnien!"

command /kosz:
    trigger:
        open inventory of block at {kosz.loc} to player
        send "&aOtworzyles kosz!"

To tylko 15 linijek i jedna zmienna :)


PS. Możesz postawić większą skrzynie i masz duży kosz :)


Edytowane przez astranaar
Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • 0

Nie praktyczne?

command /ustawkosz:    trigger:        if player has permission "kosz.use":            if target block is chest:                set {kosz.loc} to location of target block                send "&aUstawiles kosz!"            else:                send "&cTo nie jest skrzynia!"        else:            send "&cNie masz do tego uprawnien!"command /kosz:    trigger:        open inventory of block at {kosz.loc} to player        send "&aOtworzyles kosz!"

To tylko 15 linijek i jedna zmienna :)

PS. Możesz postawić większą skrzynie i masz duży kosz :)

Sorki nie wiedziałem , że to tak działa . No spoko nawet ;D

Odnośnik do odpowiedzi
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ę...