L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
Возникла такая трабла ,при правке чата две последние строки пакета это ник перса и само сообщение. Так вот строки меняют длинну в зависимости от ника и байт начала сообщения смещается, отчего некоректно они отображаются. Как с этим бороться? Или хотябы как определить первый байт сообщения? Пример:
MAIIINHNCTKA:NCTKA
4A E8 97 F0 10 00 00 00 00 4D 00 41 00 49 00 49 00 49 00 4E 00 48 00 4E 00 43 00 54 00 4B 00 41 00 00 00 48 00 69 00 00 00
Omanderonn
4A 63 76 05 10 11 00 00 00 4F 00 6D 00 61 00 6E 00 64 00 65 00 72 00 6F 00 6E 00 00 00 12 04 22 04 21 04 20 00 10 04 40 04 3A 04 43 04 20 00 2B 00 37 00 20 00 41 04 20 00 21 04 10 04 20 00 3F 04 3C 04 20 00 31 00 41 00 4C 00 49 00 4E 00 4B 00 41 00 31 00 00 00
Жирным выделены байт начала ника и самого сообщения
Чат криво отображается тоже из-за несоответствия пакетов, если ты об этом В принципе, решение этому есть буквально 1-2 страницей раньше этого топика, где J-Fobos мне помог решить такую же проблему.
Чат криво отображается тоже из-за несоответствия пакетов, если ты об этом В принципе, решение этому есть буквально 1-2 страницей раньше этого топика, где J-Fobos мне помог решить такую же проблему.
Это немного другая проблема. Иероглифы побеждены благодаря
buf:=#$4A;
WriteD(0);
WriteD(type);// чтобы чат разделялся на общий, пм и тд
WriteS('');
WriteS(' '+Msg+#0+#0+#0+#0);;(от Фбоса, за что ему респект)
SendToClientEx(name);
Дальше я подставляю в msg:
msg1:=ReadS(10);//ник
msg2:=ReadS(24);//сообщение НО ВОТ ЭТОТ № БАЙТА ВСЕ ВРЕМЯ МЕНЯЕТСЯ
type:=ReadD(6);
SendMsg2((msg1)+':'+(msg2));
Как мне узнать первый байт сообщения в пакете?
Если нада выложу весь скрипт
__________________
Пока мы убиваем время,
время убивает нас...
Слова начальника: Ну как, все планеты победил?
Последний раз редактировалось michonik, 09.03.2011 в 23:08.
Это немного другая проблема. Иероглифы побеждены благодаря
buf:=#$4A;
WriteD(0);
WriteD(type);// чтобы чат разделялся на общий, пм и тд
WriteS('');
WriteS(' '+Msg+#0+#0+#0+#0);;(от Фбоса, за что ему респект)
SendToClientEx(name);
Дальше я подставляю в msg:
msg1:=ReadS(10);//ник
msg2:=ReadS(24);//сообщение НО ВОТ ЭТОТ № БАЙТА ВСЕ ВРЕМЯ МЕНЯЕТСЯ
type:=ReadD(6);
SendMsg2((msg1)+':'+(msg2));
Как мне узнать первый байт сообщения в пакете?
Если нада выложу весь скрипт
Нет, msg1:=ReadS(10); /это ник, ево начало 10 й байт пакета
msg2:=ReadS(х); /тело сообщения
но а у них разные, тоесть
4A 00 00 00 00 11 00 00 00 00 00 20 00 20 00 56 00 65 00 72 00 6E 00 65 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
черное ник, и он начинается всегда с 10 байта
а цветное это сообщение и оно начинается с другова байта в зависимости от длинны ника. ППЦ, как быть?
!!!
Все разобрался! Спасибо dyh9l! Походу выполнения операции переменная а изменяется.
msg1:=ReadS(a);//а=10
msg2:=ReadS(a);//а=скока нада
Только теперь почемуто длинные сообщения не выводит полностью
__________________
Пока мы убиваем время,
время убивает нас...
Слова начальника: Ну как, все планеты победил?
Последний раз редактировалось michonik, 09.03.2011 в 23:40.
Нет, msg1:=ReadS(10); /это ник, ево начало 10 й байт пакета
msg2:=ReadS(х); /тело сообщения
но а у них разные, тоесть
4A 00 00 00 00 11 00 00 00 00 00 20 00 20 00 56 00 65 00 72 00 6E 00 65 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
черное ник, и он начинается всегда с 10 байта
а цветное это сообщение и оно начинается с другова байта в зависимости от длинны ника. ППЦ, как быть?
!!!
Все разобрался! Спасибо dyh9l! Походу выполнения операции переменная а изменяется.
msg1:=ReadS(a);//а=10
msg2:=ReadS(a);//а=скока нада
Только теперь почемуто длинные сообщения не выводит полностью
Лично для меня проще пользоваться процедурой ReadMask; Пример на твоем пакете:
Код:
var temp : array [0..10] of variant;
...
...
ReadMask('DDSS', 2, temp);
...
...
Теперь у тебя в массиве temp будет хранится весь прочитанный пакет. Конкретно строки будут храниться в temp[2] (ник) и temp[3] (сообщение)
Нет, msg1:=ReadS(10); /это ник, ево начало 10 й байт пакета
msg2:=ReadS(х); /тело сообщения
но а у них разные, тоесть
4A 00 00 00 00 11 00 00 00 00 00 20 00 20 00 56 00 65 00 72 00 6E 00 65 00 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
черное ник, и он начинается всегда с 10 байта
а цветное это сообщение и оно начинается с другова байта в зависимости от длинны ника. ППЦ, как быть?
!!!
Все разобрался! Спасибо dyh9l! Походу выполнения операции переменная а изменяется.
msg1:=ReadS(a);//а=10
msg2:=ReadS(a);//а=скока нада
Только теперь почемуто длинные сообщения не выводит полностью
это смещение, можно еще как то поколдовать с length но у мну дружеских отношений с этой функцией не сложились) можешь по гуглить)
Заметил одну интересную особенность, которая меня вводит просто в недоумение..... Я взял 8 чаров и 1 бота-бафера. Из этих 8 чаров, он не бафает только 1!!! (причем того, кого мне нужно =( )При этом чары самые ранзные. И классы разные и сокланы и не сокланы и лвлы разные. Я просто не понимаю почему так...
Добавлено через 20 часов 34 минуты
В общем что касается бафа сопартийцев... Я так и не понял в чем мой гном такой особенный и почему его единственного нормально не бафает, но. Что касается пакетов, то заметил что не бафает его тогда, когда на бафера приходит пакет PartySmallWindowAll (но это скорее всего из-за того что я там этот пакет коверкаю, что бы нормально отображались имена пати), НО тем не менее это не мешает ему бафать других чаров!!! а вот когда приходит пакет PartySmallWindowAdd На бафера, то бафает он вроде всех и без всяких проблем.
А на самом деле я не понимаю, он то бафает нормально то не бафает.... В общем китайский рандом) Зато я разобрался с авторесом. Когда умирает чар, приходит с сервера пакет Die, так вот что бы авторес работал нужно после CharID вставлять имя того кто умер
Последний раз редактировалось Kilatif, 10.03.2011 в 23:39.
Причина: Добавлено сообщение