Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Miha88
Форумчане, поделитесь модулем для создания изумрудки, а то накопал не много бозона, а там лимит на создание. Буду примного благодарен
PHP код:
class EmeraldObservExchange(BaseActor):
def perform_action(self):
min_coll = 500 # Оставляем Японской коллекции
object_cr = '@B_OBSERVATORY' # Обсерватория
buildings = self._get_game_location().get_all_objects_by_type(GameBuilding.type)
for building in list(buildings):
self._events = []
bozon = self._get_game_state().count_in_storage('@CR_666')
if building.item != object_cr: continue
obj_id = building.id
next_play_times = building.nextPlayTimes.__dict__
# print '!!!', building.nextPlayTimes.OBSERVATORY_EMERALD_1
if not (hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_1') and hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_2') and hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_3') and hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_4') and hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_5')): continue
next = False
for nt in range(1, 6):
next_play = int(next_play_times['OBSERVATORY_EMERALD_' + str(nt)])
# print 'next_play', next_play
if not self._get_timer().has_elapsed(next_play):
next = True
break
if next: continue
cl_items = obj2dict(self._get_game_state().get_state().collectionItems)
new = True
for jap in range(1, 6):
if 'C_36_' + str(jap) in cl_items.keys():
if new or min_jap < cl_items['C_36_' + str(jap)]:
min_jap = cl_items['C_36_' + str(jap)]
new = False
if new: return # нет японки совсем
countcol = min_jap - min_coll
count = int(countcol/10)
#if bozon < count * 5: count = int(bozon/5)
if count == 0 or bozon < 5: return
for n in range(11,16):
self.events_append(obj_id, n)
self.events_free()
for jap in range(1, 6):
cl_items['C_36_' + str(jap)] -= 10
self._get_game_state().remove_from_storage('@CR_666', 5)
for em in range(1, 6):
em_id = 'C_42_' + str(em)
logger.info(u'Создали %d шт. %s' % (5, self._get_item_reader().get('@' + em_id).name))
if em_id in cl_items.keys():
cl_items[em_id] += 5
else:
cl_items[em_id] = 5
self._get_game_state().get_state().collectionItems = dict2obj(cl_items)
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Подскажите кто - нибудь как и где прописать отключение перехода по локациям при отчаливании на пиратский остров? ну допустим я выиграл сундук, поставил его, запилил в него инструмент и послал эвент на пиратство...
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vintets
PHP код:
class EmeraldObservExchange(BaseActor):
def perform_action(self):
min_coll = 500 # Оставляем Японской коллекции
object_cr = '@B_OBSERVATORY' # Обсерватория
buildings = self._get_game_location().get_all_objects_by_type(GameBuilding.type)
for building in list(buildings):
self._events = []
bozon = self._get_game_state().count_in_storage('@CR_666')
if building.item != object_cr: continue
obj_id = building.id
next_play_times = building.nextPlayTimes.__dict__
# print '!!!', building.nextPlayTimes.OBSERVATORY_EMERALD_1
if not (hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_1') and hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_2') and hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_3') and hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_4') and hasattr(building.nextPlayTimes, 'OBSERVATORY_EMERALD_5')): continue
next = False
for nt in range(1, 6):
next_play = int(next_play_times['OBSERVATORY_EMERALD_' + str(nt)])
# print 'next_play', next_play
if not self._get_timer().has_elapsed(next_play):
next = True
break
if next: continue
cl_items = obj2dict(self._get_game_state().get_state().collectionItems)
new = True
for jap in range(1, 6):
if 'C_36_' + str(jap) in cl_items.keys():
if new or min_jap < cl_items['C_36_' + str(jap)]:
min_jap = cl_items['C_36_' + str(jap)]
new = False
if new: return # нет японки совсем
countcol = min_jap - min_coll
count = int(countcol/10)
#if bozon < count * 5: count = int(bozon/5)
if count == 0 or bozon < 5: return
for n in range(11,16):
self.events_append(obj_id, n)
self.events_free()
for jap in range(1, 6):
cl_items['C_36_' + str(jap)] -= 10
self._get_game_state().remove_from_storage('@CR_666', 5)
for em in range(1, 6):
em_id = 'C_42_' + str(em)
logger.info(u'Создали %d шт. %s' % (5, self._get_item_reader().get('@' + em_id).name))
if em_id in cl_items.keys():
cl_items[em_id] += 5
else:
cl_items[em_id] = 5
self._get_game_state().get_state().collectionItems = dict2obj(cl_items)
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
у кого нить бот спотыкается о подарки в хотелке? по-моему параметр endDate упал)
проблему решил так -
было :
PHP код:
if not hasattr (self._get_game_state() , "playersInfo"): return 1
# создаём список с бесплатками
freeGifts = []
for i in self._get_item_reader().get("FREE_GIFTS").freeGifts:
if hasattr (i, u'endDate') and int(i.endDate) < long(time.time())*1000: continue
freeGifts.append(i.item)
#print 'freeGifts', freeGifts
лично я добавил в строке
PHP код:
long(time.time())*1000: continue
еще один 0
Последний раз редактировалось Lobotamiya; 22.11.2015 в 17:53.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Lobotamiya
у кого нить бот спотыкается о подарки в хотелке? по-моему параметр endDate упал)
проблему решил так -
было :
PHP код:
********if*not*hasattr*(self._get_game_state()*,*" playersInfo"):*return*1*
********#*создаём*список*с*бесплатками
********freeGifts*=*[]
********for*i*in*self._get_item_reader().get("FREE _GIFTS").freeGifts:
************if*hasattr*(i,*u'endDate')*and*int(i.e ndDate)*<*long(time.time())*1000:*continue*
************freeGifts.append(i.item)**
********#print*'freeGifts',*freeGifts*
лично я добавил в строке
PHP код:
long(time.time())*1000:*continue*
еще один 0
Спасибо!Вроде раздал нормально а то сыпал тоже на бесплатках тоже добавил 0
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Lobotamiya
у кого нить бот спотыкается о подарки в хотелке? по-моему параметр endDate упал)
проблему решил так -
было :
PHP код:
if not hasattr (self._get_game_state() , "playersInfo"): return 1 # создаём список с бесплатками freeGifts = [] for i in self._get_item_reader().get("FREE_GIFTS").freeGifts: if hasattr (i, u'endDate') and int(i.endDate) < long(time.time())*1000: continue freeGifts.append(i.item) #print 'freeGifts', freeGifts
лично я добавил в строке
PHP код:
long(time.time())*1000: continue
еще один 0
Костыль, да ещё и временный.
На самом деле добавился параметр startDate. Его нужно учитывать. Акция ещё не началась.
PHP код:
for i in self._get_item_reader().get('FREE_GIFTS').freeGifts: if hasattr (i, u'startDate') and int(i.startDate) > long(time.time())*1000: continue if hasattr (i, u'endDate') and int(i.endDate) < long(time.time())*1000: continue freeGifts.append(i.item)
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vintets
Костыль, да ещё и временный.
На самом деле добавился параметр startDate. Его нужно учитывать. Акция ещё не началась.
PHP код:
for i in self._get_item_reader().get('FREE_GIFTS').freeGifts:
if hasattr (i, u'startDate') and int(i.startDate) > long(time.time())*1000: continue
if hasattr (i, u'endDate') and int(i.endDate) < long(time.time())*1000: continue
freeGifts.append(i.item)
опять ошибки посыпались, добавил 0 и все нормально стало...
не понимаю почему так...
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Lobotamiya
опять ошибки посыпались, добавил 0 и все нормально стало...
не понимаю почему так...
Они сами со своими курицами не разберутся. С браузера тоже глючит.
У меня на основе турки в дарилке так и не появлялись. Там хоть и сутки всего даны были, но и там обманули.
Сейчас на нескольких учётках проблемы с открытием окна с подарками. Открываются на пол секунды и крашится.
На нескольких удалось прорватся успевая принять по 1-2 подарка в этот короткий промежуток, после чего там краши прекращались.
На одной ничего не помогает.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vintets
Они сами со своими курицами не разберутся. С браузера тоже глючит.
У меня на основе турки в дарилке так и не появлялись. Там хоть и сутки всего даны были, но и там обманули.
Сейчас на нескольких учётках проблемы с открытием окна с подарками. Открываются на пол секунды и крашится.
На нескольких удалось прорватся успевая принять по 1-2 подарка в этот короткий промежуток, после чего там краши прекращались.
На одной ничего не помогает.
ну что ж....доломали они игрушку....абидно)))
P.S. я по нолику прибавил в строках
PHP код:
if hasattr (i, u'startDate') and int(i.startDate) > long(time.time())*1000: continue
if hasattr (i, u'endDate') and int(i.endDate) < long(time.time())*1000: continue
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Решил у фейка домашний почистить, основной почистил, открыл территорию за ЗБ, и столкнулся с проблемой которая у же поднималась, но решения никто не озвучивал, может кто решил =
[Ссылки могут видеть только зарегистрированные пользователи. ]
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от ripton07
Решил у фейка домашний почистить, основной почистил, открыл территорию за ЗБ, и столкнулся с проблемой которая у же поднималась, но решения никто не озвучивал, может кто решил =
[Ссылки могут видеть только зарегистрированные пользователи. ]