PY & Lua Bakım Modu

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 143

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
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: 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
PY & Lua Bakım Modu Nedir?
Metin2 özel sunucularında sistem kararlılığı ve güvenlik açısından kritik öneme sahip olan PY & Lua bakım modu, geliştiricilerin sunucuyu belirli sürelerde kullanıcılardan izole ederek test, güncelleme ve hata ayıklama yapabilmesini sağlar.

PY (Python) ve Lua Dillerinin Rolü
Metin2 özel sunucularda PY olarak bilinen Python dili, genellikle sunucu tarafında çalışan script sistemlerinde kullanılırken; Lua, genellikle istemci tarafında (client-side) UI Script gibi görevlerde tercih edilir.

Bakım Modu Ne Zaman Kullanılır?
Bakım modu, sunucuda büyük değişiklikler yapılacağı zaman, sistem güncellemeleri öncesinde veya ciddi bir hata ayıklama çalışması sırasında aktif edilmelidir.

PY Tarafında Bakım Modu Aktivasyonu
Sunucu tarafında PY üzerinden bakım modu genellikle 'game' veya 'auth' servislerinde yapılandırılır. Örneğin, kullanıcıların girişini engellemek için auth server üzerinde bir kontrol noktası oluşturulabilir.

Lua Tarafında Arayüz Değişiklikleri
Client tarafında bakım modu açıkken oyunculara bir arayüz göstermek önemlidir. Bu sayede oyuncuların beklemesi gerektiğini ve bakımın ne zaman biteceğini görebilirler. Lua scriptlerinde bu işlem genellikle 'uiscript' dosyalarında yapılır.

PY & Lua Arasındaki Koordinasyon
PY ve Lua sistemleri arasında veri alışverişi, bakım modu süresince aktif olarak kontrol edilmelidir. Oyuncudan gelen istekler PY tarafında reddedilmeli, Lua arayüzü ise bu durumu yansıtacak şekilde ayarlanmalıdır.

Geliştiriciler İçin Tavsiyeler
Metin2 özel sunucularında PY & Lua bakım modu sistemi doğru şekilde entegre edildiğinde, sistem kararlılığı artar. Geliştiricilerin bu modu kullanırken PY tarafında DB core ile entegrasyon sağlaması, Lua tarafında ise kullanıcı deneyimini etkileyecek düzenlemeler yapması önemlidir.

Sonuç
PY & Lua bakım modu, Metin2 özel sunucularında sistem güvenliği ve kullanıcı deneyimi açısından büyük rol oynar. Doğru uygulandığında, hem geliştirici hem de oyuncu tarafı için verimli bir çözüm sunar.


What is PY & Lua Maintenance Mode?
In Metin2 private servers, PY & Lua maintenance mode is critical for system stability and security, allowing developers to isolate the server from users temporarily for testing, updates, and debugging purposes.

The Role of PY (Python) and Lua Languages
In Metin2 private servers, PY, known as Python, is commonly used for server-side scripting systems, while Lua is often preferred for client-side tasks such as UI Scripting.

When Is Maintenance Mode Used?
Maintenance mode should be activated when major changes are made on the server, before system updates, or during serious debugging operations.

Activating Maintenance Mode on the PY Side
On the server side, PY-based maintenance mode is typically configured within the 'game' or 'auth' services. For instance, a checkpoint can be created on the auth server to block user logins.

UI Changes on the Lua Side
During maintenance mode, it's important to show players an interface indicating that the server is under maintenance and when it will resume. This is usually handled in 'uiscript' files using Lua scripts on the client side.

Coordination Between PY and Lua
PY and Lua systems must exchange data effectively during maintenance. Player requests should be rejected on the PY side, while the Lua interface should reflect this status accordingly.

Recommendations for Developers
When properly integrated, PY & Lua maintenance mode significantly enhances system stability in Metin2 private servers. Developers should ensure PY-side integration with DB core and implement UI adjustments on the Lua side that affect user experience.

Conclusion
PY & Lua maintenance mode plays a significant role in system security and user experience in Metin2 private servers. When applied correctly, it offers an efficient solution for both developers and players.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt