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

Tinkering_Necklace. Dragon World

Only working scripts
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

Post by CxC »

сделал

Code: Select all

BEGIN 
KeyType[0]:=$1010; 
KeyType[1]:=$1085; 

WaitConnection(3000); 
SetARStatus(true); 
LastContOpen:=Now; 
OpenContainer(true); 
FindType(Bag,Sunduk_With_Empty_Bags); 
case FindCount of 
  0:AddToSystemJournal('Или в сундуке нет сумок или я его не смог открыть. '); 
else 
AddToSystemJournal('В сундуке нашлось '+IntToStr(FindCount)+' сумок.'); 
end;
While not Dead do 
    begin 
    If Connected then 
        begin 
   OpenContainer(false); 
   LoadIron; 
   LoadTinkerTools; 
   CraftKeys; 
   UnloadKeys; 
   end 
    Else Wait(3000); 
    end; 
END.
ошибка таже

Code: Select all

17:12:05 [Corvin]: Compiling
17:12:05 [Corvin]: Compiled succesfully
17:12:05 [Corvin]: UseObject error: Object not finded.
17:12:07 [Corvin]: UseObject error: Object not finded.
17:12:09 [Corvin]: Свободных сумочек больше нету.останавливаем скрипт. at 53.1044
17:12:09 [Corvin]: Script Тинкер.txt stopped successfuly
при этом если запустить еще раз, то

Code: Select all

17:17:00 [Corvin]: Compiling
17:17:00 [Corvin]: Compiled succesfully
и ничего не происходит

1) перепроверил
2) есть, больше 100
3) стоит возле сундука, открывает на голом или через инжект
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

спасибо, оставил размер массива 2, но т.к. 2-ой мне не нужен - написал левый тип. Теперь возникает ошибка скорее всего в FindEmptyBag.

Code: Select all

procedure FindEmptyBag; 
..... 
       SumQnt:=CountEx(KeyType[0],$FFFF,TempBag)+CountEx(KeyType[1],$FFFF,TempBag);
.....
Интересно , а что вовзращает при "левом" типе вот это СountEx(KeyType[1],$FFFF,TempBag);?

и если второй тип не нужен тогда просто убери его

Code: Select all

SumQnt:=CountEx(KeyType[0],$FFFF,TempBag);
а вообще тогда и от массива можно избавится, сделать его константой
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

Post by CxC »

исправил, все также

сейчас добавил в FindEmptyBag

Code: Select all

UseObject(Sunduk_With_Empty_Bags); 
       wait(1000);
осталось просто

Code: Select all

21:52:48 [Corvin]: Compiling
21:52:48 [Corvin]: Compiled succesfully
21:52:48 [Corvin]: UseObject error: Object not finded.
21:52:49 [Corvin]: UseObject error: Object not finded.

Code: Select all

Program Keys; 

{$Include 'all.inc'} 
{$Include 'CheckLag.inc'} 

Const 
   Sunduk_With_Iron_and_Tools=$40E2C633;     // сундук с айрон инготами и тинкер тулсами 
   Sunduk_With_Empty_Bags=$40DAB9FD;         // сундук с пустыми сумочками  
   Sunduk_With_Full_Bags=$40DABBD8;          // сундук ,куда складываем заполненные сумочки 
   Bag=$0E76;  
   Tools=$1EBC; 
   Ingot=$1BEF;  //(Antares) 
   Eda=$097B; 
   MaxQnt=250;                                   //максимальное кол-во никлейсов в сумке                              
   KeyType=$1010;

Var 
   CurrentBag: cardinal; 
   i: integer; 
   LastContOpen: TDateTime; 

procedure Check_World_Save; 
  begin 
     if InJournal('saving')<>-1 then 
        begin 
        SetJournalLine(InJournal('saving'),''); 
        SetJournalLine(InJournal('data'),''); 
        i:=0; 
        repeat 
           wait(10000); 
           i:=i+1; 
           AddToSystemJournal('World is saving more than '+IntToStr(i*10)+' seconds.'); 
        until (InJournal('data')<>-1) or (i>30); 
        end; 
 end; 

procedure LoadIron; 
Begin 
If Dead Or (Not Connected) then Exit; 
If Count(Ingot)<2 then 
    begin 
    FindTypeEx(Ingot,$0000,Sunduk_With_Iron_and_Tools,false); 
    If Not DragItem(FindItem,100) then  AddToSystemJournal('В сундуке кончились айрон инготы!'); 
    Wait(500); 
    If (Weight>(STR*4)) then  
       begin 
       DropItem(Sunduk_With_Iron_and_Tools,0,0,0); 
       raiseException(erCustomError,'У НАС ЯВНЫЙ ПЕРЕГРУЗ!!!МЫ НЕ МОЖЕМ ВЗЯТЬ ИНГОТЫ!!!'); 
       end 
    Else DropItem(backpack,0,0,0); 
    end; 
End; 

procedure LoadTinkerTools; 
Begin 
If Dead Or (Not Connected) then Exit; 
If Count(Tools)<1 then 
    begin 
    If FindType(Tools,Sunduk_With_Iron_and_Tools)=0 then AddToSystemJournal('Не могу найти тинкер тулсу!') 
    Else  Moveitem(FindItem,1,backpack,0,0,0); 
    end; 
End; 

procedure CraftKeys; 
Var 
   STime: TDateTime; 
   FailCounter: integer; 

Begin 
Check_World_Save; 
Stime:=Now; 
UseType(Tools,$FFFF); 
AutoMenu( 'Tinkering' , 'Keys' ); 
AutoMenu( 'Keys','Iron key' ); 
WaitJournalLine(STime,'You put|failed',30000); 
wait(200); 
   If (InJournalBetweenTimes('failed',Stime,Now)<>-1) then FailCounter:=(FailCounter+1); 
   If (InJournalBetweenTimes('You put',Stime,Now)<>-1) then FailCounter:=0; 
   If FailCounter>=20 then Wait(30000); 
End; 

procedure FindEmptyBag; 
var 
TempBag: cardinal; 
SumQnt: integer; 

Begin 
UseObject(Sunduk_With_Empty_Bags); 
       wait(1000);
FindType(bag,Sunduk_With_Empty_Bags); 
   If FindCount>0 then 
       begin 
       If Dead or (Not Connected) then Exit; 
       Check_World_Save; 
       TempBag:=FindItem; 
       UseObject(FindItem); 
       CheckLag; 
       Wait(1000); 
       SumQnt:=CountEx(KeyType,$FFFF,TempBag); 
       If (SumQnt<MaxQnt) then                                                  
           begin 
      AddToSystemJournal('запоминаем пустую сумочку...'); 
           CurrentBag:=TempBag; 
      Exit; 
      end 
        else 
      begin 
      AddToSystemJournal('Найденная сумочка забита до отказа!Перекладываем в сундук с заполненными сумками.'); 
      MoveItem(TempBag,1,Sunduk_With_Full_Bags,0,0,0); 
      Wait(1000); 
      end; 
       FindType(bag,Sunduk_With_Empty_Bags); 
       wait(200); 
       end; 
    If (FindCount<1) then raiseException(erCustomError,'Свободных сумочек больше нету.останавливаем скрипт.') 
End; 

procedure OpenContainer(f : boolean); 
   // если f - true - просто открываем все нужные контейнеры, то есть: 
   // SundukIngots,SundukEmptyBag,Sunduk2Craft и curbag (если он не равен 0) 
   // если f - false - проверяем, был ли реконнект чара после последнего 
   // открывания контейнеров, если был - переоткрываем контейнеры и записываем 
   // новое значение в переменную LastContOpen, если не был - ничего не делаем 
Begin 
If Dead or (Not Connected) then Exit; 
if (f = true) or (LastContOpen < ConnectedTime) then 
    begin 
         UseObject(Sunduk_With_Empty_Bags); 
         wait(1000); 
         Check_World_Save; 
         UseObject(Sunduk_With_Full_Bags); 
         wait(1000); 
         Check_World_Save; 
         UseObject(Sunduk_With_Iron_and_Tools); 
    wait(1000); 
    Check_World_Save; 
    if CurrentBag <> 0 then 
             begin 
             UseObject(CurrentBag); 
             wait(1000); 
             Check_World_Save; 
             end 
    Else 
        FindEmptyBag; 
         LastContOpen := Now; 
         addtosystemjournal('Контейнеры открыты в ' + DateTimeToStr(Now)); 
      end; 
End; 

procedure UnLoadKeys; 
Begin 
If (Weight>(4*Str-100)) or (Count(KeyType)>=MaxQnt) then      
    begin 
    For i:=0 to 1 do 
         repeat 
         If Dead Or (Not Connected) then Exit; 
    Check_World_Save; 
         If (CountEx(KeyType,$FFFF,CurrentBag))>=MaxQnt then              
        begin 
        AddToSystemJournal('Сумку заполнили полностью!Перекладываем в сундук с заполненными сумками.'); 
        MoveItem(CurrentBag,1,Sunduk_With_Full_Bags,0,0,0); 
        Wait(1000); 
        FindEmptyBag; 
        end; 

    FindType(KeyType,Backpack); 
         if FindCount>0 then 
            begin 
            MoveItem(FindItem,1,CurrentBag,0,0,0); 
            CheckLag; 
            end; 
         until  (FindType(KeyType,Backpack)=0); 
    end; 
End; 

BEGIN 


WaitConnection(3000); 
SetARStatus(true); 
LastContOpen:=Now; 
OpenContainer(true); 
FindType(Bag,Sunduk_With_Empty_Bags); 
case FindCount of 
  0:AddToSystemJournal('Или в сундуке нет сумок или я его не смог открыть. '); 
else 
AddToSystemJournal('В сундуке нашлось '+IntToStr(FindCount)+' сумок.'); 
end;
While not Dead do 
    begin 
    If Connected then 
        begin 
   OpenContainer(false); 
   LoadIron; 
   LoadTinkerTools; 
   CraftKeys; 
   UnloadKeys; 
   end 
    Else Wait(3000); 
    end; 
END.
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

Code: Select all

procedure FindEmptyBag; 
var 
TempBag: cardinal; 
SumQnt: integer; 

Begin 
UseObject(Sunduk_With_Empty_Bags); 
     wait(5000); <----------------0!! для теста
     Check_World_Save; <----------------0!!
FindType(bag,Sunduk_With_Empty_Bags); 
AddToSystemJournal('Сумок найдено - '+intToStr(FindCount));  <---------1
   If FindCount>0 then 
       begin 
       If Dead or (Not Connected) then Exit; 
       Check_World_Save; 
       TempBag:=FindItem;
       AddToSystemJournal('TempBag - $'+IntToHex(TempBag,8) );  <------------2
       UseObject(FindItem); 
       CheckLag; 
       Wait(1000); 
       SumQnt:=CountEx(KeyType,$FFFF,TempBag); 
       If (SumQnt<MaxQnt) then                                                  
           begin 
      AddToSystemJournal('запоминаем пустую сумочку...'); 
           CurrentBag:=TempBag; 
      Exit; 
      end 
        else 
      begin 
      AddToSystemJournal('Найденная сумочка забита до отказа!Перекладываем в сундук с заполненными сумками.'); 
      MoveItem(TempBag,1,Sunduk_With_Full_Bags,0,0,0); 
      Wait(1000); 
      end; 
       FindType(bag,Sunduk_With_Empty_Bags); 
       wait(200); 
       end; 
    If (FindCount<1) then raiseException(erCustomError,'Свободных сумочек больше нету.останавливаем скрипт.') 
End;
Last edited by WladL on 27.10.2009 23:51, edited 2 times in total.
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

Post by CxC »

а что поставить вместо SumQnt, там же суммы уже не будет....
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

CxC wrote:а что поставить вместо SumQnt, там же суммы уже не будет....
Можно вообще ее убрать ибо тип остался 1, а для получения кол-ва предметов в сумке ....

Code: Select all

...
UseObject(FindItem); 
       CheckLag; 
       If (CountEx(KeyType,$FFFF,TempBag)<MaxQnt) then                                                  
           begin 
      AddToSystemJournal('запоминаем пустую сумочку...'); 
           CurrentBag:=TempBag; 
      Exit;
...
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

Post by CxC »

спасибо, и в прошлом и в тестовом варианте он мешки находит, запоминает его, но дальше пусто :( тупо ничего не делает....

Посмотрел подроднее крафт и выгруз мешков - что-то запутано там, попробую завтра разобраться.

ЗЫ: Буду рад если в асю выйдешь, что на форуме флудом не заниматься
Scripts Writer
Novice
Novice
Posts: 130
Joined: 06.05.2008 18:03

Post by Scripts Writer »

Растянули топик на 7 страниц :)
Мб скинуть Вам скриптик на отмычки? Неклейсы не в моде нынче на DRW.
Проще научить человека ловить рыбу, чем постоянно ею его кормить. (с) Destruction
CxC
Neophyte
Neophyte
Posts: 34
Joined: 25.10.2009 15:45
Contact:

Post by CxC »

Скинь скрипт на ключи($1010) или на что-то другое , чтоб ирон в ящике, тулсы... Сумка с полными и пустыми мешками. И главное чтоб делал предметы не в бэкпаке )

вот это идеальный скрипт, жрачку, хайд уже можно самому по желанию привинтить
Post Reply