zlo-kazan
Скриптер
- Сообщения
- 374
- Репутация
- 100
Уже почти 2 месяца не улучшал бота, не добавлял новых функций решил выложить авось кому пригодится или возьмет его за основу и напишет своего.
P.S. За счет него прокачался с 1 до 14-го уровня за ~ 6 месяцев не получив бана и имея статы выше среднего. (Перса продаю)
P.S.S. Файл http://file.qip.ru/file/XlcVLYOM/kill_msgbox.html
нужен, чтобы убивать всплывающие окошки при удалении из контакт листа. (найду его исхдник выложу)
1. Лечиться.
2. Определять свою курутость. (без учета харизмы, суб-статов, питомца)
3. Нападать на указаный уровень.(учитывает сколько выпало. и либо добавляет ли удаляет из жертв. Фармит только тех, кто спит. Фармит не больше 140 жертв в день, чтобы не получить травму.)
4. Нападать на NPC. (Обновленное противостояние)
5. Патруль.(между часами, когда может начаться стенка в Кланваре)
6. Шаурма.(не дописана)
7. Прокачивать питомца.(указывать до каких статов качаться. Приоритет на Атаку)
8. Проходить Нефть.
9. Продлевать "Высокие связи".
10. Играть с Моней.
11. Варить петрики.
12. Нападать в ОК.(не доработанно до конца, нападает, но процесс долгий, требуется оптимизация)
13. Бункер.(Но только его старая версия 4х4)
14. Играть с Кубовичем.
15. Покупать и забирать спортлото.
Клан
16. Добавлять в фарм лист если война в 1-й фазе.
17. Записываться во все клановые стенки. При 2-й фазе.
18. Для дипломата отдельно дописал поиск нужного клана.
2. Определять свою курутость. (без учета харизмы, суб-статов, питомца)
3. Нападать на указаный уровень.(учитывает сколько выпало. и либо добавляет ли удаляет из жертв. Фармит только тех, кто спит. Фармит не больше 140 жертв в день, чтобы не получить травму.)
4. Нападать на NPC. (Обновленное противостояние)
5. Патруль.(между часами, когда может начаться стенка в Кланваре)
6. Шаурма.(не дописана)
7. Прокачивать питомца.(указывать до каких статов качаться. Приоритет на Атаку)
8. Проходить Нефть.
9. Продлевать "Высокие связи".
10. Играть с Моней.
11. Варить петрики.
12. Нападать в ОК.(не доработанно до конца, нападает, но процесс долгий, требуется оптимизация)
13. Бункер.(Но только его старая версия 4х4)
14. Играть с Кубовичем.
15. Покупать и забирать спортлото.
Клан
16. Добавлять в фарм лист если война в 1-й фазе.
17. Записываться во все клановые стенки. При 2-й фазе.
18. Для дипломата отдельно дописал поиск нужного клана.
Код:
#include <IE.au3>
#include <Inet.au3>
#include <Array.au3>
Global $status="запуск скрипта"
Global $text_search="123" ;текст который ищем
AdlibRegister("TT",100)
DirCreate(@ScriptDir & "\temp")
DirCreate(@ScriptDir & "\temp1")
$all= 50
dim $DW[$all+1]
dim $text[$all+1]
dim $oIE3[$all+1]
$timerInetGet=0
$timerWinHTTP=0
$timerIE1=0
$timerIE2=0
global $max_LVL=5 ;Уровень клана
global $max_LVL_glava=12 ;Уровень главы клана
global $max_LVL_top=12 ;Уровень сильнейшего игрока
$i=1
global $f_all=50
;~ $text1=_txt_read2(830);UBound($arr)-1)
;~ _ArrayDisplay($text1)
;~ $test1=_text_Search2(830, $text1);UBound($arr)-1, $text1)
;~ _ArrayDisplay(Arr5v1($test1))
$arr=Search_inet($all)
$arr2=Search_inet2($arr)
;~ Search_WinHTTP($all)
;~ Search_IE1($all)
;~ Search_IE2($all)
msgbox(64,"Скорость обработки", _
"Через IE= " & $timerIE1 & "сек" & @CRLF & _
"Через IE в скрытом режиме= " & $timerIE2 & "сек" & @CRLF & _
"Через WinHTTP= " & $timerWinHTTP & "сек" & @CRLF & _
"Через InetGet в фоновом режиме используя мультипоточность= " & $timerInetGet & "сек" & @CRLF)
; Сбор страниц через InetGet
Func Search_inet($all)
$Timer=TimerInit()
For $i=1 to $all
$status="загрузка " & $i & "/" & $all
$link="http://www.moswar.ru/rating/clans/arrived/"&$i&"/"
$DW[$i]=InetGet($link, @ScriptDir & "\temp\" & $i &".txt", 1, 1)
Next
Do
Sleep(250)
If TimerDiff($Timer)>60*1000 Then ExitLoop
Until chek_inetgetinfo($all)
For $i=1 to $all
InetClose($DW[$i])
Next
$text=_txt_read($all)
$test1=_text_Search($all, $text)
$timerInetGet=round(TimerDiff($timer)/1000, 2)
;~ msgbox(0,"Search_inet", "Потрачено: " & round(TimerDiff($timer)/1000, 2) & " сек")
Return Arr3v1($test1)
EndFunc
; Сбор страниц через InetGet
Func Search_inet2($arr)
redim $arr[UBound($arr)][6]
Dim $DW[UBound($arr+1)]
$Timer=TimerInit()
$f_all=UBound($arr)-1
$z=(UBound($arr)-1)/50
For $n=0 to $z+1
$full=50+$n*50
$ind=1+$n*50
If $full>UBound($arr)-1 then $full=UBound($arr)-1
For $i=$ind to $full
;~ $status="загрузка " & $i & "/" & UBound($arr)-1
$link="http://www.moswar.ru/clan/"& $arr[$i][0] &"/"
$DW[$i]=InetGet($link, @ScriptDir & "\temp1\" & $i &".txt", 1, 1)
Next
Do
Sleep(250)
If TimerDiff($Timer)>2*60*1000 Then ExitLoop
Until chek_inetgetinfo($full,$ind)
For $i=$ind to $full
InetClose($DW[$i])
Next
Next
$text1=_txt_read2(UBound($arr)-1);UBound($arr)-1)
$test1=_text_Search2(UBound($arr)-1, $text1);UBound($arr)-1, $text1)
;~ _ArrayDisplay($test1)
$timerInetGet=round(TimerDiff($timer)/1000, 2)
;~ msgbox(0,"Search_inet", "Потрачено: " & round(TimerDiff($timer)/1000, 2) & " сек")
_ArrayDisplay(Arr5v1($test1))
EndFunc
;обработка массив страниц.
Func _text_Search($all, $text)
local $k=0
dim $test_all[1]
For $i=1 to $all
$status="сверка " & $i & "/" & $all
if StringRegExp($text[$i], '(?si)href=.*?clan/([\d]{1,10})/.>(.*?)</a>.*?\[([\d]{1,2})')=0 then ContinueLoop
$test=StringRegExp($text[$i], '(?si)href=.*?clan/([\d]{1,10})/.>(.*?)</a>.*?\[([\d]{1,2})', 3)
ReDim $test_all[$k+Ubound($test)+1]
For $j=0 to UBound($test)-1
$k+=1
$test_all[$k]=$test[$j]
Next
Next
return $test_all
EndFunc
;обработка массив страниц.
Func _text_Search2($all, $text)
local $k=0
dim $test_all[1]
For $i=1 to $all
$status="сверка " & $i & "/" & $all
if StringRegExp($text[$i], '(?si)Глава:.*?clan.([\d]{1,5}).*?title="(.*?)".*?level">\[([\d]{1,2}).*?Кланеры:.*?input">([\d]{1,2}).*?player.*?level">\[([\d]{1,2})')=0 then ContinueLoop
;Глава:.*?clan.([\d]{1,5}).*?title="(.*?)".*?level">\[([\d]{1,2}).*?Кланеры:.*?input">([\d]{1,2}).*?player.*?level">\[([\d]{1,2})
$test=StringRegExp($text[$i], '(?si)Глава:.*?clan.([\d]{1,5}).*?title="(.*?)".*?level">\[([\d]{1,2}).*?Кланеры:.*?input">([\d]{1,2}).*?player.*?level">\[([\d]{1,2})', 3)
ReDim $test_all[$k+Ubound($test)+1]
For $j=0 to UBound($test)-1
$k+=1
$test_all[$k]=$test[$j]
Next
Next
return $test_all
EndFunc
; чтение txt-файлов из temp
Func _txt_read($all)
dim $text[$all+1]
For $i=1 to $all
$status="читаем " & $i & "/" & $all
$text[$i]=FileRead(@scriptdir & "\temp\" & $i & ".txt")
Next
return $text
EndFunc
; чтение txt-файлов из temp
Func _txt_read2($all)
dim $text[$all+1]
For $i=1 to $all
$status="читаем " & $i & "/" & $all
$text[$i]=FileRead(@scriptdir & "\temp1\" & $i & ".txt")
Next
return $text
EndFunc
; в этой функции проверяются все закачки и ждем пока все докачается.
Func chek_inetgetinfo($all,$ind=1)
local $k=0
for $i=$ind to $all
if InetGetInfo($DW[$i], 2)=True then $k+=1
Next
$status="загруженно " & $ind-1+$k & "из" & $f_all
if $k=$all-$ind+1 then
;~ msgbox(0,"",$k)
Return True
Else
Return False
EndIf
EndFunc
; отдельно вынес ToolTip со статусом
Func TT()
ToolTip("Статус: " & $status,0,0)
EndFunc
Func Arr3v1($massiv)
Dim $arr[UBound($massiv)/3+1][3]
For $i=3 to UBound($massiv)-1 step 3
$arr[$i/3][0]=$massiv[$i-2]
$arr[$i/3][1]=$massiv[$i-1]
$arr[$i/3][2]=$massiv[$i-0]
Next
$k=1
Dim $arr2[$k+1][3]
For $i=1 to UBound($arr)-1
If $arr[$i][2]<$max_LVL then
redim $arr2[$k+1][3]
$arr2[$k][0]=$arr[$i][0]
$arr2[$k][1]=$arr[$i][1]
$arr2[$k][2]=$arr[$i][2]
$k+=1
EndIf
Next
Return $arr2
EndFunc
Func Arr5v1($massiv)
Dim $arr[UBound($massiv)/5+1][5]
For $i=5 to UBound($massiv)-1 step 5
$arr[$i/5][0]=$massiv[$i-0]
$arr[$i/5][1]=$massiv[$i-1]
$arr[$i/5][2]=$massiv[$i-2]
$arr[$i/5][3]=$massiv[$i-3]
$arr[$i/5][4]=$massiv[$i-4]
Next
$k=1
Dim $arr2[$k+1][6]
For $i=1 to UBound($arr)-1
If $arr[$i][2]<$max_LVL_glava and $arr[$i][0]<$max_LVL_top then
redim $arr2[$k+1][6]
$arr2[$k][0]=$arr[$i][0]
$arr2[$k][1]=$arr[$i][1]
$arr2[$k][2]=$arr[$i][2]
$arr2[$k][3]=$arr[$i][3]
$arr2[$k][4]=$arr[$i][4]
$arr2[$k][5]= "http://www.moswar.ru/clan/" & $arr[$i][4] & "/"
$k+=1
EndIf
Next
Return $arr2
EndFunc
P.S. За счет него прокачался с 1 до 14-го уровня за ~ 6 месяцев не получив бана и имея статы выше среднего. (Перса продаю)
P.S.S. Файл http://file.qip.ru/file/XlcVLYOM/kill_msgbox.html
нужен, чтобы убивать всплывающие окошки при удалении из контакт листа. (найду его исхдник выложу)