Harun553
Zombi Geldi, Beni Yedi
- Katılım
- 3 Eylül 2014
- Mesajlar
- 260
- Elmaslar
- 97
- Puan
- 13.950
- Konum
- Ankara
- Minecraft
- HarunBulbull
Discord:
HarunBulbull#8233
Selamlar, bugün yapmış olduğum ganimet sistemini paylaşacağım. :)
Nedir Bu Ganimet Sistemi?
Kısaca, PvP attıkça para kazandığınız bir sistem.
Birisini öldürdükten sonra ganimetinize 300 altın ekleniyor ve 1 dakikalık bir sayaç saymaya başlıyor. Sayaç akarken birini daha öldürürseniz, sayaç yenilenir ama bu sefer ganimetinize 600 altın eklenir.
Aynı mantıkla, sayaç bitmeden başka birisini öldürürseniz bu sefer ilk aldığınızın 3 katı altın alırsınız... Yani, sayacı kaç kere yenilerseniz o kadar katlı ganimet alırsınız. :)
İyi Peki Bu Ganimeti Ne Yapacağız?
Ganimetinizi normal hesabınıza para olarak geçirebilirsiniz. Ama nasıl?
Ganimeti hesabınıza çekmek için sayacın bitmesi gerekiyor.
"Ee ne var bunda?" diyebilirsiniz. Ama sorun şu ki ölürseniz ya da oyundan çıkarsanız ganimetiniz sıfırlanır.
Diyelim ki, sayaç bitene kadar hayatta kalmayı başardınız. Tebrikler! Artık /ganimet çek komutunu kullanabilirsiniz. :)
Peki Bunca Skript Sunucuyu Yormaz Mı?
Javanın berbat optimizasyonuna karşın, bu skript yalnızca 170 satırdan oluşuyor. Fonksiyon yapıları kullanılarak alınabilecek maksimum performansı almaya odaklı bir sistem. :)
İyi De Bu Kadar Şeyi Nasıl Ayarlayacağım?
Yapmanız gereken tek şey skripti sunucunuza kurup çalıştırmak. :)
Devamında isterseniz oyun içinden isterseniz de "Plugins/ganimet/ayarlar.yml" içinden gerekli ayarlamaları yapabilirsiniz.
Ee Hani Yok Mu 3-5 Resim?
Olmaz olur mu efendim buyrun :)
Birisini öldürdüğünüz zaman gelen mesaj
Sayaç görünümü (10 saniyede bir ganimeti gösterir.)
Sayaç bitmeden ganimet çekmeye çalışırsanız;
/ganimet gör
Tebrikler! Hala yaşıyorsun. :)
Fakir mi Korkak mı?
Adminler için /ganimet yardım menüsü
Oyuncular için /ganimet yardım menüsü
/ganimet admin
Yetkin yok!
** GEREKLİ EKLENTİLER **
Lütfen skriptin düzgün çalışması için aşağıdaki eklentilerin sunucunuzda kurulu olduğundan emin olun!
Skript (Tercihen; v2.2 veya üstü)
Skript-Yaml
SkRayFall
Tuske
Vault
Essentials
** KURULUM **
Yalnızca skripti kurup reload adın yaml dosyası otomatik oluşturulacaktır.
** YAML ÖRNEĞİ **
Kod:
prefix: '&8[&6Ganimet&8] »&f' #Prefix
altin: 300 #Varsayılan altın miktarı sayaç tekrarlandıkça katlanır.
sayac: 60 #Sayaç kaç saniye olacaksa ona göre ayarlayın.
admin: sk.admin #admin menüsü yetkisi
** SKRİPT **
Kod:
function ganimet(p: player, v: text):
set {ganimet::%{_p}%::sayac} to {sayac}
add 1 to {ganimet::%{_p}%::kill}
set {_x.%{_p}%} to ({ganimet::%{_p}%::kill} * {altin})
add {_x.%{_p}%} to {ganimet::%{_p}%::altin}
send "%{prefix}% %{_v}% &f, adlı oyuncuyu öldürdüğün için &6%{_x.%{_p}%}% Altın &fganimetine eklendi!" to {_p}
function ganimetsil(p: player):
delete {ganimet::%{_p}%::*}
set {ganimet::%{_p}%::altin} to 0
command /ganimet [<text>] [<text>] [<text>]:
trigger:
if arg-1 isn't set:
execute player command "/ganimet yardım"
if arg-1 isn't "yardim" or "yardım" or "çek" or "cek" or "gör" or "gor" or "admin":
execute player command "/ganimet yardım"
if arg-1 is "yardım" or "yardim":
send ""
send "&8&l&m-------------►&6&l GANIMET &8&l&m◄-------------"
send ""
send "&8&l&m-►&c Ganimet&f, birini öldürdükçe &6altın &fkazandığınız"
send "ve bu altınları &c&nsavaş sonrası&f hesabınıza çekmenize"
send "olanak sağlayan bir sistemdir."
send ""
send "&8&l&m-►&f Birini öldürükten sonra &cekranınızın altına &fsayaç"
send "&fbelirecek. &cSayaç bitene kadar&f başka birini daha öldürürseniz"
send "&f&c&nöldürdüğünüz kişi kadar katlı&6 altın &falırsınız."
send ""
send "&8&l&m-►&f Ölürseniz ya da oyundan çıkarsanız &c&nganimetiniz silinir&f."
send ""
send "&8&l&m-►&c&l Ganimetini görmek için; &f/ganimet gör"
send "&8&l&m-►&c&l Ganimetini çekmek için; &f/ganimet çek"
if player have the permission "%{admin}%":
send "&8&l&m-►&c&l Admin komutları için; &f/ganimet admin"
send ""
send "&8&l&m------------------------------------"
send ""
if arg-1 is "gör" or "gor":
send "%{prefix}% Ganimetin: &6%{ganimet::%player%::altin}% Altın"
if arg-1 is "çek" or "cek":
if {ganimet::%player%::sayac} isn't set:
if {ganimet::%player%::altin} > 0:
add {ganimet::%player%::altin} to player's balance
ganimetsil(player)
send "%{prefix}% Ganimetini başarıyla çektin!"
stop
else:
send "%{prefix}% Hiç ganimetin yok. :("
stop
else:
send "%{prefix}% Öncelikle sayacın bitmesini beklemelisin."
stop
if arg-1 is "admin":
if player have the permission "%{admin}%":
if arg-2 isn't set:
send ""
send "&8&l&m-------------►&6&l GANIMET &8&l&m◄-------------"
send ""
send "&8&l&m-►&c&l Prefix ayarlama; &f/ganimet admin prefix (prefix)"
send "&8&l&m-►&c&l Varsayılan altın ayarlama; &f/ganimet admin altın (miktar)"
send "&8&l&m-►&c&l Sayaç ayarlama; &f/ganimet admin sayaç (saniye)"
send "&8&l&m-►&c&l Yetki ayarlama; &f/ganimet admin yetki (yetki)"
send ""
send "&8&l&m------------------------------------"
send ""
stop
if arg-2 is "prefix":
if arg-3 is set:
set yaml value "prefix" from "ayar" to "%arg-3%"
save yaml "ayar"
set {prefix} to yaml value "prefix" from "ayar"
send "%{prefix}% Prefix ayarlandı!"
stop
else:
send "%{prefix}% Lütfen bir prefix yazın."
stop
if arg-2 is "altın" or "altin":
if arg-3 is set:
set {_nonNumbers::*} to regex replace all "[^0-9]" with "" in arg-3 parsed as a number
set {_ayar} to "%{_nonNumbers::*}%"
if {_ayar} isn't "<none>":
set yaml value "altin" from "ayar" to {_ayar}
save yaml "ayar"
set {altin} to yaml value "altin" from "ayar"
send "%{prefix}% Altın miktarı %{altin}% olarak ayarlandı!"
stop
else:
send "%{prefix}% Lütfen içinde harf bulunmayan bir değer girin."
stop
else:
send "%{prefix}% Lütfen bir miktar yazın."
stop
if arg-2 is "sayaç" or "sayac":
if arg-3 is set:
set {_nonNumbers::*} to regex replace all "[^0-9]" with "" in arg-3 parsed as a number
set {_ayar} to "%{_nonNumbers::*}%"
if {_ayar} isn't "<none>":
set yaml value "sayac" from "ayar" to {_ayar}
save yaml "ayar"
set {sayac} to yaml value "sayac" from "ayar"
send "%{prefix}% Sayaç zamanı %{sayac}% saniye olarak ayarlandı!"
stop
else:
send "%{prefix}% Lütfen içinde harf bulunmayan bir değer girin."
stop
else:
send "%{prefix}% Lütfen bir miktar yazın."
stop
if arg-2 is "yetki":
if arg-3 is set:
set yaml value "admin" from "ayar" to "%arg-3%"
save yaml "ayar"
set {admin} to yaml value "admin" from "ayar"
send "%{prefix}% Yetki, %{admin}% olarak ayarlandı!"
stop
else:
send "%{prefix}% Lütfen bir yetki yazın. &c(Örn. ""sk.admin"")"
stop
else:
send "%{prefix}% Bunun için yetkin yok!"
on load:
load yaml "plugins/Ganimet/ayarlar.yml" as "ayar"
if yaml "ayar" is empty:
set yaml value "admin" from "ayar" to "sk.admin"
set yaml value "prefix" from "ayar" to "&8[&6Ganimet&8] » &f"
set yaml value "altin" from "ayar" to 300
set yaml value "sayac" from "ayar" to 60
save yaml "ayar"
set {altin} to yaml value "altin" from "ayar"
set {prefix} to yaml value "prefix" from "ayar"
set {sayac} to yaml value "sayac" from "ayar"
set {admin} to yaml value "admin" from "ayar"
on join:
ganimetsil(player)
on death:
victim is a player:
if {ganimet::%victim%::altin} > 0:
send "%{prefix}% Öldüğün için ganimetin silindi." to victim
ganimetsil(victim)
attacker is a player:
ganimet(attacker, "&c%victim%")
every seconds:
loop all players:
if {ganimet::%loop-player%::sayac} > 0:
remove 1 from {ganimet::%loop-player%::sayac}
if {ganimet::%loop-player%::sayac1} isn't set:
set action bar of loop-player to "&9&l✪ &3&lGanimet Sayacı: &f%{ganimet::%loop-player%::sayac}% &9&l✪"
else:
set action bar of loop-player to "&9&l✪ &3&lGanimetin: &f%{ganimet::%loop-player%::altin}% Altın &9&l✪"
if {ganimet::%loop-player%::sayac} is 50 or 40 or 30 or 20 or 10 or 1:
set {ganimet::%loop-player%::sayac1} to 1
wait 5 seconds
delete {ganimet::%loop-player%::sayac1}
else:
delete {ganimet::%loop-player%::sayac}
delete {ganimet::%loop-player%::kill}
every 1 minutes:
loop all players:
if {ganimet::%loop-player%::sayac} isn't set:
if {ganimet::%loop-player%::altin} > 0:
loop 5 times:
wait 1 seconds
set action bar of loop-player to "&9&l✪ &3&lGanimetini çekmeyi unutma! &f/ganimet çek &9&l✪"
Not: Lütfen izinsiz paylaşmayınız.