Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Код:
Traceback (most recent call last):
File "main.py", line 108, in <module>
run_game()
File "main.py", line 90, in run_game
Game(site, settings, UserPrompt(gui_input), gui_input=gui_input).start()
File "D:\Programs\Pyton273\zombot\game_engine.py", line 533, in start
self.eventLoop()
File "D:\Programs\Pyton273\zombot\game_engine.py", line 572, in eventLoop
self.perform_all_actions()
File "D:\Programs\Pyton273\zombot\game_engine.py", line 675, in perform_all_actions
actor.perform_action()
File "D:\Programs\Pyton273\zombot\game_actors_and_handlers\plants.py", line 138, in perform_action
self._get_events_sender().send_game_events(pick_events)
File "D:\Programs\Pyton273\zombot\game_engine.py", line 166, in send_game_events
game_response = self.__request_sender.send(command)
File "D:\Programs\Pyton273\zombot\game_engine.py", line 742, in send
return dict2obj(request.send(self.__connection))
File "D:\Programs\Pyton273\zombot\message_factory.py", line 199, in send
response = self.send_request_get_response(connection)
File "D:\Programs\Pyton273\zombot\message_factory.py", line 221, in send_request_get_response
return Response(connection.sendRequest(self.getData())).getDict()
File "D:\Programs\Pyton273\zombot\message_factory.py", line 232, in __init__
if '$' in response_string:
TypeError: argument of type 'NoneType' is not iterable
Помогите с ошибкой, вылазит на "Город-призрак"
Хотя работало все, бред какой-то.
Последний раз редактировалось АлехВК; 03.06.2015 в 23:00.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vintets
Ты хоть покажи файлы.
message_factory, plants и возможно game_engine
Ну и settings.ini до кучи, без паролей естественно.
Ошибка ушла, похоже она временно возникает на ком угодно, хотя причину нада бы выяснить и избавится от подобного.
Кстати. есть просьба, исправь немного GUI для мелких разрешений, на ноуте не влазит до нижней части никак не достать. Прокрутка и масштабируемое окно решили бы все проблемы
Добавлено через 9 часов 25 минут
Вопрос.
Кто готов начать бота еще раз?
1. у кого-то реализована авто подгрузка модулей? типа пикапса (что бы не приходилось для каждого модуля добавлять строку/и в геймсенжинях) ?
2. нужно переписать сетинги что бы в самих модулях достаточно было подключив модуль сетингов в дальнейшем писать settings.seed_item для получения настроек по растениям.
так же дополнить формат строки должен быть в духе
seed_item = {t:u'main':'P_33','other':'P_33'}
первая буква t включает работу модуля, не сложно описать в новопишущемся модуле
if setting.seed_item.enable=t: - погнали
с этого можно начать. и переносить модули под новый формат как и чистку самого гейм_енжени.
Последний раз редактировалось АлехВК; 05.06.2015 в 01:09.
Причина: Добавлено сообщение
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от АлехВК
так же дополнить формат строки должен быть в духе
seed_item = {t:u'main':'P_33','other':'P_33'}
.
Как же ты далёк от типов данных. Даже не понимаешь почему выбрана запись именно в таком виде как была.
Я не говорю что нельзя сделать, можно распарсить любую строку, но тогда нет смысла городить в таком виде то что ты написал.
Цитата:
Сообщение от АлехВК
не сложно описать в новопишущемся модуле
if setting.seed_item.enable=t: - погнали
И главный вопрос "зачем". Если модуль посадки всего один и он УЖЕ есть. Никто не будет писать и добавлять десятки модулей посадки.
А новые модули будут требовать новых данных и вместо изменения гэйм энжин будешь ковырять settings.py и подсовывать новый settings.ini
И новые settings.ini будут несовместимы с более старыми версиями ботов.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось vintets; 05.06.2015 в 14:31.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vintets
Как же ты далёк от типов данных. Даже не понимаешь почему выбрана запись именно в таком виде как была.
Я не говорю что нельзя сделать, можно распарсить любую строку, но тогда нет смысла городить в таком виде то что ты написал.
Я привел пример типы данных можно использовать любые, а знающий человек поймет что я хотел - первое значение t - включает бота(модуль), все остальное уже настройки самого бота(модуля).
Цитата:
Сообщение от vintets
И главный вопрос "зачем". Если модуль посадки всего один и он УЖЕ есть. Никто не будет писать и добавлять десятки модулей посадки.
А новые модули будут требовать новых данных и вместо изменения гэйм энжин будешь ковырять settings.py и подсовывать новый settings.ini
И новые settings.ini будут несовместимы с более старыми версиями ботов.
Это необходимо.
1. неоднократно было необходимо на одном боте отключить сеялку/собиралку/дарилку... и т.д. но при этом оставить ее работающей на всех других 3х акках.
2. полная совместимость. по версиям, ибо пока не появится строка как нимимум "модуль" = {t} новый модуль работать не будет, если конечно в самом модуле это описано. В то же время при ее начилии но отсутствии(удалении) модуля, она так же никак не повлияет на работу бота.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Ребят помогите, бот перестал работать. Завис на некоторое время, после перезагрузки стал выдавать следующее:
Цитата:
22:05:07.214 Находимся на острове:
22:05:07.214 * Домашний остров
22:05:07.214
Загружаем информацию о друзьях..
22:05:07.571 Собрали 267 'Рожь'
HTTP error
Traceback (most recent call last):
File "G:\zombot\src\main.py", line 128, in <module>
run_game()
File "G:\zombot\src\main.py", line 92, in run_game
Game(site, settings, UserPrompt(gui_input), gui_input=gui_input).start()
File "G:\zombot\src\game_engine.py", line 594, in start
self.eventLoop()
File "G:\zombot\src\game_engine.py", line 670, in eventLoop
self.perform_all_actions()
File "G:\zombot\src\game_engine.py", line 775, in perform_all_actions
actor.perform_action()
File "G:\zombot\src\game_actors_and_handlers\plants.py" , line 184, in perform_
action
self._get_events_sender().send_game_events(pick_ev ents)
File "G:\zombot\src\game_engine.py", line 177, in send_game_events
game_response = self.__request_sender.send(command)
File "G:\zombot\src\game_engine.py", line 989, in send
return dict2obj(request.send(self.__connection))
File "G:\zombot\src\message_factory.py", line 226, in send
response = self.send_request_get_response(connection)
File "G:\zombot\src\message_factory.py", line 252, in send_request_get_respons
e
return Response(connection.sendRequest(self.getData())).g etDict()
File "G:\zombot\src\message_factory.py", line 269, in __init__
self.__response = json.loads(response)
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
TypeError: expected string or buffer
G:\zombot\src>
UPD:
На 20й запуск бот начал работать, мистика какая то..
Последний раз редактировалось Caine; 11.06.2015 в 23:08.
Причина: Мистика...
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Робят, если кто сможет или же кто юзает на фэйсбуке бот, помогите, я не пойму, они api сделали? я сканил fiddler ом https, что то промелкивало с api, но с программой не разобрался, факто в том, что бот не работает на фэйсбуке, авторизация проходит, но потом начинаются ошибки, и из игры не выкидывает...буду благодарен любой помощи или же подсказки что и как сделать.
PHP код:
2015-06-15 06:43:10,628 Starting new HTTP connection (1): s.shadowlands.ru
2015-06-15 06:43:10,664 Загружаем остров...
2015-06-15 06:43:10,664 Starting new HTTPS connection (1): m.facebook.com
Login ok
2015-06-15 06:43:11,177 Starting new HTTPS connection (1): apps.facebook.com
{'auth': u'cc957acbdc34d76c0be7d159b005c6f7', 'uid': u'first_response', 'key': u
'1434339790020'}
2015-06-15 06:43:13,573 user is not valid
2015-06-15 06:43:13,578 Connection : {'crc': '9aca1e6b37b7de17a71475028088a51b',
'data': u'{"auth":"ea1aaba88f5e4800662b7b0fe6c9ff26","type":"TIME","clientVersi
on":1433914821,"user":"first_response","id":43,"key":"1434339790020"}'}
2015-06-15 06:43:13,579 Response : {u'msg': u'user is not valid', u'cmd': u'ERR'
, u'id': u'43'}
fbutils -
PHP код:
from connection import Connection
from settings import Settings
import requests
import re
import json
from game_state.game_types import GameSTART, GameInfo
import pymymailru
class FB():
def __init__(self, credentials):
self._credentials = credentials
def str2dict(self, val):
if type(val) is str:
res = {}
for tmp in val.replace(' ','').split(';'):
k = tmp.split('=')[0]
v = tmp.split('=')[1]
res[k] = v
return res
else:
return val
def getAppParams(self, app_id, session_cookies=None):
if session_cookies is None:
session_cookies = self._getSessionCookies()
html = requests.get('https://apps.facebook.com/' + str(app_id) + '/?fb_source=appcenter&fb_appcenter=1', cookies=self.str2dict(session_cookies)).text
# mr = Connection('https://apps.facebook.com/' + str(app_id) + '/?fb_source=appcenter&fb_appcenter=1')
# html = mr.sendRequest(None, cookies=session_cookies)
# params = list("key")
# print params;
params = {'uid': '', 'key':'', 'auth':'' }
if html:
f = html.find('name="signed_request" value="')
if f>0:
f = f + 29
t = html.find('"', f)
if (f>0) and (t>0):
params['key']=html[f:t]
f = html.find('"id":"')
if f>0:
f = f + 6
t = html.find('"', f)
def _getUserInfo(self):
'''
TODO returns user info using mailru api
'''
return GameInfo()
def _validateSessionCookies(self, session_cookies):
valid = False
if session_cookies is not None:
valid = self.getAppParams(609744,session_cookies) is not None
return valid
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
подскажите что не так почему на fb копалка заходит только к 27 друзьям из 411 друзей ? что где нужно прописать ? Всем привет разобрался с этой причиной ! ищу теперь как копать японскую коллекцию на фб ! может кто знает как правильно прописать команду чтоб японку копать заранее спасибо !
Последний раз редактировалось urss; 18.06.2015 в 14:45.
Причина: нашлось решение