PDA

Просмотр полной версии : [Обсуждение] ZFG - Бот для Зомби Фермы, с исходниками.


vhyrix
24.04.2014, 16:14
Решил выложить исходники своего бота для Фермы зомби.

Готовая программа: [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Исходники: [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Справка: [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Бот написан на С++. Продолжать разработку можно в Microsoft Visual Studio 2008 и выше. Открывать: opengame\zombie_farm_game_bot\zombie_farm_game_bot .sln

Бот читает файл конфигурации, грузит items с данными игры, считывает настройки пользователей и зависает в функции AutoThread(). Из которой поочередно вызывает у каждого пользователя функцию DoAuto(). В этой функции бот либо логинится, либо вызывает функцию DoAutoWork(). Здесь проверяется, прошло ли достаточно времени для нового действия и если ответ положительный вызывается DoWorkUser(). В этой функции грузится информация о пользователях и вызывается функция DoWorkUser2(). Из которой уже выполняются разрешенные действия. Сюда вы можете написать недостающие действия или разобраться как работают уже имеющиеся.

Структура основных классов бота:
zfn_users - список пользователей.
|zfn_autouser - функции для автоматической работы
||SocApi - взаимодействие с социальными сетями
||zfn_user - хранит информацию о пользователе
|||zfn_location - хранит информацию о локации

Действия бота:
"daily_bonus", "Получать ежедневный бонус" - Крутить ежедневную рулетку.
"pickup_material", "Забирать материалы на склад" - Собирать дерево, камень и другие ресурсы, собранные зомби.
"pickup_special", "Собирать специальные подарки" - Собирать подарки под елкой и со столов с индейкой.
"house_bonus", "Крутить рулетки в зданиях" - Крутить бесплатные рулетки.
"start_grave", "Давать зомби работу" - Запускать зомби при наличии свободных мозгов.
"cook_recipe", "Давать задания поварам" - Запускать поваров.
"stop_grave", "Останавливать зомби" - Закапывать поваров сидящих без дела.
"bury_friend", "Закапывать друзей", - Закапывать друзей.
"unbury_me", "Раскапываться" - Раскапываться.
"pickup_box", "Собирать клады" - Собирать всевозможные чемоданы, сундуки, подарки на своих островах.
"buy_plant", "Сажать семена" - Сажать семена.
"digg_ground", "Вскапывать грядки" - Вскапывать грядки.
"pickup_plant", "Собирать урожай" - Собирать урожай.
"pickup_fruit", "Собирать фрукты" - Собирать фрукты.
"work_home", "Ходить по домашним локациям" - Ходить по домашним локациям. Без этой опции бот будет сидеть в одной локации или пойдет по друзьям.
Друзья.
"pickup_friend", "Собирать сундуки у друзей" - Поднимет у друзей все, что плохо лежит: чемоданы и сундуки.
"help_friend", "Помогать друзьям" - Класть подарки под елку, закапывать чудовище.
"work_friend", "Ходить по друзьям" - Ходить к друзьям. Без этой опции бот будет сидеть в домашних локациях.
Подарки.
"apply_gifts_free", "Принимать бесплатные подарки" - Принимать все бесплатные подарки.
"apply_gifts_nofree", "Принимать платные подарки" - Принимать все платные подарки.
"apply_gifts_admin", "Принимать подарки от администрации" - Принимать подарки от администрации.
"send_gifts_free", "Посылать бесплатные подарки" - Посылать бесплатные подарки.

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

PS. Узнаю, что бот используется для кражи паролей/ресурсов или других нехороших действий, буду отрывать руки.

HotBlood
24.04.2014, 17:20
Предложение: Если можно было бы реализовать чистку друзей, другими словами бот должен сканировать друзей вк, далее сканировать друзей в зф и сравнивая списки удалять тех кто не играет (тех у кого нет приложения). К тому же неплохо было бы удалять ботом друзей по лвлву. Думаю у многих на фейках, у которых несколько тысяч друзей, есть проблема с людьми которые ушли в бан или с теми кто установил приложения чисто для того , что бы добавиться в друзья. В ручнуюу чистку проводить очень долго.

vhyrix
25.04.2014, 02:15
Предложение: Если можно было бы реализовать чистку друзей, другими словами бот должен сканировать друзей вк, далее сканировать друзей в зф и сравнивая списки удалять тех кто не играет (тех у кого нет приложения). К тому же неплохо было бы удалять ботом друзей по лвлву. Думаю у многих на фейках, у которых несколько тысяч друзей, есть проблема с людьми которые ушли в бан или с теми кто установил приложения чисто для того , что бы добавиться в друзья. В ручнуюу чистку проводить очень долго.
Хмм. В ближайшее время попробую сделать. Я вижу это как опцию в конфигурационном файле. При включении которой, при авторизации будет грузиться не только список друзей установивших игру, но и общий. Когда загрузится вся информация о пользователях бот разложит их по уровням и сохранит список в файл. Полагаю, можно сразу делать html файл с картинками и ссылками.

maks_maks)
25.04.2014, 17:21
Что делать если бот перестал нормально солить рецепты?
В голе пишет:
посолили рецепт
посолили рецепт
А бочки не собирает и в корзины не добавляет рецепт.

vhyrix
26.04.2014, 07:26
Что делать если бот перестал нормально солить рецепты?
В голе пишет:

А бочки не собирает и в корзины не добавляет рецепт.
Ботом не ошибся? )

Юрец2000
26.04.2014, 10:50
ток сделай выбор семян сразу в менюшке плз и сделай игнор ошибок плз

Добавлено через 11 минут
[26.04.14 09:59:42] e:UNKNOWN_KEY!!!! {'type' => 'mission', 'id' => '1', 'action' => 'getMissions', 'missions' => ''{'0' => ''{'type' => 'achievement', 'item' => '@ACHIEV_01', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_01' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '3'}}, 'completed' => '1'}, '1' => ''{'type' => 'achievement', 'item' => '@ACHIEV_02', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_02' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '100'}}, 'completed' => '1'}, '2' => ''{'type' => 'achievement', 'item' => '@ACHIEV_03', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_03' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '25'}}, 'completed' => '1'}, '3' => ''{'type' => 'achievement', 'item' => '@ACHIEV_04', 'finished' => 'false', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_04' => ''{'type' => 'countedItem', 'finished' => 'false', 'count' => '6'}}, 'completed' => '0'}, '4' => ''{'type' => 'achievement', 'item' => '@ACHIEV_05', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_05' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '30'}}, 'completed' => '1'}, '5' => ''{'type' => 'achievement', 'item' => '@ACHIEV_06', 'finished' => 'false', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_06' => ''{'type' => 'countedItem', 'finished' => 'false', 'count' => '9'}}, 'completed' => '0'}, '6' => ''{'type' => 'achievement', 'item' => '@ACHIEV_07', 'finished' => 'false', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_07' => ''{'type' => 'countedItem', 'finished' => 'false', 'count' => '88'}}, 'completed' => '0'}, '7' => ''{'type' => 'achievement', 'item' => '@ACHIEV_08', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_08' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '30'}}, 'completed' => '1'}, '8' => ''{'type' => 'achievement', 'item' => '@ACHIEV_09', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_09' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '25'}}, 'completed' => '1'}, '9' => ''{'type' => 'achievement', 'item' => '@ACHIEV_10', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_10' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '15'}}, 'completed' => '1'}, '10' => ''{'type' => 'achievement', 'item' => '@ACHIEV_11', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_11' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '20'}}, 'completed' => '1'}, '11' => ''{'type' => 'achievement', 'item' => '@ACHIEV_12', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_12' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '15'}}, 'completed' => '1'}, '12' => ''{'type' => 'achievement', 'item' => '@ACHIEV_13', 'finished' => 'false', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_13' => ''{'type' => 'countedItem', 'finished' => 'false', 'count' => '0'}}, 'completed' => '0'}, '13' => ''{'type' => 'achievement', 'item' => '@ACHIEV_14', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_14' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '50'}}, 'completed' => '1'}, '14' => ''{'type' => 'achievement', 'item' => '@ACHIEV_15', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_15' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '117'}}, 'completed' => '1'}, '15' => ''{'type' => 'achievement', 'item' => '@ACHIEV_16', 'finished' => 'false', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_16' => ''{'type' => 'countedItem', 'finished' => 'false', 'count' => '1'}}, 'completed' => '0'}, '16' => ''{'type' => 'achievement', 'item' => '@ACHIEV_17', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_17' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '100'}}, 'completed' => '1'}, '17' => ''{'type' => 'achievement', 'item' => '@ACHIEV_18', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_18' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '10061'}}, 'completed' => '1'}, '18' => ''{'type' => 'achievement', 'item' => '@ACHIEV_19', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_19' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '331'}}, 'completed' => '1'}, '19' => ''{'type' => 'achievement', 'item' => '@ACHIEV_20', 'finished' => 'false', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_20' => ''{'type' => 'countedItem', 'finished' => 'false', 'count' => '10'}}, 'completed' => '0'}, '20' => ''{'type' => 'achievement', 'item' => '@ACHIEV_21', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_21' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '15'}}, 'completed' => '1'}, '21' => ''{'type' => 'achievement', 'item' => '@ACHIEV_22', 'finished' => 'true', 'disabled' => 'false', 'tasks' => ''{'ACHIEV_22' => ''{'type' => 'countedItem', 'finished' => 'true', 'count' => '6700'}}, 'completed' => '1'}, '22' =>
в чем проблема?

vhyrix
29.04.2014, 07:55
Это какое-то сообщение про миссии. Можно не обращать внимания.

Юрец2000
07.05.2014, 19:56
Это какое-то сообщение про миссии. Можно не обращать внимания.

выбивает ошибку с сажанием растений(
07.05.14 18:56:11] a:buy_plant {'obj' => '{"objId":-343,"item":"P_05"},{"objId":-344,"item":"P_05"},{"objId":-345,"item":"P_05"},{"objId":-346,"item":"P_05"},{"objId":-347,"item":"P_08"},{"objId":-348,"item":"P_08"},{"objId":-349,"item":"P_08"},{"objId":-351,"item":"P_08"},{"objId":-404,"item":"P_08"},{"objId":-405,"item":"P_08"}'}
[07.05.14 18:56:12] i:game_error {'msg' => 'ingame error'}
[07.05.14 18:56:12] i:game_ext_error {'msg' => 'ingame error'}
[07.05.14 18:56:12] i:game_stop
[07.05.14 18:56:12] i:error_action {'action' => 'pickup_fruit'}

demid1
04.07.2014, 19:43
есть у когонить этот бот версии 0.0.2.0? диск полетел, пришлось форматировать

j9rac9rnev
15.07.2014, 17:06
скажите где можно взять бота на сажание сбор перекопку, бот чтоб только выращивание занимался. только 1 функция. помогите

3HtSCtBGcBOf
29.07.2014, 11:33
что за ошибка user is not valid где что исправить?

GooD1xe
10.08.2014, 22:47
Помогите пожалуйста, не могу разобраться
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

vhyrix
11.08.2014, 02:59
Помогите пожалуйста, не могу разобраться
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
Тема для обсуждения бота: [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Бот не правильно посчитал свободные мозги. Перезапуск бота решит проблему. В следующей версии постараюсь исправить.

GooD1xe
11.08.2014, 11:00
Бот не правильно посчитал свободные мозги
Благодарю

Mobilelife
20.12.2014, 21:25
Привет можешь подсказать можно ли поставить бот на хостинг? как его закинуть и запустить на сервере?у меня есть простенький бот [Ссылки могут видеть только зарегистрированные и активированные пользователи]