Бойцовский кодинг Александр Шарахов младший Хакер, номер #071, стр. 071-112-3 <script language="javascript"> alert("Скоро мы завоюем мир!"); </script> Сохраняем этот файл (C:\Xakep\xakep.htm). Теперь обеспечим запуск этой программы. Для этого откроем в редакторе реестра раздел HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt. Если его нет, создаем. В нем заводи подраздел с названием «Журнал Хакер» (это название появится в Internet Explorer как пункт контекстного меню). Теперь откроем свежесозданный раздел HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Журнал Хакер, дважды щелкнем на строковом параметре Default и присвоим ему значение C:\Xakep\xakep.htm. К сожалению, из контекстного меню можно запускать только скрипты JavaScript и VBScript. Наш скрипт имеет доступ к объекту window (окно приложения Internet Explorer, в котором выполняется скрипт) через свойство menuArguments объекта external. Т.е. теоретически наша программа, написанная на языке яваскрипт, может получить все ссылки из окна Бойцовского клуба с помощью вот такой команды: var links = external.menuArguments.document.links; Однако просто получить ссылки мало, надо еще и отфильтровать их от всяческого мусора - линков на изображения, счетчики и прочий бред. Первое, что приходит в голову, - это пробежаться по всем линкам в цикле, найти ссылку на подбор вещи и нажать ее. Напрягать мышцы руки для подбора нам не придется, за нас будет работать техника - браузер сам пошлет серверу Бойцовского клуба HTTP-запрос. Отправлять HTTP-запросы с помощью JavaScript не просто, а очень просто: Отправлялка HTTP запросов var xmlHTTP; xmlHTTP = new ActiveXObject("microsoft.xmlhttp"); xmlHTTP.open("GET", links(i).href, false); // links(i).href - это i-я ссылка из верхнего фрейма игры. xmlHTTP.Send(); Осталось узнать, как же выглядят столь нужные нам линки на предметы. Правой кнопкой мышки щелкаем в верхнюю часть (которая над чатом) Бойцовского клуба и выбираем «Просмотр HTML-кода». Здесь мы видим, что все ссылки на вещи в Башне имеют вид dtower.pl?get="название вещи", т.е. строка фильтрации может выглядеть, например, так: cheklink=links(i).href.indexOf("r.pl?get="); - и весь скрипт перепишется следующим образом: Код собиралки вещей в Башне смерти var cheklink = 0; //если ссылка нужная, то этот параметр больше нуля, инициализация переменной var links = external.menuArguments.document.links; // выцепляем все ссылки из верхнего фрейма БК for (i = 0; i < links.length; i++){ // по всем ссылкам из окна БК cheklink=links(i).href.indexOf("r.pl?get="); //проверяем на полезность if (cheklink > 0) { //если ссылка на вещь в БК var xmlHTTP; xmlHTTP = new ActiveXObject("microsoft.xmlhttp"); xmlHTTP.open("GET", links(i).href, false); // то мы ее забираем xmlHTTP.Send(); cheklink = 0; //заново обнуляем переменную } } Чтобы скрипт заработал, сохраняй его как C:\Xakep\xakep.htm. Теперь, зайдя в Башню смерти, ты можешь собрать все вещи в комнате, просто кликнув правой кнопкой мышки в верхнем фрейме (где лежат вещи) и выбрав «Журнал Хакер». Все вещи в комнате будут сразу положены тебе в рюкзак. После этого надо зайти в инвентарь, надеть на себя все что можно и перейти в следующую комнату. |