[PYTHON] Görüldü 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 86

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar,

Bölümde bu konu hakkında bir kodlar paylaşıldı, fakat çalışmadı. Bunun üstüne biraz araştırma yaparak uğraştım ve başarılı bir sonuç aldım.

Uzatmadan hemen geçiyorum.

constinfo.py açılır ve bu kod aratılır;

Kod:
CONSOLE_ENABLE = 0 Hemen Altına ise şunlar eklenir; WHISPER_GORULDU_LIST = [] WHISPER_GORULDU_TIME_LIST = {}

Sonrasında game.py açılır ve aratılır;

Kod:
def OnRecvWhisper(self, mode, name, line):

Yukarıdaki kod tamamen bu kodlar ile değiştirilir.

Kod:
def OnRecvWhisper(self, mode, name, line):         if mode == chat.WHISPER_TYPE_GM:             self.interface.RegisterGameMasterName(name)                      if line.find("#xsbyfatihbab34juwqysnmnsmqwnqmnsaxncvmwteqsmkuwhqnywqb#") != -1:             bol = line.split("#")             chat.AppendWhisper(mode, name, bol[1])             #self.interface.RecvWhisper(name)             return         else:             if not "#"+str(name)+"#" in constInfo.WHISPER_GORULDU_LIST:                 constInfo.WHISPER_GORULDU_LIST.append("#"+str(name)+"#")                          chat.AppendWhisper(mode, name, line)         self.interface.RecvWhisper(name)
Tab Ayarlı Link:

Sonrasında uiwhisper.py açılır ve importların altına eklenir.

Kod:
import constInfo import time

Hemen sonrasında şu kod aynı .py'de aratılır;

Kod:
def OpenWithTarget(self, targetName):

Yukarıdaki kod aşağıdaki kodlarla tamamen değiştirilir;

Kod:
def OpenWithTarget(self, targetName):         chat.CreateWhisper(targetName)         chat.SetWhisperBoxSize(targetName, self.GetWidth() - 60, self.GetHeight() - 90)         self.chatLine.SetFocus()         self.titleName.SetText(targetName)         self.targetName = targetName         self.textRenderer.SetTargetName(targetName)         self.titleNameEdit.Hide()         self.ignoreButton.Hide()         if app.IsDevStage():             self.reportViolentWhisperButton.Show()         else:             self.reportViolentWhisperButton.Hide()         self.acceptButton.Hide()         self.gamemasterMark.Hide()         self.minimizeButton.Show()         if "#"+str(self.targetName)+"#" in constInfo.WHISPER_GORULDU_LIST:             goruldu_renk = {                 1: '|cFF00FFFF|h'             }             goruldu_text = str(goruldu_renk[1])             localtime = time.strftime("%H:%M:%S")             net.SendWhisperPacket(self.targetName, "#" + goruldu_text + "Görüldü" + "(" + str(localtime) + ")#goruldumuknk#")             constInfo.WHISPER_GORULDU_LIST.remove("#"+str(self.targetName)+"#")

Tab Ayarlı Link:

Son olarak ise locale/de-tr/locale_game.txt Açılır ve şu kod herhangi bir yere eklenir.

Kod:
WHISPER_GORULDU    Görüldü.

Kanıt olarak kendi açacağım serverdan bir kare verebilirim.

Ql1NBv.png



NOT: Lütfen tab ayarlarını doğru yapınız.
Takıldığınız bir yer olursa yorum olarak yardımcı olmaya çalışabilirim.
Amacım sadece forumda her şey parayla değil, elimizden geldiği kadar, normal bir şekilde yardımcı olmaktır.
İyi forumlar..

Metin2 Özel Sunucularında Python ile Görüldü Sistemi Uygulaması

Python ve Metin2 Geliştirme

Metin2 özel sunucuları geliştirme sürecinde, oyuncu deneyimini artırmak adına birçok sistem entegre edilir. Bu sistemlerden birisi de 'Görüldü' sistemidir. Bu sistem sayesinde oyuncular, belirli bir nesneye, mesaja ya da olaya dair 'görüldü' olarak işaretleyebilir ve bu durum sunucu tarafında kayıt altına alınabilir. Python, Metin2 sunucu tarafında sıklıkla kullanılan betik dillerinden biridir ve bu gibi sistemlerin geliştirilmesinde oldukça esneklik sağlar.

Python ile Görüldü Sisteminin Temel Yapısı

Görüldü sistemi temelde iki bileşenden oluşur: Oyuncu tarafında tetiklenen bir etkileşim ve sunucu tarafında bu etkileşimin kontrol edilip saklanmasıdır. Python ile yazılmış bir py dosyası, Metin2 sunucusunun root klasöründe yer alır ve bu sistemle entegre çalışır. Örneğin, bir UI penceresi açıldığında, oyuncunun bir butona basması ile 'görüldü' olarak işaretlenebilir. Bu işlem, sunucuya bir istek gönderir ve gerekli kontrol yapılır.

Görüldü Sisteminin Avantajları

Bu sistem özellikle duyuru, görev veya etkinlik bildirimlerinde büyük kolaylık sağlar. Oyuncuların önemli içerikleri kaçırmaması sağlanır. Aynı zamanda, sistem sunucu tarafında log tutarak, hangi oyuncunun ne zaman görüldüğünü işaretlediğini de takip edebilir. Bu sayede sunucu yönetimi, oyuncu etkileşimini daha iyi analiz edebilir.

Python Kodlama Örneği

Python ile basit bir görüldü sistemi şu şekilde oluşturulabilir: Oyuncu bir butona bastığında, bir fonksiyon çağrılır. Bu fonksiyon, veritabanına (db) oyuncu kimliği ve görüldü zamanı gibi bilgileri kaydeder. Eğer oyuncu daha önce bu içeriği gördüyse, tekrar görülmediği bildirilir. Bu tür kontroller, Python ile yazılmış bir fonksiyon yardımıyla sağlanır. Ayrıca, py gui kullanılarak arayüz tarafında da görsel olarak kullanıcıya geri bildirim verilir.

Python ile DB Entegrasyonu

Metin2 sunucularında genellikle MySQL veya SQLite veritabanları kullanılır. Python ile yazılmış betikler, bu veritabanlarına erişim sağlayarak, görüldü bilgisini kalıcı hale getirebilir. Örneğin, 'player_seen' adında bir tablo oluşturulabilir ve her görüldü durumu buraya INSERT edilebilir. Böylece, aynı içerik için birden fazla görüldü işlemi engellenir.

Olası Hatalar ve Çözümler

Python betiklerinde genellikle encoding hataları, veritabanı bağlantı hataları veya sunucu ile iletişim sorunları yaşanabilir. Özellikle py dosyasının doğru root klasöre konulduğundan ve gerekli modüllerin yüklü olduğundan emin olunmalıdır. Ayrıca, Python 2.x ve 3.x uyumluluğu da dikkat edilmesi gereken bir konudur. Metin2 sistemleri genellikle Python 2.x destekler.

Sonuç

Python ile yazılmış görüldü sistemi, Metin2 özel sunucularında kullanıcı deneyimini artırmanın etkili yollarından biridir. Doğru yapılandırıldığında, hem sunucu yönetimi hem de oyuncular için faydalı bir yapı sunar. Python’ın esnek yapısı ve db entegrasyonu sayesinde, bu tür sistemlerin geliştirilmesi oldukça kolaylaşır.


Implementing a Viewed System with Python in Metin2 Private Servers

Python and Metin2 Development

During the development process of Metin2 private servers, many systems are integrated to enhance player experience. One such system is the 'Viewed' system. This system allows players to mark certain objects, messages, or events as 'viewed', and this status can be recorded on the server side. Python is frequently used as a scripting language on the Metin2 server side and provides great flexibility in developing such systems.

Basic Structure of the Viewed System with Python

The viewed system basically consists of two components: an interaction triggered on the player side and the server-side verification and storage of this interaction. A Python-written .py file resides in the root folder of the Metin2 server and works integrated with this system. For example, when a UI window opens, pressing a button can mark something as 'viewed'. This action sends a request to the server, and the necessary checks are performed.

Advantages of the Viewed System

This system provides significant convenience especially in announcements, quest notifications, or event alerts. It prevents players from missing important content. Additionally, the system can keep logs on the server side, tracking which player marked what content as viewed and when. This allows server administrators to better analyze player engagement.

Python Code Example

A simple viewed system can be built with Python like this: When a player presses a button, a function is called. This function stores player ID and viewing time into the database (db). If the player has already seen this content before, they will be informed that it was already viewed. Such controls are handled via functions written in Python. Moreover, with py gui, visual feedback can also be provided to the user on the interface side.

Python Database Integration

In Metin2 servers, MySQL or SQLite databases are generally used. Scripts written in Python can access these databases to make the 'viewed' information permanent. For example, a table named 'player_seen' could be created, and each 'viewed' event can be INSERTED into this table. Thus, multiple 'viewed' actions for the same content can be prevented.

Potential Errors and Solutions

Common issues in Python scripts include encoding errors, database connection failures, or communication problems with the server. Ensure that the .py file is placed in the correct root folder and required modules are installed. Also, compatibility between Python 2.x and 3.x should be considered. Metin2 systems usually support Python 2.x.

Conclusion

A viewed system written in Python is one of the effective ways to improve user experience in Metin2 private servers. When properly configured, it provides beneficial structure for both server management and players. Thanks to Python's flexible nature and database integration, developing such systems becomes much easier.
 

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

Benzer konular

Geri
Üst Alt