ребята...короче я уже свихнулся конкретно...но не запускается новый бот хоть убей..а с майлом так это вообще пи...ц полный ну х..й знает как и чего что запиливать..может есть человек кто доведет до меня,ну не понимаю я пайтон и все...за ранее благодарю.))
Пока внятно не объяснишь, что означает "не запускается", помочь тебе никто не сможет. Все шаги по запуску уже расписаны по несколько раз.
новая проблемка появилвсь...
запускаю все тоже самое но на виндоус сервер 2008р
Цитата:
You selected "user1"
You selected "RECIPE_12"
You selected "P_15"
Exception in thread Thread-1:
Traceback (most recent call last):
File "C:\Python27\lib\threading.py", line 808, in __bootstrap_inner
self.run()
File "C:\Users\Administrator\Desktop\Zombot\app.py" , line 35, in run
self.run_function(self)
File "C:\Users\Administrator\Desktop\Zombot\main.py ", line 81, in run_game
Game(site, UserPrompt(gui_input), gui_input=gui_input,user_settings=settings
).start()
File "C:\Users\Administrator\Desktop\Zombot\game_engine .py", line 389, in star
t
start_response = self.__game_initializer.start()
File "C:\Users\Administrator\Desktop\Zombot\game_engine .py", line 169, in star
t
session_key, server_time = self.get_time()
File "C:\Users\Administrator\Desktop\Zombot\game_engine .py", line 179, in get_
time
self.__request_sender = self.__create_request_sender()
File "C:\Users\Administrator\Desktop\Zombot\game_engine .py", line 186, in __cr
eate_request_sender
api_user_id, game_auth_key, api_access_token, connection = self.__site.get_g
ame_params()
File "C:\Users\Administrator\Desktop\Zombot\vkutils.py" , line 31, in get_game_
params
params = self.getAppParams('612925')
File "C:\Users\Administrator\Desktop\Zombot\vkutils.py" , line 15, in getAppPar
ams
session_cookies = self._getSessionCookies()
File "C:\Users\Administrator\Desktop\Zombot\vkutils.py" , line 80, in _getSessi
onCookies
cookies_are_valid = self._validateSessionCookies(session_cookies)
File "C:\Users\Administrator\Desktop\Zombot\vkutils.py" , line 75, in _validate
SessionCookies
valid = self.getAppParams(1, session_cookies) is not None
File "C:\Users\Administrator\Desktop\Zombot\vkutils.py" , line 27, in getAppPar
ams
return json.loads(params)
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 381, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (
char 1)
вот такое вот получается..., на основном компе работает, а на сервере отказывается...
Добавлено через 11 часов 27 минут
п.с. комрады мб ёлки кто нить прикрутил?
Последний раз редактировалось ichi88; 11.08.2013 в 11:09.
Причина: Добавлено сообщение
2013-08-12 06:36:18 INFO User lokanaft killed proccess (32237): { PARENT [32221] /bin/sh -c cd /home/l/lokanaft/zombot/zombot/src ; python main.py ; echo 1 >> ~/cron }
2013-08-12 06:36:18 INFO User lokanaft killed proccess (32237): python main.py
2013-08-12 06:36:18 INFO User lokanaft proccess 32237 used CPU 60.22 > 60 seconds during its lifetime
Спасибо всем, и персонально спасибо AnonProger, Reydan-46, py13 теперь бот умеет собирать/сеять урожай; крутить рулетки/аиста; варить/собирать сваренное; собирать пряники и подарки, при необходимости ходить по островам.
Будут повторы от предыдущих сообщений, но хотелось собрать инфу в одном месте:
1. Скачал последнюю версию бота с githab
Цитата:
git clone [Ссылки могут видеть только зарегистрированные пользователи. ]
Для хождения по островам в файл src\game_actors_and_handlers\location.py
вставил код:
Код:
def __init_visit_queue(self):
if not hasattr(self, '_visit_queue'):
self._visit_queue = collections.deque()
# Только определённые локации
# Главный, Изумрудный, Омега, Полярный(главный и рулетки)
#locations_only=[u'main', u'isle_emerald', u'isle_omega', u'isle_polar']
# Деревья
#locations_only=[u'isle_03', u'isle_x', u'isle_faith', u'isle_hope', u'isle_scary', u'isle_sand', u'isle_wild', u'isle_dream', u'isle_scarecrow', u'isle_elephant', u'isle_monster']
# Урожай и повора
locations_only=[u'isle_emerald', u'main', u'main', u'main', u'main',]
if (locations_only==[]):
# Запрет платных островов
locations_nfree = ['isle_01', 'isle_small', 'isle_star', 'isle_large', 'isle_moon', 'isle_giant', 'isle_xxl', 'isle_desert']
# Запрет пещер
locations_nwalk = ['un_0'+str(x+1) for x in range(9)]
# Прочие запреты
#locations_nother = []
for location in self._get_game_state().get_state().locationInfos:
if (location.locationId not in locations_nfree) and (location.locationId not in locations_nwalk) and (location.locationId not in locations_nother):
self._visit_queue.appendleft(location.locationId)
else:
for location in locations_only:
self._visit_queue.appendleft(location)
2. Для сбора пряников в файл src\game_actors_and_handlers\plants.py в процедуре def perform_action(self): сразу за ground.item = unicode(seed_item.id) был добавлен кусок кода:
Код:
ny = self._get_game_location().get_all_objects_by_type('newYearTree')
if len(ny)>0:
for ny_tree in ny:
for user0 in ny_tree.users:
self._get_events_sender().send_game_events([{"type":"newYearTree","action":"applyNewYearGift","objId":ny_tree.id,"index":0}])
logger.info(u'пряник от %s' % (user0.id))
3. Для того что бы крутил рулетку в аисте в src\game_actors_and_handlers\roulettes.py после
Код:
if hasattr(game, 'playCost'):
play_cost = game.playCost
Код:
S57=None
for _item in self._get_game_state().get_state().storageItems:
if _item.item == '@S_57':
S57=_item
break
if building_item.id == 'B_TREE_STORK' and game_id == 'B_TREE_STORK_ROULETTE' and S57.count>=25:
new_item = S57
self._get_game_state().get_state().storageItems.remove(S57)
new_item.count -= 25
self._get_game_state().get_state().storageItems.append(new_item)
play_cost = None
4. Для правильного отображения мозгов в файле src\game_state\brains.py меняем процедуру:
Код:
def get_total_brains_count(self):
brains_count = self.__game_state.brainsCount
for buyed_brain in self.__game_state.buyedBrains:
brains_count += buyed_brain.count
for burySlot in self.__game_state.burySlots:
if (hasattr(burySlot, u"user") is True):
brains_count += 1
return brains_count
все переделанные файлы прикрепил к сообщению, можно их переименовать в *.py и раскидать по папкам.
Еще бы хотелось что бы он научился крутить платные рулетки, такие как адмирал и фруктовые автоматы автоматы.
Последний раз редактировалось Anch665; 13.08.2013 в 09:17.
Anch665, крутить платные рулетки ИМХО лишнее. Можно лично для себя их включать (будет решение так же как и с аистом), либо включить полностью, удалить красное
Код:
if (
next_play and
self._get_timer().has_elapsed(next_play) and
play_cost is None
):
Будет крутить всё и вся. Не забывайте что если ресурсы у одной рулетки закончатся то на ней будет крашится скрипт.
Anch665, крутить платные рулетки ИМХО лишнее. Можно лично для себя их включать (будет решение так же как и с аистом), либо включить полностью, удалить красное
Код:
if (
next_play and
self._get_timer().has_elapsed(next_play) and
play_cost is None
):
Будет крутить всё и вся.
Ага, и постоянно выпадать с ingame error, если рулетка уже прокручена.
Пожалуйста, хватит делать неполноценные, ненастраиваемые изменения. Либо отправляйте пуллреквесты на github, либо создавайте свою сборку.
Прошу не пинать сильно так как в питоне ноль, можете подсказать куда смотреть и что делать?
Цитата:
2013 (c) github.com/Vanuan/zombot
version 0.9.2 stable
2013-08-13 20:51:06,908 Выбираем пользователя...
Select user:
1: vk
2: mr
1
You selected vk
2013-08-13 20:51:10,694 Логинимся...
2013-08-13 20:51:20,713 Загружаем остров...
Traceback (most recent call last):
File "main.py", line 93, in <module>
run_game()
File "main.py", line 74, in run_game
Game(site, UserPrompt(gui_input), gui_input=gui_input).start()
File "C:\bot\src\game_engine.py", line 321, in start
start_response = self.__game_initializer.start()
File "C:\bot\src\game_engine.py", line 167, in start
start_response = self.start_game(server_time, session_key)
File "C:\bot\src\game_engine.py", line 197, in start_game
command = self.__site.create_start_command(server_time, client_time)
File "C:\bot\src\vkutils.py", line 43, in create_start_command
command = GameSTART(lang=u'en', info=self._getUserInfo(),
File "C:\bot\src\vkutils.py", line 62, in _getUserInfo
my_country = api.places.getCountryById(cids=int(info['country']))[0]
IndexError: list index out of range
Подскажите пожалуйста, как сделать (подробнее) чтобы после ошибки, бот сам перезапускался.
Ну или где именно нужно что изменить чтобы бот перезапускался через определенный интервал
После установки страны на Россию с домашнего компа заработало, пробую с работы вываливается:
Цитата:
2013 (c) github.com/Vanuan/zombot
version 0.9.2 stable
2013-08-14 11:34:42,102 Выбираем пользователя...
Select user:
1: vk
2: mr
1
You selected vk
2013-08-14 11:34:44,150 Логинимся...
2013-08-14 11:34:51,506 Загружаем остров...
Traceback (most recent call last):
File "main.py", line 93, in <module>
run_game()
File "main.py", line 74, in run_game
Game(site, UserPrompt(gui_input), gui_input=gui_input).start()
File "C:\zb\src\game_engine.py", line 321, in start
start_response = self.__game_initializer.start()
File "C:\zb\src\game_engine.py", line 164, in start
session_key, server_time = self.get_time()
File "C:\zb\src\game_engine.py", line 174, in get_time
self.__request_sender = self.__create_request_sender()
File "C:\zb\src\game_engine.py", line 181, in __create_request_sender
api_user_id, game_auth_key, api_access_token, connection = self.__site.get_g
ame_params()
File "C:\zb\src\vkutils.py", line 31, in get_game_params
params = self.getAppParams('612925')
File "C:\zb\src\vkutils.py", line 27, in getAppParams
return json.loads(params)
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 383, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded