Sahte Lobi - v0.5 - Otomatik Yönlendirme

S

sergun26

Ziyaretçi
Merhaba.
Amacı:
Eklenen lobilere dolu olmayanlara oyuncuları yönlendirir.

Kurulum:
Ana çakma lobi sunucunuzu 10 kişilik yapın.
Gerekenler bölümündeki eklentileri kurun.
Skripti plugins/Skript/scripts bölümüne atın.
/cakmalobi olustur ip komutu ile sunucu ekleyin.

Gerekenler:
Sürekli internet bağlantısı (kontrol kendi API sistemim üzerinden yapılıyor.)
BungeeCord sunucu
WildSkript
SkQuery
Skript

Komutlar:
/cakmalobi olustur ip
Yeni lobi ekler
/cakmalobi liste
Mevcut lobileri bilgileriyle birlikte görüntüler

Yetkiler:
cakmalobi.olustur - Lobi ekleme yetkisi verir.
cakmalobi.sil - Lobi silme yetkisi verir.

Kod:
Kod:
on script load:
    delete {_maksimum.oyuncu}
    set {_maksimum.oyuncu} to max players
    if {_maksimum.oyuncu} is not 10:
        send "&cUYARI - Cakma Lobi icin lutfen ana lobi sunucusunu 10 kisiye ayarlayin." to console
options: #Ayarlar
    cakmalobi.onek: &1[&6Çakma&9Lobi&1]&7: &b
    cakmalobi.hata.yetki: &cYeterli yetkin yok!
command /cakmalobi [<text>] [<text>] [<int=25565>]:
    trigger:
        if arg 1 is not set:
            send "&6Çakma&9Lobi &bv0.5 by &eser&bgun&426"
            send "&bKomutlar:"
            send "&6/cakmalobi olustur ip"
            send "&6/cakmalobi sil ip"
            send "&6/cakmalobi liste"
        if arg 1 is "sil":
            if command sender isn't console:
                if player has permission "cakmalobi.sil":
         
                else:
                    send "{@cakmalobi.hata.yetki}"
                    stop
            if arg 2 is set:
                loop {cakmalobi.lobiler::*}:
                    if loop-value is arg 2:
                        remove arg 2 from {cakmalobi.lobiler::*}
                        send "&aBaşarıyla silindi!"
                        stop
                send "&cLobi bulunamadı!"
        if arg 1 is "olustur":
            if command sender isn't console:
                if player has permission "cakmalobi.olustur":
         
                else:
                    send "{@cakmalobi.hata.yetki}"
                    stop
            if arg 2 is set:
                send "&7Sunucu durumu kontrol ediliyor.."
                set {_kontrol} to text from url "https://www.dropbox.com/s/1ee6gkiwis8ixc6/ipkontrolyazi.txt?raw=1"
                set {_kontrol2} to text from url "%{_kontrol}%ip=%arg 2%&port=%arg 3%"
                send "&aKontrol tamamlandı. Sonuçlar alınıyor.."
                if {_kontrol2} contains "hata":
                    send "&cSunucuyla bağlantı kurulamadı! Lütfen doğru bir sunucu IP'si girin."
                    stop
                else:
                    send "&aBaşarıyla bağlantı kuruldu."
                    add arg 2 to {cakmalobi.lobiler::*}
                    set {cakmalobi.lobiler.%arg 2%.port} to arg 3
                    send "&aLobi eklendi! Lobi listesi için /cakmalobi liste"
        if arg 1 is "liste":
            if size of {cakmalobi.lobiler::*} is smaller than 1:
                send "&cHiç lobi eklenmemiş!"
            else:
                loop {cakmalobi.lobiler::*}:
                    send "&9Bilgiler getiriliyor.."
                    set {_kontrol} to text from url "https://www.dropbox.com/s/1ee6gkiwis8ixc6/ipkontrolyazi.txt?raw=1"
                    set {_kontrol2} to text from url "%{_kontrol}%ip=%loop-value%&port=%{cakmalobi.lobiler.%loop-value%.port}%"
                    if {_kontrol2} contains "hata":
                        set {_kontrol2} to "&c"
                    else:
                        set {_kontrol2} to "&a"
                    set {_kontroldurum} to text from url "https://www.dropbox.com/s/5n2y4wilq32nfqs/ipdurumyazi.txt?raw=1"
                    set {_kontroldurum2} to text from url "%{_kontroldurum}%ip=%loop-value%&port=%{cakmalobi.lobiler.%loop-value%.port}%"
                    send "%{_kontrol2}%%loop-value% &9 -&7 %{_kontroldurum2}%"
on join: #Lobi yönlendirme
    if size of {cakmalobi.lobiler::*} is smaller than 2:
        send "{@cakmalobi.onek}&4HATA &7 - &cAktarılacak lobiler ayarlanmamış."
        send "&cCakma Lobi lobileri ayarlanmamis, lutfen en az 2 lobi ayarlayin." to console
        stop
    else:
        set {_lobi} to random element out of {cakmalobi.lobiler::*}
        set {_kontroldurummax} to text from url "http://hastebin.com/raw/suvaqiguye"
        set {_kontroldurummax2} to text from url "%{_kontroldurummax}%ip=%{_lobi}%&port=%{cakmalobi.lobiler.%{_lobi}%.port}%"
        set {_kontroldurumsuan} to text from url "http://hastebin.com/raw/lihovukubu"
        set {_kontroldurumsuan2} to text from url "%{_kontroldurumsuan}%ip=%{_lobi}%&port=%{cakmalobi.lobiler.%{_lobi}%.port}%"
        send "%{_kontroldurumsuan2}%/%{_kontroldurummax2}%"
        while {_kontroldurumsuan2} is {_kontroldurummax2}:
            send "&cSeçilen &blobisi dolu! Rastgele <lobi seçiliyor.."
            set {_lobi} to random element out of {cakmalobi.lobiler::*}
            set {_kontroldurummax} to text from url "http://hastebin.com/raw/suvaqiguye"
            set {_kontroldurummax2} to text from url "%{_kontroldurummax}%ip=%{_lobi}%&port=%{cakmalobi.lobiler.%{_lobi}%.port}%"
            set {_kontroldurumsuan} to text from url "http://hastebin.com/raw/lihovukubu"
            set {_kontroldurumsuan2} to text from url "%{_kontroldurumsuan}%ip=%{_lobi}%&port=%{cakmalobi.lobiler.%{_lobi}%.port}%"
        bungeecord connect player to "%{_lobi}%"
@TheProfessional @BunnyBGTR @LegendWH @Altikardes

Spigot:
http://www.spigotmc.org/resources/fakelobby-lobby-redirector.6446/
 


Moderatör tarafından düzenlendi:

IRFN

Sonoyuncu.Network
Mesajlar
1,043
En iyi cevaplar
0
Beğeniler
1,314
Puanları
3,230
Sistemi bu kadar yoracak bir sisteme ne gerek vardı? İlla skript diye diye sunucuyu öldürüyorsunuz arkadaşlar, halbuki bunu BungeeCord veya Bukkit API ile kolaylıkla yapabilirdiniz. Çakma lobi pluginini en uzun süre kullanan kişi olarak tecrübelerimi paylaşayım.
1) Çakma lobinin kapasitesi ideal olarak 50 kişi olmalıdır. Bir sunucu çöktüğünde oyuncuları oraya atar çünkü.
2) Sunucuların doluluk oranını kontrol etmek için oyuncu başına birden fazla kez HTTP_GET metodunu kullanmak, en geç bir kaç saat içerisinde sunucunun çökmesi anlamına gelir.

Benim tavsiyem, illa skript ile yapılacaksa, skriptin yapabilecekleri dahilinde şu programlama şeması izlenebilir;
Ayarlama:
Komutla aktarma lobileri ayarlanır.
on Join:
Oyuncu girdiğinde her sunucuya sırasıyla aktarır oyuncuları, böylelikle aşağı yukarı bir denge tutturulur.
Tam dengeli lobi sistemi (Yani oyuncuyu en az oyunculu lobiye gönderme) en kolay BPM ile yapılabilir, anlık bir iletişim kurulduğundan sunucuya yük bindirmez, bizim sistemimiz de bu şekildedir.

Her halükarda eline sağlık, başarılar...
 
S

sergun26

Ziyaretçi
Sistemi bu kadar yoracak bir sisteme ne gerek vardı? İlla skript diye diye sunucuyu öldürüyorsunuz arkadaşlar, halbuki bunu BungeeCord veya Bukkit API ile kolaylıkla yapabilirdiniz. Çakma lobi pluginini en uzun süre kullanan kişi olarak tecrübelerimi paylaşayım.
1) Çakma lobinin kapasitesi ideal olarak 50 kişi olmalıdır. Bir sunucu çöktüğünde oyuncuları oraya atar çünkü.
2) Sunucuların doluluk oranını kontrol etmek için oyuncu başına birden fazla kez HTTP_GET metodunu kullanmak, en geç bir kaç saat içerisinde sunucunun çökmesi anlamına gelir.

Benim tavsiyem, illa skript ile yapılacaksa, skriptin yapabilecekleri dahilinde şu programlama şeması izlenebilir;
Ayarlama:
Komutla aktarma lobileri ayarlanır.
on Join:
Oyuncu girdiğinde her sunucuya sırasıyla aktarır oyuncuları, böylelikle aşağı yukarı bir denge tutturulur.
Tam dengeli lobi sistemi (Yani oyuncuyu en az oyunculu lobiye gönderme) en kolay BPM ile yapılabilir, anlık bir iletişim kurulduğundan sunucuya yük bindirmez, bizim sistemimiz de bu şekildedir.

Her halükarda eline sağlık, başarılar...
Teşekkürler, daha önce böyle bir sistem kurmadığım için bilmiyorum, sadece mantığıma göre yazdım.
Onları dengelemek için sunucular arası bilgi almak gerek, yani MySQL kullanmak gerekecekti.
Maalesef Java bilmiyorum.
Ben 10 kişiyi aynı anda 10 kişi girerse yönlendirebilsin mantığı ile yapmıştım, BungeeCord'un çökünce oraya atacağını bilmiyordum.
Yük bindireceği kısmı doğru.
 

Ardart

Kızıltaş Madencisi
Mesajlar
550
En iyi cevaplar
0
Beğeniler
763
Puanları
1,180
Çekirdek sunucular için iyi bir skript olmuş. Başarılarının devamını dilerim. :D
 

Minecraftplayerr

Java, Skript, Php, Html, Css, Javascript, Anime
Mesajlar
3,980
En iyi cevaplar
6
Beğeniler
3,788
Puanları
7,080
Ruh hali
Güzel bir skript olmuş bu arada while komudu her saniye kontrol mu ediyor? Hiç while kullanmadım.
(son olarak skquery ile mi geliyor while kodu ?)
 
S

sergun26

Ziyaretçi
Güzel bir skript olmuş bu arada while komudu her saniye kontrol mu ediyor? Hiç while kullanmadım.
(son olarak skquery ile mi geliyor while kodu ?)
While sanırım base skriptte de vardı.

Saniyeden daha kısa bir sürede kontrol eder. Ancak belirli koşul sağlanmışsa, loop gibi değil.[DOUBLEPOST=1430075159,1429432312][/DOUBLEPOST]Spigot'a ekledi!
İngilizce dil seçeneği geldi! (Yarım yamalak ama neyse :p)[DOUBLEPOST=1431331837][/DOUBLEPOST]Günceldir.[DOUBLEPOST=1432567804][/DOUBLEPOST]Günceldir.
 

GodofMilker

Nether Yerlisi
Mesajlar
2,196
En iyi cevaplar
0
Beğeniler
2,562
Puanları
6,790
While sanırım base skriptte de vardı.

Saniyeden daha kısa bir sürede kontrol eder. Ancak belirli koşul sağlanmışsa, loop gibi değil.[DOUBLEPOST=1430075159,1429432312][/DOUBLEPOST]Spigot'a ekledi!
İngilizce dil seçeneği geldi! (Yarım yamalak ama neyse :p)[DOUBLEPOST=1431331837][/DOUBLEPOST]Günceldir.[DOUBLEPOST=1432567804][/DOUBLEPOST]Günceldir.
0.01 tick mi ne demişti zindev* :C
 

Sarsar318

Kömür Madencisi
Mesajlar
115
En iyi cevaplar
0
Beğeniler
10
Puanları
0
Sistemi bu kadar yoracak bir sisteme ne gerek vardı? İlla skript diye diye sunucuyu öldürüyorsunuz arkadaşlar, halbuki bunu BungeeCord veya Bukkit API ile kolaylıkla yapabilirdiniz. Çakma lobi pluginini en uzun süre kullanan kişi olarak tecrübelerimi paylaşayım.
1) Çakma lobinin kapasitesi ideal olarak 50 kişi olmalıdır. Bir sunucu çöktüğünde oyuncuları oraya atar çünkü.
2) Sunucuların doluluk oranını kontrol etmek için oyuncu başına birden fazla kez HTTP_GET metodunu kullanmak, en geç bir kaç saat içerisinde sunucunun çökmesi anlamına gelir.

Benim tavsiyem, illa skript ile yapılacaksa, skriptin yapabilecekleri dahilinde şu programlama şeması izlenebilir;
Ayarlama:
Komutla aktarma lobileri ayarlanır.
on Join:
Oyuncu girdiğinde her sunucuya sırasıyla aktarır oyuncuları, böylelikle aşağı yukarı bir denge tutturulur.
Tam dengeli lobi sistemi (Yani oyuncuyu en az oyunculu lobiye gönderme) en kolay BPM ile yapılabilir, anlık bir iletişim kurulduğundan sunucuya yük bindirmez, bizim sistemimiz de bu şekildedir.

Her halükarda eline sağlık, başarılar...


Merhaba. En Az Oyunculu Lobiye yönlendirmeyi nasıl yapabilirim Fikir Verebilirmisiniz. Bi Sorum Daha Var Authme = ForceCommands bölümüne mycommand aktarma kodunu yazıyorum algılamıyor. Yardımcı Olursanız Sevinirim
 

Üst