demek istediğim şey mesela fırın 1 item pişiriyorsa ve pişirdiği itemden 1 tane veriyorsa yaptığım özel fırın 1 item pişirsin ama 2 tane pişmiş itemden versin gibiDediğin özellik nedir? Kaynak paketli fırınlar mı yoksa seviye atlatmalı fırınlar gibi bir şey mi?
qcmpo
tamam teşekkürler deneyeceğim (eklenti ücretliymiş sanırım ben ücretsiz bir eklenti arıyordum veya bunu skript ile yapabilirmiyim skript böyle bir şeyi ekleyebilirmi?)EpicFurnaces tarzı bir plugin bulmalısın benim aklıma gelen direkt epicfurnaces geldi
keremMode
options:
prefix: <##ff0000>[keremMode] &f
tag: firin_2x
yamlid: firin_data
command /fırın <player>:
permission: ozelfirin.admin
trigger:
give createOzelFirin() to arg-1
send "{@prefix}%arg-1% adlı oyuncuya fırın verildi." to sender
function createOzelFirin() :: item:
set {_item} to furnace named "&6&lÖzel Fırın"
set line 1 of lore of {_item} to "&fEritmelerde x2 kazandırır."
set line 2 of lore of {_item} to "&8ID: {@tag}"
return {_item}
function isOzelFirinItem(i: item) :: boolean:
if {_i} is not set:
return false
if {_i} is furnace or blast furnace or smoker:
if line 2 of lore of {_i} contains "{@tag}":
return true
return false
on place of furnace, blast furnace or smoker:
if isOzelFirinItem(player's tool) is true:
set {ozelfirin::%location of event-block%} to true
on break of furnace, blast furnace or smoker:
if {ozelfirin::%location of event-block%} is set:
cancel event
set {_loc} to location of event-block
set {_inv} to inventory of event-block
loop all items in {_inv}:
drop loop-item at {_loc}
set event-block to air
drop createOzelFirin() at {_loc}
delete {ozelfirin::%location of event-block%}
if player's gamemode is creative:
remove 1 of furnace from player
on smelt:
if {ozelfirin::%location of event-block%} is set:
set {_result} to smelted item
set {_amount} to item amount of {_result}
set {_newAmount} to {_amount} * 2
set {_max} to max stack size of {_result}
if {_newAmount} > {_max}:
set {_newAmount} to {_max}
set item amount of {_result} to {_newAmount}
set smelted item to {_result}
on inventory item move:
if holder of past event-inventory is a furnace or blast furnace or smoker:
if {ozelfirin::%location of holder of past event-inventory%} is set:
set {_amount} to item amount of event-item
if {_amount} > 1:
cancel event
set {_single} to event-item
set item amount of {_single} to 1
add {_single} to event-inventory
set {_loc} to location of holder of past event-inventory
drop ({_amount} - 1) of event-item at {_loc}
on explode:
loop exploded blocks:
if loop-block is furnace or blast furnace or smoker:
if {ozelfirin::%location of loop-block%} is set:
set {_loc} to location of loop-block
set {_inv} to inventory of loop-block
loop all items in {_inv}:
drop loop-item at {_loc}
drop createOzelFirin() at {_loc}
delete {ozelfirin::%location of loop-block%}
remove loop-block from exploded blocks
on piston extend:
loop moved blocks:
if loop-block is furnace or blast furnace or smoker:
if {ozelfirin::%location of loop-block%} is set:
cancel event
stop
on piston retract:
loop moved blocks:
if loop-block is furnace or blast furnace or smoker:
if {ozelfirin::%location of loop-block%} is set:
cancel event
stop
on inventory click:
set {_item} to event-slot
if {_item} is set:
if isOzelFirinItem({_item}) is true:
if click type is double click:
cancel event
if player's gamemode is creative:
wait 1 tick
loop all items in player's inventory:
if isOzelFirinItem(loop-item) is true:
if loop-item is not {_item}:
remove loop-item from player
every 10 minutes:
if yaml "{@yamlid}" is not loaded:
load yaml "plugins/Skript/scripts/ozelfirin_data.yml" as "{@yamlid}"
loop {ozelfirin::*}:
set yaml value "furnaces.%loop-index%" from "{@yamlid}" to loop-value
save yaml "{@yamlid}"
on load:
load yaml "plugins/Skript/scripts/ozelfirin_data.yml" as "{@yamlid}"
if yaml "{@yamlid}" is loaded:
loop yaml nodes with keys "furnaces" from "{@yamlid}":
set {ozelfirin::%loop-value%} to yaml value "furnaces.%loop-value%" from "{@yamlid}"
if {ozelfirin::*} is set:
send "{@prefix}%size of {ozelfirin::*}% fırın yüklendi." to console
else:
send "{@prefix}İlk çalıştırma yapılıyor." to console
else:
send "{@prefix}Veritabanı oluşturuldu." to console
send "{@prefix}Fırın sistemi çalıştırıldı." to console
on unload:
if yaml "{@yamlid}" is not loaded:
load yaml "plugins/Skript/scripts/ozelfirin_data.yml" as "{@yamlid}"
loop {ozelfirin::*}:
set yaml value "furnaces.%loop-index%" from "{@yamlid}" to loop-value
save yaml "{@yamlid}"
send "{@prefix}Fırın sistemi kapatıldı." to console
teşekkürler fakat verdiğin kod düzgün çalışmıyor ve dediğin eklentiye ihtiyaç yok kodu ilk senin verdiğini yapınca 7 tane hata veriyor bunları düzelttim birde işlevinide yapmıyor 1 demir ısıtıyorum 1 demir geri veriyor bunu düzelttim şuan 1 hata veriyor ama yinede çalışıyor kodu kullanmak isteyen kullansın 1.20 sunucuda düzgün çalışıyorPiyasada senin isteğini tam olarak karşılayan bir eklenti bulunmuyor.
İsteğini karşılayacak şekilde bu Skripti kullanabilirsin:
Öncelikle sunucundave yanındaDeğerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.ileDeğerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.isimli addon eklentilerinin de yüklü olması gerekiyor. Eklentileri tam olarak yükle ve ayar dosyalarını, sunucuyu çalıştırarak oluştur.Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
Daha sonra "plugins/Skript/scripts" klasörünü aç ve klasörün içinde firin.sk isimli bir dosya oluştur. Uzantısı .sk olmalı ama yoksa çalışmaz.
Oluşturduktan sonra notepad++ ile aç ve içine kodu yapıştır:
YAML:options: prefix: <##ff0000>[keremMode] &f tag: firin_2x yamlid: firin_data command /fırın <player>: permission: ozelfirin.admin trigger: give createOzelFirin() to arg-1 send "{@prefix}%arg-1% adlı oyuncuya fırın verildi." to sender function createOzelFirin() :: item: set {_item} to furnace named "&6&lÖzel Fırın" set line 1 of lore of {_item} to "&fEritmelerde x2 kazandırır." set line 2 of lore of {_item} to "&8ID: {@tag}" return {_item} function isOzelFirinItem(i: item) :: boolean: if {_i} is not set: return false if {_i} is furnace or blast furnace or smoker: if line 2 of lore of {_i} contains "{@tag}": return true return false on place of furnace, blast furnace or smoker: if isOzelFirinItem(player's tool) is true: set {ozelfirin::%location of event-block%} to true on break of furnace, blast furnace or smoker: if {ozelfirin::%location of event-block%} is set: cancel event set {_loc} to location of event-block set {_inv} to inventory of event-block loop all items in {_inv}: drop loop-item at {_loc} set event-block to air drop createOzelFirin() at {_loc} delete {ozelfirin::%location of event-block%} if player's gamemode is creative: remove 1 of furnace from player on smelt: if {ozelfirin::%location of event-block%} is set: set {_result} to smelted item set {_amount} to item amount of {_result} set {_newAmount} to {_amount} * 2 set {_max} to max stack size of {_result} if {_newAmount} > {_max}: set {_newAmount} to {_max} set item amount of {_result} to {_newAmount} set smelted item to {_result} on inventory item move: if holder of past event-inventory is a furnace or blast furnace or smoker: if {ozelfirin::%location of holder of past event-inventory%} is set: set {_amount} to item amount of event-item if {_amount} > 1: cancel event set {_single} to event-item set item amount of {_single} to 1 add {_single} to event-inventory set {_loc} to location of holder of past event-inventory drop ({_amount} - 1) of event-item at {_loc} on explode: loop exploded blocks: if loop-block is furnace or blast furnace or smoker: if {ozelfirin::%location of loop-block%} is set: set {_loc} to location of loop-block set {_inv} to inventory of loop-block loop all items in {_inv}: drop loop-item at {_loc} drop createOzelFirin() at {_loc} delete {ozelfirin::%location of loop-block%} remove loop-block from exploded blocks on piston extend: loop moved blocks: if loop-block is furnace or blast furnace or smoker: if {ozelfirin::%location of loop-block%} is set: cancel event stop on piston retract: loop moved blocks: if loop-block is furnace or blast furnace or smoker: if {ozelfirin::%location of loop-block%} is set: cancel event stop on inventory click: set {_item} to event-slot if {_item} is set: if isOzelFirinItem({_item}) is true: if click type is double click: cancel event if player's gamemode is creative: wait 1 tick loop all items in player's inventory: if isOzelFirinItem(loop-item) is true: if loop-item is not {_item}: remove loop-item from player every 10 minutes: if yaml "{@yamlid}" is not loaded: load yaml "plugins/Skript/scripts/ozelfirin_data.yml" as "{@yamlid}" loop {ozelfirin::*}: set yaml value "furnaces.%loop-index%" from "{@yamlid}" to loop-value save yaml "{@yamlid}" on load: load yaml "plugins/Skript/scripts/ozelfirin_data.yml" as "{@yamlid}" if yaml "{@yamlid}" is loaded: loop yaml nodes with keys "furnaces" from "{@yamlid}": set {ozelfirin::%loop-value%} to yaml value "furnaces.%loop-value%" from "{@yamlid}" if {ozelfirin::*} is set: send "{@prefix}%size of {ozelfirin::*}% fırın yüklendi." to console else: send "{@prefix}İlk çalıştırma yapılıyor." to console else: send "{@prefix}Veritabanı oluşturuldu." to console send "{@prefix}Fırın sistemi çalıştırıldı." to console on unload: if yaml "{@yamlid}" is not loaded: load yaml "plugins/Skript/scripts/ozelfirin_data.yml" as "{@yamlid}" loop {ozelfirin::*}: set yaml value "furnaces.%loop-index%" from "{@yamlid}" to loop-value save yaml "{@yamlid}" send "{@prefix}Fırın sistemi kapatıldı." to console
Sonra garanti olması adına sunucuyu yeniden başlat.
"/fırın <oyuncu>" komutuyla istediğin oyuncuya özel fırından verebilirsin. Fırın, eritilen her bir eşyayı x2 olarak veriyor. 1 ham demir = 2 demir külçesi yani.
Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!