Jump to content

Lineage 2

Не пропустите!

ВАЖНЫЕ ОБСУЖДЕНИЯ НА ФОРУМЕ:
ZULUHOTEL СНОВА ONLINE! РЕГИСТРАЦИЯ ОТКРЫТА!

Все последние новости, информация о событиях на Zuluhotel, чат с админами и игроками в нашем телеграм канале: @ZuluhotelRussia
А еще у нас есть канал в Discord!
 
К сожалению, форумный формат общения себя изживает и активности на форуме с каждым днем всё меньше.
Самый быстрый способ получить ответ на вопрос - воспользоваться нашим Telegram каналом или Discord'oм.

Присоединяйся! Общайся!

Хеллоу! Общежитие слушает.

ШАРД РАБОТАЕТ! ЗАХОДИ К НАМ В ДИСКОРД И В ТЕЛЕГРАМ!


Помогите выявить трабл в скрипте .....


  • You cannot reply to this topic
6 replies to this topic

#1
Thor SS

Thor SS

    Вождь Зулу

  • Пользователи
  • PipPipPipPipPipPipPip
  • 521 posts

Скрипт нормально ловит удочкой, а сеткой нет.

 

пишет - UseType error: Object not found.

 

сам скрипт:  

Program Fishing;
 
{$Include 'all.inc'}
 
type
  WaterRecord = Record
  t,x,y,z,a: integer;
end;
 
var
  WaterTile: array[0..50] of integer;
  WaterPlace: array[0..500] of WaterRecord;
  WaterCount: integer;
  x,y,c,a,i: integer;
  s: boolean;
 
const
  mainbag = $5B056593;     //сумка с добычей
  fishpole = $0DCA;        //удочка(или сети)      сети - $0DCA, удочка - $0DBF
  dagger = $0F51;          //дагер
  Trash = $5B056592;       //Мусорка
  cut = 0;                 //1-Резать рыбу(даггер в руки), 0-не резать
 
procedure CheckGold;
var bag : Cardinal;
 
Begin
    SetARStatus(true);
    i:=0;
    Hungry(1,backpack);
 
    repeat
        Ignore(mainbag);
        findtype($0e75,ground);
        if (FindCount  >= 1) and (GetDistance(finditem)  <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then    
        begin 
            bag := finditem;
            useobject(bag);
            wait(100);
            MoveItem(findtype($0EED,bag), 0, mainbag, 0, 0, 0);
            wait(100);
            MoveItem(bag, 0, Trash, 0, 0, 0);
        end;
    until (FindCount < 1) or dead;
End;
 
procedure MoveSos;
begin
repeat
FindType($099F, backpack);
  if (FindCount  >= 1) and (GetDistance(finditem)  <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin
  wait(100);
  MoveItem(finditem, 0, Trash, 0, 0, 0);
  wait(100);
  end;
until (FindCount < 1) or dead;
end;
 
procedure MoveMap;
begin
repeat
FindType($14ED, ground);
  if (FindCount  >= 1) and (GetDistance(finditem)  <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin
  wait(100);
  MoveItem(finditem, 0, Trash, 0, 0, 0);
  wait(100);
  end;
until (FindCount < 1) or dead;
end;
 
procedure seaweed;
begin
repeat
FindType($0DBA, ground);
  if (FindCount  >= 1) and (GetDistance(finditem)  <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin
  wait(100);
  MoveItem(finditem, 0, Trash, 0, 0, 0);
  wait(100);
  end;
until (FindCount < 1) or dead;
end;
 
procedure fishgrab;
begin
  if FindType($09CC, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($09CD, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($09CE, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($09CF, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($14EB, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($0DD6, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($0DD7, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($0DD8, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
end;
 
procedure CheckDagger;
begin
if (cut = 1) and (RHandLayer<>dagger) then begin
Equipt(RHandLayer, dagger);
end;
if cut = 0 then begin
unequip(RHandLayer);
end;
end;
 
procedure CheckWaterTile;
var
  t: integer;
  LCount: integer;
  TTile: TStaticCell;
begin
  TTile:=ReadStaticsXY(x, y, WorldNum);
  LCount:=GetLayerCount(x, y, WorldNum);
  i:=0;
  while i < LCount do
    begin
      for t:=0 to 6 do
        begin
          if TTile.Statics[0].Tile=WaterTile[t] then
            begin
              WaterPlace[c].t:=TTile.Statics[0].Tile;
              WaterPlace[c].x:=x;
              WaterPlace[c].y:=y;
              WaterPlace[c].z:=TTile.Statics[0].z;
              WaterPlace[c].a:=1;
              c:=c+1;
            end;        
        end;
      i:=i+1;
    end;  
end;
 
procedure FindWaterTile;
begin
  for x:=GetX(self)-6 to GetX(self)+7 do
    for y:=GetY(self)-6 to GetY(self)+7 do
      begin
        CheckWaterTile;
      end;    
    WaterCount:=c-1;
end;
 
procedure Fishing;
var
  m1, m2, m3, t: integer;  
  ctime : TDateTime;
begin
for a:=0 to WaterCount do
  begin
     if WaterPlace[a].a = 1 then begin
        WaitTargetTile(WaterPlace[a].t, WaterPlace[a].x, WaterPlace[a].y, WaterPlace[a].z);
     end; 
     UseType(fishpole, 0);      // дефолт - UseType(fishpole, 0);   findtype($0EED,bag)
     ctime := Now;
     t := 0;
     repeat
        wait(200);
        t := t + 1;
        checksave; 
        m1 := InJournalBetweenTimes('stop', ctime, Now); 
        m2 := InJournalBetweenTimes('You can', ctime, Now); 
        m3 := InJournalBetweenTimes('too far', ctime, Now);
     until (m1<>-1) or (m2<>-1) or (m3<>-1) or (t > 300);
     if cut = 0 then begin
      fishgrab;
     end;
     CheckGold;
     MoveSos;
     MoveMap;
     seaweed;
    end;    
  end;
 
begin
 
s:=true;
 
WaterTile[0]:=6038;
WaterTile[1]:=6039;
WaterTile[2]:=6040;
WaterTile[3]:=6041;
WaterTile[4]:=6042;
WaterTile[5]:=6043;
WaterTile[6]:=6044;
 
 
FindWaterTile;
 
AddToSystemJournal('Найдено тайлов для рыбалки: '+IntToStr(WaterCount));
  while not Dead and s do begin
    if cut = 1 then begin
      CheckDagger;
    end;
    Fishing;
  end;
end.

 



#2
Sed

Sed

    Искатель Сокровищ

  • Пользователи
  • PipPipPip
  • 85 posts

сеть имеет цвет $012C, у тебя цвет - 0; в процедуре fishing попробуй указать цвет для сети, т.е. вместо 

 

[color=rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;background-color:rgb(253,253,253);]UseType(fishpole, 0);      // дефолт - UseType(fishpole, 0);   findtype($0EED,bag)[/color]

 

напиши

 

[color=rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;background-color:rgb(253,253,253);]UseType(fishpole, $012C);      // дефолт - UseType(fishpole, 0);   findtype($0EED,bag)[/color]



#3
долби

долби

    Вождь Зулу

  • Пользователи
  • PipPipPipPipPipPipPip
  • 600 posts

[color=rgb(90,90,90);font-family:tahoma, helvetica, arial, sans-serif;font-size:12px;background-color:rgb(253,253,253);]UseType(fishpole, $FFFF); надо вставить и будет норм ловить, теоретически.[/color]



#4
Noxious

Noxious

    Путешественник

  • Пользователи
  • PipPip
  • 31 posts

Ну чот он ваще не пашет... 1 раз закидывает сеть и стоит тупо.... и стелс ничего не пишет



#5
Noxious

Noxious

    Путешественник

  • Пользователи
  • PipPip
  • 31 posts

ВОт которым я ловил

Program Fishing;
 
{$Include 'all.inc'}
 
type
  WaterRecord = Record
  t,x,y,z,a: integer;
end;
 
var
  WaterTile: array[0..50] of integer;
  WaterPlace: array[0..500] of WaterRecord;
  WaterCount: integer;
  x,y,c,a,i: integer;
  s: boolean;
 
const
  mainbag = $0E76;     //сумка с добычей
  fishpole = $0DCA;        //удочка(или сети)
  dagger = $0F51;          //дагер
  Trash = $5CB11927;       //Мусорка
  cut = 1;                 //1-Резать рыбу(даггер в руки), 0-не резать
 
procedure CheckGold;
var bag : Cardinal;
 
Begin
    SetARStatus(true);
    i:=0;
    Hungry(1,backpack);
 
    repeat
        Ignore(mainbag);
        findtype($0e75,ground);
        if (FindCount  >= 1) and (GetDistance(finditem)  <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then    
        begin 
            bag := finditem;
            useobject(bag);
            wait(100);
            MoveItem(findtype($0EED,bag), 0, mainbag, 0, 0, 0);
            wait(100);
            MoveItem(bag, 0, Trash, 0, 0, 0);
        end;
    until (FindCount < 1) or dead;
End;
 
procedure MoveSos;
begin
repeat
FindType($099F, backpack);
  if (FindCount  >= 1) and (GetDistance(finditem)  <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin
  wait(100);
  MoveItem(finditem, 0, Trash, 0, 0, 0);
  wait(100);
  end;
until (FindCount < 1) or dead;
end;
 
procedure MoveMap;
begin
repeat
FindType($14ED, ground);
  if (FindCount  >= 1) and (GetDistance(finditem)  <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin
  wait(100);
  MoveItem(finditem, 0, Trash, 0, 0, 0);
  wait(100);
  end;
until (FindCount < 1) or dead;
end;
 
procedure seaweed;
begin
repeat
FindType($0DBA, ground);
  if (FindCount  >= 1) and (GetDistance(finditem)  <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin
  wait(100);
  MoveItem(finditem, 0, Trash, 0, 0, 0);
  wait(100);
  end;
until (FindCount < 1) or dead;
end;
 
procedure fishgrab;
begin
  if FindType($09CC, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($09CD, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($09CE, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($09CF, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($14EB, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($0DD6, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($0DD7, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
  if FindType($0DD8, ground) > 0 then
    MoveItem(finditem, 0, mainbag, 0, 0, 0);
end;
 
procedure CheckDagger;
begin
if (cut = 1) and (RHandLayer<>dagger) then begin
Equipt(RHandLayer, dagger);
end;
if cut = 0 then begin
unequip(RHandLayer);
end;
end;
 
procedure CheckWaterTile;
var
  t: integer;
  LCount: integer;
  TTile: TStaticCell;
begin
  TTile:=ReadStaticsXY(x, y, WorldNum);
  LCount:=GetLayerCount(x, y, WorldNum);
  i:=0;
  while i < LCount do
    begin
      for t:=0 to 6 do
        begin
          if TTile.Statics[0].Tile=WaterTile[t] then
            begin
              WaterPlace[c].t:=TTile.Statics[0].Tile;
              WaterPlace[c].x:=x;
              WaterPlace[c].y:=y;
              WaterPlace[c].z:=TTile.Statics[0].z;
              WaterPlace[c].a:=1;
              c:=c+1;
            end;        
        end;
      i:=i+1;
    end;  
end;
 
procedure FindWaterTile;
begin
  for x:=GetX(self)-6 to GetX(self)+7 do
    for y:=GetY(self)-6 to GetY(self)+7 do
      begin
        CheckWaterTile;
      end;    
    WaterCount:=c-1;
end;
 
procedure Fishing;
var
  m1, m2, m3, t: integer;  
  ctime : TDateTime;
begin
for a:=0 to WaterCount do
  begin
     if WaterPlace[a].a = 1 then begin
        WaitTargetTile(WaterPlace[a].t, WaterPlace[a].x, WaterPlace[a].y, WaterPlace[a].z);
     end; 
     UseType(fishpole, $FFFF); 
     ctime := Now;
     t := 0;
     repeat
        wait(200);
        t := t + 1;
        checksave; 
        m1 := InJournalBetweenTimes('stop', ctime, Now); 
        m2 := InJournalBetweenTimes('You can', ctime, Now); 
        m3 := InJournalBetweenTimes('too far', ctime, Now);
     until (m1<>-1) or (m2<>-1) or (m3<>-1) or (t > 300);
     if cut = 0 then begin
      fishgrab;
     end;
     CheckGold;
     MoveSos;
     MoveMap;
     seaweed;
    end;    
  end;
 
begin
 
s:=true;
 
WaterTile[0]:=6038;
WaterTile[1]:=6039;
WaterTile[2]:=6040;
WaterTile[3]:=6041;
WaterTile[4]:=6042;
WaterTile[5]:=6043;
WaterTile[6]:=6044;
 
 
FindWaterTile;
 
AddToSystemJournal('Найдено тайлов для рыбалки: '+IntToStr(WaterCount));
  while not Dead and s do begin
    if cut = 1 then begin
      CheckDagger;
    end;
    Fishing;
  end;
end.
 
 
 
он ловит но ловит как: закидывает сеть и стоит афк минуту ровно потом опять закидывает опять афк минуту.... с пола сумки не подберает не лутает, хотя тайп сумки вписан


#6
Noxious

Noxious

    Путешественник

  • Пользователи
  • PipPip
  • 31 posts

Удочкой этот скрипт работает ИДЕАЛЬНО



#7
Made In Malaysia

Made In Malaysia

    Истребитель Нечисти

  • Пользователи
  • PipPipPipPip
  • 115 posts
Program FishingZulu;{$Include 'all.inc'}typeWaterRecord = Recordt,x,y,z,a: integer;end;varWaterTile: array[0..50] of integer;WaterPlace: array[0..500] of WaterRecord;WaterCount: integer;x,y,c,a,i: integer;s: boolean;constmainbag = $416CBDDD; //сумка с добычейfishpole = $0DCA; //удочка(или сети)fishpoleColor = $0000; //цвет удочки в зависимости от цвета дереваdagger = $0F51; //дагерTrash = $416CEC12; //Мусоркаcut = 1; //1-Резать рыбу(даггер в руки), 0-не резатьprocedure CheckGold;var bag : Cardinal;Begin  repeat    Ignore(mainbag);    findtype($0E75,ground);    if (FindCount >= 1) and (GetDistance(finditem) <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin      bag := finditem;      useobject(bag);      wait(100);      MoveItem(findtype($0EED,bag), 0, mainbag, 0, 0, 0);      wait(100);      MoveItem(bag, 0, Trash, 0, 0, 0);    end;  until (FindCount < 1) or dead;End;procedure MoveSos;begin  repeat    FindType($099F, backpack);    if (FindCount >= 1) and (GetDistance(finditem) <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin      wait(100);      MoveItem(finditem, 0, Trash, 0, 0, 0);      wait(100);    end;  until (FindCount < 1) or dead;end;procedure MoveMap;begin  repeat    FindType($14ED, ground);    if (FindCount >= 1) and (GetDistance(finditem) <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin      wait(100);      MoveItem(finditem, 0, Trash, 0, 0, 0);      wait(100);    end;  until (FindCount < 1) or dead;end;procedure seaweed;begin  repeat    FindType($0DBA, ground);    if (FindCount >= 1) and (GetDistance(finditem) <=2) and (GetDistance(finditem) >=0) and connected and (not dead) then begin      wait(100);      MoveItem(finditem, 0, Trash, 0, 0, 0);      wait(100);    end;  until (FindCount < 1) or dead;end;procedure fishgrab;begin  if FindType($09CC, ground) > 0 then  MoveItem(finditem, 0, mainbag, 0, 0, 0);  if FindType($09CD, ground) > 0 then  MoveItem(finditem, 0, mainbag, 0, 0, 0);  if FindType($09CE, ground) > 0 then  MoveItem(finditem, 0, mainbag, 0, 0, 0);  if FindType($09CF, ground) > 0 then  MoveItem(finditem, 0, mainbag, 0, 0, 0);  if FindType($14EB, ground) > 0 then  MoveItem(finditem, 0, mainbag, 0, 0, 0);  if FindType($0DD6, ground) > 0 then  MoveItem(finditem, 0, mainbag, 0, 0, 0);  if FindType($0DD7, ground) > 0 then  MoveItem(finditem, 0, mainbag, 0, 0, 0);  if FindType($0DD8, ground) > 0 then  MoveItem(finditem, 0, mainbag, 0, 0, 0);end;procedure CheckDagger;begin  if (cut = 1) and (RHandLayer<>dagger) then begin    Equipt(RHandLayer, dagger);  end;  if cut = 0 then begin    unequip(RHandLayer);  end;end;procedure CheckWaterTile;vart: integer;LCount: integer;TTile: TStaticCell;begin  TTile:=ReadStaticsXY(x, y, WorldNum);  LCount:=GetLayerCount(x, y, WorldNum);  i:=0;  while i < LCount do  begin    for t:=0 to 6 do    begin      if TTile.Statics[0].Tile=WaterTile[t] then      begin        WaterPlace[c].t:=TTile.Statics[0].Tile;        WaterPlace[c].x:=x;        WaterPlace[c].y:=y;        WaterPlace[c].z:=TTile.Statics[0].z;        WaterPlace[c].a:=1;        c:=c+1;      end;    end;    i:=i+1;  end;end;procedure FindWaterTile;begin  for x:=GetX(self)-7 to GetX(self)+7 do  for y:=GetY(self)-7 to GetY(self)+7 do  begin    CheckWaterTile;  end;  WaterCount:=c-1;end;procedure Fishing;begin  Hungry(1,-1);  clearjournal;  for a := 0 to WaterCount do  begin    ClientPrintEx(Self, 0, 0, 'Fishing: ' + IntToStr(a) + '/' + IntToStr(WaterCount));    if WaterPlace[a].a = 1 then begin      WaitTargetTile(WaterPlace[a].t, WaterPlace[a].x, WaterPlace[a].y, WaterPlace[a].z);      if UseType( fishpole, $FFFF ) < 1 then begin        if FindType( fishpole, Ground ) > 0 then begin          AddToSystemJournal('Fishing Poles found: ' + IntToStr(FindCount));          Disarm;          Wait(1000);          Equip(LhandLayer, FindItem );          Wait(500);          UseObject( FindItem );        end;      end;      wait(5000);      if cut = 0 then begin        fishgrab;      end;      CheckGold;      MoveSos;      MoveMap;      seaweed;    end;  end;end;begin  SetARStatus(true);  s := true;  WaterTile[0]:=6038;  WaterTile[1]:=6039;  WaterTile[2]:=6040;  WaterTile[3]:=6041;  WaterTile[4]:=6042;  WaterTile[5]:=6043;  WaterTile[6]:=6044;  FindWaterTile;  AddToSystemJournal('Найдено тайлов для рыбалки: '+IntToStr(WaterCount));  while not Dead and s do begin    if cut = 1 then begin      CheckDagger;    end;    Fishing;  end;end.

Держите







0 user(s) are reading this topic

members, guests, anonymous users