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

AutoBuy

тут можно задать вопрос по скриптингу
Post Reply
Shimazakhi
Neophyte
Neophyte
Posts: 15
Joined: 28.10.2014 18:30

AutoBuy

Post by Shimazakhi »

Добрый вечер! Помогите решить проблему.

Code: Select all

procedure autobuy;
begin
uosay('buy');
wait(500);
AutoBuy($0F7B,$0000,60); // (21 строка) 
end;
Ошибка:
Compiler: [Error] (*\Scripts\process\tempreg.sc at 21:24) : Invalid number of parameters

Не совсем понимаю причину, указал как в апи 3 параметра. AutobuyEX работает, но он не совсем удобный.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: AutoBuy

Post by Vizit0r »

три и есть.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Shimazakhi
Neophyte
Neophyte
Posts: 15
Joined: 28.10.2014 18:30

Re: AutoBuy

Post by Shimazakhi »

На количество параметров autobuy перестал ругаться, когда я перенес эту строку в соседний, максимально похожий скрипт.

Вот инфо по объекту у вендора

Code: Select all

* Info * : ID: $4952F635 Name: (null) Type: $0F7A Color: $0000 
* Info * : Quantity: 60 X: 55 Y: 53 Z: 0
* Info * : Tooltip: 60 Black Pearls
Это отказывается вообще работать:

Code: Select all

 AutoBuy($0F7A,$FFFF,60);
А это довольно таки глючит:

Code: Select all

AutoBuyEx($0F7B,$FFFF,kolvo,60,'null'); 
Cоздается ощущение, что при перезапуске скрипта стелс хранит старые параметры autobuy, т.к. персонаж покупает типы предметов, которые я закомментировал, например запуск скрипта с процедурой:

Code: Select all

procedure vendor_buy;
begin
buy[1] := $0F87; //EoN
buy[2] := $0F7A; //BP
buy[3] := $0F88; //NS
buy[4] := $0E34; //BLS
buy[5] := $0F7B; //BM
buy[6] := $0F84; //GA
buy[7] := $0F85; //GI
buy[8] := $0F86; //MR
SetAutoBuyDelay(1);
 FindDistance:=2; 
 
  //   AutoBuyEx($0F88,$FFFF,kolvo,60,'null');  
  //   AutoBuyEx($0F7A,$0000,kolvo,60,'null');
     UOSay('buy'); 
  //  AutoBuy(buy[7],$FFFF,60);
     //   AutoBuyEx($0F7B,$FFFF,kolvo,60,'null'); 
      wait(4000); 
      uosay('hi');
    //  
     wait(2000);     
end;
Покупает 60 NS и 60 BP , хотя покупать ничего не должен вообще.

Версия стелса 6.5.2
Shimazakhi
Neophyte
Neophyte
Posts: 15
Joined: 28.10.2014 18:30

Re: AutoBuy

Post by Shimazakhi »

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

Code: Select all

buy[1] := $0F87; //EoN
buy[2] := $0F7A; //BP
buy[3] := $0F88; //NS
buy[4] := $0E34; //BLS
buy[5] := $0F7B; //bm
buy[6] := $0F84;  // GA
buy[7] := $0F85; //GI
buy[8] := $0F86; //MR
for i:=1 to 8 do begin
AutoBuy(buy[i],$FFFF,0);
Autobuyex(buy[i],$FFFF,0,0,'Nightshade');
Autobuyex(buy[i],$FFFF,0,0,'Black pearl');
Autobuyex(buy[i],$FFFF,0,0,'ns');
addtosystemjournal('Очищаю autobuy: '+inttostr(i)); 
end;
результата нет..
Shimazakhi
Neophyte
Neophyte
Posts: 15
Joined: 28.10.2014 18:30

Re: AutoBuy

Post by Shimazakhi »

Code: Select all

Autobuyex($0F7A,$0000 ,60 , 6,'');  //BP   
   Autobuyex($0F88,$0000 ,60 , 3,'');     //NS
    Autobuyex($0F8C,$0000 ,60 , 3,'');  //SA    
    Autobuyex($0F8D,$0000 ,60 , 3,'');  //SS   
       Autobuyex($0F86,$0000 ,60 , 3,'');     //MR
    Autobuyex($0F84,$0000 ,60 , 3,'');  //GA  
    Autobuyex($0F85,$0000 ,60 , 3,'');  //GI      
        Autobuyex($0F7B,$0000 ,60 , 6,'');  //BM
это работает, все остальное - нет) завтра буду оптимизировать этот ад
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: AutoBuy

Post by drabadan »

Shimazakhi wrote:

Code: Select all

Autobuyex($0F7A,$0000 ,60 , 6,'');  //BP   
   Autobuyex($0F88,$0000 ,60 , 3,'');     //NS
    Autobuyex($0F8C,$0000 ,60 , 3,'');  //SA    
    Autobuyex($0F8D,$0000 ,60 , 3,'');  //SS   
       Autobuyex($0F86,$0000 ,60 , 3,'');     //MR
    Autobuyex($0F84,$0000 ,60 , 3,'');  //GA  
    Autobuyex($0F85,$0000 ,60 , 3,'');  //GI      
        Autobuyex($0F7B,$0000 ,60 , 6,'');  //BM
это работает, все остальное - нет) завтра буду оптимизировать этот ад
Чтобы очистить список покупок, создай его с 0 количеством. Аутобай($1234, $0000, 0);
Shimazakhi
Neophyte
Neophyte
Posts: 15
Joined: 28.10.2014 18:30

Re: AutoBuy

Post by Shimazakhi »

Возможно на некоторых серверах, где вендор вовращает (null) в name продаваемых предметов не работает autobuy(par1,par2,par3); , Визитор, нужен твой ответ :)
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: AutoBuy

Post by Vizit0r »

я не телепат, чтобы работать на расстоянии.

В приват давай чара, стоящего возле вендора , и скрипт из пары строк, который работает неправильно.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Gauhar
Novice
Novice
Posts: 87
Joined: 08.07.2008 17:40

Re: AutoBuy

Post by Gauhar »

Shimazakhi wrote:Добрый вечер! Помогите решить проблему.

Code: Select all

procedure autobuy;
begin
uosay('buy');
wait(500);
AutoBuy($0F7B,$0000,60); // (21 строка) 
end;
Ошибка:
Compiler: [Error] (*\Scripts\process\tempreg.sc at 21:24) : Invalid number of parameters
Не совсем понимаю причину, указал как в апи 3 параметра. AutobuyEX работает, но он не совсем удобный.
Так может стоит процедуру переименовать и тогда все получится, например в procedure auto_buy.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Re: AutoBuy

Post by Vizit0r »

кстати, да.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
drabadan
Expert
Expert
Posts: 730
Joined: 13.12.2012 17:35
Contact:

Re: AutoBuy

Post by drabadan »

Gauhar wrote:
Shimazakhi wrote:Добрый вечер! Помогите решить проблему.

Code: Select all

procedure autobuy;
begin
uosay('buy');
wait(500);
AutoBuy($0F7B,$0000,60); // (21 строка) 
end;
Ошибка:
Compiler: [Error] (*\Scripts\process\tempreg.sc at 21:24) : Invalid number of parameters
Не совсем понимаю причину, указал как в апи 3 параметра. AutobuyEX работает, но он не совсем удобный.
Так может стоит процедуру переименовать и тогда все получится, например в procedure auto_buy.
олололололо! этапять!
Post Reply