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

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

-

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

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

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

Цитата:
Сообщение от Cheater84Посмотреть сообщение
я не добавлял еще friend_dig на GitHub....времени мало там разбираться...было бы намного удобнее если бы здесь можно было подправлять и дописывать коды не копируя их и заново не вставляя...и к тому же я не дописывал копание у друзей,данного бота я не писал,так что с копкой помочь не могу.

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


где то был...как найду выложу. Извиняюсь за код,писал не я,но надеюсь люди доведут и допишут до ума,желательно бы в отдельный модуль....


PHP код:
# coding=utf-8
import logging
from game_actors_and_handlers
.base import BaseActor
from game_state
.game_types import GameApplyGiftEventGameGift
from game_state
.game_event import dict2objobj2dict
from game_state
.game_types import GamePickPickupGamePickItemGamePickup
from game_actors_and_handlers
.base import BaseActor
##############################
from ctypes import windll
import sys

stdout_handle 
windll.kernel32.GetStdHandle(-11)
SetConsoleTextAttribute windll.kernel32.SetConsoleTextAttribute
##############################
logger logging.getLogger(__name__)


class 
VisitingUsers(BaseActor):
    
    
def perform_action(self):
        
#frends_ids = self._get_options()
        #seeds = ['P_06','P_23','P_10','P_13']
        
'''
        for itemid in self._get_game_state().get_state().storageItems:
            #for seed in seeds:
                #seedm = seed.replace('
P_', '@S_')
                if hasattr(itemid, "item"):# and itemid.item[:3] == "@S_":
                    try:
                        name = self._get_item_reader().get('
P_'+itemid.item[3:]).name
                    except:
                        name = "N/A"
                   # print type(name)
                    count = self._get_game_state().count_in_storage(itemid.item)
                    #print name[:-1]
                    open('
storage.txt', 'a').write((name+": "+str(count)+"\t\t"+itemid.item+"\n").encode('utf-8', 'ignore'))
                    print u'
########   Готово ! ! !  ########'
        
'''
        
        if not hasattr(self._get_game_state(),'
vgbstp'):
            location = self._get_game_state().get_game_loc().get_location_id()
            if location != '
isle_x':
                change_location_event = {
                    "user": None,
                    "locationId" : '
isle_x',
                    "type":"gameState",
                    "action":"gameState",
                    "objId": None,
                    "extraId":None
                    }
                print u'
Переходим на Остров X'
                self._get_events_sender().send_game_events([change_location_event])
            if not hasattr(self._get_game_state(),'
gifo'):
                self._get_game_state().vgb = []
                gifts = list(set(self._get_game_state().get_state().gifts))
                #cou = 0
                for gift in gifts:
                    #open('
gifts.txt', 'a').write(gift.item + "\t" + str(gift.count) + "\n")
                    if gift.item == '
@VALENT_GIFT_BOX1':
                        self._get_game_state().vgb.append(gift)
                self._get_game_state().gifo = 1
                self._get_game_state().gifcou = 0
            else:
                gift = self._get_game_state().vgb[self._get_game_state().gifcou]
                    
                apply_event={
                    "x":38, # А вот тут остается надеяться что по координатам ничего нет
                    "y":48, #
                    "extraId":252058,
                    "action":"applyCompGift",
                    "itemId":"VALENT_GIFT_BOX1",
                    "type":"item",
                    "objId":gift.id
                    }
                print u'
Устанавливаем подарок'
                apply_gift_event = GameApplyGiftEvent(GameGift(gift.id))
                self._get_events_sender().send_game_events([apply_event])
                self._get_game_state().gifcou += 1
                #print u'
Открываем подарок'
                    #cou+=1
            #if not hasattr(self._get_game_state(),'
vgbstp'):self._get_game_state().vgbstp = 1
                    
                
                
                #open('
giftsVGB.txt', 'a').write(str(obj2dict(gift)) + "\n")
            SetConsoleTextAttribute(stdout_handle, 0x0004 | 0x0008)
            print u'
########   Готово ! ! !  ########  ',
            
sys.stdout.flush()
            
SetConsoleTextAttribute(stdout_handle0x0007 0x0008)
            print 
str(cou)
            
sys.stdout.flush()
            
SetConsoleTextAttribute(stdout_handle0x0002 0x0008

(вроде как работает но по одному ставит
он настроен на @VALENT_GIFT_BOX1)

А для простых смертных можно сказать куда этот код вставлять?И что в нем изменить чтоб работал?И будет ли он работать с новым подарком зомбиллето?

Последний раз редактировалось bosoi; 14.02.2014 в 12:06. Причина: дописать информацию
  Ответить с цитированием
Старый 14.02.2014, 12:24   #1022
 Разведчик
Аватар для dark-dragon
 
dark-dragon никому не известный тип
Регистрация: 30.08.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Оказывается рулетку надо крутануть.

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

Добавлено через 6 минут
Кто подскажет, что нужно прописать в код, чтобы бот при получении ошибки на эвент от сервера не ребутился? Нужно прогнать цикл, а бот после ошибки начинает все с начала, цука.

Последний раз редактировалось dark-dragon; 14.02.2014 в 12:31. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 14.02.2014, 14:13   #1023
 Разведчик
Аватар для lokanaft
 
lokanaft никому не известный тип
Регистрация: 03.12.2010
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 5 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от Anch665Посмотреть сообщение
периодически вылетает

Надо проверочку воткнуть:
Код:
                    if hasattr(game, 'playsCount'):
                        plays = building.playsCounts.__dict__
                        if game_id in plays:
                            if plays[game_id] >= game.playsCount:
                                continue
У меня просто не вылетал.
  Ответить с цитированием
Старый 14.02.2014, 16:08   #1024
 Разведчик
Аватар для 4erepaha89
 
4erepaha89 никому не известный тип
Регистрация: 18.12.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Как сделать проверку на наличие инструмента в складе? Бот рулетки норм крутит на новом острове, но при рубке вылетает:

[2014-02-14 15:01:10,131] Вы выиграли Кирка(15 шт.)
[2014-02-14 15:01:10,131] Вы выиграли Топор(15 шт.)
[2014-02-14 15:01:10,134] Вы выиграли Кирка(15 шт.)
[2014-02-14 15:01:10,134] Вы выиграли Мачете(15 шт.)
[2014-02-14 15:01:10,184] Рубим Тропический камень с помощью 50 Кирка
[2014-02-14 15:01:10,479] Рубим Валун с помощью 15 Кирка
[2014-02-14 15:01:10,815] Нет неоткрытых сокровищ
[2014-02-14 15:01:20,273] Подбираем дроп...
[2014-02-14 15:01:20,756] Рубим Валун с помощью 15 Кирка
[2014-02-14 15:01:21,059] ingame error

Chop модуль взял Anch665

Код:
          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
хотя проверка есть, но почему он продолжает рубить, если инструмента не хватает

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

Цитата:
Сообщение от Cheater84Посмотреть сообщение
...
где то был...как найду выложу. Извиняюсь за код,писал не я,но надеюсь люди доведут и допишут до ума,желательно бы в отдельный модуль....
...

Зафигачил по своему. Боролся с отваливанием сервера, если вскрывается много.

В gifts.py строку
PHP код:
self.remove_gift_from_game_state(gift
сдвигаем вправо на 1 блок (4 пробела).

В game_engine.py дописываем вверху
PHP код:
from game_actors_and_handlers.premium_gifts import PremiumGifts 
и ниже там где выбор добавляем
PHP код:
PremiumGifts# Принятие платных выставляемых подарков 
Сам модуль с прописанным зомбилетто:
PHP код:
# coding=utf-8
import logging
from game_actors_and_handlers
.base import BaseActor
from game_state
.game_types import GameApplyGiftEventGameGift
from game_state
.game_event import dict2objobj2dict
from game_state
.game_types import GamePickPickupGamePickItemGamePickup
from game_actors_and_handlers
.base import BaseActor
#from ctypes import windll
import sys
import time

logger 
logging.getLogger(__name__)

class 
PremiumGifts(BaseActor):
    
    
def perform_action(self):
        
location_id "main"
        
specified_gift '@VALENT_GIFT_BOX6'  # зомбилетто
        
free_x 96  # Координаты пустого места
        
free_y 5
        
        location 
self._get_game_state().get_game_loc().get_location_id()
        if 
location == location_id:
            
gifts = list(set(self._get_game_state().get_state().gifts))
            
num 0
            
for gift in gifts:
                if 
gift.item == specified_gift:
                    for 
co in range(gift.count):                    
                        
next_id self._get_game_state().get_state().gameObjects[-1].id 1   
                        apply_event
={
                            
"x":free_x
                            
"y":free_y,
                            
"extraId":gift.id,
                            
"action":"applyCompGift",
                            
"itemId":specified_gift[1:],
                            
"type":"item",
                            
"objId":next_id 
                            
}
                        print 
u'Устанавливаем подарок 'co 
                        self
._get_events_sender().send_game_events([apply_event])
                        
#print u'Открываем подарок'
                        
open_event={"action":"pick","type":"item","objId":next_id}
                        
self._get_events_sender().send_game_events([open_event])
                        
num += 1
                        
if not num 500:
                            
time.sleep(2)
                            break
                    if 
num 499:
                        break
                    
self._get_game_state().get_state().gifts.remove(gift)
            
logger.info(u"  ------------------------------------  ")
            
logger.info(u"Приняли и вскрыли "+str(num)+u" шт. "+specified_gift)
            
logger.info(u"  ------------------------------------  "
Что делать с количеством решайте сами. Я кучу элементов коллекций не подобрал пока эксперементировал. Где тот предел - не знаю.
Вложения
Тип файла: zip premium_gifts.zip (1.1 Кб, 122 просмотров)
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Последний раз редактировалось vintets; 14.02.2014 в 17:23.
  Ответить с цитированием
Пользователь сказал cпасибо:
CheloveKkK (23.07.2015)
Старый 14.02.2014, 17:54   #1026
 Разведчик
Аватар для dark-dragon
 
dark-dragon никому не известный тип
Регистрация: 30.08.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
но почему он продолжает рубить, если инструмента не хватает

Потому что:
1. писалась эта проверка с расчетом уже достаточного количества инструментов на складе.
2. не было и нету как проверить


Вот кусок кода, заточенный "правильно" (проверьте, у кого есть возможность)

PHP код:
          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.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
                    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("Не осталось ресурсов для добычи"
Использовал тут код с разбиением камней весом 100 на 2 по 50.

Добавлено через 14 минут
ЗЫ. Посмотрел сейчас, код не правильный будет на разбиение больших камней. Нужно переделывать, кто использует. В данном случае вроде вырубает половину и просто удаляет оставшееся с острова. Необходимо 2-ю рубку делать.

Последний раз редактировалось dark-dragon; 14.02.2014 в 18:08. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 14.02.2014, 18:18   #1027
 Разведчик
Аватар для lokanaft
 
lokanaft никому не известный тип
Регистрация: 03.12.2010
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 5 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Не знаю, зачем большие камни бить по 50 - у меня если и выпадает череп, то только один раз. А может 2 выпасть при рубке 100.
  Ответить с цитированием
Старый 14.02.2014, 18:24   #1028
 Разведчик
Аватар для dark-dragon
 
dark-dragon никому не известный тип
Регистрация: 30.08.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от lokanaftПосмотреть сообщение
Не знаю, зачем большие камни бить по 50 - у меня если и выпадает череп, то только один раз. А может 2 выпасть при рубке 100.

Я обычно валуны рублю вручную в 2 этапа - 60 и 40. Зачастую на 60 падает от 2 до 6 черепов (рандом, мать его). А на 40 уже так, что выпадет. Когда целиком или по 50, то зачастую порожняки сыпят.
  Ответить с цитированием
Старый 14.02.2014, 20:05   #1029
 Пехотинец
Аватар для vintets
 
vintets скоро будет известенvintets скоро будет известенvintets скоро будет известен
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Добавка. Всё то же самое, только не с подарками, а покупка у себя.
Спешите.

...значит некуда. Левый нижний угол на домашнем координаты 14-12. Освободить.
Если не хотите править гифт или он не стандартный, временно отключите прием подарков обычных.
сам включил покупку уже когда домой доехал. На сейчас намотало 30 уровней.
Кто покупает, вы выставили сколько денег оставлять?

... у меня около 18:00 совсем всё отвалилось. Нагрузка на сервер большая, все кинулись, вот и отваливается.
количество обязательно уменьшите с 500 (в 2 местах) если подарки. Если покупка у меня по 300 по умолчанию как часы.

... там где числа 500 и 499. Блин, товарищи, там всего 65 строк.

... Я не знаю что у вас. Сборок развелось...
Ну принты повставляйте. Если всё сделать правильно -работает.
[Ссылки могут видеть только зарегистрированные пользователи. ]
Вложения
Тип файла: zip premium_gifts.zip (1.3 Кб, 73 просмотров)
________________

Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).

Последний раз редактировалось vintets; 15.02.2014 в 15:44.
  Ответить с цитированием
Пользователь сказал cпасибо:
CheloveKkK (23.07.2015)
Старый 14.02.2014, 20:17   #1030
 Разведчик
Аватар для JohnMorgan
 
JohnMorgan никому не известный тип
Регистрация: 14.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

У меня почему-то не работает модуль на принятие подарка "Зомбилетто" .Подробности я расписал Вам в ЛС.Помогите,пожалуйста
  Ответить с цитированием
Старый 14.02.2014, 20:30   #1031
 Разведчик
Аватар для ichi88
 
ichi88 никому не известный тип
Регистрация: 06.08.2011
Сообщений: 21
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от JohnMorganПосмотреть сообщение
У меня почему-то не работает модуль на принятие подарка "Зомбилетто" .Подробности я расписал Вам в ЛС.Помогите,пожалуйста

остров домашний ? =)
  Ответить с цитированием
Старый 14.02.2014, 20:35   #1032
 Разведчик
Аватар для JohnMorgan
 
JohnMorgan никому не известный тип
Регистрация: 14.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Домашний,конечно

Добавлено через 2 минуты
Я чую,что что-то не так у меня с файлом gifts.py Ибо слишком уж много в него странного напихано :В

Последний раз редактировалось JohnMorgan; 14.02.2014 в 20:37. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 14.02.2014, 20:56   #1033
 Разведчик
Аватар для ichi88
 
ichi88 никому не известный тип
Регистрация: 06.08.2011
Сообщений: 21
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от JohnMorganПосмотреть сообщение
Домашний,конечно

Добавлено через 2 минуты
Я чую,что что-то не так у меня с файлом gifts.py Ибо слишком уж много в него странного напихано :В

координаты =)
  Ответить с цитированием
Старый 14.02.2014, 21:11   #1034
 Разведчик
Аватар для JohnMorgan
 
JohnMorgan никому не известный тип
Регистрация: 14.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

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

Не разбивает зомбилетто у меня. пишет выставлено @VALENT_GIFT_BOX6 = 0
  Ответить с цитированием
Ответ


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

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

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

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

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net