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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.11.2007, 02:29   #61
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: Re:

Цитата:
Сообщение от DeVolf
Цитата:
Сообщение от NLObP
Цитата:
Сообщение от DeVolf
да что та есть похожие) но увы ...)
так что мне некто не может помоч?
В чем помоч-то?
2ой пост на етой странице
Подробно напиши что тебе надо, по пунктам. И названия пакетов пиши по английски. Что за пакет выложил, это ведь не UseItem? Что напишу скрипт не обещаю, мне может не интересно будет.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 05.11.2007, 16:05   #62
Новичок
 
Регистрация: 05.10.2007
Адрес: Украина
Сообщений: 19
Сказал Спасибо: 0
Имеет 23 спасибок в 13 сообщенях
DeVolf пока неопределено
По умолчанию

Вот что мне нада сделать
1 Отослать пакет на сервер (бай айтем)
2 Провести инвентаризацию
3 Найти все айтемы с ИД 4235
4 Добавить ети айтемы в пакет продажи
DeVolf вне форума   Ответить с цитированием
Старый 08.11.2007, 02:17   #63
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: ДА БУДЕТ БОТ!

Формируем пакет на продажу нескольких предметов с одинаковым ItemId, вроде визуально все правильно. Продавец в таргете. Послали пакет. Ничего не продается. Почему? Почему если одно и тоже несколько раз в пакете написать, то продается один предмет из посланного пакета?! В чем загвоздка?

Создаем пакет продажи вещей:
Код:
//******************************************************************************
//1E=RequestSellItem:h(ListID)d(SellCount)h(ObjectID)i(ItemID)d(Count)
procedure RequestSellItem;
var
  i, j : integer;
begin
  say('Продадим '+inttostr(ColvoItm2)+' предмет(а) ItemID='+inttostr(Item));
  buf:=#$1E;
  WriteD(0);
  WriteD(ColvoItm2);
  for i:=1 to ColvoItm2 do begin
     WriteD(ItemBase2[1,i]);
     WriteD(ItemBase2[2,i]);
     WriteD(ItemBase2[3,i]);
  end;
  say(buf='+strtohex(buf));
  SendToServerEx(Name);
end;
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 08.11.2007, 11:46   #64
Гость
 
Сообщений: n/a
По умолчанию

Советую добавить в скрипт такой вот кусок:
if FromServer and (ConnectName=CharName) and (Timer.enabled=true) and (ManorPCK<>'') and (pck[1]=#$27) then
begin
ManorPCK:='';
Timer.enabled:=false;
end;
Это чтобы не запалиться, когда скрипт будет тыкаться сдать то, чего уже и в инвентаре то нету...
Типо если приходит пакет о том чот содержимое инвентаря изменилось => манор сдался
  Ответить с цитированием
Старый 11.11.2007, 12:23   #65
Новичок
 
Регистрация: 07.11.2007
Сообщений: 14
Сказал Спасибо: 1
Имеет 1 спасибку в 1 сообщении
PunkRediska
По умолчанию

Я шас папробывал написать скриптик каторый сразу падымал бы дроп упавший с моба,но сталкнулся с такой праблемай что он падымает тока 1'ну вешь из всех дропнувшыхся.Умные люди падскажите как ето можно исправить?:)Скриптик мой выгледит так :
var
begin
if FromServer and (pck[1]=#$0C)
then begin
buf:=#$04+pck[6]+pck[7]+pck[8]+pck[9]+pck[14]+pck[15]+pck[16]+pck[17]+pck[18]+pck[19]+pck[20]+pck[21]+pck[22]+pck[23]+pck[24]+pck[25]+#$00;
SendToServer;
end;
end.

^этот^ cкрипт прост до безабразия но вобшемто сложнее и не надо:).Кста если гдето струтура пакета отлечяется от вашей,то ето бырее всего патамушто скрипт под явавскую интерлюдию.
__________________
http://www.magnum-shoes.ru/
PunkRediska вне форума   Ответить с цитированием
Старый 11.11.2007, 13:19   #66
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re:

Цитата:
Сообщение от PunkRediska
Я шас папробывал написать скриптик каторый сразу падымал бы дроп упавший с моба,но сталкнулся с такой праблемай что он падымает тока 1'ну вешь из всех дропнувшыхся.Умные люди падскажите как ето можно исправить?:)Скриптик мой выгледит так :
var
begin
if FromServer and (pck[1]=#$0C)
then begin
buf:=#$04+pck[6]+pck[7]+pck[8]+pck[9]+pck[14]+pck[15]+pck[16]+pck[17]+pck[18]+pck[19]+pck[20]+pck[21]+pck[22]+pck[23]+pck[24]+pck[25]+#$00;
SendToServer;
end;
end.

^этот^ cкрипт прост до безабразия но вобшемто сложнее и не надо:).Кста если гдето струтура пакета отлечяется от вашей,то ето бырее всего патамушто скрипт под явавскую интерлюдию.
Как я сделал в ботике, выше по теме. В основном цикле создаем базу по выпавшим вещам:
Код:
 //****************************************************************************
  //DropItem - выпала вещь
  if FromServer and (ConnectName=Name) and (pck[1]=#$0C) then begin
    //чужие вещи не берем
    if (Attacker=ReadD(2)) then begin
      timer1.enabled:=false; //выключаем бота
      //перебираем базу, ищем свободную ячейку в ней и добавляем
      for i:=1 to max do begin
        if (ItemBase[1,i]=0) then begin
          //запоминаем в свободную ячейку
          ItemBase[1,i]:=ReadD(6); //ObjectID
          ItemBase[2,i]:=ReadD(14); //x
          ItemBase[3,i]:=ReadD(18); //y
          ItemBase[4,i]:=ReadD(22); //z
          inc(itm);
          NeedBackup:=true;
          say('Добавили данные по предмету');
          break;
        end;
      end;
    end;
    say('ColvoItm='+inttostr(itm));
  end;
Подпрограмма сбора вещей. Здесь только просим поднять, на практике вещь может не взяться, недоступна к примеру и т.д.:
Код:
//******************************************************************************
procedure ReqGetItem;
begin
  if itm=0 then begin
    timer1.enabled:=true; //включаем отсчет времени
    needbackup:=false;
    exit;
  end;
  timer1.enabled:=false; //выключаем отсчет времени
  //перебираем базу
  for i:=1 to max do begin
    //если нашли, то обнуляем
    if (ItemBase[1,i]<>0) then begin  //ObjectID
      say('ReqGetItem');
      //даем команду подобрать вещь
      buf:=#$04;
      WriteD(ItemBase[1,i]);
      WriteD(ItemBase[2,i]);
      WriteD(ItemBase[3,i]);
      WriteD(ItemBase[4,i]);
      WriteH(00);
      SendToServerEx(Name);
    end;
  end;
end;
В основном цикле проверяем, что вещи реально подняты:
Код:
  //****************************************************************************
  //определяем реальность поднятия вещи, пакет GetItem
  if FromServer and (ConnectName=Name) and (pck[1]=#$0D) then begin
    //перебираем базу
    for i:=1 to max do begin
      //если нашли, то обнуляем
      if (ItemBase[1,i]=ReadD(6)) then begin  //ObjectID
        ItemBase[1,i]:=0; //x
        ItemBase[2,i]:=0; //x
        ItemBase[3,i]:=0; //y
        ItemBase[4,i]:=0; //z
        dec(itm);
        say('Удаляем данные по предмету');
      end;
    end;
    if itm=0 then begin
      needbackup:=false;
      timer1.enabled:=true;
    end;
    say('ColvoItm='+inttostr(itm));
  end;
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 11.11.2007, 19:45   #67
Новичок
 
Регистрация: 07.11.2007
Сообщений: 14
Сказал Спасибо: 1
Имеет 1 спасибку в 1 сообщении
PunkRediska
По умолчанию Re: Re:

Цитата:
Сообщение от NLObP
Цитата:
Сообщение от PunkRediska
Я шас папробывал написать скриптик каторый сразу падымал бы дроп упавший с моба,но сталкнулся с такой праблемай что он падымает тока 1'ну вешь из всех дропнувшыхся.Умные люди падскажите как ето можно исправить?:)Скриптик мой выгледит так :
var
begin
if FromServer and (pck[1]=#$0C)
then begin
buf:=#$04+pck[6]+pck[7]+pck[8]+pck[9]+pck[14]+pck[15]+pck[16]+pck[17]+pck[18]+pck[19]+pck[20]+pck[21]+pck[22]+pck[23]+pck[24]+pck[25]+#$00;
SendToServer;
end;
end.

^этот^ cкрипт прост до безабразия но вобшемто сложнее и не надо:).Кста если гдето струтура пакета отлечяется от вашей,то ето бырее всего патамушто скрипт под явавскую интерлюдию.
Как я сделал в ботике, выше по теме. В основном цикле создаем базу по выпавшим вещам:
Код:
 //****************************************************************************
  //DropItem - выпала вещь
  if FromServer and (ConnectName=Name) and (pck[1]=#$0C) then begin
    //чужие вещи не берем
    if (Attacker=ReadD(2)) then begin
      timer1.enabled:=false; //выключаем бота
      //перебираем базу, ищем свободную ячейку в ней и добавляем
      for i:=1 to max do begin
        if (ItemBase[1,i]=0) then begin
          //запоминаем в свободную ячейку
          ItemBase[1,i]:=ReadD(6); //ObjectID
          ItemBase[2,i]:=ReadD(14); //x
          ItemBase[3,i]:=ReadD(18); //y
          ItemBase[4,i]:=ReadD(22); //z
          inc(itm);
          NeedBackup:=true;
          say('Добавили данные по предмету');
          break;
        end;
      end;
    end;
    say('ColvoItm='+inttostr(itm));
  end;
Подпрограмма сбора вещей. Здесь только просим поднять, на практике вещь может не взяться, недоступна к примеру и т.д.:
Код:
//******************************************************************************
procedure ReqGetItem;
begin
  if itm=0 then begin
    timer1.enabled:=true; //включаем отсчет времени
    needbackup:=false;
    exit;
  end;
  timer1.enabled:=false; //выключаем отсчет времени
  //перебираем базу
  for i:=1 to max do begin
    //если нашли, то обнуляем
    if (ItemBase[1,i]<>0) then begin  //ObjectID
      say('ReqGetItem');
      //даем команду подобрать вещь
      buf:=#$04;
      WriteD(ItemBase[1,i]);
      WriteD(ItemBase[2,i]);
      WriteD(ItemBase[3,i]);
      WriteD(ItemBase[4,i]);
      WriteH(00);
      SendToServerEx(Name);
    end;
  end;
end;
В основном цикле проверяем, что вещи реально подняты:
Код:
  //****************************************************************************
  //определяем реальность поднятия вещи, пакет GetItem
  if FromServer and (ConnectName=Name) and (pck[1]=#$0D) then begin
    //перебираем базу
    for i:=1 to max do begin
      //если нашли, то обнуляем
      if (ItemBase[1,i]=ReadD(6)) then begin  //ObjectID
        ItemBase[1,i]:=0; //x
        ItemBase[2,i]:=0; //x
        ItemBase[3,i]:=0; //y
        ItemBase[4,i]:=0; //z
        dec(itm);
        say('Удаляем данные по предмету');
      end;
    end;
    if itm=0 then begin
      needbackup:=false;
      timer1.enabled:=true;
    end;
    say('ColvoItm='+inttostr(itm));
  end;

спс что выложил ,тока ты не вылажил первую чясть где аписуются переменные и я чёто непайму Attacker-это PlayerID?:)

Добавлено спустя 29 минут 53 секунды:
всё нашол часть с переменными:) чюток подправил под себя и всё пашет СПС тебе NLObP !!

Добавлено спустя 4 часа 21 минуту 2 секунды:
Чёто у меня сёдня день какойто неудачный,скрипты не пашут ваше....Пришол от друга накалякал такой скрипточег ->
\\суть скрипта:если паявился чест то юзать анлок
var i:string;
begin
if FromServer and (pck[1]=#$16) and (pck[6]+pck[7]+pck[8]+pck[9]=#$9f+#$89+#$0f+#$00) then begin \\условия ,pck-npcinfo
buf:=#$04+hstr('(readd(2))+(readd(14))+(readd(18)) +(readd(24))') + #$00; \\таргет
SendToServer;
buf:=hstr('2F 1B 00 00 00 00 00 00 00 00 '); \\юзать анлок
SendToServer;
end;
end.
Вроде просто да безабразия а сёравно не пашет:( может ктонибудь абьеснить пачему?:)
__________________
http://www.magnum-shoes.ru/
PunkRediska вне форума   Ответить с цитированием
Старый 11.11.2007, 19:59   #68
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: Re:

Цитата:
Сообщение от PunkRediska
Чёто у меня сёдня день какойто неудачный,скрипты не пашут ваше....Пришол от друга накалякал такой скрипточег ->
\\суть скрипта:если паявился чест то юзать анлок
var i:string;
begin
if FromServer and (pck[1]=#$16) and (pck[6]+pck[7]+pck[8]+pck[9]=#$9f+#$89+#$0f+#$00) then begin \\условия ,pck-npcinfo
buf:=#$04+hstr('(readd(2))+(readd(14))+(readd(18)) +(readd(24))') + #$00; \\таргет
SendToServer;
buf:=hstr('2F 1B 00 00 00 00 00 00 00 00 '); \\юзать анлок
SendToServer;
end;
end.
Вроде просто да безабразия а сёравно не пашет:( может ктонибудь абьеснить пачему?:)
Вот так надо, координату Z неправильно считываешь
Код:
buf:=#$04+hstr('(readd(2))+(readd(14))+(readd(18))+(readd(22))') + #$00; \\таргет
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 11.11.2007, 20:13   #69
Новичок
 
Регистрация: 07.11.2007
Сообщений: 14
Сказал Спасибо: 1
Имеет 1 спасибку в 1 сообщении
PunkRediska
По умолчанию

с карденатай ето я случяйно ашибся када переписывал....там в чёмто другом праблема:(
__________________
http://www.magnum-shoes.ru/
PunkRediska вне форума   Ответить с цитированием
Старый 11.11.2007, 22:22   #70
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re:

Цитата:
Сообщение от PunkRediska
с карденатай ето я случяйно ашибся када переписывал....там в чёмто другом праблема:(
Может близко стоять надо?
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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