 |
Zombot (Клиент для игры Зомби ферма) [Обсуждение] - Свободное обсуждение - Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей |
21.01.2015, 23:12
|
#3946
|
|
|
|
Разведчик
|
 Регистрация: 22.03.2012
 Сообщений: 3
 Популярность: 12
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
22.01.2015, 01:07
|
#3947
|
|
|
|
Разведчик
|
 Регистрация: 29.07.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
У них там приятно сделано. main наследуется из class_2 , в котором описан connector. Сам connector - экземпляр VKConnector то есть class_102 , который расширяет абстрактный class_101 специфичными для VK функциями, на которых в абстрактном классе стоят raise Error . И вот в этом классе Connector (ну, если так можно читать class_101) вся логика с посылками TIME и START собрана.
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Даже непонятно, откуда в нем id появляется...
|
|
 |
|
 |
|
class_101.startGame вызывает
Код:
.method_919({
"type":"TIME",
"clientVersion":iver
}
, сам метод_919 это, похоже, addOnQueue . Ну и т д, где-то там при заворачивании пакета id дописывается.
Код:
id = this.var_538++;
data = ObjectUtil.copy(sendData);
data["id"] = id;
Я и говорю, недостаточно swfка обфусцирована..
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
что происходит после отправки TIME?
|
|
 |
|
 |
|
Вернее, где происходит отправка TIME, на сколько это уровней вниз заложено и сколько колл-бэков это вызовет, каждый из которых проработает, понятно, в порядке, обратном заворачиванию. То оочень трудно понимать слово "после", в этом ключе. "После" на каком из интересующих уровней? : ))
Всё, что я выше пишу, понятно, раскопано не за день и не за два, когда пытался реконструировать saltfunc летом. И оно было понятно, куда копать - к посылкам пакетов. Когда откуда взять "Дровосеки рубят брёвна, осталось 3:43" формирование надписи - куда копать - непонятно совершенно. Я и не берусь особо. Там же ещё есть ui.swf, в который я даже глазком не заглядывал
Последний раз редактировалось megabyte0; 22.01.2015 в 02:03.
|
|
|
22.01.2015, 06:13
|
#3948
|
|
|
|
Разведчик
|
 Регистрация: 13.08.2013
 Сообщений: 2
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Последний раз редактировалось Xmaxudigun; 22.01.2015 в 10:07.
|
|
|
22.01.2015, 11:48
|
#3949
|
|
|
|
Разведчик
|
 Регистрация: 22.03.2012
 Сообщений: 3
 Популярность: 12
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Получилась такая же разница между jobStartTime и временем перед отправкой на работы как и в родном клиенте. Буду тестировать.
Добавлено через 14 минут
Еще, судя по коду коду клиента, когда собираюстся грядки, то время переводится во время сервера:
Код:
timeToServerTime(client_time)
Последний раз редактировалось ruslanische; 22.01.2015 в 12:02.
Причина: Добавлено сообщение
|
|
|
22.01.2015, 16:57
|
#3950
|
|
|
|
Разведчик
|
 Регистрация: 29.07.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Спасибо за наводку, там всё и правда просто
Код:
public function timeToServerTime(param1:Number) : Number
{
return param1 - this.clientTime + this.var_538;
}
, где var_538 это EVT id , а clientTime это начальный отсылаемый id в TIME (время начала инициализации Connector), или на несколько мс меньше.
|
|
|
22.01.2015, 17:09
|
#3951
|
|
|
|
Разведчик
|
 Регистрация: 22.03.2012
 Сообщений: 3
 Популярность: 12
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
насчет косяка с таймером:
1. мешал вызов vkutils.getUserInfo() между TIME и START, он как раз занимал 300-400 мс
2. время, затраченное на START надо было не прибавлять к времени бота, а отнимать
Добавлено через 7 минут
Скиньте кто-нибудь пожалуйста код раскопки/закопки друзей и код обработки евента "type":"buried","action":"buried".
Последний раз редактировалось ruslanische; 22.01.2015 в 17:16.
Причина: Добавлено сообщение
|
|
|
22.01.2015, 17:55
|
#3952
|
|
|
|
Разведчик
|
 Регистрация: 29.07.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
22.01.2015, 18:08
|
#3953
|
|
|
|
Разведчик
|
 Регистрация: 22.03.2012
 Сообщений: 3
 Популярность: 12
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
Спасибо, видел уже, я думал есть нормальный код.
Что это?
Код:
#обратный счетчик раскопки
if hasattr(self._get_game_state(), 'digOut'):
self._get_game_state().digOut -= 1
#print self._get_game_state().digOut
if self._get_game_state().digOut < 0:
del self._get_game_state().digOut
else: return
|
|
|
23.01.2015, 11:41
|
#3954
|
|
|
|
Пехотинец
|
 Регистрация: 01.08.2012
 Сообщений: 95
 Популярность: 255
 Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Это со старого бота. Этот участок даже не смотрел.
Ну да, там многое сделано на педалях, не дело конечно, но работает исправно и не охота было заморачиваться.
Теперь программисты, надеюсь, возьмут это в свои руки.
Гора сообщений по времени в StartTime уже сбила с толку. Непонятно в итоге где, кто и что. В итоге есть проблема или нет и что исправлять чтобы было как у белых людей?
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось vintets; 23.01.2015 в 11:53.
|
|
|
23.01.2015, 13:27
|
#3955
|
|
|
|
Разведчик
|
 Регистрация: 22.03.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Друзья, я вот с чем столкнулся, поставил крафт изума, все работало, бот скрафтил один раз и усё...то есть после 6ти часов снова не крафтит, как можно поправить это дело?) за ранее благодарю) если нужно будет скину модуль, всех с пятницей!)
|
|
|
23.01.2015, 13:32
|
#3956
|
|
|
|
Разведчик
|
 Регистрация: 22.03.2012
 Сообщений: 3
 Популярность: 12
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
|
|
В итоге есть проблема или нет и что исправлять чтобы было как у белых людей? |
|
 |
|
 |
|
Проблема проявляется, если вы опираетесь на время окончания чего либо (сбора ресурсов, грядок и т.п.) и иногда вылетает ошибка при сборе несозревшего урожая, пропускания сбора ресурсов.
Проверить, есть ли проблема думаю можно, если сделать лабораторную работу.
1. после получения game_state (сразу после посылки START) замеряем время работы бота и выводим на экран:
Код:
# надо в милисекундах
print gameTimer.getClientTime() # client_jobStart
2. далее нужно отправить одного зомби рубить лес или камень и засечь время, затраченное на отправку евента и получение евента gainMaterial:
Код:
# делаем первый замер, например до WoodTargetSelector.perform_action()
time.clock()
Важно, чтобы между пунктами 2 и 3 не вызывался time.clock, а то будет неверный замер вермени.
3. в полученном евенте gainMaterial:
- берем jobStartTime из евента и выводим на экран
- выводим на экран long(time.clock()*1000) # request_time
4. Высчитать разницу между клиентом и сервером:
Код:
delta = jobStartTime -client_jobStart
5. Выполнить тоже самое с родным клиентом и Чарли (уже лень писать как это сделать)
6. Сравнить результаты
Нормальные значения:
request_time<20, delta < 100
request_time == ~70, delta == ~250
если delta намного больше, то у вас рассинхрон с сервером
Добавлено через 9 минут
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Это со старого бота. Этот участок даже не смотрел.
Ну да, там многое сделано на педалях, не дело конечно, но работает исправно и не охота было заморачиваться.
Теперь программисты, надеюсь, возьмут это в свои руки.
|
|
 |
|
 |
|
Да, многое приходится костылить и *****кодить во время разработки, но надо заставлять себя потом рефакторить (приводить в порядок), иначе этот код не только другим не пригодиться, но и себе скорее всего будет дешевле заново написать (это ко всем относиться и ко мне тоже).
Модуль-то я переделаю, только вот уже на новый лад (для нового бота).
Добавлено через 13 минут
Точнее, я не переделаю а сделаю с нуля, т.к. того пациента проще сами знаете куда.
Последний раз редактировалось ruslanische; 23.01.2015 в 13:45.
Причина: Добавлено сообщение
|
|
|
23.01.2015, 15:15
|
#3957
|
|
|
|
Разведчик
|
 Регистрация: 23.08.2013
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Проблема проявляется, если вы опираетесь на время окончания чего либо (сбора ресурсов, грядок и т.п.) и иногда вылетает ошибка при сборе несозревшего урожая, пропускания сбора ресурсов.
|
|
 |
|
 |
|
Это критично, только если ты сидишь на одном острове. То есть это достаточно редкое явление (во всяком случае у меня). Лично у меня полный цикл похода по островам занимает порядка 7-8 минут, то есть когда я повторно возвращаюсь на остров, урожай уже гарантированно созрел, поэтому "time elapsed" вполне нормально работает.
Я в свое время пытался сделать автоматическое исключение островов, где у меня нет "время-зависимых вещей" (урожай, деревья, работники). То есть я анализировал всех, кто зависит от времени, выбирал в каждой категории максимальное время (то есть, чтобы гарантированно созрело самое последнее дерево или грядка), и если это время прошло, то заходил на остров, а если нет, то его пропускал. Однако, как я сказал, при всех моих островах, полный цикл занимает больше времени, чем 5 минут, так что в этом отпал смысл.
Определенную роль в этом сыграло то, что какое-то время назад они ввели (вводили???) ограничение на количество events в одном запросе. Во флешевой игре (если делать все руками), кроме сбора дропов, большинство действий генерят один event на один пакет, а бот раньше отправлял больше сотни за раз (например при вскапывании или посеве). Это убыстряло процесс, но потом начали валиться ошибки. Плюс, в некоторых случаях я принудительно использую time.sleep(), чтобы сымитировать "ручной процесс".
|
|
|
23.01.2015, 17:46
|
#3958
|
|
|
|
Пехотинец
|
 Регистрация: 01.08.2012
 Сообщений: 95
 Популярность: 255
 Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
Определенную роль в этом сыграло то, что какое-то время назад они ввели (вводили???) ограничение на количество events в одном запросе. Во флешевой игре (если делать все руками), кроме сбора дропов, большинство действий генерят один event на один пакет, а бот раньше отправлял больше сотни за раз (например при вскапывании или посеве). Это убыстряло процесс, но потом начали валиться ошибки. Плюс, в некоторых случаях я принудительно использую time.sleep(), чтобы сымитировать "ручной процесс".
|
|
 |
|
 |
|
Ты забываешь аэроплан. После его ввода они сами шлют пачками. Сколько у него там пунктов? Сбор, посадка, посев, удобрение, удобрение деревьев.
+ гиперсфера крутящая все рулетки разом (ХЗ у меня нет)
+ дарение бесплаток
+ дарение платных ??? ХЗ
+ новый крафт с заданным числом
Все эти действия пакуют в один эвент
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
23.01.2015, 18:04
|
#3959
|
|
|
|
Разведчик
|
 Регистрация: 22.03.2012
 Сообщений: 3
 Популярность: 12
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Как бы там ни было, но бага, если есть, то ее надо исправлять. Но дело каждого, конечно.
|
|
|
23.01.2015, 19:12
|
#3960
|
|
|
|
Разведчик
|
 Регистрация: 30.04.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Уважаемые, поделитесь ботом на питоне, лопатить столько стриниц в поисках ссылки уже глаза болят. Будьте так добры.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 23:14.
|
 |