Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от maks_maks)
Я тоже так подумал
У тебя в папке bin создался swf-файл? Должен был. Т.е. готово к работе. Тут главное не напутать с путями. Судя по всему некоторые тупо копируют выложенное и пытаются сделать рабочее нечто
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от dark-dragon
У тебя в папке bin создался swf-файл? Должен был. Т.е. готово к работе. Тут главное не напутать с путями. Судя по всему некоторые тупо копируют выложенное и пытаются сделать рабочее нечто
Ну файл то создался!
Но "запускаем: коннектится, генерит sig.txt"- инструкция!
И keys у меня тоже пустой!
По идее не должно быть такой ошибки и должен сгенерировать sig.txt
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от maks_maks)
Ну файл то создался!
Но "запускаем: коннектится, генерит sig.txt"- инструкция!
И keys у меня тоже пустой!
По идее не должно быть такой ошибки и должен сгенерировать sig.txt
кеу пустой, потому как заполняется при выполнении бота. сиги генерятся уже на основании данных из кеу.
Переходи к следующему этапу - правке самого бота
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от skirill9422
Такая же ошибка при попытке запустить бот на пиратском острове. Не знаешь как поправить?
Это присутствует в 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 у Вас, всё ли в порядке с отступами.
Shurup240, dark-dragon, maks_maks), файл keys.txt конечно же нужен заполненный корректными значениями. Но если всё компилируется, можно поправить бота, он сам сделает заполненный keys.txt, с которым уже можно тестить as3, ну, пару запусков
Цитата:
Сообщение от dark-dragon
все работаеть каг швейцарские часики. Хоть почищу новый остров без проблем
Без корпуса. Чуть пылинка попала и всё останавливается.
А что, правда питоновый бот умеет рубить 1 остров?? Новости. Я у себя workers.py часа 3 правил, пока всё не заработало на одном острове без перезагрузки game_state.
Цитата:
Сообщение от dark-dragon
Каг FlashDevelop'у скармливать правильно относительные пути
Что-то нашёл.
"Pointing to the directory from which the application was invoked
You can get the directory location from which an application is invoked, by checking the currentDirectory property of the InvokeEvent object dispatched when the application is invoked.", это отсюда
[Ссылки могут видеть только зарегистрированные пользователи. ]
Не пробовал.
При этом, если ещё собрать .swf в .exe, то питонового бота вроде как можно сделать переносимым.
Последний раз редактировалось megabyte0; 03.08.2014 в 15:48.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
файл keys.txt конечно же нужен заполненный корректными значениями. Но если всё компилируется, можно поправить бота, он сам сделает заполненный keys.txt, с которым уже можно тестить as3, ну, пару запусков
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Shurup240
А как его заполнить?
Написали же поправить бота и запустить!
Цитата:
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 450, in start
start_response,self.__friendsid,self.__server_time = self.__game_initializer
.start()
File "C:\ZombiFarmInterface\game_engine.py", line 165, in start
start_response, friendsid = self.start_game(server_time, session_key)
File "C:\ZombiFarmInterface\game_engine.py", line 198, in start_game
return self.__request_sender.send(command),friendsid
File "C:\ZombiFarmInterface\game_engine.py", line 672, in send
request = self.__factory.createRequest(data)
File "C:\ZombiFarmInterface\message_factory.py", line 99, in createRequest
request_data['data'] = self.__createDataValue(data, data_keys_order)
File "C:\ZombiFarmInterface\message_factory.py", line 124, in __createDataValu
e
self.__addSigOrAuth(data_value)
File "C:\ZombiFarmInterface\message_factory.py", line 136, in __addSigOrAuth
objectData["sig"] = self.calcSig(sessionKey, self.__request_id, auth_key)
AttributeError: Factory instance has no attribute 'calcSig'
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
"Дети, не совайте витаминки в нос"? (а они бы без этого не додумались)
На мой взглад, swf-код недостаточно обфусцирован. Там присутствует деление на классы и логика.
А вот незашифрованность протокола я считаю плюсом. Видимо разрабы понимали, что всё равно систему шифрования сломают, и будут продавать ботов - когда на открытой и человеко-читаемой заработать трудно. Так что делая сложнее они просто выкапывают поглубже могилу зф. Не больше
Хотя я с уважением отношусь и к программистам сервера - он неплохие штуки выдерживал, по поводу краевых условий,
и к программистам клиента - одно то, что сразу при посылке запроса вешается обработчик на ответ - это так удобно. А не как в питоновом боте - все события в кучу и потом разгребаются. Это медленнее.
Разве что я могу быть недоволен политикой администрации - банить пользующих баги сервера вместо их починки. Но это их дело, значит им так было проще, или зачем-то нужно. Я не лезу.
спасибо тебе, сказал же приеду домой доделаю))
работает как часы)
[Ссылки могут видеть только зарегистрированные пользователи. ]
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
и к программистам клиента - одно то, что сразу при посылке запроса вешается обработчик на ответ - это так удобно. А не как в питоновом боте - все события в кучу и потом разгребаются. Это медленнее.
Кстати, я у себя это реализовывал для поиска кладов. Дело в том, что уведомление о кладе (при удаленном копании) приходит не с номером объекта, а с номером ID запроса, который геренируется где-то далеко дальше... Так что трудно было связать. Пришлось делать задержку в пару секунд (чтобы гарантированно пришел ответ именно на конкретных запрос копания), потом обрабатывался ответ на предмет "уведомления о кладе", и в положительно случае копался именно этот объект пока не переставало приходить это уведомление. Работает, но медленно, так как каждый запрос должен дождаться ответа. Сейчас это дело можно немножко ускорить с "многоразовым копанием", но все равно будет медленно.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
Пасиба за инфу. Сильной окажется защита, когда тем, кто её обошёл, просто надоест делиться с остальными, чтобы разрабы всё опять меняли? Я не понимаю, кто в конце концов помешает сделать виртуальную swf машину, где будет выполняться только то из swf, что нужно. Если до этого дело дойдёт. Если разработчики сами раньше этого не поймут, что такой клиент необходим тоже.
Значит, придётся прогать А водяной знак прикольный на схеме
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
Без корпуса. Чуть пылинка попала и всё останавливается.
А что, правда питоновый бот умеет рубить 1 остров?? Новости. Я у себя workers.py часа 3 правил, пока всё не заработало на одном острове без перезагрузки game_state.
Что-то нашёл.
"Pointing to the directory from which the application was invoked
You can get the directory location from which an application is invoked, by checking the currentDirectory property of the InvokeEvent object dispatched when the application is invoked.", это отсюда
[Ссылки могут видеть только зарегистрированные пользователи. ]
Не пробовал.
При этом, если ещё собрать .swf в .exe, то питонового бота вроде как можно сделать переносимым.
1. Умеет давно уже - отключить только переход по локам нужно.
2. угу. всего одна строка кода на каждое файло добавляеццо:
Код:
var dir:File = File.applicationDirectory;
var file:File = new File(dir.nativePath + "\\sig.txt");
файл создастся/прочитается рядом с swf-кой (ну или exe-шником, если собрать его)
Последний раз редактировалось dark-dragon; 03.08.2014 в 16:30.