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

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 09.07.2010, 18:37   #1
Новичок
 
Регистрация: 09.07.2010
Сообщений: 19
Сказал Спасибо: 13
Имеет 1 спасибку в 1 сообщении
ampeg пока неопределено
Злость Помогите со скриптом

Здравствуйте, товарищи.
Помогите, пожалуйста написать скрипт на покупку вещей в обычном магазине.
я, к сожалению, почти ничего не понимаю в программировании=\
заранее благодарен.
П.С.,
хроники ц4
Код:
begin

buf:=hstr('04 BE 2C 10 48 09 43 01 00 58 44 02 00 74 F2 FF FF 00');
SendToServer;
Delay (100);
buf:=hstr('04 BE 2C 10 48 09 43 01 00 58 44 02 00 74 F2 FF FF 00');
SendToServer;
Delay (100);
buf:=hstr('20 74 00 65 00 73 00 74 00 5F 00 73 00 65 00 72 00 76 00 65 00 72 00 5F 00 68 00 65 00 6C 00 70 00 65 00 72 00 5F 00 67 00 6D 00 6F 00 2E 00 68 00 74 00 6D 00 00 00');
SendToServer;
Delay (100);
buf:=hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 31 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 31 00 32 00 00 00');
SendToServer;
Delay (100);
buf:=hstr('1F 44 78 2D D6 01 00 00 00 B1 19 00 00 01 00 00 00');
SendToServer;
Delay (100);

end.
проблема в том, что после последнего пакета не происходит покупка, а приходит пакет ActionFail, а до этого все работает как должно..
доходит до окна покупки, ну и дальше тот самый пакет экшн фэйл и все.
помогите разобраться=\
как я понял, проблема в том, что ListID в пакете BuyList, приходящем от сервера каждый раз разный, и нужно заменять это значение в последнем пакете RequestBuyItem, отправляемым мной на сервер.
Подскажите пожалуйста, как это сделать.
П.С.С.
я правильно думал, если отправляю пакеты руками, пошагово, то все покупается.
помогите написать замену этого значения,т.е. нужно поймать пакет BuyList, вытащить из него значение ListID, и вставить его в последний отправляемый пакет.
но, к сожалению, ума не приложу как написать это на дэльфи.

Добавлено через 15 часов 43 минуты
Пытался сделать вот так:
Код:
var
ListID:integer; 
begin
begin
buf:=hstr('04 BE 2C 10 48 09 43 01 00 58 44 02 00 74 F2 FF FF 00');
SendToServer;
Delay (100);
buf:=hstr('04 BE 2C 10 48 09 43 01 00 58 44 02 00 74 F2 FF FF 00');
SendToServer;
Delay (100);
buf:=hstr('20 74 00 65 00 73 00 74 00 5F 00 73 00 65 00 72 00 76 00 65 00 72 00 5F 00 68 00 65 00 6C 00 70 00 65 00 72 00 5F 00 67 00 6D 00 6F 00 2E 00 68 00 74 00 6D 00 00 00');
SendToServer;
Delay (100);
buf:=hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 31 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 31 00 32 00 00 00');
SendToServer;
Delay (100);
end;
        If (ConnectName='DamageControl') and FromServer and (pck[1] = #$11) then begin
        ListID:=ReadD(6);
        buf:=hstr('1F' + 'IntToStr(ListID)' + '01 00 00 00 B1 19 00 00 01 00 00 00');
        SendToServer;
        end;
end.
Но выдает ошибку программы:
Access violation at address 132775B5 in module 'icq.exe'. Read of address 00000001.

Последний раз редактировалось ampeg, 09.07.2010 в 20:46. Причина: Добавлено сообщение
ampeg вне форума   Ответить с цитированием
Старый 09.07.2010, 21:17   #2
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Первое что надо сказать: НЕ используйте Delay в скриптах, тормозится весь трафик. Для таких вещей есть таймер.

"ListID в пакете BuyList, приходящем от сервера каждый раз разный" вы уверенны? Я такого никогда не встречал. Но в любом случаи организуйте таймер. Если с ним заработает, то проблема отпадет сама собой, а если нет - будем дальше разбираться
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился спасибкой от:
Старый 09.07.2010, 21:34   #3
Новичок
 
Регистрация: 09.07.2010
Сообщений: 19
Сказал Спасибо: 13
Имеет 1 спасибку в 1 сообщении
ampeg пока неопределено
По умолчанию

Да, я уверен.
каждый раз, при покупке,
те самые байты в пакете различаются.
а насчет делея я учту, спасибо)
но, даже не смотря на делей, проблема не в нем, а в том самом пакете.
Все бы было просто, если бы был мультиселл.
в нем пакеты всегда одинаковые, а тут - нет.
кстати,
если убрать
Код:
If (ConnectName='DamageControl') and FromServer and (pck[1] = #$11) then begin
в комментрий, то скрипт закончит работать без ошибок, последний пакет отправится, но в нем не будет хватать заветных байтов)
помогите уже разобраться, что за фигня =\

Код:
var
 tick: Integer;
 ListID:integer; 
procedure Init;
begin
end;
function Pause(Timewait: Integer):Boolean;
  var
    t : integer;
  begin
    result := false;
    t := Round(Time*86400);
    if  t > (tick + Timewait) then
      begin
        tick := t;
        result := true;
      end;
  end; 
begin
begin
buf:=hstr('04 BE 2C 10 48 09 43 01 00 58 44 02 00 74 F2 FF FF 00');
SendToServer;
Pause (2);
buf:=hstr('04 BE 2C 10 48 09 43 01 00 58 44 02 00 74 F2 FF FF 00');
SendToServer;
Pause (2);
buf:=hstr('20 74 00 65 00 73 00 74 00 5F 00 73 00 65 00 72 00 76 00 65 00 72 00 5F 00 68 00 65 00 6C 00 70 00 65 00 72 00 5F 00 67 00 6D 00 6F 00 2E 00 68 00 74 00 6D 00 00 00');
SendToServer;
Pause (2);
buf:=hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 31 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 31 00 32 00 00 00');
SendToServer;
Pause (2);
end;
        If (ConnectName='DamageControl') and FromServer and (pck[1] = #$11) then begin
        ListID:=ReadD(6);
        buf:=hstr('1F' + 'IntToStr(ListID)' + '01 00 00 00 B1 19 00 00 01 00 00 00');
        SendToServer;
        end;
end.
пробывал так.
пакеты летят с бешенной скоростью, все виснет,
каубудто задержки и нет вовсе,
по прежнему не работает.

Последний раз редактировалось ampeg, 09.07.2010 в 22:47.
ampeg вне форума   Ответить с цитированием
Старый 09.07.2010, 23:19   #4
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Еще раз: используйте т а й м е р

Выложите 2-3 пакета с списком продаж, я заинтересовался.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился спасибкой от:
Старый 09.07.2010, 23:28   #5
Новичок
 
Регистрация: 09.07.2010
Сообщений: 19
Сказал Спасибо: 13
Имеет 1 спасибку в 1 сообщении
ampeg пока неопределено
По умолчанию

Код:
11 B6 64 DB 31 44 8C D3 D7 0F 00 04 00 00 00 00 00 B7 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 42 0F 00 04 00 00 00 00 00 B8 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 49 02 00 04 00 00 00 00 00 AD 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 C6 2D 00 04 00 00 00 00 00 AE 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 20 A1 07 00 04 00 00 00 00 00 B3 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 C6 2D 00 04 00 00 00 00 00 B4 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 E0 93 04 00 04 00 00 00 00 00 AB 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 AC 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 0C 00 04 00 00 00 00 00 D9 02 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 DA 02 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 42 0F 00 04 00 00 00 00 00 A9 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 E1 E4 00 04 00 00 00 00 00 AA 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 3D 00 04 00 00 00 00 00 BF 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 80 96 98 00 04 00 00 00 00 00 C0 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 B1 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5A 62 02 
11 B6 0A 79 2F 44 58 FC D7 0F 00 04 00 00 00 00 00 B7 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 42 0F 00 04 00 00 00 00 00 B8 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 49 02 00 04 00 00 00 00 00 AD 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 C6 2D 00 04 00 00 00 00 00 AE 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 20 A1 07 00 04 00 00 00 00 00 B3 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 C6 2D 00 04 00 00 00 00 00 B4 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 E0 93 04 00 04 00 00 00 00 00 AB 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 AC 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 0C 00 04 00 00 00 00 00 D9 02 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 DA 02 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 42 0F 00 04 00 00 00 00 00 A9 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 E1 E4 00 04 00 00 00 00 00 AA 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 3D 00 04 00 00 00 00 00 BF 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 80 96 98 00 04 00 00 00 00 00 C0 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 B1 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5A 62 02 
11 B6 BE 3D 34 44 08 10 D8 0F 00 04 00 00 00 00 00 B7 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 42 0F 00 04 00 00 00 00 00 B8 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 F0 49 02 00 04 00 00 00 00 00 AD 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 C6 2D 00 04 00 00 00 00 00 AE 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 20 A1 07 00 04 00 00 00 00 00 B3 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 C6 2D 00 04 00 00 00 00 00 B4 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 E0 93 04 00 04 00 00 00 00 00 AB 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 AC 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 35 0C 00 04 00 00 00 00 00 D9 02 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 DA 02 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 42 0F 00 04 00 00 00 00 00 A9 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 C0 E1 E4 00 04 00 00 00 00 00 AA 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 09 3D 00 04 00 00 00 00 00 BF 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 80 96 98 00 04 00 00 00 00 00 C0 03 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 40 4B 4C 00 04 00 00 00 00 00 B1 19 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00 00 00 5A 62 02
не силен я в этом языке, и не знаю, как тут сделать таймер)
в последнем пакете, к примеру ListID - 44 08 10 D8
ampeg вне форума   Ответить с цитированием
Старый 10.07.2010, 00:04   #6
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Заточки значит купить надобно
Собственно для начала узнайте как сделать таймер, я думаю вы понимаете что никто за вас скрипт писать не будет, даже такой простой

Дальше алгоритм будет такой.
Во время запуска скрипта создайте таймер с нужными задержками.
В процедуре таймера надо отправить первые 3 пакета и выключить его (таймер). Пакеты отправлять по очереди, если разберетесь в таймере - поймете что имеется ввиду.
А в теле скрипта обрабатывайте пакет id=#$11, читайте с него ListID и записывайте его в переменную типа integer. Там же генерируйте (используя уже известный ListID) 4-й пакет, который и купит итем.

Еще надо уточнить, что в первых 3-х пакетах присутствует ObjectID нпц и он также как и ListID может меняться (правда только при рестарте сервера). Я бы также организовал процедуру, которая будет составлять базу нпц и искать в нем нужный нам ObjectID.
Но это будет не просто для новичка, поэтому для начала будет достаточно и выше написанного алгоритма.
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился спасибкой от:
Старый 10.07.2010, 01:06   #7
Новичок
 
Регистрация: 09.07.2010
Сообщений: 19
Сказал Спасибо: 13
Имеет 1 спасибку в 1 сообщении
ampeg пока неопределено
По умолчанию

вся проблема в том, что у меня никак не получается поймать пакет #$11 и выдрать из него ListID.
в этом то и есть вся проблема..
Подскажите как мне это сделать, а дальше я уже сам все напишу

Последний раз редактировалось ampeg, 10.07.2010 в 01:09.
ampeg вне форума   Ответить с цитированием
Старый 10.07.2010, 01:39   #8
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

delphi Код:
if fromserver and (pck[1]=#$11) then begin listID:=ReadD(6); end;
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился спасибкой от:
Старый 10.07.2010, 01:40   #9
Местный
 
Аватар для J-Fobos
 
Регистрация: 09.06.2008
Сообщений: 867
Сказал Спасибо: 175
Имеет 468 спасибок в 259 сообщенях
J-Fobos пока неопределено
По умолчанию

Код:
if fromserver and conectname='asd' and pck[1]=#$11 then
ой, удалите мой пост supernewbie уже ответил, я на целую минуту опоздал
__________________

В любом из нас спит гений. И с каждым днем все крепче.

Переходим на протокол нового поколения jabber

Последний раз редактировалось J-Fobos, 10.07.2010 в 01:45.
J-Fobos вне форума   Ответить с цитированием
За это сообщение J-Fobos нажился спасибкой от:
Старый 10.07.2010, 01:43   #10
Новичок
 
Регистрация: 09.07.2010
Сообщений: 19
Сказал Спасибо: 13
Имеет 1 спасибку в 1 сообщении
ampeg пока неопределено
По умолчанию

Кажется, выше я писал практически тожесамое.
поробывал точно также, как написали Вы, не изменилось ничего=\
ampeg вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



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

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


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

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

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