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

Тейлоринг

Only working scripts
Post Reply
SkvidvarD
Neophyte
Neophyte
Posts: 11
Joined: 27.09.2006 1:34
Location: Одесса-мама
Contact:

Тейлоринг

Post by SkvidvarD »

Собсно, старался, писал, посвятил пол вечера. Спасибо за идейную поддержку Миралекса и Акронима.
Нескрываю, переделаный скрипт на карпентри, спасибо тому, кто писал на карпу, но я очень старался =) :D

Code: Select all

Program Tailor;
var
ItemCostHide,TotalHides,i: integer;
stime : TDateTime;
Trash,TempHides : cardinal; 
HideType,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 CheckHides; 
Label a1st; 
begin 
WaitConnection(3000); 
checksave; 
if (GetQuantity(TempHides) >= ItemCostHide) then Exit; 
a1st: 
WaitConnection(3000); 
findtype(HideType,ground); 
if findcount = 0 then 
begin 
Addtosystemjournal('закончилась кожа, или не найдена, логаут'); 
FullDisconnect; 
while true do wait(1000); 
end; 
if findquantity < ItemCostHide then 
begin 
Ignore(finditem); 
goto a1st; 
end 
else TempHides:=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 
{===============================================================================


======================================}
ItemGump:='хххх';       {номер гампа делаемого итема}
ItemType:=$хххх;        {тайп делаемого итема}
ToolType:=$хххх;        {тайп инструмета}
HideType:=$хххх;        {тайп кожи}
Trash:=$хххххххх;       {ID мусорника}
ItemCostHide:=х;        {кол-во кожи требуемое на 1 итем}
{===============================================================================


======================================}
FindDistance := 2;
SetARStatus(true); 
TempHides:=0; 
Clearjournal; 
if connected then hungry(1,ground); 
while not dead do 
begin  
if targetpresent then canceltarget;  
MoveMakeItem; 
CheckTools; 
CheckHides;
WaitConnection(2000); 
checksave; 
CheckTargetError(2,2);
stime := Now;
WaitGump(ItemGump);
WaitTargetObject(TempHides); 
UseObject(FindType(ToolType,backpack));
 
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(HideType,ground);
TotalHides:=FindFullQuantity;
AddToSystemJournal('Осталось '+IntToStr(TotalHides)+' кожи ');
end; 
end;
End.
И овцы целы, и волки сыты, и светлая память пастуху.
Gatin
Posts: 3
Joined: 16.03.2010 22:44

Post by Gatin »

подскажиет переделал под скрипт только на обычную ткань, но почему то не работает, выкладывает сделаные в сундук, но ткань не берет с пола
изменил только это
сервер runuo 2.0 sphere replic (in-x.org)
===============================================================================


======================================}
ItemGump:='2'; {номер гампа делаемого итема}
ItemType:=$1544; {тайп делаемого итема}
ToolType:=$0F9D; {тайп инструмета}
HideType:=$175D; {тайп кожи}
Trash:=$40327B2D; {ID мусорника}
ItemCostHide:=2; {кол-во кожи требуемое на 1 итем}
{===============================================================================
Gatin
Posts: 3
Joined: 16.03.2010 22:44

Post by Gatin »

вроде заработало, но как то долго очень
примерно 1 в минуту
[10:57:57] System: That is not a valid command.
[10:58:08] You see: Exceptional bandana
[10:58:09] System: You must wait to perform another action.
[10:58:14] System: You put the bandana in your pack.
[10:59:09] You see: Exceptional bandana
[10:59:09] System: You must wait to perform another action.
[10:59:12] System: You put the bandana in your pack.
как можго убрать задержку
вот вроде все по минимуму поставил и хайд и чек сейф

Code: Select all

Program Tailor; 
var 
ItemCostHide,TotalHides,i: integer; 
stime : TDateTime; 
Trash,TempHides : cardinal; 
HideType,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(500); 
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(500); 
end; 


procedure CheckHides; 
Label a1st; 
begin 
WaitConnection(500); 
checksave; 
if (GetQuantity(TempHides) >= ItemCostHide) then Exit; 
a1st: 
WaitConnection(500); 
findtype(HideType,ground); 
if findcount = 0 then 
begin 
Addtosystemjournal('закончилась кожа, или не найдена, логаут'); 
FullDisconnect; 
while true do wait(500); 
end; 
if findquantity < ItemCostHide then 
begin 
Ignore(finditem); 
goto a1st; 
end 
else TempHides:=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 
{=============================================================================== 


======================================} 
ItemGump:='21';       {номер гампа делаемого итема} 
ItemType:=$1540;        {тайп делаемого итема} 
ToolType:=$0F9D;        {тайп инструмета} 
HideType:=$175D;        {тайп кожи} 
Trash:=$40327B2D;       {ID мусорника} 
ItemCostHide:=2;        {кол-во кожи требуемое на 1 итем} 
{=============================================================================== 


======================================} 
FindDistance := 2; 
SetARStatus(true); 
TempHides:=0; 
Clearjournal; 
if connected then hungry(1,ground); 
while not dead do 
begin  
if targetpresent then canceltarget;  
MoveMakeItem; 
CheckTools; 
CheckHides; 
WaitConnection(500); 
checksave; 
CheckTargetError(2,2); 
stime := Now; 
WaitGump(ItemGump); 
WaitTargetObject(TempHides); 
UseObject(FindType(ToolType,backpack)); 
  
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(HideType,ground); 
TotalHides:=FindFullQuantity; 
AddToSystemJournal('Осталось '+IntToStr(TotalHides)+' кожи '); 
end;
end; 
End.
для разора все намного проще, но там нету реконекта, а с моим инетом етом важно

Code: Select all

!Loop
Assistant.Macros.GumpResponseAction|21|0|0
Assistant.Macros.PauseAction|00:00:05
Assistant.Macros.HotKeyAction|0|Organizer Agent-4
Assistant.Macros.ElseAction
Assistant.Macros.IfAction|5|0|80
Assistant.Macros.HotKeyAction|0|Restock Agent-1
Assistant.Macros.PauseAction|00:00:00.1000000
Assistant.Macros.AbsoluteTargetAction|0|0|1077050157|3798|2267|20|2474
Assistant.Macros.PauseAction|00:00:00.7500000
Assistant.Macros.EndIfAction

может кто переделает
Gatin
Posts: 3
Joined: 16.03.2010 22:44

Post by Gatin »

методом подбора изменио вот эту строчку
until (LineCount > 0) or (Now > stime + (1.0/1440));
на (1.0/7000));
теперь делает каждые 13-15 с
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

1.0/1440 = 1 минута. почему?
http://forum.sources.ru/index.php?showtopic=71175
1 минута -1/1440 или примерно 0,00069 и наконец одна секунда 1/86400 или в десятичной примерно 0,0000157
такой он, мутный формат времени.

если сильно хочется уменьшит ь вреня - то проще оперировать числом в числителе.
1.0 - 1 мин
0,5 - полминуты
0,1 - 1\10 минуты = 6 секунд
0,05 - 3 секунды

и т.д.
обычно точность до секунды не нужна.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
pioner
Posts: 4
Joined: 29.09.2006 6:44

Post by pioner »

pomogite cdelal vse toje samoe 4to i Gatin daje vzRl ego skript!
A rygaetsR tak
[8:56:11] System: What do you want to use the sewing kit on?
[8:56:11] System: You can't make anything with what you have.
[8:56:11] System: What do you want to use the sewing kit on?
[8:56:11] System: You can't make anything with what you have.
[8:56:12] System: What do you want to use the sewing kit on?
Hi-tech
Posts: 1
Joined: 13.06.2010 20:08
Location: Ukraine, Odessa
Contact:

Тейлор на болтах и ткани.

Post by Hi-tech »

Попробуйте мой скриптик. Может поможет.
Берёт с пола чисто болты и дальше всё делает сам.
В пак кинуть ножницы и инструмент для тейлора чтоб резались изделия из ткани.
Рыба рядом чтоб хавал.

Code: Select all

program Tailoring;
//v1.3 by Hi-Tech

const
itemgump = '39237';
itemtype = $1F03;
clothtype = $1766;
bolttype = $0F95;

{$Include 'all.inc'}

procedure checkcloth;
begin
if (Count(clothtype) < 20) then
   begin
   MoveItem(FindType(bolttype, Ground),50,Backpack,0,0,0);
   Wait(500);
   end;
end;

procedure checkitem;
begin
if (FindType(itemtype, Backpack) > 0) then
   begin
   ClearJournal;
   UseObject(FindType($0F9E, Backpack));
   WaitTargetType(itemtype);
   Wait(2000);
   end;
end;

BEGIN
while not Dead do
   begin
   CheckSave;
   ClearJournal;
   checkcloth;
   if (Count(bolttype) <> 0) then
      begin
      Hungry(1,ground);
      WaitGump(itemgump);
      UseObject(FindType($0F9D, Backpack));
      WaitTargetObject(FindType(bolttype, Backpack));
      WaitJournalLine(Now, 'You create|failed|destroy|broke', 10000);
      Wait(500);
      checkitem;
      end;
   Hungry(1,ground);
   WaitGump(itemgump);
   UseObject(FindType($0F9D, Backpack));
   WaitTargetObject(FindType(clothtype, Backpack));
   WaitJournalLine(Now, 'You create|failed|destroy|broke', 10000);
   Wait(500);
   checkitem;
   end;
END.
Post Reply