Показать сообщение отдельно
Старый 11.11.2020, 01:44   #8
Местный
 
Аватар для ScythLab
 
Регистрация: 24.10.2014
Сообщений: 190
Сказал Спасибо: 4
Имеет 42 спасибок в 40 сообщенях
ScythLab пока неопределено
По умолчанию

Цитата:
Сообщение от Elecktron Посмотреть сообщение
мой код рабочий
Жаль только, что в твоем коде на кой-то ляд используется регистр ESI и ему не восстанавливается его изначальное значение, что в некоторых случаях МОЖЕТ привести к исключению или ошибках в других частях программы. Вот именно поэтому и нужно знать ассемблер, чтобы не писать код с так называемым "непредсказуемым поведением".
И ассемблер полезно использовать там, где в нем есть необходимость, а не бездумно пихать куда попало (особенно если до конца не понимаешь как он работает), да и твой код прекрасно записывается на с++:
Код:
#define PACK_MTL 0x01
void Init()
{
  ClientSocket = *(DWORD*)((DWORD)UNetworkHandler + 0x48);
  true_SendPacket = *(_SendPacket*)((*(DWORD*)ClientSocket) + SendPackOffset);
}

void MoveBackwardToLocation(DWORD MoveToX,DWORD MoveToY,DWORD MoveToZ,DWORD CurrentX,DWORD CurrentY,DWORD CurrentZ)
{
  true_SendPacket(ClientSocket, "cddddddd", PACK_MTL, MoveToX, MoveToY, MoveToZ, CurrentX, CurrentY, CurrentZ, 1);
}
при этом в с++ варианте код реально рабочий, универсальный, не приводит к глупым ошибкам, когда у тебя меняется маска, да и явно выглядит попроще, неправда ли?
__________________
Хобби: разработка бота для Lineage.
ScythLab вне форума   Ответить с цитированием
За это сообщение ScythLab нажился спасибкой от: