Что нового

Как найти текст в браузере?

Dizelist

Новичок
Сообщения
17
Репутация
1
нужно найти 140940611 как это сделать?
Код:
<div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 140940611, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(140940611,'Скелет', 202,2);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Скелет"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/skeleton.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">2</div></div>
зарание спасибо
 

axlwor

Скриптер
Сообщения
657
Репутация
147
фрейм ищешь сам
Код:
$oMonster = _IEGetObjById($oFrame, "monster")
if @error = 0 then
;Какие символы нужно экранировать я уже не помню
$sPattern = 'top\.core\.attackBot\(\{id: (\d+), confirmed: true\}\)'
$sHTML = _IEPropertyGet($oMonster, "outerHTML")
$aArray = StringRegExp($sHTML, $sPattern, 3)
_ArrayDisplay($aArray)
endif
 
Автор
D

Dizelist

Новичок
Сообщения
17
Репутация
1
фрейм ищю так $oFrame = _IEFrameGetCollection($oIE, 0)

спасибо)
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Я имел ввиду, что в ereality не один фрейм. И так как ты привел только часть html, то я начинаю искать с объекта $oFrame. А как его получить - твоя забота, с которой ты, похоже, удачно справился :beer:
 
Автор
D

Dizelist

Новичок
Сообщения
17
Репутация
1
а как вытащить найденое из _ArrayDisplay($aArray) ?
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Если я ничего не напутал, то должен прийти массив. И первый элемент должен быть твоим $aArray[0] - искомое значение. А _ArrayDisplay($aArray) - я использовал, чтобы показать результат
 
Автор
D

Dizelist

Новичок
Сообщения
17
Репутация
1
да, я ступил :whistle:smile: вынес $aArray[0] за приделы условия и когда искомое не находилось то скрипт вылетал :-[)
еше раз спасибо
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Dizelist
Можно еще так попробовать:
Код:
$sString = '<div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 140940611, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(140940611,''Скелет'', 202,2);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Скелет"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/skeleton.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">2</div></div>'

$sID = StringRegExpReplace($sString, '(?s).*?{id:\s+(.*?),\s+?.*', '$1')
MsgBox(64, @extended, $sID)
 
Автор
D

Dizelist

Новичок
Сообщения
17
Репутация
1
вышла маленькая загвоздка при поиске {id: 140940611, confirmed: true} мы находим id любых мобов...
как зделать поиск и найти id отсюда?? top.core.attackBot(140940611,'Скелет', 202,2)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Dizelist,
Попробуйте так:
Код:
$sString = '<div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 140940611, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(140940611,''Скелет'', 202,2);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Скелет"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/skeleton.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">2</div></div>'
$sMob = "'Скелет'"
If StringInStr($sString, $sMob) Then
	$sID = StringRegExpReplace($sString, '(?s).*?attackBot\((\d+),' & $sMob & '?.*', '$1')
	MsgBox(64, @extended, 'ID ' & $sMob & ' = ' & $sID)
Else
	MsgBox(16, 'Error', 'Нет ' & $sMob)
EndIf
 
Автор
D

Dizelist

Новичок
Сообщения
17
Репутация
1
все равно что то не так)) есле находит id скелета то выдает его id правильно а если скелета нет то выдает целуй кусок скрипта...
Код:
<DIV id=monster ondblclick="clicked=false; top.core.attackBot({id: 141036166, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(141036166,'Хоббит', 1939,6);}}, 200);"><DIV id=border_small_monster><A id=border_small_monster title=Хоббит href="#"></A></DIV>
<DIV id=picture_monster><IMG height=34 src="http://img.ereality.ru/d3/bots/hobbit.jpg" width=36></DIV>
<DIV id=monster_level align=center>6</DIV></DIV>
а надо чтоб ток id скелета...
 
Автор
D

Dizelist

Новичок
Сообщения
17
Репутация
1
если скелет не на первой клетке то почему то не видит его...
http://floomby.ru/content/DL1OGGaQk6/


Добавлено:
Сообщение автоматически объединено:

мы наверно не правильно ищем...)
вот код со всеми мобами
Код:
<div style="z-index:5;right:20px;top: 66px;position:absolute; width:150px; height:270px;text-align:left;" class="textS"><div style="position: relative; height: 20px;"><div style="position: absolute; top: 0px; left: 0px;"><a id="a_rep_bots" href="javascript:_reportBots();"><img class="copy_bots" src="http://img.ereality.ru/d3/copy_bot.png"></a></div><span id="caution_blue" class="caution_bots" title="Монстров прячется"><b>2%</b></span></div><div id="td_npc"></div><div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 141047784, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(141047784,'Хоббит', 1939,6);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Хоббит"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/hobbit.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">6</div></div><div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 141048217, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(141048217,'Скелет', 202,2);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Скелет"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/skeleton.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">2</div></div><div style="clear:left; padding-bottom:10px;"></div><div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 141049066, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(141049066,'Скелет', 202,2);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Скелет"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/skeleton.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">2</div></div><div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 141049067, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(141049067,'Скелет', 202,2);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Скелет"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/skeleton.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">2</div></div><div style="clear:left; padding-bottom:10px;"></div><div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 141049075, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(141049075,'Скелет', 202,2);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Скелет"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/skeleton.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">2</div></div><div id="monster" ondblclick="clicked=false; top.core.attackBot({id: 141049076, confirmed: true})" onclick="clicked = true; setTimeout(function() { if (clicked){clicked=false; top.core.attackBot(141049076,'Скелет', 202,2);}}, 200);"> <div id="border_small_monster" style=""><a href="#" id="border_small_monster" title="Скелет"></a></div>    <div id="picture_monster"><img src="http://img.ereality.ru/d3/bots/skeleton.jpg" width="36" height="34"></div>    <div id="monster_level" align="center">2</div></div><div style="clear:left; padding-bottom:10px;"></div></div>
надо найти скелета :scratch:


Добавлено:
Сообщение автоматически объединено:

:whistle:ошибка была у меня,все исправил!
вот скрипт...
Код:
$oFrame = _IEFrameGetCollection($oIE, 0)
$sHTML = _IEPropertyGet($oFrame, "outerHTML")
$sMob = "'Скелет'"
If StringInStr($sHTML, $sMob) Then
    $sID = StringRegExpReplace($sHTML, '(?s).*?attackBot\((\d+),' & $sMob & '?.*', '$1')
    MsgBox(64, @extended, 'ID ' & $sMob & ' = ' & $sID)
Else
    MsgBox(16, 'Error', 'Нет ' & $sMob)
EndIf
 
Автор
D

Dizelist

Новичок
Сообщения
17
Репутация
1
код игры изменили,и снова нужна помощь!
top.core.attackBot(252369234, 'Гоблин', 200,0,'4d07b971');}}, 200);
при поиске 4d07b971 показывает только цифру 4 и после нее ничего не находит

как нужно искать?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Dizelist
Попробуйте так
Код:
StringRegExpReplace($sHTML, "(?s).*?attackBot\(.*" & $sMob & ".*\'(\d+\w+).*", "$1")
 
Автор
D

Dizelist

Новичок
Сообщения
17
Репутация
1
а как сделать поиск с несколькими условиями,по названию и по прочности?
есть много кнопок надеть, нужно нажать на ту у которой прочность больше 0 и чтоб она называлась Дисковая пила механика

вот код с кнопкой
[box title=TitleBox]
<table id="tbl139615960" style="margin-bottom:7px;border:solid 1px #BBB" border="0" width="500" cellpadding="1" cellspacing="1" class="textM"><tbody><tr><td colspan="4" bgcolor="#CCCCCC" align="left"><a name="139615960"></a> <b><a href="javascript:top.chat.addTxt(''Дисковая пила механика'');">Дисковая пила механика</a></b> <b style="color:#AA0000">Сломано</b>
Цена: 90.46 сер. | Вес: 9 | Не ремонтируется</td></tr><tr><td width="84" bgcolor="#DDDDDD" valign="top"><div style="width:82px" align="center"><img src="http://img.ereality.ru/w/jigsaw.png" border="0" alt=""></div><div align="left" style="margin-left:1px;width:80px;height:4px;border:1px solid #AAAAAA"><img src="http://img.ereality.ru/nline.png" style="display:block;" height="4" width="0" title="Прочность: 10/216"></div><div align="center" class="textS">0/216</div></td><td valign="top" bgcolor="#DDDDDD" width="140" align="left"><b>Требования</b>
Уровень: <b>5</b>
Плотник: <b>25</b>
</td><td valign="top" align="left" bgcolor="#DDDDDD" width="170"><b>Описание</b>
Умение: <b><font color="#009900">+82</font></b>
</td><td bgcolor="#DDDDDD" align="center" width="110" class="item_buttons"><div id="ibtn139615960"><button type="button" onclick="dressItem(139615960, 3646, false)">Надеть</button><button type="button" onclick="top.barter.AddItem(139615960)">Передать</button><button type="button" onclick="if (confirm(''Вы уверены, что хотите выкинуть Дисковая пила механика?'')) { location=''/inv/?action=kick&amp;id=139615960''; }">Выкинуть</button></div></td></tr></tbody></table><table id="tbl139768133" style="margin-bottom:7px;border:solid 1px #BBB" border="0" width="500" cellpadding="1" cellspacing="1" class="textM"><tbody><tr><td colspan="4" bgcolor="#CCCCCC" align="left"><a name="139768133"></a> <b><a href="javascript:top.chat.addTxt(''Дисковая пила механика'');">Дисковая пила механика</a></b>
Цена: 86.1 сер. | Вес: 9 | Не ремонтируется</td></tr><tr><td width="84" bgcolor="#DDDDDD" valign="top"><div style="width:82px" align="center"><img src="http://img.ereality.ru/w/jigsaw.png" border="0" alt=""></div><div align="left" style="margin-left:1px;width:80px;height:4px;border:1px solid #AAAAAA"><img src="http://img.ereality.ru/nline.png" style="display:block;" height="4" width="80" title="Прочность: 208/208"></div><div align="center" class="textS">208/208</div></td><td valign="top" bgcolor="#DDDDDD" width="140" align="left"><b>Требования</b>
Уровень: <b>5</b>
Плотник: <b>25</b>
</td><td valign="top" align="left" bgcolor="#DDDDDD" width="170"><b>Описание</b>
Умение: <b><font color="#009900">+83</font></b>
</td><td bgcolor="#DDDDDD" align="center" width="110" class="item_buttons"><div id="ibtn139768133"><button type="button" onclick="dressItem(139768133, 3646, false)">Надеть</button><button type="button" onclick="top.barter.AddItem(139768133)">Передать</button><button type="button" onclick="if (confirm(''Вы уверены, что хотите выкинуть Дисковая пила механика?'')) { location=''/inv/?action=kick&amp;id=139768133''; }">Выкинуть</button></div></td></tr></tbody></table>
[/box]
нужно или найти dressItem(139768133, 3646, false) инструмента с прочностью больше 0 или найти кнопку Надеть,инструментов с кнопками много...
 
Верх