Page 1 of 1

КарпентРи

Posted: 01.08.2006 12:57
by France
Почитал топики, и увидел что никто просто так ничего не даёт ,но всё же решил попытать удачу так сказать..и прошу Как на СТелс так и на инжу скриптик на Карпентри...Уже мона даже без выброса в Треш ,простенький скриптик...буду очень благодарен..можно кинуть или в личку или сюда или в асю... :roll:

Posted: 01.08.2006 20:18
by Acronym
http://stealth.od.ua/forum/viewtopic.ph ... ight=#1367
Acronym wrote:пример реализации 2-ного таргета можно посмотреть здесь,
в скрипте на инскрипшн http://stealth.od.ua/forum/viewtopic.php?t=274
и на карпентри http://www.uo.od.ua/board/topic33271.html

Posted: 01.08.2006 21:15
by France
Пасиб, канеша но на Дрим у мну не захОдить, а в скриптах так сказать чайник ладно уж перетерплю...спасибо..

Posted: 01.08.2006 21:35
by Acronym
Пример, правда таки заточенный под НДВ, но тем не менее...
На Дриме про Карпентри написано следующее:

Code: Select all

Program carpentry; 
var
TwoTarget,ItemCostWood,ItemCostTwoMaterial,TotalWoods,TotalTwoMaterial,i: integer;
stime : TDateTime;
Trash,TempWoods,TempTwoMaterial : cardinal; 
TwoMaterialType,WoodType,ItemType,ToolType : word; 
ItemGump:string;

{$Include 'all.inc'} 


procedure FullDisconnect; 
begin 
SetARStatus(false); 
Disconnect; 
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 Checktools; 
begin 
WaitConnection(3000); 
checksave; 
findtype(ToolType,backpack); 
if (findcount > 0) then Exit; 
findtype(ToolType,ground); 
if (findcount > 0) then 
 begin 
  Grab(finditem,1) 
  Exit; 
 end; 
Addtosystemjournal('Не нашел инструмент в приделах досягаемости, чара в лагаут'); 
FullDisconnect; 
while true do wait(1000); 
end; 

procedure CheckTwoMaterial; 
Label a1st; 
begin 
WaitConnection(3000); 
checksave; 
if (GetQuantity(TempTwoMaterial) >= ItemCostTwoMaterial) then Exit; 
a1st: 
WaitConnection(3000); 
findtype(TwoMaterialType,ground); 
if findcount = 0 then 
begin 
  Addtosystemjournal('Закончился дополнительный материал, либо он не найден, чара в лагаут'); 
  FullDisconnect; 
  while true do wait(1000); 
end; 
if findquantity < ItemCostTwoMaterial then  
 begin 
  Ignore(finditem); 
  goto a1st; 
 end 
else TempTwoMaterial:=finditem; 
end; 

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

procedure MoveMakeItem;
begin
findtype(ItemType,backpack);
if findcount > 0 then 
begin
 ClickOnObject(finditem); {контроль за цветом и типом производимой вещи}
 repeat
 Checksave;
 moveitem(findtype(ItemType,backpack),1,Trash,0,0,0);
 until findcount < 1
end;       
end;

Begin 
{===============================================================================
======================================}
TwoTarget:=1;           {1 или 0, при 1 качаемся на муз.инструментах, удочках, при 0 на всем остальном} 
ItemGump:='3764';       {номер гампа делаемого итема}
ItemType:=$0EB4;        {тайп делаемого итема}
ToolType:=$1030;        {тайп инструмета}
WoodType:=$1BDD;        {тайп дерева}
TwoMaterialType:=$1BF2  {при использовании 2 таргетов дополнительный материал, железо или ткань}
Trash:=$6CFB53CD;       {ID мусорника}
ItemCostWood:=5;        {кол-во дерева требуемое на 1 итем}
ItemCostTwoMaterial:=2; {кол-во дополнительного материала требуемое на 1 итем}
{===============================================================================
======================================}
FindDistance := 2;
SetARStatus(true); 
TempWoods:=0; 
TempTwoMaterial:=0; 
Clearjournal; 
if connected then hungry(1,ground); 
while not dead do 
begin  
 if targetpresent then canceltarget;  
 MoveMakeItem; 
 CheckTools; 
 if TwoTarget=1 then CheckTwoMaterial; 
 CheckWoods;
 WaitConnection(2000); 
 checksave; 
 CheckTargetError(2,2);
 stime := Now;
 WaitGump(ItemGump);
 WaitTargetObject(TempWoods); 
 UseObject(FindType(ToolType,backpack));
   
 if TwoTarget=1 then 
  begin
   repeat 
    CheckSave;
    InJournalBetweenTimes('ingots|fabric|already', stime, Now); 
    wait(50); 
   until (LineCount > 0) or (Now > stime + (1.0/1440)); 
   WaitTargetObject(TempTwoMaterial);
  end;

 repeat 
  CheckSave;
  InJournalBetweenTimes('destroy|make|create|made|already', stime, Now); 
  wait(50); 
 until (LineCount > 0) or (Now > stime + (1.0/1440)); 
 
if timer(i,100) then 
begin
 Hungry(1,ground);
 FindType(WoodType,ground);
 TotalWoods:=FindFullQuantity;
 if TwoTarget=1 then
  begin  
   FindType(TwoMaterialType,ground); 
   TotalTwoMaterial:=FindFullQuantity;
   AddToSystemJournal('Осталось '+IntToStr(TotalWoods)+' дерева и '+IntToStr(TotalTwoMaterial)+' доп. материала'); 
  end
  else AddToSystemJournal('Осталось '+IntToStr(TotalWoods)+' дерева ');
end; 
end;
End.
+
жратву, дерево, инготы, ткань, трешь (ненужное вычеркнуть) возле чара
скрипт преднозначен для прокачки, т.е. все вещи уходят в трешь!!!
(с)Last_Unicorn
ЗЫ: не путать с зарегистрированным на этом форуме

Posted: 02.08.2006 14:12
by France
Спасибо ОгрОмное...но скрипт именно для Дрима..Он не берёт дерево в БекПек..а на фофе с пола делать низя :)вроде..если найду кому отдать перенастроить буду ещё больше благодарен...спасибо тебе за мороку...

Posted: 07.09.2006 10:18
by Diego
Подскажите плиз... мне тоже надо ! я уже вписывал что б он брал в пак... но всеровно не находит таргет ! :cry:

Posted: 07.09.2006 10:54
by Miralex
Если только 1 материал для производства, то

Code: Select all

WaitTargetObject(TempWoods);
UseObject(FindType(ToolType,backpack));
Замени например на:

Code: Select all

if (Count(WoodType) < 15) then
   begin
   Grab(TempWoods, 50);
   wait(1000);
   end;
FindType(WoodType, BackPack);
WaitTargetObject(FindItem);
UseObject(FindType(ToolType,backpack));
Кол-во подбираемых досок и прочие лимиты надо подстроить под свой шард. В данном случае я указал примерные значения.

Для производства из двух разных типов сырья - думаю сами допишете. :wink: