ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
// 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;
}
};
ACMD(do_tlbakiyesi)
{
if (!ch)
return;
ch->ChatPacket(CHAT_TYPE_INFO, "TL bakiyeniz: %u", ch->GetTL());
}
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());
}
void RegisterCommands()
{
command_info.insert(std::make_pair("gmtlgonder", do_gm_tlgonder));
}
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
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)
public class PlayerData
{
public int TL { get; set; } = 0;
// Diğer özellikler...
}
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);
}
}
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ı
}
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}";
}
}
}
// Örnek: Oyun başlarken veya karakter girişinde
TLForm tlForm = new TLForm();
tlForm.Show();
public void OnTLUpdatePacketReceived(int newAmount)
{
tlForm.UpdateTL(newAmount);
}
