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!
Mıgo Sen artık yangın yanında bir türk lirası mı olsun istiyorsun olsun kardaş birde bunu gm eklesin oyuncuda bunu kendine hesabına çeksin mi istiyorsun al bakalım ozaman
Game Server (C++) — TL Ekleme
Veritabanında karakter tablosuna tl isimli yeni bir kolon diğer değişle tablo ekle . Sunucu açılırken bu değer yüklenmeli ve kapanırken kaydedilmeli ha.
TL gönderme komutu
Mıgo Pack ve Client Entegrasyonu
character.py dosyasına TL alanı ekleme
Metin2 pack içinde client’a veri gönderme genellikle packet yapısı ile olur. Yeni bir packet alanı açıp TL bilgisini göndermen gerekir bremın .
Python packet fonksiyonu
Client (C#) — TL Bilgisini Alma ve Arayüzde Gösterme
Client Veri Yapısına TL alanı ekle
Packet işleyici içinde TL paketini yakalama
UI’da TL Gösterimi
mıgo kanka ui tasarımıda mı olsun istiyorsun al ozaman
TL Gösterim Label’ı Oluşturma yani hele bir tl nin şeklini halini görelim
Ana Client UI’ya Entegre Etme yani client src ye ha biliyorsunuzdur ya okadar da değil
Packet Geldiğinde UI Güncelleme
hee bu kadar şimdi yukardaki kodu ekledin mesela gittin benim oyuncular arası yang paylaşımi sisteeminide oyuna entegre ettin. ordan feyz olarak yang fonksiyonu veya değişkeni yerine yeni para birimi olan tl yi eklediğini düşünsene oyun içinde türk lirası dönüyor mıgo o konu nerde diye sorma Aha çünkü buraya bastığında konuyu göreceksin zaten
Game Server (C++) — TL Ekleme
C++:
// character.h içinde
class CHARACTER
{
// Mevcutlar...
private:
DWORD m_dwTL; // Yeni para birimi TL bakiyesi
public:
DWORD GetTL() const { return m_dwTL; }
void SetTL(DWORD tl) { m_dwTL = tl; }
void AddTL(DWORD tl) { m_dwTL += tl; }
bool SubTL(DWORD tl)
{
if (m_dwTL < tl)
return false;
m_dwTL -= tl;
return true;
}
};
MIGO Karakter veritabanı güncelle
Veritabanında karakter tablosuna tl isimli yeni bir kolon diğer değişle tablo ekle . Sunucu açılırken bu değer yüklenmeli ve kapanırken kaydedilmeli ha.
TL bakiye görüntüleme komutu
C++:
ACMD(do_tlbakiyesi)
{
if (!ch)
return;
ch->ChatPacket(CHAT_TYPE_INFO, "TL bakiyeniz: %u", ch->GetTL());
}
TL gönderme komutu
C++:
ACMD(do_gm_tlgonder)
{
if (!ch)
return;
// Sadece GM yetkisi olanlar kullanabilir
if (!ch->IsGM())
{
ch->ChatPacket(CHAT_TYPE_INFO, "Bu komutu kullanmak için yetkiniz yok.");
return;
}
char target_name[CHARACTER_NAME_MAX_LEN + 1];
int amount = 0;
if (sscanf(argument, "%s %d", target_name, &amount) != 2)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Kullanım: /gmtlgonder <oyuncu_ismi> <miktar>");
return;
}
if (amount <= 0)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Geçersiz miktar.");
return;
}
LPCHARACTER target_char = CHARACTER_MANAGER::instance().FindPC(target_name);
if (!target_char)
{
ch->ChatPacket(CHAT_TYPE_INFO, "Oyuncu bulunamadı.");
return;
}
target_char->AddTL(amount);
ch->ChatPacket(CHAT_TYPE_INFO, "%s oyuncusuna %d TL gönderildi.", target_char->GetName(), amount);
target_char->ChatPacket(CHAT_TYPE_INFO, "%s tarafından %d TL aldınız.", ch->GetName(), amount);
sys_log(0, "GM_TL_TRANSFER: %s sent %d TL to %s", ch->GetName(), amount, target_char->GetName());
}
Komut Kayıt (komut kayıt nedir soranlara hani gm komutları olan bölüm
C++:
void RegisterCommands()
{
command_info.insert(std::make_pair("gmtlgonder", do_gm_tlgonder));
}
varya kardaş oraya ekle)
Mıgo Pack ve Client Entegrasyonu
character.py dosyasına TL alanı ekleme
Python:
class Character:
def __init__(self):
self.tl = 0 # Yeni para birimi TL
def load_from_db(self, data):
# Örnek olarak veritabanından gelen veri
self.tl = data.get('tl', 0)
def save_to_db(self):
# Veritabanına kaydetme işlemi
return {'tl': self.tl}
def add_tl(self, amount):
self.tl += amount
def sub_tl(self, amount):
if self.tl < amount:
return False
self.tl -= amount
return True
Pack — TL Bilgisini Client’a Gönderme
Metin2 pack içinde client’a veri gönderme genellikle packet yapısı ile olur. Yeni bir packet alanı açıp TL bilgisini göndermen gerekir bremın .
Python packet fonksiyonu
Python:
def send_tl_update(character):
from net import send_packet
# Basit örnek, paket yapısına göre düzenle
packet = {
'header': 'TL_UPDATE',
'tl': character.tl
}
send_packet(character.player_id, packet)
Client (C#) — TL Bilgisini Alma ve Arayüzde Gösterme
Client Veri Yapısına TL alanı ekle
C#:
public class PlayerData
{
public int TL { get; set; } = 0;
// Diğer özellikler...
}
Packet işleyici içinde TL paketini yakalama
C#:
public void OnPacketReceived(Packet packet)
{
if (packet.Header == "TL_UPDATE")
{
int tlAmount = packet.ReadInt();
PlayerData.TL = tlAmount;
// TL bilgisini UI'da güncelle
UIManager.Instance.UpdateTLDisplay(tlAmount);
}
}
UI’da TL Gösterimi
C#:
public class UIManager
{
public static UIManager Instance = new UIManager();
public void UpdateTLDisplay(int tlAmount)
{
// Örnek: TL miktarını oyun arayüzündeki ilgili label/textbox'a yaz
tlLabel.Text = $"TL: {tlAmount}";
}
private Label tlLabel; // Bu label arayüzde oluşturulmalı
}
mıgo kanka ui tasarımıda mı olsun istiyorsun al ozaman
TL Gösterim Label’ı Oluşturma yani hele bir tl nin şeklini halini görelim
C#:
using System;
using System.Windows.Forms;
public class TLForm : Form
{
private Label tlLabel;
public TLForm()
{
this.Text = "Oyun Parası: TL";
tlLabel = new Label();
tlLabel.Text = "TL: 0";
tlLabel.Font = new System.Drawing.Font("Arial", 14);
tlLabel.AutoSize = true;
tlLabel.Location = new System.Drawing.Point(10, 10);
this.Controls.Add(tlLabel);
this.Width = 200;
this.Height = 60;
}
// TL miktarını güncelleyen metot
public void UpdateTL(int amount)
{
if (this.InvokeRequired)
{
this.Invoke(new Action<int>(UpdateTL), amount);
}
else
{
tlLabel.Text = $"TL: {amount}";
}
}
}
Ana Client UI’ya Entegre Etme yani client src ye ha biliyorsunuzdur ya okadar da değil
C#:
// Örnek: Oyun başlarken veya karakter girişinde
TLForm tlForm = new TLForm();
tlForm.Show();
Packet Geldiğinde UI Güncelleme
C#:
public void OnTLUpdatePacketReceived(int newAmount)
{
tlForm.UpdateTL(newAmount);
}
hee bu kadar şimdi yukardaki kodu ekledin mesela gittin benim oyuncular arası yang paylaşımi sisteeminide oyuna entegre ettin. ordan feyz olarak yang fonksiyonu veya değişkeni yerine yeni para birimi olan tl yi eklediğini düşünsene oyun içinde türk lirası dönüyor mıgo o konu nerde diye sorma Aha çünkü buraya bastığında konuyu göreceksin zaten
Merhaba,
Konudaki kodlar bir anlam ifade etmiyor. Bu sebepten dolayı kapatıldı.
Çalıştığına dair kanıt'ı rapor olarak iletirseniz konunuz tekrar açılacaktır.
Metin2 client'ı C++ projesi, c# değil, neden c# kodu verdiğinizi anlayamadım.
Teşekkürler,
Konudaki kodlar bir anlam ifade etmiyor. Bu sebepten dolayı kapatıldı.
Çalıştığına dair kanıt'ı rapor olarak iletirseniz konunuz tekrar açılacaktır.
Metin2 client'ı C++ projesi, c# değil, neden c# kodu verdiğinizi anlayamadım.
Teşekkürler,
- Durum
- Üzgünüz bu konu cevaplar için kapatılmıştır...
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 345
- Cevaplar
- 2
- Görüntüleme
- 324
- Cevaplar
- 6
- Görüntüleme
- 288
- Cevaplar
- 8
- Görüntüleme
- 395
- Cevaplar
- 10
- Görüntüleme
- 955

