 |
Zombot (Клиент для игры Зомби ферма) [Обсуждение] - Свободное обсуждение - Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей |
20.03.2014, 10:24
|
#1396
|
|
|
|
Разведчик
|
 Регистрация: 30.08.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
20.03.2014, 10:37
|
#1397
|
|
|
|
Разведчик
|
 Регистрация: 27.08.2013
 Сообщений: 2
 Популярность: -54
 Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
20.03.2014, 10:46
|
#1398
|
|
|
|
Разведчик
|
 Регистрация: 30.08.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
20.03.2014, 12:05
|
#1399
|
|
|
|
Пехотинец
|
 Регистрация: 01.08.2012
 Сообщений: 95
 Популярность: 255
 Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Чуть подправил чопер.
Столкнулся вчера с тем, что фэйки (без бочек) долго топчутся в начале острова. За 6 часов имели только по 2 колодца. Сидят там рубят всякую фигню. Решил поправить, чтобы "вгрызались". Решил просто отсортировать объекты по величине координаты X и подавать на рубку с большим X.
Вот:
PHP код:
# coding=utf-8 import logging from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\ GamePickItem, GameWoodTree, GameStone, GameGainItem, GamePickup from game_state.game_event import dict2obj, obj2dict from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class PirateTreeCut(BaseActor):
def get_object_type(self): return "chop"
def perform_action(self): options = [ u'вскрытие сокровищ' ] resources = self._get_game_location().get_all_objects_by_type( self.get_object_type() ) enemies = self._get_game_location().get_all_objects_by_type("pirateEnemy")
# пиратские острова : Остров сокровищ , Таинственный , Жуткий , Северный полюс , Остров сокровищ , Древний pirate_locs_id = ["exploration_isle1_random","exploration_isle2_random","exploration_isle3_random","exploration_snow1","exploration_isle1_1","exploration_isle4_random"]
instruments = [] # переменная для инструментов _loc = self._get_game_state().get_game_loc().get_location_id() # текущая локация if resources: if _loc not in pirate_locs_id: st_items = self._get_game_state().get_state().storageItems # Предметы на складе for item in list(st_items): if hasattr(item, "item"): if item.item == ('@CHOP_MACHETE'): #мачете instruments.append(dict2obj({"item":"@CHOP_MACHETE", "count": item.count})) if item.item == ('@CHOP_AXE'): #топор instruments.append(dict2obj({"item":"@CHOP_AXE", "count": item.count})) if item.item == ('@CHOP_HAMMER'): #кирка instruments.append(dict2obj({"item":"@CHOP_HAMMER", "count": item.count})) else: instruments = self._get_game_state().get_state().pirate.instruments
resources_dict = {resource : resource.x for resource in resources} resources_order = resources_dict.items() # ресурсы отсортированные по X resources_order.sort(key=lambda x: x[::-1], reverse=True) #print resources_order
for resource in resources_order: resource = resource[0] #print 'resource ', resource,' ', resource.x #print obj2dict(resource) tool_needed = resource.chopCount type_of_res = resource.item type_of_instrument = self._get_item_reader().get(type_of_res).chopInstrumentType for tool in instruments: #print "self._get_item_reader().get(tool.item).chopInstrumentType", self._get_item_reader().get(tool.item).chopInstrumentType #print "type_of_instrument", type_of_instrument if self._get_item_reader().get(tool.item).chopInstrumentType == type_of_instrument and tool.count >= tool_needed: enemy_here = 0 if enemies: for enemy in enemies: if(((enemy.x - resource.x)**2+(enemy.y - resource.y)**2)**0.5 < 16): enemy_here = 1 break if(enemy_here == 1): self._get_game_location().remove_object_by_id(resource.id) logger.info("Сильвер мешает вырубке "+str(resource.id)) break #print 'tool.count ', tool.count, ', tool_needed ', tool_needed if tool_needed == 100: tool_needed = 50 print 'tool_needed Set 50' #print "resource ", str(obj2dict(resource)) gain_event = {"type":"chop","objId":resource.id,"instruments":{self._get_item_reader().get(tool.item).id:tool_needed},"action":"chop"} logger.info(u"Рубим " + str(type_of_instrument)+u' instruments:'+str(self._get_item_reader().get(tool.item).id)+', '+str(tool_needed)+u'L, id '+str(gain_event['objId'])) self._get_events_sender().send_game_events( [gain_event] ) if resource.chopCount == tool_needed: self._get_game_location().remove_object_by_id(resource.id) else: resource.chopCount -= tool_needed tool.count -= tool_needed break else: logger.info("Не осталось ресурсов для добычи") if u'вскрытие сокровищ' in options: resources = self._get_game_location().get_all_objects_by_type("pirateCaptureObject") if resources: for resource in resources: enemy_here = 0 if enemies: for enemy in enemies: if(((enemy.x - resource.x)**2+(enemy.y - resource.y)**2)**0.5 < 15): enemy_here = 1 break if(enemy_here == 1): self._get_game_location().remove_object_by_id(resource.id) logger.info("Сильвер мешает взять "+str(resource.id)) continue gain_event = {"type":"pirateCapture","objId":resource.id,"action":"capture"} print gain_event logger.info("Открываем " + str(resource.id)) self._get_events_sender().send_game_events( [gain_event] ) self._get_game_location().remove_object_by_id(resource.id) else: logger.info("Нет неоткрытых сокровищ")
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось vintets; 24.03.2014 в 14:49.
|
|
|
Пользователь сказал cпасибо:
|
|
20.03.2014, 12:59
|
#1400
|
|
|
|
Разведчик
|
 Регистрация: 03.11.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Подскажите пож какие прописать ID декораций для копания Скакалки?
|
|
|
20.03.2014, 13:10
|
#1401
|
|
|
|
Разведчик
|
 Регистрация: 30.08.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
20.03.2014, 13:20
|
#1402
|
|
|
|
Разведчик
|
 Регистрация: 03.11.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
20.03.2014, 13:28
|
#1403
|
|
|
|
Разведчик
|
 Регистрация: 30.08.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
А по типу этого - 'D_IDOL2','D_FLOWER4_WHITE','D_FLOWER4_YELLOW' (копание брендовой коллекции)
Только для скакалки?
|
|
 |
|
 |
|
D_BALLOON_YELLOW1, D_BALLOON_YELLOW2, D_SUNUMBRELLA, D_BALLOONS.
А вообще-то, ребяты, открываем базу знаний ЗФ, смотрим что, под чем копается, открываем файл items.txt (лежит в папке зомбота), ищем и выписываем нужное. Я понимаю, что проще спросить, но... не ленитесь.
|
|
|
20.03.2014, 13:32
|
#1404
|
|
|
|
Разведчик
|
 Регистрация: 18.03.2014
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Большое СПАСИБО VIVTETS за разделение посадки деревьев на главном.
Засадил фейки по полной программе!!!
Наберусь наглости попросить еще об одной фишке. Думаю бить ногами меня не будете.
Переделал копатель с целью ходить по фейкам и собирать сундуки от деревьев. Прекрасно проходит на Призрак или мечту и собирает сундуки, но только на один остров.
Конечно я не спец, но написать цикл чтоб об обворовывал все острова я не в силах.
Можно попросить у БОГОВ написать нам смертным данную БЛАГОДАТЬ.
|
|
|
20.03.2014, 14:28
|
#1405
|
|
|
|
Разведчик
|
 Регистрация: 03.11.2011
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
|
|
|
D_BALLOON_YELLOW1, D_BALLOON_YELLOW2, D_SUNUMBRELLA, D_BALLOONS.
А вообще-то, ребяты, открываем базу знаний ЗФ, смотрим что, под чем копается, открываем файл items.txt (лежит в папке зомбота), ищем и выписываем нужное. Я понимаю, что проще спросить, но... не ленитесь.
|
|
 |
|
 |
|
Спасибо за подсказку, но у меня нет файла items.txt, буду признателен если кинешь в личку
Извн. глупость сморозил, нашел, разобрался!
Последний раз редактировалось polkowoy; 20.03.2014 в 14:32.
|
|
|
20.03.2014, 15:46
|
#1406
|
|
|
|
Разведчик
|
 Регистрация: 06.07.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
20.03.2014, 15:55
|
#1407
|
|
|
|
Разведчик
|
 Регистрация: 27.08.2013
 Сообщений: 2
 Популярность: -54
 Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Последний раз редактировалось Dinmaite; 21.03.2014 в 19:09.
|
|
|
20.03.2014, 17:37
|
#1408
|
|
|
|
Разведчик
|
 Регистрация: 30.08.2013
 Сообщений: 0
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
20.03.2014, 18:30
|
#1409
|
|
|
|
Разведчик
|
 Регистрация: 12.06.2011
 Сообщений: 22
 Популярность: 12
 Сказал(а) спасибо: 13
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
 |
Цитата: |
 |
|
|
|
|
|
и как это поможет?)
|
|
|
20.03.2014, 19:05
|
#1410
|
|
|
|
Разведчик
|
 Регистрация: 27.08.2013
 Сообщений: 2
 Популярность: -54
 Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 23:33.
|
 |