void CGameSocket::RecvMagicAttackReq(char* pBuf) { int index = 0; int sid = -1, tid = -1; int iMagicID = 0; sid = GetShort(pBuf,index); //tid = GetShort(pBuf,index); //iMagicID = GetDWORD(pBuf, index); CUser* pUser = NULL; pUser = m_pMain->GetUserPtr(sid); if(pUser == NULL) return; if(pUser->m_bLive == USER_DEAD || pUser->m_sHP <= 0) { if(pUser->m_sHP > 0) { pUser->m_bLive = USER_LIVE; TRACE("##### CGameSocket-Magic Attack Fail : User가 Heal된 경우.. [id=%s, bLive=%d, hp=%d] ######\n", pUser->m_strUserID, pUser->m_bLive, pUser->m_sHP); } else { TRACE("##### CGameSocket-Magic Attack Fail : UserDead [id=%s, bLive=%d, hp=%d] ######\n", pUser->m_strUserID, pUser->m_bLive, pUser->m_sHP); // 죽은 유저이므로 게임서버에 죽은 처리를 한다... Send_UserError(sid, tid); return; } } //pUser->MagicAttack(tid, iMagicID); pUser->m_MagicProcess.MagicPacket( pBuf+index ); }
void CGameSocket::RecvAttackReq(Packet & pkt) { uint16 sid, tid; float rx=0.0f, ry=0.0f, rz=0.0f, fDir = 0.0f, fHitAgi, fAvoidAgi; short sDamage, sAC, sItemAC, sAmountLeft, sAmountRight; BYTE type, result, bTypeLeft, bTypeRight; pkt >> type >> result >> sid >> tid >> sDamage >> sAC >> fHitAgi >> fAvoidAgi >> sItemAC >> bTypeLeft >> bTypeRight >> sAmountLeft >> sAmountRight; CUser* pUser = g_pMain->GetUserPtr(sid); if(pUser == NULL) return; if(pUser->m_bLive == USER_DEAD || pUser->m_sHP <= 0) { if(pUser->m_sHP > 0) { pUser->m_bLive = USER_LIVE; TRACE("##### CGameSocket-Attack Fail : User가 Heal된 경우.. [id=%d, %s, bLive=%d, hp=%d] ######\n", pUser->m_iUserId, pUser->m_strUserID, pUser->m_bLive, pUser->m_sHP); } else { TRACE("##### CGameSocket-Attack Fail : UserDead [id=%d, %s, bLive=%d, hp=%d] ######\n", pUser->m_iUserId, pUser->m_strUserID, pUser->m_bLive, pUser->m_sHP); // 죽은 유저이므로 게임서버에 죽은 처리를 한다... Send_UserError(sid, tid); return; } } pUser->m_sHitDamage = sDamage; pUser->m_fHitrate = fHitAgi; pUser->m_fAvoidrate = fAvoidAgi; pUser->m_sAC = sAC; pUser->m_sItemAC = sItemAC; pUser->m_bMagicTypeLeftHand = bTypeLeft; pUser->m_bMagicTypeRightHand = bTypeRight; pUser->m_sMagicAmountLeftHand = sAmountLeft; pUser->m_sMagicAmountRightHand = sAmountRight; pUser->Attack(sid, tid); }
void CGameSocket::RecvMagicAttackReq(Packet & pkt) { uint16 sid = pkt.read<uint16>(); CUser* pUser = g_pMain->GetUserPtr(sid); if (pUser == NULL) return; if(pUser->m_bLive == USER_DEAD || pUser->m_sHP <= 0) { if(pUser->m_sHP > 0) { pUser->m_bLive = USER_LIVE; TRACE("##### CGameSocket-Magic Attack Fail : User가 Heal된 경우.. [id=%s, bLive=%d, hp=%d] ######\n", pUser->m_strUserID, pUser->m_bLive, pUser->m_sHP); } else { TRACE("##### CGameSocket-Magic Attack Fail : UserDead [id=%s, bLive=%d, hp=%d] ######\n", pUser->m_strUserID, pUser->m_bLive, pUser->m_sHP); Send_UserError(sid, -1); return; } } pUser->m_MagicProcess.MagicPacket(pkt); }
void CGameSocket::RecvAttackReq(char* pBuf) { int index = 0; int sid = -1, tid = -1; BYTE type, result; char buff[256]; memset( buff, 0x00, 256 ); float rx=0.0f, ry=0.0f, rz=0.0f; float fDir = 0.0f; short sDamage, sAC; float fHitAgi, fAvoidAgi; // short sItemAC; BYTE bTypeLeft; BYTE bTypeRight; short sAmountLeft; short sAmountRight; // type = GetByte(pBuf,index); result = GetByte(pBuf,index); sid = GetShort(pBuf,index); tid = GetShort(pBuf,index); sDamage = GetShort( pBuf, index ); sAC = GetShort( pBuf, index ); fHitAgi = Getfloat( pBuf, index ); fAvoidAgi = Getfloat( pBuf, index ); // sItemAC = GetShort(pBuf, index); bTypeLeft = GetByte(pBuf, index); bTypeRight = GetByte(pBuf, index); sAmountLeft = GetShort(pBuf, index); sAmountRight = GetShort(pBuf, index); // //TRACE("RecvAttackReq : [sid=%d, tid=%d, zone_num=%d] \n", sid, tid, m_sSocketID); CUser* pUser = NULL; pUser = m_pMain->GetUserPtr(sid); if(pUser == NULL) return; //TRACE("RecvAttackReq 222 : [id=%d, %s, bLive=%d, zone_num=%d] \n", pUser->m_iUserId, pUser->m_strUserID, pUser->m_bLive, m_sSocketID); if(pUser->m_bLive == USER_DEAD || pUser->m_sHP <= 0) { if(pUser->m_sHP > 0) { pUser->m_bLive = USER_LIVE; TRACE("##### CGameSocket-Attack Fail : User가 Heal된 경우.. [id=%d, %s, bLive=%d, hp=%d] ######\n", pUser->m_iUserId, pUser->m_strUserID, pUser->m_bLive, pUser->m_sHP); } else { TRACE("##### CGameSocket-Attack Fail : UserDead [id=%d, %s, bLive=%d, hp=%d] ######\n", pUser->m_iUserId, pUser->m_strUserID, pUser->m_bLive, pUser->m_sHP); // 죽은 유저이므로 게임서버에 죽은 처리를 한다... Send_UserError(sid, tid); return; } } pUser->m_sHitDamage = sDamage; pUser->m_fHitrate = fHitAgi; pUser->m_fAvoidrate = fAvoidAgi; pUser->m_sAC = sAC; // pUser->m_sItemAC = sItemAC; pUser->m_bMagicTypeLeftHand = bTypeLeft; pUser->m_bMagicTypeRightHand = bTypeRight; pUser->m_sMagicAmountLeftHand = sAmountLeft; pUser->m_sMagicAmountRightHand = sAmountRight; // pUser->Attack(sid, tid); }