|
Zombot (Клиент для игры Зомби ферма) [Обсуждение] - Свободное обсуждение - Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей |
24.01.2014, 15:19
|
#841
|
|
|
|
Разведчик
|
Регистрация: 01.11.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Хелпаните с этой бедой
|
|
|
24.01.2014, 22:32
|
#842
|
|
|
|
Разведчик
|
Регистрация: 22.11.2010
Сообщений: 14
Популярность: 2
Сказал(а) спасибо: 7
Поблагодарили 2 раз(а) в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
спс
|
|
|
25.01.2014, 22:17
|
#843
|
|
|
|
Разведчик
|
Регистрация: 27.08.2013
Сообщений: 2
Популярность: -54
Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Спасибо Vintets)))))ты меня выручил как никогда!))благодарю тебя за мэйл!!!)))))
|
|
|
26.01.2014, 21:55
|
#844
|
|
|
|
Разведчик
|
Регистрация: 23.08.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
Вероятнее всего что-то происходит с GainTime пока дело доходит до обработки события. Попробуй добавить перед этой строчкой проверку hasattr(). Типа:
PHP код:
if hasattr(event_to_handle,'GainTime):
gameObject.gainTime = event_to_handle.gainTime
|
|
|
27.01.2014, 21:02
|
#845
|
|
|
|
Разведчик
|
Регистрация: 23.09.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
кто нибуть использовал модуль по покупки ракет,поставил ракету а удалить не как
|
|
|
27.01.2014, 23:20
|
#846
|
|
|
|
Разведчик
|
Регистрация: 27.08.2013
Сообщений: 2
Популярность: -54
Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Друзья!нужна помощь!кто-нибудь написал код для острова - ДРЕВНИЙ?если да то можно в личку,кровь из носа нужно.или может что в chop.py изменить нужно?ошибку выдает...
|
|
|
28.01.2014, 06:41
|
#847
|
|
|
|
Разведчик
|
Регистрация: 23.08.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Ставь PDB чекпоинт перед этой строчкой, и смотри, что на тот момент хранится в obj:
print obj
print type(obj)
print dir(obj)
print obj2dict(obj)
и так далее...
|
|
|
28.01.2014, 08:39
|
#848
|
|
|
|
Пехотинец
|
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
кто нибуть использовал модуль по покупки ракет,поставил ракету а удалить не как
|
|
|
|
|
|
Я использую постоянно.
Только в том виде какой он был у меня тоже не хотел продавать. Посмотрел, а ID каждый раз менялось. В скрипте же ID определялся при первой ракете и дальше использовался один и тот же (иногда так и есть).
Я подправил под себя.
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\
GamePickItem, GameWoodTree, GameGainItem, GamePickup
from game_state.game_event import dict2obj
from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class BuildingBuyer(BaseActor):
def perform_action(self):
current_loc = self._get_game_state().get_location_id()
location_id = "main"
#logger.info(u"мы на острове "+str(current_loc))
if current_loc == location_id:
building_id = "B_ROCKET"
build_cost = self._get_item_reader().get(building_id).buyCoins
#next_id = self._get_game_state().get_state().gameObjects[-1].id + 1
#buy_rocket = {"x":95,"action":"buy","y":5,"itemId":building_id,"type":"item","objId":next_id}
#sell_rocket = {"action":"sell","type":"item","objId":next_id}
if self._get_game_state().get_state().gameMoney > 1000000000:
num = 0
for _ in range(501):
#if self._get_game_state().get_state().gameMoney > build_cost:
if self._get_game_state().get_state().gameMoney > 1000000000:
#logger.info(u"Покупаем ракету № %d"%(_))
next_id = self._get_game_state().get_state().gameObjects[-1].id + 1
#print 'next_id = ', next_id
buy_rocket = {"x":95,"action":"buy","y":5,"itemId":building_id,"type":"item","objId":next_id}
self._get_events_sender().send_game_events([buy_rocket])
#logger.info(u"Продаём ракету № %d"%(_))
sell_rocket = {"action":"sell","type":"item","objId":next_id}
self._get_events_sender().send_game_events([sell_rocket])
num += 1
self._get_game_state().get_state().gameMoney -= build_cost
logger.info(u"Обменяли "+str(num)+u" ракет! Опыта: "+str(num*20000))
Соответственно координаты твои и количество денег при котором начинать обмен.
|
|
|
28.01.2014, 10:32
|
#849
|
|
|
|
Разведчик
|
Регистрация: 03.12.2010
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 5 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Не проще 2 млрд накопить, чем ракеты менять?)
|
|
|
28.01.2014, 11:35
|
#850
|
|
|
|
Разведчик
|
Регистрация: 18.09.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Люди кто подскажет у меня через каждый остров выскакивает time out occurred retrying in 3 sec и возвращается на главный остров ни посадить ни собрать не дает.
|
|
|
28.01.2014, 11:45
|
#851
|
|
|
|
Разведчик
|
Регистрация: 23.09.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
попробуй открыть файл game_engine.py и там строка interval = поставь тут больше секунд на следующий переход
|
|
|
28.01.2014, 14:10
|
#852
|
|
|
|
Разведчик
|
Регистрация: 13.07.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
Люди кто подскажет у меня через каждый остров выскакивает time out occurred retrying in 3 sec и возвращается на главный остров ни посадить ни собрать не дает.
|
|
|
|
|
|
Timeout occurred, retrying in 3 seconds --возможно проблема из за интернета.
Для уменьшения колличества данной записи, нужно увеличить тайм-аут.
Файл connection.py строка 47, поставить к примеру 8
Цитата:
response = opener.open(self.__url, data, timeout=8)
P.S. Большое значение ставить не рекомендуется т.к. сервер вовсе может не прислать ответ и быстрее будет переподключиться к нему.
|
|
|
28.01.2014, 15:17
|
#853
|
|
|
|
Пехотинец
|
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
28.01.2014, 21:50
|
#854
|
|
|
|
Разведчик
|
Регистрация: 27.08.2013
Сообщений: 2
Популярность: -54
Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
проблему решил просто,во всяком случае это на майле,теперь везде рубит )))в папке game_state, модуль game_event.py
PHP код:
def obj2dict(obj):
# handle list
if isinstance(obj, list):
d = [obj2dict(x) for x in obj]
# handle simple types
elif (isinstance(obj, str) or
isinstance(obj, int) or
isinstance(obj, long) or
isinstance(obj, unicode) or
isinstance(obj, NoneType)):
d = obj
else:
# handle dict
d = {}
if not isinstance(obj, dict):
obj = obj.__dict__
for key in obj:
new_dict = obj2dict(obj[key])
if new_dict is not None: # skip None types
d[key] = new_dict
return d
нужно было вписать строку
PHP код:
isinstance(obj, float) or
то есть код выглядит так:
PHP код:
def obj2dict(obj):
# handle list
if isinstance(obj, list):
d = [obj2dict(x) for x in obj]
# handle simple types
elif (isinstance(obj, str) or
isinstance(obj, bool) or
isinstance(obj, int) or
isinstance(obj, long) or
isinstance(obj, unicode) or
isinstance(obj, float) or
isinstance(obj, NoneType)):
d = obj
else:
# handle dict
d = {}
if not isinstance(obj, dict):
obj = obj.__dict__
for key in obj:
new_dict = obj2dict(obj[key])
if new_dict is not None: # skip None types
d[key] = new_dict
return d
вот так вот)))
Добавлено через 2 часа 14 минут
|
Цитата: |
|
|
|
|
|
|
|
|
|
Я использую постоянно.
Только в том виде какой он был у меня тоже не хотел продавать. Посмотрел, а ID каждый раз менялось. В скрипте же ID определялся при первой ракете и дальше использовался один и тот же (иногда так и есть).
Я подправил под себя.
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\
GamePickItem, GameWoodTree, GameGainItem, GamePickup
from game_state.game_event import dict2obj
from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class BuildingBuyer(BaseActor):
def perform_action(self):
current_loc = self._get_game_state().get_location_id()
location_id = "main"
#logger.info(u"мы на острове "+str(current_loc))
if current_loc == location_id:
building_id = "B_ROCKET"
build_cost = self._get_item_reader().get(building_id).buyCoins
#next_id = self._get_game_state().get_state().gameObjects[-1].id + 1
#buy_rocket = {"x":95,"action":"buy","y":5,"itemId":building_id,"type":"item","objId":next_id}
#sell_rocket = {"action":"sell","type":"item","objId":next_id}
if self._get_game_state().get_state().gameMoney > 1000000000:
num = 0
for _ in range(501):
#if self._get_game_state().get_state().gameMoney > build_cost:
if self._get_game_state().get_state().gameMoney > 1000000000:
#logger.info(u"Покупаем ракету № %d"%(_))
next_id = self._get_game_state().get_state().gameObjects[-1].id + 1
#print 'next_id = ', next_id
buy_rocket = {"x":95,"action":"buy","y":5,"itemId":building_id,"type":"item","objId":next_id}
self._get_events_sender().send_game_events([buy_rocket])
#logger.info(u"Продаём ракету № %d"%(_))
sell_rocket = {"action":"sell","type":"item","objId":next_id}
self._get_events_sender().send_game_events([sell_rocket])
num += 1
self._get_game_state().get_state().gameMoney -= build_cost
logger.info(u"Обменяли "+str(num)+u" ракет! Опыта: "+str(num*20000))
Соответственно координаты твои и количество денег при котором начинать обмен.
|
|
|
|
|
|
а что если просто написать ,что бы ставил ракеты туда ,где есть свободное место?))
Последний раз редактировалось Cheater84; 29.01.2014 в 00:04.
Причина: Добавлено сообщение
|
|
|
29.01.2014, 05:14
|
#855
|
|
|
|
Пехотинец
|
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
Цитата: |
|
|
|
|
|
|
|
|
|
а что если просто написать ,что бы ставил ракеты туда ,где есть свободное место?))
|
|
|
|
|
|
особой надобности нет, так проще. Да и места может не быть.
Хотя это интересная задача, заодно решится главная часть с посадкой деревьев.
Решение поиска места вижу так:
создаем матрицу координат острова. В цикле пробегаем по всем объектам на острове читая их координаты и размеры и помечаем занятые координаты. Далее уже берем дерево и пробегаясь по местам в матрице помеченных как свободные проверять соседние в радиусе этого вида дерева, если свободные - ставим и помечаем занятые места. Само собой проверяя наличие денег и добавив получение словаря через ини, формата остров:дерево.
Ракета уже частный случай.
Может есть способ проще... команда возвращающая свободное место. Но чет сомневаюсь.
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 12:26.
|
|