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

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

-

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

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

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

Цитата:
А можете поделиться своим файликом chop.py ?

а то я так и не понял как сделать чтобы рубил на упсовых. прочитал половину ветки.

Не понял куда это воткнуть.

файл chop.py
PHP код:
# coding=utf-8
import logging
#import pdb
from game_state.game_types import GameWoodGraveGameWoodGraveDouble,\
    
GamePickItemGameWoodTreeGameStoneGameGainItemGamePickup
from game_state
.game_event import dict2objobj2dict
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):
        
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"]
        
# Не понятно, что это за острова в списке ???? - Пушистый 1,2,3 и Подземелье 1,2
        #"exploration_furry1","exploration_furry2","exploration_furry3","exploration_isle_un1_1","exploration_isle_un1_2"

        
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

#Старый модуль, работает с ошибками
          
for resource in resources:
            
resource_name self._get_item_reader().get_name(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:
                
name_tool self._get_item_reader().get_name(tool)
                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.resource.x)**2+(enemy.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(u"Сильвер мешает вырубке " resource_name)
                        break
                    
#А что черепа никому не нужны? Почему никто не рубит камни по 100 сериями по 50?
#Я обычно валуны рублю вручную в 2 этапа - 60 и 40. Зачастую на 60 падает от 2 до 6 черепов (рандом, мать его). 
#А на 40 уже так, что выпадет. Когда целиком или по 50, то зачастую порожняки сыпят.
#ЗЫ. Посмотрел сейчас, код не правильный будет на разбиение больших камней. 
#Нужно переделывать, кто использует. В данном случае вроде вырубает половину и просто удаляет оставшееся с острова. 
#Необходимо 2-ю рубку делать.
                    #if tool_needed == 100:
                    #    tool_needed = 50 
                    # Рубим мелкими партиями, по 4 шт, для фейков
                    #if tool_needed > 8:
                    #    tool_needed = 4 


                    
gain_event = {"type":"chop","objId":resource.id,"instruments":{self._get_item_reader().get(tool.item).id:tool_needed},"action":"chop"}
                    
logger.info(u"Рубим " resource_name u" с помощью " str(tool_needed) + u" " name_tool)
                    
self._get_events_sender().send_game_events( [gain_event] )
                    
self._get_game_location().remove_object_by_id(resource.id)
                    
tool.count -= tool_needed
                    
break
        else:
            
logger.info("Не осталось ресурсов для добычи")
        
resources self._get_game_location().get_all_objects_by_type("pirateCaptureObject")
        if 
resources:
            for 
resource in resources:
                
resource_name self._get_item_reader().get_name(resource)
                
enemy_here 0
                
if enemies:
                    for 
enemy in enemies:
                        if(((
enemy.resource.x)**2+(enemy.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(u"Сильвер мешает взять " resource_name)
                    continue
                
gain_event = {"type":"pirateCapture","objId":resource.id,"action":"capture"}
                
logger.info(u"Открываем " resource_name)
                
self._get_events_sender().send_game_events( [gain_event] )
                
self._get_game_location().remove_object_by_id(resource.id)
        else:
            
logger.info("Нет неоткрытых сокровищ")







#Новый модуль, нужно проверить
'''
          for resource in resources:
            resource_name = self._get_item_reader().get_name(resource)
            tool_needed = resource.chopCount
            type_of_res = resource.item
            type_of_instrument = self._get_item_reader().get(type_of_res).chopInstrumentType
            _i = -1
            for tool in instruments:
                _i += 1
                name_tool = self._get_item_reader().get_name(tool)
                if self._get_item_reader().get(tool.item).chopInstrumentType == type_of_instrument and tool.count >= tool_needed:
                    dell = instruments.pop(_i)
                    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(u"Сильвер мешает вырубке " + resource_name)
                        break
                    if tool_needed == 100:
                        tool_needed = 50
                    gain_event = {"type":"chop","objId":resource.id,"instruments":{self._get_item_reader().get(tool.item).id:tool_needed},"action":"chop"}
                    logger.info(u"Рубим " + resource_name + u" с помощью " + str(tool_needed) + u" " + name_tool)
                    self._get_events_sender().send_game_events( [gain_event] )
                    self._get_game_location().remove_object_by_id(resource.id)
                    dell.count -= tool_needed
                    instruments.insert(_i,dell)
                    break
                    
        else:
            logger.info("Не осталось ресурсов для добычи") ''' 
вот сам файл-смени на расширение _.py(где _ твой файл)
P.S в пещере все вырубил до основания
Вложения
Тип файла: txt chop.txt (8.3 Кб, 41 просмотров)
  Ответить с цитированием
Старый 24.03.2014, 12:45   #1517
 Разведчик
Аватар для Just1cEE
 
Just1cEE никому не известный тип
Регистрация: 25.10.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Подскажите можно ли с помощью бота перекидывать коллекции с одного аккаунта на другой? И как это осуществить
  Ответить с цитированием
Старый 24.03.2014, 13:00   #1518
 Разведчик
Аватар для alexx48743
 
alexx48743 никому не известный тип
Регистрация: 10.10.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от Cheater-84Посмотреть сообщение
файл chop.py


вот сам файл-смени на расширение _.py(где _ твой файл)
P.S в пещере все вырубил до основания

Вот что вышло

ImportError: cannot import name PirateTreeInfo
  Ответить с цитированием
Старый 24.03.2014, 13:15   #1519
 Разведчик
Аватар для Kapez
 
Kapez никому не известный тип
Регистрация: 12.12.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Народ! Ну, помогите мне запустить эту чертову хреновину на майле. Все перепробовал , ошибку выдает собака.
  Ответить с цитированием
Старый 24.03.2014, 13:19   #1520
Заблокирован
 Разведчик
Аватар для Cheater-84
 
Cheater-84 никому не известный тип
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Отправить сообщение для Cheater-84 с помощью Skype™
 
Exclamation Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от alexx48743Посмотреть сообщение
Вот что вышло

ImportError: cannot import name PirateTreeInfo

удали в game_engine эту строку,что бы было вот так!

PHP код:
from game_actors_and_handlers.chop import PirateTreeCut 
  Ответить с цитированием
Старый 24.03.2014, 13:25   #1521
Заблокирован
 Разведчик
Аватар для Cheater-84
 
Cheater-84 никому не известный тип
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Отправить сообщение для Cheater-84 с помощью Skype™
 
Exclamation Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Друзья! помогите довести до нужной кондиции модуль wand,очищаю с помощью его острова в одноклассниках и бот ведет себя неадекватно,раньше вис полностью,я немного поколдовал над ним,но все еще как то не корректно он функционирует...

PHP код:
# coding=utf-8
import logging
from game_state
.game_types import GameWoodGraveGameWoodGraveDouble,\
    
GamePickItemGameWoodTreeGameStoneGameGainItemGamePickup
from game_state
.game_event import dict2obj
from game_actors_and_handlers
.base import BaseActor

logger 
logging.getLogger(__name__)


class 
MagicWand(BaseActor):

    
def get_object_type(self):
        return 
GameWoodTree.type and GameWoodTree.type

    def perform_action
(self):
        
resources self._get_game_location().get_all_objects_by_type(self.get_object_type())
        
        for 
resource in resources:
            
resource_name self._get_item_reader().get_name(resource)
                
        while(
resources):
            
# make sure gain is not started yet
            
resource self.__find_first_gain_not_started(resources)
            if 
not resource:
                
logger.info(u"Все ресурсы уже добываются")
                break
            else:
                for 
_ in range(resource.materialCount):
                    
gain_event = {"action":"magic","type":"item","objId":resource.id}
                    
logger.info(u"Добываем палочкой" +resource_name)
                    
self._get_events_sender().send_game_events( [gain_event] )
                    
resource.gainStarted True
        
else:
            
logger.info(u"Не осталось ресурсов для добычи")

    
def __find_first_gain_not_started(selfresources):
        for 
resource in resources:
            if 
not resource.gainStarted:
                return 
resource 
Вложения
Тип файла: txt wand.txt (1.6 Кб, 3 просмотров)
  Ответить с цитированием
Старый 24.03.2014, 13:28   #1522
 Разведчик
Аватар для alexx48743
 
alexx48743 никому не известный тип
Регистрация: 10.10.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от Cheater-84Посмотреть сообщение
удали в game_engine эту строку,что бы было вот так!

PHP код:
from game_actors_and_handlers.chop import PirateTreeCut 

Спасибо большое!
  Ответить с цитированием
Старый 24.03.2014, 13:44   #1523
 Пехотинец
Аватар для vintets
 
vintets скоро будет известенvintets скоро будет известенvintets скоро будет известен
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от lokanaftПосмотреть сообщение
Добавлено через 1 час 9 минут
В копалке не работает проверка, на "можно копать или нет". Поэтому он просто отсылает запросы на копку. Надо сразу дроп подбирать и если его нет, значит копать нельзя, мне кажется.

Там тупо перепутана очерёдность проверки. Сначала проверяется попало ли что нибудь в список, если да-копает, если нет... проверяет а можно ли вообще копать
Нужно поменять местами.


Цитата:
Сообщение от Cheater-84Посмотреть сообщение
файл chop.py
"#Старый модуль, работает с ошибками"

Это почему он работает с ошибками? Всё работает отлично. Только если рубить частями, там одной проверки не хватает.
Там где было удаление из базы
PHP код:
self._get_game_location().remove_object_by_id(resource.id
должно быть
PHP код:
                        if resource.chopCount == tool_needed:
                            
self._get_game_location().remove_object_by_id(resource.id)
                        else:
                            
resource.chopCount -= tool_needed 

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

Цитата:
Цитата:
Сообщение от lokanaft

Добавлено через 1 час 9 минут
В копалке не работает проверка, на "можно копать или нет". Поэтому он просто отсылает запросы на копку. Надо сразу дроп подбирать и если его нет, значит копать нельзя, мне кажется.


Там тупо перепутана очерёдность проверки. Сначала проверяется попало ли что нибудь в список, если да-копает, если нет... проверяет а можно ли вообще копать
Нужно поменять местами.

подскажи пожалуйста в какой строке поменять?...наведи на путь истинный!)))
  Ответить с цитированием
Старый 24.03.2014, 14:32   #1525
 Разведчик
Аватар для PriKolist666
 
PriKolist666 никому не известный тип
Регистрация: 23.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

мдааа.. пересиает колл каким то левим типам .. за что вы так с нами а?Уважаемие отправители ботов..

CollIt=obj2dict(self._get_game_state().get_state() .collectionItems)
send_user = self._get_options()['send_user']
# "26586292"
if send_user<>None:
for item_id in CollIt.keys():
#print item_id+'\t-\t'+str(CollIt[item_id])
#{"gift":{"item":"@CR_53","msg":"","count":1,"user ":"176312587"},"action":"sendGift","id":55,"type": "gift"}
#{"gift":{"msg":"","item":"C_4_1","count":1,"user" :"26586292"},"action":"sendGift","type":"gift"}
if CollIt[item_id]>0:
send_gift={
"item":'@'+item_id,
"msg":"",
"count":CollIt[item_id],
"user":send_user
}
event=GameSendGift(gift=send_gift)
self._get_events_sender().send_game_events([event])
#print 'Otpravleno\t'+str(CollIt[item_id])+'\t'+item_id
logger.info(u"Отправили %d '%s' пользователю %d"%(CollIt[item_id],self._get_item_reader().get(item_id).name,int(sen d_user)))
self._get_game_state().remove_from_storage('@'+ite m_id, CollIt[item_id])
CollIt[item_id]=0
self._get_game_state().get_state().collectionItems =dict2obj(CollIt)
  Ответить с цитированием
Старый 24.03.2014, 14:41   #1526
 Разведчик
Аватар для Just1cEE
 
Just1cEE никому не известный тип
Регистрация: 25.10.2011
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от PriKolist666Посмотреть сообщение
мдааа.. пересиает колл каким то левим типам .. за что вы так с нами а?Уважаемие отправители ботов..

CollIt=obj2dict(self._get_game_state().get_state() .collectionItems)
send_user = self._get_options()['send_user']
# "26586292"
if send_user<>None:
for item_id in CollIt.keys():
#print item_id+'\t-\t'+str(CollIt[item_id])
#{"gift":{"item":"@CR_53","msg":"","count":1,"user ":"176312587"},"action":"sendGift","id":55,"type": "gift"}
#{"gift":{"msg":"","item":"C_4_1","count":1,"user" :"26586292"},"action":"sendGift","type":"gift"}
if CollIt[item_id]>0:
send_gift={
"item":'@'+item_id,
"msg":"",
"count":CollIt[item_id],
"user":send_user
}
event=GameSendGift(gift=send_gift)
self._get_events_sender().send_game_events([event])
#print 'Otpravleno\t'+str(CollIt[item_id])+'\t'+item_id
logger.info(u"Отправили %d '%s' пользователю %d"%(CollIt[item_id],self._get_item_reader().get(item_id).name,int(sen d_user)))
self._get_game_state().remove_from_storage('@'+ite m_id, CollIt[item_id])
CollIt[item_id]=0
self._get_game_state().get_state().collectionItems =dict2obj(CollIt)

Это в каком файле ты нашел ?
  Ответить с цитированием
Старый 24.03.2014, 14:44   #1527
 Пехотинец
Аватар для vintets
 
vintets скоро будет известенvintets скоро будет известенvintets скоро будет известен
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от Cheater-84Посмотреть сообщение
подскажи пожалуйста в какой строке поменять?...наведи на путь истинный!)))

PHP код:
if len(objssvl) > or len(objssvl2) > 0:
    
Всё что в этом блоке вместе с условием
elif alldigged 
== 1:
    
Меняем местами с этим блоком 
  Ответить с цитированием
Старый 24.03.2014, 14:47   #1528
 Разведчик
Аватар для PriKolist666
 
PriKolist666 никому не известный тип
Регистрация: 23.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

storage.py
так же такие строки есть в settings.py

Последний раз редактировалось PriKolist666; 24.03.2014 в 14:52.
  Ответить с цитированием
Старый 24.03.2014, 14:52   #1529
 Пехотинец
Аватар для vintets
 
vintets скоро будет известенvintets скоро будет известенvintets скоро будет известен
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от PriKolist666Посмотреть сообщение
мдааа.. пересиает колл каким то левим типам .. за что вы так с нами а?Уважаемие отправители ботов..

CollIt=obj2dict(self._get_game_state().get_state() .collectionItems)
send_user = self._get_options()['send_user']
# "26586292"
if send_user<>None:
for item_id in CollIt.keys():
#print item_id+'\t-\t'+str(CollIt[item_id])
#{"gift":{"item":"@CR_53","msg":"","count":1,"user ":"176312587"},"action":"sendGift","id":55,"type": "gift"}
#{"gift":{"msg":"","item":"C_4_1","count":1,"user" :"26586292"},"action":"sendGift","type":"gift"}
if CollIt[item_id]>0:
send_gift={
"item":'@'+item_id,
"msg":"",
"count":CollIt[item_id],
"user":send_user
}
event=GameSendGift(gift=send_gift)
self._get_events_sender().send_game_events([event])
#print 'Otpravleno\t'+str(CollIt[item_id])+'\t'+item_id
logger.info(u"Отправили %d '%s' пользователю %d"%(CollIt[item_id],self._get_item_reader().get(item_id).name,int(sen d_user)))
self._get_game_state().remove_from_storage('@'+ite m_id, CollIt[item_id])
CollIt[item_id]=0
self._get_game_state().get_state().collectionItems =dict2obj(CollIt)

О чём это ты? Во первых так было с самого начала. Эти ЗАКОММЕНТИРОВАННЫЕ строки вставил ещё разработчик. Id принимающего аккаунта вставляется в файл ini.

В указанном тобой куске проблем не вижу.
  Ответить с цитированием
Старый 24.03.2014, 14:56   #1530
 Разведчик
Аватар для PriKolist666
 
PriKolist666 никому не известный тип
Регистрация: 23.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

ясно! розраб хитрец я как то не заметил что они закоментирование)) я просто изменил ихние id на ид своего фейка)
  Ответить с цитированием
Ответ


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

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, время: 22:30.

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