пасиб конешн но у мя подобие такого скрипт
но я хотел бы выборочно добавлять в конец ,если так оставить то от иг бота пральные пакеты идут а от клиента длиннее ,я хочу чтобы конкретно кажется с 25 бита были вот эти 01 00 00 00
buf:=pck; //сохранили пакет
pck:=''; //очистили пакет
WriteD(1,25); //добавили с 25--01 00 00 00
SendToServer; //отправили на сервер
конечно работать будет и так, но зачем сначала убивать пакет, а потом отправлять новый, если можно тупо заменить старый(как в моем варианте), еще плюс уже и коннект выбирать не придется, он пойдет туда куда и шел
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 Код:
beginif FromClient and(pck[1]=#$01)thenbegin
buf:=pck; //копируем пакет в буфер
WriteD(1,length(pck)-3); //меняем последние 4 байта на 01 00 00 00
pck:=buf; //копируем из буфера обратно в pck уже правильный пакет, и он летит дальше куда и летелend;
end.
вот такие примерно задачки нам приходится решать когда люди расплывчато задают вопросы, чем понятней вы излогаете вопрос, тем быстрее получаете на него правильный ответ
NLObP, отправит измененный пцк как только его отработают скрипты/плагины.
в следующие по очереди выполнения скрипты/плагины он будет "приходить" уже измененным.
прокатит.