Что нового

[Небоскрёбы] Автоматизация приглашения в город(клан)

getigor01

Новичок
Сообщения
23
Репутация
2
Хочу сделать бота для мобильной игры nebo.mobi,чтобы он сам приглашал людей в город(клан).
Вообщем сначала я захожу на страницу с игроками без города.
Код:
#include <IE.au3>
 $oIE = _IECreate ("http://nebo.mobi/online/nocity")

В этом списке мне нужно чтобы скрипт переходил на профили игроков,это я сделал так
Код:
$s = _IELinkGetCollection($oIE)
 For $b In $a
 If StringInStr(b.href, "http://nebo.mobi/tower/id/")  Then
  _IEAction($b, "click")
ExitLoop
Endif
 Next

В итоге бот переходит в профиль первого игрока в списке,как сделать чтобы он рандомно выбирал игрока у которых имеется (+) рядом с никнеймом.Вот html код:
Код:
<div class="hr"></div>
</div><div>
<span><img src="http://static.nebo.mobi/images/icons/user/player-f-40.png" alt="ж" height="16" width="16"/>
<span class="user"><a href="../tower/id/2102798"><span>Irrrisa</span></a></span><span class="minor"></span>
<img width="16" height="16" src="http://static.nebo.mobi/images/icons/star.png" alt="у" border="0"/><span>40</span></span> <span><span class="amount">(+)</span></span>
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Автоматизация] Бот для nebo.mobi

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Автоматизация] Бот для nebo.mobi" - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Re: [nebo.mobi] Автоматизация приглашения в город(клан)

Код:
#include <IE.au3>
$oIE = _IECreate ("http://nebo.mobi/online/nocity")

_InviteToCity($oIE)

Func _InviteToCity(ByRef $oIE)
	Local $oAs = _IETagNameGetCollection($oIE, 'a')
	If @error Then Return SetError(1, 0, 0)
	Local $aUsers[1] = [0] ;Массив возможных вариантов

	For $oA In $oAs
		If $oA.href And _
				StringInStr($oA.href, '/tower/id/') And _
				$oA.parentNode.parentNode.nextSibling.nextSibling.outerText == '(+)' Then

			$aUsers[0] += 1
			ReDim $aUsers[$aUsers[0] + 1]
			$aUsers[$aUsers[0]] = $oA

			ConsoleWrite('> Возможный вариант № ' & $aUsers[0] & ' ' & $oA.innerText & @LF)
		EndIf
	Next

	ConsoleWrite('> Всего вариантов: ' & $aUsers[0] & @LF)

	If Not $aUsers[0] Then
		ConsoleWrite('! Ничего не найдено' & @LF)
		$item = 0
	ElseIf $aUsers[0] > 1 Then
		$item = Random(1, $aUsers[0], 1)
		ConsoleWrite('> Для клика выбрали случайный ' & $item & ' вариант' & @LF)
	Else
		$item = 1
		ConsoleWrite('> Для клика выбрали ' & $item & ' вариант' & @LF)
	EndIf

	If $item Then
		_IEAction($aUsers[$item], "click")
		Return $item
	Else
		Return SetError(2, 0, 0)
	EndIf
EndFunc   ;==>_InviteToCity
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [nebo.mobi] Автоматизация приглашения в город(клан)

С первого раза исправил, без доп намёков
 
Автор
G

getigor01

Новичок
Сообщения
23
Репутация
2
Re: [nebo.mobi] Автоматизация приглашения в город(клан)

Функция работает отлично,спасибо.
Как сделать чтобы она повторялось бесконечное кол-во раз?
Делал так:
Код:
#include <IE.au3>
$oIE = _IECreate ("http://nebo.mobi/online/nocity")




_InviteToCity($oIE)
While 1 

Func _InviteToCity(ByRef $oIE)

    Local $oAs = _IETagNameGetCollection($oIE, 'a')
    If @error Then Return SetError(1, 0, 0)
    Local $aUsers[1] = [0] ;Массив возможных вариантов

    For $oA In $oAs
        If $oA.href And _
                StringInStr($oA.href, '/tower/id/') And _
                $oA.parentNode.parentNode.nextSibling.nextSibling.outerText == '(+)' Then

            $aUsers[0] += 1
            ReDim $aUsers[$aUsers[0] + 1]
            $aUsers[$aUsers[0]] = $oA

            ConsoleWrite('> Возможный вариант № ' & $aUsers[0] & ' ' & $oA.innerText & @LF)
        EndIf
    Next

    ConsoleWrite('> Всего вариантов: ' & $aUsers[0] & @LF)

    If Not $aUsers[0] Then
        ConsoleWrite('! Ничего не найдено' & @LF)
        $item = 0
    ElseIf $aUsers[0] > 1 Then
        $item = Random(1, $aUsers[0], 1)
        ConsoleWrite('> Для клика выбрали случайный ' & $item & ' вариант' & @LF)
    Else
        $item = 1
        ConsoleWrite('> Для клика выбрали ' & $item & ' вариант' & @LF)
    EndIf

    If $item Then
        _IEAction($aUsers[$item], "click")
        Return $item
    Else
        Return SetError(2, 0, 0)
    EndIf
 EndFunc   ;==>_InviteToCity

 Sleep (500)
$sString = _IEBodyReadHTML($oIE)
$aLink = StringRegExp($sString, "Пригласить в город", 0)
if $alink=1 then
 $oLinksss = _IELinkGetCollection($oIE)
 For $oLink2 In $oLinksss
 If StringInStr($oLink2.href, "http://nebo.mobi/?wicket:interface=") Then
  _IEAction($oLink2, "click")
ExitLoop
Endif
 Next
 EndIf
 _IENavigate ($oIE, "http://nebo.mobi/online/nocity")
Sleep (1000)
WEnd.

Но выбивает ошибку
Error:"While" statement has no matching "WEnd" statement.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Re: [nebo.mobi] Автоматизация приглашения в город(клан)

getigor01
ищите ошибку сами. Вы же все таки бота делаете.
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Re: [nebo.mobi] Автоматизация приглашения в город(клан)

getigor01
Код:
#include <IE.au3>
$oIE = _IECreate ("http://nebo.mobi/online/nocity")
While 1
	_InviteToCity($oIE)
	Sleep (500)
	$sString = _IEBodyReadHTML($oIE)
	$aLink = StringRegExp($sString, "Пригласить в город", 0)
	if $alink=1 then
		$oLinksss = _IELinkGetCollection($oIE)
		For $oLink2 In $oLinksss
			If StringInStr($oLink2.href, "http://nebo.mobi/?wicket:interface=") Then
				_IEAction($oLink2, "click")
				ExitLoop
			Endif
		Next
	EndIf
	_IENavigate ($oIE, "http://nebo.mobi/online/nocity")
	Sleep (1000)
WEnd
Func _InviteToCity(ByRef $oIE)
    Local $oAs = _IETagNameGetCollection($oIE, 'a')
    If @error Then Return SetError(1, 0, 0)
    Local $aUsers[1] = [0]
    For $oA In $oAs
        If $oA.href And _
                StringInStr($oA.href, '/tower/id/') And _
                $oA.parentNode.parentNode.nextSibling.nextSibling.outerText == '(+)' Then

            $aUsers[0] += 1
            ReDim $aUsers[$aUsers[0] + 1]
            $aUsers[$aUsers[0]] = $oA

            ConsoleWrite('> Возможный вариант № ' & $aUsers[0] & ' ' & $oA.innerText & @LF)
        EndIf
    Next
    ConsoleWrite('> Всего вариантов: ' & $aUsers[0] & @LF)
    If Not $aUsers[0] Then
        ConsoleWrite('! Ничего не найдено' & @LF)
        $item = 0
    ElseIf $aUsers[0] > 1 Then
        $item = Random(1, $aUsers[0], 1)
        ConsoleWrite('> Для клика выбрали случайный ' & $item & ' вариант' & @LF)
    Else
        $item = 1
        ConsoleWrite('> Для клика выбрали ' & $item & ' вариант' & @LF)
    EndIf
    If $item Then
        _IEAction($aUsers[$item], "click")
        Return $item
    Else
        Return SetError(2, 0, 0)
    EndIf
 EndFunc

Просто у вас после WEnd стоит точка, интерпретатор этого не понимает.
Функция(Func...EndFunc) не может быть вложенной куда либо, разве что только её вызов
 
Автор
G

getigor01

Новичок
Сообщения
23
Репутация
2
Re: [nebo.mobi] Автоматизация приглашения в город(клан)

MnM
Функция(Func...EndFunc) не может быть вложенной куда либо, разве что только её вызов
Не знал,спасибо большое.
 
Автор
G

getigor01

Новичок
Сообщения
23
Репутация
2
Это же раздел форума "Разработка ботов".
А чёрный список же составляет часть нужной функции для "Автоматизации приглашения в город(клан)" :(
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Подтверждаю. Это вполне вписывается в озвученную задачу и по отдельности решать её выводя в другую тему не имеет смысла.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,323
Belfigor,
Понял. Предупреждение удалил.
 
Верх