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

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

-

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

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

Ответ
 
Опции темы
Старый 22.01.2017, 13:05   #5446
 Разведчик
Аватар для Afonia15
 
Afonia15 никому не известный тип
Регистрация: 06.08.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Всем доброго дня подскажите вчера перестал работать бот,ругается на message_factory,позавчера и до этого работало всё как часы(((
  Ответить с цитированием
Старый 22.01.2017, 13:21   #5447
 Разведчик
Аватар для ripton07
 
ripton07 никому не известный тип
Регистрация: 19.10.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
ругается на message_factory

Ну так листани пару страниц назад, может твой вопрос уже обсуждался.
  Ответить с цитированием
Старый 22.01.2017, 14:12   #5448
 Разведчик
Аватар для Afonia15
 
Afonia15 никому не известный тип
Регистрация: 06.08.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

http://i.zhyk.ru/image/b9Y8I Что за беда подскажите???
  Ответить с цитированием
Старый 22.01.2017, 14:24   #5449
 Разведчик
Аватар для ripton07
 
ripton07 никому не известный тип
Регистрация: 19.10.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Что за беда подскажите???

Не используйте этот модуль, вместо него настраивайте обмен роз в модуле Craft.
Это сборка из разных ботов собрана была, поудалять всё не нужное руки, как обычно не доходят.
  Ответить с цитированием
Старый 22.01.2017, 14:29   #5450
 Разведчик
Аватар для Coca-c
 
Coca-c никому не известный тип
Регистрация: 01.02.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Хотел спросить ) конечно бредовый вопрос но на десятке он работает? Может потому что у меня десятка)) опять этот http error невидимый(
  Ответить с цитированием
Старый 22.01.2017, 15:10   #5451
 Разведчик
Аватар для ripton07
 
ripton07 никому не известный тип
Регистрация: 19.10.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
на десятке он работает?

Он на Python27 работает)))

Добавлено через 2 минуты
Цитата:
опять этот http error невидимый

Вчера запустился??

Последний раз редактировалось ripton07; 22.01.2017 в 15:13. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 22.01.2017, 15:13   #5452
 Разведчик
Аватар для Coca-c
 
Coca-c никому не известный тип
Регистрация: 01.02.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Ну это понятно)) что на питоне я бы без него не запустил бы )) но этот еррор убивает меня... У все же работает а я как особенный что ли
  Ответить с цитированием
Старый 22.01.2017, 15:15   #5453
 Разведчик
Аватар для ripton07
 
ripton07 никому не известный тип
Регистрация: 19.10.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
я как особенный что ли

У мну десятка))
  Ответить с цитированием
Старый 22.01.2017, 15:18   #5454
 Разведчик
Аватар для Coca-c
 
Coca-c никому не известный тип
Регистрация: 01.02.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

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

Цитата:
но этот еррор убивает меня

Сайт какой вк ок?? Попробуй закоментить все модули кроме переход по локациям и кручение рулеток.
  Ответить с цитированием
Старый 22.01.2017, 15:23   #5456
 Разведчик
Аватар для Coca-c
 
Coca-c никому не известный тип
Регистрация: 01.02.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Сайт у меня вк, а закоментить попробую когда буду дома а то с телефона щяс не могу) хотя уверен на 99% что не заработает
  Ответить с цитированием
Старый 22.01.2017, 15:27   #5457
 Разведчик
Аватар для ripton07
 
ripton07 никому не известный тип
Регистрация: 19.10.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
когда буду дома

Всё работает (пока) и у тебя тоже заработает, просто надо настроить именно под свой профиль

Добавлено через 19 минут
Цитата:
уверен на 99% что заработает

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

Последний раз редактировалось ripton07; 22.01.2017 в 15:47. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 22.01.2017, 16:16   #5458
 Разведчик
Аватар для greyzza
 
greyzza никому не известный тип
Регистрация: 25.02.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

в общем на будущее:
изменены ссылки в игре, пока все работает как по старым ссылкам так и по новым, но я так думаю не далёк тот день когда старые сервера обрубят.
ссылки которые изменены в соц сетях актуальны для РФ, для других стран смотрите у себя. ссылки

фейсбук по прежнему загружается через salt , ссылки тоже не изменялись
  Ответить с цитированием
Старый 22.01.2017, 16:22   #5459
 Разведчик
Аватар для KORTEG
 
KORTEG никому не известный тип
Регистрация: 11.02.2010
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Всем привет!

Использую ZomBot v.0.9.8++ (Vanuan/Vint)

Стала вылезать ошибка:

Код:
Traceback (most recent call last):
  File "main.py", line 133, in <module>
    run_game()
  File "main.py", line 103, in run_game
    Game(site, settings, UserPrompt(gui_input), gui_input=gui_input).start()
  File "C:\Python27\src\game_state\game_engine.py", line 730, in start
    start_response,self.__friendsid,self.__server_time = self.__game_initializer.start()
  File "C:\Python27\src\game_state\game_engine.py", line 202, in start
    start_response, friendsid = self.start_game(server_time, session_key)
  File "C:\Python27\src\game_state\game_engine.py", line 252, in start_game
    return self.__request_sender.send(command), friendsid
  File "C:\Python27\src\game_state\game_engine.py", line 1361, in send
    request = self.__factory.createRequest(data)
  File "C:\Python27\src\game_state\message_factory.py", line 99, in createRequest
    request_data['data'] = self.__createDataValue(data, data_keys_order)
  File "C:\Python27\src\game_state\message_factory.py", line 124, in __createDataValue
    self.__addSigOrAuth(data_value)
  File "C:\Python27\src\game_state\message_factory.py", line 137, in __addSigOrAuth
    objectData["sig"] = self.calcSig(sessionKey, self.__request_id, auth_key)
  File "C:\Python27\src\game_state\message_factory.py", line 171, in calcSig
    postfix = sessionKey.split(':')[1]
IndexError: list index out of range
Понимаю, что авторизация не проходит.
Но с отключением соли не могу разобраться, т.к. message_factory.py другой, чем выкладывали тут на днях.

Код:
# coding=utf8

import game_state.hashsum
import json
import collections

import random
import logging
import os.path
import os
import subprocess
from game_state.read_swf import swf2functions
import urllib2

logger = logging.getLogger(__name__)


def __saltFunction(string):
    result = ""
    # from classWithGo
    result += str(len(string)) + (game_state.hashsum)._md5hash(string + "stufff...")
    #salt13 = str(len(string) * 13)  # from main.initialize
    salt13 = str(len(string) * 17 + 13)  # from main.initialize
    #salt2 = hashsum._md5hash(salt13 + str(len(salt13)) + str(len(string)))
    salt2 = (game_state.hashsum)._md5hash(salt13 + str(len(string))+ str(len(salt13)))
    result += salt2
    characterSum = 0  # calc sum of byte codes in a string
    for i in range(0, len(string)):
        #characterSum += (ord(string[i]) & 255)
        characterSum += (ord(string[i]) & 250)
    result += str(characterSum)
    return result


def calcCRC(string):
    return (game_state.hashsum)._md5hash(string + __saltFunction(string))


# def calcSig(sessionKey, requestId, authKey):
    # sig = sessionKey + str(requestId) + authKey
    # sig += __saltFunction(sig)
    # sig = hashsum._md5hash(sig)
    # return sig    

def calcAuth(requestId, authKey):
    auth = str(requestId) + authKey
    auth += __saltFunction(auth)
    sig = (game_state.hashsum)._md5hash(auth)
    return sig


class Session():
    '''
    This class represents session data needed
    to authenticate and sign messages
    '''
    def __init__(self, user_id, auth_key, client_version=1370414015,
                 session_key=None):
        self.__user_id = user_id          # vk user id
        self.__session_key = session_key  # session key from TIME request
        self.__auth_session_key = None    # key from TIME response
        self.__auth_key = auth_key        # auth key from vk.com flashvars
        self.CLIENT_VERSION = client_version

    def getUserId(self):
        return self.__user_id

    def getSessionKey(self):
        return self.__session_key

    def setSessionKey(self, session_key):
        self.__session_key = session_key

    def getAuthKey(self):
        return self.__auth_key

    def set_auth_key(self, auth_key):
        self.__auth_key = auth_key

    def getAuthSessionKey(self):
        return self.__auth_session_key


class Factory():
    '''
    This class will be used to generate signed messages
    '''
    def __init__(self, session, selected_site, base_request_id=None):
        if base_request_id is None:
            base_request_id = _getInitialId()
        self.__session = session
        assert isinstance(self.__session, Session)
        self.BASE_REQUEST_ID = base_request_id  # "magick" initial value
        self.__request_id = self.BASE_REQUEST_ID
        self.__selected_site = selected_site

    def createRequest(self, data, data_keys_order=None):
        request_data = {}
        request_data['data'] = self.__createDataValue(data, data_keys_order)
        request_data['crc'] = calcCRC(request_data['data'])
        return Request(request_data)

    def __createDataValue(self, data, data_keys_order):
        if data_keys_order is None:
            data_keys_order = _getDataKeyOrder(data['type'])
        datacopy = data.copy()
        datacopy['user'] = str(self.__session.getUserId())
        datacopy['id'] = self.__request_id
        datacopy['sig'] = ''
        datacopy['auth'] = ''
        datacopy['clientVersion'] = self.__session.CLIENT_VERSION
        data_value = collections.OrderedDict()
        for key in data_keys_order:
            if key in datacopy:
                data_value[key] = datacopy[key]
        message_type = datacopy['type']
        if message_type == 'START':
            info_keys = ["uid", "bdate", "country", "first_name",
                         "sex", "city", "last_name"]
            data_value['info'] = collections.OrderedDict()
            for info_key in info_keys:
                if info_key in datacopy['info']:
                    data_value['info'][info_key] = datacopy['info'][info_key]
        self.__addSigOrAuth(data_value)
        result = json.dumps(data_value, separators=(',', ':'),
                            ensure_ascii=False, encoding="utf-8")
        self._generateRequestId()
        return result

    def __addSigOrAuth(self, objectData):
        sessionKey = self.__session.getSessionKey()
        auth_key = self.__session.getAuthKey()
        authSessionKey = self.__session.getAuthSessionKey()

        if sessionKey is not None:
            #objectData["sig"] = calcSig(sessionKey, self.__request_id, auth_key)
            objectData["sig"] = self.calcSig(sessionKey, self.__request_id, auth_key)
        else:
            objectData["auth"] = calcAuth(self.__request_id, auth_key)
            if authSessionKey is not None:
                objectData["key"] = authSessionKey
        return objectData

    """
    def calcSig(self,sessionKey, requestId, authKey):
        #if hasattr(self,'sig') and isinstance(self.sig,dict) and self.sig.has_key(str(requestId)):
        #    return hashsum._md5hash(self.sig[str(requestId)])
        if hasattr(self,'sig') and isinstance(self.sig,dict):
            if self.sig.has_key(str(requestId)):
                return hashsum._md5hash(self.sig[str(requestId)])
            else:
                delattr(self,'sig')
                raise GameError("No sig for %s"%(" ".join([authKey,str(requestId),sessionKey])))            
        if not os.path.isdir('C:\\Python27\\sig'): os.makedirs('C:\\Python27\\sig')
        if not os.path.isdir('C:\\Python27\\sig\\bin'): os.makedirs('C:\\Python27\\sig\\bin')
        #if not os.path.isdir('.\sig'): os.makedirs('.\sig')
        #if not os.path.isdir('.\sig\\bin'): os.makedirs('.\sig\\bin')
        with open("..\\sig\\bin\\keys.txt",'wt') as f:
            f.write(" ".join([authKey,str(requestId),sessionKey]))
        cwd = os.getcwd()
        os.chdir("..\\sig")
        subprocess.call(["Run.bat"])
        os.chdir(cwd)
        with open("..\\sig\\bin\\sig.txt",'rt') as f:
            data=f.read()
            self.sig=eval(data)
            return hashsum._md5hash(self.sig[str(requestId)])
        raise GameError("No sig for %s"%(" ".join([authKey,str(requestId),sessionKey])))
    """
    def calcSig(self,sessionKey, requestId, authKey):
        postfix = sessionKey.split(':')[1]
        if not hasattr(self,'postfix') or self.postfix != postfix:
            self.postfix = postfix
            url = base_redirect_url+'/salt'
            #logger.info('Getting %s?postfix=%s'%(url,postfix))
            opener = urllib2.build_opener()
            response = opener.open(url, 'postfix='+postfix, timeout=8)
            if response:
                content = response.read()
                response.close()
            else:
                raise GameError("Cannot load salt swf")
            self.functions = swf2functions(content,postfix,self.__selected_site)
        sig = sessionKey + str(requestId) + authKey
        saltFunction_sig = sig
        for f in self.functions:
            saltFunction_sig = f(saltFunction_sig)
        sig += saltFunction_sig
        sig = (game_state.hashsum)._md5hash(sig)
        return sig      
        
    def _generateRequestId(self):
        self.__request_id += 1

    def setRequestId(self, request_id):
        self.__request_id = request_id

    def _getSessionKey(self):
        return self.__session.getSessionKey()

    def setSessionKey(self, session_key):
        self.__session.setSessionKey(session_key)

    def set_auth_key(self, auth_key):
        self.__session.set_auth_key(auth_key)

class Request():
    '''
    This class represents a POST body ready to be send via HTTP
    '''
    def __init__(self, data):
        self.__data = data

    def __str__(self):
        return str(self.__data)

    def getData(self):
        return self.__data

    def send(self, connection):
        '''
        Sends request data to server,
        handles redirect
        Returns response as dict
        '''
        global base_redirect_url
        response = self.send_request_get_response(connection)
        if 'redirect' in response:
            #if not os.path.isdir('C:\\Python27\\sig'): os.makedirs('C:\\Python27\\sig')
            #if not os.path.isdir('C:\\Python27\\sig\\bin'): os.makedirs('C:\\Python27\\sig\\bin')
            #  if not os.path.isdir('.\sig'): os.makedirs('.\sig')
            #  if not os.path.isdir('.\sig\\bin'): os.makedirs('.\sig\\bin')        
            #with open("..\\sig\\bin\\url.txt",'wt') as f:
            #    f.write(response['redirect'])
            base_redirect_url = response['redirect']
            server_url = response['redirect'] + '/go'
            connection.setUrl(server_url)
        if 'cmd' in response:
            if response['cmd'] == 'REDIRECT':
                # send request again with new url
                response = self.send_request_get_response(connection)
            elif response['cmd'] == 'ERR':
                error_msg = response["msg"]
                logger.error(error_msg)
                # TODO send error to the game server
                # open('error_log.txt','a').write("Connection: " + str(self.getData())+'\nResponse: '+str(response)+'\n\n')
                logger.info('Connection : ' + str(self.getData()))
                logger.info('Response : ' + str(response))
                raise GameError('Game server returned error: ' + error_msg)
        return response

    def send_request_get_response(self, connection):
        return Response(connection.sendRequest(self.getData())).getDict()


class GameError(Exception): pass


class Response():
    '''
    This class represents a response
    '''
    def __init__(self, response_string):
        if response_string != None and '$' in response_string:
            crc, response = response_string.split("$", 1)
            if(calcCRC(response) != crc):
                raise ValueError("CRC is invalid: " + crc)
        else:
            response = response_string
        self.__response = json.loads(response)
        
        # if 'state' in self.__response:
            # if 'buffs' in self.__response['state']:
                # aaa = self.__response['state']['buffs']['list']
                # for k in aaa:
                  # # if ('HARVEST' in k['item']) or ('DIGGER' in k['item']) or ('COOK' in k['item']):
                  # if 'BUFF_FIX_' in k['item']:
                    # _exp_mins = float(k['expire']['endDate'])/60000.0
                    # _exp_hrs = _exp_mins//60
                    # if _exp_hrs>0:
                        # print '*** ', k['item'], '- time %02d:%02d' % (_exp_hrs, _exp_mins - _exp_hrs*60)

    def getDict(self):
        return self.__response


def _getInitialId():
    '''
    flash.utils.getTimer() called to get initial request id.
    http://help.adobe.com/en_US/FlashPlatform/reference/
    actionscript/3/flash/utils/package.html#getTimer()
    varies randomly from 40 to 60
    '''
    random.seed()
    return random.randrange(40, 60)


def _getDataKeyOrder(message_type):
    keys = []
    if message_type == 'TIME':
        keys = ['auth', 'type', 'clientVersion', 'user',  'id', 'key' ]
    if message_type == 'START':
        keys = [
            'id',
            'sig',
            'clientTime',
            'serverTime',
            'info',
            'type',
            'user',
            'ad',
            'lang',
        ]
    if message_type == 'EVT':
        keys = [
            'user',
            'type',
            'id',
            'sig',
            'events',
            'time'
        ]
    return keys
Подскажите, кто знает где что закомментить.
  Ответить с цитированием
Старый 22.01.2017, 16:23   #5460
 Разведчик
Аватар для greyzza
 
greyzza никому не известный тип
Регистрация: 25.02.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
закомментить.

закоментить не прокатит

надо calcSig в Factory изменить на старую калькуляцию сиг
Цитата:
def calcSig(self, sessionKey, requestId, authKey):
sig = sessionKey + str(requestId) + authKey
result = str(len(sig)) + hashsum._md5hash(sig + "stufff...")
salt13 = str(len(sig) * 17 + 13)
result += hashsum._md5hash(salt13 + str(len(sig))+ str(len(salt13)))
result += str(reduce(lambda res, _: res + (ord(_) & 250), sig, 0))
sig += result
sig = hashsum._md5hash(sig)
return sig


Последний раз редактировалось greyzza; 22.01.2017 в 16:34.
  Ответить с цитированием
Ответ


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

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, время: 08:19.

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