#ifndef _SERVERPACKETS_ #include "ServerPackets.h" #endif void CharSelectInfo(CSocket *pSocket, BYTE pPacketHeader, va_list vPacket) { pPacketHeader = va_arg(vPacket, BYTE); DWORD dwCharCount = va_arg(vPacket, Int32); DWORD dwBufferSize = va_arg(vPacket, Int32); Char *pBuffer = va_arg(vPacket, Char *); CPacketDisassembler pCSIBuffer(pBuffer); CPacketAssembler pCSIPacket; pCSIPacket.WriteC(pPacketHeader); pCSIPacket.WriteD(dwCharCount); pCSIPacket.WriteD(dwBufferSize + (dwCharCount * 16)); for (DWORD i = 0; i < dwCharCount; i++) { pCSIPacket.WriteS(pCSIBuffer.ReadS()); //0 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //1 pCSIPacket.WriteS(pCSIBuffer.ReadS()); //2 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //3 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //4 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //5 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //6 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //7 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //8 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //9 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //10 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //11 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //12 pCSIPacket.WriteF(pCSIBuffer.ReadF()); //13 pCSIPacket.WriteF(pCSIBuffer.ReadF()); //14 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //15 pCSIPacket.WriteQ(pCSIBuffer.ReadD()); //16 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //17 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //18 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //19 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //20 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //21 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //22 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //23 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //24 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //25 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //26 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //27 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //28 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //29 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //30 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //31 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //32 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //33 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //34 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //35 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //36 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //37 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //38 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //39 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //40 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //41 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //42 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //43 pCSIPacket.WriteD(0); //44 - mask objid pCSIPacket.WriteD(pCSIBuffer.ReadD()); //45 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //46 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //47 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //48 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //49 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //50 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //51 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //52 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //53 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //54 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //55 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //56 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //57 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //58 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //59 pCSIPacket.WriteD(pCSIBuffer.ReadD()); pCSIPacket.WriteD(0); //60 - mask itemid pCSIPacket.WriteD(pCSIBuffer.ReadD()); //61 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //62 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //63 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //64 pCSIPacket.WriteF(pCSIBuffer.ReadF()); //65 pCSIPacket.WriteF(pCSIBuffer.ReadF()); //66 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //67 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //68 pCSIPacket.WriteD(pCSIBuffer.ReadD()); //69 pCSIPacket.WriteC(pCSIBuffer.ReadC()); //70 pCSIPacket.WriteD(0); } pSocket->Send("b", pCSIPacket.GetSize(), pCSIPacket.GetPacket()); }