![](/zhyk/misc/sp.gif) |
Zombot (Клиент для игры Зомби ферма) [Обсуждение] - Свободное обсуждение - Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей |
17.02.2014, 01:51
|
#1096
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 30.07.2013
![](/zhyk/misc/messages.png) Сообщений: 1
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
выручайте нужен на одноклассники зомбилето открывать
|
|
|
17.02.2014, 12:59
|
#1097
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 17.02.2014
![](/zhyk/misc/messages.png) Сообщений: 0
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Подскажите пожалуйста, как отредактировать gifts.py, чтобы принимались коллекции.
|
|
|
17.02.2014, 19:11
|
#1098
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 27.08.2013
![](/zhyk/misc/messages.png) Сообщений: 2
![](/zhyk/misc/reput.png) Популярность: -54
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Друзья! кто - нить с ошибкой при кручении коллайдера сталкивался?...если кто решил проблему,отпишите плиз)
|
|
|
17.02.2014, 20:59
|
#1099
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 17.02.2014
![](/zhyk/misc/messages.png) Сообщений: 0
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
17.02.2014, 21:18
|
#1100
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 30.07.2013
![](/zhyk/misc/messages.png) Сообщений: 1
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
интересный у тебя бот кто подогнал ?
|
|
|
17.02.2014, 21:19
|
#1101
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 27.08.2013
![](/zhyk/misc/messages.png) Сообщений: 2
![](/zhyk/misc/reput.png) Популярность: -54
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
17.02.2014, 21:47
|
#1102
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 17.02.2014
![](/zhyk/misc/messages.png) Сообщений: 0
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
![](/zhyk/misc/quotes/quot-top-left.gif) |
Цитата: |
![](/zhyk/misc/quotes/quot-top-right.gif) |
|
|
|
|
|
|
|
|
как справилась этой проблемой? если можно то код выложи или в личку бота я гляну что в нем....за ранее благодарю)
|
|
![](/zhyk/misc/quotes/quot-bot-left.gif) |
|
![](/zhyk/misc/quotes/quot-bot-right.gif) |
|
У меня изначально так было ![Notme](images/smilies/z/notme.gif) )))) Вот код
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameBuilding, GamePlayGame, DailyBonus
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import obj2dict
logger = logging.getLogger(__name__)
class FrutRouletteRoller(BaseActor):
def perform_action(self):
# '@R_56' Компот
# '@R_57' Вишнёвый джем
# '@R_58' Лимонный микс
# '@R_59' Мармелад
# 'S_52' Вишня
ftut_ids = ['@R_56']
for fr in ftut_ids:
frut_count=self._get_game_state().count_in_storage(fr)
if frut_count==0: break
buildings = self._get_game_location().get_all_objects_by_type(
GameBuilding.type)
for building in list(buildings):
building_item = self._get_item_reader().get(building.item)
for game in building_item.games:
game_id = game.id
play_cost = None
if hasattr(game, 'playCost'):
play_cost = game.playCost.item
#{"type":"roulette","id":"B_SLOT_APPLE_ROULETTE2","level":1,"delayTime":0,"title":"Бонус-Рулетка","hint":"Крути рулетку за 1 Компот, чтобы испытать удачу.","playCost":{"count":1,"image":"storage/recipe_56.png","item":"@R_56"},"prizes":[{"count":1,"item":"@EGG_01"},{"count":5,"item":"@RED_SPEEDUPER"},{"count":1,"item":"@EGG_02"},{"count":10,"item":"@RED_TREE_FERTILIZER"},{"count":5,"item":"@RED_SPEEDUPER"},{"count":1,"item":"@EGG_04"},{"count":10,"item":"@RED_TREE_FERTILIZER"}]}
next_play = None
next_play_times = building.nextPlayTimes.__dict__
if game_id in next_play_times:
next_play = int(next_play_times[game_id])
if (
next_play and
self._get_timer().has_elapsed(next_play) and
play_cost == fr
):
countR=0
for i in range(frut_count):
roll = GamePlayGame(building.id, game_id)
self._get_events_sender().send_game_events([roll])
countR+=1
self._get_game_state().remove_from_storage(fr,1)
logger.info(u"Крутим рулетку %d раз в '%s' %d по координатам (%d,%d)"%(countR,building_item.name,building.id,building.x,building.y))
#logger.info(u"Крутим рулетку "+str(countR)+" раз в '"+building_item.name + "' " +str(building.id)+u" по координатам (" +str(building.x) + u", " + str(building.y) + u")")
class RouletteRoller(BaseActor):
def perform_action(self):
buildings = self._get_game_location().get_all_objects_by_type(
GameBuilding.type)
for building in list(buildings):
building_item = self._get_item_reader().get(building.item)
for game in building_item.games:
#print obj2dict(building_item)
#print obj2dict(game)
game_id = game.id
play_cost = None
if hasattr(game, 'playCost'):
play_cost = game.playCost
#if building_item.games[0].delayTime==game.delayTime:
# next_play = True
#else:
# next_play = False
next_play = None
next_play_times = building.nextPlayTimes.__dict__
if game_id in next_play_times:
next_play = int(next_play_times[game_id])
if next_play is None: get_next_play = False
else: get_next_play = self._get_timer().has_elapsed(next_play)
if game_id == "B_TAVERNA_ROULETTE_1":
pirate_box = 0
for _obj in list(self._get_game_state().get_state().storageGameObjects):
if _obj.item == '@PIRATE_BOX' or '@PIRATE_BOX_2': pirate_box = 1
if pirate_box!=1 and (self._get_game_state().get_state().pirate.state != 'PIRATE'): play_cost = None
else: play_cost = game.unconditionalPlayCost
# Крутить рулетку в аисте за 25 малины
item_count=self._get_game_state().count_in_storage('@S_57')
if building_item.id == 'B_TREE_STORK' and game_id == 'B_TREE_STORK_ROULETTE' and item_count>=25:
self._get_game_state().remove_from_storage('@S_57',25)
play_cost = None
# Конец аиста
# Крутить рулетку в казино если фишек = 0
item_count=self._get_game_state().count_in_storage("@O_CHIPS")
if (building_item.name==u'Казино'):
if (item_count==0):
play_cost = None
else:
play_cost = 'Nul'
# Конец казино
# Зомби фортуна за 5 фишек
if (building_item.name==u'Зомби-фортуна') and (game_id == 'B_SLOT_B_ROULETTE1') and item_count>=5:
self._get_game_state().remove_from_storage('@O_CHIPS',5)
play_cost = None
next_play = False
# Конец зомби фортуны
# Крутить рулетку в Адмирале за 1 глазной суп
item_count=self._get_game_state().count_in_storage ('@R_60')
if building_item.id == 'B_SOLDIER' and game_id == 'B_SOLDIER_ROULETTE' and item_count>=1:
self._get_game_state().remove_from_storage('@R_60' ,1)
play_cost = None
# Конец Адмирала
# Ежедневный бонус
dailyBonus = self._get_game_state().get_state().dailyBonus
if int(dailyBonus.playFrom) and self._get_timer().has_elapsed(dailyBonus.playFrom):
daily = DailyBonus()
self._get_events_sender().send_game_events([daily])
next_play = False
logger.info(u"Крутим рулетку-Ежедневный бонус")
#конец ежедневной рулетке
#print building_item.name
#print next_play_times
#print next_play
#print get_next_play
#print play_cost
#print (play_cost is None)
#print ((not next_play) and (game.level == building.level))
#print ((next_play and self._get_timer().has_elapsed(next_play)) or ((not next_play) and (game.level == building.level)))
#raw_input()
if (
(play_cost is None) and
((next_play and get_next_play) or ((not next_play) and (game.level == building.level)))
):
logger.info(
u"Крутим рулетку в '" +
building_item.name + "' " +
str(building.id) +
u" по координатам (" +
str(building.x) + u", " + str(building.y) + u")")
roll = GamePlayGame(building.id, game_id)
self._get_events_sender().send_game_events([roll])
class GameResultHandler(object):
def __init__(self, item_reader, game_location,game_state):
self.__item_reader = item_reader
self.__game_location = game_location
self.__game_state_ = game_state
def handle(self, event_to_handle):
nextPlayDate = event_to_handle.nextPlayDate
extraId = event_to_handle.extraId
obj_id = event_to_handle.objId
gameObject = self.__game_location.get_object_by_id(obj_id)
if gameObject is None:
logger.critical("OMG! No such object")
return
else:
gameObject.nextPlayTimes.__setattr__(extraId, nextPlayDate)
building = self.__item_reader.get(gameObject.item)
for game in building.games:
if game.id == extraId:
game_prize = None
if hasattr(event_to_handle.result, 'pos'):
prize_pos = event_to_handle.result.pos
game_prize = game.prizes[prize_pos]
elif hasattr(event_to_handle.result, 'won'):
prize_pos = event_to_handle.result.won
if prize_pos is not None:
game_prize = game.combinations[prize_pos].prize
if game_prize:
prize_item = game_prize.item
prize = self.__item_reader.get(prize_item)
count = game_prize.count
#print 'Rollets'
#print prize_item
self.__game_state_.add_from_storage(prize_item,count)
logger.info(u'Вы выиграли ' + prize.name +
u'(' + str(count) + u' шт.)')
#open('prize.txt','a').write(prize.name.encode("cp1251") + '(' + str(count) + ' шт.)'+'\n')
else:
logger.info('Вы ничего не выиграли.')
|
|
|
17.02.2014, 22:52
|
#1103
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 27.08.2013
![](/zhyk/misc/messages.png) Сообщений: 2
![](/zhyk/misc/reput.png) Популярность: -54
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
![](/zhyk/misc/quotes/quot-top-left.gif) |
Цитата: |
![](/zhyk/misc/quotes/quot-top-right.gif) |
|
|
|
|
|
|
|
|
У меня изначально так было )))) Вот код
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameBuilding, GamePlayGame, DailyBonus
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import obj2dict
logger = logging.getLogger(__name__)
class FrutRouletteRoller(BaseActor):
def perform_action(self):
# '@R_56' Компот
# '@R_57' Вишнёвый джем
# '@R_58' Лимонный микс
# '@R_59' Мармелад
# 'S_52' Вишня
ftut_ids = ['@R_56']
for fr in ftut_ids:
frut_count=self._get_game_state().count_in_storage(fr)
if frut_count==0: break
buildings = self._get_game_location().get_all_objects_by_type(
GameBuilding.type)
for building in list(buildings):
building_item = self._get_item_reader().get(building.item)
for game in building_item.games:
game_id = game.id
play_cost = None
if hasattr(game, 'playCost'):
play_cost = game.playCost.item
#{"type":"roulette","id":"B_SLOT_APPLE_ROULETTE2","level":1,"delayTime":0,"title":"Бонус-Рулетка","hint":"Крути рулетку за 1 Компот, чтобы испытать удачу.","playCost":{"count":1,"image":"storage/recipe_56.png","item":"@R_56"},"prizes":[{"count":1,"item":"@EGG_01"},{"count":5,"item":"@RED_SPEEDUPER"},{"count":1,"item":"@EGG_02"},{"count":10,"item":"@RED_TREE_FERTILIZER"},{"count":5,"item":"@RED_SPEEDUPER"},{"count":1,"item":"@EGG_04"},{"count":10,"item":"@RED_TREE_FERTILIZER"}]}
next_play = None
next_play_times = building.nextPlayTimes.__dict__
if game_id in next_play_times:
next_play = int(next_play_times[game_id])
if (
next_play and
self._get_timer().has_elapsed(next_play) and
play_cost == fr
):
countR=0
for i in range(frut_count):
roll = GamePlayGame(building.id, game_id)
self._get_events_sender().send_game_events([roll])
countR+=1
self._get_game_state().remove_from_storage(fr,1)
logger.info(u"Крутим рулетку %d раз в '%s' %d по координатам (%d,%d)"%(countR,building_item.name,building.id,building.x,building.y))
#logger.info(u"Крутим рулетку "+str(countR)+" раз в '"+building_item.name + "' " +str(building.id)+u" по координатам (" +str(building.x) + u", " + str(building.y) + u")")
class RouletteRoller(BaseActor):
def perform_action(self):
buildings = self._get_game_location().get_all_objects_by_type(
GameBuilding.type)
for building in list(buildings):
building_item = self._get_item_reader().get(building.item)
for game in building_item.games:
#print obj2dict(building_item)
#print obj2dict(game)
game_id = game.id
play_cost = None
if hasattr(game, 'playCost'):
play_cost = game.playCost
#if building_item.games[0].delayTime==game.delayTime:
# next_play = True
#else:
# next_play = False
next_play = None
next_play_times = building.nextPlayTimes.__dict__
if game_id in next_play_times:
next_play = int(next_play_times[game_id])
if next_play is None: get_next_play = False
else: get_next_play = self._get_timer().has_elapsed(next_play)
if game_id == "B_TAVERNA_ROULETTE_1":
pirate_box = 0
for _obj in list(self._get_game_state().get_state().storageGameObjects):
if _obj.item == '@PIRATE_BOX' or '@PIRATE_BOX_2': pirate_box = 1
if pirate_box!=1 and (self._get_game_state().get_state().pirate.state != 'PIRATE'): play_cost = None
else: play_cost = game.unconditionalPlayCost
# Крутить рулетку в аисте за 25 малины
item_count=self._get_game_state().count_in_storage('@S_57')
if building_item.id == 'B_TREE_STORK' and game_id == 'B_TREE_STORK_ROULETTE' and item_count>=25:
self._get_game_state().remove_from_storage('@S_57',25)
play_cost = None
# Конец аиста
# Крутить рулетку в казино если фишек = 0
item_count=self._get_game_state().count_in_storage("@O_CHIPS")
if (building_item.name==u'Казино'):
if (item_count==0):
play_cost = None
else:
play_cost = 'Nul'
# Конец казино
# Зомби фортуна за 5 фишек
if (building_item.name==u'Зомби-фортуна') and (game_id == 'B_SLOT_B_ROULETTE1') and item_count>=5:
self._get_game_state().remove_from_storage('@O_CHIPS',5)
play_cost = None
next_play = False
# Конец зомби фортуны
# Крутить рулетку в Адмирале за 1 глазной суп
item_count=self._get_game_state().count_in_storage ('@R_60')
if building_item.id == 'B_SOLDIER' and game_id == 'B_SOLDIER_ROULETTE' and item_count>=1:
self._get_game_state().remove_from_storage('@R_60' ,1)
play_cost = None
# Конец Адмирала
# Ежедневный бонус
dailyBonus = self._get_game_state().get_state().dailyBonus
if int(dailyBonus.playFrom) and self._get_timer().has_elapsed(dailyBonus.playFrom):
daily = DailyBonus()
self._get_events_sender().send_game_events([daily])
next_play = False
logger.info(u"Крутим рулетку-Ежедневный бонус")
#конец ежедневной рулетке
#print building_item.name
#print next_play_times
#print next_play
#print get_next_play
#print play_cost
#print (play_cost is None)
#print ((not next_play) and (game.level == building.level))
#print ((next_play and self._get_timer().has_elapsed(next_play)) or ((not next_play) and (game.level == building.level)))
#raw_input()
if (
(play_cost is None) and
((next_play and get_next_play) or ((not next_play) and (game.level == building.level)))
):
logger.info(
u"Крутим рулетку в '" +
building_item.name + "' " +
str(building.id) +
u" по координатам (" +
str(building.x) + u", " + str(building.y) + u")")
roll = GamePlayGame(building.id, game_id)
self._get_events_sender().send_game_events([roll])
class GameResultHandler(object):
def __init__(self, item_reader, game_location,game_state):
self.__item_reader = item_reader
self.__game_location = game_location
self.__game_state_ = game_state
def handle(self, event_to_handle):
nextPlayDate = event_to_handle.nextPlayDate
extraId = event_to_handle.extraId
obj_id = event_to_handle.objId
gameObject = self.__game_location.get_object_by_id(obj_id)
if gameObject is None:
logger.critical("OMG! No such object")
return
else:
gameObject.nextPlayTimes.__setattr__(extraId, nextPlayDate)
building = self.__item_reader.get(gameObject.item)
for game in building.games:
if game.id == extraId:
game_prize = None
if hasattr(event_to_handle.result, 'pos'):
prize_pos = event_to_handle.result.pos
game_prize = game.prizes[prize_pos]
elif hasattr(event_to_handle.result, 'won'):
prize_pos = event_to_handle.result.won
if prize_pos is not None:
game_prize = game.combinations[prize_pos].prize
if game_prize:
prize_item = game_prize.item
prize = self.__item_reader.get(prize_item)
count = game_prize.count
#print 'Rollets'
#print prize_item
self.__game_state_.add_from_storage(prize_item,count)
logger.info(u'Вы выиграли ' + prize.name +
u'(' + str(count) + u' шт.)')
#open('prize.txt','a').write(prize.name.encode("cp1251") + '(' + str(count) + ' шт.)'+'\n')
else:
logger.info('Вы ничего не выиграли.')
|
|
![](/zhyk/misc/quotes/quot-bot-left.gif) |
|
![](/zhyk/misc/quotes/quot-bot-right.gif) |
|
не работает....
|
|
|
17.02.2014, 23:29
|
#1104
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 28.09.2013
![](/zhyk/misc/messages.png) Сообщений: 0
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
![](/zhyk/misc/quotes/quot-top-left.gif) |
Цитата: |
![](/zhyk/misc/quotes/quot-top-right.gif) |
|
|
|
|
|
а если коллайдер по островам потаскать и вернуть на домашний?
Добавлено через 2 минуты
Ребята, для корабля есть у кого код? чтобы хеллии не вручную клацать...
Последний раз редактировалось neohomer; 17.02.2014 в 23:31.
Причина: Добавлено сообщение
|
|
|
18.02.2014, 11:03
|
#1105
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 08.11.2011
![](/zhyk/misc/messages.png) Сообщений: 0
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Привет всем :-)! Вопросик к тем кто продолжает разработку зомбота и к специалистам разобравшимся в исходниках. Подскажите пожалуйста алгоритм формирования запросов к серверу ... Пытаюсь пересадить зомбот на С++ ... ибо учить питон нет времени и смысла ... Именно интересует: в моем понимании превоначально логинимся в ВК (получаем печеньку ...), затем идем на страницу приложения (получаем viewer_id, api_id, secret, access_token, auth_key) затем из полученных viewer_id, api_id, secret, access_token, auth_key получаем сигнатуру == md5 хэш конкантенации строк ... и топаем на сервер приложения. Вопрос как генериться сигнатура на shadowlends?
|
|
|
18.02.2014, 12:39
|
#1106
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 03.12.2010
![](/zhyk/misc/messages.png) Сообщений: 22
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 3
Поблагодарили 5 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Cheater84, там же русским языком написано, что нет такого ключа. А где его нет? - нет его в items.txt
|
|
|
18.02.2014, 14:33
|
#1107
|
|
|
|
Пехотинец
|
![](/zhyk/misc/regist.png) Регистрация: 01.08.2012
![](/zhyk/misc/messages.png) Сообщений: 95
![](/zhyk/misc/reput.png) Популярность: 255
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Cheater84, Рулетка коллайдера ведь "B_COLLIDER_ROULETTE", а у тебя выводит какой-то "B_COLLIDER_REAL"
|
|
|
18.02.2014, 14:51
|
#1108
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 14.02.2014
![](/zhyk/misc/messages.png) Сообщений: 0
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Собирал ли кто-нибудь модуль на копание у друзей?Было бы здорово написать цикл поиска среди друзей тех,у кого есть перрон ,например,а потом к этому другу топать,и неимоверно фармить бозон.Сам написать смогу лишь текстовую модель алгоритма,ибо сам пишу на Java,C/C++/C#/Objective C ,даже с флэшем приходилось работать,но никак не с питоном ![Smile](images/smilies/z/smile.gif) И еще,есть ли новости по собственному серверу игры?Уж очень понравилась инициатива,да и помочь с разработкой,я думаю,смогу
|
|
|
18.02.2014, 18:16
|
#1109
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 27.08.2013
![](/zhyk/misc/messages.png) Сообщений: 2
![](/zhyk/misc/reput.png) Популярность: -54
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 5
Поблагодарили 15 раз(а) в 14 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
![](/zhyk/misc/quotes/quot-top-left.gif) |
Цитата: |
![](/zhyk/misc/quotes/quot-top-right.gif) |
|
|
|
|
|
|
|
|
Собирал ли кто-нибудь модуль на копание у друзей?Было бы здорово написать цикл поиска среди друзей тех,у кого есть перрон ,например,а потом к этому другу топать,и неимоверно фармить бозон.Сам написать смогу лишь текстовую модель алгоритма,ибо сам пишу на Java,C/C++/C#/Objective C ,даже с флэшем приходилось работать,но никак не с питоном И еще,есть ли новости по собственному серверу игры?Уж очень понравилась инициатива,да и помочь с разработкой,я думаю,смогу
|
|
![](/zhyk/misc/quotes/quot-bot-left.gif) |
|
![](/zhyk/misc/quotes/quot-bot-right.gif) |
|
примерно так...но кое что изменилось в game_engine позже постараюсь описать-модуль 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 ############################## from ctypes import windll import sys
stdout_handle = windll.kernel32.GetStdHandle(-11) SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute ############################## 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 objtypes = ['woodTree','stone','decoration','building'] myid = '6745101591662640459' #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] SetConsoleTextAttribute(stdout_handle, 0x0001 | 0x0008) print u"######### Идем к другу ", sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0006 | 0x0008) print str(user)+" ", sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0007 | 0x0008) print str(self._get_game_state().countfnyt+1)+"/"+str(len(friends)), sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0001 | 0x0008) print " #########" sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0002 | 0x0008) 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") print "############### gameObjects #################" countnyt = 0 countmyg = 0 countpickup = 0 objssvl = [] 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'): #print (u"Ёлка !!!").encode('cp866') #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 user.id == 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: # Ложим пряник #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: if object.item == '@D_BALLOONS': objssvl.append(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: objssvl.append(object) break 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") open('objects.txt', 'a').write('-------------------------------------' + "\n") countlop = 0 if len(objssvl) > 0: for i in range(7): 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 SetConsoleTextAttribute(stdout_handle, 0x0004 | 0x0008) print u"Использовал: ", sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0007 | 0x0008) print str(countlop), sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0006 | 0x0008) print u" лопат" sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0002 | 0x0008) elif alldigged == 1: SetConsoleTextAttribute(stdout_handle, 0x0004 | 0x0008) print (u'Всё уже выкопано!').encode('cp866') sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0002 | 0x0008) else: SetConsoleTextAttribute(stdout_handle, 0x0004 | 0x0008) print (u'Нечего копать!').encode('cp866') sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0002 | 0x0008) SetConsoleTextAttribute(stdout_handle, 0x0005 | 0x0008) print u"Вскрыли сундуков: ", sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0006 | 0x0008) print str(countpickup) sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0002 | 0x0008) 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'): SetConsoleTextAttribute(stdout_handle, 0x0006 | 0x0008) print u"поЛожил пряник(ов): ", sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0007 | 0x0008) print str(self._get_game_state().sendNewYearGift)+":"+str(self._get_game_state().countnyt)+"/"+str(countnyt)+" dub: "+str(countmyg) sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0002 | 0x0008) 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): user = friends[self._get_game_state().countfnyt] SetConsoleTextAttribute(stdout_handle, 0x0001 | 0x0008) print u"######### Идем к другу ", sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0006 | 0x0008) print str(user)+" ", sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0007 | 0x0008) print str(self._get_game_state().countfnyt+1)+"/"+str(len(friends)), sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0001 | 0x0008) print " #########" sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0002 | 0x0008) 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'): self._get_game_state().fdend = 1 SetConsoleTextAttribute(stdout_handle, 0x0004 | 0x0008) print u' Возвращаемся домой ' sys.stdout.flush() SetConsoleTextAttribute(stdout_handle, 0x0002 | 0x0008) self._get_events_sender().send_game_events([{"action":"gameState","locationId":"main","type":"gameState"}])
особые декорации. прописываются в friends.py
#favdecors = ['D_SAKURASMALL','D_REDTREE','D_CONIFER','D_GATE',' D_STATUETTE']#мыло
#favdecors = ['D_EIFFEL','B_JAPAN','B_JAPAN_LAKE']#металолом
#favdecors = ['D_SHIP','D_POOL2','B_POOL','B_WHITEHOUSE','B_BUSI NESS','D_IDOL2','D_FLOWER4_WHITE','D_FLOWER4_YELLO W','DS_SYMBOL_U_NESKL','DS_SYMBOL_I_BEL','D_OLYMPI AD_STATUE','B_FLAG_OLIMPIADA','B_VAN_ICE_CREAM','B _CUPOLA','B_CUPOLA_CASH','B_ZAPOROZHETS','B_ZAPORO ZHETS_OLD','B_HUT_CH_LEGS','B_RUSALKA','B_YACHT']#брендовая колл.(флюгер)
в game_engine.py
def handleEvent(self, event_to_handle):
добавить
elif event_to_handle.type == 'playersInfo':
self.__game_state_.playersInfo = event_to_handle.players
Последний раз редактировалось Cheater84; 18.02.2014 в 18:32.
Причина: Добавлено сообщение
|
|
|
18.02.2014, 20:07
|
#1110
|
|
|
|
Разведчик
|
![](/zhyk/misc/regist.png) Регистрация: 17.02.2014
![](/zhyk/misc/messages.png) Сообщений: 0
![](/zhyk/misc/reput.png) Популярность: 10
![](/zhyk/misc/thnx.png) Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
|
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 11:37.
|
![](/zhyk/misc/sp.gif) |