Создаем ферму от A-Z
Данная документация демонстрирует создание фермы c нуля. Рекомендуется создать точно такой же проект самостоятельно.

Подготовка нового проекта
Создаем новую ферму
Копируем (не вырезаем) папку с фермой-создателем ферм в папку личных ферм.


Переименовываем проект
Меняем название папки и проекта zp.

Готовим профили
Регистрируем нужное вам количество профилей zpprofile и закидываем их в папку "Профили => zpprofiles" или в "Профили => профиль папки". Регистратор профилей необходимо написать самому, или приобрести готовый на форуме зенопостера.

Устанавливаем внешние и внутренние настройки фермы
Внешние настройки
Открываем проект "Ферма по мануалу.zp", открываем внешние настройки.

Общие настройки:
Лицензионный ключ – вводим выданный ключ активации.
Режим работы – сначала нужно обновить/наполнить базу аккаунтами.
Прокси:
Использовать прокси – ставим галочку (Вкл), т. к. будем использовать прокси.
Извлекать прокси из. zpprofile – снимаем галочку (Выкл), т. к. в наших профилях zpprofile нет сохраненных прокси, и нам нужно добавить их в базу вручную. Если включили, то прокси автоматически появились в базе прокси и присвоились аккаунтам, если при регистрации ваши zpprofile имели сохраненные прокси.
Eсли прокси не присвоен аккаунту – установим автоматически, что значит, что после добавления прокси в базу прокси, их не нужно будет вручную распределять по базе аккаунтов. После обновления базы вы увидите, что прокси присвоятся аккаунтам автоматически.
Чекать прокси – включаем встроенный проксичекер.
Остальные настройки предлагаю оставить без изменений.
Внутренние настройки

Общие настройки:
Среда разработки – Project Maker по умолчанию.
Раздел VisualStudio пока не заполняем, так как сначала сделаем проект фермы в ProjectMaker.
Аккаунты:
Ознакомьтесь с настройками аккаунтов. Предлагаю оставить все как есть по дефолту в данном Tab.
Задачи:
Ознакомьтесь с настройками аккаунтов. Предлагаю оставить все как есть по дефолту в данном Tab. Данные настройки будут влиять на задачи во время эмуляции, после того как напишем и добавим задачи.
Подзадачи:
вкл/выкл - ставим галочку (Вкл). Подзадачи можно отключить и не использовать их вообще в отличие от задач. Мы будем использовать.
Остальные настройки оставляем без изменений.
Синх.таблицы:
вкл/выкл - ставим галочку (Вкл). Создадим одну пользовательскую таблицу.
Создаем синхронизированные таблицы
Создадим одну таблицу, в которую будут использовать подзадачи для чтения и записи.
Разберем, как правильно создать синхронизированную таблицу:
Создаем файл

Редактируем таблицу

Готовим столбцы для хранения информации. Ничего не пишем в столбце А, т.к. он зарезервирован системой для имен аккаунтов. После обновления базы, имена будут добавлены автоматически.
Добавляем таблицы в Базу
Открываем файл “База.xlsx” лист “Синх. таблицы” и добавляем имя нашей таблицы.

Создаем таблицу в ProjectMaker
Создаем таблицу в PM и связываем с новой таблицей "Активности". Устанавливаем все галочки.

Таким образом можно создать сколько угодно синх. таблиц. Теперь нужно чтобы в ней появились имена аккаунтов. Проверим это после обновления базы.
Переносим аккаунты в Базу
Открываем файл “База.xlsx”. Хотя мы и добавили наши профили zpprofiles в папку “Профили”, но лист пуст. Данный лист заполнится, после того как мы запустимся в режиме “Обновление базы”. Мы уже установили режим обновления базы когда настраивали ферму. Добавляем проект в ZennoPoster и запускаем с одного потока.

Ферма говорит, что не нашла прокси, это потому, что мы включили их в настройках, но в базу еще не добавили. Видим, что аккаунты добавлены, но столбец с прокси пуст. Давайте добавим прокси.

Добавляем прокси
Покупаем прокси на свое усмотрение, к примеру IPV4. Я нашел бесплатные прокси, для теста сойдет. Добавляем их в базу вручную, т. к. мы отключили извлечение прокси из zpprofile, в обратном случае они бы добавились автоматически на этапе заполнения листа “Аккаунты”.

Заметим, что свободный лимит прокси 1, это значит что всем аккаунтам хватает прокси. Если бы не хватало, то можно добавить лимит у прокси, тогда его будут использовать больше одного аккаунта.
Если не хотим, что бы прокси использовали больше 1 аккаунта, то ставим лимит 1 и добавляем еще прокси.
Подключаем аккаунты к прокси
На данном этапе нам нужно подключить аккаунты к прокси, то есть добавить прокси к каждому аккаунту на лист “Аккаунты” в столбец “Прокси”. Можем сделать вручную, но у нас включена настройка "Установить автоматически" во внешних настройках фермы, поэтому запускаем обновление базы снова, и аккаунты автоматически возьмут себе прокси.

Обновление прошло без ошибок, проверяем базу.

Прокси установлены каждому аккаунту. Теперь в процессе эмуляции прокси будут проверяться на доступность, будут происходить замены, баны, сбираться логи и прочее.
Проверяем синхронизированные таблицы
Видим, что синхронизированная таблица получила аккаунты. Теперь аккаунты из базы транслируются в таблицу.

Создаем задачи
Не будем придумывать сложные задачи, когда нам нужно понять принцип создания задач. По дефолту у нас уже есть 3 задачи, они уже записаны на листе и созданы в PM.


В сумме 30 продуктивных выполнений. Изменим функционал имеющихся задач и добавим еще 2 задачи и отрегулируем выполнения, что бы осталось 30. Функционалом задач будут переходы на разные веб-страницы.
Метод создания задач описан по ссылке ниже.
Задачи в ProjectMaker

Настраиваем эмуляцию
Настроим эмулятор так, чтобы в тестовом варианте быстро выполнил большое количество задач.
Каждый аккаунт проработает 10 минут активного времени при работе эмулятора в 30 минут. За это время каждый аккаунт выполнит 3 сессии, по 10 повторений в каждой, итого 30 повторений задач.
Эмулятору потребуется 4 потока, что бы справиться со всеми аккаунтами за 30 минут работы. При этом каждый поток будет обслуживать в среднем по 3 аккаунта.
Пауза между задачами будет в среднем 20 сек, каждая сессия продлится в среднем 3.3 минуты.

Создаем подзадачи
В целом, ферму уже можно запускать. Но так как мы включили подзадачи во входных настройках, нам нужно их иметь. По дефолту у нас уже есть 3 подзадачи, они уже записаны на листе "Подзадачи" и созданы в PM.


Изменим первую подзадачу
Изменим первую подзадачу. Сделаем так, что только в начале первой сессии каждый аккаунт запишет в синхронизированную таблицу "Активности" в свою строку в каждый столбец некоторые данные. Скажем, единицу.
Редактируем первую подзадачу в базе на листе "Подзадачи" и изменим первую подзадачу в PM.


Изменим четвертую подзадачу
Изменим четвертую подзадачу. Сделаем так, что только в последней сессии каждый аккаунт отчистит все данные в своей строке, внесенные в синхронизированную таблицу "Активности" в первой сессии.


Мы изменили две подзадачи, одна заполняет, вторая отчищает таблицу. Не забывайте, что все подзадачи связаны между собой красной связью, начинаются кубиком начала и заканчиваются кубиком завершения.
Запускаем эмуляцию
Меняем режим работы на “Эмуляция”.
Рекомендуется всегда запускать любой режим фермы с одного потока.
Запускаем эмуляцию с одного потока и одного задания, первый поток подскажет сколько потоков нужно запустить. Задания всегда равны потокам. Во время эмуляции ничего менять нельзя уже нельзя.




Удаление инстанса
Запуск эмуялции инициирует загрузку данных (создает инстанс фермы) фермы в память пк. Практически во всех случаях, когда ферма заканчивает работу, отработанный инстанс удаляется автоматически. В случае аварии, инстанс может не удалиться. Для этого может потребоваться вручную удалить инстанс, прежде чем начинать новую эмуляцию.

Пишем проект на С# в Visual Studio (только для опытных)
Ферма в режиме VisualStudio начинает запускать задачи, написанные в отдельном проекте-сборке и использует шаблон, только что бы зайти в сборку.

Готовим проект VS
Не забываем освежить в памяти работу с проектами VS в ZennoPoster в офф. документации.
Создаем проект VS в папке "Проект VS" в папке фермы, через кубик "Отладка проекта VS" .


Настройка проекта
Открываем проект ZennoPosterSolution1.sln
Добавляем ссылку на сборку C:\Program Files\macdev\ezf.dll, файлы в этой папке обновляются при скачивании обновлений ezFERM.
Устанавливаем в свойствах "Копировать локально" false, что бы в папку bin не попадала копия ezf.dll, т.к. при обновлении софта в данной папке он не обновится.

Далее добавляем папки Actions и SubActions, создаем и пишем задачи и подзадачи с тем же функционалом, что писали в ProjectMaker, самостоятельно по методологии описанной ранее.
Задачи и подзадачиСоздаем сборку, ezFERM будет искать ее в папке по 3 путям:
C:\Users\Administrator\Desktop\ZennoPoster\ezFERM\Личные фермы\Ферма по мануалу\Проект VS
C:\Users\Administrator\Desktop\ZennoPoster\ezFERM\Личные фермы\Ферма по мануалу\Проект VS\bin\Debug
C:\Users\Administrator\Desktop\ZennoPoster\ezFERM\Личные фермы\Ферма по мануалу\Проект VS\bin\Release
Настраиваем ферму

Сохраняем изменения. После этого можно запускать эмуляцию точно так же, как запускали прошлую.
Last updated