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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 08.02.2010, 00:40   #621
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
tiranosaur пока неопределено
По умолчанию

Пробуй, только отпишись! я сам нубась в это м деле


begin
if fromserver and (ConnectName='Здесь свое имя') then
begin


case pck[1] of
#$16 : if (ReadD(10)=57) or (ReadD(10)=2508) then
begin

pck:='';

end;
#$05 : if (ReadD(10)=57) or (ReadD(10)=2508) then
begin
pck:='';
end;
end;
end;
end.
tiranosaur вне форума   Ответить с цитированием
За это сообщение tiranosaur нажился спасибкой от:
Старый 08.02.2010, 00:53   #622
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

xeno, попробуй вот так
delphi Код:
procedure Init; //Вызывается при включении скрипта begin end; procedure Free; //Вызывается при выключении скрипта begin end; //основная часть скрипта //вызывается при приходе каждого пакета если скрипт включен begin     if FromServer then     begin         case pck[1] of             #$05:     //пакет 05=SpawnItem             begin                 case pck[10] of  //по смещению 10 находится ItemID                     17, 57, 1341..1345: pck:=''; //дропаем стрелы, адену, деревянные и т.д. стрелы                 end;             end;             #$16:      //пакет 16=DropItem             begin                 case pck[6] of //по смещению 06 находится ItemID                     17, 57, 1341..1345: pck:=''; //дропаем стрелы, адену, деревянные и т.д. стрелы                 end;             end;         end;     end; end.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился 2 спасибками от:
Старый 08.02.2010, 01:01   #623
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
tiranosaur пока неопределено
По умолчанию

А мой не покатит?
tiranosaur вне форума   Ответить с цитированием
Старый 08.02.2010, 01:21   #624
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от tiranosaur Посмотреть сообщение
А мой не покатит?
Будет работать. Только мой вариант, ИМХО, побыстрее. У тебя по два раза считывает из ячеек значение ItemID. Да и развить мой вариант по удалению других предметов проще.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 08.02.2010 в 01:23.
NLObP вне форума   Ответить с цитированием
Старый 08.02.2010, 02:32   #625
Новичок
 
Регистрация: 23.01.2010
Сообщений: 7
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
xeno пока неопределено
По умолчанию

tiranosaur,
NLObP,
спасибо ребят.
кстати разве в этой часте скрипта
Код:
case pck[10] of  
                    17, 57, 1341..1345: pck:='';
ид итемов надо прописывать не в хексе?

да точно

Последний раз редактировалось xeno, 08.02.2010 в 02:51. Причина: добавлено
xeno вне форума   Ответить с цитированием
Старый 08.02.2010, 17:39   #626
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
tiranosaur пока неопределено
По умолчанию

Подскажите где ошибка пжл. сервер грация
delphi Код:
const  NickName = '3ayp';     HPMedium = 95;   HPBottleID = 1061//1061=Healing Potion;  DrinkDelay = 14;  InvRazmer = 79var  MyX, MyY,MyZ : integer;     MyID, MyHP, MyMaxHP: integer;  MyMP, MyMaxMP : integer;  HPlevelProcent : integer;          CurrentInvRazmer : integer;  TargetID : integer;  time1: integer;  Inventory: array[0..InvRazmer, 0..9] of integer;   HPBottleObjID: integer; HpBottleCount: integer; procedure Init; //Вызывается при включении скрипта  begin    MyID:= 0;   MyX:= 0;   MyY:= 0;   MyZ:= 0;   MyID:= 0;   MyHP:= 0;   MyMaxHP:= 0;   MyMP:= 0;   MyMaxMP:= 0;   TargetID:=0;   time1:=1;   buf:= #$14;                              SendToServerEx(NickName);   end; function Wait(var tick: integer;Timewait: Integer): Boolean; // сквозная проверка без остановки скрипта (c)dmitry501, modifed by Sh00rGo  var   t: integer;  begin   result:=false;   t:=Round(Time*86400);   if t>(tick+Timewait) then begin     if tick>0 then result:=true;     tick:=t;   end;  end; procedure UseItemID(ItemID:integer);       //Использовать предмет с заданным ItemID  var   ObjItemID : integer;  begin   ObjItemID:= GetInv(ItemID,2,1);   if ObjItemID = -1 then exit;   buf:=#$19;   WriteD(ObjItemID);   WriteD(0);   SendToServerEx(NickName);;  end; procedure InventoryCreate; var   i,k, offset : integer; begin    offset:= 76 ;   CurrentInvRazmer:=ReadH(4);  for i:=0 to InvRazmer do        if i < CurrentInvRazmer then begin       Inventory[i,0]:=ReadH(i*(28+offset)+6)// itemType1       Inventory[i,1]:=ReadD(i*(28+offset)+8)// ObjectId       Inventory[i,2]:=ReadD(i*(28+offset)+12); // ItemID       Inventory[i,3]:=ReadD(i*(28+offset)+16); // count       Inventory[i,4]:=ReadH(i*(28+offset)+20); // itemType2       Inventory[i,5]:=ReadH(i*(28+offset)+22); // CustType1       Inventory[i,6]:=ReadH(i*(28+offset)+24); // isEquipped       Inventory[i,7]:=ReadD(i*(28+offset)+26); // BodyPart       Inventory[i,8]:=ReadH(i*(28+offset)+30); // EnchantLevel       Inventory[i,9]:=ReadH(i*(28+offset)+32); // CustType2     end else       for k:=0 to 9 do Inventory[i,k]:=0; // забиваем нулями end; procedure InventoryUpdate;  var   i,j,k, offset: integer;  begin   offset:= 82;   for j:=0 to (ReadH(2)-1) do    begin     case pck[j*offset+4] of      #$01: k:=0; // add item, запишет на пустую ячейку      #$02: k:=ReadD(j*offset+8); // mod item      #$03: begin // remove item, обнулит ячейки удаленного предмета             k:=ReadD(j*offset+8);             for i:=0 to InvRazmer do if (Inventory[i,1]=k) then              begin               for k:=0 to 9 do Inventory[i,k]:=0;               exit;              end;            end;     end;     for i:=0 to InvRazmer do if (Inventory[i,1]=k) then      begin       Inventory[i,0]:=ReadH(j*offset+6)// itemType1       Inventory[i,1]:=ReadD(j*offset+8)// ObjectId       Inventory[i,2]:=ReadD(j*offset+12); // ItemID       Inventory[i,3]:=ReadD(j*offset+20); // count       Inventory[i,4]:=ReadH(j*offset+24); // itemType2       Inventory[i,5]:=ReadH(j*offset+26); // CustType1       Inventory[i,6]:=ReadH(j*offset+28); // isEquipped       Inventory[i,7]:=ReadD(j*offset+30); // BodyPart       Inventory[i,8]:=ReadH(j*offset+34); // EnchantLevel       Inventory[i,9]:=ReadH(j*offset+36); // CustType2       break;      end;    end;  end;

Последний раз редактировалось NLObP, 09.02.2010 в 00:32.
tiranosaur вне форума   Ответить с цитированием
Старый 08.02.2010, 17:39   #627
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
tiranosaur пока неопределено
По умолчанию

delphi Код:
function GetInv(obj,up,down:integer): integer; // up и down не проверяются    var // 0-itemType1, 1-ObjectId, 2-ItemID, 3-count, 4-itemType2, 5-CustType1, 6-isEquipped, 7-BodyPart, 8-EnchantLevel, 9-CustType2     i: integer;  begin   for i:=0 to CurrentInvRazmer do if (Inventory[i,up]=obj) then    begin     Result:=Inventory[i,down];     exit;    end;   Result:=-1; end; procedure UseItemObjID(ItemObjID:integer);       //Использовать предмет с заданным ItemID  begin   buf:=#$19;   WriteD(ItemObjID);   WriteD(0);   SendToServerEx(NickName);;  end; procedure UserInfo;            // обновление донных о себе  var   i:word;  begin   MyID:=ReadD(18);   MyX:=ReadD(2);   MyY:=ReadD(6);   MyZ:=ReadD(10);   i:=22;   ReadS(i);   i:=i+48;   MyMaxHP:=ReadD(i);   MyHP:=ReadD(i);   MyMaxMP:=ReadD(i);        // чисто информативно   MyMP:=ReadD(i);  end; procedure StatusUpdate;       // обновление данных о себе  var   i:integer;  begin   for i:=0 to ReadD(6)-1 do    case pck[i*8+10] of     #$09: MyHP:=ReadD(i*8+14);     #$0A: MyMaxHP:=ReadD(i*8+14);     #$0B: MyMP:=ReadD(i*8+14);     #$0C: MyMaxMP:=ReadD(i*8+14);    end;   if MyMaxHP > 0 then HPlevelProcent:= Round((MyMaxHP/100)*HPlevelProcent);  end; procedure DrinkBottle;          // пьем бутылки и следим за их количеством  begin   if (HPBottleCount > 0) and (HPBottleObjID > 0)then    begin     UseItemObjID(HPBottleObjID);     UseItemID(HPBottleID);     dec (HPBottleCount);    end;  end; begin                   // Далее обработка входящих пакетов  if pck = '' then exit;  if (ConnectName = NickName) and FromServer then   case pck[1] of    #$32: if ReadS(22) = NickName then UserInfo;    #$18: if MyID=ReadD(2) then     //   StatusUpdate:h(ObjectID)d(Attributes)            begin             StatusUpdate;             if (MyHP > 0) and (MyHP < HPlevelProcent) then if Wait(time1, DrinkDelay) then DrinkBottle;     // пьем бутылки с интервалом в 19 сек             if (MyHP > 0) and (MyHP > HPlevelProcent) then time1:=1;            end;     #$11: begin            InventoryCreate;  // Инвентарь            if HPBottleID <> 0 then             begin              HPBottleObjID:= getinv(HPBottleID, 2,1);              HPBottleCount:= getinv(HPBottleID, 2,3);             end;             end;                #$21: begin            InventoryUpdate;            if HPBottleID <> 0 then             begin              HPBottleObjID:= getinv(HPBottleID, 2,1);              HPBottleCount:= getinv(HPBottleID, 2,3);             end;                        end;  end;    end.

//nlobp: заключайте код в теги [ HIGHLIGHT = "delphi" ][ / HIGHLIGHT ] (самая правая решетка, параметр delphi)

Последний раз редактировалось NLObP, 09.02.2010 в 00:34.
tiranosaur вне форума   Ответить с цитированием
Старый 09.02.2010, 00:31   #628
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

tiranosaur, заремь строку
delphi Код:
//1061=Healing Potion;  

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



Последний раз редактировалось NLObP, 09.02.2010 в 00:36.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 09.02.2010, 03:18   #629
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
tiranosaur пока неопределено
По умолчанию

Дык закоменчена она а скрипт не хилит((( Я просто хочу написать автохил минимального размера. но что-то даже это пока не идет. Помочь может кто?
tiranosaur вне форума   Ответить с цитированием
Старый 11.02.2010, 18:16   #630
Новичок
 
Регистрация: 23.01.2010
Сообщений: 7
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
xeno пока неопределено
По умолчанию

Код:
begin
    if FromServer then
    begin
        case pck[1] of
            #$05:     //пакет 05=SpawnItem
            begin
                case pck[10] of  //по смещению 10 находится ItemID
                    17, 57, 1341..1345: pck:=''; //дропаем стрелы, адену, деревянные и т.д. стрелы
                end;
            end;
            #$16:      //пакет 16=DropItem
            begin
                case pck[6] of //по смещению 06 находится ItemID
                    17, 57, 1341..1345: pck:=''; //дропаем стрелы, адену, деревянные и т.д. стрелы
                end;
            end;
        end;
    end;
end.
в общем сегодня выдался день потестить скрипты.
у
NLObP, сразу заметил что итемид в пакетах дропитем и спавнитем перепутаны местами, но самая печаль, то что скрипт выдает ошибку Could not convert variant of type (String) into type (Double).
скрипт
tiranosaur, вообще не блочил пакеты, хотя поидее он должен работать.
xeno вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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