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

Пакеты Форум о форматах отдельных пакетов или групп пакетов

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

Цитата:
Сообщение от Essential Посмотреть сообщение
Затрудняюсь в составлеии пакета обмена 1ккк аден на этот итем.
Наведите хотябы на мыслю
Посмотри как организован обмен предметов в рыбалке:

delphi Код:
//*************************************************************** // Вся торговля здесь!!! //*************************************************************** procedure OnTrade(Sender: TObject); begin   case trade of ...     //-------------------------------------------------     //обмениваем у фишермана на пруфы     //-------------------------------------------------     400: begin       if ReadyToMultiSell then exit; //если еще не обменяли предыдущую вещь, то выходим сразу       //мы у фишермана, обмениваем всё на пруфы       if FishermanOID=0 then begin         Trade1.enabled:=false; //останавливаем торговлю         msg.Lines.Add('Не готовы к торговле, нет OID фишермана! Требуется отбежать подальше и вернуться.');         exit; //выходим       end;       if TradeCount=TradeMultiItemCount then begin //проверка на выход из массива         Trade1.enabled:=false; //останавливаем торговлю         msg.Lines.Add('Всё обменяли!');         case MestoLovli of           1: begin cmd:='fishing'; MestoLovli1; end;           2: begin cmd:='fishing'; MestoLovli2; end;           3: begin cmd:='fishing'; MestoLovli3; end;         end;         msg.Lines.Add('Бежим на берег...');         TradeCount:=0;       end else begin         if (TradeMultiItem[TradeCount]<>FO) and (TradeMultiItem[TradeCount]<>GFO) then begin           if FindItem(TradeMultiItem[TradeCount])<>0 then begin             TargetAttacker(FishermanOID); //фишермана в таргет             msg.Lines.Add('Готовы обменять:'+inttostr(TradeMultiItem[TradeCount]));             ReadyToMultiSell:=true; //готовы обменивать           end else msg.Lines.Add('Нет такого предмета:'+inttostr(TradeMultiItem[TradeCount]));           Trd:=TradeCount;         end;         inc(TradeCount);         msg.Lines.Add('TradeCount/TradeMultiItemCount:'+inttostr(TradeCount)+'/'+inttostr(TradeMultiItemCount-1));       end;     end;   end; end; //...................................... ... //*************************************************************** // вызывается при приходе каждого пакета, если скрипт включен //*************************************************************** begin     //****************************************************************************     //не обрабатываем пустые пакеты     if pck='' then exit; ...     //****************************************************************************     //обмен состоит из следующих шагов:     //1. таргет  на продавце, пауза, снова таргет (c04=Action, c04=Action)     //2. приходит s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)     //3. шлем выбранный пункт из меню c21=RequestBypassToServer:s(Cmd)     //4. приходит sD0=MultiSellList:d(listId)d(page_beg)d(page_end)d(onpage)d(entrycount)d(EntryId)b(?)w(prodcount)w(itemcount<)w(pItemId)d(?)w(ptype2)d(pcount)w(penchant)w(iItemId)w(itype2)d(icount)w(ienchant)     //5. FindItem(ID) найдем OID, Count нужной вещи по ID     //6. шлем cA7=RequestMultiSellChoose:h(ListID)d(EntryID)d(Amount)     //****************************************************************************     if ReadyToMultiSell and (FishermanOID<>0) then begin       if (ConnectName=Name) and FromServer then begin         case pck[1] of           //после того как мы взяли в таргет продавца приходит этот пакет           //s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)           #$0F: begin             msg.Lines.Add('S>Пакет NpcHtmlMessage #$0F');             if ReadD(2)=FishermanOID then begin               //шлем запрос выбора пункта - продажа               //c21=RequestBypassToServer:s(Cmd)               delay(1000);               RequestByPassToServer(getmultisell);               msg.Lines.Add('C>Пакет RequestBypassToServer #$21 (multisell)');             end;           end;           //после выбора пункта - обмен, приходит этот пакет           //sD0=MultiSellList:d(listId)d(page_beg)d(page_end)d(onpage)d(entrycount)d(EntryId)b(?)w(prodcount)w(itemcount<)w(pItemId)d(?)w(ptype2)d(pcount)w(penchant)w(iItemId)w(itype2)d(icount)w(ienchant)           #$D0: begin             msg.Lines.Add('S>Пакет MultiSellList #$D0');             ListID:=ReadD(2); //запоминаем, он все время разный             msg.Lines.Add('ListID='+inttostr(ListID));             //шлем запрос на обмен             //cA7=RequestMultiSellChoose:h(ListID)d(EntryID)d(Amount)             msg.Lines.Add('C>Пакет RequestMultiSellChoose #$A7(ListId:'+IntToStr(ListId)+' EntryId:'+IntToStr(Trd*2+1)+' Count:'+IntToStr(ItemBase2[3,1])+')');             delay(1000);             //в java -> EntryId * k=100000             RequestMultiSellItem(ListId,Trd*2+1,ItemBase2[3,1]);             ReadyToMultiSell:=false;           end;         end;       end;     end; ... end.

Если в двух словах, то заранее определяешь из пакета sD0=MultiSellList - EntryId, оно постоянно для твоего предмета и каждый раз при обмене определяешь из этого же пакета sD0=MultiSellList - ListID.
Затем формируешь по полученным данным cA7=RequestMultiSellChoose:h(ListID)d(EntryID)d(Am ount) и отсылаешь на сервер.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 19.01.2009, 23:41   #2
Новичок
 
Аватар для 2Feky
 
Регистрация: 18.01.2009
Сообщений: 2
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
2Feky пока неопределено
По умолчанию

Цитата:
Сообщение от NLObP Посмотреть сообщение
Посмотри как организован обмен предметов в рыбалке:

delphi Код:
//*************************************************************** // Вся торговля здесь!!! //*************************************************************** procedure OnTrade(Sender: TObject); begin   case trade of ...     //-------------------------------------------------     //обмениваем у фишермана на пруфы     //-------------------------------------------------     400: begin       if ReadyToMultiSell then exit; //если еще не обменяли предыдущую вещь, то выходим сразу       //мы у фишермана, обмениваем всё на пруфы       if FishermanOID=0 then begin         Trade1.enabled:=false; //останавливаем торговлю         msg.Lines.Add('Не готовы к торговле, нет OID фишермана! Требуется отбежать подальше и вернуться.');         exit; //выходим       end;       if TradeCount=TradeMultiItemCount then begin //проверка на выход из массива         Trade1.enabled:=false; //останавливаем торговлю         msg.Lines.Add('Всё обменяли!');         case MestoLovli of           1: begin cmd:='fishing'; MestoLovli1; end;           2: begin cmd:='fishing'; MestoLovli2; end;           3: begin cmd:='fishing'; MestoLovli3; end;         end;         msg.Lines.Add('Бежим на берег...');         TradeCount:=0;       end else begin         if (TradeMultiItem[TradeCount]<>FO) and (TradeMultiItem[TradeCount]<>GFO) then begin           if FindItem(TradeMultiItem[TradeCount])<>0 then begin             TargetAttacker(FishermanOID); //фишермана в таргет             msg.Lines.Add('Готовы обменять:'+inttostr(TradeMultiItem[TradeCount]));             ReadyToMultiSell:=true; //готовы обменивать           end else msg.Lines.Add('Нет такого предмета:'+inttostr(TradeMultiItem[TradeCount]));           Trd:=TradeCount;         end;         inc(TradeCount);         msg.Lines.Add('TradeCount/TradeMultiItemCount:'+inttostr(TradeCount)+'/'+inttostr(TradeMultiItemCount-1));       end;     end;   end; end; //...................................... ... //*************************************************************** // вызывается при приходе каждого пакета, если скрипт включен //*************************************************************** begin     //****************************************************************************     //не обрабатываем пустые пакеты     if pck='' then exit; ...     //****************************************************************************     //обмен состоит из следующих шагов:     //1. таргет  на продавце, пауза, снова таргет (c04=Action, c04=Action)     //2. приходит s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)     //3. шлем выбранный пункт из меню c21=RequestBypassToServer:s(Cmd)     //4. приходит sD0=MultiSellList:d(listId)d(page_beg)d(page_end)d(onpage)d(entrycount)d(EntryId)b(?)w(prodcount)w(itemcount<)w(pItemId)d(?)w(ptype2)d(pcount)w(penchant)w(iItemId)w(itype2)d(icount)w(ienchant)     //5. FindItem(ID) найдем OID, Count нужной вещи по ID     //6. шлем cA7=RequestMultiSellChoose:h(ListID)d(EntryID)d(Amount)     //****************************************************************************     if ReadyToMultiSell and (FishermanOID<>0) then begin       if (ConnectName=Name) and FromServer then begin         case pck[1] of           //после того как мы взяли в таргет продавца приходит этот пакет           //s0F=NpcHtmlMessage:d(MessageID)s(HTML)d(d)           #$0F: begin             msg.Lines.Add('S>Пакет NpcHtmlMessage #$0F');             if ReadD(2)=FishermanOID then begin               //шлем запрос выбора пункта - продажа               //c21=RequestBypassToServer:s(Cmd)               delay(1000);               RequestByPassToServer(getmultisell);               msg.Lines.Add('C>Пакет RequestBypassToServer #$21 (multisell)');             end;           end;           //после выбора пункта - обмен, приходит этот пакет           //sD0=MultiSellList:d(listId)d(page_beg)d(page_end)d(onpage)d(entrycount)d(EntryId)b(?)w(prodcount)w(itemcount<)w(pItemId)d(?)w(ptype2)d(pcount)w(penchant)w(iItemId)w(itype2)d(icount)w(ienchant)           #$D0: begin             msg.Lines.Add('S>Пакет MultiSellList #$D0');             ListID:=ReadD(2); //запоминаем, он все время разный             msg.Lines.Add('ListID='+inttostr(ListID));             //шлем запрос на обмен             //cA7=RequestMultiSellChoose:h(ListID)d(EntryID)d(Amount)             msg.Lines.Add('C>Пакет RequestMultiSellChoose #$A7(ListId:'+IntToStr(ListId)+' EntryId:'+IntToStr(Trd*2+1)+' Count:'+IntToStr(ItemBase2[3,1])+')');             delay(1000);             //в java -> EntryId * k=100000             RequestMultiSellItem(ListId,Trd*2+1,ItemBase2[3,1]);             ReadyToMultiSell:=false;           end;         end;       end;     end; ... end.

Если в двух словах, то заранее определяешь из пакета sD0=MultiSellList - EntryId, оно постоянно для твоего предмета и каждый раз при обмене определяешь из этого же пакета sD0=MultiSellList - ListID.
Затем формируешь по полученным данным cA7=RequestMultiSellChoose:h(ListID)d(EntryID)d(Am ount) и отсылаешь на сервер.



ЕТ оможет быть причиной того что.
Кна сервре покупаю вещь. копирую ето пакет( с покупокой ето й вещи, в отсылку пакета серверу) и рпинажатии "отослать". открываеться оконо с нпк. но итем сам не покупаеться, Потому что... Каждый новый пакет приходящий от сервера про покупку какого ибо итема имеет измененный Id итема по какомуто Закону. Играю на Хб
2Feky вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Пакеты



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

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


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

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

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