OfCourseCED

main.js

Feb 24th, 2022
686
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //====================================[USER SETTINGS]====================================\\
  2. //A városváltás között eltelt idő (milisecond):
  3. var TickInterval = 1000 * 5;
  4.  
  5. //A minimális nyersanyag, ami a szerveren 1 aranyat ér:
  6. var MinimalValue = 100;
  7.  
  8. //Be legyen-e kapcsolva a captcha érzékelése? :
  9. var CaptchaDetection = true;
  10.  
  11. //A zenefájl, amit lejátszik, ha captchát érzékel:
  12. var Music = 'https://notificationsounds.com/storage/sounds/file-sounds-1134-open-up.mp3';
  13. //=======================================================================================\\
  14.  
  15. //============================================[CONTROL]=================================================\\
  16. //Változók:
  17. var player;
  18. var isRunning;
  19.  
  20. //Főszál:
  21. (function() {
  22.     'use strict';
  23.     isRunning = false;
  24.     setTimeout(AfterGameLoad, TickInterval);
  25. })();
  26.  
  27. //Azután hajtódnak végre, miután betöltött a játék:
  28. async function AfterGameLoad()
  29. {
  30.     //Hang hozzáadása:
  31.     player = document.createElement('audio');
  32.     player.src = Music;
  33.     player.preload = 'auto';
  34.     //Vezérlőgomb hozzáadása:
  35.     var zNode = document.createElement ('div');
  36.     zNode.innerHTML = '<button id="btnTozsdeControl" type="button">'
  37.                     + 'Indítás</button>';
  38.     zNode.setAttribute ('id', 'contTozsde');
  39.     document.getElementsByClassName('nui_main_menu')[0].getElementsByClassName('middle')[0].getElementsByClassName('content')[0].appendChild(zNode);
  40.     document.getElementById("btnTozsdeControl").addEventListener("click", ButtonClickAction, false);
  41.     //MainMethod elindítása:
  42.     CheckIfTozsdeIsOpen();
  43. }
  44.  
  45. //Ha rákattintanak a tőzsde controlra.
  46. function ButtonClickAction (zEvent)
  47. {
  48.     if (isRunning) //Ha fut a program
  49.     {
  50.         document.getElementById('btnTozsdeControl').innerText = "Indítás";
  51.         isRunning = false;
  52.     }
  53.     else
  54.     {
  55.         document.getElementById('btnTozsdeControl').innerText = "Leállítás";
  56.         isRunning = true;
  57.     }
  58. }
  59. //========================================================================================================\\
  60. //=======================================[Segéd metódusok]================================================\\
  61. //Sleep metódus:
  62. function sleep(milliseconds) {
  63.     return new Promise(resolve => setTimeout(resolve, milliseconds));
  64. }
  65. //========================================================================================================\\
  66. //=======================================[Bot metódusok]==================================================\\
  67. //Megnézi, hogy meg van-e nyitva a tőzsde:
  68. async function CheckIfTozsdeIsOpen()
  69. {
  70.     var tozsde = document.getElementsByClassName('js-window-main-container classic_window market');
  71.     if (tozsde.length === 0) //Ha nincs megnyitva a tőzsde, akkor vár
  72.     {
  73.         await setTimeout(CheckIfTozsdeIsOpen, TickInterval);
  74.     }
  75.     else //Ha meg van nyitva a tőzsde:
  76.     {
  77.         try
  78.         {
  79.             //Átkattintja az eladásra:
  80.             await document.getElementsByClassName('gp_page_caption js-page-caption js-page-caption-1')[0].click();
  81.         }
  82.         catch (err){console.log(err)}
  83.         try
  84.         {
  85.             if (isRunning) await CheckResources();
  86.         }
  87.         catch (err){console.log(err)}
  88.         await setTimeout(CheckIfTozsdeIsOpen, TickInterval);
  89.     }
  90. }
  91.  
  92. //Megnézi, hogy van-e üres hely a tőzsdén:
  93. async function CheckResources()
  94. {
  95.     document.getElementsByClassName('btn_next_town button_arrow right')[0].click(); //Következő város window_content js-window-content
  96.     await sleep(500);
  97.     //Lekéri a nyersanyagmennyiségeket:
  98.     var resources = document.getElementsByClassName('js-window-main-container classic_window market')[0].getElementsByClassName('window_content js-window-content')[0].getElementsByClassName('game_border')[0].getElementsByClassName('gp_tab tab_premium_exchange')[0].getElementsByClassName('gp_tab_page js-page js-page-1 game_body active')[0].getElementsByClassName('resources_wrapper')[0].getElementsByClassName('resource');
  99.     await sleep(250);
  100.     var fa = resources[0].innerText.split('/');
  101.     var ko = resources[1].innerText.split('/');
  102.     var ezust = resources[2].innerText.split('/');
  103.  
  104.     //Megnézi, hogy lehet-e eladni:
  105.     if (fa[0] < fa[1]-MinimalValue) //Ha lehet eladni fát
  106.     {
  107.         await SellResources(0);
  108.     }
  109.     if (ko[0] < ko[1]-MinimalValue) //Ha lehet eladni követ
  110.     {
  111.         await SellResources(1);
  112.     }
  113.     if (ezust[0] < ezust[1]-MinimalValue) //Ha lehet eladni ezüstöt
  114.     {
  115.         await SellResources(2);
  116.     }
  117. }
  118. async function SellResources(resource)
  119. {
  120.     var capacity = await document.getElementsByClassName('gp_tab_page js-page js-page-1 game_body')[0].getElementsByClassName('pg_capacity single-progressbar')[0].getElementsByClassName('caption')[0].getElementsByClassName('value_container')[0].getElementsByClassName('curr')[0].innerText;
  121.     if (capacity > MinimalValue)
  122.     {
  123.         var res = await document.getElementsByClassName('ui_resources_bar')[0].children[resource].innerText; //Lekéri az elérhető nyersanyagot az adott fajtából
  124.         if (res > MinimalValue) //Ha az elérhető nyersanyagfajtából van elég
  125.         {
  126.             for (let i = 0; i < 25; i++) //Hozzáadja a nyersanyagot
  127.             {
  128.                 await document.getElementsByClassName('gp_tab_page js-page js-page-1 game_body active')[0].getElementsByClassName('resources_wrapper')[0].getElementsByClassName('resource')[resource].getElementsByClassName('spinner sp_resource')[0].getElementsByClassName('button_up')[0].click();
  129.                 await sleep(50);
  130.             }
  131.             //Rákattint az ajánlatok keresésére
  132.             await document.getElementsByClassName('gp_tab_page js-page js-page-1 game_body active')[0].getElementsByClassName('button_container')[0].getElementsByClassName('button_new btn_find_rates')[0].click();
  133.             await sleep(250);
  134.             //Rákattint az elfogadás gombra
  135.             await document.getElementsByClassName('confirm_order')[0].getElementsByClassName('button_container')[0].getElementsByClassName('button_new btn_confirm')[0].click();
  136.             await sleep(500);
  137.             var captcha = await document.getElementById('recaptcha_window');
  138.             if(typeof(captcha) != 'undefined' && captcha != null && CaptchaDetection) player.play();
  139.             while(typeof(captcha) != 'undefined' && captcha != null)
  140.             {
  141.                 captcha = await document.getElementById('recaptcha_window');
  142.                 await sleep(100);
  143.             }
  144.     }
  145.     }
  146. }
  147. //========================================================================================================\\
Advertisement
Add Comment
Please, Sign In to add comment