Download items...
Items downloaded!
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:\ZomBot\Anch\app.py", line 35, in run
self.run_function(self)
File "main.py", line 79, in run_game
Game(site, settings, UserPrompt(gui_input), gui_input=gui_input).start()
File "C:\ZomBot\Anch\game_engine.py", line 491, in start
self.eventLoop()
File "C:\ZomBot\Anch\game_engine.py", line 530, in eventLoop
self.perform_all_actions()
File "C:\ZomBot\Anch\game_engine.py", line 624, in perform_all_actions
actor.perform_action()
File "C:\ZomBot\Anch\game_actors_and_handlers\friend_dig.py", line 32, in perf
orm_action
curuser = self._get_options()[0][0]
File "C:\ZomBot\Anch\game_actors_and_handlers\base.py", line 12, in _get_optio
ns
return self.__options
AttributeError: 'FriendDigger' object has no attribute '_BaseActor__options'
[Ссылки могут видеть только зарегистрированные пользователи. ]
Download items...
Items downloaded!
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:\ZomBot\Anch\app.py", line 35, in run
self.run_function(self)
File "main.py", line 79, in run_game
Game(site, settings, UserPrompt(gui_input), gui_input=gui_input).start()
File "C:\ZomBot\Anch\game_engine.py", line 491, in start
self.eventLoop()
File "C:\ZomBot\Anch\game_engine.py", line 530, in eventLoop
self.perform_all_actions()
File "C:\ZomBot\Anch\game_engine.py", line 624, in perform_all_actions
actor.perform_action()
File "C:\ZomBot\Anch\game_actors_and_handlers\friend_dig.py", line 32, in perf
orm_action
curuser = self._get_options()[0][0]
File "C:\ZomBot\Anch\game_actors_and_handlers\base.py", line 12, in _get_optio
ns
return self.__options
AttributeError: 'FriendDigger' object has no attribute '_BaseActor__options'
[Ссылки могут видеть только зарегистрированные пользователи. ]
ну это уж очень старый модуль....да и энджин у тебя другой да и вообще бот не тот как я понял....
ZomBot Snow [Python] (Клиент для игры Зомби ферма)
Цитата:
Сообщение от VtoroyPrihod
Привет вам.
Ребят, нужна помощь.
Что нужно прописать в батнике, чтоб после ошибки перезапускался бот?
у меня так:
PHP код:
@echo off
color 0A
title Started
del error_log.txt
del unknownEvent.txt
:back
..\Python -B main.py 1
rem pause
echo %date% %time%>>c:\ZomBotRlog.txt
goto back
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Миша 89
Привет, мне нужна помощь. Я хотел поставить переделанный с бамбука
которую зделала GirlKris (большое спасибо ей.), что то не получается.
Ставил так
в файле game_engine.py
from game_actors_and_handlers.building_track import BuildingTrack
actor_classes = [
BuildingTrack, #Ракета толпой ставим и прадаем
]
а фаил building_track.py в папку game_actors_and_handlers
посоветуйте как зделать правильно
Ты вставляя
PHP код:
from game_actors_and_handlers.building_track import BuildingTrack
разорвал код. Там в преведущей строке в конце \, это значит строка не закончина и ниже продолжится.
Добавлено через 54 минуты
Вы до сих пор кипятите?
Давно уже переделано на обмен не по одной.
+автоопределение пустого места
PHP код:
class BuildingBuyer(BaseActor):
def perform_action(self):
location_id = "main" # на каком острове
min_money = 1800000000 # оставляем денег
num = 100 # партиями по ... шт.
building_id = "B_ROCKET"
# зоны для домашнего
submap = [
u'снизу от дороги',
u'сверху от дороги',
u'за забором',
u'на горе'
]
#free_x = 95 # Координаты пустого места
#free_y = 5
current_loc = self._get_game_state().get_location_id()
#logger.info(u"мы на острове "+str(current_loc))
if current_loc == location_id:
if self._get_game_state().get_state().gameMoney < min_money: return
build_cost = self._get_item_reader().get(building_id).buyCoins
build_sell = self._get_item_reader().get(building_id).sellCoins
xp = self._get_item_reader().get(building_id).xp
next_id = max([_i.maxGameObjectId for _i in self._get_game_state().get_state().locationInfos]) + 1
for object in self._get_game_location().get_game_objects():
if object.id > next_id: next_id = object.id
next_id += 1
need = self._get_item_reader().get(building_id)
space_crd = self.space(current_loc, need, submap)
if space_crd == []: return 1
k = space_crd[0]
if len(k) == 5:
x = int(k[:3])
y = int(k[3:])
elif len(k) == 4:
if current_loc == u'main' and int(k[:2])<13:
x = int(k[:3])
y = int(k[3:])
else:
x = int(k[:2])
y = int(k[2:])
elif len(k) == 2:
x = int(k[:1])
y = int(k[1:])
else:
if current_loc != u'main' and (k[0] == '8' or k[0] == '9'):
x = int(k[:1])
y = int(k[1:])
else:
x = int(k[:2])
y = int(k[2:])
logger.info(u'Свободное место для объекта: x=%d, y=%d'% (x,y))
buy_rocket = {"x":x,"action":"buy","y":y,"itemId":building_id,"type":"item","objId":next_id}
sell_rocket = {"action":"sell","type":"item","objId":next_id}
self._event = []
self.expa = 0
level_start = self._get_game_state().get_state().level
while self._get_game_state().get_state().gameMoney-(build_cost-build_sell) > min_money:
self._event.append(buy_rocket)
self._event.append(sell_rocket)
self._get_game_state().get_state().gameMoney -= (build_cost-build_sell)
if len(self._event)/2 > num-1:
self.events_send()
self.events_send()
if self.expa:
logger.info(u'Обменяли всего %d ракет! Опыта: %d '% (self.expa,xp*self.expa))
if level_start > 67:
logger.info(u'Уровней прибавилось %f'% (round(float(xp*self.expa)/610000, 2)))
def space(self, location, need, submap=[]):
for rect in list(need.rects):
if rect.rectW > 0 and rect.rectH > 0:
need.w = int(rect.rectW)
need.h = int(rect.rectH)
#перебор объектов на острове
objects = self._get_game_location().get_game_objects()
for object in list(objects):
if not hasattr(object, 'x') or not hasattr(object, 'item'):
continue
x = object.x
y = object.y
if not object.item in obj_cache:
object_item = self._get_item_reader().get(object.item)
obj_cache[object.item] = object_item
else:
object_item = obj_cache[object.item]
h = rect.rectH
if rect.rectX < 0:
x = int(x) + rect.rectX
w = rect.rectW + (rect.rectX*-1)
else:
w = rect.rectW + rect.rectX
if rect.rectY < 0:
y = int(y) + rect.rectY
h = rect.rectH + (rect.rectY*-1)
else:
h = rect.rectH + rect.rectY
for ix in range(w):
for iy in range(h):
k = str(int(x) + ix)+''+str(int(y) + iy)
if not k in bad_crd:
bad_crd.append(k)
W = crd['x2'] - crd['x1'] - need.w + 2
H = crd['y2'] - crd['y1'] - need.h + 2
for iw in range(W):
iw += crd['x1']
for ih in range(H):
ih += crd['y1']
if (str(iw)+''+str(ih)) in bad_crd: #занято
continue
good = 1
add = []
for ix in range(need.w):
for iy in range(need.h):
k = str(iw+ix)+''+str(ih+iy)
if k in bad_crd: #занято
good = 0
break
else:
add.append(k)
if good == 0:
break
if good == 1:
#logger.info(u'Свободные '+need.id+u' на X: '+str(iw)+u', Y: '+str(ih))
space_crd.append(str(iw)+''+str(ih))
bad_crd.extend(add)
return space_crd
def get_coords(self, ostrov, submap=[]):
# Map world Домашний
if(ostrov in ['main']):
map = [ str(i)+''+str(j) for i in range(48,62) for j in range(12,48)]
add = [ str(i)+''+str(j) for i in range(54,60) for j in range(48,100)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(62,112) for j in range(30,48)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(14,62) for j in range(0,12)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(112,128) for j in range(30,112)]
map.extend(add)
if submap != []:
if not u'снизу от дороги' in submap:
add = [ str(i)+''+str(j) for i in range(14,54) for j in range(48,100)]
map.extend(add)
if not u'сверху от дороги' in submap:
add = [ str(i)+''+str(j) for i in range(60,112) for j in range(48,100)]
map.extend(add)
if not u'за забором' in submap:
add = [ str(i)+''+str(j) for i in range(14,48) for j in range(12,48)]
map.extend(add)
if not u'на горе' in submap:
add = [ str(i)+''+str(j) for i in range(62,128) for j in range(0,30)]
map.extend(add)
return {'x1':14, 'x2':127, 'y1':0, 'y2':99}, map
# Map isle_01 Веры, Мечты
if(ostrov in ['isle_dream', 'isle_faith']):
map = [ str(i)+''+str(j) for i in range(14,16) for j in range(14,16)]
add = [ str(i)+''+str(j) for i in range(12,14) for j in range(14,64)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(12,18) for j in range(74,76)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(40,82) for j in range(74,76)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(82,84) for j in range(72,76)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(82,84) for j in range(14,22)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(80,84) for j in range(12,14)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(12,70) for j in range(12,14)]
map.extend(add)
return {'x1':12, 'x2':83, 'y1':12, 'y2':75}, map
# Map isle_02 Альфа, Омега, Пик Админа, Ужасный, Чудовища, Майя, звёздный, гигантов
if(ostrov in ['isle_alpha', 'isle_omega', 'isle_scarecrow', 'isle_elephant', 'isle_monster', 'isle_02', 'isle_star', 'isle_giant']):
map = [ str(i)+''+str(j) for i in range(10,12) for j in range(10,12)]
add = [ str(i)+''+str(j) for i in range(10,12) for j in range(42,44)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(42,44) for j in range(42,44)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(42,44) for j in range(10,12)]
map.extend(add)
return {'x1':10, 'x2':43, 'y1':10, 'y2':43}, map
# Map isle_04 Надежды, Страшный
if(ostrov in ['isle_hope', 'isle_scary']):
map = [ str(i)+''+str(j) for i in range(12,14) for j in range(12,14)]
add = [ str(i)+''+str(j) for i in range(46,50) for j in range(12,14)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(48,50) for j in range(34,42)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(48,50) for j in range(72,74)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(12,20) for j in range(72,74)]
map.extend(add)
return {'x1':12, 'x2':49, 'y1':12, 'y2':73}, map
# Map isle_05 Город-призрак, Секретный
if(ostrov in ['isle_emerald', 'isle_01']):
map = [ str(i)+''+str(j) for i in range(16,20) for j in range(12,16)]
add = [ str(i)+''+str(j) for i in range(70,72) for j in range(30,38)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(70,72) for j in range(70,72)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(16,18) for j in range(64,72)]
map.extend(add)
return {'x1':16, 'x2':71, 'y1':12, 'y2':71}, map
# Map isle_snow1 Дремучий, Мобильный, Маленькой ёлочки, Огромной ёлки
if(ostrov in ['isle_wild', 'isle_mobile', 'isle_small', 'isle_xxl']):
map = [ str(i)+''+str(j) for i in range(8,12) for j in range(6,8)]
add = [ str(i)+''+str(j) for i in range(8,10) for j in range(8,10)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(42,46) for j in range(6,8)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(44,46) for j in range(8,10)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(44,46) for j in range(42,46)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(42,44) for j in range(44,46)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(8,10) for j in range(44,46)]
map.extend(add)
return {'x1':8, 'x2':45, 'y1':6, 'y2':45}, map
# Map isle_snow2 Полярной ночи, НЛО, Лысая гора, Большой ёлки, Лунный, Вишнёвый
if(ostrov in ['isle_polar', 'isle_ufo', 'isle_halloween', 'isle_large', 'isle_moon', 'isle_light']):
map = [ str(i)+''+str(j) for i in range(8,12) for j in range(6,10)]
add = [ str(i)+''+str(j) for i in range(8,10) for j in range(44,46)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(42,46) for j in range(44,46)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(44,46) for j in range(42,44)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(42,46) for j in range(6,8)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(44,46) for j in range(8,10)]
map.extend(add)
return {'x1':8, 'x2':45, 'y1':6, 'y2':45}, map
# Map un_09 Склад Хакера
if(ostrov in ['un_09']):
map = [ str(i)+''+str(j) for i in range(14,38) for j in range(14,16)]
add = [ str(i)+''+str(j) for i in range(46,52) for j in range(14,16)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(12,14) for j in range(14,18)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(50,52) for j in range(16,28)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(50,52) for j in range(42,74)]
map.extend(add)
add = [ str(i)+''+str(j) for i in range(12,14) for j in range(64,74)]
map.extend(add)
return {'x1':12, 'x2':51, 'y1':14, 'y2':73}, map
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось vintets; 15.10.2014 в 17:21.
Причина: Добавлено сообщение
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Ты вставляя
PHP код:
from*game_actors_and_handlers.building_track*impor t*BuildingTrack*
разорвал код. Там в преведущей строке в конце \, это значит строка не закончина и ниже продолжится.