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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 08.02.2010, 17:39   #1
Пользователь
 
Регистрация: 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 вне форума   Ответить с цитированием
Старый 09.02.2010, 00:31   #2
Рыцарь
 
Аватар для 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 нажился спасибкой от:
Старый 11.02.2010, 18:16   #3
Новичок
 
Регистрация: 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 вне форума   Ответить с цитированием
Старый 08.02.2010, 17:39   #4
Пользователь
 
Регистрация: 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, 03:18   #5
Пользователь
 
Регистрация: 03.09.2009
Сообщений: 63
Сказал Спасибо: 19
Имеет 5 спасибок в 3 сообщенях
tiranosaur пока неопределено
По умолчанию

Дык закоменчена она а скрипт не хилит((( Я просто хочу написать автохил минимального размера. но что-то даже это пока не идет. Помочь может кто?
tiranosaur вне форума   Ответить с цитированием
Старый 11.02.2010, 18:29   #6
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

скрипт на коленке писался.. самим тяжело догадаться что надо ?
case readd(10) of
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 2 спасибками от:
Старый 11.02.2010, 18:53   #7
Новичок
 
Регистрация: 23.01.2010
Сообщений: 7
Сказал Спасибо: 3
Имеет 0 спасибок в 0 сообщенях
xeno пока неопределено
По умолчанию

Цитата:
Сообщение от alexteam Посмотреть сообщение
скрипт на коленке писался.. самим тяжело догадаться что надо ?
case readd(10) of
и правда, так гораздо лучше.
xeno вне форума   Ответить с цитированием
Старый 10.04.2010, 19:23   #8
Новичок
 
Регистрация: 10.04.2010
Сообщений: 2
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Михаил111 пока неопределено
По умолчанию

Люди добрые! Никак не могу найти скрипт на авто-рыбалку для л2пх 3.5.33.164... Пробовал изданные раньше скрипты, не работают. Помогите пожалуйста!
Михаил111 вне форума   Ответить с цитированием
Старый 10.04.2010, 19:29   #9
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Михаил111, учиться, учиться, и еще раз учиться. Бери скрипты, какие есть - правь сам под свой сервак.
QaK вне форума   Ответить с цитированием
За это сообщение QaK нажился спасибкой от:
Старый 10.04.2010, 19:37   #10
Новичок
 
Регистрация: 10.04.2010
Сообщений: 2
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Михаил111 пока неопределено
По умолчанию

Не умею, пардоньте... Может подскажете как? У нас на сервере есть Рыболов-Бот, но покупать его за бешенные цены... серв l2rx.com

Добавлено через 4 минуты
Ах да, еще нашел тему со скриптами на рыбалку, но вот незадача - немогу скачать, пишет:
Warning: copy(./downloads///ec_tmp/fishing_by_NLObP.zip) [function.copy]: failed to open stream: Permission denied in /downloads.php on line 700
ERROR: File not found.

Последний раз редактировалось Михаил111, 10.04.2010 в 19:37. Причина: Добавлено сообщение
Михаил111 вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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