Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Zombot (Клиент для игры Зомби ферма) [Обсуждение]

-

Свободное обсуждение

- Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей

Ответ
 
Опции темы
Старый 15.05.2015, 02:25   #4261
 Разведчик
Аватар для v_home
 
v_home никому не известный тип
Регистрация: 21.10.2010
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Меня так забанили, были прописаны id к кому ходить, кто то удалился, не уследил, посетил и в бан попал(
  Ответить с цитированием
Старый 16.05.2015, 18:50   #4262
Заблокирован
 Разведчик
Аватар для Cheater-84
 
Cheater-84 никому не известный тип
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Отправить сообщение для Cheater-84 с помощью Skype™
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от CheloveKkKПосмотреть сообщение
разобрался

Добавлено через 16 минут
Кто нибудь вкурсе как приобрести онлайн версию бота znest.ru ?А то этот [продавец 80лвл] ни по почте ни ВК не отвечает уже второй месяц

читай выше , он написал что забил на баота http://zhyk.ru/forum/showpost.php?p=...postcount=4261
  Ответить с цитированием
Старый 16.05.2015, 23:41   #4263
Заблокирован
 Разведчик
Аватар для Cheater-84
 
Cheater-84 никому не известный тип
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Отправить сообщение для Cheater-84 с помощью Skype™
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от CheloveKkKПосмотреть сообщение
Печально что больше не продаёт,а ваш бот не поддаётся моей настройке.

не знаю, читай форум, собирай по тому что выкладывали, здесь все написано от и до) так что дерзай, основу можешь взять на github - vanuan zombot
  Ответить с цитированием
Старый 17.05.2015, 09:58   #4264
 Разведчик
Аватар для 3HtSCtBGcBOf
 
3HtSCtBGcBOf неизвестен в этих краях3HtSCtBGcBOf неизвестен в этих краях3HtSCtBGcBOf неизвестен в этих краях3HtSCtBGcBOf неизвестен в этих краях3HtSCtBGcBOf неизвестен в этих краях3HtSCtBGcBOf неизвестен в этих краях
Регистрация: 12.01.2013
Сообщений: 4
Популярность: -604
Сказал(а) спасибо: 0
Поблагодарили 8 раз(а) в 8 сообщениях
Отправить сообщение для 3HtSCtBGcBOf с помощью ICQ Отправить сообщение для 3HtSCtBGcBOf с помощью Skype™
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

бот все так же отлично работает,ключи можно приобрести либо тут в лс либо тут [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 18.05.2015, 02:55   #4265
 Разведчик
Аватар для GadW1n
 
GadW1n никому не известный тип
Регистрация: 24.08.2011
Сообщений: 17
Популярность: 10
Сказал(а) спасибо: 9
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

заметил что на пиратском острове бот почему то работает странно...
не рубит ничего без мачете... то есть топоры и кирки по 50-100 штук с лишним, а пока мачете не появится - не пользует их(((
Гляньте в чём проблема?!

chop.py
Код:
# coding=utf-8
import logging
import sys
import time
import os.path
import os
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"]
        _loc = self._get_game_state().get_game_loc().get_location_id() # текущая локация

        instruments = []        # переменная для инструментов
        _loc = self._get_game_state().get_game_loc().get_location_id() # текущая локация
        
        sklad = False
        if resources:
            if _loc not in pirate_locs_id:
                sklad = True
                st_items = self._get_game_state().get_state().storageItems # Предметы на складе
                #print u'СКЛАД!'
                for item in list(st_items):
                    if hasattr(item, "item"):
                        if '@CHOP_' in item.item: 
                            instruments.append(dict2obj({"item":item.item, "count": item.count}))
                        
                        # или
                        # reader = self._get_item_reader().get(item.item)
                        # if reader.type == 'chopInstrument':
                            # instruments.append(dict2obj({"item":item.item, "count": item.count}))
                        
                        # или
                        # 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}))
                        # if item.item == ('@CHOP_TRIDENT'): #Трезубец
                            # instruments.append(dict2obj({"item":"@CHOP_TRIDENT", "count": item.count}))
                        
                        # или ссылками, тогда исправить учёт траты
                        # if hasattr(item, "item") and item.item in ['@CHOP_MACHETE','@CHOP_AXE','@CHOP_HAMMER','@CHOP_TRIDENT','@CHOP_TRIDENT_GOLDEN']: 
                            # instruments.append(item)
            else: instruments = self._get_game_state().get_state().pirate.instruments
            
            CHOP_MACHETE = 0
            CHOP_AXE = 0
            CHOP_HAMMER = 0
            CHOP_TRIDENT = 0
            for tool in instruments:
                if hasattr(tool, "item"):
                    if tool.item == '@CHOP_MACHETE': CHOP_MACHETE = tool.count
                    if tool.item == '@CHOP_AXE': CHOP_AXE = tool.count
                    if tool.item == '@CHOP_HAMMER': CHOP_HAMMER = tool.count
                    if tool.item == '@CHOP_TRIDENT': CHOP_TRIDENT = tool.count
            print u'Инструмента перед рубкой М-Т-К-Тр:', str(CHOP_MACHETE)+'-'+str(CHOP_AXE)+'-'+str(CHOP_HAMMER)+'-'+str(CHOP_TRIDENT)
            if (CHOP_MACHETE > 250 and CHOP_HAMMER > 250):
                self._get_game_state().many_chop = 1  # проставили many_chop если мачете и кирки за 250

            resources_dict = {resource : resource.x for resource in resources}
            resources_order = resources_dict.items()
            if not hasattr(self._get_game_state(), 'many_chop'): # рублено не много, будем сортировать
                resources_order.sort(key=lambda x: x[::-1], reverse=True)  # ресурсы отсортированные по X
            #print resources_order
            
            # Пинатель       
            if enemies:
                if not hasattr(self, 'enemies'):self.enemies = []
                for enemy in enemies:
                    if enemy.id in self.enemies:continue
                    print u'Шуганём сильвера '+str(enemy.id)
                    self._get_events_sender().send_game_events([{"type":"pirateEnemy","objId":enemy.id,"action":"hit"}])
                    self.enemies.append(enemy.id)
                    #self._get_game_location().remove_object_by_id(enemy.id)
            
            print u'Ресурсов видно:', len(resources_order)
            for resource in resources_order:
                resource = resource[0]
                #print 'Obj: ', resource.item.ljust(27, " "), ' id = ', resource.id
                #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
                    
                # сортируем что рубим, а что нет
                if (not hasattr(self._get_game_state(), 'many_chop')): # рублено не много, ограничиваем траты
                    if type_of_instrument == '@CIT_MACHETE':                     # мачете
                        pass
                    elif type_of_instrument == '@CIT_TRIDENT':                  # трезубец
                        pass
                    elif type_of_instrument == '@CIT_AXE':                       # топоры
                        if CHOP_AXE > 600 or tool_needed == 10 or tool_needed == 15 or tool_needed == 16 or tool_needed > 49:
                            pass
                        else: continue
                    elif type_of_instrument == '@CIT_HAMMER':                    # кирки
                        if ('CH_BLACKSTONE' in type_of_res) or ('CH_GREENSTONE' in type_of_res) or ('CH_WHITESTONE' in type_of_res) or ('CH_CRYSTALSTONE' in type_of_res) or tool_needed > 49:
                            pass
                        else: continue 
                
                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 not hasattr(tool, "item"):
                        print u'Нет итема', obj2dict(tool)
                        continue
                    if self._get_item_reader().get(tool.item).chopInstrumentType == type_of_instrument and tool.count > 0: #= 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
                        
                        # if type_of_instrument == '@CIT_HAMMER' and tool_needed == 100:
                            # tool_needed = 50
                            # logger.info(u'Снижаем удар киркой до 50')
                        
                        if tool.count < tool_needed:
                            if type_of_instrument == '@CIT_TRIDENT':
                                tool_needed = tool.count
                                logger.info(u'Рубим неполный')
                            else: continue

                        gain_event = {"type":"chop","objId":resource.id,"instruments":{self._get_item_reader().get(tool.item).id:tool_needed},"action":"chop"}
                        logger.info(u"Рубим " +str(self._get_item_reader().get(tool.item).id).ljust(13, ' ')+str(tool_needed).rjust(3, ' ')+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
                        if sklad:
                            #print 'type_of_instrument', type_of_instrument, 'tool.item', tool.item, 'ins', ins
                            self._get_game_state().remove_from_storage(tool.item, tool_needed)
                        break
            CHOP_MACHETE2 = 0
            CHOP_AXE2 = 0
            CHOP_HAMMER2 = 0
            CHOP_TRIDENT2 = 0
            for tool in instruments:
                if hasattr(tool, "item"):
                    if tool.item == '@CHOP_MACHETE': CHOP_MACHETE2 = tool.count
                    if tool.item == '@CHOP_AXE': CHOP_AXE2 = tool.count
                    if tool.item == '@CHOP_HAMMER': CHOP_HAMMER2 = tool.count
                    if tool.item == '@CHOP_TRIDENT': CHOP_TRIDENT2 = tool.count
            if  CHOP_MACHETE-CHOP_MACHETE2 or CHOP_AXE-CHOP_AXE2 or CHOP_HAMMER-CHOP_HAMMER2 or CHOP_TRIDENT-CHOP_TRIDENT2:
                print u'Инструмента после рубки  М-Т-К-Тр:', str(CHOP_MACHETE2)+'-'+str(CHOP_AXE2)+'-'+str(CHOP_HAMMER2)+'-'+str(CHOP_TRIDENT2)                
#        else:
#            logger.info("Не осталось ресурсов для добычи")
#            raw_input('-------------   END   ---------------')
            
        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("Нет неоткрытых сокровищ")
да и вскрывает как то тоже странно... если включить в game_engine BoxPickuper - натыкаясь на сильвера - циклическая перезагрузка... выключаю, после вырубки всего, много не вскрытых кладов остаётся, приходится вручную, из браузера открывать, а многие уже другими вскрыты(((
вот тоже подскажите что изменить? (сам пробовал, ошибки сыпет)

pickups.py
Код:
# coding=utf-8
import logging
from game_state.game_types import GamePickPickup, GamePickItem, GamePickup
from game_actors_and_handlers.base import BaseActor


logger = logging.getLogger(__name__)


class Pickuper(BaseActor):

    def perform_action(self):
        pickups = self._get_game_location().get_pickups()
        self.pick_pickups(pickups)

    def pick_pickups(self, pickups):
        if pickups:
            logger.info(u'Подбираем дроп...')
            
        all_pick = []
        for pickup in pickups:
            pick_event = GamePickPickup([pickup])
            all_pick += [pick_event]
        if len(all_pick)>0:
            self._get_events_sender().send_game_events(all_pick)
            for pickup in pickups:
                self._get_game_location().remove_pickup(pickup)
        '''        
        for pickup in pickups:
            pick_event = GamePickPickup([pickup])
            self._get_events_sender().send_game_events([pick_event])
            self._get_game_location().remove_pickup(pickup)'''


class BoxPickuper(BaseActor):

    def getOpeningPriceMsg(self, boxItem):
        openingPrice = boxItem.openingPrice[0]
        count = openingPrice.count
        item_name = self._get_item_reader().get(openingPrice.item).name
        price_msg = u'%d %s' % (count, item_name)
        return price_msg

    def perform_action(self):
        boxes = self._get_game_location().get_all_objects_by_type(
                                                    GamePickup.type)
        for box in boxes:
            name = self._get_item_reader().get_name(box)
            boxItem = self._get_item_reader().get(box.item)
            if not hasattr(boxItem, 'openingPrice'):
                logger.info(u'Вскрываем %s' % name)
                pick_event = GamePickItem(objId=box.id)
                self._get_events_sender().send_game_events([pick_event])
                self._get_game_location().remove_object_by_id(box.id)


class AddPickupHandler(object):
    def __init__(self, itemReader, game_location, game_state, setting_view):
        self.__game_loc = game_location
        self.__item_reader = itemReader
        self.__game_state_ = game_state
        self.__setting_view = setting_view

    def handle(self, event_to_handle):
        if event_to_handle is None:
            logger.critical("OMG! No such object")
            return
        else:
            tmp={}
            for pickup in event_to_handle.pickups:
                item_type_msg = {
                    'coins':
                        lambda pickup: u'денег',
                    'xp':
                        lambda pickup: u'опыта',
                    'collection':
                        lambda pickup: u'предмет(ов) коллекции ',
                    'storageItem':
                        lambda pickup: u'предмет(ов) ',
                    'shovel':
                        lambda pickup: u'лопат',
                    'scrapItem':
                        lambda pickup: u'шт. металлолома'
                }.get(pickup.type, lambda pickup: pickup.type)(pickup)
                if (pickup.type=='collection') or (pickup.type=='storageItem'):
                    item_type_msg = ('%s%s'%(item_type_msg,self.__item_reader.get(pickup.id).name))
                if item_type_msg in tmp.keys(): tmp[item_type_msg]+=pickup.count
                else: tmp[item_type_msg]=pickup.count
                # Добавление в game_state
                if hasattr(pickup, "id"):
                    self.__game_state_.add_from_storage('@'+pickup.id, pickup.count)
            if self.__setting_view['pickup']:
                if len(tmp.keys())>0:
                    for i in tmp.keys():
                        logger.info(u'Подобрали %d %s' % (tmp[i], i))
            self.__game_loc.add_pickups(event_to_handle.pickups)

Последний раз редактировалось GadW1n; 18.05.2015 в 03:03.
  Ответить с цитированием
Старый 18.05.2015, 07:48   #4266
Заблокирован
 Разведчик
Аватар для Cheater-84
 
Cheater-84 никому не известный тип
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Отправить сообщение для Cheater-84 с помощью Skype™
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от GadW1nПосмотреть сообщение
заметил что на пиратском острове бот почему то работает странно...
не рубит ничего без мачете... то есть топоры и кирки по 50-100 штук с лишним, а пока мачете не появится - не пользует их(((
Гляньте в чём проблема?!

chop.py
Код:
# coding=utf-8
import logging
import sys
import time
import os.path
import os
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"]
        _loc = self._get_game_state().get_game_loc().get_location_id() # текущая локация

        instruments = []        # переменная для инструментов
        _loc = self._get_game_state().get_game_loc().get_location_id() # текущая локация
        
        sklad = False
        if resources:
            if _loc not in pirate_locs_id:
                sklad = True
                st_items = self._get_game_state().get_state().storageItems # Предметы на складе
                #print u'СКЛАД!'
                for item in list(st_items):
                    if hasattr(item, "item"):
                        if '@CHOP_' in item.item: 
                            instruments.append(dict2obj({"item":item.item, "count": item.count}))
                        
                        # или
                        # reader = self._get_item_reader().get(item.item)
                        # if reader.type == 'chopInstrument':
                            # instruments.append(dict2obj({"item":item.item, "count": item.count}))
                        
                        # или
                        # 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}))
                        # if item.item == ('@CHOP_TRIDENT'): #Трезубец
                            # instruments.append(dict2obj({"item":"@CHOP_TRIDENT", "count": item.count}))
                        
                        # или ссылками, тогда исправить учёт траты
                        # if hasattr(item, "item") and item.item in ['@CHOP_MACHETE','@CHOP_AXE','@CHOP_HAMMER','@CHOP_TRIDENT','@CHOP_TRIDENT_GOLDEN']: 
                            # instruments.append(item)
            else: instruments = self._get_game_state().get_state().pirate.instruments
            
            CHOP_MACHETE = 0
            CHOP_AXE = 0
            CHOP_HAMMER = 0
            CHOP_TRIDENT = 0
            for tool in instruments:
                if hasattr(tool, "item"):
                    if tool.item == '@CHOP_MACHETE': CHOP_MACHETE = tool.count
                    if tool.item == '@CHOP_AXE': CHOP_AXE = tool.count
                    if tool.item == '@CHOP_HAMMER': CHOP_HAMMER = tool.count
                    if tool.item == '@CHOP_TRIDENT': CHOP_TRIDENT = tool.count
            print u'Инструмента перед рубкой М-Т-К-Тр:', str(CHOP_MACHETE)+'-'+str(CHOP_AXE)+'-'+str(CHOP_HAMMER)+'-'+str(CHOP_TRIDENT)
            if (CHOP_MACHETE > 250 and CHOP_HAMMER > 250):
                self._get_game_state().many_chop = 1  # проставили many_chop если мачете и кирки за 250

            resources_dict = {resource : resource.x for resource in resources}
            resources_order = resources_dict.items()
            if not hasattr(self._get_game_state(), 'many_chop'): # рублено не много, будем сортировать
                resources_order.sort(key=lambda x: x[::-1], reverse=True)  # ресурсы отсортированные по X
            #print resources_order
            
            # Пинатель       
            if enemies:
                if not hasattr(self, 'enemies'):self.enemies = []
                for enemy in enemies:
                    if enemy.id in self.enemies:continue
                    print u'Шуганём сильвера '+str(enemy.id)
                    self._get_events_sender().send_game_events([{"type":"pirateEnemy","objId":enemy.id,"action":"hit"}])
                    self.enemies.append(enemy.id)
                    #self._get_game_location().remove_object_by_id(enemy.id)
            
            print u'Ресурсов видно:', len(resources_order)
            for resource in resources_order:
                resource = resource[0]
                #print 'Obj: ', resource.item.ljust(27, " "), ' id = ', resource.id
                #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
                    
                # сортируем что рубим, а что нет
                if (not hasattr(self._get_game_state(), 'many_chop')): # рублено не много, ограничиваем траты
                    if type_of_instrument == '@CIT_MACHETE':                     # мачете
                        pass
                    elif type_of_instrument == '@CIT_TRIDENT':                  # трезубец
                        pass
                    elif type_of_instrument == '@CIT_AXE':                       # топоры
                        if CHOP_AXE > 600 or tool_needed == 10 or tool_needed == 15 or tool_needed == 16 or tool_needed > 49:
                            pass
                        else: continue
                    elif type_of_instrument == '@CIT_HAMMER':                    # кирки
                        if ('CH_BLACKSTONE' in type_of_res) or ('CH_GREENSTONE' in type_of_res) or ('CH_WHITESTONE' in type_of_res) or ('CH_CRYSTALSTONE' in type_of_res) or tool_needed > 49:
                            pass
                        else: continue 
                
                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 not hasattr(tool, "item"):
                        print u'Нет итема', obj2dict(tool)
                        continue
                    if self._get_item_reader().get(tool.item).chopInstrumentType == type_of_instrument and tool.count > 0: #= 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
                        
                        # if type_of_instrument == '@CIT_HAMMER' and tool_needed == 100:
                            # tool_needed = 50
                            # logger.info(u'Снижаем удар киркой до 50')
                        
                        if tool.count < tool_needed:
                            if type_of_instrument == '@CIT_TRIDENT':
                                tool_needed = tool.count
                                logger.info(u'Рубим неполный')
                            else: continue

                        gain_event = {"type":"chop","objId":resource.id,"instruments":{self._get_item_reader().get(tool.item).id:tool_needed},"action":"chop"}
                        logger.info(u"Рубим " +str(self._get_item_reader().get(tool.item).id).ljust(13, ' ')+str(tool_needed).rjust(3, ' ')+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
                        if sklad:
                            #print 'type_of_instrument', type_of_instrument, 'tool.item', tool.item, 'ins', ins
                            self._get_game_state().remove_from_storage(tool.item, tool_needed)
                        break
            CHOP_MACHETE2 = 0
            CHOP_AXE2 = 0
            CHOP_HAMMER2 = 0
            CHOP_TRIDENT2 = 0
            for tool in instruments:
                if hasattr(tool, "item"):
                    if tool.item == '@CHOP_MACHETE': CHOP_MACHETE2 = tool.count
                    if tool.item == '@CHOP_AXE': CHOP_AXE2 = tool.count
                    if tool.item == '@CHOP_HAMMER': CHOP_HAMMER2 = tool.count
                    if tool.item == '@CHOP_TRIDENT': CHOP_TRIDENT2 = tool.count
            if  CHOP_MACHETE-CHOP_MACHETE2 or CHOP_AXE-CHOP_AXE2 or CHOP_HAMMER-CHOP_HAMMER2 or CHOP_TRIDENT-CHOP_TRIDENT2:
                print u'Инструмента после рубки  М-Т-К-Тр:', str(CHOP_MACHETE2)+'-'+str(CHOP_AXE2)+'-'+str(CHOP_HAMMER2)+'-'+str(CHOP_TRIDENT2)                
#        else:
#            logger.info("Не осталось ресурсов для добычи")
#            raw_input('-------------   END   ---------------')
            
        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("Нет неоткрытых сокровищ")
да и вскрывает как то тоже странно... если включить в game_engine BoxPickuper - натыкаясь на сильвера - циклическая перезагрузка... выключаю, после вырубки всего, много не вскрытых кладов остаётся, приходится вручную, из браузера открывать, а многие уже другими вскрыты(((
вот тоже подскажите что изменить? (сам пробовал, ошибки сыпет)

pickups.py
Код:
# coding=utf-8
import logging
from game_state.game_types import GamePickPickup, GamePickItem, GamePickup
from game_actors_and_handlers.base import BaseActor


logger = logging.getLogger(__name__)


class Pickuper(BaseActor):

    def perform_action(self):
        pickups = self._get_game_location().get_pickups()
        self.pick_pickups(pickups)

    def pick_pickups(self, pickups):
        if pickups:
            logger.info(u'Подбираем дроп...')
            
        all_pick = []
        for pickup in pickups:
            pick_event = GamePickPickup([pickup])
            all_pick += [pick_event]
        if len(all_pick)>0:
            self._get_events_sender().send_game_events(all_pick)
            for pickup in pickups:
                self._get_game_location().remove_pickup(pickup)
        '''        
        for pickup in pickups:
            pick_event = GamePickPickup([pickup])
            self._get_events_sender().send_game_events([pick_event])
            self._get_game_location().remove_pickup(pickup)'''


class BoxPickuper(BaseActor):

    def getOpeningPriceMsg(self, boxItem):
        openingPrice = boxItem.openingPrice[0]
        count = openingPrice.count
        item_name = self._get_item_reader().get(openingPrice.item).name
        price_msg = u'%d %s' % (count, item_name)
        return price_msg

    def perform_action(self):
        boxes = self._get_game_location().get_all_objects_by_type(
                                                    GamePickup.type)
        for box in boxes:
            name = self._get_item_reader().get_name(box)
            boxItem = self._get_item_reader().get(box.item)
            if not hasattr(boxItem, 'openingPrice'):
                logger.info(u'Вскрываем %s' % name)
                pick_event = GamePickItem(objId=box.id)
                self._get_events_sender().send_game_events([pick_event])
                self._get_game_location().remove_object_by_id(box.id)


class AddPickupHandler(object):
    def __init__(self, itemReader, game_location, game_state, setting_view):
        self.__game_loc = game_location
        self.__item_reader = itemReader
        self.__game_state_ = game_state
        self.__setting_view = setting_view

    def handle(self, event_to_handle):
        if event_to_handle is None:
            logger.critical("OMG! No such object")
            return
        else:
            tmp={}
            for pickup in event_to_handle.pickups:
                item_type_msg = {
                    'coins':
                        lambda pickup: u'денег',
                    'xp':
                        lambda pickup: u'опыта',
                    'collection':
                        lambda pickup: u'предмет(ов) коллекции ',
                    'storageItem':
                        lambda pickup: u'предмет(ов) ',
                    'shovel':
                        lambda pickup: u'лопат',
                    'scrapItem':
                        lambda pickup: u'шт. металлолома'
                }.get(pickup.type, lambda pickup: pickup.type)(pickup)
                if (pickup.type=='collection') or (pickup.type=='storageItem'):
                    item_type_msg = ('%s%s'%(item_type_msg,self.__item_reader.get(pickup.id).name))
                if item_type_msg in tmp.keys(): tmp[item_type_msg]+=pickup.count
                else: tmp[item_type_msg]=pickup.count
                # Добавление в game_state
                if hasattr(pickup, "id"):
                    self.__game_state_.add_from_storage('@'+pickup.id, pickup.count)
            if self.__setting_view['pickup']:
                if len(tmp.keys())>0:
                    for i in tmp.keys():
                        logger.info(u'Подобрали %d %s' % (tmp[i], i))
            self.__game_loc.add_pickups(event_to_handle.pickups)

Может этот пикапер поможет?
PHP код:
# coding=utf-8
import logging
from game_state
.game_types import GamePickPickupGamePickItemGamePickup
from game_actors_and_handlers
.base import BaseActor
from game_state
.game_event import dict2objobj2dict


logger 
logging.getLogger(__name__)


class 
Pickuper(BaseActor):

    
def perform_action(self):
        
pickups self._get_game_location().get_pickups()
        
self.pick_pickups(pickups)

    
def pick_pickups(selfpickups):
        if 
pickups:
            
logger.info(u'Подбираем дроп...')
            
        
all_pick = []
        for 
pickup in pickups:
            
pick_event GamePickPickup([pickup])
            
all_pick += [pick_event]
        if 
len(all_pick)>0:
            
self._get_events_sender().send_game_events(all_pick)
            for 
pickup in pickups:
                
self._get_game_location().remove_pickup(pickup)
        
'''        
        for pickup in pickups:
            pick_event = GamePickPickup([pickup])
            self._get_events_sender().send_game_events([pick_event])
            self._get_game_location().remove_pickup(pickup)'''


class BoxPickuper(BaseActor):

    
def getOpeningPriceMsg(selfboxItem):
        
openingPrice boxItem.openingPrice[0]
        
count openingPrice.count
        item_name 
self._get_item_reader().get(openingPrice.item).name
        price_msg 
u'%d %s' % (countitem_name)
        return 
price_msg

    def perform_action
(self):
        
_loc self._get_game_state().get_game_loc().get_location_id()                                                    
        if 
_loc in ('un_07''un_06''isle_gnome'): return     
        
boxes self._get_game_location().get_all_objects_by_type(GamePickup.type)
        for 
box in boxes:
            
name self._get_item_reader().get_name(box)
            
boxItem self._get_item_reader().get(box.item)
            if 
box.item == '@VALENT_GIFT_BOX6':
                continue
            if 
not hasattr(boxItem'openingPrice'):
                
enemies self._get_game_location().get_all_objects_by_type("pirateEnemy")
                
enemy_here 0
                
if enemies:
                    for 
enemy in enemies:
                        if(((
enemy.box.x)**2+(enemy.box.y)**2)**0.5 16):
                            
enemy_here 1
                            
break
                if(
enemy_here == 1):
                    
logger.info("Сильвер мешает вскрыть "+str(box.id))
                    continue
                
logger.info(u'Вскрываем %s' name)
                
pick_event GamePickItem(objId=box.id)
                
self._get_events_sender().send_game_events([pick_event])
                
self._get_game_location().remove_object_by_id(box.id)


class 
AddPickupHandler(object):
    
def __init__(selfitemReadergame_locationgame_statesetting_view):
        
self.__game_loc game_location
        self
.__item_reader itemReader
        self
.__game_state_ game_state
        self
.__setting_view setting_view

    def handle
(selfevent_to_handle):
        
pirate_locs_id = ["exploration_isle1_random","exploration_isle2_random","exploration_isle3_random","exploration_snow1","exploration_isle1_1","exploration_isle4_random"]
        
_loc self.__game_state_.get_location_id() # текущая локация
        
if event_to_handle is None:
            
logger.critical("OMG! No such object")
            return
        else:
            
tmp={}
            for 
pickup in event_to_handle.pickups:
                
item_type_msg = {
                    
'coins':
                        
lambda pickupu'денег',
                    
'xp':
                        
lambda pickupu'опыта',
                    
'collection':
                        
lambda pickupu'предмет(ов) коллекции ',
                    
'storageItem':
                        
lambda pickupu'предмет(ов) ',
                    
'shovel':
                        
lambda pickupu'лопат',
                    
'scrapItem':
                        
lambda pickupu'шт. металлолома'
                
}.get(pickup.typelambda pickuppickup.type)(pickup)
                if (
pickup.type=='collection') or (pickup.type=='storageItem'):
                    
item_type_msg = ('%s%s'%(item_type_msg,self.__item_reader.get(pickup.id).name))
                if 
item_type_msg in tmp.keys(): tmp[item_type_msg]+=pickup.count
                
else: tmp[item_type_msg]=pickup.count
                
# Добавление в game_state
                
if hasattr(pickup"id"):
                    
#print 'pickup', obj2dict(pickup)
                    #open('pickup.txt', 'a').write(str(obj2dict(pickup))+'\n')                
                    
if (_loc in pirate_locs_id) and (pickup.id == 'CHOP_MACHETE' or pickup.id == 'CHOP_AXE' or pickup.id == 'CHOP_HAMMER'):
                        
self.__game_state_.add_pirate_instruments('@'+pickup.idpickup.count)
                    else:
                        
self.__game_state_.add_from_storage('@'+pickup.idpickup.count)
            if 
self.__setting_view['pickup']:
                if 
len(tmp.keys())>0:
                    for 
i in tmp.keys():
                        
logger.info(u'Подобрали %d %s' % (tmp[i], i))

            
self.__game_loc.add_pickups(event_to_handle.pickups)  
            
            
class 
MonsterPit(BaseActor):

    
def perform_action(self):
        
monster self._get_game_location().get_all_objects_by_type('monsterPit')
        if (
len(monster) > 0):
            if (
monster[0].state == 'HAVE_PICKUP_BOX'):
                
monster_event = {
                    
'objId'str(monster[0].id),
                    
'type''item',
                    
'action''pick'
                    
}

                
logger.info(u'Забираем сундук монстра...')
                
self._get_events_sender().send_game_events([monster_event])

            if (
monster[0].state == 'READY_FOR_DIG'):
                
monster_event = {
                    
'objId'str(monster[0].id),
                    
'type''item',
                    
'action''startDig'
                    
}
                
logger.info(u'Зкапываем монстра...')
                
self._get_events_sender().send_game_events([monster_event]) 
  Ответить с цитированием
Старый 19.05.2015, 16:44   #4267
 Разведчик
Аватар для ЯСергей
 
ЯСергей никому не известный тип
Регистрация: 13.05.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Прошу прощения уважаемые гуру инета. А скрипта для сбора урожая аэропланом, для одноклассников нет? Смог прочитать только до 101 страницы и чуть не тронулся умом. Может кто поможет???
  Ответить с цитированием
Старый 21.05.2015, 18:56   #4268
 Разведчик
Аватар для ripton07
 
ripton07 никому не известный тип
Регистрация: 19.10.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ЯСергейПосмотреть сообщение
Прошу прощения уважаемые гуру инета. А скрипта для сбора урожая аэропланом, для одноклассников нет? Смог прочитать только до 101 страницы и чуть не тронулся умом. Может кто поможет???

А чё ботом не собирает?
  Ответить с цитированием
Старый 21.05.2015, 21:04   #4269
 Разведчик
Аватар для Danil010
 
Danil010 никому не известный тип
Регистрация: 14.05.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Никто не в курсе в чем ошибка?
  Ответить с цитированием
Старый 24.05.2015, 17:12   #4270
 Разведчик
Аватар для IForestI
 
IForestI никому не известный тип
Регистрация: 31.12.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Норм
  Ответить с цитированием
Старый 25.05.2015, 00:38   #4271
 Разведчик
Аватар для GadW1n
 
GadW1n никому не известный тип
Регистрация: 24.08.2011
Сообщений: 17
Популярность: 10
Сказал(а) спасибо: 9
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

пытаюсь походить по друзьям - выдаёт такое(((
Цитата:
2015-05-25 01:35:39,078
Traceback (most recent call last):
File "main.py", line 93, in <module>
run_game()
File "main.py", line 74, in run_game
Game(site, settings, UserPrompt(gui_input), gui_input=gui_input).start()
File "c:\Bot\kopk\game_engine.py", line 498, in start
self.eventLoop()
File "c:\Bot\kopk\game_engine.py", line 552, in eventLoop
self.perform_all_actions()
File "c:\Bot\kopk\game_engine.py", line 638, in perform_all_actions
actor.perform_action()
File "c:\Bot\kopk\game_actors_and_handlers\friends. py", line 46, in perform_ac
tion
curuser = self._get_options()[0][0]
TypeError: 'int' object has no attribute '__getitem__'

friends взят отсюда

Добавлено через 13 минут
Цитата:
Не согласованные файлы game_engine и okutils. Или от разных сборок/редакций или изменения проводимые в vkutils не вносили в okutils.
В частности что получает и возвращает метод def create_start_command

Всем же плевать. Они редактируют только под ВК, а остальное зачастую даже выпиливают из модулей.

целиком согласен... просто у всех сборная солянка из ботов, нет единообразия))) вот кто нибудь из "гуру" выложили бы доработанную на данный момент версию, под неё бы уже и дорабатывали люди))) ну это наверное мечты)))

Последний раз редактировалось GadW1n; 25.05.2015 в 00:52. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 25.05.2015, 05:17   #4272
Заблокирован
 Разведчик
Аватар для Cheater-84
 
Cheater-84 никому не известный тип
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Отправить сообщение для Cheater-84 с помощью Skype™
 
Exclamation Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от GadW1nПосмотреть сообщение
пытаюсь походить по друзьям - выдаёт такое(((

friends взят отсюда

Добавлено через 13 минут

целиком согласен... просто у всех сборная солянка из ботов, нет единообразия))) вот кто нибудь из "гуру" выложили бы доработанную на данный момент версию, под неё бы уже и дорабатывали люди))) ну это наверное мечты)))

Выкладывать никто не будет, так как потом начнется еще тыщу пятьсот вопросов - как и куда и опять будет много переделываний и переписываний, так что проще уж самому собрать, а иначе это будет бесконечное топтание на годном и том же месте, здесь столько вопросов, которые еще были почти с самого начала, просто кому-то лень прочиталь - "от и до". Я бы выложил бот, он у меня везде работает, даже на фейсбуке, но.....опять возникает НО. потом начнется все с самого начала - "как , куда и для чего, а как заменить, а что с этим делать и так далее.."

Помогите с ботом на "ВЕРНОСТЬ"
Изображения
Тип файла: jpg 1.jpg (98.4 Кб, 29 просмотров)

Последний раз редактировалось Cheater-84; 25.05.2015 в 07:14.
  Ответить с цитированием
Пользователь сказал cпасибо:
GadW1n (25.05.2015)
Старый 25.05.2015, 13:23   #4273
 Пехотинец
Аватар для vintets
 
vintets скоро будет известенvintets скоро будет известенvintets скоро будет известен
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от GadW1nПосмотреть сообщение
пытаюсь походить по друзьям - выдаёт такое(((

friends взят отсюда

Добавлено через 13 минут

целиком согласен... просто у всех сборная солянка из ботов, нет единообразия))) вот кто нибудь из "гуру" выложили бы доработанную на данный момент версию, под неё бы уже и дорабатывали люди))) ну это наверное мечты)))

Опять не тот game_engine, не передаются или не так передаются параметры в модуль.
  Ответить с цитированием
Старый 25.05.2015, 23:15   #4274
 Разведчик
Аватар для GadW1n
 
GadW1n никому не известный тип
Регистрация: 24.08.2011
Сообщений: 17
Популярность: 10
Сказал(а) спасибо: 9
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Выкладывать никто не будет, так как потом начнется еще тыщу пятьсот вопросов - как и куда и опять будет много переделываний и переписываний, так что проще уж самому собрать, а иначе это будет бесконечное топтание на годном и том же месте, здесь столько вопросов, которые еще были почти с самого начала, просто кому-то лень прочиталь - "от и до". Я бы выложил бот, он у меня везде работает, даже на фейсбуке, но.....опять возникает НО. потом начнется все с самого начала - "как , куда и для чего, а как заменить, а что с этим делать и так далее.."

и тут согласен, но... множество вопросов как раз таки и возникают от "солянки"))) сам стараюсь уйти от вопросов, если они не критичны... вот вчера выложил вопрос, и немного поискав, в выложенных ранее сборниках нашёл рабочее решение... но мне кажется это не совсем правильное решение, когда за каждую отдельную функцию бота отвечает "другая" сборка... приходится держать зоопарк ботов, каждый для своего, какой то основной - садит вконтакте, другой то в одноклассниках работает, третий на пиратских себя раскрывает, четвёртый по друзьям ходит, и так до бесконечности...
сменили разработчики чтото, вы тут выложили фикс - отлично!!! только фикс в одной сборке работает на ура, в другой - как то хромает... третью вообще ломает... а четвёртую забыл сразу обновить и через неделю хрен разберёшь что и куда))) поэтому то я за унификацию)))
извините уж за флуд...
  Ответить с цитированием
Старый 27.05.2015, 16:44   #4275
 Разведчик
Аватар для АлехВК
 
АлехВК никому не известный тип
Регистрация: 20.02.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от GadW1nПосмотреть сообщение
и тут согласен, но... множество вопросов как раз таки и возникают от "солянки"))) сам стараюсь уйти от вопросов, если они не критичны... вот вчера выложил вопрос, и немного поискав, в выложенных ранее сборниках нашёл рабочее решение... но мне кажется это не совсем правильное решение, когда за каждую отдельную функцию бота отвечает "другая" сборка... приходится держать зоопарк ботов, каждый для своего, какой то основной - садит вконтакте, другой то в одноклассниках работает, третий на пиратских себя раскрывает, четвёртый по друзьям ходит, и так до бесконечности...
сменили разработчики чтото, вы тут выложили фикс - отлично!!! только фикс в одной сборке работает на ура, в другой - как то хромает... третью вообще ломает... а четвёртую забыл сразу обновить и через неделю хрен разберёшь что и куда))) поэтому то я за унификацию)))
извините уж за флуд...

Я так же за унификацию, и пытался делать это с год назад на github там мой бот и лежит, но тогда особой поддержки не нашлось, хотя возможно плохо старался найти.
Сейчас же нужно все начинать с почти нуля, возможно выбрать не гитхаб а другой репозитарий, дабы в случае отсутствия кого-то одного проэкт работал дальше.
Кроме того нужна отдельная ветка обсуждение задач их реализации и контакт кто их сейчас реализует. Это можно в группе ВК организовать.

Добавлено через 6 часов 36 минут
Столкнулся тут с задачей, требуется сортировка по возрастанию/убыванию выбираемых для рубки/копания деревьев.
Как реализовать?
Насколько я понял то выбор дерева идет тут
фаил game_types.py
PHP код:
class GameWoodTree(GameType):
    
type 'woodTree'

    
def __init__(selfmaterialCount=None,  # @ReservedAssignment
                 
gainStarted=None,  # @ReservedAssignment
                 
y=None,  # @ReservedAssignment
                 
x=None,  # @ReservedAssignment
                 
id=None):  # @ReservedAssignment
        
assert (gainStarted is None
                
or isinstance(gainStartedbool))
        
assert (id is None
                
or isinstance(idlong))
        
assert (materialCount is None
                
or isinstance(materialCountlong))
        
assert (x is None
                
or isinstance(xlong))
        
assert (y is None
                
or isinstance(ylong))
        
self.gainStarted gainStarted
        self
.id id
        self
.item '@SC_OAK6'
        
self.materialCount materialCount
        self
.type 'woodTree'
        
self.x
        self
.
Но вот как сделать сортировку в этом я не осиливаю, да и в целом не совсем понимаю логику работы этого куска.

Последний раз редактировалось АлехВК; 27.05.2015 в 23:21. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] Zombot (Клиент для игры Зомби ферма) AnonProger Баги игр ВКонтакте 189 26.08.2014 15:50
[Статья] Небольшие секреты игры зомби ферма haussuper Баги игр ВКонтакте 11 26.01.2013 10:54
[Информация] Зомби Ферма dekirillov Баги игр ВКонтакте 40 22.10.2011 18:25

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 21:54.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net