Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Спасибо одному человеку очень помог восстановить простенький бот!
А вот на старом такая ошибка!
Цитата:
Download items...
Items downloaded!
Starting AIR Debug Launcher...
*** @BUFF_FIX_HARVEST_1 - time 22:14
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 810, in __bootstrap_inner
self.run()
File "C:\ZombiFarmInterface\app.py", line 35, in run
self.run_function(self)
File "C:\ZombiFarmInterface\main.py", line 79, in run_game
Game(site, settings, UserPrompt(gui_input), gui_input=gui_input).start()
File "C:\ZombiFarmInterface\game_engine.py", line 456, in start
self.save_game_state(start_response)
File "C:\ZombiFarmInterface\game_engine.py", line 509, in save_game_state
self.__game_state_ = GameState(start_response, self.__itemReader)
File "C:\ZombiFarmInterface\game_engine.py", line 231, in __init__
self.set_game_loc(game_state_event)
File "C:\ZombiFarmInterface\game_engine.py", line 266, in set_game_loc
game_state_event.location,game_state_event.gameObj ects)
TypeError: this constructor takes no arguments
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от JohnMorgan
Тут я Что стряслось?
Откомментируйте обсуждение выше, пожалуйста. Ну, про возможность сохранения salt.swf и загрузки из файла. Проблема ведь стала именно в сохранении загруженного из url контента в файл, а Вы говорили, что это возможно
Да и вообще, поправьте кто где ошибается по поводу флеша, если нетрудно/не влом Спасибо
Цитата:
Сообщение от maks_maks)
TypeError: this constructor takes no arguments
Щито? Ну, я тогда не знаю, как всё работало до.
Код:
class GameLocation():
def __init__(self, item_reader, game_location, game_objects):
Конструктор принимает 3 агрумента, которые и передаются 3. Где конструктор с нулём аргументов, я не вижу.
Последний раз редактировалось megabyte0; 03.08.2014 в 21:58.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Щито? Ну, я тогда не знаю, как всё работало до.
Код:
class GameLocation():
def __init__(self, item_reader, game_location, game_objects):
Конструктор принимает 3 агрумента, которые и передаются 3. Где конструктор с нулём аргументов, я не вижу.[/QUOTE]
Спасибо за совет!
Вытянул с простого агрумент и теперь бот работает как надо!
Большое спасибо, что помогли моим клешневидным рукам!
"zloy_gnom_2012" - отдельное спасибо!
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
Это присутствует в massage_factory.py
Код:
if 'cmd' in response:
if response['cmd'] == 'REDIRECT':
# send request again with new url
response = self.send_request_get_response(connection)
? Как я понимаю, сервер отдаёт голый REDIRECT без key в Вашем случае более одного раза. Затыкается эта дырка например, так
Код:
response = self.send(connection)
вместо последней строчки
, конечно, неоптимальное решение, зато думать не надо.
И, кстати, я не пробовал у себя именно этот вариант, может и не работать...
Ну и с отступами аккуратнее, это же питон
А вообще я бы посмотрел, как реализован метод send в классе Request у Вас, всё ли в порядке с отступами.
Вот так выглядит у меня метод send:
Код:
def send(self, connection):
'''
Sends request data to server,
handles redirect
Returns response as dict
'''
response = self.send_request_get_response(connection)
if 'redirect' in response:
with open("sig\\bin\\url.txt",'wt') as f:
f.write(response['redirect'])
server_url = response['redirect'] + '/go'
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
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от skirill9422
Вот так выглядит у меня метод send:
Совершенно так же.
Цитата:
Сообщение от skirill9422
Замена строки:
не помогла. Бот просто перестал грузить остров.
O_o Я определённо чего-то не понимаю. Ладно, идём туда, где ошибку именно показывает, и правим там
class GameInitializer():
def get_time(self):
строчку
Код:
response = self.__request_sender.send(command)
на
Код:
while True:
response = self.__request_sender.send(command)
if hasattr(response,'key') and hasattr(response,'time'):
break
При этом Request оставляем прежним, раз оно не работает с таким.
Дырку мы закрыли, а проблема решена навряд ли, потому что я не понимаю в чём она о_О
На всякий случай можно включить logging и выслать мне или сюда connection.log , последних несколько строчек, когда появляется ошибка и оно вылетает. Тогда будет яснее.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
И вновь исправлена куча ошибок и даже добавлена парочка новых: [Ссылки могут видеть только зарегистрированные пользователи. ] В этой версии бота надо добавить в bot.conf строчку: core_login 1
Иначе не работает. (
Добавлено две опции. Уберите # перед plant_list и cook_list чтобы использовалось.
# Сажать
#plant_list P_03
# Варить
#cook_list RECIPE_02
пока только один рецепт и одно растение.
Myrzekk, теперь точно должно работать. )
Lion1000+, отличная новость. Мне интересно, что на этот раз попытаются придумать разработчики.
Хыы, за рандомный посев в buy_plant.msl отвечает весь код. Код типа PHP, функции свои. zfn_plant_loclist() - отдает список растений разрешенный в данной локации. zfn_storage_data() - отдает список с содержимым всего склада. zfn_loc_getbytype() - отдает список всех растущих растений, чтобы посчитать и уже посаженные. Дальше с помощью логики изображается поиск растения в минимальном количестве.
JohnMorgan, свой сервер это хорошо, но тогда уж лучше сделать свою игру. Не подскажешь идейку? Можно тоже какую-нибудь ферму сообразить.
Последний раз редактировалось vhyrix; 04.08.2014 в 17:48.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vhyrix
куча ошибок и даже добавлена парочка новых
всё забываю сказать бот не ходит на : страшный, альфу, омегу, дремучий, мобильный, подземку..
и всё же! я не пойму как его заставить сажать то что нужно((
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
На всех островах? Я поэтому храню то, что высажено, отдельно...
привет ещё раз)
слушай, не знаешь в чём гвоздь?
бот работает работает, а потом в определённый момент просто глохнит, и помагает только перезагрузка... мне предлагали решения сменить рун файл, но ничего не помогло...
[Ссылки могут видеть только зарегистрированные пользователи. ]
Последний раз редактировалось zloy_gnom_2012; 04.08.2014 в 10:26.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от zloy_gnom_2012
привет ещё раз)
слушай, не знаешь в чём гвоздь?
бот работает работает, а потом в определённый момент просто глохнит, и помагает только перезагрузка...
[Ссылки могут видеть только зарегистрированные пользователи. ]
Тут виснет? Если да, то он просто не может достучаться до сервера взять соль. Потому что я не знаю, что тогда логично сделать, поэтому я не делаю ничо :). Ботовод тогда перезагрузит бота.
А если виснет на сборе лилий, это GameTimer надо отлаживать, он не совсем верно отдаёт ingame time (лилии собираются, пока не дозрели), хотя как именно "совсем верно", вот с точньстью до пинга, я так и не понял - у меня были расхождения в 800мс.
ignore_errors=true спасает