Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
ну во первых, там есть Платная и есть лицензия, есть стандартные ф-ции , за которые не нужно платить, а хочешь более продвинутые, заплати 100р , думаю это не на столько дорого...
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Это с нашей стороны.
tent_circus.py
PHP код:
# coding=utf-8 import logging from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\ GamePickItem, GameWoodTree, GameStone, GameGainItem, GamePickup from game_state.game_event import dict2obj from game_actors_and_handlers.base import BaseActor logger = logging.getLogger(__name__)
class BowReceiverBot(BaseActor): def perform_action(self): # бантики bows = self._get_game_location().\ get_all_objects_by_type('halloweenTower')
if not hasattr(self._get_game_state(), 'circus_user'): try: with open('circus_user.txt', 'r') as f: self._get_game_state().circus_user = eval(f.read()) except: self._get_game_state().circus_user = []
self._event = [] self.bow_count = 0 for bow in bows: if bow.item == '@B_TENT_CIRCUS': for i in bow.users: self._get_game_state().circus_user.append(i.id) self._event.append({"extraId":i.id,"itemId":i.itemId,"action":"trick","type":"item","objId":bow.id}) if i.itemId == u'BOW_PACK_DEFAULT': count = 1 elif i.itemId == u'BOW_PACK_SMALL': count = 3 elif i.itemId == u'BOW_PACK_MEDIUM': count = 10 self.bow_count += count if len(self._event) > 499: self.events_send() bow.users = [] self.events_send()
def events_send(self): if self._event != []: self._get_events_sender().send_game_events(self._event) # добавляем на склад self._get_game_state().add_from_storage("@CR_153",self.bow_count) with open('circus_user.txt', 'w') as f: f.write(str(self._get_game_state().circus_user)) print if str(len(self._event))[-1:] == '1' and len(self._event) !=11: if str(self.bow_count)[-1:] == '1' and self.bow_count !=11: logger.info(u'Собрали %d бантик от %d друга' % (self.bow_count, len(self._event))) elif 1 < int(str(self.bow_count)[-1:]) < 5 and self.bow_count < 5 and self.bow_count > 20: logger.info(u'Собрали %d бантика от %d друга' % (self.bow_count, len(self._event))) else: logger.info(u'Собрали %d бантиков от %d друга' % (self.bow_count, len(self._event))) else: if str(self.bow_count)[-1:] == '1' and self.bow_count !=11: logger.info(u'Собрали %d бантик от %d друзей' % (self.bow_count, len(self._event))) elif 1 < int(str(self.bow_count)[-1:]) < 5 and self.bow_count < 5 and self.bow_count > 20: logger.info(u'Собрали %d бантика от %d друзей' % (self.bow_count, len(self._event))) else: logger.info(u'Собрали %d бантиков от %d друзей' % (self.bow_count, len(self._event))) self._event = [] self.bow_count = 0
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от maxmydjer
а в ходилке поправить как ? , что б при обходе френдов стучало в шатёр?
Как-то так. Только под себя правьте. ХЗ что у вас.
Исправил одну ошибку, перекачайте.
PHP код:
# Стучим в шатёр2 if object.item == '@B_TENT_CIRCUS': re_ = self._get_game_state().get_state().remoteTrickTreating mm = False for i in re_: if int(fid) == int(i.user): logger.info(u'Сегодня мы уже стукнули этому другу') mm = True break if mm: continue if len(re_) < 100: logger.info(u'Стучим в шатёр') self._get_game_state().get_state().remoteTrickTreating.append(dict2obj({u'user':fid})) self._get_events_sender().send_game_events([{"objId":object.id,"type":"item","itemId":"BOW_PACK_DEFAULT","action":"remoteTrickTreating"}]) continue
if object.item == '@B_TENT_CIRCUS':
#print 'plane'
if self._get_game_state().remoteTrickTreating:
self.cprint(u'5Кладем бантик в шатёр')
self._get_events_sender().send_game_events([
{"itemId": "BOW_PACK_DEFAULT", "action": "remoteTrickTreating", "type": "item", "objId": object.id}])
self._get_game_state().remoteTrickTreating = False
Добавлено через 2 минуты
Цитата:
Сообщение от vintets
Как-то так. Только под себя правьте. ХЗ что у вас.
PHP код:
# Стучим в шатёр2
if object.item == '@B_TENT_CIRCUS':
re_ = self._get_game_state().get_state().remoteTrickTreating
for i in re_:
if int(user) == int(i.user):
logger.info(u'Сегодня мы уже стукнули этому другу')
continue
if len(re_) < 100:
logger.info(u'Стучим в шатёр')
self._get_game_state().get_state().remoteTrickTreating.append({u'user':fid})
self._get_events_sender().send_game_events([{"objId":object.id,"type":"item","itemId":"BOW_PACK_DEFAULT","action":"remoteTrickTreating"}])
continue
благодарен, исправил под себя)
Последний раз редактировалось maxmydjer; 20.06.2014 в 18:36.
Причина: Добавлено сообщение
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vintets
Это с нашей стороны.
tent_circus.py
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\
GamePickItem, GameWoodTree, GameStone, GameGainItem, GamePickup
from game_state.game_event import dict2obj
from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class BowReceiverBot(BaseActor):
def perform_action(self):
# бантики
bows = self._get_game_location().\
get_all_objects_by_type('halloweenTower')
if not hasattr(self._get_game_state(), 'circus_user'):
try:
with open('circus_user.txt', 'r') as f:
self._get_game_state().circus_user = eval(f.read())
except:
self._get_game_state().circus_user = []
self._event = []
self.bow_count = 0
for bow in bows:
if bow.item == '@B_TENT_CIRCUS':
for i in bow.users:
self._get_game_state().circus_user.append(i.id)
self._event.append({"extraId":i.id,"itemId":i.itemId,"action":"trick","type":"item","objId":bow.id})
if i.itemId == u'BOW_PACK_DEFAULT':
count = 1
elif i.itemId == u'BOW_PACK_SMALL':
count = 3
elif i.itemId == u'BOW_PACK_MEDIUM':
count = 10
self.bow_count += count
if len(self._event) > 499:
self.events_send()
bow.users = []
self.events_send()
def events_send(self):
if self._event != []:
self._get_events_sender().send_game_events(self._event)
# добавляем на склад
self._get_game_state().add_from_storage("@CR_153",self.bow_count)
with open('circus_user.txt', 'w') as f:
f.write(str(self._get_game_state().circus_user))
print
if str(len(self._event))[-1:] == '1' and len(self._event) !=11:
if str(self.bow_count)[-1:] == '1' and self.bow_count !=11:
logger.info(u'Собрали %d бантик от %d друга' % (self.bow_count, len(self._event)))
elif 1 < int(str(self.bow_count)[-1:]) < 5 and self.bow_count < 5 and self.bow_count > 20:
logger.info(u'Собрали %d бантика от %d друга' % (self.bow_count, len(self._event)))
else:
logger.info(u'Собрали %d бантиков от %d друга' % (self.bow_count, len(self._event)))
else:
if str(self.bow_count)[-1:] == '1' and self.bow_count !=11:
logger.info(u'Собрали %d бантик от %d друзей' % (self.bow_count, len(self._event)))
elif 1 < int(str(self.bow_count)[-1:]) < 5 and self.bow_count < 5 and self.bow_count > 20:
logger.info(u'Собрали %d бантика от %d друзей' % (self.bow_count, len(self._event)))
else:
logger.info(u'Собрали %d бантиков от %d друзей' % (self.bow_count, len(self._event)))
self._event = []
self.bow_count = 0
незнаю как у тебя это работает , но у меня
Цитата:
Traceback (most recent call last):
File "main.py", line 3, in <module>
from game_engine import Game
File "C:\Users\фыюЁ°ю\Desktop\т сюЄх хёЄ№ тёх )\сюЄ√\ёсюЁър 15.05.2014\game_en
gine.py", line 42, in <module>
from game_actors_and_handlers.tent_circus import BowReceiverBot
File "C:\Users\фыюЁ°ю\Desktop\т сюЄх хёЄ№ тёх )\сюЄ√\ёсюЁър 15.05.2014\game_ac
tors_and_handlers\tent_circus.py", line 54
logger.info(u'╤юсЁрыш %d срэЄшър юЄ %d фЁєур' % (self.bow_count, len(self._
event)))
SyntaxError: (unicode error) 'utf8' codec can't decode byte 0xd1 in position 0:
invalid continuation byte