5 değil 1 satırda da yapılabilir (fonksiyon). 5 satırda olması nesne tabanlı olmasından kaynaklı. Hız için daha detaylı kodlamak için vesaire şeklinde çoğaltılabilir sebepleriSk ile 3 satırda yapabildiğim şeyi neden java ile 5 satırda yapıyım ?
5 değil 1 satırda da yapılabilir (fonksiyon). 5 satırda olması nesne tabanlı olmasından kaynaklı. Hız için daha detaylı kodlamak için vesaire şeklinde çoğaltılabilir sebepleriSk ile 3 satırda yapabildiğim şeyi neden java ile 5 satırda yapıyım ?
5 değil 1 satırda da yapılabilir (fonksiyon). 5 satırda olması nesne tabanlı olmasından kaynaklı. Hız için daha detaylı kodlamak için vesaire şeklinde çoğaltılabilir sebepleri
Skript aslında tam olarak dil değil ama öyle.Java tabii ki de daha iyi, ancak önce skript gibi basit dillerden başlamak lazım değil mi?
anlamlı ve iyi bir şey yapmısınMerhaba 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: 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 Skript: 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:
On Bed Enter/LeaveKod:at 18:00: veya at 7am in "world":
Oyuncu yatağa yattığında veya kalktığında olacaklar.
Örnek:
On Block DamageKod:on bed enter: execute player command "/me Yataga uzanir" on bed leave: execute player command "/me Yataktan kalkar"
Oyuncu bir bloğu kırmaya başladığında olacaklar.
Örnek:
On Break / MineKod:on block damage: trigger: send "Blok Kirmaya Başladin" to player
Oyuncu bir bloğu yada bir madeni kırdığında olacaklar. Örnek(taşın lava düşmemesi için bir skript):
On Bucket Empty/FillKod: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
Oyuncu kovayı boşalttığında veya doldurduğunda olacaklar. Örnek:
On BurnKod: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.
Oyuncu yakarak biryeri yok ettiğinde olacaklar.
On ChatKod:on burn: send "Etrafı Yakmamalısın" to player
Oyuncu konuştuğunda olacaklar.
On ClickKod:on chat:#---Oyuncu Chat'e Yazı Yazdığında cancel event#---Olayı İptal Et
Oyuncu bir yere tıkladığında olacaklar.
Örnek:
On ConnectKod: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
Oyuncu sunucuya bağlandığında olacaklar. Örnek:
On CraftKod: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."
Oyuncu bir eşya yaptığında olacaklar. Örnek:
On DeathKod:on craft: message "Bir eşya craftladınız."
Ölündüğünde olacaklar. Örnek:
On DispenseKod:on death of a zombi: broadcast "%entity% %world% de zombi tarafindan öldürüldü!"
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:
On FishingKod: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
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:
On KickKod:on join: message "Bu harika sunucuya holsgeldin!" broadcast "%player% sunucuya giriş yaptı!"
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:
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.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
Skript Yazmaya Başlamak İsteyenler için harika umarım. ALıntı değildirMerhaba 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: 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 Skript: 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:
On Bed Enter/LeaveKod:at 18:00: veya at 7am in "world":
Oyuncu yatağa yattığında veya kalktığında olacaklar.
Örnek:
On Block DamageKod:on bed enter: execute player command "/me Yataga uzanir" on bed leave: execute player command "/me Yataktan kalkar"
Oyuncu bir bloğu kırmaya başladığında olacaklar.
Örnek:
On Break / MineKod:on block damage: trigger: send "Blok Kirmaya Başladin" to player
Oyuncu bir bloğu yada bir madeni kırdığında olacaklar. Örnek(taşın lava düşmemesi için bir skript):
On Bucket Empty/FillKod: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
Oyuncu kovayı boşalttığında veya doldurduğunda olacaklar. Örnek:
On BurnKod: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.
Oyuncu yakarak biryeri yok ettiğinde olacaklar.
On ChatKod:on burn: send "Etrafı Yakmamalısın" to player
Oyuncu konuştuğunda olacaklar.
On ClickKod:on chat:#---Oyuncu Chat'e Yazı Yazdığında cancel event#---Olayı İptal Et
Oyuncu bir yere tıkladığında olacaklar.
Örnek:
On ConnectKod: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
Oyuncu sunucuya bağlandığında olacaklar. Örnek:
On CraftKod: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."
Oyuncu bir eşya yaptığında olacaklar. Örnek:
On DeathKod:on craft: message "Bir eşya craftladınız."
Ölündüğünde olacaklar. Örnek:
On DispenseKod:on death of a zombi: broadcast "%entity% %world% de zombi tarafindan öldürüldü!"
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:
On FishingKod: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
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:
On KickKod:on join: message "Bu harika sunucuya holsgeldin!" broadcast "%player% sunucuya giriş yaptı!"
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:
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.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
Peki Bunun Şu Halini Nasıl Yapabilirim Mesela EvKaydet Yazınca Yine Evi Kaydedecek Ama EvKordinat Yazınca Evin Kordinatını Oyuncuya Yazacak Böyle Bir Komut YapılabilirmiMerhaba 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 Skript: 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:
On Bed Enter/LeaveKod:at 18:00: veya at 7am in "world":
Oyuncu yatağa yattığında veya kalktığında olacaklar.
Örnek:
On Block DamageKod:on bed enter: execute player command "/me Yataga uzanir" on bed leave: execute player command "/me Yataktan kalkar"
Oyuncu bir bloğu kırmaya başladığında olacaklar.
Örnek:
On Break / MineKod:on block damage: trigger: send "Blok Kirmaya Başladin" to player
Oyuncu bir bloğu yada bir madeni kırdığında olacaklar. Örnek(taşın lava düşmemesi için bir skript):
On Bucket Empty/FillKod: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
Oyuncu kovayı boşalttığında veya doldurduğunda olacaklar. Örnek:
On BurnKod: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.
Oyuncu yakarak biryeri yok ettiğinde olacaklar.
On ChatKod:on burn: send "Etrafı Yakmamalısın" to player
Oyuncu konuştuğunda olacaklar.
On ClickKod:on chat:#---Oyuncu Chat'e Yazı Yazdığında cancel event#---Olayı İptal Et
Oyuncu bir yere tıkladığında olacaklar.
Örnek:
On ConnectKod: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
Oyuncu sunucuya bağlandığında olacaklar. Örnek:
On CraftKod: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."
Oyuncu bir eşya yaptığında olacaklar. Örnek:
On DeathKod:on craft: message "Bir eşya craftladınız."
Ölündüğünde olacaklar. Örnek:
On DispenseKod:on death of a zombi: broadcast "%entity% %world% de zombi tarafindan öldürüldü!"
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:
On FishingKod: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
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:
On KickKod:on join: message "Bu harika sunucuya holsgeldin!" broadcast "%player% sunucuya giriş yaptı!"
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:
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.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
Böyle olabilir emin değilim.Peki Bunun Şu Halini Nasıl Yapabilirim Mesela EvKaydet Yazınca Yine Evi Kaydedecek Ama EvKordinat Yazınca Evin Kordinatını Oyuncuya Yazacak Böyle Bir Komut Yapılabilirmi