Skocz do zawartości
  • 0
MasteriZiomaX

Skrypt na sell hand

Pytanie

Użytkownik

Witam, czy jest ktoś w stanie napisać skrypt na sell hand lub już posiada gotowy ?
Pilnie potrzebuję tego skryptu (wiem, że essentials również posiada /sell hand, ale muszę zrobić osobne "boostery" pieniędzy dla graczy, czego nie zrobię w essentials).

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

18 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

Moderator
  • 0

To masz tutaj takie coś zrobiłem.

Na początek wygeneruje Ci plik w plugins/Master/config.yml

A jeżeli masz skquery w wersji 3.6.x to w path wpisz tak: "plugins/Master/config.yml"

Niestety, nie mogłem tego rzetelnie przetestować, gdyż jeszcze prowadzę dyskusję z mojangiem na temat mojego konta.

Jedynie przetestowałem w postaci błędów (mój serwer ich nie wykrył) i zatem oto jest ten skrypt:

Spoiler
options:
	path: "../../Master/config.yml"
function Master_getData(t: text = ""):
	if yaml value "baza.1" from {@path} is not set:
		set yaml value "baza.1" from {@path} to 1
		set yaml value "baza.4" from {@path} to 1
	loop yaml nodes "baza" from {@path}:
		set {master::%loop-value%} to yaml value "baza.%loop-value%" from {@path}
on load:
	Master_getData()
command /var [<text>]:
	trigger:
		broadcast "%{%arg%}%"
command /sell [<text>]:
	trigger:
		if arg 1 is not set:
			send "/sell hand &7Sprzedajesz przedmiot w rece."
			if sender has permission "*":
				send "/sell reload &7Przeladowywujesz config."
			stop
		if arg 1 is "hand":
			if sender is player:
				set {_id} to id of player's tool
				set {_data} to data of player's tool
				set {_item} to "%{_id}%:%{_data}%"
				replace all ":0" with "" in {_item}
				if {master::%{_item}%} is not set:
					send "Nie mamy tego przedmiotu w bazie."
					stop
				#Tutaj se ustaw czy ma tylko jeden zabierać, czy całą rękę i mu tyle dawaj
				#Cena za jeden masz w {master::%{_item}%}
				send "Sprzedales swoje przedmioty."
				stop
			send "Komenda tylko dla graczy."
			stop
		if arg 1 is "reload":
			if sender has permission "*":
				Master_getData()
				send "Przeladowano."
				stop
		

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 0

Wszystko pięknie działa, tylko jedno pytanko, jak usunąć ten przedmiot który gracz trzyma, ale nie z ręki tylko od razu z całego ekwipunku? (średnio mi wychodzi tłumaczenie.. ;c)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Moderator
  • 0

Jeżeli chcesz wszystkie to w taki sposób:

remove ((amount of {_item}) of {_item}) from player's inventory
add (amount of {_item}) * {master::%{_item}%} to player's balance #albo to {mojakasa::%player%} w zależności jaki system ekonomi posiadasz

a jeżeli jeden to tak:

remove 1 of {_item} from player's inventory
add {master::%{_item}%} to player's balance #albo jak wyżej do zmiennej

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Moderator
  • 0

Oj przepraszam, zapomniałem o ważnej rzeczy :facepalm: 

remove ((amount of {_item} in player's inventory) of {_item}) from player's inventory
add (amount of {_item} in player's inventory) * {master::%{_item}%} to player's balance

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Moderator
  • 0

Ojojoj, knugi ciamajda :( 

Spoiler
options:
	path: "../../Master/config.yml"
function Master_getData(t: text = ""):
	if yaml value "baza.1" from {@path} is not set:
		set yaml value "baza.1" from {@path} to 1
		set yaml value "baza.4" from {@path} to 1
	loop yaml nodes "baza" from {@path}:
		set {master::%loop-value%} to yaml value "baza.%loop-value%" from {@path}
on load:
	Master_getData()
command /var [<text>]:
	trigger:
		broadcast "%{%arg%}%"
command /sell [<text>]:
	trigger:
		if arg 1 is not set:
			send "/sell hand &7Sprzedajesz przedmiot w rece."
			if sender has permission "*":
				send "/sell reload &7Przeladowywujesz config."
			stop
		if arg 1 is "hand":
			if sender is player:
				set {_id} to id of player's tool
				set {_data} to data of player's tool
				set {_item} to "%{_id}%:%{_data}%"
				replace all ":0" with "" in {_item}
				if {master::%{_item}%} is not set:
					send "Nie mamy tego przedmiotu w bazie."
					stop
				set {_item} to "%{_item}%" parsed as item
				remove ((amount of {_item} in player's inventory) of {_item}) from player's inventory
				add (amount of {_item} in player's inventory) * {master::%{_item}%} to player's balance
				send "Sprzedales swoje przedmioty."
				stop
			send "Komenda tylko dla graczy."
			stop
		if arg 1 is "reload":
			if sender has permission "*":
				Master_getData()
				send "Przeladowano."
				stop
		

 

Ciekawe o czym teraz zapomniałem 🤔

Edytowane przez knugi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Moderator
  • 0

Meh, aż wezmę zainstaluję se minecrafta non-premium. ***** mojang :P 

Przetestowałem u siebie i teraz ten kod u mnie w 100% działa:

Spoiler
options:
	path: "../../Master/config.yml"
function Master_getData(t: text = ""):
	if yaml value "baza.1" from {@path} is not set:
		set yaml value "baza.1" from {@path} to 1
		set yaml value "baza.4" from {@path} to 1
	loop yaml nodes "baza" from {@path}:
		set {master::%loop-value%} to yaml value "baza.%loop-value%" from {@path}
on load:
	Master_getData()
command /var [<text>]:
	trigger:
		broadcast "%{%arg%}%"
command /sell [<text>]:
	trigger:
		if arg 1 is not set:
			send "/sell hand &7Sprzedajesz przedmiot w rece."
			if sender has permission "*":
				send "/sell reload &7Przeladowywujesz config."
			stop
		if arg 1 is "hand":
			if sender is player:
				set {_id} to id of player's tool
				set {_data} to data of player's tool
				set {_id} to "%{_id}%:%{_data}%"
				replace all ":0" with "" in {_id}
				if {master::%{_id}%} is not set:
					send "Nie mamy tego przedmiotu w bazie."
					stop
				set {_item} to "%{_id}%" parsed as item
				add (amount of {_item} in player's inventory) * {master::%{_id}%} to player's balance
				remove ((amount of {_item} in player's inventory) of {_item}) from player's inventory
				send "Sprzedales swoje przedmioty."
				stop
			send "Komenda tylko dla graczy."
			stop
		if arg 1 is "reload":
			if sender has permission "*":
				Master_getData()
				send "Przeladowano."
				stop
		

 

 

Edytowane przez knugi

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Użytkownik
  • 0
command /sell [<text>]:
	trigger:
		if arg 1 is "reload" or "rl":
			if player has permission "hand":
				set {X::*} to yaml list "Przedmioty" from file "Hand.yml"
				set {mnoznik} to yaml value "Mnoznik" from file "Hand.yml"
				loop {X::*}:
					set {Cena::%loop-value%} to yaml value "Ceny.%loop-value%.Cena" from file "Hand.yml"
				send "&6Przeladowano!"
		if arg 1 is "hand" or "item":
			set {_id} to id of player's tool
			set {_i} to ("%{_id}%" parsed as item)
			set {_i} to "%{_i}%"
			if {Cena::%{_i}%} is set:
				set {_n} to amount of ("%{_i}%" parsed as item) in player's inventory
				remove ("%{_n}% %{_i}%" parsed as item) from player
				add {_n}*{Cena::%{_i}%}*{mnoznik} to player's balance
				send "&7Sprzedales &6%{_n}% &7Sztuk &6%{_i}% &7Za: &6%{_n}*{Cena::%{_i}%}*{mnoznik}%"
			else:
				send "&7Tego przedmiotu nie ma w bazie danych!"
command /dodajsell [<number>]:
	permission: hand
	trigger:
		if arg 1 is set:
			set {_id} to id of player's tool
			set {_i} to ("%{_id}%" parsed as item)
			add "%{_i}%" to yaml list "Przedmioty" from file "Hand.yml"
			set yaml value "Ceny.%{_i}%.Cena" from file "Hand.yml" to 5
		else:
			send "&7podaj cene"

Przykladowy config:

Mnoznik: 1.25
Przedmioty:
- stone
- glass
Ceny:
  stone:
    Cena: 5
  glass:
    Cena: 5

Wiem że da sie skrócić ale coś mi nie działało i jakoś tak wyszło xD

Edytowane przez xAxee

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Losowy awatar
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×