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

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

-

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

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

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

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
sig not valid

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

Попробуйте сразу после того, что сервер сказал "эй, положи такое-то число зомбаков спать", вот прямо в следующем пакете серверу, их спать ложить? Я выше отписывался, что у меня sig is not valid только из за этого летит.

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

Цитата:
Сообщение от megabyte0Посмотреть сообщение
Попробуйте сразу после того, что сервер сказал "эй, положи такое-то число зомбаков спать", вот прямо в следующем пакете серверу, их спать ложить? Я выше отписывался, что у меня sig is not valid только из за этого летит.

Хм... надо еще раз проверить, но вроде после прихода {u'action': u'stopRequest', u'objId': 93, u'type': u'item'} я помечаю, что рабочий 93 пошел спать. Или надо прям отправить запрос на сервер 'action':'stop', что я сам остановил его ?
  Ответить с цитированием
Старый 27.01.2015, 21:22   #3993
 Разведчик
Аватар для doubleaggent
 
doubleaggent никому не известный тип
Регистрация: 17.06.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

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

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Или надо прям отправить запрос на сервер 'action':'stop', что я сам остановил его ?

Меня это никогда не интересовало. Меня устраивает 'sig is not valid' и перезапуск бота в таком случае. Можно же ведь и прочарлить, что отдаётся оф. клиентом серверу?
Я этот запрос имел в виду, если что:
Код:
{u'action': u'releaseBrains',
 u'brainsCount': 1L,
 u'locationId': u'main',
 u'type': u'releaseBrains'}
, но и правильная реакция на stopRequest мне так же неизвестна
Цитата:
Сообщение от doubleaggentПосмотреть сообщение
копание

ботами запрещено под страхом бана. Банят реально или нет, не знаю. С ценностей не засчитывают?

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

Цитата:
Сообщение от megabyte0Посмотреть сообщение
Я этот запрос имел в виду, если что:
Код:
{u'action': u'releaseBrains',
 u'brainsCount': 1L,
 u'locationId': u'main',
 u'type': u'releaseBrains'}

не видел такого ни разу

Кстати, можно ли в чарли пропатчить в запросе "gz":"y"? А то напрягает вручную распаковывать ответы сервера в winhex

Добавлено через 1 час 27 минут
Цитата:
правильная реакция на stopRequest мне так же неизвестна

req: {"type":"bury","user":"456","action":"bury","slot" :0}
resp: {"type":"evt","action":"ping1"}

req: []
resp: {"type":"buried","action":"buried","user":"456","s lot":0,"buriedBy":"123"}

req: {"type":"item","objId":-434,"action":"gain"}
resp: {"type":"gainMaterial","action":"start","objId":21 2,"startCounter":22,"doneCounter":21,
"jobStartTime":"3584907","jobEndTime":"4784907","t argetId":-434}

req: []
resp: []

req: []
resp: {"type":"buried","action":"buried","user":"456","s lot":0}
{"type":"item","action":"stopRequest","objId":2 08}
{"type":"alert","action":"","msg":"SERVER_NO_BRAIN S_WILL_STOP"}

req: {"type":"item","objId":208,"action":"stop"}
resp: {"type":"gainMaterial","action":"stop","objId":208 ,"startCounter":57,"doneCounter":57}

Последний раз редактировалось ruslanische; 28.01.2015 в 12:58. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 28.01.2015, 15:35   #3996
 Разведчик
Аватар для mike4kz
 
mike4kz никому не известный тип
Регистрация: 23.08.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
Кстати, можно ли в чарли пропатчить в запросе "gz":"y"? А то напрягает вручную распаковывать ответы сервера в winhex

Меня этот вопрос волновал уже очень давно. Похоже что "самый новый" Чарли имеет опцию автоматически декомпрессировать ответ, если тот сжат. Однако любые модификации заголовка пакета (в моих экспериментах) заканчивались вываливанием с ошибкой. Если убрать параметр "gz" в запросе, то сразу валится "ошибка" от сервера. Когда я попытался изменить ответ сервера, чтобы "content-type" был "compressed" (или "gzip"), то Чарли видит ответ, но флеш-игра вываливается с ошибкой. Может у кого есть Чарли 3.9 (в 3.7 такой опции нет)?
  Ответить с цитированием
Старый 29.01.2015, 17:41   #3997
 Разведчик
Аватар для megabyte0
 
megabyte0 никому не известный тип
Регистрация: 29.07.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от Cheater-84Посмотреть сообщение
к сожалению megabyte0 ничего не выходит...

Я вижу всего 3 возможности, почему это не работает:
или я как-то неправильно интерпретирую nextPlayTimes
или какие-то косяки с таймером, тогда можно попробовать поменять строчку на такую:
Код:
if any(hasattr(building.nextPlayTimes,str(i)) and not self._get_timer().has_elapsed( long(getattr( building.nextPlayTimes,str(i) ))+60000 ) for i in xrange(11,16)):continue
или я что-то не понимаю, в принципе.
Например, как оно 2 крафта выслало, когда должно по 5 высылать?
Да и вообще, запилить game_engine.GameLocation.get_all_objects_by_items и фором по ним пробежать.
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
вручную распаковывать ответы сервера

Пользую wireshark, он по-быстрее и более общепризнанный в плане перехвата траффика, слегка. Проблема сохраняется. В принципе, можно написать мультипоточную прокси с использованием requests connection pool , где-то я такое уже видел. И пусть пакеты сама логгает распакованные?

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

Задался вопросом вот, а как правильно определить, когда на сервере наступит "завтра"? Вроде сервер считает по Московскому времени, по нему и считать? Или правильно с веб-сервера, апач там или кто, брать временную зону? Или брать свое unix-time, сервера (в ответе на TIME) и считать на сколько часов отличается?

Добавлено через 47 минут
Правильно я понимаю, что решение "в лоб" для определения, когда на сервере наступит следующий день, такое:
Код:
def time_to_new_day():
    now = time.time()
    time_tuple = time.localtime(now)
    new_day_timestamp = now - time_tuple.tm_hour*3600 - time_tuple.tm_min*60 - time_tuple.tm_sec + 24*3600
    return long(new_day_timestamp - now) * 1000
Добавлено через 2 часа 4 минуты
если у кого нет кода для дарения бесплатных подарков, то вот мой вариант, правда вам придется переделать под свой лад, но логика там понятна:
Код:
class GiftSenderBot(BaseActor):

    def __init__(self, *args):
        super(GiftSenderBot, self).__init__(*args)
        # список из ID бесплатных подарков
        self.free_gifts_ids = [record['item'] for record in self.stateProcessor.get_item_by_id(u'FREE_GIFTS').get(u'freeGifts', [])]
        # список из бесплатных подарков
        self.free_gifts = [self.stateProcessor.get_item_by_id(gift) for gift in self.free_gifts_ids]


    def perform_action(self):
        self.send_free_gifts()


    @property
    def friend_without_gifts(self):
        freeGiftUsers = self.game_state['state']['freeGiftUsers']
        for user in list(freeGiftUsers):
            if self.gameTimer.has_elapsed(user['blockedUntil']):
                freeGiftUsers.remove(user)
        blocked_users = [user['user'] for user in freeGiftUsers]
        # список соседей, которым сегодня не дарили бесплатного подарка
        friends_without_gift = filter(lambda(x): x[u'id'] not in blocked_users, self.friends)
        return friends_without_gift


    def friend_free_gift_wishes(self, friend):
        # список хотелок соседа
        friend_wishlist = friend.get(u'liteGameState', {}).get(u'wishlist', [])
        # список ID бесплатных хотелок соседа
        friend_free_wishlist_ids = [wish.lstrip('@') for wish in friend_wishlist if wish in self.free_gifts_ids]
        # список бесплатных хотелок соседа
        friend_free_wishlist_items = [wish_item for wish_item in self.free_gifts if wish_item['id'] in friend_free_wishlist_ids]
        return friend_free_wishlist_items


    def friends_who_wants_free_gift(self, gift):
        return [friend for friend in self.friend_without_gifts if gift in self.friend_free_gift_wishes(friend)]


    def send_free_gifts(self):
        sended_gifts = 0
        # дарим бесалатные подарки соседям по фильтру
        for free_gift in self.free_gifts:
            friends = self.friends_who_wants_free_gift(free_gift)
            if friends:
                sended_gifts += len(friends)
                friends_ids = [friend[u'id'] for friend in friends]
                # помечаем соседей, что подарки им подарены в этот день
                for friend_id in friends_ids:
                    self.game_state['state']['freeGiftUsers'].append({u'user': friend_id, u'blockedUntil': self.gameTimer.client_time_next_day()})
                send_event = {
                    u'type': u'gifts',
                    u'msg': self.settings.message_for_gifts,
                    u'userIds': friends_ids,
                    u'action': u'sendFreeGifts',
                    u'itemId': free_gift['id']
                }
                self.send_event(send_event)
        # дарим случайные подарки остальным соседям
        friends = self.friend_without_gifts
        if friends:
            sended_gifts += len(friends)
            wish_item = random.choice(self.free_gifts)
            friends_ids = [friend[u'id'] for friend in friends]
            # помечаем соседей, что подарки им подарены в этот день
            for friend_id in friends_ids:
                self.game_state['state']['freeGiftUsers'].append({u'user': friend_id, u'blockedUntil': self.gameTimer.client_time_next_day()})
            send_event = {
                u'type': u'gifts',
                u'msg': self.settings.message_for_gifts,
                u'userIds': friends_ids,
                u'action': u'sendFreeGifts',
                u'itemId': wish_item['id']
            }
            self.send_event(send_event)
        if sended_gifts > 0:
            logger.info(u"Подарено %s бесплатных подарков" % sended_gifts)

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

ruslanische, бесплатки от чуда и юда ещё есть на этот случай. А с этими временными зонами.. то в 0:00 GMT+3 они считали, то GMT+4 .. кто б знал универсальный ответ...
Цитата:
Сообщение от ruslanischeПосмотреть сообщение
new_day_timestamp = now - time_tuple.tm_hour*3600 - time_tuple.tm_min*60 - time_tuple.tm_sec + 24*3600

Вам хорошо, Вы в Москве живёте, а остальные? Я бы сделал так:
Код:
t=time.gmtime(now)
new_day_timestamp=calendar.timegm(t[:3]+(21+(0 if t[3]<21 else 24),0,0)+t[6:9])
, если нужна такая логика с вычитаниями, но тоже косовато выглядит. И даже ещё не идеально, мы же можем просто выкинуть день, число, месяц, и т д, а использовать
Код:
offset=3
return (calendar.timegm((1970,1,1 if t.tm_hour<24-offset else 2,23-offset-t.tm_hour,59-t.tm_min,60-t.tm_sec,0,0,0)) - math.modf(now)[0] )*1000
, всё равно выглядит криво
P.S. datetime.timedelta ещё есть...

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

Цитата:
А с этими временными зонами.. то в 0:00 GMT+3 они считали, то GMT+4

нормальные люди в UTC считают, иначе ломается потом все

Цитата:
бесплатки от чуда и юда ещё есть на этот случай

на какой случай? бесплатные от них я принимаю, там в подарке есть поле 'type': ADMIN - подарки от администрации, FAKE_USER - от этих ботов, чуда и юда.
  Ответить с цитированием
Старый 30.01.2015, 02:32   #4001
 Разведчик
Аватар для mike4kz
 
mike4kz никому не известный тип
Регистрация: 23.08.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

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

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
time_tuple = time.localtime(now)
new_day_timestamp = now - time_tuple.tm_hour*3600 - time_tuple.tm_min*60 - time_tuple.tm_sec + 24*3600

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

[Ссылки могут видеть только зарегистрированные пользователи. ]
У меня, заметьте, в UTC и посчитано.

Цитата:
Сообщение от ruslanischeПосмотреть сообщение
на какой случай?

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

Я наверно просто буду писать полнее сразу, а на провокации подобного рода отвечать перестану

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

Цитата:
У меня, заметьте, в UTC и посчитано.

А на кой в UTC считать, если сервер отдает в местном (его) времени, тут хоть обсчитайся. Про нормальных людей я имел в виду, что в БД время д.б. в UTC, между клиентами и серверами д.б. в UTC. А локальное только для отображения клиенту.
  Ответить с цитированием
Старый 30.01.2015, 16:52   #4004
 Разведчик
Аватар для ripton07
 
ripton07 никому не известный тип
Регистрация: 19.10.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

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

Цитата:
Сообщение от ripton07Посмотреть сообщение
Ребят, помогите разобраться где собака зарыта [Ссылки могут видеть только зарегистрированные пользователи. ]

Да потому что не MANDARINE, а MANDARIN

Я в тупую переназначал в плантс
PHP код:
                    if name == 'MANDARINE'name 'MANDARIN'
                    
if name == 'CHERRY_WHITE'# FT_CHERRY_WHITE
                        
name '@D_MAIL_BOX_CHERRY'
                    
else:
                        
name '@FT_PICKUP_BOX_' name 
Это перед строкой
PHP код:
                    pickup_box dict2obj({'item'name,'type'"pickup",'id'harvestItem.idu'y'harvestItem.yu'x'harvestItem.x}) 

Тот кто делал превращалку деревьев в сундуки сразу не заморочился чтением итема, а взял и из названия дерева
@FT_APPLE делает сундук @FT_PICKUP_BOX_APPLE
Но только разработчики иногда косячат и называют по разному (другая смена )
Вот так из @FT_MANDARINE получается @FT_PICKUP_BOX_MANDARIN
А из зимней вишни @FT_CHERRY_WHITE вообще @D_MAIL_BOX_CHERRY


P.S. Всех кумарят хр... плохо вырезанные смайлики на жуке? Как смотрю, так и плачу. Я понимаю, что сделано под светлую тему и там всё равно. Но тема тёмная давно, если не всегда.
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Последний раз редактировалось vintets; 30.01.2015 в 17:25.
  Ответить с цитированием
Ответ


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

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

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

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

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net