Experienced Elementalist
- Joined
- May 12, 2014
- Messages
- 263
- Reaction score
- 62
CSCOMMON ----> MMatchServer_Login.cpp
---->
NotE: Server Zombie DELETE.
DB > Programmability > spGetLoginInfo > EDIT
ATT: NeXus Destroyer:junglejane:
---->
FORvoid MMatchServer::OnMatchLogin(MUID CommUID, const char* szUserID, const char* szPassword, int nCommandVersion, unsigned long nChecksumPack, char *szEncryptMd5Value, char* szHwid)
void MMatchServer::OnMatchLogin(MUID CommUID, const char* szUserID, const char* szPassword, int nCommandVersion, unsigned long nChecksumPack, char *szEncryptMd5Value, char* szHwid){
//Wizkidz
if (strstr(szUserID, "'") || strstr(szPassword, "'")) {
return;
}
int nMapID = 0;
unsigned int Status = 0;
unsigned int nAID = 0;
char szDBPassword[32] = "";
string strCountryCode3;
bool bFreeLoginIP = false;
if (strstr(szHwid, "%") || strstr(szUserID, "%") || strstr(szPassword, "%"))
{
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_CLIENT_WRONG_PASSWORD);
Post(pCmd);
return;
}
if (!CheckOnLoginPre(CommUID, nCommandVersion, bFreeLoginIP, strCountryCode3)) return;
if (!m_MatchDBMgr.GetLoginInfo(szUserID, &nAID, szDBPassword))
{
#ifdef _DEBUG
m_MatchDBMgr.CreateAccount(szUserID, szPassword, 0, szUserID, 20, 1);
strcpy(szDBPassword, szPassword);
m_MatchDBMgr.GetLoginInfo(szUserID, &nAID, szDBPassword);
#endif
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_CLIENT_WRONG_PASSWORD);
Post(pCmd);
return;
}
MCommObject* pCommObj = (MCommObject*)m_CommRefCache.GetRef(CommUID);
if (pCommObj)
{
if (!m_MatchDBMgr.UpdateLastConnDate(szUserID, pCommObj->GetIPString()))
{
mlog("DB Query(OnMatchLogin > UpdateLastConnDate) Failed");
}
}
if (strcmp(szDBPassword, szPassword))
{
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_CLIENT_WRONG_PASSWORD);
Post(pCmd);
return;
}
MMatchAccountInfo accountInfo;
if (!m_MatchDBMgr.GetAccountInfo(nAID, &accountInfo, MGetServerConfig()->GetServerID()))
{
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_FAILED_GETACCOUNTINFO);
Post(pCmd);
}
MMatchAccountPenaltyInfo accountpenaltyInfo;
if (!m_MatchDBMgr.GetAccountPenaltyInfo(nAID, &accountpenaltyInfo))
{
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_FAILED_GETACCOUNTINFO);
Post(pCmd);
}
#ifndef _DEBUG
MMatchObject* pCopyObj = GetPlayerByAID(accountInfo.m_nAID);
if (pCopyObj != NULL)
{
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(pCopyObj->GetUID(), MERR_MULTIPLE_LOGIN);
Post(pCmd);
//Disconnect(pCopyObj->GetUID());
}
#endif
/*
* Steven: Hwid
*/
m_MatchDBMgr.GetHwidInfo(&Status, szHwid);
if (Status == 1) {
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_HWID_BANNED);
Post(pCmd);
return;
}
m_MatchDBMgr.CreateHwid(accountInfo.m_nAID, szHwid); //Actualiza el HWID de la Cuenta
if ((accountInfo.m_nUGrade == MMUG_BLOCKED) || (accountInfo.m_nUGrade == MMUG_PENALTY))
{
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_CLIENT_MMUG_BLOCKED);
Post(pCmd);
return;
}
if ((accountInfo.m_nUGrade == MMUG_BLOCKED) || (accountInfo.m_nUGrade == MMUG_PENALTY))
{
MCommand* pCmd = CreateCmdMatchResponseLoginFailed(CommUID, MERR_CLIENT_MMUG_BLOCKED);
Post(pCmd);
return;
}
#ifndef _DEBUG
if (MGetServerConfig()->IsUseMD5())
{
unsigned char szMD5Value[MAX_MD5LENGH] = { 0, };
pCommObj->GetCrypter()->Decrypt(szEncryptMd5Value, MAX_MD5LENGH, (MPacketCrypterKey*)pCommObj->GetCrypter()->GetKey());
memcpy(szMD5Value, szEncryptMd5Value, MAX_MD5LENGH);
if ((memcmp(m_szMD5Value, szMD5Value, MAX_MD5LENGH)) != 0)
{
LOG(LOG_PROG, "MD5 error : AID(%u).\n \n", accountInfo.m_nAID);
return;
}
}
#endif
AddObjectOnMatchLogin(CommUID, &accountInfo, &accountpenaltyInfo, bFreeLoginIP, strCountryCode3, nChecksumPack);
}
NotE: Server Zombie DELETE.
DB > Programmability > spGetLoginInfo > EDIT
USE [GunZDB]
GO
/****** Object: StoredProcedure [dbo].[spGetLoginInfo] Script Date: 03/23/2016 13:36:14 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
/* LoginInfo ¾ò¾î¿È */
ALTER PROC [dbo].[spGetLoginInfo]
@userID varchar(20)
AS
SET NOCOUNT ON
SELECT AID, UserID, Password FROM Login(nolock) WHERE UserID = @userID
ATT: NeXus Destroyer:junglejane:
Last edited: