YARDIM istrap acs dc ettirme sorunu

bytuku

KY Kıdemli Üye
Katılım
13 Mar 2022
Mesajlar
117
Tepkime puanı
3
Puanları
48
istrap acs dc ettirme sorunu charlar dc olmuyor
login handle aşşagıda ki gibidir

#include "stdafx.h"

void CUser::VersionCheck(Packet & pkt)
{
if (m_bSelectedCharacter || m_bIsLoggingOut)
return;

Packet result(WIZ_VERSION_CHECK);
result << uint8(0) << uint16(__VERSION) << uint8_t(0) << uint64(0) << uint64(0) << uint8(0); // 0 = success, 1 = prem error
Send(&result);
}

void CUser::KickOutProcess(Packet & pkt)
{
std::string account;
pkt >> account;
if (account.empty() || account.size() > MAX_ID_SIZE)
return;

CUser* pUser = g_pMain->GetUserPtr(account, NameType::TYPE_ACCOUNT);
if (pUser)
pUser->goDisconnect();

return;
/*std::string crpyto = "", account = "", password = "";
pkt >> crpyto;
if (crpyto.empty() || crpyto.size() < 4)
return;

size_t start = 0, end = crpyto.find("+//");
if (end != std::string::npos)
account = crpyto.substr(start, end - start);
else return;

if (account.empty() || account.size() > MAX_ID_SIZE)
return;

start = end + 3;
password = crpyto.substr(start);
if (password.empty() || !g_pMain->WordGuardSystem(password, password.size()))
return;

CUser* pUser = g_pMain->GetUserPtr(account, NameType::TYPE_ACCOUNT);
if (!pUser)
return;

Packet newpkt(WIZ_KICKOUT);
newpkt << account << password;
g_pMain->AddDatabaseRequest(newpkt, this);*/
}

void CUser::ReqKickOutProcess(Packet& pkt)
{
std::string accountid, passid;
pkt >> accountid >> passid;

if (accountid.empty() || accountid.size() > MAX_ID_SIZE
|| passid.empty())
return;

std::string db_password = g_DBAgent.getmypassword(accountid);
if (db_password.empty() || db_password != passid)
return;

CUser* pUser = g_pMain->GetUserPtr(accountid, NameType::TYPE_ACCOUNT);
if (pUser)
pUser->goDisconnect();
}

void CUser::SendLoginFailed(int8 errorid) {

Packet result(WIZ_LOGIN);
result << int8(-1);
Send(&result);
}

void CUser::LoginProcess(Packet & pkt)
{
if (!m_strAccountID.empty() || !string_is_valid(m_strAccountID))
return;

if (m_bSelectedCharacter || m_bIsLoggingOut || !m_strAccountID.empty())
return SendLoginFailed(-1);

std::string strAccountID, strPasswd;
pkt >> strAccountID >> strPasswd;
if (strAccountID.empty() || strAccountID.size() > MAX_ID_SIZE
|| strPasswd.empty() || strPasswd.size() > MAX_PW_SIZE)
return;

bool disconnect = false;
CUser* pUser = g_pMain->GetUserPtr(strAccountID, NameType::TYPE_ACCOUNT);
if (pUser && pUser->IsDeleted())
return SendLoginFailed(-1);

if (pUser)
disconnect = true;

Packet result(WIZ_LOGIN);
result << strPasswd << strAccountID << disconnect;
g_pMain->AddDatabaseRequest(result, this);
}
 

YNG

Moderatör
KY YardımSever
Coder
Katılım
21 Ağu 2022
Mesajlar
113
Çözümler
7
Tepkime puanı
111
Puanları
53
Yaş
35
Dc problemini nerede alıyorsun
 

bytuku

KY Kıdemli Üye
Katılım
13 Mar 2022
Mesajlar
117
Tepkime puanı
3
Puanları
48
charlar dc ettirilmiyor ofiline mercanta koyuyoruz chrı dc olmuyor char neyden kaynaklanır acaba
 

bytuku

KY Kıdemli Üye
Katılım
13 Mar 2022
Mesajlar
117
Tepkime puanı
3
Puanları
48
// Offline Merchant Checker
CUser * pUser = g_pMain->GetUserPtr(strAccountID, NameType::TYPE_ACCOUNT);
if (pUser != nullptr && pUser->OfflineMerchantLoginType) //offline merchant
{
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();
result << int8(-1);
Send(&result);
return;
}
 

bytuku

KY Kıdemli Üye
Katılım
13 Mar 2022
Mesajlar
117
Tepkime puanı
3
Puanları
48
bu kodu eklemem gerekiyor galiba
Dc problemini nerede alıyorsun
charlar dc ettirilmiyor ofiline mercanta koyuyoruz chrı dc olmuyor char neyden kaynaklanır acaba
// Offline Merchant Checker
CUser * pUser = g_pMain->GetUserPtr(strAccountID, NameType::TYPE_ACCOUNT);
if (pUser != nullptr && pUser->OfflineMerchantLoginType) //offline merchant
{
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();
result << int8(-1);
Send(&result);
return;
}
bu kodu eklemem gerekiyor galiba da eklediğimde sokte fln vs ekledim çalışmıyor
 

Hagen

Fahri Üye
Katılım
21 Eki 2023
Mesajlar
416
Çözümler
48
Tepkime puanı
78
Puanları
63
Login serverden veya LOGIN SQL Prosedüründen dc ettirmeliyiz gibi duruyor sanki? siz ne düşünüyorsunuz.
 

Hagen

Fahri Üye
Katılım
21 Eki 2023
Mesajlar
416
Çözümler
48
Tepkime puanı
78
Puanları
63
Ben Biraz c++'ya uzağım fakat; ACS Mantığıyla olan TBL verileri gibi,
USER_IN_GAME alan bir if kuralı içerisinde gameserver'e paket gönderip gameserver'den bu kişiyi düşürebileceğimizi düşündüm.
@YNG sende nasıl işliyor bu syntax sen bizden öndesin :D
 

kutas123

KY Üye
Katılım
31 Eki 2023
Mesajlar
61
Tepkime puanı
1
Puanları
8
Yes i noticted that, sometimes when u dc in selection character the same problem, after u cant login again.
 

YNG

Moderatör
KY YardımSever
Coder
Katılım
21 Ağu 2022
Mesajlar
113
Çözümler
7
Tepkime puanı
111
Puanları
53
Yaş
35
Ben Biraz c++'ya uzağım fakat; ACS Mantığıyla olan TBL verileri gibi,
USER_IN_GAME alan bir if kuralı içerisinde gameserver'e paket gönderip gameserver'den bu kişiyi düşürebileceğimizi düşündüm.
@YNG sende nasıl işliyor bu syntax sen bizden öndesin :D
Basit login Serverdan Game Server Paket Yollayacaksın o şekilde düşürebilirsin .

örn proje dersen SexyKO Source paylaşılmıştı onun üzerinden alabilirsin.
 
Reklam