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

Stoneskin. DRW

Only working scripts
Post Reply
Envy
Neophyte
Neophyte
Posts: 20
Joined: 04.01.2013 18:13

Stoneskin. DRW

Post by Envy »

Чей-то скрипт на варку пойзонок переиначил под стонески. Шард DRW

Code: Select all

Program Alchemy; 

// Крафт зелья "Stoneskin".                                                   

{$Include 'all.inc'} 
var 
 TimeStart : TDateTime;
 k : integer;
 

const 
WhatYouDo = 'Stoneskin'; 		// Что делаем 
TypBottles = $0F0E;  			// Тип пустых бутылок 
TypPotion = $0F0E;   			// Тип готовых бутылок 
ColPotion = $0964;   			// Цвет готовых бутылок 
TypGA= $0F84;				// Тип Чеснока  	(garlic)
TypGS= $0F85;  				// Тип Женьшеня 	(ginseng)
TypMR= $0F86;				// Тип Корня Мандрагоры (mandrake root)
CountRegs = 300; 			// Какое количество реагентов брать 
CountBottles = 100; 			// Какое количество пустых бутылок брать 
Sunduk_reags_bottels = $40249D09; 	// ИД сундука с которого берем бутылки и реагенты 
Sunduk_craft = $4024A3F9;  		// ИД сундука в который кладем готовый продукт 
hide=1; 				// Встаем в хайди или нет. 0-нет 1-да



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


 procedure Check_Hidden;
begin
 if not Hidden then
  begin
   while not Hidden do
    begin
      SetWarMode(False);
      useskill('Hiding');
      wait(3600);
   end;
    AddToSystemJournal('Спрятались.');
 end;
end;


procedure check_ga; 
 begin 
UseObject(Sunduk_reags_bottels);
  FindType(TypGA,Backpack); 
  if (FindCount=0) OR (Count(TypGA)<10) then 
    begin 
      UseObject(Sunduk_reags_bottels); 
      wait(250); 
      FindType(TypGA,Sunduk_reags_bottels); 
      if (FindCount>0) and (CountEx(TypGA,$0000,Sunduk_reags_bottels)>100) then 
        begin 
          MoveItem(FindItem,CountRegs,Backpack,0,0,0); 
             wait(1000);
          AddToSystemJournal('Добрали '+IntToStr(CountRegs)+' чеснока. На данный момент имеем '+IntToStr(Count(TypGA))+' штук. Осталось ещё '+IntToStr(CountEx(TypGA,$0000,Sunduk_reags_bottels))+' чеснока.'); 
        end 
      else 
        AddToSystemJournal('Ошибка во время добора чеснока.'); 
   exit;
    end;
 end; 


procedure check_gs; 
 begin 
UseObject(Sunduk_reags_bottels);
  FindType(TypGS,Backpack); 
  if (FindCount=0) OR (Count(TypGS)<10) then 
    begin 
      UseObject(Sunduk_reags_bottels); 
      wait(250); 
      FindType(TypGS,Sunduk_reags_bottels); 
      if (FindCount>0) and (CountEx(TypGS,$0000,Sunduk_reags_bottels)>100) then 
        begin 
          MoveItem(FindItem,CountRegs,Backpack,0,0,0); 
             wait(1000);
          AddToSystemJournal('Добрали '+IntToStr(CountRegs)+' женьшеня. На данный момент имеем '+IntToStr(Count(TypGS))+' штук. Осталось ещё '+IntToStr(CountEx(TypGS,$0000,Sunduk_reags_bottels))+' женьшеня.'); 
        end 
      else 
        AddToSystemJournal('Ошибка во время добора женьшеня.'); 
   exit;
    end;
 end; 


procedure check_mr; 
 begin 
UseObject(Sunduk_reags_bottels);
  FindType(TypMR,Backpack); 
  if (FindCount=0) OR (Count(TypMR)<10) then 
    begin 
      UseObject(Sunduk_reags_bottels); 
      wait(250); 
      FindType(TypMR,Sunduk_reags_bottels); 
      if (FindCount>0) and (CountEx(TypMR,$0000,Sunduk_reags_bottels)>100) then 
        begin 
          MoveItem(FindItem,CountRegs,Backpack,0,0,0); 
             wait(1000);
          AddToSystemJournal('Добрали '+IntToStr(CountRegs)+' корней Мандрагоры. На данный момент имеем '+IntToStr(Count(TypMR))+' штук. Осталось ещё '+IntToStr(CountEx(TypMR,$0000,Sunduk_reags_bottels))+' штук корня Мандрагоры.'); 
        end 
      else 
        AddToSystemJournal('Ошибка во время добора корня Мандрагоры.'); 
   exit;
    end;
 end; 

procedure check_bootle; 
 begin 
UseObject(Sunduk_reags_bottels);
  FindTypeEx(TypBottles,$0000,Backpack,false); 
  if (FindCount=0) OR (Count(TypBottles)<5) then 
    begin 
      UseObject(Sunduk_reags_bottels); 
      wait(250); 
      FindTypeEX(TypBottles,$0000,Sunduk_reags_bottels,false); 
      if (FindCount>0) and (CountEx(TypBottles,$0000,Sunduk_reags_bottels)>100) then 
        begin 
          MoveItem(FindItem,CountBottles,Backpack,0,0,0); 
              wait(1000);
          AddToSystemJournal('Добрали '+IntToStr(CountBottles)+' бутылок. На данный момент имеем '+IntToStr(CountEx(TypBottles,$0000,backpack))+' штук. Осталось ещё '+IntToStr(CountEx(TypBottles,$0000,Sunduk_reags_bottels))+' бутылок.'); 
        end 
      else 
        AddToSystemJournal('Ошибка во время добора бутылок.'); 
   exit;
  end;
 end; 
 
 

procedure craft_bottle; 
 begin 
      FindTypeEx(TypPotion,ColPotion,Backpack,false); 
      if (FindCount>0) AND (CountEx(TypPotion,ColPotion,backpack) >=  10) then 
        begin 
          MoveItem(FindItem,GetQuantity(FindItem),Sunduk_craft,0,0,0); 
          wait(800); 
        AddToSystemJournal(IntToStr(CountEx(TypPotion,ColPotion,Sunduk_craft))+' '+WhatYouDo+ ' на данный момент в сундуке.' );
      end; 
 end;






Begin
 ClearJournal;
 while not Dead do
   begin    
     check_ga;   
     check_gs;   
     check_mr;
     check_bootle; 
     if hide=1 then Check_Hidden;

     if Weight>500 then exit;    ///Если перебор веса выключение

     k:=0;
     TimeStart:=Now;
     UseObject(FindType(TypGA,Backpack)) 
     WaitMenu('What',WhatYouDo); 
     repeat
       wait(100);
       k := k + 1;
       Check_World_Save;
     until (InJournalBetweenTimes('You put', TimeStart, Now)<>-1) or (InJournalBetweenTimes('You toss', TimeStart, Now)<>-1) or (k > 300);
     wait(100);
        craft_bottle; 
        ClearJournal;
  end;
End.
Post Reply