-TuRKuaZ- 1
-TuRKuaZ-
SLyFeLLowTR 1
SLyFeLLowTR
TGamesZeus 1
TGamesZeus
Best Studio 1
Best Studio
berkmenoo 1
berkmenoo
InfernoShade 1
InfernoShade
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Agora Metin2 1
Agora Metin2
Bvural41 1
Bvural41
Hikaye Ekle
Kaynak ikonu

PY & Lua Bakım Modu 1

indirmek için izniniz yok
  • Konuyu başlatan Konuyu başlatan xxmehmetcc
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 53
  • Görüntüleme Görüntüleme 9K

xxmehmetcc

Level 7
TM Üye
Katılım
5 Eyl 2010
Konular
194
Mesajlar
2,403
Online süresi
13m 12s
Reaksiyon Skoru
162
Altın Konu
0
TM Yaşı
15 Yıl 9 Ay 16 Gün
Başarım Puanı
154
MmoLira
1
DevLira
0
Ticaret - 0%
0   0   0

HERAKLES Otomatik Avlı kalıcı sunucu. 19 Haziran'da açılıyor. Atius & Wizard güvencesiyle hemen kayıt ol, ön kayıt ödülleri aktif. HEMEN TIKLA!

Merhaba arkadaşlar,
Şimdiki konumuz bakım sistemi;
Nedir neye yarar?;
Mysql-Pack senkonizasyonu sonucu oluşur. Sistemi aktif hale getirdiğimizde gm'ler harici kim oyuna girmeye çalışırsa ıd pw girdiklerinde karşılarına "Server Bakımda.." yazısı çıkar ve oyun kapanır.
Sistem amacı;
Siz serveri düzeltiyorken userlerin sizi rahatsız etmesini userlerde item kaybı çarlarına zarar gelmesi v.b olumsuz yönleri engellemek içindir.
Sistem yapılışı;
root.epk eix açıyoruz ve içinden game.py açıyoruz.
Kod:
def __ServerCommand_Build(self):
arıyoruz ve alt tarafa
Kod:
"exit"                    : self.__exit,
ekliyoruz, sonrasında en alta inip
Kod:
# Start_EXIT
    def __exit(self):
        app.Exit()  
    #END_EXIT
ekliyoruz,game.py kapatıp intrologin.py açıyoruz..
Kod:
"WEBBLK"    : locale.LOGIN_FAILURE_WEB_BLOCK, ara altına
arıyoruz ve bi alt satıra inip
Kod:
"BAKIM"    : locale.LOGIN_FAILURE_BAKIM,
ekliyoruz ardından kaydedip root.epk eix'i paketleyip packa atıyoruz.
Sonraki adım olarak locale_tr.epk eix'i açıyoruz
Kod:
/locale/tr
kısmına giriyoruz locale_game.txt dosyasını açıyoruz.
en alta
Kod:
LOGIN_FAILURE_BAKIM    Server bakımda..
ekliyoruz locale_tr paketleyip packa atıyoruz.
Sıra quest de;
Kod:
quest xxmehmetcc_bakim begin
    state start begin
        when 20095.chat."GM:Bakım Modu" with pc.is_gm() begin
            if game.get_event_flag("login") == 0 then
                say('Oyun Kac Dakika Bakımda Kalsın? (En Az 10 Dakika)')
                local a = tonumber(input())
                if a == nil then
                    say('Sadece Sayı Girmeniz Gerek!') 
                    return
                elseif  a <= 10 then
                    return
                end
                minutes = a
                notice_all(' Tum Oyuncularımızın Dikkatine!')
                notice_all(' '..minutes..' Dakika Serverde Bakım Yapılıcaktır.')
                notice_all(' Bakım Suresince Oyuna Girisiniz Bloklanıcaktır.')
                notice_all(' Verdigimiz Rahatsızlıktan Dolayı Ozur Dileriz..')
                notice_all(' Bakım Bittiğinde Oyunda Oynamaya Devam Edebilirsiniz..')
                server_loop_timer('reboot_time',60*5,(os.time()+minutes*60));
            else
                say("Etkinlestirmek Istiyormusunuz??")
                    local f = select ("Evet" , "Hayır")
                        if f == 1 then
                            mysql_query("UPDATE account.account SET account.status = 'OK' WHERE status = 'BAKIM' and account.login NOT IN (SELECT mAccount FROM common.gmlist);")
                            game.set_event_flag("login", 0)
                        elseif f == 2 then
                            return
                        end
            end
        end
        when reboot_time.server_timer begin
            if os.time() < get_server_timer_arg() then
                notice_all('UYARI: Server '..tostring(math.floor((get_server_timer_arg()-os.time())/60))..' Dakika Daha Bakımda!')
            else
                mysql_query("UPDATE account.account SET account.status = 'BAKIM' WHERE status = 'OK' and account.login NOT IN (SELECT mAccount FROM common.gmlist);")
                cmdchat("exit") 
                game.set_event_flag("login", 1)
            end
        end
    end
end


Yukardaki questi qc leyin.


Sistemi nasıl çalıstırırım;
20095 no'lu npc'ye tıklanır ardından "GM:Bakım" isimli yere girilir sizden süre ister(en az 10) bu girdiğiniz serverin kaç dakika bakımda kalıcağı. Sonra evet hayır bölümü çıkar ve evete bastığımızda tüm hesapların status(statü)'leri BAKIM olarak değişir. Ve Sistem İşlemeye Başlar.


İyi günler.


Dipnot: Farklı yerlerden toplanarak hazırlanan sistemdir, Stamm1994 ve xDeStRuCtx'e teşekkürler.
Dipnot2: @Salihf7 nin server filesine eklediği bir sistemidir çalışmadı diyenler salihe sorabilirler :)
Dipnot3: Sistemin Tam Çalışması İçin Mijagonun Questing.lua 'sını Serverinize eklemeniz gerekir.
Dipnot4: Quest ile uğraşmayıp mysql ile işi halletmeye çalışmayın çünkü öyle yaptığınızda banlı hesaplarda bakım moduna giricektir ve siz oyunu normale aldığınızda banı kalkıcaktır.. (Salihin Fikriydi Bu :D)

Elinde Mijagonun Lua'sı Olmayanlar İçin Lua;

VirusTotal;

Nasıl Yapılır;
Quest kısmında bulunan questlib.lua açılır ve en üste
Kod:
dofile("locale/turkey/quest/questing.lua")
Eklenir.
Özellikleri Saymakla Bitmez Bence Ekleyin :D
 
Moderatör tarafında düzenlendi:
Süper gidiyosun :) Teşekkürler
 
Hocam sistemi kurdum fakat süreyi girmedim oyundan çıktım tekrar girmeye çalıştığımda LOGIN_FAILURE_BAKIM Server bakımda.. HATASINI ALDIM GALİBA SINIRSIZ BAKIMA GİRDİ NASIL DÜZELTİRİM
 
Keşke mijagonun questing.lua sınıda paylaş'saydın.
 
Teşekkürler :ka19:
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst