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

BlackSmith

Only working scripts
Post Reply
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

BlackSmith

Post by Alex »

на пол или в пак кидаем молотки, в скрипте настроить производство нужного итема и его пораметры, под ноги чару любое количество разных инготов, он их по очереди все использует

Code: Select all

Program BlackSmithy;
var
ItemType, HammerType, MaxWeight, ItemCost:word;
ForgeObj,TempIngots:cardinal;
stime : TDateTime;
ItemGump:string;
i:integer;

{$Include 'all.inc'}

procedure CheckDead; 
begin 
WaitConnection(3000); 
CheckSave; 
if Dead then 
begin 
 SetWarMode(true); 
 WaitGump('1'); 
 wait(5000); 
 while (Dead) do Wait (1000); 
 wait (2000); 
 Hungry(1, ground); 
end; 
end; 

function timer(var acttimer:integer;actafter:integer):boolean; 
begin 
   result:=false; 
   acttimer:=acttimer+1; 
   if acttimer>=actafter then 
   begin 
      acttimer:=0; 
      result:=true;       
   end; 
end;

procedure FullDisconnect; 
begin 
SetARStatus(false); 
Disconnect; 
end; 

procedure Resmelt;
begin
while count(ItemType) > 0 do begin
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
useobject(ForgeObj);
WaitForTarget(5000);
if targetpresent then targettoobject(findtype(ItemType,backpack));
wait(4000);
end;
Stack($1BF2,getcolor(findtype($1BF2,backpack)));
end;

procedure checktools;
begin
WaitConnection(3000);
checksave;
if (GetType(ObjAtLayer(RHandLayer)) <> HammerType) then unequip(RHandLayer)
else Exit;
findtype(HammerType,backpack);
if (findcount > 0) then begin equip(RHandLayer,finditem); Exit; end;
findtype(HammerType,ground);
if (findcount > 0) then begin equip(RHandLayer,finditem); Exit; end;
Addtosystemjournal('Не нашел молоток заданного типа в приделах досягаемости, чара в лагаут');
FullDisconnect;
while true do wait(1000);
end;

procedure checkingots;
Label a1st;
begin
WaitConnection(3000);
checksave;
if (GetQuantity(TempIngots) >= ItemCost) then Exit;
Resmelt;
a1st:
WaitConnection(3000);
findtype($1BF2,ground);
 if findcount = 0 then begin
  Addtosystemjournal('Закончилось железо, либо оно не найдено, чара в лагаут');
  FullDisconnect;
  while true do wait(1000);
 end;
 if findquantity < ItemCost then  begin
  Ignore(finditem);
  goto a1st;
 end
else TempIngots:=finditem;
end;

procedure CheckWeight;
begin
WaitConnection(3000);
if Weight >= MaxWeight then begin
 Resmelt;
end;
end;

begin
{==================================}
ItemGump:='5141';   {Нагрудник}
ItemType:=$1415;  {Нагрудник}
ItemCost:=25;
ForgeObj:=$530CCA53;
HammerType:=$13E3;
MaxWeight:=250;
{==================================}
Finddistance:=2;
SetARStatus(true);
TempIngots:=0;
Hungry(1,ground);
while true do begin
CheckDead;
CheckTools;
CheckIngots;
CheckWeight;
WaitConnection(2000);
checksave;
if timer(i,40) then Hungry(1,ground);
CheckTargetError(2,2);
stime := Now;
WaitGump(ItemGump);
WaitTargetObject(TempIngots);
UseObject(ObjAtLayer(RHandLayer));
wait(200); 
WaitJournalline(stime,'create|make|destroy',10000);
wait(100); 
end;
end.
Last edited by Alex on 22.11.2005 22:41, edited 2 times in total.
Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post by Acronym »

упорно пишет сразу после проверки на сытость "ю олреди дуинг самсинг элс". Кто нибудь еще тестил скрипт?
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Post by Alex »

у тебя стоит делать 10 предметов..в гампе БСа, поставь там единичку и сделай одну вещь
Tvister
Posts: 3
Joined: 15.10.2005 21:55
Contact:

Post by Tvister »

А мне вот интиресно куда он девает веши которые он делает?
Скидывает под себя когда пак полный ?
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Post by Alex »

переплавляет
Гpu3Jl
Neophyte
Neophyte
Posts: 11
Joined: 11.09.2005 15:13
Contact:

Post by Гpu3Jl »

Alex wrote:у тебя стоит делать 10 предметов..в гампе БСа, поставь там единичку и сделай одну вещь
Сделал все как ты сказал и выдает "Error with target" и выбрасывает ... :?
У мну стоит Stealth 0.95
Есть варианты как мне помочь ?
Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post by Acronym »

Alex wrote:у тебя стоит делать 10 предметов..в гампе БСа, поставь там единичку и сделай одну вещь
Нет тут нормально все было, я проверял несколько раз.

вот кусок скрипта:

Code: Select all

while true do begin 
CheckDead; 
CheckTools; 
CheckIngots; 
CheckWeight; 
WaitConnection(2000); 
checksave; 
if timer(i,40) then Hungry(1,ground); 
CheckTargetError(2,2); 
stime := Now; 
WaitGump(IntToStr(ItemGump));
Addtosystemjournal('1'); 
wait(10000); 
WaitTargetObject(TempIngots);
Addtosystemjournal('2');  
wait(10000);
UseObject(ObjAtLayer(RHandLayer));
Addtosystemjournal('3');  
wait(2000); 
WaitJournalline(stime,'create|make|destroy',10000);
Addtosystemjournal('4');  
wait(1000); 
end; 
end.
Если изготавливаемый итем уже есть, то плавит, тут вроде как без поблем.
Поставил метки, так один цикл 1-2-3-4 нормально проходит, но при этом ничего не производит, в журнале ничего не пишеться, а во втором круге на 3-х - UseObject(ObjAtLayer(RHandLayer)) уже выдает System: I am already doing something else.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Похоже у тебя или не отрабатывает WaitTargetObject(TempIngots);
или неверный гамп.

Для теста - поменяй WaitTargetObject(TempIngots);
на WaitTargetObject(FindType(ItemType, Ground));
Alex
Moderator
Moderator
Posts: 351
Joined: 07.04.2005 4:41

Post by Alex »

исправил гамп..перескопируйте, у кого не работает..
Acronym
Novice
Novice
Posts: 114
Joined: 10.05.2005 18:42
Location: Odessa, NDW
Contact:

Post by Acronym »

Alex wrote:исправил гамп..перескопируйте, у кого не работает..
насколько я понял, то в этой редакции
ItemGump:='5141'
и
WaitGump('ItemGump');
дадут двойные кавычки, что есть неправильно

а так все работает, спасибо
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Code: Select all

WaitGump(ItemGump); 
Alex просто опечатался.
Post Reply