Skript Paylaşımı Yakalamaca Etkinliği

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

pessimistic

Odunlara Vur Vur Vur!
Katılım
2 Temmuz 2021
Mesajlar
40
Elmaslar
6
Puan
6.245
Minecraft
pessiuff

Discord:

six#6186

Gece sıkıntı haliyle Skript ile .yml dosyalarını kullanmayı öğrendiğim bir script oldu hem ileride bana anı hem de başkaları için kaynak olsun diye paylaşmak istedim. Kod düzeni ve tarzı berbat ayrıca aklıma gelen sorunları düzeltsem de gözden kaçanlar olabileceği için oyuncusu olan bir sunucuda kullanımını önermem. Yorum ve önerilere açığım.
Kod:
# Default options to use with .yml configuration
options:
    prefix: &e&lYAKALAMACA &8» &r
    should_send_info: true
    money_reward: 1
    chicken_spawn_radius: 25
    chicken_count: 5
    chicken_lifespan: 3
    load_message: &7&nScript yüklendi!
    unload_message: &7&nScript devre dışı!
    no_spawn_message: &cEtkinlik başlangıç noktası bulunamadı! &f/yakalamaca başlangıç belirle
    set_spawn_message: &cEtkinlik başlangıç noktasi belirlendi!
    teleport_spawn_message: &7Başlangıç noktasına ışınlandın.
    event_started_message: &9Etkinlik başladı!
    event_spawned_chicken: &6Bir tavuk doğdu!
    event_dead_chicken: &6Tavuk öldürüldü!
    event_ended: &fEtkinlik bitmiştir, katılanlara teşekkür iletiyoruz.

# Set spawn function
function setSpawn(p: player):
    set {vars::spawnloc} to location of {_p}
    send "%{globals::prefix}%%{globals::set_spawn_message}%" to {_p}

# Spawn chicken function
function spawnChicken():
    set {_block} to a random element of blocks in radius {globals::chicken_spawn_radius} of {vars::spawnloc}
    
    while ({_block} is not air): # Not a good practice but couldn't find another way
        set {_block} to a random element of blocks in radius {globals::chicken_spawn_radius} of {vars::spawnloc}
    
    set y-coordinate of {_block} to y-coordinate of {vars::spawnloc} + 5
        
    spawn a chicken at {_block}
    set {_chicken} to the last spawned chicken
    set name of {_chicken} to "&0‰"
    broadcast "%{globals::prefix}%%{globals::event_spawned_chicken}%"
    
# Chicken death event
on death of a chicken:
    if {priv::started} is set:
        if name of victim is "&0‰":
            if attacker is a player:
                broadcast "%{globals::prefix}%%{globals::event_dead_chicken}%"
                add {globals::money_reward} to balance of attacker
                if {vars::chicken_count} is greater than 0:
                    remove 1 from {vars::chicken_count}
                    spawnChicken()
                else:
                    delete {priv::started}
                    broadcast "%{globals::prefix}%%{globals::event_ended}%"

# Main command
command /yakalamaca [<text>] [<text>]:
    permission: op
    trigger:
        if arg-1 is "başlangıç":
            if arg-2 is "belirle":
                setSpawn(player)
            if arg-2 is "ışınlan":
                if {vars::spawnloc} is set:
                    teleport player to {vars::spawnloc}
                    send "%{globals::prefix}%%{globals::teleport_spawn_message}%"
                else:
                    send "%{globals::prefix}%%{globals::no_spawn_message}%"
        if arg-1 is "başlat":
            if {vars::spawnloc} is not set:
                send "%{globals::prefix}%%{globals::no_spawn_message}%"
                stop
            set {priv::started} to true
            broadcast "%{globals::prefix}%%{globals::event_started_message}%"
            set {vars::chicken_count} to {globals::chicken_count} - 1
            if {vars::chicken_count} is lower than 1:
                set {vars::chicken_count} to 1
            spawnChicken()
        if arg-1 is "bitir":
            delete {priv::started}
            delete {vars::chicken_count}
            broadcast "%{globals::prefix}%%{globals::event_ended}%"

# Tab completion
on tab complete of "/yakalamaca":
    set tab completions for position 1 to "başlat", "bitir" and "başlangıç"
    if tab arg-1 is "başlangıç":
        set tab completions for position 2 to "belirle" and "ışınlan"

# Load config function
function loadConfig():
    load yml "plugins/Skript/scripts/yakalamaca/ayarlar.yml"
    
    # Prefix
    if yml path "ayarlar.ön-ek" in "ayarlar" doesn't exist:
        set yml value "ayarlar.ön-ek" from "ayarlar" to "{@prefix}"
    # Info messages
    if yml path "ayarlar.bilgi-mesajları" in "ayarlar" doesn't exist:
        set yml value "ayarlar.bilgi-mesajları" from "ayarlar" to "{@should_send_info}"
    #  Money reward
    if yml path "ayarlar.para-ödülü" in "ayarlar" doesn't exist:
        set yml value "ayarlar.para-ödülü" from "ayarlar" to "{@money_reward}"
    #  Tavuk doğma alanı
    if yml path "ayarlar.tavuk-doğma-alanı" in "ayarlar" doesn't exist:
        set yml value "ayarlar.tavuk-doğma-alanı" from "ayarlar" to "{@chicken_spawn_radius}"
    # Chicken count
    if yml path "ayarlar.etkinlik-tavuk-sayısı" in "ayarlar" doesn't exist:
        set yml value "ayarlar.etkinlik-tavuk-sayısı" from "ayarlar" to "{@chicken_count}"
    # Chicken lifespan
    if yml path "ayarlar.etkinlik-tavuk-ömrü" in "ayarlar" doesn't exist:
        set yml value "ayarlar.etkinlik-tavuk-ömrü" from "ayarlar" to "{@chicken_lifespan}"
    # Load message
    if yml path "ayarlar.yüklenme-mesajı" in "ayarlar" doesn't exist:
        set yml value "ayarlar.yüklenme-mesajı" from "ayarlar" to "{@load_message}"
    # Unload message
    if yml path "ayarlar.devre-dışı-mesajı" in "ayarlar" doesn't exist:
        set yml value "ayarlar.devre-dışı-mesajı" from "ayarlar" to "{@unload_message}"
    # No spawnpoint message
    if yml path "ayarlar.başlangıç-yok-mesajı" in "ayarlar" doesn't exist:
        set yml value "ayarlar.başlangıç-yok-mesajı" from "ayarlar" to "{@no_spawn_message}"
    # Set spawnpoint message
    if yml path "ayarlar.başlangıç-belirlendi-mesajı" in "ayarlar" doesn't exist:
        set yml value "ayarlar.başlangıç-belirlendi-mesajı" from "ayarlar" to "{@set_spawn_message}"
    # Teleported spawnpoint message
    if yml path "ayarlar.başlangıç-ışınlanıldı-mesajı" in "ayarlar" doesn't exist:
        set yml value "ayarlar.başlangıç-ışınlanıldı-mesajı" from "ayarlar" to "{@teleport_spawn_message}"
    # Event started message
    if yml path "ayarlar.etkinlik-başladı-mesajı" in "ayarlar" doesn't exist:
        set yml value "ayarlar.etkinlik-başladı-mesajı" from "ayarlar" to "{@event_started_message}"
    # Event chicken spawned
    if yml path "ayarlar.etkinlik-tavuk-doğdu" in "ayarlar" doesn't exist:
        set yml value "ayarlar.etkinlik-tavuk-doğdu" from "ayarlar" to "{@event_spawned_chicken}"
    # Event chicken dead
    if yml path "ayarlar.etkinlik-tavuk-öldü" in "ayarlar" doesn't exist:
        set yml value "ayarlar.etkinlik-tavuk-öldü" from "ayarlar" to "{@event_dead_chicken}"
    # Event ended
    if yml path "ayarlar.etkinlik-bitti" in "ayarlar" doesn't exist:
        set yml value "ayarlar.etkinlik-bitti" from "ayarlar" to "{@event_ended}"
    save yml "ayarlar"
    
    set {globals::prefix} to yml value "ayarlar.ön-ek" from "ayarlar"
    set {globals::should_send_info} to yml value "ayarlar.bilgi-mesajları" in "ayarlar"
    set {globals::money_reward} to yml value "ayarlar.para-ödülü" in "ayarlar"
    set {globals::chicken_spawn_radius} to yml value "ayarlar.tavuk-doğma-alanı" in "ayarlar"
    set {globals::chicken_count} to yml value "ayarlar.etkinlik-tavuk-sayısı" in "ayarlar"
    set {globals::chicken_lifespan} to yml value "ayarlar.etkinlik-tavuk-ömrü" in "ayarlar"
    set {globals::load_message} to yml value "ayarlar.yüklenme-mesajı" from "ayarlar"
    set {globals::unload_message} to yml value "ayarlar.devre-dışı-mesajı" from "ayarlar"
    set {globals::no_spawn_message} to yml value "ayarlar.başlangıç-yok-mesajı" from "ayarlar"
    set {globals::set_spawn_message} to yml value "ayarlar.başlangıç-belirlendi-mesajı" from "ayarlar"
    set {globals::teleport_spawn_message} to yml value "ayarlar.başlangıç-ışınlanıldı-mesajı" from "ayarlar"
    set {globals::event_started_message} to yml value "ayarlar.etkinlik-başladı-mesajı" from "ayarlar"
    set {globals::event_spawned_chicken} to yml value "ayarlar.etkinlik-tavuk-doğdu" from "ayarlar"
    set {globals::event_dead_chicken} to yml value "ayarlar.etkinlik-tavuk-öldü" from "ayarlar"
    set {globals::event_ended} to yml value "ayarlar.etkinlik-bitti" from "ayarlar"

# On load handler to setup script
on load:
    loadConfig()
    
    if {globals::should_send_info} is true:
        send "%{globals::prefix}%%{globals::load_message}%" to console
        
# On unload handler to collect garbage & save
on unload:
    delete {priv::started}
    delete {vars::chicken_count}
    if {globals::should_send_info} is true:
        send "%{globals::prefix}%%{globals::unload_message}%" to console

# six#6186
 
Çok güzel olmuş eline sağlık
 
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