Показать сообщение отдельно
Старый 24.08.2017, 03:01   #29
Новичок
 
Регистрация: 25.08.2016
Сообщений: 21
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
wongerlt пока неопределено
По умолчанию

so any one know where problem?
Код:
void __cdecl new_SendPacket(unsigned int This, char *Format, ...)
{
	if(enumas==0)
		enumas=1;
	
	unsigned char *buf;
	buf = (unsigned char *) malloc(65535);
	int size = 0, len;
	wchar_t *wstr;
    va_list args;
	va_start(args, Format);

	while (*Format != 0)
	{
		
		switch (*Format)
		{
			case 'c':
				*(unsigned char*) (buf + size) = va_arg(args, unsigned char);
				size++;
				break;
			case 'h':
				*(unsigned short int*) (buf + size) = va_arg(args, unsigned short int);
				size += 2;
				break;
			case 'd':
				*(unsigned int*) (buf + size) = va_arg(args, unsigned int);
				size += 4;
				break;
			case 'Q':
				*(unsigned __int64*) (buf + size) = va_arg(args, unsigned __int64);
				size += 8;
				break;
			case 'b':
				len = va_arg(args, unsigned int);
				memcpy(size+buf, va_arg(args, void*), len);
				size += len;
				break;			
			case 'S':
				wstr = va_arg(args, wchar_t*);
				if (wstr == 0)
				{
					len = 2;
					*(unsigned short int*) (buf + size) = 0;
				}
				else
				{
					len = wcslen(wstr) * 2 + 2;
					memcpy(size+buf, wstr, len);
				}
				size += len;
				break;
			default:
				true_SendPacket(This, "cc", 0xA1, 0x04);
				break;
		}
		Format++;	
	}

	va_end(args);

	
	true_SendPacket(This, "b", size, (int)buf);
	free(buf);
}
all work but still error on hero list.
wongerlt вне форума   Ответить с цитированием