Skript Paylaşımı Özel Ekonomi - Çeşitli yollarla yeni birim kazan, markette takasla!

  • Konuyu Başlatan Konuyu Başlatan projects
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 1.779
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

projects

Kızılsakal Kızıltaş?
Sunucu Sahibi
Katılım
9 Nisan 2016
Mesajlar
523
Elmaslar
365
Puan
14.770


Özel Ekonomi Sistemi

Merhabalar! Bu konu altında sizin için yeni tasarladığım bir sistemden bahsedeceğim. Bu sistem, oyuna yeni bir para birimi daha ekliyor ve bu para birimini kendisine özel ekonomi marketinde takaslayabilmeyi sunuyor. Ayrıca VIP oyuncularınızı da sevindirebilmeniz adına, bu ekonomi marketinde VIP oyuncularınıza belirlediğiniz kadar indirim sağlayabiliyorsunuz.

VIP oyuncularınızın indirimden faydalanabilmesi için VIP gruplarınıza unknown.vip yetkisini vermeniz yeterli.

Kendinize ya da etkinliklerde birisine özel ekonomi eşyasını tek bir komutla verebilirsiniz: /adminekonomi nick miktar

En performanslı arayüzü TuSKe sağladığı için arayüzleri TuSKe aracılığıyla oluşturdum. TuSKe indirmek için:
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.


Sistem %100 yerel variable ile tasarlandı. Yani herhangi bir veri kaydetme işlemi olmadığı için tüy kadar hafif çalışıyor.

Bu Skriptte ekonomi marketine eşya eklemek çok kolay. Tek yapmanız gereken komutun altına şunu eklemek:
Kod:
ekonomiArayuz(player, ARAYÜZ NUMARASI, GEREKLİ EKONOMİ EŞYASI, VERİLECEK EŞYA MİKTARI, VERİLECEK EŞYA ADI)
ekonomiArayuz(player, numara, gerekli eşya miktarı, verilecek eşya mik, eşya adı, "büyü adı", büyü seviyesi)

Örnek:
Kod:
ekonomiArayuz(player, 16, 2, 32, diamond)

Ayrıca bu fonksiyon büyülü eşya takaslarını da sağlıyor. Büyülü eşya vermek için örnek:

Kod:
ekonomiArayuz(player, 16, 2, 32, diamond helmet, "protection", 3)

Sistemin çok da olağandışı bir yanı yok. İlgi çekici yanı ise 83 satırla, tek bir fonksiyonla markete eşya eklemesi ve 1.13.x 1.14.x sürümleri de destekleyebiliyor olması. Eğer sunucunuz 1.13 sürümünün altındaysa sadece " ", " " ile lore alt satırı geçişi yerine bunları || şeklinde düzenlemeniz yeterli.

Ayarlar:
Kod:
#unknown.admin > /adminekonomi komutunu yönetir
#unknown.vip > Ekonomi marketini VIP indirimiyle açmayı sağlar.
#Sistemin çalışması için gereken eklenti: TuSKe, Skript
options:
    bloklakazanim: stone #Hangi bloğu kırarak bu eşya elde edilebilsin?
    esyagorunumu: emerald
    esyaismi: "&6Özel Ekonomi"
    esyalore: "&eFiyakalı! &7Düşürdüğünüz eşya", "&7ekonomi marketinde takas", "&7ile yeni eşyalar", "&7alabilmenizi sağlar."
    komut: /ekonomimarket
    indirimOran: 50 #VIP olanlar yüzde kaç indirimle ekonomi marketi görebilsin?
    dususorani: 75
    mob: zombie #Hangi canavarı öldürerek bu eşya elde edilebilsin?

Kodlar için (
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
):
Kod:
#unknown.admin > /adminekonomi komutunu yönetir
#unknown.vip > Ekonomi marketini VIP indirimiyle açmayı sağlar.
#Sistemin çalışması için gereken eklenti: TuSKe, Skript
options:
    bloklakazanim: stone #Hangi bloğu kırarak bu eşya elde edilebilsin?
    esyagorunumu: emerald
    esyaismi: "&6Özel Ekonomi"
    esyalore: "&eFiyakalı! &7Düşürdüğünüz eşya", "&7ekonomi marketinde takas", "&7ile yeni eşyalar", "&7alabilmenizi sağlar."
    komut: /ekonomimarket
    indirimOran: 50 #VIP olanlar yüzde kaç indirimle ekonomi marketi görebilsin?
    dususorani: 75
    mob: zombie #Hangi canavarı öldürerek bu eşya elde edilebilsin?

on break of {@bloklakazanim}:
    chance of {@dususorani}%:
        drop 1 of {@esyagorunumu} named {@esyaismi} with lore lore({@esyalore})

on death of {@mob}:
    chance of {@dususorani}%:
        drop 1 of {@esyagorunumu} named {@esyaismi} with lore lore({@esyalore})

function ekonomiArayuz(p: player, slotnum: number, gereklimiktar: number, esyamiktari: number, esya: itemtype, enchant: text = "yok", enchantseviye: number = 0):
    if {_p} has permission "unknown.vip":
        remove (rounded {_gereklimiktar}/100*{@indirimOran}) from {_gereklimiktar}
    if {_enchant} is "yok":
        make gui slot {_slotnum} of {_p} with {_esyamiktari} of {_esya} with lore lore(" ", "&cBu eşya %{_p}% tarafından Ekonomi", "&cMarketinden elde edilmiş.", " ", "&7&m----------------------------", " ", "&eÜCRET » &f%{_gereklimiktar}% Ekonomi") to run function esyayiAl({_p}, {_gereklimiktar}, {_esyamiktari}, {_esya}, {_slotnum})
    else:
        #set {_enchantingui} to "%{_enchant}% %{_enchantseviye}%" parsed as enchantment type
        make gui slot {_slotnum} of {_p} with {_esyamiktari} of ("%{_esya}% of %{_enchant}% %{_enchantseviye}%" parsed as itemtype) with lore lore(" ", "&cBu eşya %{_p}% tarafından Ekonomi", "&cMarketinden elde edilmiş.", " ", "&7&m------------------------------", " ", "&eÜCRET » &f%{_gereklimiktar}% Ekonomi") to run function esyayiAl({_p}, {_gereklimiktar}, {_esyamiktari}, {_esya}, {_slotnum}, {_enchant}, {_enchantseviye})

function esyayiAl(p: player, gereklimiktar: number, esyamiktari: number, esya: itemtype, slotnum: number, enchant: text = "yok", enchantseviye: number = 0):
    loop all items in {_p}'s inventory:
        loop-item is {@esyagorunumu}
        name of loop-item is {@esyaismi}
        add item amount of loop-item to {_gereklilikler}
    set {_esyaopt} to "{@esyagorunumu}" parsed as itemtype
    if {_gereklilikler} isn't set:
        make gui slot {_slotnum} of {_p} with {_esyamiktari} of {_esya} with lore lore(" ", "&cHata oluştu!", "&fEnvanterinizde hiç", "&fürün bulunamadı.", " ", "&7Elde etmek için canavar", "&7öldürebilirsiniz ya da", "&7blok kırabilirsiniz.")
    else if {_gereklilikler} is smaller than {_gereklimiktar}:
        make gui slot {_slotnum} of {_p} with {_esyamiktari} of {_esya} with lore lore(" ", "&cHata oluştu!", "&fEnvanterinizde yeterince", "&fürün bulunamadı.")
    else:
        loop all items in {_p}'s inventory:
            loop-item is {@esyagorunumu}
            name of loop-item is {@esyaismi}
            add item amount of loop-item to {_count}
            if {_count} is higher than or equal to {_gereklimiktar}:
                remove {_gereklimiktar} of loop-item from {_p}
                stop loop
        set {_esyaopt} to "{@esyagorunumu}" parsed as itemtype
        if {_enchant} is "yok":
            give {_esyamiktari} of {_esya} with lore lore(" ", "&cBu eşya %{_p}% tarafından Ekonomi", "&cMarketinden elde edilmiş.") to {_p}
        else:
            give {_esyamiktari} of ("%{_esya}% of %{_enchant}% %{_enchantseviye}%" parsed as itemtype) with lore lore(" ", "&cBu eşya %{_p}% tarafından Ekonomi Marketinden", "&celde edilmiş.") to {_p}

command /adminekonomi <player=%player%> <number=1>:
    permission: unknown.admin
    permission message: &c&l[!] &cBu komutu kullanabilmek için &funknown.admin &cyetkiniz olmalı.
    trigger:
        set {_esya} to "{@esyagorunumu}" parsed as itemtype
        arg 1 doesn't have enough space for arg 2 of {_esya}:
            send "&c&l[!] &cKişinin envanterinde yeterince boş yer yok."
            stop
        give arg 2 of {_esya} named {@esyaismi} with lore {@esyalore} to arg 1
        send "&a&l[!] &f%arg 1% &aadlı kişiye &f%arg 2%x &aekonomi eşyası teslim edildi!"

command {@komut}:
    trigger:
        open virtual chest with size 2 named "           Ekonomi Market" to player
        make gui slot 4 of player with "UnknownDev" parsed as offline player's skull named "&eEkonomi Marketi!" with lore lore("", "&7Çevreden toplanılan özel ekonomi", "&7eşyasıyla bu market üzerinde", "&7yeni eşyalar satın alınabilir.", "", "&7VIP sahip oyuncular ise takaslarda", "&e%%{@indirimOran} &7indirim kazanır.")
        ekonomiArayuz(player, 10, 5, 1, diamond helmet, "protection", 4)
        ekonomiArayuz(player, 11, 7, 1, diamond chestplate, "protection", 4)
        ekonomiArayuz(player, 12, 6, 1, diamond leggings, "protection", 4)
        ekonomiArayuz(player, 13, 10, 3, villager spawn egg)
        ekonomiArayuz(player, 14, 24, 1, diamond pickaxe, "efficiency", 6)
        #Arayüzün 15. numarasına 1 tane keskinlik 6 sı olan elmas kılıç ekle (ücret = 2 ekonomi eşyası)
        ekonomiArayuz(player, 15, 35, 1, diamond sword, "sharpness", 6)
        #Arayüzün 16. numarasına 32 tane elmas ekle (ücret = 2 ekonomi eşyası)
        ekonomiArayuz(player, 16, 2, 32, diamond)
        #Arayüzün 17. numarasına 16 tane zümrüt ekle (ücret = 3 ekonomi eşyası)
        #ekonomiArayuz(player, 17, 3, 16, emerald)
        ekonomiArayuz(player, 17, 1, 3, diamond hoe, "sharpness", 2)

function lore(lines: texts) :: texts:
    return {_lines::*}

on anvil rename:
    name of event-item is {@esyaismi}
    message "&c&l[!] &cBu eşya isimlendirilemez."
    cancel event
on craft:
    name of player's cursor item is {@esyaismi}
    message "&c&l[!] &cBu eşya üretimde kullanılamaz."
    cancel event
 
Son düzenleme:
Çok beğendim fakat eksikleri var, o zümrütü adam gider başka yerde kullanır.
SkyBlock sunucusu için değil sanırım bu skript.
 
Çok beğendim fakat eksikleri var, o zümrütü adam gider başka yerde kullanır.
SkyBlock sunucusu için değil sanırım bu skript.
Zümrüt yerine kağıdı seçersiniz. Ya da on anvil rename ve on craft kontrollerinde bu isime ait bir eşya varsa olayı iptal edersiniz, sorun çözülür. Bunlar için de ayrı addonlar gerekiyor diye eklemedim.
 
Zümrüt yerine kağıdı seçersiniz. Ya da on anvil rename ve on craft kontrollerinde bu isime ait bir eşya varsa olayı iptal edersiniz, sorun çözülür. Bunlar için de ayrı addonlar gerekiyor diye eklemedim.
Bu skript sunucumda kullanamak çünkü Hard SkyBlock açıcağım.
Survival sunucularında çok işe yarayacak bir skript BAŞARILAR...
Gönderi otomatik olarak birleştirildi:

 
Yorumun aklıma takıldı ya, kullanacak arkadaşlar eşyanın anvilde yeniden isimlendirilmemesi ve craftta kullanılamaması için şu kodu da eklesinler:
Kod:
on anvil rename:
    name of event-item is {@esyaismi}
    message "&c&l[!] &cBu eşya isimlendirilemez."
    cancel event
on craft:
    name of player's cursor item is {@esyaismi}
    message "&c&l[!] &cBu eşya üretimde kullanılamaz."
    cancel event
 
Başarılı...​
 
Skript Beğendim Kardesım Ellerıne Sağlık Ama Bir Kaç eskiği var ama emeğe saygı Başarlı 5 yıldız <3
 
@Unknown skriptin reloadlanma süresi çok uzun. Kısaltmak için sana bir tavsiye vereyim.

Kod:
make gui slot 0 of player with diamond named "*" with lore "*"
Kod:
give 3 of diamond named "*" with lore "*" to player

Bunun gibi yerlerde parantez kullanırsan reloadlanma süresinde çok ciddi biz azalma olacak. Yani bunu kullanmak yerine şöyle kullanmalısın.

Kod:
make gui slot 0 of player with (diamond named "*" with lore "*")
Kod:
give 3 of (diamond named "*" with lore "*") to player

Birde keşke eşya ekleme yerlerini yaml ile yapsaydın. İyi geceler..
 
Gayet kaliteli skript olmuş. Eline koluna sağlık. Başarılar dilerim.
 
Güzel bir skript olmuş eline sağlık
 
Galiba sizin sunucunuz vardı ve kapanmıştı. Tam olarak bilmiyorum kapanmadıysa büyük ihtimalle büyük kitleleri hak ediyorsunuz...
 
Güzel skript fakat şu skript kadar java üzerine yönelseniz daha büyük işler başarabilirsiniz.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst