- Katılım
- 14 Haziran 2016
- Mesajlar
- 998
- Elmaslar
- 746
- Puanlar
- 15.070
- Minecraft
- SimitSu
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!
Ü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.
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!
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!
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:
Örnekte:
Function'u çağırırken:
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
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
mesela diyelimki
Kod:
function denemeFunction(oyuncu: player):
send "merhabalar nasılsın" to player
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
Fakat bununda bir kuralı var, function'un içine
yazamayız,
yazmalıyız.
Evet oyuncuyu LocalVariable gibi kullanacağız. Çünkü kendisi LocalVariable...
Not: Çakallık yapamzsınız :D
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
"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
Kod:
send "merhabalar nasılsın" to {_oyuncu}
Evet oyuncuyu LocalVariable gibi kullanacağız. Çünkü kendisi LocalVariable...
Not: Çakallık yapamzsınız :D
Kod:
send "" to player
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.
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})
(!) 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.
İ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.