Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Lumer в ГК

тут можно задать вопрос по скриптингу
Post Reply
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Lumer в ГК

Post by burn7 »

Скрипт расчитан на две точки,крафт реколиться по рунобуке..проблема скрипта в том что когда топор ломаеться он не одевает другой!Поможет кто-нибудь передалть?

Code: Select all

Program lumber_GK;

{$Include 'all.inc'}

const
 axet = $2398;
 Msg1 = 'stop';
 rbook = $550789D2; // Серийник рунбуки
 runa1 = 2; // Руна к месту 1
 runa2 = 4; // Руна к месту 2
type
i_rail = array[1..4] of Integer;

var
 x, i, mn1, k : Integer;
 TypeTree : i_rail;
 var ctime : TDateTime;
 Runa : array[1..2] of integer;

procedure tree_int;
begin
TypeTree[1]:=$0DA6;
TypeTree[2]:=$0D9E;
TypeTree[3]:=$0CAA;
TypeTree[4]:=$0D9A;
end;



procedure Recharge;
begin
 findtype($1F4C,backpack);
 if (findcount > 0) then MoveItems(backpack, $1F4C, $FFFF, rbook, 0, 0, 0, 500)
 else
 begin
 Addtosystemjournal('KoH4uJIuCb scrool recall');
 exit;
 end;
end;

procedure RecallRB(RBID : Cardinal; RuneNumber : Integer);
begin
 UseObject(rbook);
 WaitGump(IntToStr(1024 + RuneNumber));
 wait(2000);
end;



procedure lumber;
begin
 for i := 1 to 4 do
 begin
 FindType(TypeTree[i],ground);
 while FindCount > 0 do
 begin
 clearjournal;
 if TargetPresent then CancelTarget;
 ctime := Now;
 WaitTargetObject(FindItem)
 UseObject(ObjAtLayerEx(rhandLayer,self));
 k := 0;
 repeat
 wait(100);
 k := k + 1;
 mn1 := InJournalBetweenTimes(Msg1, ctime, Now);
 until (mn1<>-1) or (k > 700);
 Ignore(FindItem);
 FindType(TypeTree[i], ground);
 end;
 end;
 IgnoreReset;
end;

Begin
 x:=GetX(self);
 tree_int;
 FindDistance := 2;
 SetARStatus(true);
 wait(3000);
 while true do

 begin
hungry(1,backpack);
recharge;
RecallRB(rbook,runa2);
lumber;
RecallRB(rbook,runa1)
lumber; 
wait(2000);
recharge;
 end;
End.
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Lumer в ГК

Post by nah nah »

Code: Select all

UseObject(ObjAtLayerEx(rhandLayer,self));
Надо заменить на

Code: Select all

UseType(тип топора, цвет топора);
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Lumer в ГК

Post by burn7 »

прописал....реколиться по первой руне,берёт в руки топор рубит один раз..потом пишет - you have to equip that to lumberjack...и останавливаеться!
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Lumer в ГК

Post by burn7 »

скрипт нормально работает..то через некоторое время опять пишеться yoo have to equip to lumberjack
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Lumer в ГК

Post by burn7 »

nah nah wrote:

Code: Select all

UseObject(ObjAtLayerEx(rhandLayer,self));
Надо заменить на

Code: Select all

UseType(тип топора, цвет топора);
переставил с правой руки на левую всё заработало,сам додумался )))
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Lumer в ГК

Post by burn7 »

непонятно почему опять перестал рубить
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Lumer в ГК

Post by burn7 »

Люди добрые жду поможи со скриптом!!!
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Lumer в ГК

Post by CFA »

расставь по скрипту отладочный вывод в журнал, чтоб понять где он встает.
nah nah
Developer
Developer
Posts: 414
Joined: 13.07.2011 11:23
Contact:

Re: Lumer в ГК

Post by nah nah »

Разве статика находится FindType ?
CFA
Developer
Developer
Posts: 492
Joined: 20.04.2006 6:03
Contact:

Re: Lumer в ГК

Post by CFA »

nah nah wrote:Разве статика находится FindType ?
Нет, но деревья могут быть не только статикой.
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Lumer в ГК

Post by burn7 »

Вот что у нас получилось...

Code: Select all

Program lumber_GK;

{$Include 'all.inc'}

const
 axet = $0F43;
 Msg1 = 'stop';
 rbook = $5AFE8D6B; // Серийник рунбуки
 runa1 = 1; // Руна к месту 1
 runa2 = 2; // Руна к месту 2
type
i_rail = array[1..4] of Integer;

var
x, i, mn1, k : Integer;
TypeTree : i_rail;
var ctime, nowtime : TDateTime;
Runa : array[1..2] of integer;



procedure tree_int;
begin
TypeTree[1]:=$0DA6;
TypeTree[2]:=$0D9E;
TypeTree[3]:=$0CAA;
TypeTree[4]:=$0D9A;
end;



procedure Recharge;
begin
wait(100)
Unequip(rHandLayer);
wait(100)
 findtype($1F4C,backpack);
 if (findcount > 0) then MoveItems(backpack, $1F4C, $FFFF, rbook, 0, 0, 0, 500) 
 else
 begin
 Addtosystemjournal('KoH4uJIuCb scrool recall');
 exit;
 end;
end;


procedure RecallRB(RBID : Cardinal; RuneNumber : Integer);
begin
 UseObject(rbook);
  WaitGump(IntToStr(1024 + RuneNumber));
 wait(2000);
 
end;


procedure lumber;
begin
  for i := 1 to 4 do
  begin
    repeat
          FindType(TypeTree[i],ground);
      nowtime := Now;
      while (FindCount <> 0) and (InJournalBetweenTimes('no wood', nowtime, Now) = -1) do
      begin
        AddToSystemJournal('Tree = ' + inttostr(FindItem));
        clearjournal;
        if TargetPresent then CancelTarget;
        ctime := Now;
        WaitTargetObject(FindItem);
        UseType(axet, $FFFF);
        AddToSystemJournal('Заюзан топор');
        k := 0;
        repeat
          wait(100);
          k := k + 1;
          mn1 := InJournalBetweenTimes(Msg1, ctime, Now);
        until (mn1<>-1) or (k > 700);
        AddToSystemJournal('7 сек или стоп были')
        FindType(TypeTree[i], ground);
      end;
      Ignore(FindItem);
      AddToSystemJournal(inttostr(FindItem) + ' заигнорено');
    until FindCount = 0; 
  end;
  IgnoreReset;
  AddToSystemJournal('Игнор резет + конец процедуры рубки');
    wait(100);
    end;





Begin
 x:=GetX(self);
 tree_int;
 FindDistance := 2;
 SetARStatus(true);
 wait(3000);
 while true do

 begin
hungry(1,backpack);
recharge;
RecallRB(rbook,runa2);
lumber;
RecallRB(rbook,runa1);
lumber; 
wait(2000);
recharge;
 end;
End.
ТОлько вот перед тем как сделать рекалл,он не снимает оружие(в данном случаи топор)а с оружием в руках на моём сервере не выполенить рекалл по руно буке
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Re: Lumer в ГК

Post by MuDaCk »

Code: Select all

procedure RecallRB(RBID : Cardinal; RuneNumber : Integer);
var 
Weapon, Weapon2: cardinal;
begin
Weapon:= 0;
Weapon2:= 0;
if (GetType(ObjAtLayer(LhandLayer))<> 0) or (GetType(ObjAtLayer(RhandLayer))<> 0)then
begin
Weapon:= GetType(ObjAtLayer(LhandLayer));
Weapon2:= GetType(ObjAtLayer(RhandLayer));
disarm;
end;
 UseObject(rbook);
  WaitGump(IntToStr(1024 + RuneNumber));
 wait(2000);
if (weapon <> 0) or (weapon2 <> 0) then
begin
equip(weapon,LhandLayer);
wait(300);
equip(weapon2,RhandLayer);
wait(300);
end;
end;
Поидее вот так будет работать. Пробуй.
My name is Игорёшка Image
Пишу скрипты за едуImage
burn7
Neophyte
Neophyte
Posts: 22
Joined: 14.12.2011 12:21

Re: Lumer в ГК

Post by burn7 »

MuDaCk wrote:

Code: Select all

procedure RecallRB(RBID : Cardinal; RuneNumber : Integer);
var 
Weapon, Weapon2: cardinal;
begin
Weapon:= 0;
Weapon2:= 0;
if (GetType(ObjAtLayer(LhandLayer))<> 0) or (GetType(ObjAtLayer(RhandLayer))<> 0)then
begin
Weapon:= GetType(ObjAtLayer(LhandLayer));
Weapon2:= GetType(ObjAtLayer(RhandLayer));
disarm;
end;
 UseObject(rbook);
  WaitGump(IntToStr(1024 + RuneNumber));
 wait(2000);
if (weapon <> 0) or (weapon2 <> 0) then
begin
equip(weapon,LhandLayer);
wait(300);
equip(weapon2,RhandLayer);
wait(300);
end;
end;
Поидее вот так будет работать. Пробуй.
действительно помогло,спасибо! Я уж и не знаю куда только не пытался этот unequip вставить =)
Post Reply