Sol Reklam

Rehber REHBER | Subs / While / Config |

Durum
Mesaj gönderimine kapalı.

SkripTR

SkripTR
Katılım
4 Kasım 2016
Mesajlar
105
Elmaslar
48
Puanlar
8.910
Yaş
28
Yer
İstanbul
Herkese merhaba arkadaşlar. Ben SkripTR - SkripTEAM kurucusu Mehmet Batın Muştu. Bugün sizlerle bir çok kişinin bilmediği bir kaç şeyi bir konuda toplayarak paylaşıyorum. Umarım yararlı olur.
Fazla uzatmadan konuya geçelim isterseniz.

m3RkvV.png

İlk olarak sub ve invoke ile başlayalım isterseniz. Bununla ilgili Türkçe kaynak bulmak biraz zor. Fazla yok maalesef. Ancak çok zor değil. Sub komut yerine geçer ancak siz aktif etmediğiniz sürece kimse bu komutu kullanamaz. Yani bir çok komut kullanımını önlemek açısından çok mantıklı olduğunu düşünüyorum. Bende kodlarımda çokça kullanırım. Ancak sub da argument yerine parameter vardır. Adına takılmayın ikisi de aynı görevi görüyor aslında. Şuanda fazla bir şey anlamadığınızı zannediyorum. Bir örnek üzerinden gidersek bence daha iyi anlarsınız.​
PHP:
sub "mc-tr":
    set {_xoyuncu} to parameter 1
    send "Merhaba MC-TR" to {_xoyuncu}

on join:
    invoke "mc-tr" from player

Şimdi bir sub oluşturmak için "sub '(herhangi bir isim ÖRN: Deneme)':" yazıyoruz. Burası pek önemli değil ancak ne yazdığınıza dikkat edin! İleride aktif ederken bu ismi kullanacağız. Biz "deneme" isminde bir sub oluşturduk. Şimdi alt satıra geçip boşluk bırakıyoruz. Komuttan bir farkı daha olarak "trigger" eklememize gerek yok. Direk olaya girecek. Alta geçtikten sonra dilediğiniz gibi kod yazabilirsiniz. Ancak bir şeye dikkat etmeniz gerekiyor. "parameter" olayını biraz kavramalısınız. Yukarıdaki örnekte de gördüğünüz üzere "from" dan sonraki "player" bir parameter dir. Birden fazla parameter eklemek için aralarına "and" yazmanız gerek. (from player and now) Parameter olarak her şeyi ekleyebilirsiniz. Bir değişken bile buna dahildir. Oluşturduğumuz sub 'u kullanmak için ise "invoke" kullanıyoruz. Ve daha sonrada parameter ekliyoruz. Eğer anlamadıysanız Detaylı bir şekilde buradan öğrenebilirsiniz.

ZZnOE0.png

While tekrarlamak anlamına gelir (Skript te). Bir işlevi sorguya dayalı olarak tekrarlar. Tekrarlama süresini de siz ayarlayabilirsiniz. Sorguyu ise örnekte gördüğünüz zaman anlayabilirsiniz. Örnek olarak,​
PHP:
on join:
    While player is exists:
        add 1 to {Puan.%player%}
        wait 1 seconds

Buradaki sorgumuz "player is exists" kısmıdır. Yani bu örnekte oyuncu oyunda girdiği zaman her bir saniye de bir oyuncuya bir puan ekler. Ancak oyuncu oyundan çıktığı zaman puan eklemeyi durdurur. Sorgu eğer doğruysa tekrarlar ancak yanlışsa devam eder. Bu da gerçekten kullanışlıdır. Ancak burada bir kısım çok önemli. Eğer eklemezseniz sunucunuz çökecektir. Bu kısım "wait 1 seconds" kısmıdır. Eğer bir süre eklemezseniz sunucu bu işlevi salisede bir çok kez tekrarlamaya kalkacak ancak sunucunuzu muhtemelen çok zorlayacak. Sunucuda bu duruma karşı koymak için sunucuyu kapatacaktır. Tekrar açtığınızda da sorun devam edecektir. Bu kısmı ekleyene kadar. En azından "wait 1 ticks" olarak yapabilirsiniz. Ama süre eklemek zorundasınız.

YDVOp6.png


Config hepimizin bildiği gibi Skript ile ilgili ayarları sunucu dosyası içerisinden kolay bir şekilde ayarlamamızı sağlar. Bu da son zamanlarda çok kullanılıyor ancak bazı arkadaşlarımız hala bilmiyor. Fazla uzun tutmaya gerek görmüyorum tek örnek ile anlayacağınızı tahmin ediyorum.​
PHP:
on load:
    if folder "plugins/Deneme/" doesn't exists:
        create folder "plugins/Deneme/"
    if file "plugins/Deneme/config.yml" doesn't exists:
        create file "plugins/Deneme/config.yml"
        set "Test" to "Deneme" in yaml file "plugins/Deneme/config.yml"

    set {Deneme} to colored value "Deneme" get of "plugins/Deneme/config.yml"

Bu şekilde ekleyebilirsiniz. Oyunda ise "{Deneme}" değişkeni ile kullanabilirsiniz.


Umarım yararlı olmuştur. Eğer beğendiyseniz REP vermeyi unutmayın. Ayrıca bütün kodların birleşimi ile bir kodu aşağıda bulabilirsiniz. Anlamadığınız yerler olursa lütfen belirtin yardımcı olmaya çalışırım. İyi Forumlar.
PHP:
on load:
  if folder "plugins/Duyuru/" doesn't exists:
    create folder "plugins/Duyuru/"
  if file "plugins/Duyuru/config.yml" doesn't exists:
    create file "plugins/Duyuru/config.yml"
    set "Duyuru1" to "&aMerhaba MC-TR" in yaml file "plugins/Duyuru/config.yml"
    set "Duyuru2" to "&aSunucumuza hos geldiniz." in yaml file "plugins/Duyuru/config.yml"
    set "Duyuru3" to "&aCode by SkripTR!" in yaml file "plugins/Duyuru/config.yml"

  set {Mesaj1} to colored value "Duyuru1" get of "plugins/Duyuru/config.yml"
  set {Mesaj2} to colored value "Duyuru2" get of "plugins/Duyuru/config.yml"
  set {Mesaj3} to colored value "Duyuru3" get of "plugins/Duyuru/config.yml"
  set {duyuru} to true
  invoke "duyuru-aktif"

sub "duyuru-aktif":
  while {duyuru} is true:
    add {Mesaj1} to {_mesajlar::*}
    add {Mesaj2} to {_mesajlar::*}
    add {Mesaj3} to {_mesajlar::*}
    set {_duyuru} to random element of {_mesajlar::*}
    broadcast "%{_duyuru}%"
    wait 30 seconds
 

samoi

one is glad to be of service
Emekli

Discord:

mudlusamoi#5646

Katılım
28 Ekim 2014
Mesajlar
3.549
Elmaslar
1.382
Puanlar
19.760
Yaş
24
Yer
Bursa
Minecraft
smt287
Ellerinize sağlık güzel bir anlatım olmuş.
Ayrıca konuda bir tane resim bozuk galiba. Onu düzeltirseniz sevinirim.
 

OFEZA

MÜSLÜMAN

Discord:

ofez #6281

Katılım
5 Temmuz 2014
Mesajlar
635
Elmaslar
1.990
Puanlar
16.035
Yaş
52
Yer
Afyon
Minecraft
byfatih

Okan Demir - TdogTAG

Skype : [email protected]
Katılım
16 Haziran 2016
Mesajlar
185
Elmaslar
73
Puanlar
13.470
Yaş
26
Minecraft
TdogTAG
While bende bilmiyordum . Bir kaç yerde araştırdım yabancı kaynak oldugu için pek bişey anlayamamıstım . Yararlı konu olmus .
 

SkripTR

SkripTR
Katılım
4 Kasım 2016
Mesajlar
105
Elmaslar
48
Puanlar
8.910
Yaş
28
Yer
İstanbul
Ellerinize sağlık güzel bir anlatım olmuş.
Ayrıca konuda bir tane resim bozuk galiba. Onu düzeltirseniz sevinirim.
Teşekkür ederim. Şuanda bende öyle bir hata gözükmüyor. Eğer hata başkalarında da olursa resimleri hepsini tekrar hallederim.
While bende bilmiyordum . Bir kaç yerde araştırdım yabancı kaynak oldugu için pek bişey anlayamamıstım . Yararlı konu olmus .
Değerli yorumlarınız için teşekkür ederim.
 

DjuitieTR | oSoloTurk

Creeper Evimi Patlattı
Katılım
24 Nisan 2016
Mesajlar
390
Elmaslar
380
Puanlar
11.525
Bunu Bilmedigim İçin Soruyorum Gerçekten :D :D
Sub/Invoke'de text integer gibi variableler kullanırken mesela

ınvoke "mc-tr" from player and "Deneme" and 1 and {mesela.%player%}

Şeklinde Kullanabilirmiyiz Argument Misali :D :D

Ayrıca Başarılı Bir Rehber Olmuş :D :D
Bu Konuda Aydınlatırsan Beni Sevinirim :D
 

SkripTR

SkripTR
Katılım
4 Kasım 2016
Mesajlar
105
Elmaslar
48
Puanlar
8.910
Yaş
28
Yer
İstanbul
Bunu Bilmedigim İçin Soruyorum Gerçekten :D :D
Sub/Invoke'de text integer gibi variableler kullanırken mesela



Şeklinde Kullanabilirmiyiz Argument Misali :D :D

Ayrıca Başarılı Bir Rehber Olmuş :D :D
Bu Konuda Aydınlatırsan Beni Sevinirim :D
Elbette kullanabilirsin. Değerli yorumun için teşekkür ederim.
 

Citrus

Arcenia Network & Team Zephyr

Discord:

Citrus#4361

Katılım
11 Ağustos 2015
Mesajlar
1.056
Elmaslar
940
Puanlar
16.030
Yer
Antalya
Minecraft
HyperCitrus
Gayet başarılı bir konu olmuş ve Sabitlenmeli bence @SkripTR çok başarılı birisin başarılarının devamını dilerim :D
 
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı