user.cpp
来自「国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国」· C++ 代码 · 共 214 行
CPP
214 行
#include "stdafx.h"
#include "MasterServer.h"
#include "msgHandler.h"
#include "user.h"
CUser::CUser()
{
}
CUser::~CUser()
{
}
void CUser::Init(int nSockIndex)
{
m_nIndex = nSockIndex;
int i=MAX_MECHANIC_SLOT;
while(i--) m_cMechanic[i].index = (BYTE)i;
}
BOOL CUser::Insert(DWORD dwAddr)
{
strcpy(m_szID, "Guest");
if(m_nState != STATE_DISCONNECT)
{
IN_ADDR in_addr;
in_addr.s_addr = dwAddr;
if(m_nState == STATE_CLOSE)
{
_printf("**********************************exception************************************\n");
_log("PC%d StateError[!STATE_DISCONNECT] CUser::Insert() > 辑滚啊悼 霖厚吝俊 努扼捞攫飘 立加[%s:%s]", m_nIndex, inet_ntoa(in_addr), GetStateLog());
return FALSE;
}
_printf("**********************************exception************************************\n");
_log("PC%d StateError[!STATE_DISCONNECT] CUser::Insert() > 捞固 劝己拳等 家南俊 努扼捞攫飘 立加[%s:%s]", m_nIndex, inet_ntoa(in_addr), GetStateLog());
return FALSE;
}
m_nState = STATE_CONNECT;
m_dwRemoteIP = dwAddr;
m_nAccount = 0;
m_nInvenCnt = 0;
return TRUE;
}
void CUser::Delete()
{
#ifdef _DBG_ENGINE
_printf("努扼捞攫飘 辆丰[%s]\n", m_szID);
#endif
if(m_nState != STATE_CLOSE)
m_nState = STATE_DISCONNECT;
m_nAccount = 0;
}
BOOL CUser::SetInven(int nSlot, char *pItemStr)
{
if(*pItemStr)
{
char nType;
ITEM_INFO *pInven = m_cInven + m_nInvenCnt;
pInven->index = (char)nSlot;
sscanf(pItemStr, "%u %c %u", &pInven->id, &nType, &pInven->value);
switch(nType)
{
case 'U': pInven->use = USE_UNLIMITED; break;
case 'T': pInven->use = USE_TIME; break;
case 'D': pInven->use = USE_DUR; break;
case 'P': pInven->use = USE_DISPOSABLE; break;
}
++m_nInvenCnt;
return TRUE;
}
return FALSE;
}
BOOL CUser::SetGarage()
{
m_nMechanicCnt=0;
while(m_nMechanicCnt < MAX_MECHANIC_SLOT)
{
if(!g_cMasterServer.m_cGarageEnum.account[m_nMechanicCnt]) break;
++m_nMechanicCnt;
}
BOOL bEmpty = TRUE;
int i=0;
while(i < MAX_MECHANIC_SLOT)
{
if(m_cMechanic[i].account)
{
bEmpty = FALSE;
break;
}
++i;
}
if(bEmpty && m_nMechanicCnt == 1)
{
m_cMechanic[0].account = g_cMasterServer.m_cGarageEnum.account[0];
m_cMechanic[0].id = g_cMasterServer.m_cGarageEnum.id[0];
m_cMechanic[0].fight = g_cMasterServer.m_cGarageEnum.fight[0];
m_cMechanic[0].dur = g_cMasterServer.m_cGarageEnum.dur[0];
m_cMechanic[0].skin = g_cMasterServer.m_cGarageEnum.skin[0];
m_cMechanic[0].color = g_cMasterServer.m_cGarageEnum.color[0];
m_cMechanic[0].weapon_slot[WEAPON_MAIN] = g_cMasterServer.m_cGarageEnum.main_slot[0];
m_cMechanic[0].weapon_slot[WEAPON_SUB] = g_cMasterServer.m_cGarageEnum.sub_slot[0];
m_cMechanic[0].weapon_slot[WEAPON_BACK1] = g_cMasterServer.m_cGarageEnum.back_slot1[0];
m_cMechanic[0].weapon_slot[WEAPON_BACK2] = g_cMasterServer.m_cGarageEnum.back_slot2[0];
m_cMechanic[0].weapon_slot[WEAPON_BACK3] = g_cMasterServer.m_cGarageEnum.back_slot3[0];
return TRUE;
}
i=0;
while(i < MAX_MECHANIC_SLOT)
{
if(m_cMechanic[i].account)
{
int j=0;
while(j < m_nMechanicCnt)
{
if(m_cMechanic[i].account == g_cMasterServer.m_cGarageEnum.account[j])
{
m_cMechanic[i].id = g_cMasterServer.m_cGarageEnum.id[j];
m_cMechanic[i].fight = g_cMasterServer.m_cGarageEnum.fight[j];
m_cMechanic[i].dur = g_cMasterServer.m_cGarageEnum.dur[j];
m_cMechanic[i].skin = g_cMasterServer.m_cGarageEnum.skin[j];
m_cMechanic[i].color = g_cMasterServer.m_cGarageEnum.color[j];
m_cMechanic[i].weapon_slot[WEAPON_MAIN] = g_cMasterServer.m_cGarageEnum.main_slot[j];
m_cMechanic[i].weapon_slot[WEAPON_SUB] = g_cMasterServer.m_cGarageEnum.sub_slot[j];
m_cMechanic[i].weapon_slot[WEAPON_BACK1] = g_cMasterServer.m_cGarageEnum.back_slot1[j];
m_cMechanic[i].weapon_slot[WEAPON_BACK2] = g_cMasterServer.m_cGarageEnum.back_slot2[j];
m_cMechanic[i].weapon_slot[WEAPON_BACK3] = g_cMasterServer.m_cGarageEnum.back_slot3[j];
}
++j;
}
}
++i;
}
return (m_nMechanicCnt != 0);
}
void CUser::SetInfo(char *pInfoPack)
{
MSGINFO *msg = (MSGINFO *)pInfoPack;
strcpy(m_szID, msg->lsmsUserInfo.user_id);
strcpy(m_szNick, msg->lsmsUserInfo.user_nick);
strcpy(m_szClan, msg->lsmsUserInfo.clan_name);
m_nGender = msg->lsmsUserInfo.gender;
m_nPilot = msg->lsmsUserInfo.pilot;
m_nCash = msg->lsmsUserInfo.cash;
m_nPoint = msg->lsmsUserInfo.point;
m_dwBestPoint = msg->lsmsUserInfo.best_point;
m_dwBestStraight = msg->lsmsUserInfo.best_straight;
m_dwWinStraight = msg->lsmsUserInfo.win_straight;
m_dwWin = msg->lsmsUserInfo.win;
m_dwLose = msg->lsmsUserInfo.lose;
m_dwKill = msg->lsmsUserInfo.kill;
m_dwDeath = msg->lsmsUserInfo.death;
m_dwRank = msg->lsmsUserInfo.rank;
m_dwQuit = msg->lsmsUserInfo.quit;
m_dwBlack = msg->lsmsUserInfo.black;
m_nLevel = msg->lsmsUserInfo.level;
m_nExp = msg->lsmsUserInfo.exp;
m_nInvenCnt = msg->lsmsUserInfo.inven_cnt;
m_nMechanicCnt = msg->lsmsUserInfo.mechanic_cnt;
m_dwPrivateIP = msg->lsmsUserInfo.private_ip;
m_nAccount = msg->lsmsUserInfo.account;
m_nState = STATE_JOINLOGIN;
int i=MAX_MECHANIC_SLOT;
while(i--) m_cMechanic[i].id = 0;
#ifdef _DBG_GAMELOGIC
_printf("CUser::SetInfo(%s)\n", m_szID);
#endif
}
void CUser::SetGarage(char *pInfoPack)
{
MSGINFO *msg = (MSGINFO *)pInfoPack;
m_cMechanic[msg->lsmsMechanicInfo.index].id = msg->lsmsMechanicInfo.id;
m_cMechanic[msg->lsmsMechanicInfo.index].fight = msg->lsmsMechanicInfo.fight;
m_cMechanic[msg->lsmsMechanicInfo.index].dur = msg->lsmsMechanicInfo.dur;
m_cMechanic[msg->lsmsMechanicInfo.index].skin = msg->lsmsMechanicInfo.skin;
m_cMechanic[msg->lsmsMechanicInfo.index].color = msg->lsmsMechanicInfo.color;
m_cMechanic[msg->lsmsMechanicInfo.index].account = msg->lsmsMechanicInfo.account;
memcpy(m_cMechanic[msg->lsmsMechanicInfo.index].weapon_slot, msg->lsmsMechanicInfo.weapon_slot, WEAPON_MAX);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?