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

БС одинаковые названия вещей!

тут можно задать вопрос по скриптингу
Post Reply
Daimond
Neophyte
Neophyte
Posts: 10
Joined: 15.03.2017 13:12

БС одинаковые названия вещей!

Post by Daimond »

Народ подскажите как заставить делать определенную вещь если вещи начинаются с одного и того же слова? Например: Breasplate Legs и Breasplate. Делает ноги а надо грудь,как сделать ?

Code: Select all

Program BlackSmithy;
 
{$Include 'all.inc'}
 
var
TimeStart : TDateTime;
k :integer;
Item : Cardinal;
 
const
Mainbag1 = $549DC9FA;     //сумка с добычей
Mainbag2 = $549DC9FA;     //сумка с добычей
Ingots = $1BF2;       // руда
ItemType = $1415;     // куем пузо 1415, Gorget 1413, Arms 1410, Legs 1411   
ItemCost = 25;        // вес
ForgeObj = $401965B5; // тут указываем серийник плавильни
HammerType = $13E3;   // молот
TongsType = $0FBB;    // плавка
 
  
 
 
 
 
procedure ArmsLore;
begin
    CancelTarget; //на всякий случай уберем таргет
    WaitTargetType($0E85);
    UseSkill('Arms Lore'); //используем скилл
    wait (5000);
end;
 
 
procedure Resmelt;
begin
findtype(ItemType,backpack);
while FindCount() > 0 do
begin
Clearjournal();
   checksave;
   CheckTargetError(2,2);
     if targetpresent then canceltarget;
     k:=0;
     TimeStart:=Now;
     Item:=FindType(ItemType,Backpack);
     WaitTargetObject(Item)
      repeat
       UseObject(FindType(TongsType,Backpack));
       k := k + 1;
        wait(2000);
       until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (k > 7);
         WaitTargetObject(ForgeObj);
              repeat
               wait(100);
               k := k + 1;
              until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (k > 300);
              findtype(ItemType,backpack);
    clearjournal;
end;
findtype(ItemType,backpack);
end;
 
 
 
 
Begin
SetARStatus(true);
Hungry(1,backpack);
while (not Dead) do
   begin
        Hungry(1,-1);
        CancelTarget; //на всякий случай уберем таргет
        WaitTargetType($0E85);
        UseSkill('Arms Lore'); //используем скилл
        wait (4000);
        ClearJournal;
        CancelMenu;
        k:=0;
        TimeStart:=Now;
        UseObject(FindType(HammerType,Backpack));
        findtype(Ingots,backpack);
        WaitTargetObject(finditem);
        wait(500)
        WaitMenu('What would you like to make?', 'Armors');
        wait(500)
        WaitMenu('What kind of armor?', 'Platemail');
        wait(500)
        WaitMenu('What would you like to make?', 'Platemail');
            repeat
                wait(100);  
                k := k + 1;
                wait(500);
            until (InJournalBetweenTimes('stop|pack|finished', TimeStart, Now)<>-1) or (k > 300);
        wait(100);
       // if (InJournal('Success: hernya.') > -1) or (InJournal('Success: Perfect.') > -1) then 
              //          begin  
               //             ClearJournal;
               //             Findtype(ItemType,backpack);
                //            wait(100);
                //            MoveItem(finditem, 0, Mainbag1, 0, 0, 0);
                //            wait(100);
                //        end;
       // if InJournal('Success')<>-1 then
        //    begin
        //        wait(500);
        //        Findtype(ItemType,backpack);
        //        wait(100);
         //       MoveItem(finditem, 0, Mainbag2, 0, 0, 0);
         //       wait(100);
          //  end;                                     
        Resmelt;
        ArmsLore;
        ClearJournal;         
   end;
End.
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: БС одинаковые названия вещей!

Post by GeeZeR »

http://stealth.od.ua/Doc:RU/Api/W#WaitMenu
WaitMenu('Tracking','(first)');
Вы можете использовать: (first) , (second) , (random)...

Не видя что там за меню трудно сказать. Попробуй указать порядковый номер, а вообще по-человечески будет разобраться с гампами: http://stealth.od.ua/Doc:RU/Manual/Reference/Gump
Stealth 8.10.2 | Клиент: 7.0.13.4
Daimond
Neophyte
Neophyte
Posts: 10
Joined: 15.03.2017 13:12

Re: БС одинаковые названия вещей!

Post by Daimond »

GeeZeR wrote:http://stealth.od.ua/Doc:RU/Api/W#WaitMenu
WaitMenu('Tracking','(first)');
Вы можете использовать: (first) , (second) , (random)...

Не видя что там за меню трудно сказать. Попробуй указать порядковый номер, а вообще по-человечески будет разобраться с гампами: http://stealth.od.ua/Doc:RU/Manual/Reference/Gump
Меню стандартное, по счету армор грудь пятая (5), по порядку идут : 1) локти, 2) ноги, 3) шея, 4) руковицы, 5) грудь, 6) женская грудь.
Attachments
Безымянный.jpg
Безымянный.jpg (159.69 KiB) Viewed 5749 times
Daimond
Neophyte
Neophyte
Posts: 10
Joined: 15.03.2017 13:12

Re: БС одинаковые названия вещей!

Post by Daimond »

заранее спасибо за помощь!
GeeZeR
Apprentice
Apprentice
Posts: 226
Joined: 28.01.2012 19:48

Re: БС одинаковые названия вещей!

Post by GeeZeR »

ну если с ноля считать, то она четвёртая, попробуй варианты:
WaitMenu('Tracking','(fourth)');
WaitMenu('Tracking','(four)');
WaitMenu('Tracking','(fifth)'); // а вдруг
WaitMenu('Tracking','(five)'); // а вдруг
WaitMenu('Tracking','(4)');
WaitMenu('Tracking','(5)');

Если не поможет, то когда это меню появится закрой все остальные гампы и выполни скрипт, лог сюда скопируй:

Code: Select all

Program takegump; 
 
var 
b : TStringList; 
i : Integer; 
 
Begin 
b := TStringList.Create; 
SetSilentMode(False); 
for  i := 0 to GetGumpsCount - 1 do 
  GetGumpFullLines(i,b); 
b.free; 
End.
Stealth 8.10.2 | Клиент: 7.0.13.4
Daimond
Neophyte
Neophyte
Posts: 10
Joined: 15.03.2017 13:12

Re: БС одинаковые названия вещей!

Post by Daimond »

GeeZeR wrote:ну если с ноля считать, то она четвёртая, попробуй варианты:
WaitMenu('Tracking','(fourth)');
WaitMenu('Tracking','(four)');
WaitMenu('Tracking','(fifth)'); // а вдруг
WaitMenu('Tracking','(five)'); // а вдруг
WaitMenu('Tracking','(4)');
WaitMenu('Tracking','(5)');

Если не поможет, то когда это меню появится закрой все остальные гампы и выполни скрипт, лог сюда скопируй:

Code: Select all

Program takegump; 
 
var 
b : TStringList; 
i : Integer; 
 
Begin 
b := TStringList.Create; 
SetSilentMode(False); 
for  i := 0 to GetGumpsCount - 1 do 
  GetGumpFullLines(i,b); 
b.free; 
End.

Спасибо огромное только нужно было слегка исправить скрипт :
Так было: WaitMenu('What would you like to make?', 'Platemail');
так стало: WaitMenu('What would you like to make?', '(4)');

Спасибо что дал работать в правильном направление!

Теперь скрипт делает то что нужно.
Post Reply