Jump to content
lazarbeam

[2007] Special Attack

Recommended Posts

Returns the estimated percent full of the special attack bar: Retuns -1 if it can't find the special attack bar.

This was fairly accurate with my tests. May return 11% for 10% or 21% for 20%, but 30%-100% has been dead on, as well as 0% and -1.

If there's problems, you may need to adjust the tolerance (it's so high to address a problem at 0%)

Function GetSpecialAttackLevel:Integer;
var x,y:Integer;
Begin
 If(RS07_LoggedIn)Then
   Begin
     If(Not(RS07_GameTabOpen(0)))Then RS07_OpenGameTab(0);
     If(FindColorTol(x,y,29,572,417,713,419,100))Then
       Begin
         Result:= Round(100-100*(713-x)/141);  
       end else 
         Begin
           If(Not(FindColorTol(x,y,4361025,572,417,713,419,50)))Then
             Begin
               Result:= -1;
             end else Result:=100;
         end;
   end;
end;

Edited by lazarbeam
Link to comment
Share on other sites

Nice work, looking good!

 

If you want to tweak the logical part a bit, then you could change:

 

If(Not(RS07_GameTabOpen(0)))Then RS07_OpenGameTab(0); => if RS07_OpenGameTab(0) then

 

Because RS07_OpenGameTab() is based on RS07_OpenGameTabEx() which uses RS07_GameTabOpen() in it.

 

Source (Includes\MSSL\Library\Gaming\RuneScape_2007\Core\Level-2\GameTab.scar) for RS07_OpenGameTabEx():

 

function RS07_OpenGameTabEx(i, interval, maxTime: Integer): Boolean;
{==============================================================================]   
 Created: February 25th, 2013.
 Contributors: Janilabo
 Explanation: Opens game tab with ID (i). Tries to open game tab with interval.
              Keeps going till maxTime has reached or game tab activated.
              Returns true with success.                   
[==============================================================================}
var
 tm, tm2: Integer;
 p: TPoint;
begin
 if RS07_LoggedIn then
 begin
   if (IsTextAtEx(184, 34, 'The Bank', 0, RS07_MainFont, False, False, 0, 0, 2070783) or IsTextAtEx(332, 288, 'Withdraw', 0, RS07_SmallFont, False, False, 0, 0, 2070783)) then
   begin
     p := Point((428 + Random(20)), (39 + Random(4)));
     tm := GetSystemTime;
     repeat    
       if (not RS07_LoggedIn or ((GetSystemTime - tm) > 5000)) then
         Exit;
       if ((GetSystemTime - tm2) > (150 + Random(150))) then
       begin
         RS07_ClickMouse(p.X, p.Y, mbLeft);
         tm2 := GetSystemTime;
       end; 
     until not (IsTextAtEx(184, 34, 'The Bank', 0, RS07_MainFont, False, False, 0, 0, 2070783) or IsTextAtEx(332, 288, 'Withdraw', 0, RS07_SmallFont, False, False, 0, 0, 2070783));                                          
   end;
   p := BoxCenter(RS07_GameTabs[i].area); 
   MSSL_OffsetPoint(p, RandomRange(-4, 5), RandomRange(-4, 5));
   tm := GetSystemTime;
   repeat       
     if not RS07_LoggedIn then
       Exit; 
     Result := RS07_GameTabOpen(i); // <= this line over here
     if not Result then
     begin   
       if ((GetSystemTime - tm2) > interval) then
       begin 
         if MouseInBox(RS07_GameTabs[i].area) then
           RS07_Click(mbLeft)
         else
           RS07_ClickMouse(p.X, p.Y, mbLeft);
         tm2 := GetSystemTime;  
       end;   
       MSSL_Wait(0);
     end;
   until (Result or ((GetSystemTime - tm) > maxTime));
 end;
end;

 

So as you see: "Result := RS07_GameTabOpen(i);"

 

Infact, you could actually even remove the RS07_LoggedIn from this function, because that is also checked with RS07_OpenGameTabEx(), meaning RS07_OpenGameTab() returns false if you aren't logged in. :P

 

I would do something this:

 

function GetSpecialAttackLevel: Integer;
var
 x, y: Integer;
begin     
 Result := -1;
 if RS07_OpenGameTab(0) then
 case FindColorTol(x, y, 29, 572, 417, 713, 419, 100) of
   True: Result := Round(100 - (100 * (713 - x) / 141));
   False:         
   if FindColorTol(x, y, 4361025, 572, 417, 713, 419, 50) then
     Result := 100;                                           
 end;
end;

 

But for some reason, the function returns 0 if special attack bar isn't there.. Should it be like that? I mean is it better to return it as 0 if its not even found? I think this result might be because the tolerance is just too high for the first FindColorTol() [100]..

 

Nevertheless, nice job and keep em coming lazar!

Link to comment
Share on other sites

Thanks for the tips! I haven't done much scripting since 2.03 and am trying to get back into the swing of things and learn all of the new functions.

 

And the return of -1 is a check if a weapon compatible with special attack is being wielded. In the case that I wrote this script, I am switching to Excalibur to use the special attack. So a return of -1 doubles as a check for that.

Link to comment
Share on other sites

0 03 bitcoina tuzona crypto pdf 2 inch crypto when will bitcoins run out buy bitcoin cash on coinbase with bitcoin hotels by the crypto arena acid technologies crypto lark davis crypto how do you buy bitcoin futures buy bitcoin lightning node how to buy bitcoin buy and sell bitcoin $scrt ac3 crypto 10 best crypto mining companies sonic mania netflix

base token mynaswap buy bitcoin with neteller usa $ound crypto coin rankings buy bitcoin with nike giftcard can h1b buy bitcoin how do you buy bitcoin on blockchain $fire crypto buy bitcoin with card us

buy runescape bond with bitcoin buy bitcoin online no coinbase buy bitcoin uae reddit link staking super form can you buy partial bitcoin stock when is the next crypto bull run crypto.com gift cards 39 bitcoin what are bitcoin etfs

buy bitcoin paypal instantly trust wallet token buying bitcoin in blockchain new cryptocurrency release 2021 6 trillion dollar bitcoin how to buy ethereum with bitcoin on coinbase gift crypto to family members is the tesla bitcoin giveaway real rivian stock market 666 666 bitcoin block

how to get trump in infinite craft 753 capital crypto ads crypto price prediction mudai crypto airdrop may 2018
Link to comment
Share on other sites

Как найти аудиопоздравления на телефон: полезные советы

Праздничные деньки и особые события в жизни отличная возможность изумить собственных недалёких оригинальным пожеланьем. Если вы желаете выслать аудиопоздравление на телефон, но не знаете, с чего же стоит начать, эта статья окажет вам помощь найти подходящие решения.

1. Поиск готовых аудиопоздравлений

Существует огромное количество ресурсов, где можно найти готовые аудиопоздравления:
- Веб-веб-сайты специальные сайты и блоги предлагают коллекции аудиопоздравлений на разные поводы: деньки рождения, anniversaries, Новый год и прочие празднички. Воспользуйтесь запросами в поисковике, в том числе аудиопоздравления скачать либо аудиопоздравления на телефон.
- Прибавленья многие мобильные приложения для создания поздравлений предлагают интегрированные аудиофайлы. Попробуйте установить приложения, такие как "Поздравления" либо "Картинки и поздравления".

2. Запись собственного аудиопоздравления

Ежели вы желаете добавить личный штрих, запишите пожеланье сами:
- Смартфон используйте прибавленье для записи звука (встроенное в телефон либо посторонние прибавленья). Просто нажмите на запись, произнесите поздравление и сохраните файл.
- Редактирование при помощи приложений для редактирования звука (к примеру, Audacity или GarageBand) вы сможете добавить музыку, эффекты или сделать лучше качество записи.

3. Отправка аудиопоздравления

После всего этого как вы нашли либо записали аудиопоздравление, вам надо выслать его:
- ММС вы сможете выслать аудиофайл через MMS. Просто изберите файл и отправьте его, как обыденное известие.
- Мессенджеры воспользуйтесь популярными приложениями, в том числе WhatsApp, Viber либо Telegram, чтобы выслать аудиозапись. Всегда есть возможность прибавления текста и эмодзи, чтоб сделать поздравление более выразительным.
- Email если нужно отправить длинный https://audiosms.ru/ файл, используйте электронную почту. Прикрепите аудиофайл к известью и отправьте его адресату.

4. Использование социальных сетей

Ежели вы хотите сделать пожеланье более публичным, опубликуйте его на своих страничках в социальных сетях:
- Instagram Stories либо Facebook загрузите аудиофайл или добавьте его в видео, которое можно оформить с помощью красивых фонов и фильтров.
- VK вы можете сделать пост с аудиозаписью и поделиться им с друзьями или в сообществах.

Заключение

Аудиопоздравления это отличный способ изумить и порадовать близких. Выбор готовых аудиофайлов, творенье собственного пожеланья либо использование мессенджеров и соц сетей все это окажет вам помощь найти идеальный метод поздравить собственных друзей и родных. Не побаивайтесь проявлять креативность, и ваш подарок станет незабываемым!
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
  • Create New...