ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   PHP (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [Trinity RP] Авто-добавлялка в друзья / Флудер статусами (https://forum.antichat.xyz/showthread.php?t=1325665)

astynk 24.10.2018 01:40

Форум является важной частью любого SAMP-сервера, так почему бы не написать что-то ориентированное именно на форум, а не на игру?

1. Авто-добавление онлайн игроков

Принцип работы: открывает ссылки на профили игроков из списка онлайн, нажимает на кнопку "Добавить в друзья".

Цитата:

Сообщение от Спойлер


Код:





[CODE]
var links = document.getElementsByTagName("A"),
profiles = [],
tick = 0;

for (var i = 0; i




2. Автодобавление оффлайн игроков

Принцип работы: открывает полный список игроков, нажимает на кнопку "Добавить в друзья" напротив каждого профиля.

Цитата:

Сообщение от Спойлер


Код:





[CODE]
var poffset = 0;

function addf() {
var nw = window.open("http://gta-trinity.ru/forum/index.php?/members/?sort_key=members_l_display_name&sort_order=asc&ma x_results=60&name_box=begins&st=" + poffset);
setTimeout(function () {
var g = nw.document.getElementsByTagName("A");
for (var i = 0; i




3. Флудер статусами

Когда вы меняете свой статус на форуме, всем вашим друзьям приходит оповещение об этом. Меняя статус скриптом сотни раз, можно создать некоторый эффект.

Принцип работы: открывает окошко смены статуса, меняет его на рандомные цифры.

Цитата:

Сообщение от Спойлер


Код:





Код:

function byid(id) {
    return document.getElementById(id);
}
function floodstatustick() {
    byid("user_link").click();
    setTimeout(function () {
        byid("statusUpdateGlobal").value = Math.random();
    }, 3000);
    setTimeout(function () {
        byid("statusSubmitGlobal").click();
    }, 5000);
    setTimeout(floodstatustick, 10000);
}
setTimeout(floodstatustick, 5000);




Для работы первых двух скриптов потребуется разрешить все всплывающие окна в настройках браузера.

4. Флудер сообщениями

(в FORUM_LNK вставляем ссылку на раздел, который надо зафлудить)

Скорость отправки - 9-10 сообщений в секунду, вероятность того что сообщение не отправилось - менее 5%.

Цитата:

Сообщение от Спойлер


Код:





[CODE]
var FORUM_LNK = "http://gta-trinity.ru/forum/index.php?/forum/185-obedineniia/";
var C_PAGE = 1;

(function bigshit() {

var forum_wnd = window.open(FORUM_LNK + "/page-" + C_PAGE);

setTimeout(function () {
var threads = forum_wnd.document.getElementsByClassName("topic_t itle");
var tick = 0;

setTimeout(function lala() {
var tick_wnd = window.open(threads[tick].href);
setTimeout(function () {
var txtr = tick_wnd.document.getElementsByTagName("textarea")[1];
if (!txtr) return setTimeout(arguments.callee, 1000);
txtr.value = new Date().getTime();
setTimeout(function () { tick_wnd.document.getElementById("submit_post").cl ick(); setTimeout(function () {
tick_wnd.close();
if (tick




Пошаговая инструкция для тех, кто чужд к JavaScript и не знает, как запустить вышеуказанные скрипты:

Цитата:

Сообщение от Спойлер

1. Ставим старый браузер Opera 9.64 (у каждого разные браузеры, у меня нет возможности писать инструкцию под каждый случай)

2. Авторизуемся под акком, открываем главную страницу форума

3. Жмём Ctrl-U - открывается исходный код страницы, затем ищем при помощи поиска (Ctrl-F)

4. Перед пишем ...

5. Вместо многоточия вставляем нужный скрипт, нажимаем "Применить изменения"


astynk 24.10.2018 01:42

Флудер сообщениями - в процессе написания. Имеются некоторые проблемы с отправкой сообщения.

upd: добавлено

r4nx 24.10.2018 11:15

Почему нельзя просто консоль в браузере использовать?

astynk 24.10.2018 15:39

Потому что я в рот ебал по одной строчке дрочить.

Как через консоль вообще можно написать что-то

molimawka 24.10.2018 16:05

Цитата:

Сообщение от astynk

Потому что я в рот ебал по одной строчке дрочить.
Как через консоль вообще можно написать что-то

Раскрою страшную тайну, но эти скрипты и в консоли работают

И зачем писать setTimeout(addf, 1000) если можно весь скрипт обгорнуть setInterval(#func#, 6000)

astynk 25.10.2018 17:32

Переписал авто-добавлялку в друзья. Теперь:

1 - работает на ajax. Никаких всплывающих окон и т.д.

2 - добавлена статистика работы. Пишет сколько друзей добавлено и т.д.

3 - изменен принцип поиска профилей. Сортирует по кол-ву сообщений, от большего к меньшему. В этом есть смысл, т.к. большинство профилей заброшено и на них не заходили годами.

В самом начале pageN = 0 - с какой страницы начинать.

Цитата:

Сообщение от Спойлер


Код:





[CODE]
var pageN=0;function fixn(n){return(n0
Времени прошло: 00:00

";var logw=document.createElement("DIV");logw.style.cssT ext="height: 195px; overflow-y: scroll; font-size: 10px";stats.appendChild(logw);logw.innerHTML="> Лог работы. Время начала: "+gtime();function writeIntoLog(text){logw.innerHTML+="
"+gtime()+" ::: "+text;logw.scrollTop=9999}function incrAddFInfo(){var a=document.getElementsByClassName("addfinfo");a[a.length-1].innerHTML++;document.getElementById("count").inne rHTML++}function toSM(n){n=Math.round(n/1000);return n0/"+urls.length);var C=0;for(var i=0;i




Цитата:

Сообщение от Спойлер


astynk 04.11.2018 11:47

Функция для отправки сообщения, наконец-то на ajax'е. Скорость флуда впечатляет, создавая по 30 параллельных запросов можно добиться скорости более 100 сообщений в минуту.

Цитата:

Сообщение от Спойлер


Код:





Код:

function SendMessage(threadID, forumID, text, callback) {
    var xhr = new XMLHttpRequest();
    xhr.open("POST", ipb.vars['base_url'] + 'app=forums&module=ajax&section=topics&do=reply&t=' +threadID + '&f=' + forumID, true);
    xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");
    xhr.setRequestHeader("X-Prototype-Version", "1.7.1");
    xhr.setRequestHeader("Accept", "text/javascript, text/html, application/xml, text/xml, */*");
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
    xhr.send("md5check=" + ipb.vars['secure_hash'] + "&Post=" + text + "&isRte=0&noSmilies=0");
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) callback && callback(xhr.responseText);
    };
}






Время: 14:57