[Python]Burada Yeniden Başla & Şehirde Yeniden Başla Sayaç Sistemi

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Forumda daha önce paylaşılmıştı fakat 40k filesler için değilde bende 40k uyumlusunu bulup biraz editleyip sizlere sunmak istedim.
r238Zz.png

Not : Süreler sürekli değişir fotoğrafta bunu belirtemiyorum maalesef.
root/localeinfo.py Açılır.
Aratılır;
Kod:
def GetAuxiliaryWordType(text):
Üstüne Eklenir;
Kod:
def SehirTime(time):     d, s2 = divmod(time, 10)     ss2, d = divmod(d, 10)     return "%d" % (s2) def BuradaTime(time):     d, s2 = divmod(time, 10)     ss2, d = divmod(d, 10)     return "%d" % (s2)
Son Hali;
r238aa.png

root/uirestart.py Açılır.
import'ların Altına Eklenir;
Kod:
import time import localeInfo
Son Hali;
8dM2vA.png

Aratılır;
Kod:
self.restartTownButton=self.GetChild("restart_town_button")
Altına Eklenir;
Kod:
self.sehirde_time = self.GetChild("sehirde_time") self.burada_time = self.GetChild("burada_time")
Son Hali;
r238o1.png

Aratılır;
Kod:
def OpenDialog(self):
self.Show()'un Üstüne Eklenir;
Kod:
self.sehirtime = app.GetGlobalTimeStamp() + 6 self.buradatime = app.GetGlobalTimeStamp() + 9
Son Hali;
RP095a.png

En Alta Eklenir;
Kod:
def Sehirstime(self, time):         left = time - app.GetGlobalTimeStamp()         if left < 0:             left = 0         self.sehirde_time.SetText("%s" % localeInfo.SehirTime(left))     def Buradastime(self, time):         left = time - app.GetGlobalTimeStamp()         if left < 0:             left = 0         self.burada_time.SetText("%s" % localeInfo.BuradaTime(left))     def OnUpdate(self):         self.Sehirstime(int(self.sehirtime))         self.Buradastime(int(self.buradatime))
Son Hali;
vpb83p.png

uiscript/restartdialog.py Açılır.
Aratılır;
Kod:
restart_town_button
Kod Bloğunun Altına Eklenir;
Kod:
{                     "name" : "sehirde_time",                     "type" : "text",                                     "x" : 165,                     "y" : 53,                                     "text" : "",                 },                 {                     "name" : "burada_time",                     "type" : "text",                                     "x" : 165,                     "y" : 23,                                     "text" : "10",                 },
Son Hali;
qWb8rV.png

Hata alanlar tabları kontrol etsin olmadı skype'den eklerseniz destek verebilirim.
[Python]Burada Yeniden Başla & Şehirde Yeniden Başla Sayaç Sistemi

Metin2 özel sunucularında geliştirilen yeniden başlatma sistemlerinden biri olan Burada Yeniden Başla ve Şehirde Yeniden Başla sayaç sistemi, oyuncu deneyimini artırmak için kritik öneme sahiptir. Bu sistem sayesinde oyuncular öldükten sonra belirli kurallar doğrultusunda tekrar oyun içine hızlıca dahil olabilirler. Python tarafında yazılmış bu sayaç sistemi, py root kısmında tanımlanarak oyun içinde aktif hale getirilebilir.

Sistem Nedir?
Bu sistem, oyuncunun öldüğü konumda veya şehirde belirli bir süre bekledikten sonra tekrar oyun içine girebilmesini sağlar. Oyuncu öldüğünde bir sayaç başlatılır. Bu sayaç, belirlenen süreye göre azalır. Eğer sayaç sıfıra ulaşmadan önce oyuncu canlanmazsa, otomatik olarak şehre ışınlanır veya öldüğü yerde canlanır. Bu özellik, Metin2 özel sunucularda PVP yoğunluğu yüksek alanlarda oynayan oyuncular için oldukça avantajlıdır.

Python Tarafında Uygulama
Python tarafında bu sistemin uygulanması için öncelikle sayaç mekanizması tasarlanmalıdır. Bu işlem genellikle game.py dosyasında ya da ilgili karakter sınıflarında yapılır. Sayaç, player.SetRestartTime() gibi bir fonksiyon ile başlatılır. Zamanlama işlemleri için threading veya timer modülleri kullanılabilir. Ayrıca sayaç bitmeden önce oyuncuya geri sayım bilgisi UI üzerinden gösterilmelidir.

Geliştirme Adımları:
- Oyuncu öldüğünde sayaç başlatılır.
- Geri sayım sırasında ekranda sayaç gösterilir.
- Belirlenen süre dolmadan canlanırsa sayaç iptal edilir.
- Süre dolduğunda şehirde veya öldüğü yerde canlanılır.

Dikkat Edilmesi Gerekenler
Sayaç sisteminin doğru çalışması için oyun içindeki zamanlayıcılarla senkronizasyonun sağlanması gerekir. Aynı zamanda, sayaç süresince oyuncu başka bir karaktere saldıramamalıdır. Bu, güvenlik açısından önemlidir. Ayrıca sayaç süresi, sunucu ayarlarına göre esnek olmalı ve adminler tarafından kolayca değiştirilebilmelidir.

Avantajları
Bu sayaç sistemi, oyuncuların can sıkıntısını azaltarak oyun içi devamlılığı sağlar. Özellikle PVP odaklı sunucularda, öldükten sonra uzun süre bekleme sorununu ortadan kaldırır. Oyuncular, hızlıca tekrar savaşa katılabilirler. Bu da sunucunuzdaki aktif oyuncu sayısını artırabilir.

Sonuç
Burada Yeniden Başla & Şehirde Yeniden Başla sayaç sistemi, Metin2 özel sunucularında kullanıcı dostu bir yenilik olarak öne çıkar. Python tarafında yazılmış bu sistem, hem güvenli hem de esnek bir yapı sunar. Doğru implementasyon ile sunucu performansını da artıracaktır.


[Python]Restart Here & Restart in City Counter System

The Restart Here and Restart in City counter system is one of the respawn mechanisms developed for Metin2 private servers. This system significantly enhances player experience by allowing players to quickly rejoin the game after death under specific rules. Implemented in Python, this counter system can be activated within the game through py root modifications.

What Is The System?
This system allows players to respawn either at their death location or in the city after waiting for a certain period. Upon dying, a countdown starts for the player. If the countdown reaches zero without respawning, the player is automatically teleported to the city or respawns where they died. This feature is highly beneficial in PvP-intensive areas on Metin2 private servers.

Implementation with Python
To implement this system in Python, first a countdown mechanism must be designed. This is usually done inside game.py or within character class files. The countdown starts with a function like player.SetRestartTime(). Timer or threading modules can be used for timing operations. Additionally, the countdown should be displayed via UI before it ends.

Development Steps:
- Start the counter when the player dies.
- Display the countdown on screen during the process.
- Cancel the countdown if the player respawns before it ends.
- Respawn in the city or at the death location once the time expires.

Important Considerations
For the counter system to work correctly, synchronization with in-game timers is crucial. Additionally, during the countdown, the player should not be able to attack other characters—this is important for security. The respawn duration should also be flexible according to server settings and easily adjustable by administrators.

Advantages
This counter system reduces player boredom by ensuring continuity in gameplay. Especially on PvP-focused servers, it eliminates long waiting times after death. Players can quickly rejoin combat, which can increase active player numbers on your server.

Conclusion
The Restart Here & Restart in City counter system stands out as a user-friendly feature in Metin2 private servers. Written in Python, this system offers both secure and flexible structure. With correct implementation, it will also improve server performance.
 

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

Benzer konular

Geri
Üst Alt