Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
по локам на выбор тех же рыбаков
С этим поколдуй:
Код:
# coding=utf-8
import logging
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import dict2obj, obj2dict
from game_state.game_types import GamePickPickup, GamePickItem, GamePickup
from game_actors_and_handlers.tree_plant import TreePlant
logger = logging.getLogger(__name__)
class StoragePut(BaseActor):
def perform_action(self):
num = 50 # партиями по ... шт.
current_loc = self._get_game_state().get_location_id()
storage = self._get_game_state().get_state().storageGameObjects
put_in=['@PIRATE_BOX','@PIRATE_BOX2','@BIRTHDAY_GIFT_BOX1','@BIRTHDAY_GIFT_BOX2','@BIRTHDAY_GIFT_BOX3','@BIRTHDAY_GIFT_BOX4','@BIRTHDAY_GIFT_BOX5','@SYMBOL_D_BOX']
next_id = max([_i.maxGameObjectId for _i in self._get_game_state().get_state().locationInfos] +[_m.id for _m in self._get_game_location().get_game_objects()]) + 1
num_put = 0
if current_loc=='main':
for pirate_obj in storage:
if num_put == num: break
if not hasattr(pirate_obj, 'item'): continue
if pirate_obj.item in put_in:
obj = self._get_item_reader().get(pirate_obj.item)
space_crd = self.space(current_loc, obj)
if space_crd == []: continue
if pirate_obj.count ==0:continue
if pirate_obj.count > num - num_put:run = num - num_put
else:run = pirate_obj.count
#events = []
for n in range(run):
if n < len(space_crd):
k = space_crd[n]
else:
break
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 k[0] == '8' or k[0] == '9':
x = int(k[:1])
y = int(k[1:])
else:
x = int(k[:2])
y = int(k[2:])
event = {
"x":x,
"y":y,
"action":"placeFromStorage",
"itemId":pirate_obj.item[1:],
"type":"item",
"objId":next_id}
self._get_events_sender().send_game_events([event])
logger.info(u' Выставляю %s на X:%s/Y:%s'%(obj.name,str(x),str(y)))
if pirate_obj.item == '@PIRATE_BOX' or pirate_obj.item == '@PIRATE_BOX_2':
self._get_game_state().get_state().pirate.state = 'PIRATE'
new_object=dict2obj({u'rotate':0,u'item': pirate_obj.item, u'y': str(y), u'x': str(x), u'type': obj.type, u'id': next_id})
self._get_game_state().get_state().gameObjects.append(new_object)
next_id += 1
num_put += 1
pirate_obj.count-= run
#if run == pirate_obj.count:self._get_game_state().get_state().storageGameObjects.remove(object)
#else:pirate_obj.count -= run
if num_put>0:logger.info(u" Поставили %s предметов"%(str(num_put)))
def space(self, location, need,submap=[]):
for obj in self._get_game_state().get_state().rectsObjects:
if str(need.objAnim[0])== str(obj.objAnim):
need.w = int(obj.rects.rectW)
need.h = int(obj.rects.rectH)
crd, bad_crd = self.get_coords(location, submap)
obj_cache = {}
space_crd = []
#перебор объектов на острове
objects = self._get_game_location().get_game_objects()
for object in list(objects):
if not hasattr(object, 'x') or not hasattr(object, 'item'):continue
reader_object=self._get_item_reader().get(object.item)
x = object.x
y = object.y
if object.rotate==0:ob_anim=reader_object.objAnim[0]
else:ob_anim=reader_object.objAnim[1]
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]
for rect in self._get_game_state().get_state().rectsObjects:
if ob_anim== rect.objAnim:
h=int(rect.rects.rectH)
if int(rect.rects.rectX) < 0:
x = int(x) + int(rect.rects.rectX)
w = int(rect.rects.rectW) + int(rect.rects.rectX)*-1
else:w = int(rect.rects.rectW) + int(rect.rects.rectX)
if int(rect.rects.rectY) < 0:
y = int(y) + int(rect.rects.rectY)
h = int(rect.rects.rectH) + int(rect.rects.rectY)*-1
else:h = int(rect.rects.rectH) + int(rect.rects.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:
space_crd.append(str(iw)+''+str(ih))
bad_crd.extend(add)
return space_crd
def get_coords(self, ostrov, submap=[]):
submap = [
u'снизу от дороги',
u'сверху от дороги',
#u'за забором',
#u'на горе'
]
# 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)
return {'x1':12, 'x2':83, 'y1':14, '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_03 Любви, X, Песочный, Необитаемый
if(ostrov in ['isle_03', 'isle_x', 'isle_sand', 'isle_desert']):
map = []
return {'x1':16, 'x2':65, 'y1':14, 'y2':71}, 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
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от ripton07
С этим поколдуй:
Код:
# coding=utf-8
import logging
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import dict2obj, obj2dict
from game_state.game_types import GamePickPickup, GamePickItem, GamePickup
from game_actors_and_handlers.tree_plant import TreePlant
logger = logging.getLogger(__name__)
class StoragePut(BaseActor):
def perform_action(self):
num = 50 # партиями по ... шт.
current_loc = self._get_game_state().get_location_id()
storage = self._get_game_state().get_state().storageGameObjects
put_in=['@PIRATE_BOX','@PIRATE_BOX2','@BIRTHDAY_GIFT_BOX1','@BIRTHDAY_GIFT_BOX2','@BIRTHDAY_GIFT_BOX3','@BIRTHDAY_GIFT_BOX4','@BIRTHDAY_GIFT_BOX5','@SYMBOL_D_BOX']
next_id = max([_i.maxGameObjectId for _i in self._get_game_state().get_state().locationInfos] +[_m.id for _m in self._get_game_location().get_game_objects()]) + 1
num_put = 0
if current_loc=='main':
for pirate_obj in storage:
if num_put == num: break
if not hasattr(pirate_obj, 'item'): continue
if pirate_obj.item in put_in:
obj = self._get_item_reader().get(pirate_obj.item)
space_crd = self.space(current_loc, obj)
if space_crd == []: continue
if pirate_obj.count ==0:continue
if pirate_obj.count > num - num_put:run = num - num_put
else:run = pirate_obj.count
#events = []
for n in range(run):
if n < len(space_crd):
k = space_crd[n]
else:
break
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 k[0] == '8' or k[0] == '9':
x = int(k[:1])
y = int(k[1:])
else:
x = int(k[:2])
y = int(k[2:])
event = {
"x":x,
"y":y,
"action":"placeFromStorage",
"itemId":pirate_obj.item[1:],
"type":"item",
"objId":next_id}
self._get_events_sender().send_game_events([event])
logger.info(u' Выставляю %s на X:%s/Y:%s'%(obj.name,str(x),str(y)))
if pirate_obj.item == '@PIRATE_BOX' or pirate_obj.item == '@PIRATE_BOX_2':
self._get_game_state().get_state().pirate.state = 'PIRATE'
new_object=dict2obj({u'rotate':0,u'item': pirate_obj.item, u'y': str(y), u'x': str(x), u'type': obj.type, u'id': next_id})
self._get_game_state().get_state().gameObjects.append(new_object)
next_id += 1
num_put += 1
pirate_obj.count-= run
#if run == pirate_obj.count:self._get_game_state().get_state().storageGameObjects.remove(object)
#else:pirate_obj.count -= run
if num_put>0:logger.info(u" Поставили %s предметов"%(str(num_put)))
def space(self, location, need,submap=[]):
for obj in self._get_game_state().get_state().rectsObjects:
if str(need.objAnim[0])== str(obj.objAnim):
need.w = int(obj.rects.rectW)
need.h = int(obj.rects.rectH)
crd, bad_crd = self.get_coords(location, submap)
obj_cache = {}
space_crd = []
#перебор объектов на острове
objects = self._get_game_location().get_game_objects()
for object in list(objects):
if not hasattr(object, 'x') or not hasattr(object, 'item'):continue
reader_object=self._get_item_reader().get(object.item)
x = object.x
y = object.y
if object.rotate==0:ob_anim=reader_object.objAnim[0]
else:ob_anim=reader_object.objAnim[1]
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]
for rect in self._get_game_state().get_state().rectsObjects:
if ob_anim== rect.objAnim:
h=int(rect.rects.rectH)
if int(rect.rects.rectX) < 0:
x = int(x) + int(rect.rects.rectX)
w = int(rect.rects.rectW) + int(rect.rects.rectX)*-1
else:w = int(rect.rects.rectW) + int(rect.rects.rectX)
if int(rect.rects.rectY) < 0:
y = int(y) + int(rect.rects.rectY)
h = int(rect.rects.rectH) + int(rect.rects.rectY)*-1
else:h = int(rect.rects.rectH) + int(rect.rects.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:
space_crd.append(str(iw)+''+str(ih))
bad_crd.extend(add)
return space_crd
def get_coords(self, ostrov, submap=[]):
submap = [
u'снизу от дороги',
u'сверху от дороги',
#u'за забором',
#u'на горе'
]
# 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)
return {'x1':12, 'x2':83, 'y1':14, '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_03 Любви, X, Песочный, Необитаемый
if(ostrov in ['isle_03', 'isle_x', 'isle_sand', 'isle_desert']):
map = []
return {'x1':16, 'x2':65, 'y1':14, 'y2':71}, 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
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Код:
html = requests.get('http://ok.ru//game/zm?st.cmd=appMain&st.refplace=52&st.appId=625920&st._aid=Apps_Catalog_PorltetMy&gwt.requested=2b50391c&gwt.previous=st.cmd%3DappsShowcase%26st._aid%3DNavMenu_User_Apps&p_sId=-4564360254829098098', cookies=self.str2dict(session_cookies)).text
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Люди добрые, подскажите пожалуйста как поправить переброс коллекций с одного ака на другой? есть мнение что он у меня начинает спотыкаться на баксовых коллекциях. (( И еще если кто может подскажет как поправить сбор поваров с минуткой включенной, перестало нормально работать....( Заранее благодарен!
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Макс124
Люди добрые, подскажите пожалуйста как поправить переброс коллекций с одного ака на другой? есть мнение что он у меня начинает спотыкаться на баксовых коллекциях. (( И еще если кто может подскажет как поправить сбор поваров с минуткой включенной, перестало нормально работать....( Заранее благодарен!
Код:
# coding=utf-8
import logging
from game_state.game_types import GameSellItem, GameSendGift
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import dict2obj, obj2dict
logger = logging.getLogger(__name__)
class SellBot(BaseActor):
def perform_action(self):
# Продажа
sell_items = self._get_options()['sell_item']
if sell_items<>None:
#sell_items={u'S_51':20}
#item_id=u'S_51' # Красные яблоки
#item_save_count=20
for item_id in sell_items.keys():
item_save_count=sell_items[item_id]
itm_count=self._get_game_state().count_in_storage('@'+item_id)
item_count=itm_count-item_save_count
if item_count>0:
sell_event = GameSellItem(count=long(item_count), itemId = unicode(item_id))
self._get_events_sender().send_game_events([sell_event])
self._get_game_state().remove_from_storage('@'+item_id,item_count)
itm_count=self._get_game_state().count_in_storage('@'+item_id)
logger.info(u"Продали %d '%s' осталось %d"%((item_count),self._get_item_reader().get(item_id).name,itm_count))
CollIt=obj2dict(self._get_game_state().get_state().collectionItems)
send_user = self._get_options()['send_user']
if send_user<>None:
saveCollection=['C_42','C_29']
for item_id in CollIt.keys():
send=True
for save in saveCollection:
if save in item_id:send=False
if not send:continue
if CollIt[item_id]>0:
send_gift={
"item":'@'+item_id,
"msg":"",
"count":CollIt[item_id],
"user":send_user
}
event=GameSendGift(gift=send_gift)
self._get_events_sender().send_game_events([event])
logger.info(u"Отправили %d '%s' пользователю %d"%(CollIt[item_id],self._get_item_reader().get(item_id).name,int(send_user)))
CollIt[item_id]=0
self._get_game_state().get_state().collectionItems=dict2obj(CollIt)