Witam. Potrzebuje przepisac kod z C do Delphi a kompletnie nie mam pojecia jak to zrobic.

 char  * cp, cMsg[300], cTxt[256], cKey;
 WORD  * wp;
 DWORD * dwp, dwTime;
 short * sp; 
 int   * ip, iRet, i, * fightzonenum ;

	if ((m_pGSock == NULL) && (m_pLSock == NULL)) return FALSE;

	dwTime = timeGetTime();
 
	ZeroMemory(cMsg, sizeof(cMsg));
	cKey = (char)(rand() % 255) +1; // v1.4

		// to Log Server
		dwp = (DWORD *)(cMsg + DEF_INDEX4_MSGID);
		*dwp = dwMsgID;
		wp  = (WORD *)(cMsg + DEF_INDEX2_MSGTYPE);
		*wp = NULL;

		cp = (char *)(cMsg + DEF_INDEX2_MSGTYPE + 2);

		// 2002-09-16 #1 for Terra
#ifdef DEF_ACCOUNTLONG
		ZeroMemory(cTxt, sizeof(cTxt)); // v1.4
		memcpy(cTxt, m_cAccountLong, DEF_ACCOUNTLEN);
		memcpy(cp, cTxt, DEF_ACCOUNTLEN);
		cp += DEF_ACCOUNTLEN;
#else
		ZeroMemory(cTxt, sizeof(cTxt)); // v1.4
		memcpy(cTxt, m_cAccountName, 10);
		memcpy(cp, cTxt, 10); 
		cp += 10;
#endif
		ZeroMemory(cTxt, sizeof(cTxt)); // v1.4
		memcpy(cTxt, m_cAccountPassword, 10);
		memcpy(cp, cTxt, 10); 
		cp += 10;
		//v1.43
		memcpy(cp, m_cWorldServerName, 30);
		cp += 30;
		// 2002-09-16 #1 for Terra
#ifdef DEF_ACCOUNTLONG
		iRet = m_pLSock->iSendMsg(cMsg, 46 + DEF_ACCOUNTLEN, cKey);
#else
		iRet = m_pLSock->iSendMsg(cMsg, 56, cKey);
#endif

I jeszcze to :)

int XSocket::iSendMsg(char * cData, DWORD dwSize, char cKey)
{
 WORD * wp;
 int    i, iRet;

	// ¸Ţ˝ĂÁö Ĺ??â°ˇ ąöĆŰş¸´Ů Ĺ?¸é ş¸łľ Ľö ľř´Ů.
	if (dwSize > m_dwBufferSize) return DEF_XSOCKEVENT_MSGSIZETOOLARGE;

	// ¸?˝ş´× ĽŇÄĎ Č¤Ŕş ´ÝČů ĽŇÄĎŔ¸?Î ¸Ţ˝ĂÁö¸? ş¸łľ Ľö´Â ľř´Ů.
	if (m_cType != DEF_XSOCK_NORMALSOCK) return DEF_XSOCKEVENT_SOCKETMISMATCH;
	// ĂĘ?âČ­ ?ÇÁö ľĘľĆĽ­ ¸Ţ˝ĂÁö¸? ş¸łľ Ľö ľř´Ů.
	if (m_cType == NULL) return DEF_XSOCKEVENT_NOTINITIALIZED;

	// Ĺ° ŔÔ? 
	m_pSndBuffer[0] = cKey;

	wp  = (WORD *)(m_pSndBuffer + 1);
	*wp = (WORD)(dwSize + 3);

	memcpy((char *)(m_pSndBuffer + 3), cData, dwSize);
	// v.14 : m_pSndBuffer +3 şÎĹÍ dwSize?îÁö cKey°ˇ 0ŔĚ ľĆ´Ď?ó¸é ľĎČŁČ­ÇŃ´Ů.
	if (cKey != NULL) {
		for (i = 0; i < (int)(dwSize); i++) {
			m_pSndBuffer[3+i] += (i ^ cKey);
			m_pSndBuffer[3+i] = (char)( m_pSndBuffer[3+i] ^ (cKey ^ (dwSize - i)) );
		}
	}
	
	// 2001-11-27ŔĎ ĽöÁ¤?Ę
	if (m_bIsWriteEnabled == FALSE) {
		iRet = _iRegisterUnsentData(m_pSndBuffer, dwSize +3);
	} 
	else iRet = _iSend(m_pSndBuffer, dwSize + 3, TRUE);

	if (iRet < 0) return iRet;
	else return (iRet - 3);
}

Bardzo prosze o pomoc.