L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
//QaK:отдельная тема по подкючению пакетхака к серверу >>>>>>>>тут
любые вопросы по данной тематике в этом топе будут удаляться без предупреждения.
Код:
const
mp='8A 1B 15 01 10';
hp='8A 1A 15 01 10';
begin
if fromclient and (pck[1]=#$38#$F5#$00#$EF#$00#$00#$00#$03#$00#$00#$00) then
begin
buf:=hstr(hp);
SendToServer;
end;
if fromclient and (pck[2]=#$33#$F5#$00#$EF#$00#$40#$00#$03#$00#$00#$00) then
begin
buf:=hstr(mp);
SendToServer;
end;
end.
где я ошибся?
Последний раз редактировалось QaK, 30.08.2010 в 18:56.
dyh9l, там есть, как предлагает Фобос, список строк. Но я думал может можно сразу текст преобразовать и не мучиться...
Кстати, о муках... Когда делаешь WriteS, то он добавляет признак конца файла? Т.е. #$00#$00 в конце? Если да.... То нужно как-то убирать эти 2 байта, что бы можно было записать несколько строк, как 1 текст...
Последний раз редактировалось Kilatif, 13.05.2011 в 04:20.
А предварительно сформировать сумму строк, типа - all:=Memo1.Lines.strings[1]+Memo1.Lines.strings[2]+Memo1.Lines.strings[3]; и лишь затем - WriteS(all) - никак чтоль?
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 13.05.2011 в 10:01.
А если эта строка получится больше 255 символов, т.е. она не поместится в string? Я подумывал о всяких фокусах с массивом символов, но почему-то не получалось...
Последний раз редактировалось Kilatif, 13.05.2011 в 12:09.
влезет еще как. На крайняк - Length тебя спасет Оффтоп
delphi Код:
for i:=1to N dobeginif(length(all)+length(string(i)))>255)thenbegin
Send(all);
all:=string(i);
endelse all:=all+String(i);
end;
end;
Send(all);
- это если в чат чето длинное надо.
Кстати - откуда инфа про 255? По-моему это неверно
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 13.05.2011 в 16:06.
Объясню конкретнее.... Мне Memo нужен для отправки письма. Соответственно в Memo у меня будет текст письма. Тексты будут достаточно обширные. А еще учитывая что текст этот юникодовский, т.е. это WideString, то каждый символ будет занимать 2 байта.
Вот прям сейчас набросал типичное письмо, которое мне нужно посылать и оно уже получилось почти 400 байт. Так что нет, не поместится
//Breadfan: Откуда инфа про 255 байт-то?
Добавлено через 2 часа 32 минуты
Цитата:
Breadfan: Откуда инфа про 255 байт-то?
В обычный тип string помещается только 255 (или 256...) байт текста, не больше. По крайней мере это и в делфе и в обычном пасе. Может быть в FastScript по другому, но я так не думаю... В общем, решение я нашел. Вот, может кому пригодиться:
Код:
procedure WriteMemo(M_Buf : TMemo);
var i : integer;
begin
for i := 0 to M_Buf.Lines.Count-1 do
begin
WriteS(M_Buf.Lines.Strings[i]);
Delete(buf, length(buf) - 1, 2);
buf := buf + #$0D#$00#$0A#$00;
end;
WriteS(M_Buf.Lines.Strings[M_Buf.Lines.Count]);
Delete(buf, length(buf) - 1, 2);
buf := buf + #$00#$00;
end;
Добавлено через 16 минут
У меня есть еще вопрос
Какой пакет отвечает за список членов клана? Ну и вообще за информацию о клане.
Последний раз редактировалось Kilatif, 13.05.2011 в 16:59.
Причина: Добавлено сообщение
В пакете на отправку письма - поле текста имеет максимальный размер - 512 символов. НЕ БАЙТ, а именно 512 символов впихиваетса туда (по крайней мере в х5
private static final int MAX_RECV_LENGTH = 16;//комуprivate static final int MAX_SUBJ_LENGTH = 128;//тема письмаprivate static final int MAX_TEXT_LENGTH = 512;//текст письмаprivate static final int MAX_ATTACHMENTS = 8;// вложения
........................................
if(_receiver.length() > MAX_RECV_LENGTH){
activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ALLOWED_LENGTH_FOR_RECIPIENT_EXCEEDED));
return;
}if(_subject.length() > MAX_SUBJ_LENGTH){
activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ALLOWED_LENGTH_FOR_TITLE_EXCEEDED));
return;
}if(_text.length() > MAX_TEXT_LENGTH){
// not found message for this
activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ALLOWED_LENGTH_FOR_TITLE_EXCEEDED));
return;
}if(_items != null && _items.length > MAX_ATTACHMENTS){
activeChar.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.ITEM_SELECTION_POSSIBLE_UP_TO_8));
return;
и ФС нормально это переваривает.
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 13.05.2011 в 19:34.