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

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

-

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

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

Ответ
 
Опции темы
Старый 02.02.2016, 19:19   #4786
 Разведчик
Аватар для eTorres
 
eTorres никому не известный тип
Регистрация: 20.04.2012
Сообщений: 4
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 10 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Зомби Фермер 2.3.1

[Ссылки могут видеть только зарегистрированные пользователи. ]

Надо протестировать, могут быть баги
  Ответить с цитированием
Старый 02.02.2016, 20:36   #4787
 Разведчик
Аватар для Triumf2016
 
Triumf2016 никому не известный тип
Регистрация: 18.01.2016
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 14 раз(а) в 13 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от eTorresПосмотреть сообщение
Зомби Фермер 2.3.1

[Ссылки могут видеть только зарегистрированные пользователи. ]

Надо протестировать, могут быть баги

eTorres, а может темку сделать отдельно для этого бота?) а с вылавливаем бажков я помогу) уже имеются))

Добавлено через 29 минут
Цитата:
Сообщение от BezmenПосмотреть сообщение
У меня с новыми аккаунтами фбутилс неработает со старым аккаунтом работает там видимо какие-то изменения добавлены.А какие незнаю вот к примеру лог ошибки Connection: {'crc': 'f6c25012dddc559882d211a5f0512339', 'data': u'{"auth":"c5887bff69554a1a9b38fd387124432c","type ":"TIME","clientVersion":1441879202,"user":"100011 190765474","id":51,"key":"1454423961060"}'}
Response: {u'msg': u'user is not valid', u'cmd': u'ERR', u'id': u'51'}

Connection: {'crc': 'ae4e70dc9803b07c8f27d51816eed950', 'data': u'{"auth":"e05214615f176f0705aeef362ca5002f","type ":"TIME","clientVersion":1441879202,"user":"100011 190765474","id":57,"key":"1454423987221"}'}
Response: {u'msg': u'user is not valid', u'cmd': u'ERR', u'id': u'57'} и так бесконечно пробовал 3 аккаунта новые такая вот петрушка

у меня тоже новые акки не работают, а старый который отдал работает, не знаю в чем проблема
________________
Помогите с ботом Клондайк

Последний раз редактировалось Triumf2016; 02.02.2016 в 21:05. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 03.02.2016, 13:30   #4788
 Разведчик
Аватар для viver9
 
viver9 никому не известный тип
Регистрация: 27.04.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от BezmenПосмотреть сообщение
У меня с новыми аккаунтами фбутилс неработает со старым аккаунтом работает там видимо какие-то изменения добавлены.А какие незнаю вот к примеру лог ошибки Connection: {'crc': 'f6c25012dddc559882d211a5f0512339', 'data': u'{"auth":"c5887bff69554a1a9b38fd387124432c","type ":"TIME","clientVersion":1441879202,"user":"100011 190765474","id":51,"key":"1454423961060"}'}
Response: {u'msg': u'user is not valid', u'cmd': u'ERR', u'id': u'51'}

Connection: {'crc': 'ae4e70dc9803b07c8f27d51816eed950', 'data': u'{"auth":"e05214615f176f0705aeef362ca5002f","type ":"TIME","clientVersion":1441879202,"user":"100011 190765474","id":57,"key":"1454423987221"}'}
Response: {u'msg': u'user is not valid', u'cmd': u'ERR', u'id': u'57'} и так бесконечно пробовал 3 аккаунта новые такая вот петрушка

"user":"100011 190765474"
я не уверен но мне кажется что дело в иде пользователя.
  Ответить с цитированием
Старый 03.02.2016, 19:55   #4789
 Разведчик
Аватар для Bezmen
 
Bezmen никому не известный тип
Регистрация: 04.08.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от viver9Посмотреть сообщение
"user":"100011 190765474"
я не уверен но мне кажется что дело в иде пользователя.

С ид всё в порядке.Бот от Woowap отлично заходит логинится и тд но мне нужен Zombot так как у него функционал больше Знать бы какие изменения
  Ответить с цитированием
Старый 03.02.2016, 20:36   #4790
 Разведчик
Аватар для maroder912
 
maroder912 никому не известный тип
Регистрация: 18.11.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

В чем причина когда бот работает на одном острове работает без перебоев,а по всем островам постоянно пишет timeout occured
  Ответить с цитированием
Старый 03.02.2016, 21:12   #4791
 Разведчик
Аватар для viver9
 
viver9 никому не известный тип
Регистрация: 27.04.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от BezmenПосмотреть сообщение
С ид всё в порядке.Бот от Woowap отлично заходит логинится и тд но мне нужен Zombot так как у него функционал больше Знать бы какие изменения

тоесть ты хочешь сказать что это твой ид??? "100011 190765474"
тебе даже сервер сообщение кидает что пользователь не правильный. 'user is not valid'
но конечно я могу ошибаться. может у всех в фейсбуке ид через пробел))
кинь свой fbutils попробую у себя.
  Ответить с цитированием
Старый 03.02.2016, 21:58   #4792
 Разведчик
Аватар для Bezmen
 
Bezmen никому не известный тип
Регистрация: 04.08.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от viver9Посмотреть сообщение
тоесть ты хочешь сказать что это твой ид??? "100011 190765474"
тебе даже сервер сообщение кидает что пользователь не правильный. 'user is not valid'
но конечно я могу ошибаться. может у всех в фейсбуке ид через пробел))
кинь свой fbutils попробую у себя.

Это сообщение так форум изменил так ид слитно идёт.Повторюсь это новые созданные аккаунты так себя ведут старые заходят хорошо без нареканий!!!Но Ботом Woowap новые аккаунты работают также как и старые но у него бот написан на PHP как там соединение идёт незнаю
fbutils.py
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось Bezmen; 03.02.2016 в 22:03.
  Ответить с цитированием
Старый 04.02.2016, 03:12   #4793
 Разведчик
Аватар для viver9
 
viver9 никому не известный тип
Регистрация: 27.04.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от BezmenПосмотреть сообщение
Это сообщение так форум изменил так ид слитно идёт.Повторюсь это новые созданные аккаунты так себя ведут старые заходят хорошо без нареканий!!!Но Ботом Woowap новые аккаунты работают также как и старые но у него бот написан на PHP как там соединение идёт незнаю
fbutils.py
[Ссылки могут видеть только зарегистрированные пользователи. ]

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

userID='свой_ид'
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 04.02.2016, 04:50   #4794
 Разведчик
Аватар для Макс124
 
Макс124 никому не известный тип
Регистрация: 02.04.2015
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от maroder912Посмотреть сообщение
В чем причина когда бот работает на одном острове работает без перебоев,а по всем островам постоянно пишет timeout occured

Да вообще уже ботом невозможно пользоваться...(( Это тебе еще везет что у тебя только когда по островам бегает выкидывает timeout occured, у меня из за обилия рыбаков он с домашки даже убежать не успевает. А когда все 6 основных аков запускаешь разом так еще и вылетать начинает(там тоже как бы по 28 островам каждый из них должен бегать). Клонов не оживить, пол часа уходит на 30 штук, а раньше уходило минуты 3 максимум, да и 6 основных никогда не вылетали... Короче вообще беда...(( Надеюсь, что кто нибудь подскажет как эту болезнь побороть!
  Ответить с цитированием
Старый 04.02.2016, 10:38   #4795
 Разведчик
Аватар для Bezmen
 
Bezmen никому не известный тип
Регистрация: 04.08.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

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

userID='свой_ид'
[Ссылки могут видеть только зарегистрированные пользователи. ]

Спасибо дружище ну хотя бы так на время подставил ид действительно стало работать!!Ну может кто нибудь из знающих запилит потом по возможности парсер а пока можно и так.Правда на каждый акаунт отдельную папку с ботом но это уже мелочи.
  Ответить с цитированием
Старый 04.02.2016, 13:27   #4796
 Разведчик
Аватар для ripton07
 
ripton07 никому не известный тип
Регистрация: 19.10.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Друзья, у кого рабочий модуль на закопку соседей есть??? Есть два, этот делает вид что закапывает, пишет свободный слот-> закапываю, а по сути ничего не делает( правда 1 раз всё же двоих закопал, чудом не иначе)
[SPOILER="Первый"]
Код:
## coding=utf-8
import logging
from game_state.game_event import dict2obj, obj2dict
from game_actors_and_handlers.base import BaseActor
from game_state.game_types import GameWoodTree, GameStone
import sys
##############################
from ctypes import windll
import sys
##############################
#import sys.stdout
logger = logging.getLogger(__name__)

class DigBot(BaseActor):
   
    def perform_action(self):
        friends = self._get_options()
        if friends == [] or friends == None:
            return
        #print 'friends ', friends
    
        i=0
        freeslots=[]
        #open('burySlots.txt', 'w').write(str(obj2dict(self._get_game_state().get_state().burySlots)))
        for burySlot in self._get_game_state().get_state().burySlots:
            if not hasattr(burySlot, 'user'):
                #print str(i) + " " + 'Free'
                freeslots.append(i)
            i+=1
                #else:
                    #print str(i) + " " + burySlot.user
        
        if freeslots == []: return #если все слоты заняты выходим из функции
        
        friendsslot=[]
        for slot in freeslots:
            print u'Слот свободен: ' + str(slot+1)
            friendsslot.append(friends[slot])
        
        #обратный счетчик раскопки
        if hasattr(self._get_game_state(), 'digOut'):
            self._get_game_state().digOut -= 1
            #print self._get_game_state().digOut
            if self._get_game_state().digOut < 0: 
                del self._get_game_state().digOut
            else: return

        if hasattr(self._get_game_state(), 'playersInfo'):
            #players_info = self._get_game_state().evinf
            players_info = self._get_game_state().playersInfo
            print 'playersInfo:', len(players_info)
        else:
            self._get_events_sender().send_game_events([{"type":"players","action":"getInfo","players":friendsslot}])
            print u'Запрашиваем инфу о друзьях'
            return
        
        for slot in freeslots:
            #print u'обрабатываем слот', slot+1
            #self._get_events_sender().send_game_events([{"type":"players","action":"getInfo","players":friends[slot]}])
            #print u'Запрашиваем/обновляем инфу о друге'        
            load = False
            for info in players_info:
                if friends[slot] == str(info.id):
                    load = True
                    break
            if load:
                if hasattr(info, 'buried'):
                    print u'Раскапываем: ', str(info.id) 
                    cook_event = {"user":str(info.id),"type":"bury","action":"digOut"}
                    self._get_events_sender().send_game_events([cook_event])
                    del info.buried
                    if not hasattr(self._get_game_state(), 'digOut'):
                        self._get_game_state().digOut = 2
                    continue

                text = u'Закапываем: '
                text += u' в слот '+str(slot+1)
                print text
                cook_event = {"action":"bury","type":"bury","user":str(info.id),"slot":slot}
                self._get_events_sender().send_game_events([cook_event])
                self._get_game_state().get_state().burySlots[slot].user = friends[slot]
[/SPOILER]




И второй, этот исправно показывает, что все четыре слота свободны и количество друзей такое-то, вобщем и на том спасибо. Вроде никогда их не использовал, а тут понадобились и оказалось где то собака порылась.
Код:
# coding=utf-8
import logging
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import dict2obj, obj2dict
from message_factory import Session
import sys
from ctypes import windll
import time
logger = logging.getLogger(__name__)

stdout_handle = windll.kernel32.GetStdHandle(-11)
SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute

class DigBot(BaseActor):

    def perform_action(self):
        friends = self._get_options()[0]
        myid = self._get_options()[1]

        #обратный счетчик раскопки
        if hasattr(self._get_game_state(), 'digOut'):
            if self._get_game_state().digOut > time.time():
                return
            else:
                del self._get_game_state().digOut

        #если закопаны, раскапываемся
        try: Buried = self._get_game_state().get_state().buriedBy
        except: Buried = None
        if Buried:
            SetConsoleTextAttribute(stdout_handle, 0x0005 | 0x0078)
            print (u'!!!! Раскапываемся !!!!').encode('cp866')
            SetConsoleTextAttribute(stdout_handle, 0x0001 | 0x0078)
            sys.stdout.flush()
            self._get_events_sender().send_game_events([{"user":str(myid),"slot":-1,"type":"bury","action":"digOut"}])
            self._get_game_state().digOut = time.time() + 32
            Buried = None
            del self._get_game_state().get_state().buriedBy
            return

        if friends == [] or friends == None:
            return

        i = 0
        freeslots = []
        #open('burySlots.txt', 'w').write(str(obj2dict(self._get_game_state().get_state().burySlots)))
        for burySlot in self._get_game_state().get_state().burySlots:
            if not hasattr(burySlot, 'user'):
                #print str(i) + " " + 'Free'
                freeslots.append(i)
            i += 1
                #else:
                    #print str(i) + " " + burySlot.user

        if freeslots == []: return #если все слоты заняты выходим из функции

        friendsslot = []
        for slot in freeslots:
            print u'Слот свободен: ' + str(slot + 1)
            friendsslot.append(friends[slot])

        if hasattr(self._get_game_state(), 'playersInfo'):
            players_info = self._get_game_state().playersInfo
            print 'playersInfo:', len(players_info)
        else:
            self._get_events_sender().send_game_events([{"type":"players","action":"getInfo","players":friendsslot}])
            print u'Запрашиваем инфу о друзьях'
            return

        for slot in freeslots:
            #print u'обрабатываем слот', slot+1
            #self._get_events_sender().send_game_events([{"type":"players","action":"getInfo","players":friends[slot]}])
            #print u'Запрашиваем/обновляем инфу о друге'
            load = False
            for info in players_info:
                if str(friends[slot]) == str(info.id):
                    load = True
                    break

            if load:
                if hasattr(info, 'buried'):
                    print u'Раскапываем: ', str(info.id)
                    cook_event = {"user":str(info.id),"type":"bury","action":"digOut"}
                    self._get_events_sender().send_game_events([cook_event])
                    del info.buried
                    self._get_game_state().digOut = time.time() + 5

                text = u'Закапываем: '+str(info.id)
                if hasattr(info, 'name') and info.name:
                    text += u' ' + info.name
                text += u' в слот '+str(slot+1)
                print text
                cook_event = {"action":"bury","type":"bury","user":str(info.id),"slot":slot}
                self._get_events_sender().send_game_events([cook_event])
                self._get_game_state().get_state().burySlots[slot].user = friends[slot]


На всякий случай вот мой game_engine [Ссылки могут видеть только зарегистрированные пользователи. ]

P.S. Как тут под сполер прятать???

Последний раз редактировалось ripton07; 04.02.2016 в 13:36.
  Ответить с цитированием
Старый 04.02.2016, 13:39   #4797
 Разведчик
Аватар для viver9
 
viver9 никому не известный тип
Регистрация: 27.04.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от BezmenПосмотреть сообщение
Спасибо дружище ну хотя бы так на время подставил ид действительно стало работать!!Ну может кто нибудь из знающих запилит потом по возможности парсер а пока можно и так.Правда на каждый акаунт отдельную папку с ботом но это уже мелочи.

вот более удобный код. просто введи сразу ид страницы и ид игры для каждого фейка.

userIDS={
'ид_страницы':'ид_игры',
'ид_страницы':'ид_игры',
'ид_страницы':'ид_игры',
}
if userID in userIDS.keys():
userID=userIDS[userID]

[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 04.02.2016, 15:38   #4798
 Разведчик
Аватар для Bezmen
 
Bezmen никому не известный тип
Регистрация: 04.08.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 5 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от viver9Посмотреть сообщение
вот более удобный код. просто введи сразу ид страницы и ид игры для каждого фейка.

userIDS={
'ид_страницы':'ид_игры',
'ид_страницы':'ид_игры',
'ид_страницы':'ид_игры',
}
if userID in userIDS.keys():
userID=userIDS[userID]

[Ссылки могут видеть только зарегистрированные пользователи. ]

Да так работает хорошо тоже только отступ подправить
PHP код:
        userIDS={
        
'ид_страницы':'ид_игры',
        
'ид_страницы':'ид_игры',
        
'ид_страницы':'ид_игры',}
        if 
userID in userIDS.keys():userID=userIDS[userID
Спасибо еще раз!
  Ответить с цитированием
Старый 04.02.2016, 17:27   #4799
 Разведчик
Аватар для Triumf2016
 
Triumf2016 никому не известный тип
Регистрация: 18.01.2016
Сообщений: 2
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 14 раз(а) в 13 сообщениях
 
Exclamation Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Всем привет форумчане!) кому интересен Python и программирование на нем, прошу посетить мою тему - тема

Спасибо всем за ранее!

Добавлено через 2 часа 2 минуты
Цитата:
Сообщение от ripton07Посмотреть сообщение
Друзья, у кого рабочий модуль на закопку соседей есть??? Есть два, этот делает вид что закапывает, пишет свободный слот-> закапываю, а по сути ничего не делает( правда 1 раз всё же двоих закопал, чудом не иначе)
[SPOILER="Первый"]
Код:
## coding=utf-8
import logging
from game_state.game_event import dict2obj, obj2dict
from game_actors_and_handlers.base import BaseActor
from game_state.game_types import GameWoodTree, GameStone
import sys
##############################
from ctypes import windll
import sys
##############################
#import sys.stdout
logger = logging.getLogger(__name__)

class DigBot(BaseActor):
   
    def perform_action(self):
        friends = self._get_options()
        if friends == [] or friends == None:
            return
        #print 'friends ', friends
    
        i=0
        freeslots=[]
        #open('burySlots.txt', 'w').write(str(obj2dict(self._get_game_state().get_state().burySlots)))
        for burySlot in self._get_game_state().get_state().burySlots:
            if not hasattr(burySlot, 'user'):
                #print str(i) + " " + 'Free'
                freeslots.append(i)
            i+=1
                #else:
                    #print str(i) + " " + burySlot.user
        
        if freeslots == []: return #если все слоты заняты выходим из функции
        
        friendsslot=[]
        for slot in freeslots:
            print u'Слот свободен: ' + str(slot+1)
            friendsslot.append(friends[slot])
        
        #обратный счетчик раскопки
        if hasattr(self._get_game_state(), 'digOut'):
            self._get_game_state().digOut -= 1
            #print self._get_game_state().digOut
            if self._get_game_state().digOut < 0: 
                del self._get_game_state().digOut
            else: return

        if hasattr(self._get_game_state(), 'playersInfo'):
            #players_info = self._get_game_state().evinf
            players_info = self._get_game_state().playersInfo
            print 'playersInfo:', len(players_info)
        else:
            self._get_events_sender().send_game_events([{"type":"players","action":"getInfo","players":friendsslot}])
            print u'Запрашиваем инфу о друзьях'
            return
        
        for slot in freeslots:
            #print u'обрабатываем слот', slot+1
            #self._get_events_sender().send_game_events([{"type":"players","action":"getInfo","players":friends[slot]}])
            #print u'Запрашиваем/обновляем инфу о друге'        
            load = False
            for info in players_info:
                if friends[slot] == str(info.id):
                    load = True
                    break
            if load:
                if hasattr(info, 'buried'):
                    print u'Раскапываем: ', str(info.id) 
                    cook_event = {"user":str(info.id),"type":"bury","action":"digOut"}
                    self._get_events_sender().send_game_events([cook_event])
                    del info.buried
                    if not hasattr(self._get_game_state(), 'digOut'):
                        self._get_game_state().digOut = 2
                    continue

                text = u'Закапываем: '
                text += u' в слот '+str(slot+1)
                print text
                cook_event = {"action":"bury","type":"bury","user":str(info.id),"slot":slot}
                self._get_events_sender().send_game_events([cook_event])
                self._get_game_state().get_state().burySlots[slot].user = friends[slot]
[/SPOILER]




И второй, этот исправно показывает, что все четыре слота свободны и количество друзей такое-то, вобщем и на том спасибо. Вроде никогда их не использовал, а тут понадобились и оказалось где то собака порылась.
Код:
# coding=utf-8
import logging
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import dict2obj, obj2dict
from message_factory import Session
import sys
from ctypes import windll
import time
logger = logging.getLogger(__name__)

stdout_handle = windll.kernel32.GetStdHandle(-11)
SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute

class DigBot(BaseActor):

    def perform_action(self):
        friends = self._get_options()[0]
        myid = self._get_options()[1]

        #обратный счетчик раскопки
        if hasattr(self._get_game_state(), 'digOut'):
            if self._get_game_state().digOut > time.time():
                return
            else:
                del self._get_game_state().digOut

        #если закопаны, раскапываемся
        try: Buried = self._get_game_state().get_state().buriedBy
        except: Buried = None
        if Buried:
            SetConsoleTextAttribute(stdout_handle, 0x0005 | 0x0078)
            print (u'!!!! Раскапываемся !!!!').encode('cp866')
            SetConsoleTextAttribute(stdout_handle, 0x0001 | 0x0078)
            sys.stdout.flush()
            self._get_events_sender().send_game_events([{"user":str(myid),"slot":-1,"type":"bury","action":"digOut"}])
            self._get_game_state().digOut = time.time() + 32
            Buried = None
            del self._get_game_state().get_state().buriedBy
            return

        if friends == [] or friends == None:
            return

        i = 0
        freeslots = []
        #open('burySlots.txt', 'w').write(str(obj2dict(self._get_game_state().get_state().burySlots)))
        for burySlot in self._get_game_state().get_state().burySlots:
            if not hasattr(burySlot, 'user'):
                #print str(i) + " " + 'Free'
                freeslots.append(i)
            i += 1
                #else:
                    #print str(i) + " " + burySlot.user

        if freeslots == []: return #если все слоты заняты выходим из функции

        friendsslot = []
        for slot in freeslots:
            print u'Слот свободен: ' + str(slot + 1)
            friendsslot.append(friends[slot])

        if hasattr(self._get_game_state(), 'playersInfo'):
            players_info = self._get_game_state().playersInfo
            print 'playersInfo:', len(players_info)
        else:
            self._get_events_sender().send_game_events([{"type":"players","action":"getInfo","players":friendsslot}])
            print u'Запрашиваем инфу о друзьях'
            return

        for slot in freeslots:
            #print u'обрабатываем слот', slot+1
            #self._get_events_sender().send_game_events([{"type":"players","action":"getInfo","players":friends[slot]}])
            #print u'Запрашиваем/обновляем инфу о друге'
            load = False
            for info in players_info:
                if str(friends[slot]) == str(info.id):
                    load = True
                    break

            if load:
                if hasattr(info, 'buried'):
                    print u'Раскапываем: ', str(info.id)
                    cook_event = {"user":str(info.id),"type":"bury","action":"digOut"}
                    self._get_events_sender().send_game_events([cook_event])
                    del info.buried
                    self._get_game_state().digOut = time.time() + 5

                text = u'Закапываем: '+str(info.id)
                if hasattr(info, 'name') and info.name:
                    text += u' ' + info.name
                text += u' в слот '+str(slot+1)
                print text
                cook_event = {"action":"bury","type":"bury","user":str(info.id),"slot":slot}
                self._get_events_sender().send_game_events([cook_event])
                self._get_game_state().get_state().burySlots[slot].user = friends[slot]


На всякий случай вот мой game_engine [Ссылки могут видеть только зарегистрированные пользователи. ]

P.S. Как тут под сполер прятать???



модуль burrowing - код

модуль base - код

в game_engine -

PHP код:
from game_actors_and_handlers.burrowing import DigBot 
в game_engine, class Game() - там где #load settings

PHP код:
self.__selected_burrowing settings.getUserDigBot() 
далее где -
PHP код:
def create_all_actors(self): 
тык

далее в settings.ini - friends = [] в [4 id клонов или известных соседей] вид friends = ['123', '456', '789', '101112']

вроде все правильно описал...если что отпишись
________________
Помогите с ботом Клондайк

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

Цитата:
Сообщение от ripton07Посмотреть сообщение
Друзья, у кого рабочий модуль на закопку соседей есть??? Есть два, этот делает вид что закапывает, пишет свободный слот-> закапываю, а по сути ничего не делает( правда 1 раз всё же двоих закопал, чудом не иначе)

И второй, этот исправно показывает, что все четыре слота свободны и количество друзей такое-то, вобщем и на том спасибо. Вроде никогда их не использовал, а тут понадобились и оказалось где то собака порылась.

Второй правильный. Это мой 1 в 1. Работает как часы.
Ты неправильно в game_engine ему параметры передаёшь.
Вместо
PHP код:
'DigBot':self.__friendsid
должно быть
PHP код:
'DigBot':[self.__selected_dig_friends,my_id], 
Естественно в конструкторе def __init__ класса class Game(): делжно быть получение из сеттинга
PHP код:
self.__selected_dig_friends settings.getUserDig() 
И в самом setting.ini должен быть метод getUserDig()

Ещё в модуль передаётся my_id - это наш id нужен для раскопки. Либо тянуть его через пол бота (у меня), либо указать вручную.
Ну и вариант: выпилить раскапывание из бурровинга убрав передачу my_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, время: 06:39.

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