Ayın Serverı
DeathKO | v1453 Fire Drake | Official Açılış: 12 HAZİRAN - 21:00 GMT+3
12 gün 5 saat önce açıldı
Server'a Göz At
24xx Offline Pazar (Merchant)
GameserverDlg.cpp içersinde CreateDirectory Satırlarını bulup devamına ;
Kod:
CreateDirectory("Logs/OfflineMerchantLogs",NULL);
Satırını ekliyoruz. Daha sonra;
void CGameServerDlg::****log(std::string & logMessage) girdilerininin altına ;
Kod:
void CGameServerDlg::WriteOfflineMerchantLog(std::string & logMessage)
{
AddLogRequest(logMessage,LogTypes::OFFLINEMERCHANT);
}
Ekliyoruz,
Gameserverdlg.h içersinde FILE m_***; girdilerini arıyoruz altına ;
Kod:
FILE *m_fpOfflineMerchantLog;
ekliyoruz. Buradaki girdilerin aşağıda voidleri olmalı onları bulup altına ;
Kod:
void WriteOfflineMerchantLog(std::string & logMessage);
eklyoruz.
Knightlogger.cpp bu kısımda Case ile başlayıp break ile biten girdilerden birinin altına ;
Kod:
case OFFLINEMERCHANT:
g_pMain->m_fpOfflineMerchantLog = fopen(string_format("./Logs/OfflineMerchantLogs/OfflineMerchant_%d_%d_%d.log", time.GetDay(), time.GetMonth(),time.GetYear()).c_str(), "a");
if (g_pMain->m_fpOfflineMerchantLog == nullptr)
{
printf("ERROR: Unable to open OfflineMerchant file.\n");
break;
}
fwrite(logmsg.c_str(), logmsg.length(), 1, g_pMain->m_fpOfflineMerchantLog);
fflush(g_pMain->m_fpOfflineMerchantLog);
fclose(g_pMain->m_fpOfflineMerchantLog);
break;
ekliyoruz.
loginhandler.cpp
içersinde WIZ_LOGIN altında CUser * pUser = g_pMain->GetUserPtr... bulup altına
Kod:
if (pUser && pUser->OfflineMerchantLoginType)
{
pUser->OfflineMerchantLoginType = false;
pUser->OfflineMerchantSocketType = false;
DateTime time;
g_pMain->WriteOfflineMerchantLog(string_format("[Merchant Disconnect - %d:%d:%d ] = %s\n", time.GetHour(), time.GetMinute(), time.GetSecond(), pUser->GetName().c_str()));
pUser->Disconnect();
goto fail_return;
}
ekliyoruz.
Merchanthandler.cpp içersinde void CUser::MerchantClose() bulup altına ;
Kod:
OfflineMerchantSocketType = false;
OfflineMerchantLoginType = false;
ekliyoruz,
m_bMerchantState = MERCHANT_STATE_SELLING;
SendToRegion(&result, nullptr, GetEventRoom()); bulup altına ;
Kod:
_ITEM_TABLE* pOfflineMerchantItem = GetItemPrototype(CFAIRY); // Peri Slotuna Takýlýmý kontrol et.
if (pOfflineMerchantItem == nullptr)//takýlý deðilse içeri girme.
return;
if (pOfflineMerchantItem != nullptr && pOfflineMerchantItem->m_iNum == 900677882) // Otp Emblem -> Offline Emblem
{
OfflineMerchantSocketType = true;
OfflineMerchantLoginType = true;
g_pMain->SendHelpDescription(this, string_format("[TR] - ""[Offline Merchant] : Offline merchant aktif edildi oyundan çýkabilirsiniz!"));
g_pMain->SendHelpDescription(this, string_format("[EN] - ""[Offline Merchant] : Offline merchant active. You can exit the game!"));
}
ekliyoruz.
User.cpp içersinde void CUser::Initialize() bulup altına ;
Kod:
OfflineMerchantLoginType = false;
ekliyoruz.
void CUser::Update(bool save) arıyoruz, altında ki kapatılmış kodlardan birinin arkasından
Kod:
if (OfflineMerchantSocketType && OfflineMerchantTimeType)
{
if (UNIXTIME >= OfflineMerchantTime)
{
OfflineMerchantSocketType = false;
OfflineMerchantTimeType = false;
DateTime time;
g_pMain->WriteOfflineMerchantLog(string_format("[Merchant Disconnect - %d:%d:%d ] = %s\n", time.GetHour(), time.GetMinute(), time.GetSecond(), GetName().c_str()));
Disconnect();
return;
}
}
ekliyoruz.
User.h içersine ;
Kod:
bool OfflineMerchantLoginType;
ekliyoruz.
packets.h içersinde enum logtypes altına devam edip
Kod:
OFFLINEMERCHANT = 14,
ekliyoruz.
socket.cpp altında
Kod:
OfflineMerchantSocketType(false), OfflineMerchantTimeType(false)
ekliyoruz.
Alt satıra ise
Kod:
OfflineMerchantTime = 0;
ekliyoruz.
void Socket:😀isconnect()
{
if (!IsConnected())
return; Kodunun altına ;
Kod:
if (OfflineMerchantSocketType)
{
if (OfflineMerchantTime <= 0)
{
OfflineMerchantTimeType = true;
OfflineMerchantTime = (uint32_t(UNIXTIME) + 172800); /* 36000 = 10 saat / 3600 = 1 Saat*/
}
return;
}
ekliyoruz.
Socket.h içersine
Kod:
//Offline Merchant
bool OfflineMerchantSocketType;
bool OfflineMerchantTimeType;
uint32_t OfflineMerchantTime;
Offline itemi yukarı bölümde geçmişti bunu kendinize göre değiştirebilirsiniz.
Itemi Peri Slotuna Emblem şeklinde kendiniz ekleyebilirsiniz.
Eksiğini görenler belirtirse amacına ulaşmış olur.
Kayıt: 2026
Mesaj: 0
İtibar: 0
Cevap yazabilmek için giriş yapmalısınız.