Created
January 31, 2015 21:30
-
-
Save Neznakomec/f16a95eb23bb32b49571 to your computer and use it in GitHub Desktop.
bot work module
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<? | |
//трудоустраивает на предприятие | |
$tp=0;$error_object_go=0;unset($error_object_bad);$error_object_bad[]='x'; //сбрасываем инфу | |
//общий цикл | |
for($x6=0;$x6<2;++$x6){ | |
//**********************ДЕЙСТВИЯ В home.php | |
if(!in_array(2,$m_noacces) and !close_modul(2) and (($tp!=1 and (check_text(1,'object-info.php') || check_text(1,'object_do.php') || (!check_text(1,'home.php') and rand(0,5)==1))) || check_text(1,'home.php'))){ | |
include($dir.'/functions/moduls/home.php'); //подключаем модуль своей страницы | |
if($expectation_work>0)break; | |
} | |
//**********************ДЕЙСТВИЯ В map.php | |
if(!check_text(1,'map.php')){ | |
loged('переходим на карту'); | |
//переходим на карту | |
if(!$element->click_on_element_by_inner_text(trans_lang('Карта')))close_modul(6,'Карта',1); | |
elseif(!go('map.php') || !check_text(1,'map.php')){close_modul(6,'при заходе на карту, перешли на другую страницу');break;} | |
} | |
rand_sleep(1,3); //осматриваем производства | |
if(!in_array(3,$m_noacces) and !close_modul(3) and $emul_map_neytral==1 and $game_neytral_propusk!=0)include($dir.'/functions/moduls/map_neytral.php'); //подключение модуля пропуска нейтралов | |
$waittime=time(); //подсчет сколько тратится на поиск работы | |
$work_type_map=1; //сбрасываем инфу на тип карты где больше зарплата | |
//поиск производства и последующий переход | |
while($game_work_search_time>(time()-$waittime)){ | |
$tp=0; | |
if($game_server=='ru'){ | |
$arr_html1=explode('<TD class=wbwhite><B>Тип</B></TD>',$webpage->get_source()); | |
$arr_html2=explode('<a href=\'ecostat.php\'><b>Статистика</b></a>',$arr_html1[1]); | |
} | |
else{ | |
$arr_html1=explode('<TD class=wbwhite><B>Type </B></TD>',$webpage->get_source()); | |
$arr_html2=explode('<a href=\'ecostat.php\'><b>Statistics</b></a><BR>',$arr_html1[1]); | |
} | |
if($arr_html2[0]==''){close_modul(6,'изменилась навигация для объектов карты');break;} | |
//берем все предприятия (где >>>) на которые можно перейти | |
if($game_work_search_object==0 || check_text(0,'<b>'.$ar_map_type[2].'</b>'))preg_match_all('/<b>([0-9]{3,4})<\/b> <\/td><td class=wbwhite > <a href=\'object-info.php\?id=([0-9]{1,4})\' style=\'text-decoration:none;\'>»»»<\/a> <\/td><\/tr>/',$arr_html2[0],$array_url_oject); | |
$object_good=''; //сбрасываем инфу | |
//смотрим предприятия по фильтру, отбрасываем все что: в массиве $error_object_bad, по конфигу с маленьким зарплатой, не имеет имени по которой можно нажать | |
if(count($array_url_oject[2])>0)foreach($array_url_oject[2] as $row)if(!in_array($row,$error_object_bad) and $array_url_oject[1][0]>=$game_work_zarplata_min and preg_match('/<tr><td class=(.*?) > <a href=\'object-info.php\?id='.$row.'\'>(.*?)<\/a> <\/td>/',$arr_html2[0],$array_name_oject)){$object_good=$row;break;} | |
if($object_good==''){ | |
if($game_work_search_object==0 || check_text(0,'<b>'.$ar_map_type[2].'</b>'))loged('нет свободных для работы объектов'); | |
else loged('такие объекты для работы пока не подходят'); | |
//переход на другой тип карты | |
if(($game_work_search_object==0 and rand(0,4)!=1) || (($game_work_search_object==1 || $game_work_search_object==2) and !check_text(0,'<b>'.$ar_map_type[2].'</b>'))){ | |
rand_sleep(2,4); //ожидаем | |
if ($game_work_search_object==1)$work_type_map=0; | |
if(($game_work_search_object==1 and ($game_work_search_time*0.7)>(time()-$waittime)))$work_type_map=1; | |
if(($game_work_search_object==1 and ($game_work_search_time*0.4)>(time()-$waittime)) ||$game_work_search_object==2)$work_type_map=2; | |
loged('меняем тип карты на '.$ar_map_type[$work_type_map]); | |
$anchor->click_by_inner_text($ar_map_type[$work_type_map],'true'); //переходим на другой тип карты | |
go('map.php'); | |
} | |
elseif($anchor->click_by_inner_text($ar_map_type[$work_type_map],'true') and go('map.php')){rand_sleep(4,11);loged('обновили объекты');} //нажимаем на текущий тип карты, для обновления | |
} | |
elseif(!$anchor->click_by_inner_text($array_name_oject[2],true)){++$error_object_go;loged('не смогли перейти на объект '.$array_name_oject[2]);} | |
elseif(go('object-info.php') and check_text(1,'object-info.php')){$tp=1;loged('перешли на объект '.$array_name_oject[2]);break;} | |
else{++$error_object_go;loged('не смогли зайти на объект '.$array_name_oject[2]);} | |
if($error_object_go==2){close_modul(6,'постоянные ошибки при переходах на объекты');break;} | |
elseif((time()-$waittime)>=$game_work_search_time){loged('поиск объектов для работы закончился неудачей');rand_sleep(5,12);} //если достигли конца цикла | |
} | |
if(close_modul(6))break; //если в предыдущем цикле был заблокирован модуль, отключаем | |
//**********************ДЕЙСТВИЯ В object-info.php | |
if($tp==1){ | |
for($i4=0;$i4<3;$i4++){ | |
if(preg_match('/([.0-9]{3}) '.trans_lang('штраф трудоголика').'/',$webpage->get_source(),$array_shtraf_trudogolik) and $game_work_close_shtraf_trugogolik>$array_shtraf_trudogolik[1]){$x6=2;if($game_work_close_shtraf_trugogolik_stop==1)stop_bot('штраф трудоголика превысил допустимое');else close_modul(6,'штраф трудоголика превысил допустимое');break;} | |
elseif(check_text(0,trans_lang('Прошло меньше часа с последнего устройства на работу. Ждите.')) || check_text(0,trans_lang('Вы уже устроены.'))){ | |
loged('трудоустройство уже было'); | |
if(!in_array(2,$m_noacces) and !close_modul(2))include($dir.'/functions/moduls/home.php'); //подключение модуля личная страница | |
else {put_tempfile('data/modul_work_'.$game_server.'_indate.txt',time()+300);} | |
$x6=2;break; | |
} | |
elseif(check_text(0,trans_lang('Нет рабочих мест.'))){$error_object_bad[]=$object_good;$x6=0;loged('нет мест для работы');rand_sleep(2,5);break;} | |
elseif(check_text(0,trans_lang('На объекте недостаточно золота.'))){$error_object_bad[]=$object_good;$x6=0;loged('у предприятия не хватает золота для работы');rand_sleep(1,2);break;} | |
elseif(check_text(0,trans_lang('На объекте недостаточно ресурсов для производства.'))){$error_object_bad[]=$object_good;$x6=0;loged('не хватает ресурсов у предприятия');rand_sleep(1,3);break;} | |
elseif(!check_text(0,'work_codes/')){$x6=2;close_modul(6,'нет подпапки на картинку');break;} | |
else{ | |
$waittime=time(); //подсчет за сколько разгадала капча код | |
if(strlen($captcha_kod)==6)loged('взяли недавно разгаданный код капчи'); | |
else{ | |
$captcha_name='work_'.time().'_'.rand(99,10000).'.jpg'; //создаем имя картинке капчи | |
if(!$image->save_to_file_by_url('work_codes/',$dir.'/temp/captcha/'.$captcha_name,'false')){$captcha_kod='';close_modul(6,'не получилось сохранить картинку');$x6=2;break;} | |
else{ | |
loged('взяли картинку для разгадывания'); | |
//разгадывание по антикапче | |
if($game_vvod_kapcha==1 and $anticaptcha_key!=''){ | |
if(rand(0,2)==1)$captcha_kod=anticaptcha_v2_search($dir.'/temp/captcha/'.$captcha_name,6,$object_good); | |
else $captcha_kod=anticaptcha_v1_sleep($dir.'/temp/captcha/'.$captcha_name,6); | |
} | |
elseif($game_vvod_kapcha==2 and $captchabot_key!=''){ | |
$oc=new OCR(); | |
$captcha_kod = $oc->Recognize($dir.'/temp/captcha/'.$captcha_name,$captchabot_key); | |
} | |
//разгадывание по капчаботу | |
else{$keyboard->set_current_language('en');$captcha_kod=$app->dlg_captcha_from_url_exactly('work_codes/',false);} //ручное разгадывание | |
$captcha_kod=trim($captcha_kod); //убираем лишнее из кода капчи | |
loged('код '.$captcha_kod.' разгадан за '.(time()-$waittime).' сек.'); | |
}} | |
if((time()-$waittime)>85 || $captcha_kod=='' || $error_captcha_kod_bad==3){ | |
$x6=2; | |
if((time()-$waittime)>85)loged('при разгадывании прошло много времени'); | |
elseif($error_captcha_kod_bad==3)loged('при разгадывании прошло много попыток разгадываний'); | |
else loged('код капчи не был разгадан'); | |
loged('блокируем модуль на '.($rand=rand(100,350)).' сек.'); | |
put_tempfile('data/modul_work_'.$game_server.'_indate.txt',(time()+$rand)); //временно блокируем модуль бота из за недоступности сервиса | |
break; | |
} | |
elseif(strlen($captcha_kod)!=6){loged('у кода "'.$captcha_kod.'" неправильное кол-во символов');++$error_captcha_kod_bad;$captcha_kod='';} | |
elseif(!check_text(0,'work_codes/')){loged('капчи уже нет');break;} | |
else{ | |
click_work_flash($captcha_kod); //вводим код капчи и нажимаем на флеш кнопку | |
if($game_minimize_to_tray==1)$app->minimize_to_tray(); //сворачиваем в трей, если в настроках прописано | |
if(!go('object_do.php') || !check_text(1,'object_do.php')){ | |
++$error_object_flash; | |
loged('не смогли нажать на кнопку отправки'); | |
if($error_object_flash==3){ | |
put_tempfile('data/modul_work_'.$game_server.'_indate.txt',(time()+rand(50,300))); //блокируем запуск модуля на 30-40 минут | |
$error_object_flash=0; | |
$x6=2; | |
break; | |
} | |
} | |
elseif(check_text(0,trans_lang('Вы устроены на работу'))){ | |
++$num_all_trud; | |
loged($num_all_trud.' трудоустройство успешно произведено'); | |
put_tempfile('data/modul_work_'.$game_server.'_indate.txt',(time()+rand(1800,2200))); //блокируем запуск модуля на 30-40 минут | |
@rename($dir.'/temp/captcha/'.$captcha_name,$dir.'/temp/captcha/'.$captcha_kod.'.jpg'); //переименовываем имя картинки капчи на имя с кодом капчи | |
$error_object_flash=0;$error_captcha_kod_bad=0;$captcha_kod=''; //сбрасываем инфу | |
$x6=2; //делаем выходит из общего цикла | |
if(rand(0,5)!=1 and !in_array(2,$m_noacces) and !close_modul(2)){ | |
rand_sleep(1,4); | |
include($dir.'/functions/moduls/home.php'); | |
} | |
break; | |
} | |
else{ | |
if(check_text(0,trans_lang('Введен неправильный код'))){loged('введен неправильный код');++$error_captcha_kod_bad;$captcha_kod='';} | |
else loged('выведенa неизвестная информация'); | |
if($i4!=1 and rand(0,2)==1)break; //выходим по рандому | |
rand_sleep(0,3); | |
if($anchor->click_by_inner_text(trans_lang('Назад'),'true') and go('object-info.php'))loged('перешли назад на производство'); | |
} | |
if(file_exists($dir.'/temp/captcha/'.$captcha_name))unlink($dir.'/temp/captcha/'.$captcha_name); //удяляем старую капчу | |
}}} | |
} | |
//если модуль временно не блокирован и уже пошел выход из общего цикла, то временно блокируем модуль работы | |
if((time()-read_tempfile('data/modul_work_'.$game_server.'_indate.txt'))>=0 and ($x6==1 || $error_captcha_kod_bad==3)){ | |
$error_captcha_kod_bad==0; //сбрасываем инфу | |
loged('блокируем модуль на '.($rand=rand(40,210)).' сек.'); | |
put_tempfile('data/modul_work_'.$game_server.'_indate.txt',(time()+$rand)); //блокируем запуск модуля | |
break; | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment