Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Всем Python'истам' привет) хочу поделиться кодом, знаю что не по-теме, просто не знаю где написать, напишу здесь, возможно кому то будет интересно -КОД ДЕЛАЮЩИЙ СКРИНШОТ ЭКРАНА С ПРИВЯЗКОЙ HOTKEY
PHP код:
#coding=utf-8
import pyscreenshot as ImageGrab
''' pyhk можно скачать здесь -
https://github.com/schurpf/pyhk '''
import pyhk
''' установка - easy_install pillow '''
import win32ui,win32gui,win32con,win32api
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Всем привет хотел спросить кто нибудь по кузнецам модуль делал или нет?А то когда кузнецы и повара бот считает их одним и тем же.Хотелось бы это дело поправить сам несмогу может кто уже пробовал?
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Bezmen
Всем привет хотел спросить кто нибудь по кузнецам модуль делал или нет?А то когда кузнецы и повара бот считает их одним и тем же.Хотелось бы это дело поправить сам несмогу может кто уже пробовал?
ну так а в чем проблема то? столько кодов одинаковых, можно взять и какой нибудь переписать, скинь event крафта в л\с посмотрю что можно сделать
def space(self,need): spaceCoord=[] obj=self.__rects_reader.get(need.objAnim[0]) need_w = int(obj.rectW) need_h = int(obj.rectH) space = self.spaces() bad_crd = [] for coord in space: if coord in bad_crd: continue x = int(coord[:coord.find(':')]) y = int(coord[coord.find(':')+1:]) space_need=[ str(i+x)+':'+str(j+y) for i in range(need_w) for j in range(need_h)] for coord_need in space_need: if not coord_need in space or coord_need in bad_crd:break else: freeCoord= str(x)+':'+str(y) spaceCoord.append(freeCoord) bad_crd.extend(space_need) return spaceCoord
def spaces(self): maps = [] ostrov = self.__game_location.get_location_id() readerIsle=self.__item_reader.get(ostrov) if ostrov == 'main':maps,crd=self.location_main() elif readerIsle.mapFile=='isle_01':maps,crd=self.location_isle_01() elif readerIsle.mapFile=='isle_02':maps,crd=self.location_isle_02() elif readerIsle.mapFile=='isle_03':maps,crd=self.location_isle_03() elif readerIsle.mapFile=='isle_04':maps,crd=self.location_isle_04() elif readerIsle.mapFile=='isle_05':maps,crd=self.location_isle_05() elif readerIsle.mapFile=='isle_snow1':maps,crd=self.location_isle_snow1() elif readerIsle.mapFile=='isle_snow2':maps,crd=self.location_isle_snow2() elif readerIsle.mapFile=='underground_01':maps,crd=self.location_underground_01() elif readerIsle.mapFile=='underground_02':maps,crd=self.location_underground_02() elif readerIsle.mapFile=='exploration_isle_snow':maps,crd=self.location_exploration_isle_snow() ''' "type":"location","id":"isle_5years","mapFile":"isle_06" тогда :''' elif readerIsle.mapFile=='isle_06':maps,crd=self.location_isle_06() else: crd = {'x1':0, 'x2':0, 'y1':0, 'y2':0} W = crd['x2'] - crd['x1'] + 1 H = crd['y2'] - crd['y1'] + 1 space=[ str(iw+int(crd['x1']))+':'+str(ih+int(crd['y1'])) for iw in range(W) for ih in range(H)] for m in maps: if m in space:space.remove(m) allobjects = self.__game_location.get_game_objects() for obj in allobjects: if not hasattr(obj, 'x') or not hasattr(obj, 'item'):continue reader_object=self.__item_reader.get(obj.item) x = obj.x y = obj.y ob_anim = reader_object.objAnim[obj.rotate] if ob_anim in ('d_cake_ay','d_cake_ha'):continue rect=self.__rects_reader.get(ob_anim) rectX=int(rect.rectX) rectY=int(rect.rectY) rectW=int(rect.rectW) rectH=int(rect.rectH) if rectX < 0: x = int(x) + rectX w = rectW + rectX*-1 else:w = rectW + rectX if rectY < 0: y = int(y) + rectY h = rectH + rectY*-1 else:h = rectH + rectY occupied_coord=[ str(int(x) + ix)+':'+str(int(y) + iy) for ix in range(w) for iy in range(h)] for bad in occupied_coord: if bad in space:space.remove(bad) return space
def location_main(self): openAreas=self.__game_state.location.openedAreas maps = [ 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)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(62,112) for j in range(30,48)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(14,62) for j in range(0,12)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(112,128) for j in range(30,100)] maps.extend(add) if 'second' not in openAreas: add = [ str(i)+':'+str(j) for i in range(14,48) for j in range(12,48)] maps.extend(add) if 'mount' not in openAreas: add = [ str(i)+':'+str(j) for i in range(62,128) for j in range(0,30)] maps.extend(add) crd={'x1':14, 'x2':127, 'y1':0, 'y2':99} return maps,crd
def location_isle_01(self): maps = [ 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)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(12,18) for j in range(74,76)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(40,82) for j in range(74,76)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(82,84) for j in range(72,76)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(82,84) for j in range(14,22)] maps.extend(add) crd = {'x1':12, 'x2':83, 'y1':14, 'y2':75} return maps,crd
def location_isle_02(self): maps = [ 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)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(42,44) for j in range(42,44)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(42,44) for j in range(10,12)] maps.extend(add) crd = {'x1':10, 'x2':43, 'y1':10, 'y2':43} return maps,crd
def location_isle_04(self): maps = [ 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)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(48,50) for j in range(34,42)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(48,50) for j in range(72,74)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(12,20) for j in range(72,74)] maps.extend(add) crd = {'x1':12, 'x2':49, 'y1':12, 'y2':73} return maps,crd
def location_isle_05(self): maps = [ 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)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(70,72) for j in range(70,72)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(16,18) for j in range(64,72)] maps.extend(add) crd = {'x1':16, 'x2':71, 'y1':12, 'y2':71} return maps,crd
def location_isle_snow1(self): maps = [ 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)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(42,46) for j in range(6,8)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(44,46) for j in range(8,10)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(44,46) for j in range(42,46)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(42,44) for j in range(44,46)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(8,10) for j in range(44,46)] maps.extend(add) crd = {'x1':8, 'x2':45, 'y1':6, 'y2':45} return maps,crd
def location_isle_snow2(self): maps = [ 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)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(42,46) for j in range(44,46)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(44,46) for j in range(42,44)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(42,46) for j in range(6,8)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(44,46) for j in range(8,10)] maps.extend(add) crd = {'x1':8, 'x2':45, 'y1':6, 'y2':45} return maps,crd
def location_underground_01(self): maps = [ str(i)+':'+str(j) for i in range(8,10) for j in range(12,16)] add = [ str(i)+':'+str(j) for i in range(10,12) for j in range(12,14)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(24,28) for j in range(12,14)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(28,34) for j in range(12,16)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(40,46) for j in range(12,14)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(56,58) for j in range(12,14)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(60,62) for j in range(12,40)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(60,62) for j in range(58,72)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(8,24) for j in range(72,74)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(30,62) for j in range(72,74)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(8,10) for j in range(66,72)] maps.extend(add) crd = {'x1':8, 'x2':61, 'y1':12, 'y2':73} return maps,crd
def location_underground_02(self): maps = [ str(i)+':'+str(j) for i in range(12,14) for j in range(14,18)] add = [ str(i)+':'+str(j) for i in range(14,38) for j in range(14,16)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(42,46) for j in range(14,17)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(47,52) for j in range(14,16)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(50,52) for j in range(17,28)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(50,52) for j in range(42,51)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(50,52) for j in range(70,74)] maps.extend(add) add = [ str(i)+':'+str(j) for i in range(12,14) for j in range(64,74)] maps.extend(add) crd = {'x1':12, 'x2':51, 'y1':14, 'y2':73} return maps,crd