Sol Reklam
Sağ Reklam

Rehber Function | Skript'te Bilinmesi Gereken şeyler | Bölüm #1

Durum
Mesaj gönderimine kapalı.

kingOf0

"~SimitSu"

Discord:

kingOf0!#4055

Katılım
14 Haziran 2016
Mesajlar
998
Elmaslar
746
Puanlar
15.070
Yer
getPlayer("SimitSu").getLocation()
Minecraft
SimitSu
top.png

Function

Diyelimki Mc-Tr Shop'a gittiniz ve 2-3 tane aynı skript'ten alıcaksınız fakat bunlar çok ağır olduğu için, her kasaya gittiğinizde 1'er 1'er taşıyorsunuz.
Bu da sizi yoruyor. İşte tam böyle durumlarda Function kullanabilirsiniz!


function'u alış veriş sepeti gibi düşünebilirsiniz. Evet alış veriş sepeti doğru duydunuz!
1534677012402.png

Üstelik en iyi yanı Bu alış veriş sepeti'ni kodunuzda kullanırsanız, siz skript'i yükleyip reload attığınızda ücretsiz ve içi boş bir şekilde sunucunuzun önüne gelir

Siz marketteyken içine skriptleri koyarak tek seferde taşıyabilirsiniz.

1534677939769.png


Böylelikle hepsini tek bi seferde kasaya götürebilirsiniz.

İşin eğlenceli kısmı buydu, şimdi ise kodumuzda nasıl kullanıcağımıza geçelim
C++:
function Adı(Argümenleri):
    #ne yapacağı
bu kod ile alış veriş sepeti'ni skript'in önüne getiriyorsunuz.



Alış veriş sepetinizi siz taşımayın kendisi otomatik yanınıza gelir!​

Function'u nasıl çağırırsınız?

Aslında çok basit, adını ve argümenlerini yazsanız yeterli olucaktır, hemen yanınıza gelir!
Kod:
Adı(Argümenleri)

Nedir Bu Ercümenler?

Ah pardon Argümen olucaktı. Argümenler, command'da kullandığınız argümen'lere çok benziyor. Fakat bu argümenler 9.seviye...

Argümenler'in türleri:

okadar kasmaya gerek yok, bu kadarını bilmek yeterli :D

Player: Canlı Oyuncu türünde bir argümendir.
Text: "" içinde olan bir variable argümenidir.
Int: kendisi bir sayı olan argümendir.


Argümen'lerin kuralı:

Hayatımızın her köşesinde kural olduğu gibi argümenlerinde kuralı vardır.

Function'u oluşturduğunuzda:

Kod:
function denemeFunction(Argümen'i nasıl tanıyacağı: Argümen'inTürü)

Örnekte:
Kod:
function denemeFunction(oyuncu: player)


Function'u çağırırken:
Kod:
on chat:
    denemeFunction(player)

HoooooOP dur bakiyim orada, Öncelikle bu player nedir arkadaş bunu tam olarak biliyormuyuz?

Birçok insan'ın bu player'ın tam olarak ne olduğunu bilmediğini düşündüğümden burada bunu anlatacağım.

bu player hemen hemen her eventte bulunur, aslında bu event'teki oyuncu demektir.

Player türünde bir variable'dir aslında. Fakat bu variable GLOBAL(Evet arkadaşlar cs:go'da 29. seviyedir kendileri....) olduğundan
ve {} 'den nefret ettiğinden {} 'nin içine girmez.

E tabi njol adlı arkadaş onu böyle yazmış o ayrı olay...

Şimdilik player'ı anladığınızı var sayarak anlatıma dönüyorum:

bunun türkçesi aslında şudur​
Kod:
oyuncu konuştuğunda:
    denemeFunction'ı(eventteki oyuncu) ile birlikte çağır

Function'un içinde variable kullanımı

mesela diyelimki​
Kod:
function denemeFunction(oyuncu: player):
    send "merhabalar nasılsın" to player
böyle bi kod yazdınız fakat, hata veriyor?
Hata veriyor çünkü

"to player"
hatırlarsanız to player eventteki oyuncu demekti, fakat ortada bir event yokki!
oyun içi ne blok kırarak bu function'u harekete geçirdiniz nede bişiy yaparak...

Bunun gibi durumlarda function'u oluştururken Player tipinde verdiğimiz değer, "oyuncu"'yu kullanacağız
Kod:
function denemeFunction(oyuncu: player)

Fakat bununda bir kuralı var, function'un içine
Kod:
send "merhabalar nasılsın" to oyuncu
yazamayız,
Kod:
send "merhabalar nasılsın" to {_oyuncu}
yazmalıyız.

Evet oyuncuyu LocalVariable gibi kullanacağız. Çünkü kendisi LocalVariable...

Not: Çakallık yapamzsınız :D
Kod:
send "" to player
yerine kullanmanız durumunda yine hata vericektir.


Function + Argümen = Daha iyi Skript:

eğer hala ne demek istediğimi anlamadıysanız, yukardaki alış veriş sepetini tekrar okuyunuz.

Mesela
Kod:
    send "merhabalar nasılsın" to player
    give apple to player
    send "şuraya bi elma bırakıyorum acıkınca ye."
    give stone to player
    send "birde taş bıraktım ne biliyim bi yere felan koyarsın."

bu kodu birden fazla kez kullanıcaksınız diyelim.

Kod:
on chat:
    send "merhabalar nasılsın" to player
    give apple to player
    send "şuraya bi elma bırakıyorum acıkınca ye."
    give stone to player
    send "birde taş bıraktım ne biliyim bi yere felan koyarsın."
 
on     join:
    send "merhabalar nasılsın" to player
    give apple to player
    send "şuraya bi elma bırakıyorum acıkınca ye."
    give stone to player
    send "birde taş bıraktım ne biliyim bi yere felan koyarsın."
 
on walk:
    send "merhabalar nasılsın" to player
    give apple to player
    send "şuraya bi elma bırakıyorum acıkınca ye."
    give stone to player
    send "birde taş bıraktım ne biliyim bi yere felan koyarsın."
 
on respawn:
    send "merhabalar nasılsın" to player
    give apple to player
    send "şuraya bi elma bırakıyorum acıkınca ye."
    give stone to player
    send "birde taş bıraktım ne biliyim bi yere felan koyarsın."

yukarıdaki gibi yapmak yerine function'u kullanarak skript'inizi yarıya indireiblirsiniz!
Kod:
function denemeFunction(oyuncu: player):
    send "merhabalar nasılsın" to {_oyuncu}
    give apple to {_oyuncu}
    send "şuraya bi elma bırakıyorum acıkınca ye." to player
    give stone to {_oyuncu}
    send "birde taş bıraktım ne biliyim bi yere felan koyarsın." to {_oyuncu}
 
on chat:
    denemeFunction(player)
 
on  join:
    denemeFunction(player)
 
on walk:
    denemeFunction(player)
 
on respawn:
    denemeFunction(player)

Gördüğünüz gibi kodumuz yarıya indi.

Bu kod KSP'nin(KingOf's Spawner'S) GUI editleme kısmından alıntıdır.

Function'u oluştururken:
Kod:
function editSPYM(p:player, location: location):       #işte bu şekilde oluşturuyorsunuz
    edit gui "spy":                            #         function
     
        make gui slot 20 with mob spawner named "&8""%{ksp::spawners::%{_location}%::name}%""&7 Hakkında Bilgi:" with lore "&7Adı: &8%{ksp::spawners::%{_location}%::name}%  ||&7 Lokasyonu: &8%{ksp::spawners::%{_location}%::location}% ||&7 Materyal'i: &8%{ksp::spawners::%{_location}%::material}% ||&7 Saniye'si: &8%{ksp::spawners::%{_location}%::saniye}% ||&7 Seviye'si: &8%{ksp::spawners::%{_location}%::seviye}% ||&7 Kime ait: &8%{ksp::spawners::%{_location}%::player}%"
     
        make gui slot 11 with barrier named "&c&mSaniye'yi &4&mdüşürmek&c&m için &c&mtıkla&7!" with lore "&7EXP seviyen &cyetersiz&7.(%75 - {_p}'s level%'e daha &cihtiyacın&7 var.)":
            send "&7[&6KSP&7] &7→ EXP level'in &cyetersiz&7.({@saniyeSeviyesi} EXP seviyesine daha &cihtiyacın&7 var.)" to {_p}
        make gui slot numbers between 30 and 34 with 0 blaze rod named "&7Henüz yükseltilmemiş."
     
        make gui slot 29 with barrier named "&c&mSeviye'yi &4&myükseltmek&c&m için &c&mtıkla&7!" with lore "&7EXP seviyen &cyetersiz&7.(%75 - {_p}'s level%'e daha &cihtiyacın&7 var.)":
            send "&7[&6KSP&7] &7→ EXP level'in &cyetersiz&7.({@saniyeSeviyesi} EXP seviyesine daha &cihtiyacın&7 var.)" to {_p}
     
        set {_x} to x coord of {_location}
        set {_y} to y coord of {_location}
        set {_z} to z coord of {_location}
     
        set {_saniye} to {ksp::spawners::%{_location}%::saniye}
        set {_seviye} to {ksp::spawners::%{_location}%::seviye}
     
 
        if {_saniye} isn't 1:
            if {_p}'s level > {@saniyeSeviyesi}:
                make gui slot 11 with anvil named "&7Saniye'yi &adüşürmek&7 için &8tıkla&7!":
                    saniyeDusur(player, {_location})
        else:
            make gui slot 11 with barrier named "&c&mSaniye'yi &4&mdüşürmek&c&m için &c&mtıkla&7!" with lore "&cSon seviye'ye&4 yükseltilmiş."
        if {_seviye} isn't 5:
            if {_p}'s balance > ({_seviye} * {@seviyeKatsayisi}):
                make gui slot 29 with anvil named "&7Seviye &ayükseltmek&7 için &8tıkla&7!":
                    seviyeYukselt(player, {_location})
        else:
            make gui slot 29 with barrier named "&c&mSeviye'yi &4&myükseltmek&c&m için &c&mtıkla&7!" with lore "&cSon seviye'ye&4 yükseltilmiş."

        make gui slot 10 with stick named "&8Saniye&7 Yükseltmeleri" with lore "&8""&8%{ksp::spawners::%{_location}%::name}%&7&8""&7 Hakkında bilgi: || &7Saniye: &8%{_saniye}%&7"
        make gui slot 28 with blaze rod named "&8Seviye Yükseltmeleri" with lore "&8""&8%{ksp::spawners::%{_location}%::name}%&7&8""&7 Hakkında bilgi: || &7Seviye: &8%{_seviye}%"
        send "%{_saniye}%" to {_p}


        set {_x} to 16
        loop 5 times:
            if {_x} < 12:
                stop loop
            make gui slot {_x} with loop-value of stick named "&8%loop-value%.Saniye'ye&7 düşürülmüş"
            remove 1 from {_x}
        set {_x} to 16
        loop {_saniye} - 1 times:
            if {_saniye} is 1:
                stop loop
            if {_x} < 12:
                stop loop
            make gui slot {_x} with 0 stick named "&7Henüz yükseltilmemiş."
            remove 1 from {_x}
        set {_x} to 30
        loop {_seviye} times:
            if {_x} > 34:
                stop loop
            make gui slot {_x} with loop-value of blaze rod named "&8%loop-value%.Seviye'ye&7 yükseltilmiş"
            add 1 to {_x}
         
            if {ksp::spawners::%{_location}%::player} isn't {_p}:
                make gui slot 11 and 29 with barrier named "&c&mSpawner'ı &4&mgeliştirmek&c&m için &c&mtıkla&7!" with lore "&8Bu spawner'ın &csahibi değilsiniz!&8 (&8Sahibi: &7%{ksp::spawners::%{_location}%::player}%&8)"
                                                                                                         
    open gui "spy" to {_p}

Function'u çağırırken:


Bu kodda function içinde function kullandım.​
Kod:
function seviyeYukselt(p:player, location: location):

    set {_x} to x coord of {_location}
    set {_y} to y coord of {_location}
    set {_z} to z coord of {_location}
 
    set {_saniye} to {ksp::spawners::%{_location}%::saniye}
    set {_seviye} to {ksp::spawners::%{_location}%::seviye}
    play sound "random.anvil_use" at {_location} for {_p}
 
    if {ksp::spawners::%{_location}%::seviye} != 5:
        remove {_seviye} * {@seviyeKatsayisi} from {_p}'s balance
        add 1 to {_seviye}
        execute console command "manuaddp %{_p}% minecraft.command.setblock"
        wait 5 tick
        set {_saniye} to {_saniye} * 20
        execute {_p} command "setblock %{_x}% %{_y}% %{_z}% mob_spawner 0 replace {EntityId:Item,SpawnData:{Item:{id:minecraft:%{ksp::spawners::%{_location}%::material}%,Count:%{_seviye}%b}},SpawnCount:1,SpawnRange:1,Delay:%{_saniye}%,MinSpawnDelay:%{_saniye}%,MaxSpawnDelay:%{_saniye}%,RequiredPlayerRange:%{_seviye} * 10%}"
        set {_saniye} to {_saniye} / 20
     
        execute console command "manudelp %{_p}% minecraft.command.setblock"
        set {ksp::spawners::%{_location}%::seviye} to {_seviye}
        send "&7[&6KSP&7] &7→ &aBaşarıyla&7 Seviye yükselyildi" to {_p}
     
        editSPYM({_p}, {ksp::spawners::%{_location}%::location})       #işte bu şekilde çağırıyorsunuz
    else:
        send "&7[&6KSP&7] &7→ En fazla &85.Seviye'ye yükseltebilirsiniz&7." to {_p}

Buda tamamen aynı bir örnek:
Kod:
function saniyeDusur(p:player, location: location):

    set {_x} to x coord of {_location}
    set {_y} to y coord of {_location}
    set {_z} to z coord of {_location}
 
    set {_saniye} to {ksp::spawners::%{_location}%::saniye}
    set {_seviye} to {ksp::spawners::%{_location}%::seviye}
    play sound "random.anvil_use" at {_location} for {_p}
    if {ksp::spawners::%{_location}%::saniye} != 1:
        remove {@saniyeSeviyesi} from {_p}'s level
        remove 1 from {_saniye}
        execute console command "manuaddp %{_p}% minecraft.command.setblock"
        wait 5 tick
        set {_saniye} to {_saniye} * 20
        execute {_p} command "setblock %{_x}% %{_y}% %{_z}% mob_spawner 0 replace {EntityId:Item,SpawnData:{Item:{id:minecraft:%{ksp::spawners::%{_location}%::material}%,Count:%{_seviye}%b}},SpawnCount:1,SpawnRange:1,Delay:%{_saniye}%,MinSpawnDelay:%{_saniye}%,MaxSpawnDelay:%{_saniye}%,RequiredPlayerRange:%{_seviye} * 10%}"
        set {_saniye} to {_saniye} / 20
     
        execute console command "manudelp %{_p}% minecraft.command.setblock"
        set {ksp::spawners::%{_location}%::saniye} to {_saniye}
        send "&7[&6KSP&7] &7→ &aBaşarıyla&7 saniye'yi düşürdün" to {_p}
     
        editSPYM({_p}, {ksp::spawners::%{_location}%::location})#işte bu şekilde çağırıyorsunuz


    else:
        send "&7[&6KSP&7] &7→ En fazla &81.Saniye'ye düşürebilirsiniz&7." to {_p}

Buda son örneğim.
Kod:
on right click on mob spawner:
    wait 1 tick
    set {_location} to location of event-block
    if {ksp::spawners::%{_location}%::location} is set:
 
        editSPYM(player, {_location})
#işte bu şekilde çağırıyorsunuz


(!) Anlatım @kingOf0 'a aittir, Ksp'ye burdan ulaşabilirsiniz (!)

İzinsiz paylaşılması yasaktır!

Herşeyi bu konuda'da anlatabilirdim fakat, konu çok uzun olur ve sıkılırsınız, bu konuyu elimden geldiğince eğlenceli anlatmaya çalıştım, umarım başarabilmişimdir.

bot.png
 

Ekler

  • 1534677599675.png
    1534677599675.png
    105 KB · Görünt.: 523
  • 1534677723340.png
    1534677723340.png
    105 KB · Görünt.: 189
  • 1534677931726.png
    1534677931726.png
    34,7 KB · Görünt.: 430
  • 1534679440946.png
    1534679440946.png
    28,6 KB · Görünt.: 181
  • 1534679447790.png
    1534679447790.png
    28,6 KB · Görünt.: 496
  • bilinmesigerekenseyler2.png
    bilinmesigerekenseyler2.png
    495,7 KB · Görünt.: 529
S

sooply

Ziyaretçi
Emeğine bizzat ben şahit oldum. Ekran görüntüsü alıp sürekli bana göstermen, bir de eğlenceli​
anlatman müthiş!

:mc_388-0: Zümrüt değerinde bir konu!
 

kingOf0

"~SimitSu"

Discord:

kingOf0!#4055

Katılım
14 Haziran 2016
Mesajlar
998
Elmaslar
746
Puanlar
15.070
Yer
getPlayer("SimitSu").getLocation()
Minecraft
SimitSu
Emeğine bizzat ben şahit oldum. Ekran görüntüsü alıp sürekli bana göstermen, bir de eğlenceli​
anlatman müthiş!

:mc_388-0: Zümrüt değerinde bir konu!
Teşekkürler, konu açarken diğer insanlara ve kendi düşüncelerime önem veriyorum

Ve aynı zümrütten sana yolluyorum <3
 

Alpho320

powered by Fabulous.

Discord:

Alpho320#9202

Katılım
20 Haziran 2018
Mesajlar
1.396
Elmaslar
1.285
Puanlar
17.175
Yer
Istanbul
Minecraft
Alpho320
E F S A N E.Bilmiyordum sayende öğrendim <3 :D
 
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı