Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Немного изменённый модуль создания проездного.
Показывает остаток времени действия, активация с любого острова (у меня к примеру, фургон стоит на Майя), может кому пригодится)
Но сам момент создания на ошибки пока проверить не могу, смогу только на днях..
Может кто нибудь проверит) скажет что не так, какие недочёты.
В питоне не особо волоку, поэтому не серчайте) только обретаю навыки
Код:
# coding=utf-8
import logging
from game_state.game_event import dict2obj, obj2dict
from game_actors_and_handlers.base import BaseActor
import time
from game_state.item_reader import GameItemReader
logger = logging.getLogger(__name__)
class GameTravelBuff(BaseActor):
def perform_action(self):
max_travel_time = 0
for l in self._get_game_state().get_state().buffs.list:
if '@BUFF_TRAVEL_TICKET_TIME' in l.item:
exp_time = float(l.expire.endDate)
if max_travel_time < exp_time :
max_travel_time = exp_time
time_travel = (max_travel_time-self._get_timer()._get_current_client_time())/1000.0
time_travel=int(time_travel)
if time_travel<0: time_travel=0
s=time_travel-int((int(time_travel/60.0)-(int(int(time_travel/60.0)/60.0)*60))*60)-int((int(int(time_travel/60.0)/60.0))*60*60)
m=int(time_travel/60.0)-(int(int(time_travel/60.0)/60.0)*60)
h=int(int(time_travel/60.0)/60.0)
if time_travel<>0: logger.info(u'Осталось времени проездного: %d:%d:%d' % (h,m,s))
is_there_travel_buff = False
buff_list = self._get_game_state().get_state().buffs.list
for buff in buff_list:
if buff.item == "@BUFF_TRAVEL_TICKET_TIME":
time_exp = buff.expire.endDate
is_there_travel_buff = True
if is_there_travel_buff == False or self._get_timer().has_elapsed(time_exp) or time_travel<30:
if self._get_game_state().has_in_create("@BUFF_TRAVEL_TICKET_TIME"):
event = {"x":20,"type":"item","y":7,"action":"useCreateItem","itemId":"BUFF_TRAVEL_TICKET_TIME"}
self._get_events_sender().send_game_events([event])
logger.info(u"Создали проездной на 5 дней")
if is_there_travel_buff == False or self._get_timer().has_elapsed(time_exp):
for item in self._get_game_state().get_state().gameObjects:
if item.item == "@B_VAN_ICE_CREAM":
exchange = self._get_item_reader().get("B_VAN_ICE_CREAM").crafts
o_id = item.id
elif item.item == "@B_VAN_ICE_CREAM":
exchange = self._get_item_reader().get("@B_VAN_ICE_CREAM").crafts
o_id = item.id
if o_id:
craft = "1"
exchange = self._get_item_reader().get("B_VAN_ICE_CREAM").crafts
event = {"itemId":craft,"objId":o_id,"type":"item","action":"craft"}
self._get_events_sender().send_game_events([event])
logger.info(self._get_item_reader().get("@BUFF_TRAVEL_TICKET_TIME").name)
buff_list.append(dict2obj({"item":"@BUFF_TRAVEL_TICKET_TIME", "expire": dict2obj({"type":"time", "time": str(int(self._get_timer()._get_current_client_time())+86400000*5)})}))
Последний раз редактировалось VtoroyPrihod; 16.10.2014 в 01:58.
Причина: добавление кода.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от VtoroyPrihod
Немного изменённый модуль создания проездного.
Показывает остаток времени действия, активация с любого острова (у меня к примеру, фургон стоит на Майя), может кому пригодится)
Но сам момент создания на ошибки пока проверить не могу, смогу только на днях..
Может кто нибудь проверит) скажет что не так, какие недочёты.
В питоне не особо волоку, поэтому не серчайте) только обретаю навыки
Код:
# coding=utf-8
import logging
from game_state.game_event import dict2obj, obj2dict
from game_actors_and_handlers.base import BaseActor
import time
from game_state.item_reader import GameItemReader
logger = logging.getLogger(__name__)
class GameTravelBuff(BaseActor):
def perform_action(self):
max_travel_time = 0
for l in self._get_game_state().get_state().buffs.list:
if '@BUFF_TRAVEL_TICKET_TIME' in l.item:
exp_time = float(l.expire.endDate)
if max_travel_time < exp_time :
max_travel_time = exp_time
time_travel = (max_travel_time-self._get_timer()._get_current_client_time())/1000.0
time_travel=int(time_travel)
if time_travel<0: time_travel=0
s=time_travel-int((int(time_travel/60.0)-(int(int(time_travel/60.0)/60.0)*60))*60)-int((int(int(time_travel/60.0)/60.0))*60*60)
m=int(time_travel/60.0)-(int(int(time_travel/60.0)/60.0)*60)
h=int(int(time_travel/60.0)/60.0)
if time_travel<>0: logger.info(u'Осталось времени проездного: %d:%d:%d' % (h,m,s))
is_there_travel_buff = False
buff_list = self._get_game_state().get_state().buffs.list
for buff in buff_list:
if buff.item == "@BUFF_TRAVEL_TICKET_TIME":
time_exp = buff.expire.endDate
is_there_travel_buff = True
if is_there_travel_buff == False or self._get_timer().has_elapsed(time_exp) or time_travel<30:
if self._get_game_state().has_in_create("@BUFF_TRAVEL_TICKET_TIME"):
event = {"x":20,"type":"item","y":7,"action":"useCreateItem","itemId":"BUFF_TRAVEL_TICKET_TIME"}
self._get_events_sender().send_game_events([event])
logger.info(u"Создали проездной на 5 дней")
if is_there_travel_buff == False or self._get_timer().has_elapsed(time_exp):
for item in self._get_game_state().get_state().gameObjects:
if item.item == "@B_VAN_ICE_CREAM":
exchange = self._get_item_reader().get("B_VAN_ICE_CREAM").crafts
o_id = item.id
elif item.item == "@B_VAN_ICE_CREAM":
exchange = self._get_item_reader().get("@B_VAN_ICE_CREAM").crafts
o_id = item.id
if o_id:
craft = "1"
exchange = self._get_item_reader().get("B_VAN_ICE_CREAM").crafts
event = {"itemId":craft,"objId":o_id,"type":"item","action":"craft"}
self._get_events_sender().send_game_events([event])
logger.info(self._get_item_reader().get("@BUFF_TRAVEL_TICKET_TIME").name)
buff_list.append(dict2obj({"item":"@BUFF_TRAVEL_TICKET_TIME", "expire": dict2obj({"type":"time", "time": str(int(self._get_timer()._get_current_client_time())+86400000*5)})}))
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
ПРО БАН
Использование любых автоматизированных скриптов для копания у соседей запрещено.
Любой, замеченный в нарушении правил игры, будет попадать в БАН. Ведётся работа над усовершенствованием автобана.
----------------------------------------------------------------------------------------------------------------------------------
С каждой новой обновой близится закат ботоводства.
Чтобы сажал растение наименьшее на складе, указываем в settings.ini вместо семени значение 'All'. Чтобы сажал розы и лилии в соотношении 2:1, указываем значение 'RL'. Например:
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Посейка по складу. Мой вариант.
Кристина привет, не тестил твой код(конечно уверен что работает) вот решил предложить тебе использовать
fruit = self._get_item_reader().get(seed_).storageItem
тогда отпадает надобность в функции seed2storage_plant
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от greyzza
Кристина привет, не тестил твой код(конечно уверен что работает) вот решил предложить тебе использовать
fruit = self._get_item_reader().get(seed_).storageItem
тогда отпадает надобность в функции seed2storage_plant
Привет. Давно уже писали(сама не проверяла), что это вариант не правильно возвращает item.
Цитата:
Сообщение от Kanabiss
как сделать что бы бот варил гарбузики и глазной суп. Садил (тыквы, тыквхэл, подсолнух, клевер, чеснок)? можете помочь, пожалуйста, зарание спасибо
Прочитать все инструкции.
Последний раз редактировалось GirlKris; 18.10.2014 в 18:06.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
greyzza прав насчет storageItem. я давно использую этот метод, и как то не заметил, что бы он не правильно работал. а по началу тоже начинал составлять ассоциации не совподающих итемов как GirlKris
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от GirlKris
Посейка по складу. Мой вариант.
и да, сегодня потестил на маленьком уровне,при посеве All циклится на растении которое не доступно(не пропускает), так что проверочку по уровню добавил себе(так, пусть будет) а в остальном все работает)))