Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Zombot (Клиент для игры Зомби ферма) [Обсуждение]

-

Свободное обсуждение

- Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей

Ответ
 
Опции темы
Старый 18.01.2015, 20:38   #3916
 Разведчик
Аватар для ruslanische
 
ruslanische никому не известный тип
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
не понял , ну и что случится если здание того же размера что и дерево, после того как срубишь эти дефолтные деревья на то место уже не поставить ни здание размером с это срубленное дерево ни декор ни то же самое дерево

вот именно
пока не срубил эти деревья, то проверять надо по одним координатам (они шире)
а когда бот будет ставить здание или садить дерево, то проверять надо по другим координатам
  Ответить с цитированием
Старый 18.01.2015, 20:53   #3917
 Разведчик
Аватар для greyzza
 
greyzza никому не известный тип
Регистрация: 25.02.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
а когда бот будет ставить здание или садить дерево, то проверять надо по другим координатам

ну вобщем то да, я выставление либо посадку не включал когда у меня там деревья росли, да и вырубились они быстро, нужно проверить выставление за забором когда там деревья есть чтобы посмотреть воткнется ли он в это дерево, что стоит левее, ведь его координат получается не будет в составленной карте острова либо если размер у этого дерева 1х1 никакой проблемы не будет

Добавлено через 32 минуты
Цитата:
править все модули - только то, что мне нужны по ходу игры, а писать то, что мне не нужно бесплатно я не буду

про то и разговор, что те люди(без опыта программирования) которые пытаются править существующего бота худо бедно разобрались как чего, и что то могут сделать сами, а с твоим либо опять разбираться что к чему либо платить тебе деньги за нужный модуль(а зачем? если есть бесплатное!) либо ждать когда тебе по ходу игры понадобится та или иная функция, так что пишешь ты пока исключительно для себя. только пойми меня правильно ,я не против твоего изменения бота, вовсе нет и если нужна будет помощь по модулям приму участие, я про то что "удобно читать и править" для всех понятия разные

Последний раз редактировалось greyzza; 18.01.2015 в 21:25. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 18.01.2015, 21:52   #3918
 Разведчик
Аватар для megabyte0
 
megabyte0 никому не известный тип
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
за это приходится расплачиваться game_types.py

Так ну же неправда Ваша, я ж говорил уже. Game Types нужен чтобы не отправить на сервер ереси, для криворуких дописывателей конечных модулей. Есть и половинчатое решение, с точкой но без game_types ...

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Зачем писать

Не, он автоматом сгеренён, и исходник генерации его рядом там валялся или в корне..

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
как это получше сделать

Как вариант -- описать отдельно основную Area , либо вообще отдельно доступность ресурсов и доступность площади (доступность ресурсов расширить по сравнению с доступностью площади, даже и до 0,0 ). Вообще такие неоднозначности только на main ведь?
Цитата:
Сообщение от greyzzaПосмотреть сообщение
уж не знаю за какой вы скоростью гонитесь

У меня в кладовке стоит AMD-K6-450 с 256M оперативы. Когда его можно будет запустить серваком под 10 акков с рыбаками, я подумаю, что бот хороший : ))
Или, как вариант, чтобы фильмы не мешал смотреть на сборе дропа, а то сейчас получается или фильм или бот.
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
бота пытаются править люди без опыта программирования

Ладно Вам. Программистов тут штуки 3-4-5, из тех, кто пишет, остальные признают, что не программисты, хотя умеют. Моя же задача, одна из, сделать бота "для блондинок", повторяюсь. self.craft , self.buy, self.place и т д и максимально облегчить конечные модули. Возможно, через наследование ( class HarvestExchange(Craft) , а Craft абстрактный , например.) , то есть максимально облегчить написание конечных модулей. Настолько, чтобы и программистом не особо надо было быть. Заодно тема почистится от подобных запросов.

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
писать то, что мне не нужно бесплатно я не буду

Да ну, бросьте. Сделайте тогда обратную поддержку существующих модулей, чтоли?
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
and x>=0 and x<=48

Ещё одна "вкусность" питона -- двойные неравенства
and 0<=x<=48 . Попробуйте
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Взять текущий zombiefarm.swf посчитать его md5

digests.txt посмотрите при загрузке оф. клиента? Там они все посчитаны...

Последний раз редактировалось megabyte0; 18.01.2015 в 21:57.
  Ответить с цитированием
Старый 18.01.2015, 22:17   #3919
 Разведчик
Аватар для ruslanische
 
ruslanische никому не известный тип
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
про то и разговор, что те люди(без опыта программирования) которые пытаются править существующего бота худо бедно разобрались как чего, и что то могут сделать сами, а с твоим либо опять разбираться что к чему либо платить тебе деньги за нужный модуль(а зачем? если есть бесплатное!) либо ждать когда тебе по ходу игры понадобится та или иная функция, так что пишешь ты пока исключительно для себя. только пойми меня правильно ,я не против твоего изменения бота, вовсе нет и если нужна будет помощь по модулям приму участие, я про то что "удобно читать и править" для всех понятия разные

Трудно не согласиться, это можно отнести почти к любому опенсорц проекту (кикстартер не в счет, там чисто комерц).

Добавлено через 17 минут
Цитата:
Или, как вариант, чтобы фильмы не мешал смотреть на сборе дропа, а то сейчас получается или фильм или бот.

А какие проблемы при сборе дропа? Забивается канал или проц?

Цитата:
Моя же задача, одна из, сделать бота "для блондинок", повторяюсь. self.craft , self.buy, self.place и т д и максимально облегчить конечные модули

боюсь, если так сделать, то потеряется гибкость и при больших изменениях в клиенте будет печально за потраченное время; либо код будет очень громоздким и сложным, в котором потом фиг че разберешь.

Цитата:
Да ну, бросьте. Сделайте тогда обратную поддержку существующих модулей, чтоли?

Это я не конкретно про бота, я вообще. Тратить свое свободное время хочется на себя. Правильно greyzza подметил, что пишу я пока для себя, а если что толковое выйдет - увидит свет.

Цитата:
Ещё одна "вкусность" питона -- двойные неравенства
and 0<=x<=48 . Попробуйте

крутяк, так нагляднее, спасибо

Цитата:
digests.txt посмотрите при загрузке оф. клиента? Там они все посчитаны...

хм, да, не подумал об этом

Последний раз редактировалось ruslanische; 18.01.2015 в 22:34. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 18.01.2015, 23:20   #3920
 Разведчик
Аватар для megabyte0
 
megabyte0 никому не известный тип
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
то потеряется гибкость

Не знаю, у меня получалось. Посмотрите self.craft ? Там специально же отходные пути сделаны, для коллекций pass поставлен, комментами написано, какие проверки не сделаны. Мне туда с очень маленькими усилиями удалось впихнуть и коллекции, после.
Я бы сказал даже "спрятать очевидную обвязку и проверки", в эти "простые" функции. При изменениях в протоколе, опять, поменяется только отсылка, обвязка же та же и останется?

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Забивается канал или проц?

Проц. Похоже, на преобразовании в dict2obj либо на цикле по евентам. И туда и туда влом лезть, а больше негде, вроде. Да, впрочем, лог выше я ж кидал? Открывал он silently, одним сообщением. Остальное время собирал дроп. Потом только его показал. Гляньте..

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
либо код будет очень громоздким и сложным

Ну, опять же, гляньте крафт? : )) Да, проверок и обвязки там до жути, но, имхо, вполне читабелен. Я не говорю все базовые пользовательские функции делать по образу и подобию.. Но таки можно "облегчить жизнь рядовым пользователям..."
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Тратить свое свободное время хочется на себя.

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
править все модули - только то, что мне нужны по ходу игры

А мне нравится решение, типа bridge.py , при подключении которого теряется скорость, но становится возможным подключение уже написанных модулей. Так Ваш проект будет обречён на юзабельность в любом случае (опечатки нет). Больше того, если писать модули захотят больше под Вашу модификацию бота, то, понятно, какой бот будет пользовать большинство, в конце концов.

Мне, как параноику, трудно будет сразу взять и использовать, я ж почитаю всё сначала, а 1-2 дня на такое я могу и не найти...
Мне в любом случае надо будет представлять все подводные камни кода или их отсутствие/предусмотренность, чтобы легко использовать код. Так что, про себя я даже не говорю. Но было бы интересно посмотреть ещё не рассмотренные выше решения

Что бы я ещё хотел предложить -- перегрузить __getitem__ в item_reader , банально на get, куда приятнее выглядело бы self.reader[obj.item] , чем .get(obj.item) . И, опять, по функциям, можно же написать "обратное ТЗ", что пользователям может быть надо, и двигаться от него? Возможно, мне было бы даже приятно в таком поучаствовать (в написании потом подобных функций с обвязкой)
Но, конечно, не настолько детальное, чтобы это могло вылиться в game_types_2 : ))) Пусть сами dictы новых событий/actionов из перехватов обмена со стандартным клиентом ковыряют
  Ответить с цитированием
Старый 18.01.2015, 23:39   #3921
 Разведчик
Аватар для ruslanische
 
ruslanische никому не известный тип
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Не знаю, у меня получалось. Посмотрите self.craft ?

посмотрю, было б где

Цитата:
Да, проверок и обвязки там до жути, но, имхо, вполне читабелен

и туда мало кто полезет кроме вас, ибо сломают

Цитата:
Но таки можно "облегчить жизнь рядовым пользователям..."

сильно сомневаюсь в необходимости делать API для "блондинок", надо сделать так, чтобы было читабельно, но если где и накосячил, то по трейсу легко было понять в чем причина и как исправить

Цитата:
А мне нравится решение, типа bridge.py

шаблон мост? я его обожаю, на с++ время перекомпиляции снижает, интерфейс упрощает, скорость работы немного снижает

Цитата:
Мне, как параноику, трудно будет сразу взять и использовать, я ж почитаю всё сначала, а 1-2 дня на такое я могу и не найти...

вот по этому я и взялся переписывать, а время пока есть
  Ответить с цитированием
Старый 19.01.2015, 01:54   #3922
 Разведчик
Аватар для megabyte0
 
megabyte0 никому не известный тип
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
посмотрю, было б где

google.com/search?q=site:zhyk.ru+self.craft
http://zhyk.ru/forum/showpost.php?p=...postcount=3030

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
и туда мало кто полезет

Хуже. Туда и лезть не надо, потому что всё предусмотрено. Пользуйте на здоровье :)
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
ибо сломают

И ломать там нечего :DD Только дописывать, причём, там же и написано, что именно, и куда.
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
сильно сомневаюсь в необходимости делать API для "блондинок"

Хорошо, вот Вам другое обоснование: мы прячем дублирующийся код в легкодоступные понятные функции.
Да не хотите, не делайте, я ж выше написал, что такие функции, с обвязкой из "кепских" вещей, но, которые, если какую-нибудь из них упустишь, может всё полететь, мне писать было бы, возможно, приятно. В отличие от уважаемого greyzza я не буду обещать именно написать их, или даже что мне было бы приятно писать их даже поверх [' '] , но сама идея рассмотренности всех краевых случаев, может вдохновлять.

У меня даже было и более сильное возражение, но я придержу его пока почитаете craft.

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
надо сделать так, чтобы было читабельно

А я что, не согласен, чтоли? :)
Цитата:
Сообщение от megabyte0Посмотреть сообщение
максимально простым для разработчиков конечных модулей и максимально понятным для остальных.

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
но если где и накосячил

Да, сложность может быть, что такие функции желательно бы писать с просмотром всех вариантов, то есть, чтобы накосячить было негде.
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
то по трейсу легко было понять в чем причина и как исправить

А этого никто не отменял :DD

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
шаблон мост?

Ннет, или я не понял. Back-поддержка готовых модулей. Типа import bridge и можно подключать к Вашему. Или что-нибудь в этом роде, додумывать надо. Более того, несложно же выделить (self\.[^(]+)\( и посмотреть, что вообще может быть надо конечным модулям кроме того, что они импортят.

Навскидку, что может требовать обвязки и при этом требоваться не в одном модуле: buy, sell (грядки, ракеты, декор), visit (копка, стучание), knock (если оно вообще пишется универсально..), magic (в одном модуле хотя оно) . Народ, зачем вы бот используете ещё? :) chop (проверка, что не в "тени", но опять 1 модуль только)

Последний раз редактировалось megabyte0; 19.01.2015 в 02:58.
  Ответить с цитированием
Старый 19.01.2015, 08:41   #3923
 Разведчик
Аватар для ruslanische
 
ruslanische никому не известный тип
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

megabyte0
Ок, но это все позже, щас я старые модули переделываю.

После очередного ночного запуска бот встал под утро, на этот раз без ingame error - дерево не закончилось. Склад зомбика переполнился и работа встала, опять не сработала проверка EndJob...
Че ж делать? Может перенести проверку на конец работ в сам workers.perform_action? Странно, что у меня время потихоньку отстает от серверного.

Добавлено через 2 часа 38 минут
Похоже были правы те, кто говорил, что таймер в воркере - зло. Действительно, пока не решена проблема с таймером (как минимум у меня есть эта проблема), то в воркере лучше доверять doneCounter...
Видимо проблема со сбором недозретого урожая тоже с таймером связана?

Последний раз редактировалось ruslanische; 19.01.2015 в 11:19. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 19.01.2015, 16:54   #3924
 Разведчик
Аватар для megabyte0
 
megabyte0 никому не известный тип
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Странно, что у меня время потихоньку отстает от серверного.

И правда странно. Может, ввести множитель или адаптивную подстройку?
Значит, был неправ в том, чтобы считать его правильным...
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
проблема со сбором недозретого урожая тоже с таймером связана?

Да ни с чем другим она и связана быть не может, имхо..

Последний раз редактировалось megabyte0; 19.01.2015 в 16:58.
  Ответить с цитированием
Старый 19.01.2015, 17:20   #3925
 Разведчик
Аватар для ruslanische
 
ruslanische никому не известный тип
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Клиент игры обновился, если кого это волнует. Я перепроверяю все запросы-ответы.

Код для проверки на изменения клиента:
Код:
import re
from connection import Connection
...
   CLIENT_DIGEST = u'00e054cdd461166cb9e796f7582191b5fa61f097'
...
    def validate_client_version(self):
        all_digests = Connection(u'http://s.shadowlands.ru/zombievk-res/digests.txt').download()
        pattern = re.compile(u'^zombiefarm.swf=(.*)')
        matched = re.match(pattern, all_digests)
        if not matched:
            logger.info(u'Не удалось получить digest.txt с сервера игры')
            raise
        zf_digest = matched.groups()[0]
        if zf_digest != self.CLIENT_DIGEST:
            logger.info(u'Известная подпись zombiefarm.swf не совпадает с подписью с сервера')
            raise
...
    validate_client_version()
мой connection.py:
Код:
# -*- coding: utf-8 -*-

import logging
import requests
import zlib
from game_exceptions import zlibError

logger = logging.getLogger('connection')

class Connection(object):
    def __init__(self, url):
        self.__url = url
        self.__session = requests.session()
        self.__session.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0'
        self.__session.headers['Accept'] = 'text/html,application/xhtml+xml,application/zip,application/xml;q=0.9,*/*;q=0.8'
        self.__session.headers['Accept-Language'] = 'ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3'
        self.__session.headers['Accept-Encoding'] = 'gzip, deflate'
        self.__session.headers['Connection'] = 'keep-alive'
        self.__session.headers['Pragma'] = 'no-cache'
        self.__session.headers['Cache-Control'] = 'no-cache'

    # Нужно для обработки редиректа
    def setUrl(self, new_url):
        self.__url = new_url

    # Скачать документ по ссылке
    def download(self, data=None):
        response = self.__getResponse(data)
        if u'content-type' in response.headers and response.headers[u'content-type'] == u'application/zip':
            try:
                decompressed_content = zlib.decompress(response.content)
                return decompressed_content
            except:
                raise zlibError
        response.encoding = 'utf-8'
        return response.text

    def sendRequest(self, data=None):
        logger.info('request: ' + self.__url + ' : ' + unicode(data))
        response = self.__getResponse(data)
        if u'gz' in data and data[u'gz'] == u'y':
            try:
                decompressed = zlib.decompress(response.content)
            except:
                raise zlibError
            content = unicode(decompressed.decode(u'utf-8'))
            logger.info(u'response: ' + content)
            return content

        logger.info(u'response: ' + response.text)
        return response.text

    def __getResponse(self, data):
        response = self.__session.get(self.__url, params=data)
        response.encoding = 'utf-8'
        return response
Добавлено через 5 минут
Цитата:
И правда странно. Может, ввести множитель или адаптивную подстройку?
Значит, был неправ в том, чтобы считать его правильным...

Пока не знаю что делать, кроме как насильно перезапускать бота по таймеру (например, каждые 3 часа)
возможно time.time() имеет другую точность, нежели во флеше
А множитель и так х1000 (т.е. мы секунды с сотыми переводим в милисекунды)

Последний раз редактировалось ruslanische; 19.01.2015 в 23:41. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 19.01.2015, 19:47   #3926
 Разведчик
Аватар для megabyte0
 
megabyte0 никому не известный тип
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
возможно time.time() имеет другую точность, нежели во флеше

Код:
>>> import time
>>> time.time()
1421684212.265
>>> import math
>>> math.modf(time.time())
(0.7179999351501465, 1421684476.0)
>>> math.modf(time.time())
(0.812000036239624, 1421684483.0)
То есть оно насильно округляется до 3 знаков питоном.
Больше того, даже на 6и пакетах подряд, разница "time": запроса и времени отправки запроса ходит +-90мс , у меня, по перехватам из оф.клиента.
Если другая точность в другом плане, то вроде как не особо верится, они ж по идее должно одно и то же API для этого использовать? Тут только доки курить или реализацию смотреть...

Пока что идея только при перезапуске бота куда-нибудь логгать serverTime вместе с time.time() , ну, и посмотреть потом разницу, уходит или нет. Хотя, правда ли, что ingame time считается просто вычитанием из серверного текущего системного времени какого-то значения, я опять не знаю. Вроде, это может быть дорого по ресурсам.
А про перезапуск бота, да, он стоял раз в 10-25 минут, у кого как, я не знал вообще зачем это может быть нужно и выпилил. Теперь ясно.
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
self.__session.headers['

forом по словарику либо по списку tupleов мне бы больше понравилось.
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Я перепроверяю все запросы-ответы.

Вроде теперь в START и id отдаётся, и serverTime, серверу.

P.S. Ах да, craft "неограниченный" в постройках -- просто навеска на клиент, с ограничением в 500 и жуткими тормозами. При этом неочевидно, что считаются разы крафта, а не скрафченные итемы. Вообщем, бот это не трогает.

Последний раз редактировалось megabyte0; 19.01.2015 в 20:01.
  Ответить с цитированием
Старый 19.01.2015, 20:03   #3927
 Разведчик
Аватар для ruslanische
 
ruslanische никому не известный тип
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Вроде теперь в START и id отдаётся, и serverTime, серверу.

а что, было по-другому? О_о

data {"lang": "en", "info": {"city": "Москва", "first_name": "ххх", "last_name": "ххх", "uid": ххх, "country": "Россия", "sex": 2, "bdate": null}, "ad": "user_apps", "serverTime": 1421686824660, "clientTime": 40844, "sig": "47f01ae23cb58535072e0cd8a446e864", "user": ххх "type": "START", "id": 1421686824660}
  Ответить с цитированием
Старый 19.01.2015, 22:20   #3928
 Разведчик
Аватар для mike4kz
 
mike4kz никому не известный тип
Регистрация: 23.08.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Кто-нибудь отправляет ping? Клиент его шлет иногда, как я понял, он идентичен пустому евенту, но вот в какое время его слать?

Если приходит запрос на "ping" "ping2", то нужно отправлять пустой евент. Обычно большинство "походов к друзьям" (и, если не ошибаюсь, операции копакния у друзей, закапывания монстра и т.д.) требуют подтверждения ping. Я у себя ставил в game_engine.py обработчик, который автоматически отвечает пустым "событием" на приходящий "пинг". А в некоторых случаях (при оставлении пряников и закапывании монстра) я просто следом за отправкой события через секунду отправляю пустой евент.
  Ответить с цитированием
Старый 19.01.2015, 22:23   #3929
 Разведчик
Аватар для ruslanische
 
ruslanische никому не известный тип
Регистрация: 22.03.2012
Сообщений: 3
Популярность: 12
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Если приходит запрос на "ping" "ping2", то нужно отправлять пустой евент

спасибо, я еще видел ping1
  Ответить с цитированием
Старый 20.01.2015, 10:19   #3930
 Пехотинец
Аватар для vintets
 
vintets скоро будет известенvintets скоро будет известенvintets скоро будет известен
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от megabyte0Посмотреть сообщение
Код:
>>> import time
>>> time.time()
1421684212.265
>>> import math
>>> math.modf(time.time())
(0.7179999351501465, 1421684476.0)
>>> math.modf(time.time())
(0.812000036239624, 1421684483.0)
То есть оно насильно округляется до 3 знаков питоном.

Питон не округляет. time() - 32 битная и чем дальше, тем меньше точность дробной части. На сегодняшний день это 3 знака после запятой, как раз 1 мс выходит.
>>> print "time.time(): %f " % time.time()
time.time(): 1421737003.031000

А math просто начинает ломать из-за внутреннего ограничения точности.
>>> math.modf(3.2)
(0.20000000000000018, 3.0)
>>> math.modf(1421684212.265)
(0.2650001049041748, 1421684212.0)
В более ранних питонах это же было и в встроенных функциях. Сейчас там коррекция стоит.
Это я про точность в питоне где-то читал пару месяцев назад.

Последний раз редактировалось vintets; 20.01.2015 в 10:22.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] Zombot (Клиент для игры Зомби ферма) AnonProger Баги игр ВКонтакте 189 26.08.2014 15:50
[Статья] Небольшие секреты игры зомби ферма haussuper Баги игр ВКонтакте 11 26.01.2013 10:54
[Информация] Зомби Ферма dekirillov Баги игр ВКонтакте 40 22.10.2011 18:25

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 23:30.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net