Skocz do zawartości

problem z trade


Studziak
 Udostępnij

Rekomendowane odpowiedzi

@ZiemniaQ summonowałeś mnie, a teraz znikam *puf*

Ja tam widzę Autor: Studziak, więc jakiś plagiat, hmmm. 

A co do skryptu, powiedz jaką wersję serwera masz i wersje skripta, skript-mirror i skquery:

/ver

/ver sk 

(Podaj wszystko co wyświetli się pod tymi komendami, komendę najlepiej wykonaj z consoli, wtedy będziesz mógł wkleić ładnie jako tekst)

Gdy pisałem ten skrypt, wszystko było rzetelnie sprawdzane przeze mnie i jeszcze jedną osobę i takiego błędu nie zauważyliśmy. A może te przedmioty są w depozycie? Tak ten skrypt posiada depozyt, by itemy nie znikały :) 

Sprawdź wszystkie opcje, gdzie się podziały te itemki. 

Odnośnik do komentarza
Udostępnij na innych stronach

19 minut temu, knugi napisał:

@ZiemniaQ summonowałeś mnie, a teraz znikam *puf*

Ja tam widzę Autor: Studziak, więc jakiś plagiat, hmmm. 

A co do skryptu, powiedz jaką wersję serwera masz i wersje skripta, skript-mirror i skquery:

/ver

/ver sk 

(Podaj wszystko co wyświetli się pod tymi komendami, komendę najlepiej wykonaj z consoli, wtedy będziesz mógł wkleić ładnie jako tekst)

Gdy pisałem ten skrypt, wszystko było rzetelnie sprawdzane przeze mnie i jeszcze jedną osobę i takiego błędu nie zauważyliśmy. A może te przedmioty są w depozycie? Tak ten skrypt posiada depozyt, by itemy nie znikały :) 

Sprawdź wszystkie opcje, gdzie się podziały te itemki. 

 
[20:41:02 INFO]: This server is running Paper version git-Paper-1618 (MC: 1.12.2) (Implementing API version 1.12.2-R0.1-SNAPSHOT)
[20:41:02 INFO]: You are running the latest version


 
[20:41:32 INFO]: Skript version 2.2-dev32c
[20:41:32 INFO]: Customize Minecraft's mechanics with simple scripts written in plain English sentences.
[20:41:32 INFO]: Website: https://bensku.github.io/Skript
[20:41:32 INFO]: Authors: Njol, Mirreski, bensku, TheBentoBox, tim740, Tuke-Nuke, TheLimeGlass, xXAndrew28Xx, Sashie, RoyCurtis, nfell2009, Syst3ms and Snow-Pyon
[20:41:32 INFO]: SkQuery version 3.6.0-Lime
[20:41:32 INFO]: Authors: LimeGlass and w00tmast3r
[20:41:32 INFO]: SkinsRestorer version 13.7.2
[20:41:32 INFO]: Ability to restore/change skins on servers! (Offline and Online Mode)
[20:41:32 INFO]: Website: https://skinsrestorer.net/
[20:41:32 INFO]: Authors: Th3Tr0LLeR, McLive, DoNotSpamPls and Blackfire62
[20:41:32 INFO]: skUtilities version 0.9.2
[20:41:32 INFO]: An addon for skript that adds conversions, utilities, files and much more.
[20:41:32 INFO]: Website: https://tim740.github.io/
[20:41:32 INFO]: Author: tim740
[20:41:32 INFO]: skript-mirror version 0.9.0

 

Edytowane przez HeezQ
HeezQ

Wstawiam w code; usuwam formatowanie

Notatka dodana przez HeezQ

Odnośnik do komentarza
Udostępnij na innych stronach

Z wersji wszystko pasuje, powinno być okej. Zaraz przetestuję i dam Editkę lub nowy post :) 

//Edit:

Masz rację, był błąd. Tutaj masz poprawione. Zniknięte przedmioty trafiają do depozytu (najprościej było poprawić :) )

Spoiler
options:
	
	TAG: &c&l►

	#Nie zmieniaj :)
	READY: "gotowy"
	WAITING: "oczekuje"
	ACCEPT: "zaakceptowal"
	SETTING: "ustawia"

#Code of TradeSK
function TRADE_getInventory(t: text = "") :: inventory:
	set {_x} to chest with 5 rows named "&9&lWYMIANA"
	set {_i} to 4
	loop 5 times:
		set slot {_i} of {_x} to 102 named "&l"
		add 9 to {_i}
	set slot 36 of {_x} to light green wool named "&8[&2✓&8] &2Akceptuj &8[&2✓&8]"
	set slot 37 of {_x} to red wool named "&8[&c✗&8] &4Odrzuc &8[&c✗&8]"
	set slot 41 of {_x} to yellow wool named "&8[&f►&8] &6Ustawia itemy &8[&f◄&8]"
	set slot 39 of {_x} to yellow wool named "&8[&f►&8] &6Ustawiasz itemy &8[&f◄&8]"
	return {_x}
function TRADE_trade(p: player, p2: player):
	if distance between {_p} and {_p2} is larger than 5:
		send "{@TAG} &7Gracz jest za daleko." to {_p}
		stop
	if {trade::%{_p}%::status} is not set:
		if {trade::%{_p2}%::status} is not set:
			set {trade::%{_p}%::with} to {_p2}
			set {trade::%{_p}%::status} to {@READY}
			set {trade::%{_p2}%::with} to {_p}
			set {trade::%{_p2}%::status} to {@WAITING}
			send "{@TAG} &7Zaprosiles gracza %{_p2}% do wymiany." to {_p}
			send "{@TAG} &7Gracz %{_p}% zaprosil Cie do wymiany.%nl%{@TAG} &7Wpisz &6/handel %{_p}%&7, lub kliknij na niego PPM." to {_p2}
			stop
	if {trade::%{_p}%::status} is {@WAITING}:
		if {trade::%{_p}%::with} is {_p2}:
			set {trade::%{_p}%::status} to {@SETTING}
			set {trade::%{_p2}%::status} to {@SETTING}
			open TRADE_getInventory() to {_p}
			open TRADE_getInventory() to {_p2}
function TRADE_saveItems(p: player):
	if name of {_p}'s current inventory is "&9&lWYMIANA":
		set {_slots::*} to 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29 and 30
		loop {_slots::*}:
			set {_slot} to "%loop-value%" parsed as integer
			if {_p}'s current inventory's slot {_slot} is not air:
				add {_p}'s current inventory's slot {_slot} to {deposit::%{_p}%::*}
	
function TRADE_endTrade(p: player):
	set {_p::*} to {trade::%{_p}%::with} and {_p}
	set {_i} to 4
	set {_przedzialka::*} to 4, 13, 22, 31 and 40
	set {_items::*} to 160:14, 160:4 and 160:5
	loop {_items::*}:
		loop {_p::*}:
			loop {_przedzialka::*}:
				if name of loop-value-2's current inventory is "&9&lWYMIANA":
					set {_nr} to loop-index-1 parsed as integer
					set loop-value-2's current inventory's slot loop-value-3 to loop-value-1 named "&8[&2✓&8] &aWymiana zaakceptowana &8[&2✓&8]" with lore "||||&a&l Wymiana konczy sie za:||&c%4 - {_nr}%"
					
		wait 1 second
	set {_p2} to {trade::%{_p}%::with}
	TRADE_saveItems({_p})
	TRADE_saveItems({_p2})
	TRADE_setStatus({_p}, "Odrzuc")
	give {deposit::%{_p}%::*} to {_p2}
	give {deposit::%{_p2}%::*} to {_p}
	clear {deposit::%{_p}%::*}
	clear {deposit::%{_p2}%::*}
function TRADE_setStatus(p: player, t: text): 
	set {_p2} to {trade::%{_p}%::with}
	if {_t} is "Odrzuc":
		delete {trade::%{_p}%::*}
		delete {trade::%{_p2}%::*}
		delete {trade::%{_p2}%}
		delete {trade::%{_p}%}
		close {_p2}'s inventory
		if {_p} is online:
			close {_p}'s inventory
	if {trade::%{_p}%::status} is "Perm":
		stop
	if {_t} is {@ACCEPT}:
		set {trade::%{_p}%::status} to {@ACCEPT}
		if {trade::%{_p2}%::status} is {@SETTING}:
			set {_p}'s current inventory's slot 39 to green wool named "&8[&2✓&8] &aZaakceptowales &8[&2✓&8]"
			set {_p2}'s current inventory's slot 41 to green wool named "&8[&2✓&8] &aZaakceptowal &8[&2✓&8]"
			stop
		if {trade::%{_p2}%::status} is {@ACCEPT}:
			set {_p}'s current inventory's slot 39 to green wool named "&8[&2✓&8] &aZaakceptowales &8[&2✓&8]"
			set {_p2}'s current inventory's slot 41 to green wool named "&8[&2✓&8] &aZaakceptowal &8[&2✓&8]"
			set {trade::%{_p}%::status} to "Perm"
			set {trade::%{_p2}%::status} to "Perm"
			TRADE_endTrade({_p})
			stop
	if {_t} is {@SETTING}:
		set {trade::%{_p}%::status} to {@SETTING}
		set {trade::%{_p2}%::status} to {@SETTING}
		set {_p}'s current inventory's slot 39 to yellow wool named "&8[&f►&8] &6Ustawiasz itemy &8[&f◄&8]"
		set {_p2}'s current inventory's slot 39 to yellow wool named "&8[&f►&8] &6Ustawiasz itemy &8[&f◄&8]"
		set {_p}'s current inventory's slot 41 to yellow wool named "&8[&f►&8] &6Ustawia itemy &8[&f◄&8]"
		set {_p2}'s current inventory's slot 41 to yellow wool named "&8[&f►&8] &6Ustawia itemy &8[&f◄&8]"
on script load:
	import "org.bukkit.event.inventory.InventoryClickEvent"
	import "org.bukkit.event.inventory.InventoryCloseEvent"
	import "org.bukkit.event.player.PlayerInteractEntityEvent"
	import "org.bukkit.event.inventory.InventoryDragEvent"

on join:
	if size of {deposit::%player%::*} is larger than 0:
		wait 5 second
		send "&8[&c?&8] &7Aby odebrac swoje przedmioty z poprzedniej wymiany wpisz: &6/handel odbierz"

on quit:
	if {trade::%player%::status} is set:
		set {_p2} to {trade::%player%::with}
		TRADE_saveItems(player)
		TRADE_saveItems({_p2})
		TRADE_setStatus(player, "Odrzuc")
		wait 3 tick
		give {deposit::%{_p2}%::*} to {_p2}
		clear {deposit::%{_p2}%::*}

on "org.bukkit.event.inventory.InventoryCloseEvent":
	set {_p} to event.getPlayer()
	if {trade::%{_p}%::status} is {@ACCEPT} or {@SETTING}:
		wait 3 tick
		open event.getInventory() to event.getPlayer()
		stop
	clear {trade::%{_p2}%::*}
	clear {trade::%{_p}%::status}
	close {trade::%{_p}%::with}'s inventory
	clear {trade::%{_p}%::*}

on "org.bukkit.event.player.PlayerInteractEntityEvent":
	set {_p} to event.getPlayer()
	set {_p2} to "%event.getRightClicked()%" parsed as player
	if {_p2} is player:
		TRADE_trade({_p}, {_p2})


#Prawdopodobnie to kiedyś działało.
on "org.bukkit.event.inventory.InventoryDragEvent":
	set {_top} to event.getWhoClicked().getOpenInventory().getTopInventory()
	if inventory name of {_top} is "&9&lWYMIANA":
		set {_x} to "%event.getRawSlots()%"
		replace all "[" and "]" with "" in {_x}
		set {_x::*} to split {_x} by ", "
		loop {_x::*}:
			if loop-value parsed as integer is smaller than 44:
				cancel event
				stop
#Tak to wyżej xD

on drop:
	set {_top} to player.getOpenInventory().getTopInventory()
	if name of {_top} is "&9&lWYMIANA":
		cancel event

on "org.bukkit.event.inventory.InventoryClickEvent":
	set {_top} to event.getWhoClicked().getOpenInventory().getTopInventory()
	if name of {_top} is "&9&lWYMIANA":
		set {_rawSlot} to event.getRawSlot()
		if {_rawSlot} is smaller than 0:
			stop
		set {_p} to event.getWhoClicked()
		set {_clickType} to event.getClick()
		if "%{_clickType}%" contains "shift":
			cancel event
			stop
		if "%{_clickType}%" is "number key" or "double click using mouse" or "drop key":
			cancel event
			stop
		broadcast "%{_rawSlot}%"
		#37
		if {_rawSlot} is smaller than 45:
			if {_rawSlot} is not 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29 or 30:
				cancel event
			if {_rawSlot} is 36:
				TRADE_setStatus({_p}, {@ACCEPT})
			if {_rawSlot} is 37:
				if {trade::%{_p}%::status} is not "perm":
					TRADE_saveItems({_p})
					TRADE_saveItems({trade::%{_p}%::with})
					TRADE_setStatus({_p}, "Odrzuc")
		if {_rawSlot} is 0, 1, 2, 3, 9, 10, 11, 12, 18, 19, 20, 21, 27, 28, 29 or 30:
			if {trade::%{_p}%::status} is "Perm":
				cancel event
				stop
			set {_p2} to {trade::%{_p}%::with}
			wait 1 tick
			set {_p2}'s current inventory's slot {_rawSlot} + 5 to event.getCurrentItem()
			TRADE_setStatus({_p}, {@SETTING})

#Crevsers tego nie napisał!
#Knugi też nie :kappa:
#Samo się napisało.

command /handel [<text>]:
	trigger:
		if arg 1 is not set:
			send "&8(◕^^◕)"
			send "&7/handel <nick> &8Doprowadza do wymiany z graczem."
			send "&7/handel odbierz &8Odbierasz itemy z depozytu."
			stop
		if arg 1 is "odbierz":
			if size of {deposit::%player%::*} is larger than 0:
				give {deposit::%player%::*} to player
				clear {deposit::%player%::*}
				send "{@TAG} &7Otrzymales swoje przedmioty."
				stop
			send "{@TAG} &7Nie masz zadnych przedmiotow w depozycie."
			stop
		set {_p} to "%arg%" parsed as offlineplayer
		if {_p} is online:
			TRADE_trade(player, {_p})

 

 

Edytowane przez knugi
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ę...