|
Zombot (Клиент для игры Зомби ферма) [Обсуждение] - Свободное обсуждение - Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей |
02.05.2014, 16:41
|
#2146
|
|
|
|
Разведчик
|
Регистрация: 14.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
02.05.2014, 18:24
|
#2147
|
|
|
|
Разведчик
|
Регистрация: 06.07.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
ОСТРОВ ТОТ,ГРЯДКИ ЕСТЬ, ДЕНЬГИ ЕСТЬ! МИНУТКИ АКТИВИРОВАНЫ! ПОВАРА НЕ СТОЯТ!
|
|
|
02.05.2014, 19:20
|
#2148
|
|
|
|
Разведчик
|
Регистрация: 01.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
за звездочетов кто-нибудь знает?. Бот вылетает после выгона этих товарищей на работу.
|
|
|
|
|
|
Добавлю, что ошибка
PHP код:
File "C:\P\game_actors_amd_handlers\digger_graves.py", line 66, in handle gameObject.gainTime = event_to_handle.gainTime AttributeError: 'GameSrartTimeGain' object has no attribute 'gainTime'
возникает не только после выгона звездочетов но и рыбаков, которые требуют мозги.
Модуль написан mike4kz-ом, кто-то знает как решить проблему?)
Последний раз редактировалось Znewf; 02.05.2014 в 19:22.
|
|
|
02.05.2014, 21:44
|
#2149
|
|
|
|
Разведчик
|
Регистрация: 25.02.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
вот бьем Сильвера в теме не нашел может надо кому
PHP код:
if not enemies:
open('.\counts\\SilverHit.txt','w').write('')
for object in self._get_game_location().get_game_objects():
if object.type == 'pirateEnemy':
hitsilver = open('.\counts\\SilverHit.txt','r').read()
if not str(object.id) in hitsilver:
gain_event = {"action":"hit","objId":object.id,"type":"pirateEnemy"}
open('.\counts\\SilverHit.txt','a').write(str(object.id)+',')
self._get_events_sender().send_game_events( [gain_event] )
counthealt = object.health-1
self.cprint(u'5БЬЮ СИЛЬВЕРА^7_id:%s^2_осталось добить^6_%d^2_раза'%(str(object.id),counthealt))
вставляем в chop.py
и кстати не нашел где храниться инфа о том что я уже ударил сильвера поэтому сделал пока так,хотя так нормально работает.Может кто знает подскажите
и да self.cprint кто не пользует поменяйте на
PHP код:
logger.info(u'БЬЮ СИЛЬВЕРА %s осталось добить %d раз(а)'%(str(object.id),counthealt))
Последний раз редактировалось greyzza; 02.05.2014 в 22:40.
|
|
|
03.05.2014, 03:50
|
#2150
|
|
|
|
Разведчик
|
Регистрация: 23.08.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
и кстати не нашел где храниться инфа о том что я уже ударил сильвера поэтому сделал пока так,хотя так нормально работает.
|
|
|
|
|
|
Честно говоря, я плаваю только со своими клонами, причем запускаю всех одновременно. Сильвера бью у всех, так что проблем со счетчиком не возникает. Возможно если плыть куда-то матросом, и ждать, пока кто-то другой дойдет до того же Сильвера...
Кстати, в некоторых случаях можно вместо внешнего текстового файла использовать переменные в game_state.py. Например, если поставить в файле в:
PHP код:
class GameState():
def __init(self,start_response,item_reader):
self.test = 'abc'
...то потом из того же файла chop.py ее значение можно будет вызывать через:
PHP код:
self._get_game_state().test
То есть если туда, например, сохранять стукнутых Сильверов как list, а потом вызывать по мере надобности, то можно обойтись и без файла.
С другой стороны если игру перезапустить, то переменная обнулится, а статус на сервере останется, что вызовет ingame_error.
|
|
|
03.05.2014, 04:06
|
#2151
|
|
|
|
Разведчик
|
Регистрация: 01.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
подскажите можно как-то исключать возможность кручения рулеток рядом с сильвером, допустим есть запросы на кручение рулеток с ошибками
PHP код:
"events":[{"action":"play","type":"game","objId":-7450,"extraId":"B_PIRATE_SLOT_ROULETTE"}]}'}
как создать словарик исключений ошибочных рулеток, чтоб бот игнорировал на эвент такие рулетки из словаря и прокручивал только те рулетки которым не мешает сильвер
|
|
|
03.05.2014, 05:42
|
#2152
|
|
|
|
Разведчик
|
Регистрация: 17.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Выбираешь поиск в этой теме. Пишешь "рулетки сильвер" и ... вуаля
|
|
|
03.05.2014, 09:23
|
#2153
|
|
|
|
Разведчик
|
Регистрация: 25.02.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
03.05.2014, 10:52
|
#2154
|
|
|
|
Разведчик
|
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
в модуле digger_graves вставляем это-
PHP код:
class TimeGainEventHandler(object):
def __init__(self, item_reader, game_location, timer):
self.__item_reader = item_reader
self.__game_location = game_location
self.__timer = timer
def _get_timer(self):
return self.__timer
def handle(self, event_to_handle):
gameObject = self.__game_location.get_object_by_id(
event_to_handle.objId
)
if gameObject is None:
logger.critical("OMG! No such object")
return
else:
worker = self.__item_reader.get(gameObject.item).name
if hasattr(gameObject, 'gainTime') and gameObject.gainTime and self._get_timer().has_elapsed(gameObject.gainTime):
logger.info(worker + u' принёс')
gameObject.materials += 1
gameObject.gainTime = None
if event_to_handle.action == 'start':
gameObject.started = True
if hasattr(event_to_handle,'gainTime'):
gameObject.gainTime = event_to_handle.gainTime
logger.info(worker + u' принесёт через ' + str((int(gameObject.gainTime) - self._get_timer()._get_current_client_time())/1000/60) + u' мин.')
else:
gameObject.started = False
где-то это уже описывалось,но найти к сожалению трудно))))
|
|
|
03.05.2014, 12:33
|
#2155
|
|
|
|
Пехотинец
|
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
03.05.2014, 14:04
|
#2156
|
|
|
|
Разведчик
|
Регистрация: 25.02.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
03.05.2014, 18:34
|
#2157
|
|
|
|
Разведчик
|
Регистрация: 15.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
03.05.2014, 19:44
|
#2158
|
|
|
|
Разведчик
|
Регистрация: 01.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Спасибо, но этот кусок кода уже прописан в модуле от mike4kz, кроме строки
PHP код:
if hasattr(event_to_handle,'gainTime'):
но махинации с ней не к чему хорошему не привордят, бот не запускается
|
Цитата: |
|
|
|
|
|
|
|
|
|
Выбираешь поиск в этой теме. Пишешь "рулетки сильвер" и ... вуаля
|
|
|
|
|
|
благодарю.
Отдельная благодарность автору скрипта.
Последний раз редактировалось Znewf; 03.05.2014 в 20:01.
|
|
|
04.05.2014, 07:40
|
#2159
|
|
|
|
Разведчик
|
Регистрация: 17.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Модуль для обмена коллекций. 'exchange.py'
Код:
# coding=utf-8
import logging
from math import ceil
from game_state.game_types import GameBuilding
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import dict2obj, obj2dict
logger = logging.getLogger(__name__)
class ExchangeCollections(BaseActor):
def perform_action(self):
# Сколько оставлять коллекций
collections = {
"C_1":10000, # Звёздная
"C_2":10000, # Луксорская
"C_3":10000, # Байкерская
"C_4":10000, # Знаков
"C_5":10000, # Ручная
"C_6":10000, # Обувная
"C_7":10000, # Страшная
"C_8":10000, # Строительная
"C_9":10000, # Столовая
"C_10":10000, # Редкая
"C_11":10000, # Автомобильная
"C_12":10000, # Туристическая
"C_13":10000, # Домашняя
"C_14":10000, # Игрушек
"C_15":10000, # Ёлочная
"C_16":10000, # Кролика
"C_17":10000, # Цветов
"C_18":10000, # Деда Мороза
"C_19":10000, # Анти-зомби
"C_20":10000, # Брендов
"C_21":10000, # Весенняя
"C_22":10000, # Тинейджерская
"C_23":10000, # Компа
"C_24":10000, # Морская
"C_25":10000, # Пляжная
"C_26":10000, # Майя
"C_27":10000, # Секретная
"C_28":10000, # Гипер
"C_29":10000, # Хэллоуин
"C_30":10000, # Президентская
"C_31":10000, # Зимняя
"C_32":10000, # Подземельная
"C_33":10000, # Любовная
"C_34":10000, # Адская
"C_35":10000, # Райская
"C_36":10000, # Японская
"C_37":10000, # Школьная
"C_38":10000, # Пиратская
"C_39":10000, # Рыбака
"C_40":10000, # Военная
"C_41":10000, # Футбольная
"C_42":10000, # Изумрудная
"C_43":10000, # Песочная
"C_44":10000, # Котят
"C_45":10000, # Щенков
"C_46":10000, # Тропическая
"C_47":10000, # Плохая
"C_48":10000, # Палача
"C_49":10000, # Фобий
"C_50":10000, # Вкусная
"C_51":10000 # Временная
}
# Словарь названий коллекций
name = {"C_1":u"Звёздная","C_2":u"Луксорская","C_3":u"Байкерская","C_4":u"Знаков","C_5":u"Ручная","C_6":u"Обувная","C_7":u"Страшная","C_8":u"Строительная","C_9":u"Столовая","C_10":u"Редкая","C_11":u"Автомобильная","C_12":u"Туристическая","C_13":u"Домашняя","C_14":u"Игрушек","C_15":u"Ёлочная","C_16":u"Кролика","C_17":u"Цветов","C_18":u"Деда Мороза","C_19":u"Анти-зомби","C_20":u"Брендов","C_21":u"Весенняя","C_22":u"Тинейджерская","C_23":u"Компа","C_24":u"Морская","C_25":u"Пляжная","C_26":u"Майя","C_27":u"Секретная","C_28":u"Гипер","C_29":u"Хэллоуин","C_30":u"Президентская","C_31":u"Зимняя","C_32":u"Подземельная","C_33":u"Любовная","C_34":u"Адская","C_35":u"Райская","C_36":u"Японская","C_37":u"Школьная","C_38":u"Пиратская","C_39":u"Рыбака","C_40":u"Военная","C_41":u"Футбольная","C_42":u"Изумрудная","C_43":u"Песочная","C_44":u"Котят","C_45":u"Щенков","C_46":u"Тропическая","C_47":u"Плохая","C_48":u"Палача","C_49":u"Фобий","C_50":u"Вкусная","C_51":u"Временная"}
# Получаем количество на складе
cl_items = obj2dict(self._get_game_state().get_state().collectionItems)
for collection in collections: # Создаём item всех элементов
element_1 = collection + "_1"
element_2 = collection + "_2"
element_3 = collection + "_3"
element_4 = collection + "_4"
element_5 = collection + "_5"
# Проверка на наличие собранной коллекции
if (element_1 in cl_items) and (element_2 in cl_items) and (element_3 in cl_items) and (element_4 in cl_items) and (element_5 in cl_items):
# И вычисляем сколько обменять
count = min(cl_items[element_1],cl_items[element_2],cl_items[element_3],cl_items[element_4],cl_items[element_5]) - collections[collection]
if count > 0:
event = [{"type":"item","count":count,"itemId":collection,"action":"collect"}]
self._get_events_sender().send_game_events(event)
logger.info(u"Обменяли %d коллекций '%s' "%(count,name[collection]))
self._get_game_state().remove_from_storage('@'+element_1, cl_items[element_1] - count)
self._get_game_state().remove_from_storage('@'+element_2, cl_items[element_2] - count)
self._get_game_state().remove_from_storage('@'+element_3, cl_items[element_3] - count)
self._get_game_state().remove_from_storage('@'+element_4, cl_items[element_4] - count)
self._get_game_state().remove_from_storage('@'+element_5, cl_items[element_5] - count)
cl_items[element_1] -= count
cl_items[element_2] -= count
cl_items[element_3] -= count
cl_items[element_4] -= count
cl_items[element_5] -= count
self._get_game_state().get_state().collectionItems=dict2obj(cl_items)
Прописать в game_engine.py
Код:
from game_actors_and_handlers.exchange import ExchangeCollections
actor_classes = [
ExchangeCollections, # Обмен коллекций
]
|
|
|
Пользователь сказал cпасибо:
|
|
04.05.2014, 11:55
|
#2160
|
|
|
|
Разведчик
|
Регистрация: 12.06.2011
Сообщений: 22
Популярность: 12
Сказал(а) спасибо: 13
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
ребята, кому не сложно , выложите рабочий модуль для создания проездного , нашел тут его ,запустил , но там косяк , решения этого косяка так и не нашел
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 19:47.
|
|