Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от GirlKris
В одноклассниках появилась информация, что после обновления будут банить за спидхак. Так что решайте, запускать у себя бота или нет)))
Ну забанят... Ну и флаг им в руки. Будет больше времени... Собственно и так уже с ботом интерес к игре пропал... Так, заходишь раздать подарки да подивиться, что перешел на пару уровней... А вручную играть точно не буду...
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
помогите с запуском... [Ссылки могут видеть только зарегистрированные пользователи. ] с меня причитается думаю не много драгоценного время отнему у вас \ СЧАСТЬЕ ДЛЯ ВСЕХ, ДАРОМ, И ПУСТЬ НИКТО НЕ УЙДЁТ ОБИЖЕННЫЙ
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от mike4kz
Ну забанят... Ну и флаг им в руки. Будет больше времени... Собственно и так уже с ботом интерес к игре пропал... Так, заходишь раздать подарки да подивиться, что перешел на пару уровней... А вручную играть точно не буду...
Точно. Интерес начал пропадать ещё до бота. Замучило за...чество. Бот наоборот подогрел интерес. И пока все интересные места не решены интерес есть. Не будет бота и его развития в игру я точно ходить не буду.
Появление данного бота вызвало желание разобраться как он работает или хотя бы понять принципы для настройки. А многих изучение бота подтолкнуло к изучению программирования, хотя бы на минимальном уровне. Не так интересно накручивание уровней, как решение пока не решённой задачи, это приносит гораздо больше удовлетворения.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Cheater84
перекочевряжил бот для копки...переписал все под logger.info.....вот кусок лога
PHP код:
2014-02-28 00:41:24,701 Выбираем пользователя... 2014-02-28 00:41:27,381 Логинимся... 2014-02-28 00:41:27,390 Загружаем словарь объектов... 2014-02-28 00:41:29,372 Словарь объектов загружен 2014-02-28 00:41:29,374 Загружаем остров... 2014-02-28 00:41:32,372 Остров загружен! 2014-02-28 00:41:32,664 Идем к другу 2014-02-28 00:41:32,664 6745101591662640459 2014-02-28 00:41:32,664 1/2 2014-02-28 00:41:36,898 Получаем объекты у друга на острове 2014-02-28 00:41:40,783 Кладем пряники под ёлки 2014-02-28 00:41:42,592 Найдены объекты для копки 2014-02-28 00:41:42,592 D_SAKURASMALL 2014-02-28 00:41:43,177 Кладем пряники под ёлки 2014-02-28 00:41:43,177 Кладем пряники под ёлки 2014-02-28 00:41:43,398 Кладем пряники под ёлки 2014-02-28 00:41:43,398 Кладем пряники под ёлки 2014-02-28 00:42:17,717 Кладем пряники под ёлки 2014-02-28 00:43:05,440 Использовал: 2014-02-28 00:43:05,441 5 2014-02-28 00:43:05,441 лопат 2014-02-28 00:43:05,443 Вскрыли сундуков: 2014-02-28 00:43:05,443 3 2014-02-28 00:43:05,466 ingame error 2014-02-28 00:43:05,471 Connection : {'crc': 'f9683ce786208b1e03db925537acfe2e', 'data': '{"user":"436231466475891839","type":"EVT","id":1393533675218,"sig":"1a55bf06a6925dfcb7d6f825a970b9a5","events":[{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":-916}]}'} 2014-02-28 00:43:05,471 Response : {u'msg': u'ingame error', u'cmd': u'ERR', u'id': u'1393533675218'} 2014-02-28 00:43:05,473 Загружаем остров... 2014-02-28 00:43:08,492 Остров загружен! 2014-02-28 00:43:09,125 Идем к другу 2014-02-28 00:43:09,128 18318155742226352457 2014-02-28 00:43:09,128 2/2 2014-02-28 00:43:09,154 Возвращаемся домой ОБНОВИТЕ COUNTTFNYT.TXT!!!!!!
но нужно еще до ума довести....не понимаю в чем ошибка ....(((
а это кусок кода friends.py
PHP код:
# coding=utf-8 import sys import logging import random as random_number from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\ GamePickItem, GameWoodTree, GameGainItem, GamePickup, GameDigItem from game_state.game_event import dict2obj, obj2dict from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class VisitingUsers(BaseActor): def perform_action(self): #logger.info(u"######### Идем к другу ###########") #go_to_friend = {"action":"gameState","locationId":"main","user":'201018303',"objId":None,"type":"gameState"}#{"id":8,"action":"gameState","objId":null,"locationId":"main","user":"144371056","type":"gameState"} #,"id":46667 #friends = ['8477452','22656865','27505179','107183826','68030140','163206097']#'476111', friends = self._get_options() # Юдо Чудо #friends = ['[BOT]friend1','[BOT]friend2'] + friends friends = ['6745101591662640459','18318155742226352457'] objtypes = ['woodTree','stone','decoration','building'] myid = '0' #self._get_game_state().fdend = 1 self._get_game_state().shovel = 0 if not hasattr(self._get_game_state(),'countfnyt'): try: self._get_game_state().countfnyt = int(open('countfnyt.txt').read()) except: self._get_game_state().countfnyt = 0 open('countfnyt.txt', 'w').write('') if not hasattr(self._get_game_state(), 'countnyt'):self._get_game_state().countnyt = 0 if not hasattr(self._get_game_state(), 'sendNewYearGift'):self._get_game_state().sendNewYearGift = 0
if not hasattr(self._get_game_state(), 'gameObjects') and self._get_game_state().countfnyt < len(friends): user = friends[self._get_game_state().countfnyt] logger.info(u" Идем к другу "), logger.info(str(user)+" "), logger.info(str(self._get_game_state().countfnyt+1)+"/"+str(len(friends))), print " #########" self._get_events_sender().send_game_events([{"action":"gameState","locationId":"main","user":str(user),"objId":None,"type":"gameState"},{"type":"players","action":"getInfo","players":[str(user)]}]) self._get_game_state().countfnyt += 1 open('countfnyt.txt', 'w').write(str(self._get_game_state().countfnyt))
if hasattr(self._get_game_state(), 'gameObjects'):# and #open('objects.txt', 'a').write(str(friends[self._get_game_state().countfnyt])+"\n") logger.info(u"Получаем объекты у друга на острове") countnyt = 0 countmyg = 0 countpickup = 0 objssvl = [] objssvl2 = [] newyeartree = [] if hasattr(self._get_game_state(),'alldigged'):alldigged = 1 else: alldigged = 0 for object in self._get_game_state().gameObjects: if self._get_game_state().countnyt + countnyt < 148: if hasattr(object, 'type'): tf = 0 if object.type == 'newYearTree': tf = 1 usrs = len(object.users) #object.users = usrs #open('newyeartree.txt', 'a').write(str(obj2dict(object))+"\n") if tf == 1 and not hasattr(self._get_game_state(), 'nytend'): logger.info(u'Кладем пряники под ёлки') #open('gameObjects.txt', 'a').write(str(obj2dict(object))+"\n") #open('newyeartree.txt', 'a').write(object.item + " UsersGift:" + str(len(object.users)) + "\n") tf = 1 f = 0 #Ёлки разной ёмкости. указано не точно. if object.item == u'@B_SPRUCE_SMOLL' and len(object.users) < 3: f = 1 if object.item == u'@B_SPRUCE_MIDDLE' and len(object.users) < 6: f = 1 if object.item == u'@B_SPRUCE_BIG' and len(object.users) < 15: f = 1 #if object.item == u'@B_BASKETS_EASTER_1' and len(object.users) < 15: f = 1 #if object.item == u'@B_BASKETS_EASTER_2' and len(object.users) < 7: f = 1 #if object.item == u'@B_BASKETS_EASTER_3' and len(object.users) < 3: f = 1 for user in object.users: if 0 == myid: countmyg+=1#print "MyGift" f = 0 break
#if not check_no_my_gift(object.users): f = 1 if self._get_game_state().countnyt + countnyt > 151 or hasattr(self._get_game_state(),'nyna'): self._get_game_state().nytend = 1 print "################## END ####################" if f == 1: # Ложим пряник newyeartree.append(object) #open('newyeartree.txt', 'a').write(str(obj2dict(object)) + "\n") self._get_events_sender().send_game_events([{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id}]) countnyt+=1 #pass #else: print "NO" # Вскрываем сундук if tf == 0 and object.type == 'pickup': open('sunduki.txt', 'a').write(str(obj2dict(object)) + "\n") self._get_events_sender().send_game_events([{"action":"pick","type":"item","objId":object.id}]) countpickup+=1 tf = 2 # Добавляем в список объекты для копания клада if tf == 0 and alldigged == 0: favdecors = ['D_SAKURASMALL','D_REDTREE','D_CONIFER','D_GATE','D_STATUETTE'] for fdec in favdecors: if object.item[0-len(fdec):] == fdec: logger.info(u'Найдены объекты для копки'), logger.info(fdec) objssvl.insert(0, object) break else: for objtype in objtypes: #if self._get_game_state().shovel < 5 and object.type == objtype: self._get_events_sender().send_game_events([{"objId":object.id,"x":object.x,"action":"remoteDig","y":object.y,"type":"item"}]) # self._get_game_state().shovel += 1 if object.type == objtype: objssvl2.append(object) break if tf == 0 and object.type == 'monsterPit' and object.state == 'DIGGING': object.users = len(object.users) #open('monster.txt', 'a').write(str(obj2dict(object))+"\n") logger.info(u'Закапываем чудика ####') self._get_events_sender().send_game_events([{"itemId":"MONSTER_PIT_1_INSTRUMENT_PACK_DEFAULT","action":"remoteMonsterPit","type":"item","objId":object.id}]) mt = 3 if tf == 0: pass#open('objects.txt', 'a').write(str(obj2dict(object))+"\n") #if hasattr(self._get_game_state(),'playersInfo'): #open('objects.txt', 'a').write('-------------------------------------' + "\n") #open('objects.txt', 'a').write(str(obj2dict(self._get_game_state().playersInfo))+"\n")
try: mt except NameError: mt = 0 #if mt == 3:open('monster.txt', 'a').write(str(friends[self._get_game_state().countfnyt-1])+"\n"+'-------------------------------------' + "\n") countlop = 0 if len(objssvl) > 0: if objssvl == []: objssvl = objssvl2 for i in range(5): objdig = random_number.choice(objssvl) self._get_events_sender().send_game_events([{"objId":objdig.id,"x":objdig.x,"action":"remoteDig","y":objdig.y,"type":"item"}]) countlop+=1 logger.info(u"Использовал: "), logger.info(str(countlop)), logger.info(u" лопат") elif alldigged == 1: logger.info(u'Всё уже выкопано!') else: logger.info(u'Нечего копать!') logger.info(u"Вскрыли сундуков: "), logger.info(str(countpickup)) if hasattr(self._get_game_state(),'alldigged'): del self._get_game_state().alldigged del self._get_game_state().gameObjects self._get_game_state().countnyt += countnyt if not hasattr(self._get_game_state(), 'nytend'): for nyt in newyeartree: self._get_events_sender().send_game_events([{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":nyt.id}]) logger.info(u"поЛожил пряник(ов): "), logger.info(str(self._get_game_state().sendNewYearGift)+":"+str(self._get_game_state().countnyt)+"/"+str(countnyt)+" dub: "+str(countmyg)) self._get_game_state().shovel = 0 #if self._get_game_state().countfnyt + 1 > len(friends):sys.exit(0) if self._get_game_state().countfnyt < len(friends): logger.info(u"######### Идем к другу "), #logger.info(str(user)+" "), logger.info(str(self._get_game_state().countfnyt+1)+"/"+str(len(friends))), logger.info(" #########") self._get_events_sender().send_game_events([{"action":"gameState","locationId":"main","user":str(user),"objId":None,"type":"gameState"},{"type":"players","action":"getInfo","players":[str('user')]}]) self._get_game_state().countfnyt += 1 open('countfnyt.txt', 'w').write(str(self._get_game_state().countfnyt)) if self._get_game_state().countfnyt >= len(friends): #print '######## END #########' if not hasattr(self._get_game_state(), 'fdend'): logger.info( u"Возвращаемся домой ОБНОВИТЕ COUNTTFNYT.TXT!!!!!!" ) self._get_events_sender().send_game_events([{"action":"gameState","locationId":"main","type":"gameState"}])
если кто захочет заморочиться этим файликом пишите.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
В одноклассниках появилась информация, что после обновления будут банить за спидхак. Так что решайте, запускать у себя бота или нет)))
Не наводите смуту. speedhack - это функция для ускорения процессов. С ботом админы бороться не собирались, они несколько раз об этом говорили на своем радио.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Anch665
Не наводите смуту. speedhack - это функция для ускорения процессов. С ботом админы бороться не собирались, они несколько раз об этом говорили на своем радио.
Со спидхаком тоже не собирались вроде как.
А в принципе всё равно. Ну выкинут пол сотни человек с ботом + пару тысяч со спидхаком. Народ побурчит, погадит в группы и забросит игру. Последнее время частенько попадаются не играю/надоело/всё раздаю и т.п.
Это будет начало конца. Нужно силы бросать не на борьбу с мелкими упростителями жизни вроде нас, а на развитие, внесение новых фич: квестов, новых ПОЛНОЦЕННЫХ островов. Очень трудных но не тупых заданий.
Вносить изменения чтобы боты за ними не успевали.
Например сделать ещё один большой остров со сложной картой и за получение требовать списания 300 уровней+пару лярдов и маленьких пяток по 100 уровней. Или например раз в неделю случайное нашествие саранчи сжирающей Весь растущий урожай вместе с грядками. А на складе мышей сжирающих часть урожая. Нужно ввести опасность, чтобы на складах не хранили мегатоннами барахло.
Пусть постройки ломаются/изнашиваются или там метеориты в них попадают. Или смерч прошёл по острову и диагональной случайной полосой всё снёс к чертям и эта полоса ещё неделю "фонит"/горит на ней нельзя не сажать ни строить.
Ну или что там пусть разрабы думают.
То же пиратство. Плавают возят всякую хрень которая пылится на складе, не построить из неё ничего уникального-ценного... Ввести очень полезную постройку, но чтобы начать её строить нужно найти разрешение, которое может лежать в сундуке на пиратском с вероятностью 1/50.
Загадки там какие ввести чтобы сильвера "снять". А что сейчас подошёл руками помахал. А так: введи ответ на вопрос такой-то (случайный из отобранных пары сотен). Плевать что найдёшь их в интернете на соседней вкладке, хоть расшевелишься и может что полезное узнаешь.
Или поплыл на пиратский, а дома у тебя что нибудь спёрли, мол пока ты плавал твой бизнес центр разграбили к едреням.
Игрокам начиная с 100 уровня не к чему стремиться у них почти всё есть.
Или зомби... он ведь разлагается (плевать что стал человеком, гены и наследство). Бац и выпал глаз один и у тебя только пол экрана. Или оба и видишь мутно и только в центральном небольшом круглом пятне. Глаза нужно купить/сварить/выменять/получить за списание опыта-уровней (продумать баланс, например не более 1/4 что у тебя есть).
Сегодня в бизнес центре меняются на опыт розолилии, а через неделю бамбукоклубники.
По субботам нельзя грядки сажать - выходной, а по понедельникам мозги создавать - "не варят" после выходных.
Повора разной умелости. Новички варить умеют только простое. Сложное тоже умеют, но может не получится (получилось не то что задавал. Доучил их до Шэфов тоже могут накосячить, но очень редко, а могут вместе с рецептом сварить шедевр в виде 100000 опыта.
Закончили с негативом. Про позитив сами подумайте.
Короче работы непочатый край, а они "спидхак". Нужно делать так чтобы после 60 уровня без спидхака было очень трудно. А после 300 без замбота. Пусть народ разбирается вникает, а не хочешь вникать плати денюжку и купи встроенный спид. Вот и заработок. Либо ты развиваешься либо мышь каждый месяц новую покупай и в старости артрит
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось vintets; 04.03.2014 в 18:24.