Вернуться   CoderX :: Forums > Lineage II > L2PacketHack
Войти через OpenID

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 07.06.2011, 08:59   #1
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

Цитата:
Сообщение от Breadfan Посмотреть сообщение
и второе - чтоб верно считать read'ом - надо формат строк знать. Ты знаешь аионский формат? я - нет. так что уж лучше делать "как оно работает", чем "так будет красивее, но хз как оно работает".
на расшифровку поглядеть вот тебе и формат строки)
__________________
dyh9l вне форума   Ответить с цитированием
Старый 07.06.2011, 09:30   #2
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

от и что ему проще: обозначить в условии так как оно есть, или, чтобы комутотам угодить - лезть неизвестно куда, высматривая форматы (не факт что в инишках - от той самой нужной сборки) - и переписывать код, не зная заранее "а будет ли оно живое"?
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."

А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Breadfan вне форума   Ответить с цитированием
За это сообщение Breadfan нажился спасибкой от:
Старый 08.06.2011, 01:00   #3
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Breadfan, с одной стороны ты прав, с другой - так привязываться к константам.. По мне это не очень хорошо. Для начала конечно не плохо, но если идти дальше, то я думаю ему самому будет легче разбивать эту вот ерунду на Read'ы и Write'ы по структурам тексать. Например, будет у него пакет на 60 байтов, какого-нибудь маленького itemlist'а и что, он будет так же вот по 60 байт переписывать? Поэтому лучше конечно сразу разбираться так, что бы было понятно, но потом упрощать для дальнейших изменений, т.е. создавать 1 скрипт для различных условий (но иногда это означает усложнят код, что, на мой взгляд, не существенный минус, если во всем разобраться)
Kilatif вне форума   Ответить с цитированием
Старый 08.06.2011, 01:33   #4
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию

Помогите тогда разобраться
Вот у меня есть слово например, первый 4 байта это вроде ID на сообшение в чат, потом идет само сообщение, например это /брбр
Как мне сделать, чтоб Read, считывал это слово в чате?
вот у меня слово
'delphi' Код:
('B9 57 76 00 2F 00 31 04 40 04 31 04 40 04 00 00')
там 12 пар байтов, я не знаю как их считать

Добавлено через 2 минуты
там даже 10 байтов слова, 2 пары нулей, это не относится к слову, я не знаю, что это, какой то ID

Последний раз редактировалось Deffol, 08.06.2011 в 01:33. Причина: Добавлено сообщение
Deffol вне форума   Ответить с цитированием
Старый 08.06.2011, 02:39   #5
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Deffol, два последних байта нулей - обычно так обозначается конец строки, т.к. строка может быть любого размера, то как-то нужно конец обозначить - вот и обозначили двумя байтами нулей при WideString (в такой строке 2 байта определяют 1 символ), как у тебя собственно или еще может быть 1 пара нулей, если это обычная строка (1 символ = 1 байт) Я считаю все что связанно с считыванием строк нужно считывать именно через ReadS, т.к. эта процедура сама определяет где у тебя строка кончается. А именно у тебя это будет так:

Код:
...
var pos : integer; //позиция для чтения в твоем пакете
    x : integer; //ID на сообщение в чат
    s : string; //твоя строка
...
begin
  pos := 1;//ставим позицию для чтения с первого байта пакета;
  x := ReadD(pos); //читаем 4 байта ID и переменная pos сразу сместится на 4 байта и станет равна 5
  s := ReadS(pos);// считывает строку в переменную s и смещает курсор pos на количество считанных байт
end;
...
А если тебе нужно считать только строку в данном случае это будет выглядеть так:
...
pos := 5;
s := ReadS(pos);
...

Вроде нигде не ошибся

Последний раз редактировалось Kilatif, 08.06.2011 в 02:42.
Kilatif вне форума   Ответить с цитированием
За это сообщение Kilatif нажился спасибкой от:
Старый 08.06.2011, 02:16   #6
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

delphi Код:
if FromServer and (pck[1]=#$4A) and (pck[6]=#$03) //пати чат просят рес   then begin      j:=10;                 // j - стартовая позиция указателя      //CharOID:=ReadD(j);   // -- OID перса      //TextType:=ReadD(j); //-- индекс чата в котором пишется текст      nick:=ReadS(j);    //-- считывается ник, и, одновременно, указатель байта сдвигается на его длинну, т.е после выполнения команды будет j:=j+(длинна_блока_оканчивающегося "00 00")      text:=ReadS(j);    //-- считываем текст сообщения      if (text='рес') then begin         idtelasmerti:=pck[2]+pck[3]+pck[4]+pck[5]; //вычисление айди того, кто просит рес, то есть он труп         buf:=HStr('04 ') + idtelasmerti;  //наведение таргета на этот труп. палевно, так как я не указал координаты трупа, но зато работает.         SendToServer;         rabota:='resurect';      end      else begin         if (text='хил') then begin            rabota:='heal';         end;         if (text='стоп') then begin            rabota:='';         end;         if (text='офф') then begin            rabota:='';            Timer01.enabled:=false;            buf:=HStr('46')//рестарт            SendToServer;         end;      end;   end;

кусочек кода из моего проекта.
__________________
хочу картинку в подпись!

Последний раз редактировалось Breadfan, 08.06.2011 в 08:48.
SeregaZ вне форума   Ответить с цитированием
Старый 08.06.2011, 09:53   #7
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию

кому как конечно, но мне кажется, что легче весь пакет добавить
места меньше занимает и я лучше понимаю, что к чему
Deffol вне форума   Ответить с цитированием
Старый 08.06.2011, 15:40   #8
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Deffol, ну вот когда столкнешься примерно со случаем, который я описал выше, тогда посмотрим как тебе понравится весь пакет добавлять
Kilatif вне форума   Ответить с цитированием
За это сообщение Kilatif нажился спасибкой от:
Старый 09.06.2011, 10:46   #9
Новичок
 
Регистрация: 09.06.2011
Сообщений: 1
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
SandeL пока неопределено
По умолчанию

народ вот есть скрипт

http://rghost.ru/10029911 (залил на файло так как суда он нехотел заливатся типо много символов.)

Можно ли в этом скрипте увиличить скорость точки???Если да покажите как)
SandeL вне форума   Ответить с цитированием
Старый 09.06.2011, 11:05   #10
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

т.е. вот эти загадочные комментарии:
..........
Timer02.interval:=300; //<<== время выбора скролл
............................
Timer03.interval:=500; //<<== время между заточкой
.....................
тебе ни о чем не говорят?
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."

А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Breadfan вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:44.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!