📄 user.cpp
字号:
m_Recv_value = dwValue;
}
command = GetByte(m_RData, index);
UserTimer();
// Before Game Start...
if(command == CHECK_ALIVE_REQ) CheckServerTest();
else if(command == ENCRYPTION_START_REQ) EncryptionStartReq(pBuf + index);
else if(command == ANNOUNCE_NOTICE) AnnounceNotice(pBuf + index);
if( !bEncryption ) return; // 鞠龋拳啊 救登绢 乐栏搁 公矫..
g_ThreadErr[m_iModSid] = command;
if(command != CLIENT_TICK)
{
m_dwNoDamageTime = 0;
m_dwLastNoDamageTime = GetTickCount();
}
// Before Game Start...
switch( command )
{
// case SESSION_LOGIN_REQ:
// SessionLoginReq(pBuf + index);
// break;
// case NEW_ACCOUNT_REQ:
// NewAccountReq(pBuf + index);
// break;
case ACCOUNT_LOGIN_REQ:
AccountLoginReq(pBuf + index);
// AccountLoginReqWithThread(pBuf+index);
// AccountLoginReqWithDbServer(pBuf+index);
break;
case NEW_CHAR_REQ:
NewCharReq(pBuf + index);
// NewCharReqWithThread(pBuf + index);
break;
case CHECK_ID_REQ:
CheckIDReq(pBuf + index);
break;
case REROLL_REQ:
RerollReq(pBuf + index);
break;
case DELETE_CHAR_REQ:
DeleteCharReq(pBuf + index);
// DeleteCharReqWithThread(pBuf + index);
break;
case GAME_START_REQ:
GameStart(pBuf + index);
// GameStartWithThread(pBuf + index);
// GameStartWithDbServer(pBuf + index);
break;
case ZONE_LOGIN_REQ:
ZoneLoginReq(pBuf + index);
break;
case LOGOUT_REQ:
SoftClose();
// LogOut();
break;
case CLIENT_TICK:
if ( g_ChatEnable[m_iModSid] == TRUE ) CheckSpeedHack();
break;
// case CHECK_ALIVE_REQ: //@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 抛胶飘 内靛烙
// CheckServerTest();
// break;
// case ANNOUNCE_NOTICE:
// AnnounceNotice(pBuf + index);
// break;
default:
break;
}
if( g_bShutDown )
{
SoftClose();
return;
}
// Game Start...
switch( command )
{
case CHAT_REQ:
// if ( g_ChatEnable[m_iModSid] == TRUE ) ChatReq(pBuf + index);
if ( g_ChatEnable[m_iModSid] == TRUE ) ChatReqWithThread(len-1, pBuf + index);
break;
case LIVE_REQ:
LiveReq(pBuf + index);
break;
case REVIVAL_REQ:
RevivalReq( pBuf + index );
break;
case USERINFO_REQ:
UserInfoReq(pBuf + index);
break;
case CLIENT_TIMER: // 老窜 SP甫 雀汗茄促.
// UserTimer();
break;
case ITEM_TRADE_REQ:
ItemTradeReq(pBuf + index);
break;
case EXCHANGE_REQ:
ExchangeReq(pBuf + index);
break;
case RESTART_REQ:
RestartReq(pBuf + index);
// RestartReqWithThread(pBuf + index);
break;
case HELP_REQ:
HelpStatusOpenReq();
break;
case SCREEN_CAPTURE_REQ:
ScreenCaptureReq( );
break;
case EXPRESSION_REQ:
ExpressionReq( pBuf + index );
break;
case EXPRESSION_OPEN:
ExpressionOpen( );
break;
// case PERSONAL_SHOP_REQ:
// if ( m_sLevel >= 100 ) PersonalShopReq( pBuf + index );
// break;
// case SERVER_TICK_REQ:
// SendServerTick();
// break;
default:
break;
}
if(m_bLive == USER_DEAD) return; // 酒贰狼 菩哦篮 蜡历啊 混酒乐阑 版快父 贸府
if(m_bNowTrading == TRUE) return; // Trade 吝俊绰 谍窿阑 给茄促.
if(m_bNoItemMove == TRUE) return; // 酒捞袍阑 框流阑 荐 绝绰 惑怕捞搁 府畔
if(m_bPShopOpen == TRUE) return; // User has Personal shop open
if(m_bViewingAShop == TRUE) return; // A User is viewing another users shop
if(m_state != STATE_GAMESTARTED) return;
if( m_bZoneLogOut ) return;
switch( command )
{
case CLIENT_EVENT:
ClientEvent(pBuf+index);
break;
case BANK_ITEM_MOVE_REQ:
BankItemMoveReq(pBuf + index);
break;
case BUY_ITEM:
BuyItem(pBuf + index);
break;
case BUY_PSY_REQ:
BuyPsi(pBuf + index);
break;
case SELL_ITEM:
SellItem(pBuf + index);
break;
case REPAIR_ITEM:
RepairItem(pBuf + index);
break;
case MOVE_CHAT_REQ:
MoveChatReq(pBuf + index);
break;
case CHANGE_DIR_REQ:
ChangeDir(pBuf + index);
break;
case MOVE_FIRST_REQ:
MoveFirstReq(pBuf + index);
break;
case MOVE_REQ:
MoveReq(pBuf + index);
break;
case MOVE_END_REQ:
MoveEndReq(pBuf + index);
break;
case RUN_FIRST_REQ:
RunFirstReq(pBuf + index);
break;
case RUN_REQ:
RunReq(pBuf + index);
break;
case RUN_END_REQ:
RunEndReq(pBuf + index);
break;
case FIND_USER_REQ:
FindUserReq(pBuf + index);
break;
case BBS_NEXT:
BBSNext(pBuf + index);
// BBSNextWithThread(pBuf + index);
break;
case BBS_READ:
BBSRead(pBuf + index);
// BBSReadWithThread(pBuf + index);
break;
case BBS_WRITE:
BBSWrite(pBuf + index);
// BBSWriteWithThread(pBuf + index);
break;
case BBS_EDIT:
BBSEdit(pBuf + index);
// BBSEditWithThread(pBuf + index);
break;
case BBS_DELETE:
BBSDelete(pBuf + index);
// BBSDeleteWithThread(pBuf + index);
break;
case PSI_ATTACK_REQ:
PsiAttack(pBuf + index);
break;
case ATTACK_REQ:
Attack(pBuf + index);
break;
case TRADE_MODE_REQ:
SetTradeMode(pBuf + index);
break;
case ITEM_MOVE_REQ:
ItemMoveReq(pBuf + index);
break;
case ITEM_GIVE_REQ:
ItemGiveReq(pBuf + index);
break;
case ITEM_LOAD_REQ:
ItemLoadReq(pBuf + index);
break;
case ITEM_USE_REQ:
ItemUseReq(pBuf + index);
break;
case CHANGE_WEAPON_REQ:
ChangeWeaponReq(pBuf + index);
break;
case SKILL_ONOFF_REQ:
SkillOnOffReq(pBuf + index);
break;
case PSI_CHANGE_REQ:
PsiChangeReq(pBuf + index);
break;
case USER_STATUS_SKILL_UP_REQ:
UserStatusSkillUp(pBuf + index);
break;
case BUDDY_MODE_REQ:
SetBuddyMode(pBuf + index);
break;
case UPGRADE_ITEM_REQ:
// SendSystemMsg( IDS_USER_UNDER_CONSTRUCTION, SYSTEM_NORMAL, TO_ME);
// UpgradeItemReq(pBuf + index);
UpgradeItemReqBegin(pBuf + index);
break;
case GUILD_OPEN_REQ:
NewGuild(pBuf + index);
// NewGuildWithThread(pBuf + index);
break;
case GUILD_WAREHOUSE_CLOSE:
GuildWharehouseCloseReq();
break;
case GUILD_ADD_REQ:
GuildAddReq(pBuf + index);
break;
case GUILD_MARK_ADD_REQ:
GuildMarkAddReq(pBuf + index);
// GuildMarkAddReqWithThread(pBuf + index);
break;
case GUILD_ITEM_MOVE_REQ:
GuildItemMoveReq(pBuf + index);
// GuildItemMoveReqWithThread(pBuf + index);
break;
case GUILD_USER_INFO_REQ:
GuildUserInfoReq(pBuf + index);
break;
case GUILD_TAX_REQ:
GetStoreTax(pBuf + index);
break;
case GUILD_WAR_REQ:
GetGuildWarScheme(pBuf + index);
break;
case GUILD_WAR_APPLY_REQ:
GuildWarApplyReq(pBuf + index);
break;
case GUILD_FIELD_WAR_RESULT:
SendGuildWarFieldApplyResult(pBuf + index);
break;
case GUILD_HOUSE_APPLY_REQ:
MassZoneMove(pBuf + index);
break;
case TELEPORT_REQ:
TeleportReq();
break;
case TELEPORT_EDIT_REQ:
TelportEdit(pBuf + index);
break;
case TELEPORT_COPY_REQ:
TeleportCopyReq(pBuf + index);
break;
case TELEPORT_COPY_RESULT:
TeleportCopyResult(pBuf + index);
break;
case EVENT_UPGRADE_ITEM_REQ:
EventUpgradeItemReq(pBuf + index);
break;
case ADDRESS_WINDOW_OPEN:
case ADDRESS_WINDOW_OPEN_NEW:
RecvAddress( pBuf + index );
break;
case PRE_REG_USER_EVENT_REQ:
RecvEventItemSerial( pBuf + index );
break;
case PRE_REG_GAMEROOM_EVENT_REQ:
RecvEventItemSerialForGameRoom( pBuf + index );
break;
case ACCOUNT_BANK_ITEM_MOVE_REQ:
AccountBankItemMoveReq( pBuf + index );
break;
case DRESSING:
m_bNoItemMove = TRUE;
DressingReq( pBuf + index );
m_bNoItemMove = FALSE;
break;
case SELECT_OVER100_SKILL:
SelectOver100Skill( pBuf+index );
break;
case GUILD_INVITE_REQ:
SendGuildInviteReq( pBuf+index );
break;
case GUILD_INVITE_RESULT:
GuildInviteResult( pBuf+index );
break;
case QUESTWINDOW_OPEN_REQ:
QuestWindowOpenReq( pBuf + index);
break;
case LOVE_NAME_REQ://--yskang 0.1
LoveName(pBuf+index);
break;
// Mail system by zinee 02-11-15
case MAIL_INFO_REQ:
MailInfoReq( pBuf+index );
break;
case MAIL_SEND_REQ:
MailSendReq( pBuf+index );
break;
case MAIL_LIST_REQ:
MailListReq( pBuf+index );
break;
case MAIL_CONTENTS_REQ:
MailContentReq( pBuf+index );
break;
case MAIL_DELETE_REQ:
MailDeleteReq( pBuf+index );
break;
case EBODY_IDENTIFY_REQ:
EBodyIdentifyReq( pBuf + index );
break;
case PK_BUTTON_REQ:
TogglePKButton( pBuf + index );
break;
case TRANSFORM_REQ:
TransformReq( pBuf + index );
default:
break;
}
}
//////////////////////////////////////////////////////////////////////
// About DB
///////////////////////////////////////////////////////////////////////////////////
// Session DB俊 Account 啊 乐绰瘤 犬牢窍绰 Stored Proc
//
BOOL USER::CheckSessionLoginReq(TCHAR *strAccount, TCHAR *strPassword, int& nCount)
{
nCount = 0;
SQLHSTMT hstmt;
SQLRETURN retcode;
TCHAR szSQL[1024];
BOOL bQuerySuccess = TRUE;
memset(szSQL, 0x00, 1024);
_sntprintf(szSQL, sizeof(szSQL), TEXT("{call LoginReq (\'%s\', \'%s\',?)}"), strAccount, strPassword);
SQLSMALLINT sCount = 0;
SQLINTEGER sCountInd;
hstmt = NULL;
int db_index = -1;
CDatabase* pDB = g_DBSession[m_iModSid].GetDB( db_index );
if( !pDB ) return FALSE;
retcode = SQLAllocHandle( (SQLSMALLINT)SQL_HANDLE_STMT, pDB->m_hdbc, &hstmt );
if (retcode!=SQL_SUCCESS)
{
// g_DBSession[m_iModSid].ReleaseDB(db_index);
return FALSE;
}
retcode = SQLBindParameter(hstmt,1 ,SQL_PARAM_OUTPUT,SQL_C_SSHORT, SQL_SMALLINT, 0, 0, &sCount, 0, &sCountInd);
if (retcode!=SQL_SUCCESS)
{
// g_DBSession[m_iModSid].ReleaseDB(db_index);
return FALSE;
}
retcode = SQLExecDirect (hstmt, (unsigned char *)szSQL, SQL_NTS);
if (retcode ==SQL_SUCCESS || retcode == SQL_SUCCESS_WITH_INFO)
{
while (TRUE)
{
retcode = SQLFetch(hstmt);
if (retcode !=SQL_SUCCESS && retcode !=SQL_SUCCESS_WITH_INFO)
{
break;
}
}
}
else if (retcode==SQL_ERROR)
{
bQuerySuccess = FALSE;
DisplayErrorMsg(hstmt);
}
else if (retcode==SQL_NO_DATA)
{
bQuerySuccess = FALSE;
}
if (hstmt!=NULL) SQLFreeHandle( (SQLSMALLINT)SQL_HANDLE_STMT, hstmt);
if( !bQuerySuccess )
{
// BREAKPOINT();
g_DBSession[m_iModSid].ReleaseDB(db_index);
return FALSE;
}
nCount = sCount;
g_DBSession[m_iModSid].ReleaseDB(db_index);
return TRUE;
}
////////////////////////////////////////////////////////////////////////////
// 捞固 鞍篮 Account 肺 立加茄 蜡历啊 乐绰瘤 八荤茄促.
//
BOOL USER::IsDoubleAccount(char *account)
{
if( !strlen( account ) ) return TRUE;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -