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] ChestShop


Kamillo32

Rekomendowane odpowiedzi

Opublikowano

Witam.

Mam problem ze skryptem na sklepy. Skrypt jest wzorowany na

http://dev.bukkit.org/bukkit-plugins/skript/forum/scripts/54630-gem-shop-v1-0-skript-beta-10/#p1

 

Oto jest kod:

options:
	sk: [&1SignShop&f]
	Money-item: emerald
	Money-name: &bCrystalCoin $

on sign change:
	if line 1 is "[Shop]":
		set {_name} to "&2[Shop]"
		set {_chest.check} to true
	else if line 1 is "[AdminShop]":
		if player has permission "shop.admin":
			set {_name} to "&4[AdminShop]"
			set {_chest.check} to false
		else:
			stop trigger
	else:
		stop trigger
	line 2 is not empty:
		line 3 is not empty:
			line 4 is not empty:
				player has permission "shop.create":
					if line 2 is "Buy" or "B":
						set line 2 to "Buy"
					else if line 2 is "Sell" or "S":
						set line 2 to "Sell"
					else:
						message "{@sk}&6Wpisz w 2 lini BUY lub SELL"
						stop trigger
					clear {ktools.material}
					execute player command "getmaterial %line 3%"
					if {ktools.material} is set:
						set line 3 to "%{ktools.material}%"
					else:
						message "{@sk}&6Nieodpowiedni material!"
						stop trigger
					clear {ktools.material}
					clear {ktools.int}
					execute player command "getint %line 4%"
					if {ktools.int} is not set:
						message "{@sk}&6Niepoprawna wartosc!"
						stop trigger
					if {ktools.int} is less than 0:
						message "{@sk}&6Nie mozesz dawac ujemnych liczb!"
						stop trigger
					if {_chest.check} is true:
						block below event-block is not a chest
						message "{@sk}&6Musisz postawic skrzynke!"
						stop trigger
					set {shop.list::%location of block%} to "%name of player%"
					set line 1 to "%{_name}%"
					message "{@sk}&aSklep zostal pomyslnie utworzony!"

on break of sign:
	{shop.list::%location of block%} is set
	if player has permission "shop.admin":
		delete {shop.list::%location of block%}
		message "{@sk}&aSklep zostal zniszczony!"
		wait 1 tick
		set event-block to air
	else if "%name of player%" is "%{shop.list::%location of block%}%":
		delete {shop.list::%location of block%}
		message "{@sk}&aSklep zostal zniszczony!"
	else:
		message "{@sk}&4To nie jest twoj sklep"
		cancel event

on break:
	loop blocks in radius 1 of event-block:
		if {shop.list::%location of loop-block%} is set:
			if y-coord of loop-block is greater than or equal to y-coord of event-block:
				if event-block is chest:
					message "{@sk}&6Zniszcz tabliczke aby usunac sklep."
				else:
					message "{@sk}&4Ten blok jest za blisko sklepu!"
				cancel event
				stop trigger

on rightclick on sign:
	message "debug"
	{shop.list::%location of block%} is set
	cancel event
	if line 1 of block is "&4[Admin Shop]":
		set {_chest.check} to false
	else:
		set {_chest.check} to true
	if line 2 is "Buy":
		message "debug"
		execute player command "getitemtype %line 3% to itemtype"
		set {_item} to {ktools.itemtype}
		player has {_item}:
			execute player command "getint %line 4%"
			set {_amount} to {ktools.int}
			execute player command "getitemtype %{_amount}% {@Money-item} to itemtype"
			set {_money} to {ktools.itemtype}
			if {_chest.check} is true:
				if block below event-block has named "{@Money-name}":
					if block below event-block can hold {_item}:
						remove {_item} from the player's inventory
						add {_item} to the inventory of block below event-block
						give player {_money} named "{@Money-name}"
						remove {_money} named "{@Money-name}" from the inventory of block below event-block
					else:
						message "{@sk}&4Sklep jest pelen"
						stop trigger
				else:
					message "{@sk}&4Ten sklep nie ma juz pieniedzy!"
					stop trigger
			else:
				give player {_money} named "{@Money-name}"
				remove {_item} from the player's inventory
			message "{@sk}&2Sprzedales 1 %{_item}% dla %{_amount}% {@Money-name}"
		else:
			message "{@sk}&4Nie masz %{_item}%!"
			stop trigger

	if line 2 is "Sell":
		execute player command "getint %line 4%"
		set {_amount} to {ktools.int}
		execute player command "getitemtype %{_amount}% {@Money-item}"
		set {_money} to {ktools.itemtype}
		if player has {_money} named "{@Money-name}":
			execute player command "getitemtype %line 3%"
			set {_material} to {ktools.itemtype}
			if {_chest.check} is true:
				if block below event-block has {_material}:
					if block below event-block can hold {_money} named "{@Money-name}":
						remove {_material} from the inventory of block below event-block
						add {_material} to the player's inventory
						remove {_money} named "{@Money-name}" from the player's inventory
						add {_money} named "{@Money-name}" to the inventory of block below event-block
					else:
						message "{@sk}&4Ten sklep nie moze przyjac wiecej gotowki!"
						stop trigger
				else:
					message "{@sk}&4Sklep jest pusty!"
					stop trigger
			else:
				give player {_material}
				remove {_money} named "{@Money-name}" from the player
			message "{@sk}&aYou bought 1 %{_material}% for %{_amount}% {@Money-name}s"
		else:
			message "{@sk}&4Nie masz wystarczajaco pieniedzy!"
			stop trigger

on rightclick on chest:
	{shop.list::%location of block above event-block%} is set
	if {shop.list::%location of block above event-block%} is "%name of player%":
		stop trigger
	else:
		message "{@sk}&4To nie jest twoj sklep!"
		cancel event
		
on place of chest:
	loop blocks in radius 1 around event-block:
		loop-block is chest
		y-coord of loop-block is y-coord of event-block
		{shop.list::%location of block above loop-block%} is set
		message "{@sk}&4Nie mozna klasc skrzyni obok skrzyni od sklepu!"
		cancel event
		exit loop
on place of hopper:
	loop blocks in radius 1 around event-block:
		{shop.list::%location of block above loop-block%} is set
		message "{@sk}&4Nie mozesz klasc hopperow kolo sklepu."
		cancel event
		exit loop

 

Wszystko działa, lecz ta część poniżej nie reaguje w ogóle.

on rightclick on sign:
	message "debug"
	{shop.list::%location of block%} is set
	cancel event
	if line 1 of block is "&4[Admin Shop]":
		set {_chest.check} to false
	else:
		set {_chest.check} to true
	if line 2 is "Buy":
		message "debug"
		execute player command "getitemtype %line 3% to itemtype"
		set {_item} to {ktools.itemtype}
		player has {_item}:
			execute player command "getint %line 4%"
			set {_amount} to {ktools.int}
			execute player command "getitemtype %{_amount}% {@Money-item} to itemtype"
			set {_money} to {ktools.itemtype}
			if {_chest.check} is true:
				if block below event-block has named "{@Money-name}":
					if block below event-block can hold {_item}:
						remove {_item} from the player's inventory
						add {_item} to the inventory of block below event-block
						give player {_money} named "{@Money-name}"
						remove {_money} named "{@Money-name}" from the inventory of block below event-block
					else:
						message "{@sk}&4Sklep jest pelen"
						stop trigger
				else:
					message "{@sk}&4Ten sklep nie ma juz pieniedzy!"
					stop trigger
			else:
				give player {_money} named "{@Money-name}"
				remove {_item} from the player's inventory
			message "{@sk}&2Sprzedales 1 %{_item}% dla %{_amount}% {@Money-name}"
		else:
			message "{@sk}&4Nie masz %{_item}%!"
			stop trigger

	if line 2 is "Sell":
		execute player command "getint %line 4%"
		set {_amount} to {ktools.int}
		execute player command "getitemtype %{_amount}% {@Money-item}"
		set {_money} to {ktools.itemtype}
		if player has {_money} named "{@Money-name}":
			execute player command "getitemtype %line 3%"
			set {_material} to {ktools.itemtype}
			if {_chest.check} is true:
				if block below event-block has {_material}:
					if block below event-block can hold {_money} named "{@Money-name}":
						remove {_material} from the inventory of block below event-block
						add {_material} to the player's inventory
						remove {_money} named "{@Money-name}" from the player's inventory
						add {_money} named "{@Money-name}" to the inventory of block below event-block
					else:
						message "{@sk}&4Ten sklep nie moze przyjac wiecej gotowki!"
						stop trigger
				else:
					message "{@sk}&4Sklep jest pusty!"
					stop trigger
			else:
				give player {_material}
				remove {_money} named "{@Money-name}" from the player
			message "{@sk}&aYou bought 1 %{_material}% for %{_amount}% {@Money-name}s"
		else:
			message "{@sk}&4Nie masz wystarczajaco pieniedzy!"
			stop trigger

 

Ten skrypt jest połączony z kTools:

http://dev.bukkit.org/bukkit-plugins/skript/forum/scripts/53881-ktools-a-skript-library/?page=2#p26

 

 

PROSZĘ O SZYBKĄ POMOC. DAJE LIMIT LIKE !



on rightclick on sign:
	message "debug"
	{shop.list::%location of block%} is set

Do kodu dodałem powyższą linijke aby sprawdzić działanie kodu. Teoretycznie powinni pojawić mi się na czacie słowo "debug" po kliknięciu byle jakiej tabliczki lecz tak nie jest :/

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...