Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Zombot (Клиент для игры Зомби ферма) [Обсуждение]

-

Свободное обсуждение

- Ваши идеи, вопросы и ответы на тему браузерных игр и социальных сетей

Ответ
 
Опции темы
Старый 18.04.2014, 22:36   #2026
 Разведчик
Аватар для maks_maks)
 
maks_maks) никому не известный тип
Регистрация: 27.05.2013
Сообщений: 18
Популярность: 10
Сказал(а) спасибо: 27
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Помогите плиз с деревьями!
Куда вставлять этот код?
Уже надоело самому по 1к деревьев сажать вручную)
  Ответить с цитированием
Старый 19.04.2014, 05:08   #2027
 Разведчик
Аватар для GirlKris
 
GirlKris никому не известный тип
Регистрация: 17.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ZombikGПосмотреть сообщение
Traceback (most recent call last):
File "main.py", line 108, in <module>
run_game()
File "main.py", line 90, in run_game
Game(site, settings, UserPrompt(gui_input), gui_input=gui_input).start()
File "C:\ZMBots\game_engine.py", line 505, in start
self.save_game_state(start_response)
File "C:\ZMBots\game_engine.py", line 539, in save_game_state
self.__game_state_ = GameState(start_response, self.__itemReader)
File "C:\ZMBots\game_engine.py", line 252, in __init__
occupied_brain_count = self.__player_brains.get_occupied_brains_count()
File "C:\ZMBots\game_state\brains.py", line 41, in get_occupied_brains_count
zombie_types)
File "C:\ZMBots\game_engine.py", line 76, in get_all_objects_by_types
item = self.__item_reader.get(game_object.item)
File "C:\ZMBots\game_state\item_reader.py", line27, in get
return dict2obj(self.content_dict[item_id])
KeyError: 'B_EGG_6'
Для продолжения нажмите любую клавишу . . .

Помогите справиться с этим.

У тебя словарь объектов не обновляется

Добавлено через 7 минут
Цитата:
Сообщение от maks_maks)Посмотреть сообщение
Помогите плиз с деревьями!
Куда вставлять этот код?
Уже надоело самому по 1к деревьев сажать вручную)

Модули подключаются так:
В game_engune.py прописываем 2 строки.
В начале:
Код:
from имя_папки_где_лежит_модуль.имя_модуля import ИмяКласса
Ниже строки actor_classes = [
Код:
ИмяКласса #Комментарий
Имя класса ищем в подключаемом модуле в начале
Код:
class БлаБлаБла

Последний раз редактировалось GirlKris; 19.04.2014 в 05:16. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 19.04.2014, 06:48   #2028
 Разведчик
Аватар для greyzza
 
greyzza никому не известный тип
Регистрация: 25.02.2013
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
KeyError: 'B_EGG_6'
Для продолжения нажмите любую клавишу . . .

обнови items
  Ответить с цитированием
Старый 19.04.2014, 09:52   #2029
Заблокирован
 Разведчик
Аватар для Cheater-84
 
Cheater-84 никому не известный тип
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Отправить сообщение для Cheater-84 с помощью Skype™
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

у меня вопрос такой?....можно ли как то выводить при приеме подарков имя игрока или игровой ник-нейм?
  Ответить с цитированием
Старый 19.04.2014, 11:52   #2030
 Пехотинец
Аватар для vintets
 
vintets скоро будет известенvintets скоро будет известенvintets скоро будет известен
Регистрация: 01.08.2012
Сообщений: 95
Популярность: 255
Сказал(а) спасибо: 28
Поблагодарили 54 раз(а) в 38 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от GirlKrisПосмотреть сообщение
Кстати насчет вишни... Где ты разбил домашний по секторам, пытается посадить в y = 0, x = 8. Конечно же сажать туда нельзя, но я так и не поняла почему он туда сажает, пересмотрела функцию get_coords, там нет таких координат...
Сажает туда, когда включено "на горе"

Поправил в посте. Но не пробовал.
Вместо
PHP код:
if k[0] == '8' or k[0] == '9'
так:
PHP код:
if current_loc != u'main' and (k[0] == '8' or k[0] == '9'): 
  Ответить с цитированием
Старый 19.04.2014, 15:36   #2031
Заблокирован
 Разведчик
Аватар для trollolo5
 
trollolo5 никому не известный тип
Регистрация: 18.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
у меня вопрос такой?

как там дела с супер-копателем, народ ждет чуда
  Ответить с цитированием
Старый 19.04.2014, 15:37   #2032
 Разведчик
Аватар для ProPein
 
ProPein никому не известный тип
Регистрация: 06.07.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

порися в етой теме! нашёл код для создания луксора и страшной в мельнице! куда его пихать то?ПОмогите пожалуста)
# coding=utf-8
import logging
from math import ceil
from game_state.game_types import GameBuilding, GameSellItem, GameSendGift
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import dict2obj, obj2dict


logger = logging.getLogger(__name__)

class GameBrains(BaseActor):

#функция создания чего-либо
def create_items (self, _obj_id,_item_id):
create_items_event = {"type": "item",
"action": "craft",
"objId": _obj_id,
"itemId":_item_id}
self._get_events_sender().send_game_events([create_items_event])



def perform_action(self):

_loc = self._get_game_state().get_game_loc().get_location _id()
if not _loc == u'isle_elephant': # на каком острове всё находится
return 1

brains_const = 0 # Указываем нужное постоянное количество без имеющихся у игрока бесплатных

want_helly = 100 # Сколько хотим свободных хеллий после всех операций
want_kley = 100 # Клея
want_trans = 100 # Трансформаторов
want_yekraska= 100# Краски жёлтой
min_coll = 100 # оставляем ручных и обувных коллекций

min_money = 1000000 # оставляем денег

max_need_helly = max_need_garliclily = 2 * brains_const + want_helly + want_kley*2 + want_trans + want_yekraska # Максимально необходимое кол-во хеллии и чесночных лилий
max_need_love = 10 * brains_const # Максимально необходимое кол-во любви
max_need_clevhell = 4 * max_need_garliclily # Максимально необходимое кол-во клеверхелла
max_need_clever = int(ceil(max_need_clevhell/20)*20) # Максимально необходимое кол-во клевера
max_need_squashhell = int(ceil(max_need_clevhell/10)*10) # Максимально необходимое кол-во тыквахелла
max_need_garlic = max_need_lily = int(ceil(max_need_garliclily/40)*40) # Максимально необходимое кол-во лилий и чеснока

max_need_trans = want_kley + want_trans
max_need_yekraska = want_kley + want_yekraska
max_need_kley = want_kley

obj_id_ostankino = obj_id_korabl = obj_id_elka = obj_id_pirmida = obj_id_bashnya = '' # Переменные для ID останкино и корабля

helly = love = clevhell = garliclily = clever = squashhell = garlic = lily = kley = trans = yekraska = steklo = 0


#получаем id останкино и летучего корабля
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)
if building_item.name == u'Останкино за монеты': # или if building_item.id == 'B_OSTANKINO'
obj_id_ostankino = building.id
if building_item.name == u'Летучий корабль': # или if building_item.id == 'D_SHIP'
obj_id_korabl = building.id
if building_item.id == 'B_NYTREE':
obj_id_elka = building.id
if building_item.id == 'B_PYRAMID':
obj_id_pirmida = building.id
if building_item.id == 'B_PISA':
obj_id_bashnya = building.id
if building_item.id == 'B_MILL_EMERALD2':
obj_id_iz_melnica = building.id

st_items = self._get_game_state().get_state().storageItems
#with open('storage2.txt', 'w') as f:
# f.write(str(obj2dict(st_items)).encode('utf-8'))
for _item in list(st_items):
if hasattr(_item, 'item'):
#it_name = self._get_item_reader().get(_item.item)
#print 'it ', _item.item, ' name ', it_name.name
# Определяем на складе количество:
if _item.item == ('@R_12'): helly = _item.count # Хеллия
if _item.item == ('@CR_31'): love = _item.count # Любовь

if _item.item == ('@R_02'): clevhell = _item.count # Клеверхелл
if _item.item == ('@R_09'): garliclily = _item.count # Чесночная лилия

if _item.item == ('@S_14'): squashhell = _item.count # Тыквахелл
if _item.item == ('@S_03'): clever = _item.count # Клевер
if _item.item == ('@S_15'): lily = _item.count # Лилия
if _item.item == ('@S_08'): garlic = _item.count # Чеснок

if _item.item == ('@CR_25'): steklo = _item.count # Стекло
if _item.item == ('@CR_17'): kley = _item.count # Супер-клей
if _item.item == ('@CR_23'): trans = _item.count # Трансформатор
if _item.item == ('@CR_10'): yekraska = _item.count # Жёлтая краска
cl_items = obj2dict(self._get_game_state().get_state().collec tionItems)#self._get_game_state().get_state().coll ectionItems
for _item in cl_items.keys():
if _item == 'C_5_1': hand_1 = cl_items[_item] # Ручная
if _item == 'C_5_2': hand_2 = cl_items[_item] # Ручная
if _item == 'C_5_3': hand_3 = cl_items[_item] # Ручная
if _item == 'C_5_4': hand_4 = cl_items[_item] # Ручная
if _item == 'C_5_5': hand_5 = cl_items[_item] # Ручная

if _item == 'C_6_1': shoe_1 = cl_items[_item] # Обувная
if _item == 'C_6_2': shoe_2 = cl_items[_item] # Обувная
if _item == 'C_6_3': shoe_3 = cl_items[_item] # Обувная
if _item == 'C_6_4': shoe_4 = cl_items[_item] # Обувная
if _item == 'C_6_5': shoe_5 = cl_items[_item] # Обувная


if helly < max_need_helly:
if(obj_id_korabl == ''):
logger.info(u'Не хватает хеллий, сварите еще %d шт.',max_need_helly-helly)
return
else:
if clevhell < max_need_clevhell:
if clever < max_need_clever:
logger.info(u'Не хватает клевера, посадите еще %d шт.',max_need_clever-clever)
return
elif squashhell < max_need_squashhell:
logger.info(u'Не хватает тыквахелла, посадите еще %d шт.',max_need_squashhell-squashhell)
return
for i in range(int(ceil((max_need_clevhell-clevhell)/10))):
self.create_items(obj_id_korabl, "1")
if i > 0:
logger.info(u'Создали %d клеверхелла', i)

if garliclily < max_need_garliclily:
if garlic < max_need_garlic:
logger.info(u'Не хватает чеснока, посадите еще %d шт.',max_need_garlic-garlic)
return
elif lily < max_need_lily:
logger.info(u'Не хватает лилий, посадите еще %d шт.',max_need_lily-lily)
return
else:
for i in range(int(ceil((max_need_garliclily-garliclily)/10))):
self.create_items(obj_id_korabl, "2")
if i > 0:
logger.info(u'Создали %d чесночных лилий', i)

for i in range(max_need_helly - helly):
self.create_items(obj_id_korabl, "3")
if i > 0:
logger.info(u'Создали %d хеллий', i)

if yekraska < max_need_yekraska:
if(obj_id_pirmida != ''):
if (self._get_game_state().get_state().gameMoney - ((max_need_yekraska - yekraska) * 1000)) < min_money:
print u'Не хватает денег'
return
else:
for i in range(max_need_yekraska - yekraska):
self.create_items(obj_id_pirmida, "1")
if i > 0:
logger.info(u'Создали %d жёлтой краски', i)

if hand_1 > min_coll and shoe_1 > min_coll:
if(obj_id_iz_melnica != ''):
if hand_1 > shoe_1:
count = shoe_1 - min_coll
else:
count = hand_1 - min_coll
for i in range(count):
self.create_items(obj_id_iz_melnica, "1")
logger.info(u'Создаём перчатку фреди %d', i + 1)

if hand_2 > min_coll and shoe_2 > min_coll:
if(obj_id_iz_melnica != ''):
if hand_2 > shoe_2:
count = shoe_2 - min_coll
else:
count = hand_2 - min_coll
for i in range(count):
self.create_items(obj_id_iz_melnica, "2")
logger.info(u'Создаём шляпу фреди %d', i + 1)

if hand_3 > min_coll and shoe_3 > min_coll:
if(obj_id_iz_melnica != ''):
if hand_3 > shoe_3:
count = shoe_3 - min_coll
else:
count = hand_3 - min_coll
for i in range(count):
self.create_items(obj_id_iz_melnica, "3")
logger.info(u'Создаём кофту фреди %d', i + 1)

if hand_4 > min_coll and shoe_4 > min_coll:
if(obj_id_iz_melnica != ''):
if hand_4 > shoe_4:
count = shoe_4 - min_coll
else:
count = hand_4 - min_coll
for i in range(count):
self.create_items(obj_id_iz_melnica, "4")
logger.info(u'Создаём зажигалку фреди %d', i + 1)

if hand_5 > min_coll and shoe_5 > min_coll:
if(obj_id_iz_melnica != ''):
if hand_5 > shoe_5:
count = shoe_5 - min_coll
else:
count = hand_5 - min_coll
for i in range(count):
self.create_items(obj_id_iz_melnica, "5")
logger.info(u'Создаём будильник фреди %d', i + 1)

if trans < max_need_trans:
if(obj_id_bashnya != ''):
if (max_need_trans - trans) > steklo:
print u'Не хватает стекла'
return
else:
for i in range(max_need_trans - trans):
self.create_items(obj_id_bashnya, "1")
if i > 0:
logger.info(u'Создали %d трансформаторов', i)

if kley < max_need_kley:
if(obj_id_elka != ''):
if 0:
return
else:
for i in range(max_need_kley - kley):
self.create_items(obj_id_elka, "1")
if i > 0:
logger.info(u'Создали %d клея', i)

if love < max_need_love :
logger.info(u'Не хватает любви для создания мозгов, накопайте еще %d шт.',max_need_love-love)
return

brains_buy = self._get_game_state().get_state().buyedBrains # Кол-во активаций мозгов (не самих мозгов)
brains_curr = 0 # Счетчик кол-ва текущих мозгов
x=0 # Счетчик кол-ва мозгов с истечением времени < 5 мин.

if len(brains_buy)<>0:
for buyed_brain in brains_buy:
hf = buyed_brain.count
brains_curr += hf
m = ((int(buyed_brain.endTime)/1000)/60)-((((int(buyed_brain.endTime)/1000)/60)/60)*60)
h = ((int(buyed_brain.endTime)/1000)/60)/60
if h==0 and m<=6:
x+=hf

# Разница между необходимыми и текущими мозгами.
brains_lacks = 0
if brains_curr < brains_const:
brains_lacks = brains_const - brains_curr

brains_lx = x + brains_lacks

# Определяем предположительное необходимое ко-во мозгов.
brains_need = brains_curr - brains_lx

# Если меньше нужного постоянного, то создаем недостающие.
if brains_need < brains_const:
_i=0
for _i in range(brains_lx):
self.create_items(obj_id_ostankino, "1")
brains_buy.append(dict2obj({u'count': 1L, u'endTime': u'86400000'})) #Добавляем фейк в список купленных мозгов для увеличения счетчика
logger.info (u'Создано мозгов - %d шт.', brains_lx)
  Ответить с цитированием
Старый 19.04.2014, 16:53   #2033
 Разведчик
Аватар для lokanaft
 
lokanaft никому не известный тип
Регистрация: 03.12.2010
Сообщений: 22
Популярность: 10
Сказал(а) спасибо: 3
Поблагодарили 5 раз(а) в 3 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от trollolo5Посмотреть сообщение
народ ждет чуда

"народ" и ProPein в частности, требуют совсем другой участи, но никак не чуда
  Ответить с цитированием
Старый 19.04.2014, 16:59   #2034
 Разведчик
Аватар для ProPein
 
ProPein никому не известный тип
Регистрация: 06.07.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Блин! подскажите как сделать так что б он создавал коллекции без проверки по 200 пр в секунду хотя бы ! а то 7 шт в секунду долго очень! мне их всего то нужно создать 600к каждой коллекции .
ВОТ КОД С ФАЙЛА ГДЕ СОЗДАВАТЬ КОЛЕКЦИИ!
# coding=utf-8
import logging
from game_state.game_event import dict2obj
from game_actors_and_handlers.base import BaseActor


logger = logging.getLogger(__name__)
keep_kollection = 50 #Сколько коллекций оставлять

class ExchangeKruger(BaseActor):

def perform_action(self):
object_id = self.get_building_id("@B_MILL_EMERALD2")
if object_id:
crafts = self._get_item_reader().get("B_MILL_EMERALD2").cra fts
collections = self._get_game_state().get_state().collectionItems
for craft in crafts:
craft_id = craft.id
while self.craft_is_possible(craft, collections):
self.make_craft(craft_id, object_id)
logger.info(u'Создаем %s' % (craft.name))
for material in craft.materials:
self.decrement_material(material, collections)

def decrement_material(self, material, collections):
new_count = getattr(collections, self._get_item_reader().get(material.item).id, 0) - material.count
setattr(collections, self._get_item_reader().get(material.item).id, new_count)

def get_building_id(self, building_type):
for item in self._get_game_state().get_state().gameObjects:
if item.item == building_type:
return item.id

def craft_is_possible(self, craft, collections):
first_coll = craft.materials[0].item
first_coll_count = craft.materials[0].count
second_coll = craft.materials[1].item
second_coll_count = craft.materials[1].count
storage_coll1 = getattr(collections, self._get_item_reader().get(first_coll).id, 0) - keep_kollection
storage_coll2 = getattr(collections, self._get_item_reader().get(second_coll).id, 0) - keep_kollection
# storage_coll1 = storage_coll1 - keep_kollection
# storage_coll2 = storage_coll2 - keep_kollection
# print storage_coll1
return first_coll_count <= storage_coll1 and second_coll_count <= storage_coll2

def make_craft(self, craft_id, object_id):
event = {"itemId":craft_id,"objId"bject_id,"type":"item" ,"action":"craft"}
self._get_events_sender().send_game_events([event])



class ExchangeMummy(BaseActor):

def perform_action(self):
object_id = self.get_building_id("@B_LIGHT_EMERALD2")
if object_id:
crafts = self._get_item_reader().get("B_LIGHT_EMERALD2").cr afts
collections = self._get_game_state().get_state().collectionItems
for craft in crafts:
craft_id = craft.id
while self.craft_is_possible(craft, collections):
self.make_craft(craft_id, object_id)
logger.info(u'Создаем %s' % (craft.name))
for material in craft.materials:
self.decrement_material(material, collections)

def decrement_material(self, material, collections):
new_count = getattr(collections, self._get_item_reader().get(material.item).id, 0) - material.count
setattr(collections, self._get_item_reader().get(material.item).id, new_count)

def get_building_id(self, building_type):
for item in self._get_game_state().get_state().gameObjects:
if item.item == building_type:
return item.id

def craft_is_possible(self, craft, collections):
first_coll = craft.materials[0].item
first_coll_count = craft.materials[0].count
second_coll = craft.materials[1].item
second_coll_count = craft.materials[1].count
storage_coll1 = getattr(collections, self._get_item_reader().get(first_coll).id, 0) - keep_kollection
storage_coll2 = getattr(collections, self._get_item_reader().get(second_coll).id, 0) - keep_kollection
# storage_coll1 = storage_coll1 - keep_kollection
# storage_coll2 = storage_coll2 - keep_kollection
return first_coll_count <= storage_coll1 and second_coll_count <= storage_coll2

def make_craft(self, craft_id, object_id):
event = {"itemId":craft_id,"objId"bject_id,"type":"item" ,"action":"craft"}
self._get_events_sender().send_game_events([event])

Последний раз редактировалось ProPein; 19.04.2014 в 17:01. Причина: дОБАВЛЕНИЕ КОДА
  Ответить с цитированием
Старый 19.04.2014, 17:59   #2035
 Разведчик
Аватар для maks_maks)
 
maks_maks) никому не известный тип
Регистрация: 27.05.2013
Сообщений: 18
Популярность: 10
Сказал(а) спасибо: 27
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Модули подключаются так:
В game_engune.py прописываем 2 строки.
В начале:
Код:
from имя_папки_где_лежит_модуль.имя_модуля import ИмяКласса
Ниже строки actor_classes = [
Код:
ИмяКласса #Комментарий
Имя класса ищем в подключаемом модуле в начале
Код:
class БлаБлаБла

Большое спасибо,разобрался)

Последний раз редактировалось maks_maks); 19.04.2014 в 20:23. Причина: Понял как)
  Ответить с цитированием
Старый 19.04.2014, 18:23   #2036
 Разведчик
Аватар для dark-dragon
 
dark-dragon никому не известный тип
Регистрация: 30.08.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 26 раз(а) в 21 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ProPeinПосмотреть сообщение
Блин! подскажите
ОЧЕНЬ ДОХРEНА ТЕКСТА

Еще одна простыня такая и буду просить модераторов забанить по айпи навечно.
  Ответить с цитированием
Старый 19.04.2014, 18:30   #2037
 Разведчик
Аватар для ProPein
 
ProPein никому не известный тип
Регистрация: 06.07.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от GirlKrisПосмотреть сообщение
Не помню было или не было... дописала модуль создания чего - либо. Добавила создание страшной коллекции в изумрудной мельнице
PHP код:
# coding=utf-8
import logging
from math import ceil
from game_state
.game_types import GameBuildingGameSellItemGameSendGift
from game_actors_and_handlers
.base import BaseActor
from game_state
.game_event import dict2objobj2dict


logger 
logging.getLogger(__name__)

class 
GameBrains(BaseActor):

  
#функция создания чего-либо
  
def create_items (self_obj_id,_item_id):
    
create_items_event = {"type""item",
                           
"action""craft",
                           
"objId"_obj_id,
                           
"itemId":_item_id}        
    
self._get_events_sender().send_game_events([create_items_event])    
         
    

  
def perform_action(self):  

    
_loc self._get_game_state().get_game_loc().get_location_id()                                                      
    if 
not _loc == u'isle_elephant'# на каком острове всё находится
        
return 1
  
    brains_const 
# Указываем нужное постоянное количество без имеющихся у игрока бесплатных  
    
    
want_helly 100  # Сколько хотим свободных хеллий после всех операций
    
want_kley  100  # Клея
    
want_trans 100  # Трансформаторов
    
want_yekraska100# Краски жёлтой
    
min_coll 100    # оставляем ручных и обувных коллекций

    
min_money 1000000  # оставляем денег
     
    
max_need_helly max_need_garliclily brains_const want_helly want_kley*want_trans want_yekraska # Максимально необходимое кол-во хеллии и чесночных лилий
    
max_need_love 10 brains_const # Максимально необходимое кол-во любви
    
max_need_clevhell max_need_garliclily # Максимально необходимое кол-во клеверхелла
    
max_need_clever int(ceil(max_need_clevhell/20)*20# Максимально необходимое кол-во клевера
    
max_need_squashhell int(ceil(max_need_clevhell/10)*10# Максимально необходимое кол-во тыквахелла
    
max_need_garlic max_need_lily int(ceil(max_need_garliclily/40)*40# Максимально необходимое кол-во лилий и чеснока

    
max_need_trans want_kley want_trans
    max_need_yekraska 
want_kley want_yekraska
    max_need_kley 
want_kley

    obj_id_ostankino 
obj_id_korabl obj_id_elka obj_id_pirmida obj_id_bashnya '' # Переменные для ID останкино и корабля
         
    
helly love clevhell garliclily clever squashhell garlic lily kley trans yekraska steklo 0
                                                                   

    
#получаем id останкино и летучего корабля
    
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)
        if 
building_item.name == u'Останкино за монеты'# или if building_item.id == 'B_OSTANKINO'
            
obj_id_ostankino building.id
        
if building_item.name == u'Летучий корабль'# или if building_item.id == 'D_SHIP'
            
obj_id_korabl building.id
        
if building_item.id == 'B_NYTREE':
            
obj_id_elka building.id
        
if building_item.id == 'B_PYRAMID':
            
obj_id_pirmida building.id
        
if building_item.id == 'B_PISA':
            
obj_id_bashnya building.id
        
if building_item.id == 'B_MILL_EMERALD2':
            
obj_id_iz_melnica building.id    
        
    st_items 
self._get_game_state().get_state().storageItems
    
#with open('storage2.txt', 'w') as f:
    #    f.write(str(obj2dict(st_items)).encode('utf-8'))
    
for _item in list(st_items):
        if 
hasattr(_item'item'):                             
            
#it_name = self._get_item_reader().get(_item.item)
            #print 'it ', _item.item, ' name  ', it_name.name
            # Определяем на складе количество:
            
if _item.item == ('@R_12'):   helly _item.count       # Хеллия               
            
if _item.item == ('@CR_31'):  love _item.count        # Любовь 
            
            
if _item.item == ('@R_02'):   clevhell _item.count    # Клеверхелл 
            
if _item.item == ('@R_09'):   garliclily _item.count  # Чесночная лилия 
            
            
if _item.item == ('@S_14'):   squashhell _item.count  # Тыквахелл
            
if _item.item == ('@S_03'):   clever _item.count      # Клевер
            
if _item.item == ('@S_15'):   lily _item.count        # Лилия
            
if _item.item == ('@S_08'):   garlic _item.count      # Чеснок
            
            
if _item.item == ('@CR_25'):   steklo _item.count     # Стекло
            
if _item.item == ('@CR_17'):   kley _item.count       # Супер-клей
            
if _item.item == ('@CR_23'):   trans _item.count      # Трансформатор
            
if _item.item == ('@CR_10'):   yekraska _item.count   # Жёлтая краска
    
cl_items obj2dict(self._get_game_state().get_state().collectionItems)#self._get_game_state().get_state().collectionItems        
    
for _item in cl_items.keys():
        if 
_item == 'C_5_1':   hand_1 cl_items[_item]   # Ручная
        
if _item == 'C_5_2':   hand_2 cl_items[_item]   # Ручная
        
if _item == 'C_5_3':   hand_3 cl_items[_item]   # Ручная
        
if _item == 'C_5_4':   hand_4 cl_items[_item]   # Ручная
        
if _item == 'C_5_5':   hand_5 cl_items[_item]   # Ручная
            
        
if _item == 'C_6_1':   shoe_1 cl_items[_item]   # Обувная
        
if _item == 'C_6_2':   shoe_2 cl_items[_item]   # Обувная
        
if _item == 'C_6_3':   shoe_3 cl_items[_item]   # Обувная
        
if _item == 'C_6_4':   shoe_4 cl_items[_item]   # Обувная
        
if _item == 'C_6_5':   shoe_5 cl_items[_item]   # Обувная
        
    
    
if helly max_need_helly:
        if(
obj_id_korabl == ''):
            
logger.info(u'Не хватает хеллий, сварите еще %d шт.',max_need_helly-helly)
            return
        else:
            if 
clevhell max_need_clevhell:
                if 
clever max_need_clever:
                    
logger.info(u'Не хватает клевера, посадите еще %d шт.',max_need_clever-clever)
                    return
                
elif squashhell max_need_squashhell:
                    
logger.info(u'Не хватает тыквахелла, посадите еще %d шт.',max_need_squashhell-squashhell)
                    return
                for 
i in range(int(ceil((max_need_clevhell-clevhell)/10))):
                    
self.create_items(obj_id_korabl"1"
                if 
0:
                        
logger.info(u'Создали %d клеверхелла'i

            if 
garliclily max_need_garliclily:
                if 
garlic max_need_garlic:
                    
logger.info(u'Не хватает чеснока, посадите еще %d шт.',max_need_garlic-garlic)
                    return
                
elif lily max_need_lily:
                    
logger.info(u'Не хватает лилий, посадите еще %d шт.',max_need_lily-lily)
                    return
                else:
                    for 
i in range(int(ceil((max_need_garliclily-garliclily)/10))):
                        
self.create_items(obj_id_korabl"2"
                    if 
0:
                        
logger.info(u'Создали %d чесночных лилий'i

            for 
i in range(max_need_helly helly):
                
self.create_items(obj_id_korabl"3")   
            if 
0:
                
logger.info(u'Создали %d хеллий'i
        
    if 
yekraska max_need_yekraska:
        if(
obj_id_pirmida != ''):
            if (
self._get_game_state().get_state().gameMoney - ((max_need_yekraska yekraska) * 1000)) < min_money:
                print 
u'Не хватает денег'
                
return
            else:
                for 
i in range(max_need_yekraska yekraska):
                    
self.create_items(obj_id_pirmida"1")   
                if 
0:
                    
logger.info(u'Создали %d жёлтой краски'i)
                    
    if 
hand_1 min_coll and shoe_1 min_coll:
        if(
obj_id_iz_melnica != ''):
            if 
hand_1 shoe_1:
                
count shoe_1 min_coll
            
else:
                
count hand_1 min_coll     
            
for i in range(count):
                
self.create_items(obj_id_iz_melnica"1")
                
logger.info(u'Создаём перчатку фреди %d'1)   
                   
    if 
hand_2 min_coll and shoe_2 min_coll:
        if(
obj_id_iz_melnica != ''):
            if 
hand_2 shoe_2:
                
count shoe_2 min_coll
            
else:
                
count hand_2 min_coll     
            
for i in range(count):
                
self.create_items(obj_id_iz_melnica"2")
                
logger.info(u'Создаём шляпу фреди %d'1)   
           
    if 
hand_3 min_coll and shoe_3 min_coll:
        if(
obj_id_iz_melnica != ''):
            if 
hand_3 shoe_3:
                
count shoe_3 min_coll
            
else:
                
count hand_3 min_coll     
            
for i in range(count):
                
self.create_items(obj_id_iz_melnica"3")
                
logger.info(u'Создаём кофту фреди %d'1)   
            
    if 
hand_4 min_coll and shoe_4 min_coll:
        if(
obj_id_iz_melnica != ''):
            if 
hand_4 shoe_4:
                
count shoe_4 min_coll
            
else:
                
count hand_4 min_coll     
            
for i in range(count):
                
self.create_items(obj_id_iz_melnica"4"
                
logger.info(u'Создаём зажигалку фреди %d'1)  
             
    if 
hand_5 min_coll and shoe_5 min_coll:
        if(
obj_id_iz_melnica != ''):
            if 
hand_5 shoe_5:
                
count shoe_5 min_coll
            
else:
                
count hand_5 min_coll     
            
for i in range(count):
                
self.create_items(obj_id_iz_melnica"5")
                
logger.info(u'Создаём будильник фреди %d'1)   
            
    if 
trans max_need_trans:
        if(
obj_id_bashnya != ''):
            if (
max_need_trans trans) > steklo:
                print 
u'Не хватает стекла'
                
return
            else:
                for 
i in range(max_need_trans trans):
                    
self.create_items(obj_id_bashnya"1")   
                if 
0:
                    
logger.info(u'Создали %d трансформаторов'i)
                    
    if 
kley max_need_kley:
        if(
obj_id_elka != ''):
            if 
0:
                return
            else:
                for 
i in range(max_need_kley kley):
                    
self.create_items(obj_id_elka"1")   
                if 
0:
                    
logger.info(u'Создали %d клея'i)

    if 
love max_need_love 
        
logger.info(u'Не хватает любви для создания мозгов, накопайте еще %d шт.',max_need_love-love)      
        return
    
    
brains_buy self._get_game_state().get_state().buyedBrains # Кол-во активаций мозгов (не самих мозгов)
    
brains_curr # Счетчик кол-ва текущих мозгов      
    
x=# Счетчик кол-ва мозгов с истечением времени < 5 мин.            

    
if len(brains_buy)<>0:        
        for 
buyed_brain in brains_buy
            
hf buyed_brain.count
            brains_curr 
+= hf 
            m 
= ((int(buyed_brain.endTime)/1000)/60)-((((int(buyed_brain.endTime)/1000)/60)/60)*60)
            
= ((int(buyed_brain.endTime)/1000)/60)/60                                            
            
if h==and m<=6:
                
x+=hf
                        
    
# Разница между необходимыми и текущими мозгами. 
    
brains_lacks 0                                       
    
if brains_curr brains_const:            
        
brains_lacks brains_const brains_curr  
                                                     
    brains_lx 
brains_lacks 
         
    
# Определяем предположительное необходимое ко-во мозгов.           
    
brains_need brains_curr brains_lx   

    
# Если меньше нужного постоянного, то создаем недостающие.
    
if brains_need brains_const:
        
_i=0
        
for _i in range(brains_lx):          
            
self.create_items(obj_id_ostankino"1")                                       
            
brains_buy.append(dict2obj({u'count'1Lu'endTime'u'86400000'})) #Добавляем фейк в список купленных мозгов для увеличения счетчика
        
logger.info (u'Создано мозгов - %d шт.'brains_lx

Дай пожалуста своего бота! ( моджеш в лс) если не хоч бот светить

Добавлено через 3 минуты
Цитата:
Сообщение от dark-dragonПосмотреть сообщение
Еще одна простыня такая и буду просить модераторов забанить по айпи навечно.

ну извини) хотел фаайл скинуть! оно его прикрепио а когда отправлял его не было тут.. пришло сь код весь писать

Последний раз редактировалось ProPein; 19.04.2014 в 18:34. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 19.04.2014, 22:13   #2038
 Разведчик
Аватар для JohnMorgan
 
JohnMorgan никому не известный тип
Регистрация: 14.02.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Цитата:
Сообщение от ProPeinПосмотреть сообщение
Блин! подскажите как сделать так что б он создавал коллекции без проверки по 200 пр в секунду хотя бы ! а то 7 шт в секунду долго очень! мне их всего то нужно создать 600к каждой коллекции .
ВОТ КОД С ФАЙЛА ГДЕ СОЗДАВАТЬ КОЛЕКЦИИ!

Под спойлер код вложить религия не позволяет? Не надо так делать •¬•
  Ответить с цитированием
Старый 20.04.2014, 01:25   #2039
Заблокирован
 Разведчик
Аватар для Cheater-84
 
Cheater-84 никому не известный тип
Регистрация: 22.03.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 6 раз(а) в 5 сообщениях
Отправить сообщение для Cheater-84 с помощью Skype™
 
Exclamation Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

друзья!подскажите как прописать получение списков друзей в game_engine?
вот строка для получения инфы о юзере..
Цитата:
game_engine

PHP код:
def handleEvent(selfevent_to_handle):
        if 
event_to_handle.action == 'addGift':
            
AddGiftEventHandler(self.get_game_state()).handle(event_to_handle)
        
elif event_to_handle.action == 'add':
            if 
event_to_handle.type == 'pickup':
                
AddPickupHandler(self.__itemReaderself.get_game_loc(),self.__game_state_,self.__setting_view).handle(event_to_handle)
        
elif event_to_handle.type == GameFertilizePlant.type:
            
PlantEventHandler(self.get_game_loc()).handle(event_to_handle)
        
elif event_to_handle.type == GamePlayGame.type:
            
GameResultHandler(self.__itemReader,self.get_game_loc(),self.__game_state_).handle(event_to_handle)
        
elif event_to_handle.type == GameStartGainMaterial.type:
            
GainMaterialEventHandler(self.__itemReaderself.get_game_loc(),
                                     
self.__timer).handle(event_to_handle)
        
elif event_to_handle.type == GameStartTimeGainEvent.type:
            
TimeGainEventHandler(self.__itemReaderself.get_game_loc(),
                                 
self.__timer).handle(event_to_handle)
        
elif event_to_handle.type == 'gameState':
            
GameStateEventHandler(self.__game_state_self.__server_time,self.__setting_view).handle(event_to_handle)
        
elif event_to_handle.type == 'mission':
            
ViewMissions(self.__itemReaderself.__setting_view).handle(event_to_handle)
        
elif event_to_handle.type == 'playersInfo':#информация о пользователе
            
self.__game_state_.playersInfo event_to_handle.players
        
else:
            
self.logUnknownEvent(event_to_handle)
        
self.__game_events_sender.remove_game_event(event_to_handle
все же очень хочется видеть имя или ник-нейм юзера приславшего подарок а не его ID,хотя можно и с ID ..ничего страшного)))

например - получен бесплатный подарок(шестеня)от 123456789 Вася Тапочкин
благодарю за любую помощь)

Последний раз редактировалось Cheater-84; 20.04.2014 в 01:27. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 20.04.2014, 08:15   #2040
 Разведчик
Аватар для Prorok.18
 
Prorok.18 никому не известный тип
Регистрация: 09.04.2014
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]

Всех с Пасхой!
Хотел узнать умеет ли бот уже ходить по друзьям, собирать чемоданы? Нет? Тогда как реализовать? Уж очень нужны метеориты.

P.S. Ответы типа "Зачем тебе это?", "Что за тупой вопрос?", "Poker face" не присылайте - не тратьте свое драгоценное время

Cheater 84, ждем от тебя новой сборки с получением имя юзера, подарившего подарок)) Давай, ты сможешь!

Последний раз редактировалось Prorok.18; 20.04.2014 в 08:18.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] Zombot (Клиент для игры Зомби ферма) AnonProger Баги игр ВКонтакте 189 26.08.2014 15:50
[Статья] Небольшие секреты игры зомби ферма haussuper Баги игр ВКонтакте 11 26.01.2013 10:54
[Информация] Зомби Ферма dekirillov Баги игр ВКонтакте 40 22.10.2011 18:25

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:28.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net