#include "StdAfx.h" #include "PythonNetworkStream.h" #include "Packet.h" #include "AccountConnector.h" #include "PackLib/PackProfile.h" // Login --------------------------------------------------------------------------- void CPythonNetworkStream::LoginPhase() { DispatchPacket(m_loginHandlers); } void CPythonNetworkStream::SetLoginPhase() { if ("Login" != m_strPhase) m_phaseLeaveFunc.Run(); Tracef("[PHASE] Entering phase: Login\n"); Tracen(""); Tracen("## Network - Login Phase ##"); Tracen(""); MarkPackProfilePhase("login"); m_strPhase = "Login"; m_phaseProcessFunc.Set(this, &CPythonNetworkStream::LoginPhase); m_phaseLeaveFunc.Set(this, &CPythonNetworkStream::__LeaveLoginPhase); m_dwChangingPhaseTime = ELTimer_GetMSec(); if (0 == m_dwLoginKey) { ClearLoginInfo(); return; } if (__DirectEnterMode_IsSet()) { SendLoginPacketNew(m_stID.c_str(), m_stPassword.c_str()); ClearLoginInfo(); CAccountConnector & rkAccountConnector = CAccountConnector::Instance(); rkAccountConnector.ClearLoginInfo(); } else { SendLoginPacketNew(m_stID.c_str(), m_stPassword.c_str()); ClearLoginInfo(); CAccountConnector & rkAccountConnector = CAccountConnector::Instance(); rkAccountConnector.ClearLoginInfo(); PyCallClassMemberFunc(m_apoPhaseWnd[PHASE_WINDOW_LOGIN], "OnLoginStart", Py_BuildValue("()")); __ClearSelectCharacterData(); } } bool CPythonNetworkStream::__RecvEmpirePacket() { TPacketGCEmpire kPacketEmpire; if (!Recv(sizeof(kPacketEmpire), &kPacketEmpire)) return false; m_dwEmpireID=kPacketEmpire.bEmpire; return true; } bool CPythonNetworkStream::__RecvLoginSuccessPacket3() { TPacketGCLoginSuccess3 kPacketLoginSuccess; if (!Recv(sizeof(kPacketLoginSuccess), &kPacketLoginSuccess)) return false; for (int i = 0; i