[REHBER] Dev Skript Rehberi

Nasıl Olmuş ?

  • Çok İyi

    Kullanılan: 235 69.7%
  • İyi

    Kullanılan: 57 16.9%
  • Eh İşte

    Kullanılan: 21 6.2%
  • Kötü

    Kullanılan: 24 7.1%

  • Kullanılan toplam oy
    337

Evantorz

Kömür Madencisi
Mesajlar
113
En iyi cevaplar
0
Beğeniler
76
Puanları
240
Merhaba Arkadaşlar,
Yaklaşık 1 senelik aradan sonra foruma geri döndüm şimdilerde skript pluginiyle uğraşıyorum.Bu plugini kullanmak,skript yazmak isteyen arkadaşlar için bir rehber hazırlayayım dedim.Bazı Yerler Alıntıdır.İyi Forumlar :)
İlk Olarak Skript Pluginiyle Başlayalım "Plugin Yapma Plugini" de diyebileceğimiz pluginde eğer İngilizceniz iyiyse çok iyi işler yapabilirsiniz.Eğer benim İngilizcem yok diyorsanız üzülmeyin gayet basit plugin.Neyse fazla uzatmayayım :) Plugin Linki: http://dev.bukkit.org/bukkit-plugins/skript/
Peki indirdik sonra ne yapacağız? Eklentiyi sunucumuzdaki "plugins" kısmına koyacağız ve daha sonra sunucuyu başlatacağız. "plugins" bölümüne "Skript" isiminde bir dosya gelecek, onu açın ve oradan "scripts". Orada örnek skriptler görebilirsiniz, fakat onlar aktif değildir eğer bir skriptin isminin başında - var ise bunlar aktif değildir. Silerek aktif yapabilirsiniz. Tavsiyem bunları silmeniz arkadaşlar hepsini silin. Daha sonra yeni bir not defteri oluşturun ve bunu farklı kaydederek adını "deneme.sk" yapın. İlk isim önemli değil fakat ".sk" kısmı şarttır arkadaşlar yoksa Skript bunu okumaz. Şimdi kodlama kısmına geldik tabi
İlk Olarak Eventlerle Başlayalım.Event Dediğimiz Şeyler Olaylardır.Oyuncunun Ölmesi,Bir Komut Yazılması,Yatması,Şimşek Çakması vs. her şey evente girer.Unutmadan türkçe karakter kullanmayın skriptiniz çalışmaz.Ayrıca http://njol.ch/projects/skript/doc/events/ adresinden detaylı bilgi alabilirsiniz(ingilizcedir)Şimdi nasıl kodlama yapacağımıza geçelim.Kodlama için kullanabileceğimiz bir kaç program var, tavsiyem Notepad++'tır Linki isterseniz not defteri ilede kodlayabilirsiniz ama biraz sıkıntı yaratabilir. Evet Notepad++ ile açtık şimdi boş bir yazı ekranı göreceğiz. İlk kodumuzu yazalım!
EVENTLER [Speaw'ın başka bir forumdaki konusundan alıntıdır(düzenlenmiştir)]:​
Eventlerin Tam Listesi: Link
At Time

Belirtilen zaman geldiğinde olacaklar.
Örnek:
Kod:
at 18:00:
veya
at 7am in "world":
On Bed Enter/Leave
Oyuncu yatağa yattığında veya kalktığında olacaklar.
Örnek:
Kod:
on bed enter:
    execute player command "/me Yataga uzanir"
on bed leave:
    execute player command "/me Yataktan kalkar"
On Block Damage
Oyuncu bir bloğu kırmaya başladığında olacaklar.
Örnek:
Kod:
on block damage:
     trigger:
        send "Blok Kirmaya Başladin" to player
On Break / Mine
Oyuncu bir bloğu yada bir madeni kırdığında olacaklar. Örnek(taşın lava düşmemesi için bir skript):
Kod:
on break of stone: #---Oyuncu Taş Kırdığında
    cancel event #--- Olayı İptal Et
    set block to air #--- Bloğu Hava Yap
    give player 1 cobblestone #---Oyuncuya Kırıktaş Ver
On Bucket Empty/Fill
Oyuncu kovayı boşalttığında veya doldurduğunda olacaklar. Örnek:
Kod:
on bucket empty: #---Kovayı Boşalttığında
    execute player command "/me Kovadakı suyu yere döker. #---Oyuncuya "/me Kovadakı suyu yere döker." komutunu yazdır.
on bucket fill: #---Kovayı Doldurduğunda
    execute player command "/me Kovayı doldurur. #---Oyuncuya "/me Kovayı doldurur." komutunu yazdır.
On Burn
Oyuncu yakarak biryeri yok ettiğinde olacaklar.
Kod:
on burn:
    send "Etrafı Yakmamalısın" to player
On Chat
Oyuncu konuştuğunda olacaklar.
Kod:
on chat:#---Oyuncu Chat'e Yazı Yazdığında
    cancel event#---Olayı İptal Et
On Click
Oyuncu bir yere tıkladığında olacaklar.
Örnek:
Kod:
on click:#---Oyuncu Tıkladığında
on rightclick holding a fishing rod:#---Bir Oltayla Sağ Tıkladığında
on leftclick on a stone or obsidian:#---Bir Taşa Veya Obsidyene Sağ Tıkladığında
on click with a sword:#---Kılıçla Biryere Tıkladığında
On Connect
Oyuncu sunucuya bağlandığında olacaklar. Örnek:
Kod:
on connect:
    player doesn't have permission "VIP"
    number of players is larger than 20, kick the player due to "Son 5 Kisilik Yer VIP'lere Ayrılmıstır."
On Craft
Oyuncu bir eşya yaptığında olacaklar. Örnek:
Kod:
on craft:
    message "Bir eşya craftladınız."
On Death
Ölündüğünde olacaklar. Örnek:
Kod:
on death of a zombi:
broadcast "%entity% %world% de zombi tarafindan öldürüldü!"
On Dispense
Dispenser bir item attığında olacaklar.
On Drop
Oyuncu bir eşya bıraktığında olacaklar
On Explode
Bir patlama olduğunda (tnt/creeper) olacaklar.
On First Join
Oyuncu oyuna ilk giriş yaptığında olacaklar. Örnek:
Kod:
on first join:
send "<red> Baslangic esyalarini aldiniz." to player
give stone sword to player
give stone pickaxe to player
give stone axe to player
give stone shovel to player
give 10 apple to player
On Fishing
Oyuncu balık tuttuğunda.
On Flow
Su/Lav etrafa dağıldığında.
On Fuel Burn
Fırına kömür koyulup yandığında.
On Gamemode Change
Oyuncu gamemode u değiştirdiğinde.
On Heal
Oyuncu hjerhanig bir şekilde iyileştirildiğinde (canı arttığında)
On Hunger Meter Change
Açlık değiştiğinde olacaklar.
On Item Spawn
Bir eşya yaratıldığında olacaklar.
On Join
Giriş yapıldığında olacaklar. Örnek:
Kod:
on join:
    message "Bu harika sunucuya holsgeldin!"
    broadcast "%player% sunucuya giriş yaptı!"
On Kick
Oyuncu kicklendiğinde olacaklar.
On Leaves Decay
Yapraklar ağaçtan ayrılıp çürüdüğünde olacaklar.
On Level Change
Oyuncunun leveli değiştinde olacaklar.
On Lightning Strike
Şimşek çaktığında olacaklar.
On Move On
Oyuncu belirtilen blokta yürüdüğünde olacaklar.
On Pick Up
Oyuncu bir item aldığında olacaklar.
On Pig Zap
Bir domuza şimşek çakıp zombi pigman e dönüştüğünde olacaklar.
On Piston Extend
Bir piston çalıştığında.
On Piston Retract
Bir piston kapandığında.
On Place
Oyuncu bir blok yerleştirdiğinde olacaklar.
On Portal
Oyuncu end portalı yada nether portalına girdiğinde olacaklar.
On Portal Create
Bir nether portalı yaratıldığında olacaklar.
On Portal Enter
Portala girildiğinde olacaklar.
On Pressure Plate / Trip
Oyuncu pressure plate e bastığında olacaklar.
On Quit
Oyuncu oyundan çıktığında olacaklar.
On Respawn
Oyuncu respawn olduğunda olacaklar.
On Script Load
Bir script yüklendiğinde olacaklar.
On Server Start/Stop
Sunucu başladığında veya sonlandığında olacaklar.
On Shoot
Oyuncu vurulduğunda (yumurta,ok,kar vb.)
On Sign Change
Tabela değiştirildiğinde olacaklar.
On Smelt
Bir maden eritildiğinde olacaklar.
On Spawn
Canavarlar spawnlandığında olacaklar.
On Spawn Change
Oyuncunun başlangıç yeri değiştirildiğinde.
On Sprint Toggle
Oyuncu koşmaya başladığında veya durduğunda olacaklar.
On Tame
Oyuncu bir kedi veya kurdu evcilleştirdiğinde olacaklar.
On Teleport
Oyuncu teleportlandığında olacaklar.
On Throwing of an Egg
Oyuncu yumurta fırlattığında olacaklar.
On Tool Change
Oyuncu item slotu değiştirdiğinde olacaklar. ( mouse tekerleği veya 1 den 9 a kadar sayılar)
On Vehicle Create
Bir oyuncu bot veya minecart yarattığında olacaklar.
On Vehicle Damage
Bot veya minecart zarar aldığında olacaklar.
On Vehicle Destroy
Bot veya minecart yok edildiğinde olacaklar.
On Vehicle Enter
Bot veya minecart a binildiğinde olacaklar.
On Vehicle Exit
Bot veya minecarttan çıkıldığında olacaklar.
On Weather Change
Hava değiştirildiğinde olacaklar.
On World Init
Bir world e giriş yapıldığında olacaklar.
On World Load
Bir world yüklendiğinde olacaklar.
On World Save
Bir world kaydedildiğinde olacaklar.
On Zombie Break Door
Bir zombi kapıyı kırdığında olacaklar.
Eventlerin Tam Listesi: Link
Evet farkettiğiniz gibi #'ler commenttir kısaca Skript bu yazıları görmez. Bir kodu yazdığımızda CTRL + S ile kaydedelim ve sunucuda "skript reload skriptadi.sk" yazalım ve ardından skriptin çalışıp çalışmadığını deneyebiliriz.
Yazıların başına ve sonuna " koymak zorunludur arkadaşlar. Peki şunu farkettnizmi, her ":"'den sonra alttaki satırda bir defa TAB tuşuna basıyoruz. Sakın bunu unutmayın arkadaşlar çok değerli bir bilgidir eğer bu işlem yapılmazsa kodda hata olacaktır deneyebilirsiniz.
İF ve ELSE
İf ve Else'yle devam edelim.İf dediğimiz ifade "eğer" anlamındadır.Örneğin if player has diamond oyuncu elmasa sahipse gibi bir anlamdadır.Else'de İf'te belirtilen olayın gerçekleşmediği zamanı anlatır.Bir kodla örnek verirsek:
Kod:
command /evkaydet:
    trigger:
        set {evkoordinat.%player%} to player coordinates #---{evkoordinat.%player%} dosyasını oyuncunun koordinatlarına ayarla.(yanlış olabilir koordinatla ilgili bilgim yok)
command /ev: #------/evkaydet komutu yazıldığında
    trigger: #------Şunları Gerçekleştir gibi bir şey sanırım bunu çeviremedim :)
        if {evkoordinat.%player%} is not set #------{evkoordinat.%player%} dosyası belirlenmemişse
            send "Önce /evkaydet Ile Ev Belirlemelisiniz" to player #------Oyuncuya Önce /evkaydet Ile Ev Belirlemelisiniz Mesajını At
        else #------Eğer ifte belirtilen durum geçerli değilse yani bu durumda {evkoordinat.%player%} dosyası belirlenmişse
            tp player {evkoordinat.%player%} #-------Oyuncuyu {evkoordinat.%player%} notkasına ışınla.
            send "Evinize Isinlandiniz" to player
Yukarıdaki örnek koddan anlaşılmıştır herhalde if ve else.Eğer aklınıza gelen başka anlatılacak şeyler varsa lütfen yorum yazın.Ayrıca güzel Bir script fikriniz varsa mesaj atabilirsiniz.
 


Son düzenleme:

Evantorz

Kömür Madencisi
Mesajlar
113
En iyi cevaplar
0
Beğeniler
76
Puanları
240
Alıntının nasıl Yapıldığını bilseydim yapardım :) Yorum Yapan Herkese Teşekkürler. Yukardaki alıntı işaretini farkettim ama nasıl kişi ekliyeceğimi anlamış değilim :D[DOUBLEPOST=1404138644,1404138449][/DOUBLEPOST]Neyse Öğrendim :D
WolfyCZPluginer' Alıntı:
Saol :D
Hypinez' Alıntı:
Skript bilmeyen veya öğrenmek isteyenlere iyi bir rehber olacağından eminim.
Sende Saol ^^.
Secret_wither' Alıntı:
Senin sayende skript öğrendim!
İlk skript ime göre nasıl olmuş?

On Kick:
message "Yetkili Biri Tarafından Kicklendiniz!"
BroadCast " %player% gecici olarak sunucudan uzaklaştırılmıştır...
Güzel olmuş ama message çalışmaz sadece broadcast yeterli :)[DOUBLEPOST=1404199398][/DOUBLEPOST]
Senin sayende skript öğrendim!
İlk skript ime göre nasıl olmuş?

On Kick:
message "Yetkili Biri Tarafından Kicklendiniz!"
BroadCast " %player% gecici olarak sunucudan uzaklaştırılmıştır...
oyuncu serverda değilken mesaj atsan ne değişirki :D
 
Son düzenleme:

Evantorz

Kömür Madencisi
Mesajlar
113
En iyi cevaplar
0
Beğeniler
76
Puanları
240

aresada07

Taş Madencisi
Mesajlar
86
En iyi cevaplar
0
Beğeniler
1
Puanları
0
Rehberin gerçekten harika olmuş.
Anlamadığım 2 şey var cevaplarsan sevinirim:
1."sktipt reload skriptadi.sk" bunu nereye yazmamız gerekiyor.
2.Başarıyla skripti yaptim diyelim.Ben bu skripti nasil normal bir plugin e çeviricem.örn: worldedit
 

Evantorz

Kömür Madencisi
Mesajlar
113
En iyi cevaplar
0
Beğeniler
76
Puanları
240
1.yi oyunda başına / koyarak veya konsoldan / süz yazabilirsin
2.Skripti plugine çeviremezsin yazdığın skriptler skript pluginiyle çalışır
 

aresada07

Taş Madencisi
Mesajlar
86
En iyi cevaplar
0
Beğeniler
1
Puanları
0
Çok teşekkürler bu gün ilk skriptimi yazıcam
 

Evantorz

Kömür Madencisi
Mesajlar
113
En iyi cevaplar
0
Beğeniler
76
Puanları
240
Eğer sormak istediğin şeyler varsa yada bir fikrin mesaj atabilirsin
 

aresada07

Taş Madencisi
Mesajlar
86
En iyi cevaplar
0
Beğeniler
1
Puanları
0
Skript pluginini yükledim ve sunucuyu başlattım fakat dosya falan gelmedi.2 kere denedim hala gelmedi ne yapmam lazım?
 

Evantorz

Kömür Madencisi
Mesajlar
113
En iyi cevaplar
0
Beğeniler
76
Puanları
240
Skript pluginini plugins klasörüne attiysan calismamasi cok zor.Hata vs. Birsey veriyor mu?
 

aresada07

Taş Madencisi
Mesajlar
86
En iyi cevaplar
0
Beğeniler
1
Puanları
0
Hayır sadece başlata basıyorum sunucu yükleniyor sonra plugins e giriyorum fakat skript.jar hala duruyor orda yalnız başına.Çok heves etmiştim ya :(
 

aresada07

Taş Madencisi
Mesajlar
86
En iyi cevaplar
0
Beğeniler
1
Puanları
0
Hypniez kardeşim benim problemimin çözümünü biliyor musun ya ben de skript yazıcam fakat yapamıyorum.
 

Üst