AxiTR Bilisim
  1. Daha güzel eğlenceli bi ortam için kayıt olup yorumlarınızı esirgemeyin.

Skript Ders -1

Konusu 'Sunucu Skriptleri' forumundadır ve MHwATHor tarafından Kas 19, 2015 başlatılmıştır.

  1. MHwATHor

    MHwATHor Ağaç Yumruklayıcı

    Katılım:
    Kas 18, 2015
    Mesajlar:
    15
    Beğenileri:
    3
    Arkadaşlar İstek Gelirse 2. Sinide hazırlıyacağım
    Skript
    Skript plugini, sunucunuzda kolaycana mekanikler, komutlar oluşturmanızı sağlar ve bunu yaparken ingilizce dilini kullanır.Ayrıca skript'e ek olarak eklentilerde bulunmaktadır(AuthMe SkAddon, ExtrasSK, PirateSK, RandomSK, SkExtras, SkQuery, SkRayFall, SkSpigotAdditions, SpactateHook, Umbaska, WildSkript).Bu eklentiler skript ile daha fazla olay yaratmanızı sağlar.

    İndirme ve kurulum
    Buraya tıklayarak skript'in kendi sayfasına gidin.Ardından son version skript pluginini indirin, isteğe ve versiona bağlı olarak geçmiş versionlarıda indirebilirsiniz.Skript 1.7.2 şuan için son versiondur ve 1.7.2+ versionlardada çalışmaktadır.İndirdiğimiz plugini "sunucudosyanız/plugins" dizinine atın ve sunucunuz açıksa yeniden başlatın, değilse sunucunuzu açın.Bu işlemi yaptıktan sonra plugins klasöründe Skript klasörü oluşacaktır ("sunucudosyanız/plugins/Skript").

    Skript'e script yükleme
    Skript pluginini kurduysanız "sunucudosyanız/plugins/Skript" dizininde yani plugins klasörü içinde bulunan Skript klasörüne giriniz ardından script klasörüne girin ve scriptinizi oraya atın.Eğer elinizdeki Skript kod halindeyse yeni metin dosyası oluşturun ve içine kodunuzu yapıştırın.Farklı kaydet deyin ve uzantı seçme yerinde ki kısmı(Dosya türü) "all types" yapın.Dosya adını istediğiniz şekilde koyun (başına Tre(-) gelmemeli skript başında tre olan dosyaları çalıştırmaz) ve sonuna ".sk" ekleyin.Örneğin "benimkodum.sk".

    Script oluşturma
    Script oluşturma, script yükleme ile aynı şekildedir.Skript klasörüne girin oradan script klasörüne geçin ve yeni metin dosyası oluşturun.Kodlarınızı yazın ve sonu .sk ile bitecek şekilde kaydedin.Skript pluginine reload attığınız zaman (/skript reload <dosyaadı> yada /skript reload all> hazırladığınız script sunucunuza işleme açık hale gelecektir.

    Script hazırlama
    Skript plugininde kullanabileceğimiz 4 ana unsur vardır.Bunlar events, conditions, effects ve expressions olarak geçer.
    Events: Eventsları olay olarak düşünün türkçeside zaten olay demektir.Eventslar yapılan bir işlemi ele alır.Örneğin oyuncu komut yazdığında, oyuncu kapı açtığında, oyuncu chatde birşey yazdığında, oyuncu öldüğünde, yaratık doğduğunda gibi olaylardır.Daha iyi anlamanız için günlük hayattan örnek verecek olursak sizin kapının ziline basmanız bir olaydır.
    Conditions: Conditions koşulu ifade eder.Örneğin az önce Events tanımında yaratık doğduğunda olayını ele almıştık, conditions ilede örneğin hangi mobun doğduğunu öğrenebiliyoruz yada günlük hayattan örnek verelim, yine event bölümünde verdiğimiz örnek gibi kapı ziline basmak bir olaydı, peki bu zile kim bastı? işte conditionsda bu tür soruları sormamızı sağlıyor.Zile basan İnsansa, ölen kişi zombi ise, oyuna giren kişinin parası yüzden fazlaysa gibi..
    Expressions: Expressions ifadelerdir.Bunu skript ile zaman geçirdikçe anlayacaksınız.Kısaca değinmek gerekirse expressionslar bir olay yada işlem yaratmaz.Size işlemlerde kullanabileceğiniz ifadeler verir.Örneğin oyuncunun parasını öğrenceksiniz bunun için "player's money" ifadesini kullanmanız gerekiyor ama sadece bunu yazmak işe yaramaz.Bunu bir işleme eklemeniz gerekmekte örneğin mesaj gönderme işleminin içine ekleyebilirsiniz.Dediğim gibi bunlara fazla takılmayın ilerde anlayacaksınız.
    Effects: Effectsler bir işlem gerçekleştirir.Örneğin oyuncuya mesaj atar yada sunucudaki herkesi öldürebilir.Skriptde en çok kullanacağımız unsur tartışmasız effectslerdir.

    Şimdi 4 ana unsurumuzu anladığınızı tahmin ediyorum ve sıradaki öğrenmemiz gereken yere geçiyorum.
    Sıralama: Events, conditions, expressions ve effectsleri tahmin edeceğiniz üzere kafamıza göre rastgele yerlere yazamıyoruz.Size direk sıralamayı vereceğim fakat fazla takılmayın sıralamayı örnekler ile öğreneceğiz.Dediğimiz gibi 4 ana unsurumuzun sıralaması Events>Effects şeklindedir.Bir events(olay) gerçekleşir ve o olay gerçekleştiğinde oluşacak effects (işlem gerçekleştirme) devreye girer.Conditions ve expressionslar ise effectsin içinde kullanılır.Kafanızın karıştığının farkındayım bunları örnekler ile pekiştirelim(Örnekleri gündelik hayattan örnek vereceğim).Unutmadan gerçekleşecek olaylar yukarıdan aşağıya doğru gider ilk en üstdeki olay gerçekleşir sonra onun altındaki ve ondan sonraki diye gider.
    Kapı çaldığında ----> Bu bir eventdır.
    çalanın adı kaan ise ---> Bu işlemde 2 unsur gerçekleşir conditions ve expressions.Çalanın ve ise kısmı Conditionsdır, insanın adı ise expressionsdır.
    öldür ---> Buda effectsdır.

    Şimdi yazdığımız gündelik hayattan örneği inceleyelim.
    Kapıyı kimler çalabilir = insanlar
    Kimin ismi olur = insanların
    Çalan kişinin adı = insanların adı olduğu için bu işlemi sorgulatabiliyoruz.Örneğin çalan yaratığın adı diye sorgulatamazdık çünkü yaratıklar kapı çalmaz yatağınızın altında saklanır :)
    Öldür = Şimdi Kapıyı insanın çaldığını biliyoruz, çalan kişinin adınıda biliyoruz, öldür dediğimizdede kimin ölceğini anlayabiliyoruz.Mesela çalan insanın adı mehmet olsaydı bu olay gerçekleşmezdi.

    Şimdide skriptin kendi kodlarıyla örnek verelim.
    command /selam ----> /selam komutu girildiğinde (bu bir eventtır, ve eventı gerçekleştiren kişi bellidir)
    send "sanada selam" to player ----> bu koddada effect ve expressions bulunuyor."send 'sanada selam' to " kısımları effects oluyor.player kısmı ise expressions oluyor.Effectsler dediğimiz gibi işlem gerçekleştiriyordu ve mesaj atma işlemi gerçekleştirdi, player kısmı ise mesajın kime gideceğini seçmemize imkan verdi.

    Şimdi script yazmanın ana kuralına gelelim.Events en üste gelir demiştik ondan sonrada effects gelir.Peki bunları nasıl yazacağız?
    Eventlar satır başlarına yazılır sonrasında ise tab tuşuna basarak boşluk bırakılır ve effect eklenir.
    Kod:
    on login:
    send "Sunucuya basarılı sekilde giris yaptin." to player
    Ayrıca her eventdan sonra iki nokta ":" gelir.Bunun sebebini yukarıdaki örnekte göstereyim.On login eventı sunucuya girince anlamına gelir.Şimdi sunucuya girince nelerin gerçekleşeceğini göstermek için "on login:" yapıyoruz.Gündelik hayatdan örnek vermemiz gerekirse
    Kod:
    Apartmanda oturan kişiler:
    ahmet, osman, mahmut, şaban
    Şimdide işlem sırasına geçelim ve onuda yeni örnekle öğrenelim.
    Kod:
    on login:
    send "1" to player
    send "2" to player
    send "3" to player
    send "Sayı sayma işlemi bitti." to player
    Yukarıdaki kodda sunucuya giriş yapıldığında oyuncuya 1,2,3 ve sayı sayma işlemi bitti mesajı yollanıyor.Dikkat ettiyseniz yukarıdan aşağıya doğru yükseliyor peki neden? Skriptde işlem öncelik sıralası yukarıdan aşağıya doğru işler.Yani kodumuzda ilk "1" mesajını yolluyor sonrasında "2" sonrasındada "3" ve "sayı sayma işlemi bitti" mesajı gönderiliyor.

    Tek bir eventda eklememiz gereken koşul var.Bu event ise "command" dır.Command komutu bizim komut oluşturmamızı sağlıyor ve eventdan sonra "trigger:" geliyor.Bunu örnekde göstereyim ki daha rahat anlayın.
    Kod:
    command /selam:
    trigger:
    send "sanada selam" to player
    bu event "command" olmasaydı trigger kısmına direk "send 'sanada selam' to player" gelirdi.Fakat "command" eventındaki koşulumuz "trigger:" gelmesi.Bunu unutmayın aksi halde komutunuz çalışmaz.

    Şimdide gelelim iki nokta olayını biraz açmaya.İki nokta skriptde gerçekleşen olaydan sonra gelecekleri ifade eder.Bunu direk örnekler ile göstereceğim.
    Kod:
    on death:
    victim is player:
    send "ölen kişi oyuncu" to victim
    victim is zombie:
    send "ölen kişi zombi" to victim
    victim is skeleton:
    send "ölen kişi iskelet" to victim
    Eventımız "on death" yani ölünce anlamına geliyor.Sonrasında ise "victim is player:" geliyor.Burada iki noktaya dikkat edelim eğer ölen kişi oyuncu ise "send 'ölen kişi oyuncu' to victim" işlemini uygular.Ölen kişi oyuncu değilse o işlemi görmezden gelir ve altdaki kısma gelir buradada ölen kişi zombi ise diye sorgulattık.Eğer ölen kişi zombi ise "send 'ölen kişi zombi' to victim" işlemini uygulayacaktır ve ölen kişiye ölen kişi zombi mesajını yollar.Sonrasında yine aşağıdaki satıra geçer ve ölen kişi iskeletmi diye sorgular.Ölen kişi zombi olduğuna göre ölen kişinin iskelet olma şansı yok ve bu yüzden bunuda es geçer.

    Şimdi öğreneceğimiz if ve else.İf "eğer" else ise "değilse, başkaysa" anlamına gelir.Yine bunu örnekle görelim.
    Kod:
    on death:
    if victim is player:
    send "ölen kişi oyuncu" to victim
    else:
    send "ölen kişi oyuncu değil" to victim
    İki noktanın işlevini öğrenmiştik if ve else kullandığımız her şeyin sonunada iki nokta gelir.Şimdi yukarıdaki kodda dedikki
    if victim is player: --> Eğer ölen kişi oyuncu ise, send işlemini uygula.
    Else: --> Değilse(Ölen kişi oyuncu değilse), kendi iki noktasının altındaki işlemi gerçekleştirecek.
    Yeni bir örnek vereceğimki daha iyi anlayın.
    Kod:
    on death:
    if victim is player:
    send "ölen kişi oyuncu" to victim
    else:
    if victim is zombie:
    send "ölen kişi zombi" to victim
    else:
    send "ölen kişi oyuncu yada zombi değil" to victim
    Burdada dedikki ölen kişi oyuncu ise iki noktadan sonra gelen işlemi gerçekleştir, değilse "if victim is zombie:" diye sorgula yani ölen kişi oyuncu değilse, ölen kişi zombi ise dedik.Eğer ölen kişi zombi ise "if victim is zombie:" işleminin altındaki olay gerçekleşir.Eğer o da değilse "else:" nin altındaki işlem gerçekleşir.
    Uzun kodlarda bu işlem çok fazla tab kullanmamıza neden olur ve bu yüzden skript bize kolaylık sağlıyor.if else olayını aşağıdaki koddaki gibide sorgulatabilirsiniz..
    Kod:
    on death:
    if victim is player:
    send "ölen kişi oyuncu" to victim
    else if victim is zombie:
    send "ölen kişi zombi" to victim
    else if victim is skeleton:
    send "ölen kişi iskelet" to victim
    else:
    send "ölen kişi oyuncu, zombi yada iskelet değil" to victim
    Şuana kadar skriptin mantığını ve nasıl yapacağımızı öğrendik.Şimdi ise eventlardan birkaç örnek vereceğim.

    Eventlara örnekler
    • At Time (zaman)
      • Bu event zaman X olduğunda işlemeleri gerçekleştirir.
      • Kod:
        at 18:00
        at 7am in "world"
    • On Ben Enter (Oyuncu yatağa yattığında)
      • Bu event oyuncu yatağa yattığında işlemeleri gerçekleştirir.
      • Kod:
        on bed enter:
        message "Yataga yattiniz!"
    • On Bed Leave (Oyuncu yataktan kalktığında)
      • Bu event yatakta yatan oyuncu, yataktan kalkınca işlemeleri gerçekleştirir.
      • Kod:
        on bed leave:
        message "Yataktan kalktiniz"
    • On Block Damage (Oyuncu blok kırmaya çalıştığında)
      • Bu event blok kırmaya başladığımızda işlemleri gerçekleştirir.
      • Kod:
        on block damage:
        set event-block to air

    Tüm event listesi için:
    http://www.skunity.com/events
    Tüm Conditions listesi için:
    http://www.skunity.com/conditions
    Tüm Effects listesi için:
    http://www.skunity.com/effects
    Tüm Expressions listesi için:
    http://www.skunity.com/expressions

    Sormak istediğiniz sorular varsa bu konu altına yazabilirsiniz, elimden geldiğince cevaplamaya çalışacağım.
     
    #1
    ErenLaEren ve Unforgiven bunu beğendi.
  2. Unforgiven

    Unforgiven Yönetici
    Yönetici

    Katılım:
    Mar 15, 2014
    Mesajlar:
    135
    Beğenileri:
    62
    Konu Skript bölümüne taşınmıştır. İyi forumlar. :)
     
    #2
  3. ErenLaEren

    ErenLaEren Elmas Madencisi

    Katılım:
    Tem 26, 2016
    Mesajlar:
    21
    Beğenileri:
    4
    Çok yararlı bi konu çok beğendim. Emeğinize sağlık. 2. Gelirse çok mutlu olurum. :)
     
    #3

Sayfayı Paylaş