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

всемогущий крафтер

тут можно задать вопрос по скриптингу
Post Reply
olimpik
Neophyte
Neophyte
Posts: 26
Joined: 07.11.2016 13:34

всемогущий крафтер

Post by olimpik »

- Скрипт на 4 стелс, дабы на зулу он работает бесперебойно.
- Делаю скрипт для крафта-раба, включил его и получил по итогу крафтера со скилами по 93
- Пока соединил только БС(переплавка Армслор) и Карпентер, что то скрипт уже получился большой, как бы его сделать покрасивее и удобнее может есть варианты?
- Допустим несколько файлов каждый на свое умение и их подгружать, но как это сделать? дайте ссылку поучится

Гляньте основную функцию, правильно написано, так будет работать?
Program AllCraft

Code: Select all

Program AllCraft_Olimpik;
{$Include 'all.inc'}

var
TimeStart : TDateTime;
a,b,c,d,e,f,g,h,l,k :integer;
Item : Cardinal;

const
Tresh = $47858E0F;

IngotsType =  $1BF2; 
IngotsColor = $0000;  
HammerType = $13E3;
ForgeObj = $46A0A77A;
TongsType = $0FBB;
cutlas = $1440;
katana = $13FE;
short = $1402;
gorget = $1413;
gloves = $1414;
helm = $1412;
arms = $1410;
legs = $1411;
breastplate = $1415;

//настройки для Карпентри
LogsType =  $1BDD;    // инги которые будем плавить
LogsColor = $0000;   //$0505 birch  $0654 cherri $0415 aok  $048A swamp   $0203 hard
ToolsType =  $1032;    // тип инструмента
Deedtype = $14F0;


item_type1 = $13FD;   //лук
item_type2 = $13B2;   //хевик
item_type3 = $0F4F;   //арбаль

{переплавка кутласа}procedure Resmeltcutlas;
begin
findtype(cutlas,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     a:=0;
     TimeStart:=Now;
     Item:=FindType(cutlas,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       a := a + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (a > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               a := a + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (a > 300);
              findtype(cutlas,backpack);
    until findcount () = 0  ;
findtype(cutlas,backpack);
end;
{переплавка катаны}procedure Resmeltkatana;
begin
findtype(katana,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     b:=0;
     TimeStart:=Now;
     Item:=FindType(katana,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       b := b + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (b > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               b := b + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (b > 300);
              findtype(katana,backpack);
    until findcount () = 0  ;
findtype(katana,backpack);
end;
{переплавка шота}procedure Resmeltshort;
begin
findtype(short,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     c:=0;
     TimeStart:=Now;
     Item:=FindType(short,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       c := c + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (c > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               c := c + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (c > 300);
              findtype(short,backpack);
    until findcount () = 0  ;
findtype(short,backpack);
end;
{переплавка горжетки}procedure Resmeltgorget;
begin
findtype(gorget,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     d:=0;
     TimeStart:=Now;
     Item:=FindType(gorget,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       d := d + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (d > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               d := d + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (d > 300);
              findtype(gorget,backpack);
    until findcount () = 0  ;
findtype(gorget,backpack);
end;
{переплавка перчаток}procedure Resmeltgloves;
begin
findtype(gloves,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     e:=0;
     TimeStart:=Now;
     Item:=FindType(gloves,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       e := e + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (e > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               e := e + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (e > 300);
              findtype(gloves,backpack);
    until findcount () = 0  ;
findtype(gloves,backpack);
end;
{переплавка Шлема}procedure Resmelthelm;
begin
findtype(helm,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     f:=0;
     TimeStart:=Now;
     Item:=FindType(helm,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       f := f + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (f > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               f := f + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (f > 300);
              findtype(helm,backpack);
    until findcount () = 0  ;
findtype(helm,backpack);
end;
{переплавка наплечников}procedure Resmeltarms;
begin
findtype(arms,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     g:=0;
     TimeStart:=Now;
     Item:=FindType(arms,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       g := g + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (g > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               g := g + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (g > 300);
              findtype(arms,backpack);
    until findcount () = 0  ;
findtype(arms,backpack);
end;
{переплавка ног}procedure Resmeltlegs;
begin
findtype(legs,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     h:=0;
     TimeStart:=Now;
     Item:=FindType(legs,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       h := h + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (h > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               h := h + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (h > 300);
              findtype(legs,backpack);
    until findcount () = 0  ;
findtype(legs,backpack);
end;
{переплавка пуза}procedure Resmeltbreastplate;
begin
findtype(breastplate,backpack);
while FindCount() > 5 do
repeat
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     l:=0;
     TimeStart:=Now;
     Item:=FindType(breastplate,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       l := l + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (l > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               l := l + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (l > 300);
              findtype(breastplate,backpack);
    until findcount () = 0  ;
findtype(breastplate,backpack);
end;
{деалем кутлес}procedure Cutlass;
 begin
  UseObject(FindType(HammerType,Backpack));
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Weapons');
           WaitMenu('What','Swords');
            wait(500)
            WaitMenu('What','Cutlass'); 
            if TargetPresent then CancelTarget;
 end;
{деалем шот}procedure Shortt;
 begin
       FindType(cutlas,backpack);
       if (findcount > 0) then MoveItems(backpack, cutlas, $FFFF, Tresh, 0, 0, 0, 50);
       UseObject(FindType(HammerType,Backpack));
       wait(500); 
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What would you like to make?','Weapons');
           WaitMenu('What','Other');
            wait(500)
            WaitMenu('What','Short'); 
            if TargetPresent then CancelTarget;
 end;
{деалем катану}procedure Katanaa;
 begin
       FindType(short,backpack);
       if (findcount > 0) then MoveItems(backpack, short, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500); 
       UseObject(FindType(HammerType,Backpack));
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Weapons');
           WaitMenu('What','Swords');
            wait(500)
            WaitMenu('What','Katana'); 
            if TargetPresent then CancelTarget;
 end;
{деалем горжетку}procedure gorgett;
 begin
       FindType(katana,backpack);
       if (findcount > 0) then MoveItems(backpack, katana, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500);
       UseObject(FindType(HammerType,Backpack));
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Armor');
           WaitMenu('What','Platemail');
            wait(500)
            WaitMenu('What','Gorget'); 
            if TargetPresent then CancelTarget;
 end;  
{деалем перчи}procedure glovess;
 begin
       FindType(gorget,backpack);
       if (findcount > 0) then MoveItems(backpack, gorget, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500); 
       UseObject(FindType(HammerType,Backpack));
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Armor');
           WaitMenu('What','Platemail');
            wait(500)
            WaitMenu('What','Gloves'); 
            if TargetPresent then CancelTarget;
 end;  
{деалем шлем}procedure helmm;
 begin
       FindType(gloves,backpack);
       if (findcount > 0) then MoveItems(backpack, gloves, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500);
       UseObject(FindType(HammerType,Backpack));
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Armor');
           WaitMenu('What','Helm');
            wait(500)
            WaitMenu('What','Plate'); 
            if TargetPresent then CancelTarget;
 end;   
{деалем наплечники}procedure armss;
 begin
       FindType(helm,backpack);
       if (findcount > 0) then MoveItems(backpack, helm, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500);
       UseObject(FindType(HammerType,Backpack));
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Armor');
           WaitMenu('What','Platemail');
            wait(500)
            WaitMenu('What','Arms'); 
            if TargetPresent then CancelTarget;
 end;   
{деалем ноги}procedure legss;
 begin
       FindType(arms,backpack);
       if (findcount > 0) then MoveItems(backpack, arms, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500);  
       UseObject(FindType(HammerType,Backpack));
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Armor');
           WaitMenu('What','Platemail');
            wait(500)
            WaitMenu('What','Legs'); 
            if TargetPresent then CancelTarget;
 end;  
{деалем пузо}procedure breastplatee;
 begin
       FindType(legs,backpack);
       if (findcount > 0) then MoveItems(backpack, legs, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500); 
       UseObject(FindType(HammerType,Backpack));
       findtype(IngotsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Armor');
          WaitMenu('What','Platemail');
          wait(500)
          WaitMenu('What','Breastplate'); 
          if TargetPresent then CancelTarget;
 end;
 {деалем стул}procedure Chairr;
 begin
       FindType(IngotsType,backpack);
       if (count(IngotsType) > 0) then MoveItem(FindType(IngotsType,backpack),$FFFF,ground,0,0,0);
       FindType(breastplate,backpack);
       if (findcount > 0) then MoveItems(backpack, breastplate, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500); 
       UseObject(FindType(ToolsType,Backpack));
       findtype(LogsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Chairs'); 
          wait(500)
          WaitMenu('What','Chair');
            if TargetPresent then CancelTarget;
 end;         
{деалем ящик}procedure Cratee;
 begin
       FindType(IngotsType,backpack);
       if (count(IngotsType) > 0) then MoveItem(FindType(IngotsType,backpack),$FFFF,ground,0,0,0);
       FindType(breastplate,backpack);
       if (findcount > 0) then MoveItems(backpack, breastplate, $FFFF, Tresh, 0, 0, 0, 50);
       wait(500); 
       UseObject(FindType(ToolsType,Backpack));
       findtype(LogsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Container'); 
          wait(500)
          WaitMenu('What','Crate');
            if TargetPresent then CancelTarget;
 end; 
{деалем ящик}procedure Boxx;
 begin
       UseObject(FindType(ToolsType,Backpack));
       findtype(LogsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Container'); 
          wait(500)
          WaitMenu('What','Box');
            if TargetPresent then CancelTarget;
 end;  
{деалем щиты}procedure Kitee;
 begin
       UseObject(FindType(ToolsType,Backpack));
       findtype(LogsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Shields'); 
          wait(500)
          WaitMenu('What','Kite');
            if TargetPresent then CancelTarget; 
end;
{деалем ящики}procedure Strongss;
 begin
       UseObject(FindType(ToolsType,Backpack));
       findtype(LogsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Container'); 
          wait(500)
          WaitMenu('What','Strong');
            if TargetPresent then CancelTarget;
 end;       
{деалем палкку}procedure Quarterr;
 begin
       UseObject(FindType(ToolsType,Backpack));
       findtype(LogsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Staffs'); 
          wait(500)
          WaitMenu('What','Quarterstaff');
            if TargetPresent then CancelTarget;
 end;          
{деалем палку}procedure Shepardss;
 begin
       UseObject(FindType(ToolsType,Backpack));
       findtype(LogsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Staffs'); 
          wait(500)
          WaitMenu('What','Shepards');
            if TargetPresent then CancelTarget;
 end;  
{деалем палку}procedure Blackk;
 begin
       UseObject(FindType(ToolsType,Backpack));
       findtype(LogsType,backpack);
          WaitTargetObject(finditem);
          wait(500)
          WaitMenu('What','Staffs'); 
          wait(500)
          WaitMenu('What','Black');
          if TargetPresent then CancelTarget;
 end; 
 {БС}procedure BS;
   begin    
     AddToSystemJournal('Ingi:'+IntToStr(Count(IngotsType))+' '+'Ingi na polu:'+IntToStr(CountEx(IngotsType,$FFFF,ground))+' '+'logi:'+IntToStr(Count($1BDD)));
     {добираем инги}  
     if (CountEx(IngotsType,IngotsColor,backpack)) < 50 then MoveItem(FindTypeEx(IngotsType,IngotsColor,ground,true),10000,backpack,0,0,0);   
     wait(500);
   end;  
   {Carpentry}procedure Carp;
   begin  
        {добираем логи}
     if (CountEx(LogsType,LogsColor,backpack) < 50) then MoveItem(FindTypeEx(LogsType,LogsColor,ground,true),10000,backpack,0,0,0);
       wait(500);
     FindType(Deedtype,backpack);
     if (findcount > 0) then MoveItems(backpack, Deedtype, $FFFF, Tresh, 0, 0, 0, 100);
     FindType($1B79,backpack);
     if (findcount > 0) then MoveItems(backpack, $1B79, $FFFF, Tresh, 0, 0, 0, 100);      
     FindType($1B78,backpack);
     if (findcount > 0) then MoveItems(backpack, $1B78, $FFFF, Tresh, 0, 0, 0, 100);    
     FindType($0E81,backpack);
     if (findcount > 0) then MoveItems(backpack, $0E81, $FFFF, Tresh, 0, 0, 0, 100);       
     FindType($0DF0,backpack);
     if (findcount > 0) then MoveItems(backpack, $0DF0, $FFFF, Tresh, 0, 0, 0, 100);     
     FindType($0E8A,backpack);
     if (findcount > 0) then MoveItems(backpack, $0E8A, $FFFF, Tresh, 0, 0, 0, 100);
     wait(500);
     AddToSystemJournal('logs:'+IntToStr(Count(LogsType))+' '+'Logi na polu:'+IntToStr(CountEx(LogsType,$0000,ground)));  
   end;
    
 
BEGIN
SetARStatus(true);
while true do
   begin 
    {армс лор}  
     UseSkill('Arms Lore');  
     waittargetobject(findtype($0F51,backpack)); // тип ножа, если молоток то заменить на $13E3 
     wait(1000); 
     {выкидываем луки}
     FindType(item_type1,backpack);
       if (findcount > 0) then MoveItems(backpack, item_type1, $FFFF, Tresh, 0, 0, 0, 50);
         wait(500); 
     {выкидываем хевики}    
     FindType(item_type2,backpack);
         if (findcount > 0) then MoveItems(backpack, item_type2, $FFFF, Tresh, 0, 0, 0, 50);
         wait(500);
     {выкидываем арбали}    
     FindType(item_type3,backpack);
         if (findcount > 0) then MoveItems(backpack, item_type3, $FFFF, Tresh, 0, 0, 0, 50);
         wait(500);

     CancelMenu;
       k:=0;
       TimeStart:=Now; 

    if (GetSkillValue('Blacksmithy') <= 40.0) then begin Cutlass; BS;end;
    if (GetSkillValue('Blacksmithy') <= 50.0) and (GetSkillValue('Blacksmithy') > 40.1) then begin shortt; BS; end;
    if (GetSkillValue('Blacksmithy') <= 62.0) and (GetSkillValue('Blacksmithy') > 50.1) then begin Katanaa; BS; end;
    if (GetSkillValue('Blacksmithy') <= 69.0) and (GetSkillValue('Blacksmithy') > 62.1) then begin gorgett;; BS; end;
    if (GetSkillValue('Blacksmithy') <= 74.0) and (GetSkillValue('Blacksmithy') > 69.0) then begin glovess; BS;  end;
    if (GetSkillValue('Blacksmithy') <= 78.0) and (GetSkillValue('Blacksmithy') > 74.0) then begin helmm;  BS; end;
    if (GetSkillValue('Blacksmithy') <= 82.0) and (GetSkillValue('Blacksmithy') > 78.0) then begin armss; BS; end;
    if (GetSkillValue('Blacksmithy') <= 86.0) and (GetSkillValue('Blacksmithy') > 82.0) then begin legss; BS;end;
    if (GetSkillValue('Blacksmithy') <= 93.0) and (GetSkillValue('Blacksmithy') > 86.0) then begin breastplatee;  BS; end;
    if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 39.0) then begin Chairr;Carp;end;
    if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 42.0) and (GetSkillValue('Carpentry') > 39.0) then begin Cratee;Carp;end;
    if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 58.0) and (GetSkillValue('Carpentry') > 42.0) then begin Boxx;Carp; end;
    if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 62.0) and (GetSkillValue('Carpentry') > 58.0) then begin kitee;Carp;end;
    if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 80.0) and (GetSkillValue('Carpentry') > 62.0) then begin strongss;Carp;end;
    if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 85.0) and (GetSkillValue('Carpentry') > 80.0) then begin Quarterr;Carp;end;
    if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 90.0) and (GetSkillValue('Carpentry') > 85.0) then begin Shepardss;Carp;end;
    if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 92.9) and (GetSkillValue('Carpentry') > 90.0) then begin Blackk;Carp;end;

      repeat
      wait(100);
      k := k + 1;
      until (InJournalBetweenTimes('stop|already|Canceled|finish', TimeStart, Now)<>-1) or (k > 300);
      
     if InJournal('Success')<>-1 then Hungry(1,ground); 
     Resmeltcutlas;
     Resmeltkatana;
     Resmeltshort;
     Resmeltgorget; 
     Resmeltgloves;
     Resmelthelm;  
     Resmeltarms;
     Resmeltlegs; 
     Resmeltbreastplate; 
  
   end;
End.
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: всемогущий крафтер

Post by GeeZeR »

Разбить бота на 2 файла. Первый это просто список функций - на каждое действие отдельная функция, которая будет возвращать результат работы (т.е. отдельно функция на ходьбу, функция на копание, на переплавку и т.д.), а второй файл это главный цикл программы с логикой, которая управляет этими функциями - когда надо их включает, и принимает какое-то решение после того как они завершились и вернули какой-то результат. К примеру функция копания вернула результат о том, что в тайлах вокруг уже нет руды, и завершила свою работу. Логика в главном скрипте понимает это и запускает функцию для перехода на другую точку. Та в свою очередь привела чара на точку, завершила и вернула результат, что всё окей. Логика в главном скрипте понимает это и снова запускает функцию на коп и т.д.
Всё это заключаешь в вечный цикл внутри которого логика управляет действиями по кругу: коп, переход, проверка на вес, путь к плавильне, плавка руды, снова коп и т.д. Это в простом варианте.

Можно сделать сложнее - один главный бесконечный цикл программы в котором содержатся другие циклы и команды:
1) Цикл на функции хождения, копания, плавки и условия выхода из него если надо прервать всё это.
2) После него другой цикл на другие действия или просто команды на то чтоб лететь домой, выгружать слитки, возвращаться обратно.
Т.о. главный цикл программы повторяет вообще все действия бота по кругу, содержит условия прекращения работы и т.д.

Короче схема инклудов тут: http://stealth.od.ua/forum/viewtopic.php?p=10414#p10414
Один из примеров тут: http://stealth.od.ua/forum/viewtopic.ph ... ION#p18055
Логику для своего бота уже придумаешь сам - как это всё разбить на функции и как в главном скрипте ими управлять.
Stealth 8.10.2 | Клиент: 7.0.13.4
Post Reply