bool GameServer::GeneratePacketSourceCode_AS3(int packetCode, const _String sDumpDir, const TCHAR* pszPackage, const TCHAR* pszSerializeBasePackage){ BasePacket* packet = m_pPacketHandler->CreatePacketByCode(packetCode); if( !packet ) return false; _String sSaveDir = sDumpDir; Path::BuildFullPath(sSaveDir); StringToStringArray arrGenPackages; if( !packet->GenerateSourceCodeInAS3(arrGenPackages, pszPackage, pszSerializeBasePackage) ){ delete packet; return false; } if( sSaveDir.GetAt(sSaveDir.GetLength() - 1) != '\\' ) sSaveDir += _T("\\"); _String sPackage, sSourceCode, sFile; for(int i=0; i<arrGenPackages.GetCount(); i++){ sPackage = arrGenPackages.GetKey(i); sSourceCode = arrGenPackages.GetValueByIndex(i); sFile.Format(_T("%s%s.as"),sSaveDir.GetBuffer(), sPackage.GetBuffer()); Path::SaveAsFile(sSourceCode.GetBuffer(), sSourceCode.GetLength(), sFile); } return true; }