Цитата:
Сообщение от NLObP
mks, я про то, что пакет изначально (неправильный от бота) короче на 4 байта. Мы его правим в лет. Прокатит ли?
|
да я понял, просто слегка непонятно со слов автора что требуется сделать, в моем случае пакет не удлиняется, поэтому прокатит, а если удлинить хз как пх отреагирует, надо просто попробовать, думаю должен проглотить
PS Если б автор выложил неправильный пакет от бота и пакет какой он хочет из него получить, уже давно сделали бы скрипт, а тут непонятно получается, давайте анализировать вместе:
1.
Цитата:
мне нужно из 1 пакета сосчитать с 2 по 24 бит включительно
|
судя по этому можно сделать вывод что длина пакета больше 24байт(разумеется учитываем что автор имел в виду байты а не биты)
2.
Цитата:
и добавить к нему еще 4 бита
|
операясь на вывод в п.1. дальше не должно было звучать "добавить", "добавить" я считаю должно звучать когда добавляем в конце пакета, а раз 25й байт не конец пакета, возникает вопрос: что имел в виду автор? Раз "добавить" мы исключили, остается два варианта - либо вставить 4 байта, либо заменить 4 байта
3.
Цитата:
там пакет (MoveBackwardToLocation) от клиента немного отличается от пакета который бот отправляет ( последними 4 битами 01 00 00 00 что означает что я типо мышкой нажал)
|
и наконец 3й пункт отвечает нам на вопрос второго, раз пакет
отличается последними 4мя байтами, значит автор имел в виду не добавить, не вставить, а всетаки
заменить, и причем заменить
последние 4 байта, а раз последние 4 байта, тогда сделаем общий скрипт, нам уже не важно какая длина пакета:
delphi Код:
begin
if FromClient and (pck[1]=#$01) then
begin
buf:=pck; //копируем пакет в буфер
WriteD(1,length(pck)-3); //меняем последние 4 байта на 01 00 00 00
pck:=buf; //копируем из буфера обратно в pck уже правильный пакет, и он летит дальше куда и летел
end;
end.
вот такие примерно задачки нам приходится решать когда люди расплывчато задают вопросы, чем понятней вы излогаете вопрос, тем быстрее получаете на него правильный ответ