Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Сергійко
Народ,Кто может помочь ?
Нужно модуль для
1.ВЫганять торгов на роботу и сразу же повторять обмен
... без всяких типов, тупо по объектам
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameBuilding, GamePlayGame
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import obj2dict
logger = logging.getLogger(__name__)
class TradeBot(BaseActor):
def perform_action(self):
loc_obj = self._get_game_location().get_game_objects()
for _obj in loc_obj:
if "SC_TRADER_GRAVE" in _obj.item:
if _obj.started == False:
trader_event = {"objId":_obj.id,
"type":"item",
"action":"start"}
self._get_events_sender().send_game_events([trader_event])
print u'Выгоняем на работу торгаша № ',_obj.id
_obj.started = True
if _obj.countCompleted == 1:
trader_event = {"objId":_obj.id,
"type":"item",
"action":"pick"}
self._get_events_sender().send_game_events([trader_event])
print u'Забираем коробку у торгаша № ',_obj.id
_obj.countCompleted = 0
if _obj.countExchange == 0 and _obj.countCompleted == 0:
trader_event = {"objId":_obj.id,
"type":"trader",
"want":_obj.want,
"give":_obj.give,
"action":"change",
"countExchange":1}
self._get_events_sender().send_game_events([trader_event])
print u'Ставим торг у торгаша № ',_obj.id
_obj.countExchange = 1
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Всем привет, недавно запустил бот и заметил что он стал спотыкаться на бесплатной любви, так как параметр у нее бесплатка, а ее уже убрали, то бот пытался ее отправить, в общем исправил я это дело так:
PHP код:
self._event = []
for playerInfo in self._get_game_state().playersInfo:
if playerInfo.id in GU_go: continue
wish = []
for w in playerInfo.liteGameState.wishlist:
if w != None and (w in freeGifts): wish.append(w)
'''Если нет хотелки или стоит Любовь, то пропускаем'''
if not wish or 'CR_31':
continue#wish.append('@CR_16')
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Cheater-84
Всем привет, недавно запустил бот и заметил что он стал спотыкаться на бесплатной любви, так как параметр у нее бесплатка, а ее уже убрали, то бот пытался ее отправить, в общем исправил я это дело так:
PHP код:
self._event = []
for playerInfo in self._get_game_state().playersInfo:
if playerInfo.id in GU_go: continue
wish = []
for w in playerInfo.liteGameState.wishlist:
if w != None and (w in freeGifts): wish.append(w)
'''Если нет хотелки или стоит Любовь, то пропускаем'''
if not wish or 'CR_31':
continue#wish.append('@CR_16')
возможно кому-то понадобится)
Так это уже давно-предавно. Временно добавляемые бесплатки так себя ведут. Тоже поначалу так выключал сердца. Потом индюков, потом ещё что-то... потом задолбался и сделал правильно.
У этих временных подарков появляется новый параметр - срок годности. Вот его и нужно учитывать.
PHP код:
freeGifts = []
for i in self._get_item_reader().get("FREE_GIFTS").freeGifts:
if hasattr (i, u'endDate') and int(i.endDate) < long(time.time())*1000: continue
freeGifts.append(i.item)
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
День Добрый форумчане! не мог бы помочь отредактировать модуль ? что бы коллекции отправлялись не все и сразу, а определенная коллекция, определенное количество и для определенного человека. Да и по возможности с сообщением.
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameSellItem, GameSendGift
from game_actors_and_handlers.base import BaseActor
from game_state.game_event import dict2obj, obj2dict
logger = logging.getLogger(__name__)
class SellBot(BaseActor):
def perform_action(self):
# Продажа
sell_items = self._get_options()['sell_item']
if sell_items<>None:
#sell_items={u'S_51':20}
#item_id=u'S_51' # Красные яблоки
#item_save_count=20
for item_id in sell_items.keys():
item_save_count=sell_items[item_id]
itm_count=self._get_game_state().count_in_storage('@'+item_id)
item_count=itm_count-item_save_count
if item_count>0:
sell_event = GameSellItem(count=long(item_count), itemId = unicode(item_id))
self._get_events_sender().send_game_events([sell_event])
self._get_game_state().remove_from_storage('@'+item_id,item_count)
itm_count=self._get_game_state().count_in_storage('@'+item_id)
logger.info(u"Продали %d '%s' осталось %d"%((item_count),self._get_item_reader().get(item_id).name,itm_count))
CollIt=obj2dict(self._get_game_state().get_state().collectionItems)
send_user = self._get_options()['send_user']
if send_user<>None:
saveCollection=['C_42','C_29']
for item_id in CollIt.keys():
send=True
for save in saveCollection:
if save in item_id:send=False
if not send:continue
if CollIt[item_id]>0:
send_gift={
"item":'@'+item_id,
"msg":"",
"count":CollIt[item_id],
"user":send_user
}
event=GameSendGift(gift=send_gift)
self._get_events_sender().send_game_events([event])
logger.info(u"Отправили %d '%s' пользователю %d"%(CollIt[item_id],self._get_item_reader().get(item_id).name,int(send_user)))
CollIt[item_id]=0
self._get_game_state().get_state().collectionItems=dict2obj(CollIt)
try: isles = (open('.\subloc\\'+str(friends[self._get_game_state().countfnyt])+'.txt').read()).split("\n") except: isles = [] frend_users = ('%s')%str(open('.\counts\\'+curuser+'\\friends.txt').read()) DiggerOk = self._get_game_state().get_state().haveTreasure UserIsAway = self._get_game_state().get_state().isAway Fruit_Tree = self._get_game_state().get_state().remoteFertilizeFruitTree monstr = self._get_game_state().get_state().remoteMonsterPit remoteNY = self._get_game_state().get_state().remoteNewYear self.cprint(u'22----------^7_ИДЁМ К ДРУГУ^6_%s^22---------- ^7_%d/%d'%(frend_users, self._get_game_state().countfnyt, len(friends))) self._get_game_state().countfriend+=1 if UserIsAway == True: print u' ', self.cprint(u'71Друг давно не был в игре!!!') for object in self._get_game_state().gameObjects: fren_user = ("'%s'")%str(open('.\counts\\'+curuser+'\\friends.txt').read()) ##### УДОБРЯЕМ ДЕРЕВЬЯ ##### if u'fruitTree' in action: if len(Fruit_Tree) < 20: treefruit = ['FT_APPLE','FT_CHERRY','FT_MANDARINE','FT_LEMON','FT_SKULL','FT_EYE'] for tree in treefruit: if object.item[0-len(tree):] == tree: if not fren_user in str(Fruit_Tree)[0:] and (object.jobFinishTime[0] != '-'): fruitt.insert(0, object) if len(fruitt) > 0: self._get_events_sender().send_game_events([{"type":"item","action":"remoteFertilizeFruitTree"}]) self.cprint (u"1 Удобряем^6_'Фруктовое дерево'^1_!!!") break ##### ЗАКАПЫВАЕМ МИШУТУ ##### if u'monster' in action: if object.type == 'monsterPit' and len(monstr) < 100: if object.state == 'HAVE_PICKUP_BOX' : self.cprint(u'2 у Мишуты ещё не убрали сундук') elif object.state == 'READY_FOR_DIG' : self.cprint(u'2 Мишутка отдыхает') elif object.state == 'DIGGING' : if not fren_user in str(monstr)[0:]: self._get_events_sender().send_game_events([{"itemId":"MONSTER_PIT_1_INSTRUMENT_PACK_DEFAULT","action":"remoteMonsterPit","type":"item","objId":object.id}]) print ' ', self.cprint(u'66ЗАКАПЫВАЕМ МИШАНЮ ^4_!!!') else :self.cprint(u'2 Сегодня уже закапывали Мишаню ') continue ##### КЛАДЕМ ПРЯНИКИ ##### if u'tocake' in action: if object.type == 'newYearTree'and len(remoteNY)<150 and object.level == 2: if object.item == u'@B_SPRUCE_SMOLL' and len(object.users) < 3: if not str(object.id) in str(remoteNY): self._get_events_sender().send_game_events([{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id}]) self.cprint(u'3 Ложим пряник') countnyt+=1 if object.item == u'@B_SPRUCE_MIDDLE' and len(object.users) < 6 : if not str(object.id) in str(remoteNY): self._get_events_sender().send_game_events([{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id}]) self.cprint(u'3 Ложим пряник') countnyt+=1 if object.item == u'@B_SPRUCE_BIG' and len(object.users) < 15: if not str(object.id) in str(remoteNY): self._get_events_sender().send_game_events([{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id}]) self.cprint(u'3 Ложим пряник') countnyt+=1 self._get_game_state().countnyt += countnyt if countnyt > 0: self.cprint(u'3 ПОЛОЖИЛ^7_%s^3_ПРЯНИК(ов)'%str(countnyt)) ##### КОПАЕМ КЛАДЫ ##### count_loop = 0 if treasnotries == 1: self.cprint(u'2 ЛОПАТЫ ЗАКОНЧИЛИСЬ ((') if DiggerOk == False and UserIsAway == False: self.cprint(u'4 ВСЁ ВЫКОПАНО !!!') if u'diggerman' in action: if DiggerOk == True and treasnotries != 1: self.cprint(u'1 КОПАЕМ.....') if len(objssvl) > 0 or len(objssvl2) > 0: if objssvl == []: objssvl = objssvl2 for i in range(shovels): 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"}]) self._get_events_sender().send_game_events() if DiggerOk == False: print u'Все выкопал' break elif DiggerOk == True or treasfound == 1 : count_loop+=1 if count_loop > 0: self.cprint(u'6 ИСПОЛЬЗОВАЛ^7_%d^6_ЛОПАТ'%count_loop) self if hasattr(self._get_game_state(),'alldigged'): del self._get_game_state().alldigged if hasattr(self._get_game_state(),'nyna'): del self._get_game_state().nyna del self._get_game_state().gameObjects if self._get_game_state().countfnyt < len(friends): user = friends[self._get_game_state().countfnyt] try:isles = (open('.\subloc\\'+str(user)+'.txt').read()).split("\n") except:isles = [] #------------------------------------------------ try:locations = self._get_game_state().locationInfos except:locations = None if 0:#hasattr(self._get_game_state(), 'playersInfo'): playersInfo = self._get_game_state().playersInfo wishlist = "[ " wishlist2 = "[ " for wish in playersInfo[0].liteGameState.wishlist: if wish != None: if not wish in ['@CR_70', '@CR_01', '@CR_11', '@CR_44', '@CR_40', '@CR_25', '@CR_16', '@CR_06', '@CR_97']:wishlist += self._get_item_reader().get(wish).name+", " else:wishlist2 += self._get_item_reader().get(wish).name+", " wishlist += self._get_item_reader().get(wish).name+", "
try: isles = (open('.\subloc\\'+str(friends[self._get_game_state().countfnyt])+'.txt').read()).split("\n")
except: isles = []
frend_users = ('%s')%str(open('.\counts\\'+curuser+'\\friends.txt').read())
DiggerOk = self._get_game_state().get_state().haveTreasure
UserIsAway = self._get_game_state().get_state().isAway
Fruit_Tree = self._get_game_state().get_state().remoteFertilizeFruitTree
monstr = self._get_game_state().get_state().remoteMonsterPit
remoteNY = self._get_game_state().get_state().remoteNewYear
self.cprint(u'22----------^7_ИДЁМ К ДРУГУ^6_%s^22---------- ^7_%d/%d'%(frend_users, self._get_game_state().countfnyt, len(friends)))
self._get_game_state().countfriend+=1
if UserIsAway == True:
print u' ',
self.cprint(u'71Друг давно не был в игре!!!')
for object in self._get_game_state().gameObjects:
fren_user = ("'%s'")%str(open('.\counts\\'+curuser+'\\friends.txt').read())
##### УДОБРЯЕМ ДЕРЕВЬЯ #####
if u'fruitTree' in action:
if len(Fruit_Tree) < 20:
treefruit = ['FT_APPLE','FT_CHERRY','FT_MANDARINE','FT_LEMON','FT_SKULL','FT_EYE']
for tree in treefruit:
if object.item[0-len(tree):] == tree:
if not fren_user in str(Fruit_Tree)[0:] and (object.jobFinishTime[0] != '-'):
fruitt.insert(0, object)
if len(fruitt) > 0:
self._get_events_sender().send_game_events([{"type":"item","action":"remoteFertilizeFruitTree"}])
self.cprint (u"1 Удобряем^6_'Фруктовое дерево'^1_!!!")
break
##### ЗАКАПЫВАЕМ МИШУТУ #####
if u'monster' in action:
if object.type == 'monsterPit' and len(monstr) < 100:
if object.state == 'HAVE_PICKUP_BOX' : self.cprint(u'2 у Мишуты ещё не убрали сундук')
elif object.state == 'READY_FOR_DIG' : self.cprint(u'2 Мишутка отдыхает')
elif object.state == 'DIGGING' :
if not fren_user in str(monstr)[0:]:
self._get_events_sender().send_game_events([{"itemId":"MONSTER_PIT_1_INSTRUMENT_PACK_DEFAULT","action":"remoteMonsterPit","type":"item","objId":object.id}])
print ' ',
self.cprint(u'66ЗАКАПЫВАЕМ МИШАНЮ ^4_!!!')
else :self.cprint(u'2 Сегодня уже закапывали Мишаню ')
continue
##### КЛАДЕМ ПРЯНИКИ #####
if u'tocake' in action:
if object.type == 'newYearTree'and len(remoteNY)<150 and object.level == 2:
if object.item == u'@B_SPRUCE_SMOLL' and len(object.users) < 3:
if not str(object.id) in str(remoteNY):
self._get_events_sender().send_game_events([{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id}])
self.cprint(u'3 Ложим пряник')
countnyt+=1
if object.item == u'@B_SPRUCE_MIDDLE' and len(object.users) < 6 :
if not str(object.id) in str(remoteNY):
self._get_events_sender().send_game_events([{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id}])
self.cprint(u'3 Ложим пряник')
countnyt+=1
if object.item == u'@B_SPRUCE_BIG' and len(object.users) < 15:
if not str(object.id) in str(remoteNY):
self._get_events_sender().send_game_events([{"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id}])
self.cprint(u'3 Ложим пряник')
countnyt+=1
self._get_game_state().countnyt += countnyt
if countnyt > 0:
self.cprint(u'3 ПОЛОЖИЛ^7_%s^3_ПРЯНИК(ов)'%str(countnyt))
##### КОПАЕМ КЛАДЫ #####
count_loop = 0
if treasnotries == 1:
self.cprint(u'2 ЛОПАТЫ ЗАКОНЧИЛИСЬ ((')
if DiggerOk == False and UserIsAway == False:
self.cprint(u'4 ВСЁ ВЫКОПАНО !!!')
if u'diggerman' in action:
if DiggerOk == True and treasnotries != 1:
self.cprint(u'1 КОПАЕМ.....')
if len(objssvl) > 0 or len(objssvl2) > 0:
if objssvl == []: objssvl = objssvl2
for i in range(shovels):
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"}])
self._get_events_sender().send_game_events()
if DiggerOk == False:
print u'Все выкопал'
break
elif DiggerOk == True or treasfound == 1 :
count_loop+=1
if count_loop > 0:
self.cprint(u'6 ИСПОЛЬЗОВАЛ^7_%d^6_ЛОПАТ'%count_loop)
self
if hasattr(self._get_game_state(),'alldigged'): del self._get_game_state().alldigged
if hasattr(self._get_game_state(),'nyna'): del self._get_game_state().nyna
del self._get_game_state().gameObjects
if self._get_game_state().countfnyt < len(friends):
user = friends[self._get_game_state().countfnyt]
try:isles = (open('.\subloc\\'+str(user)+'.txt').read()).split("\n")
except:isles = []
#------------------------------------------------
try:locations = self._get_game_state().locationInfos
except:locations = None
if 0:#hasattr(self._get_game_state(), 'playersInfo'):
playersInfo = self._get_game_state().playersInfo
wishlist = "[ "
wishlist2 = "[ "
for wish in playersInfo[0].liteGameState.wishlist:
if wish != None:
if not wish in ['@CR_70', '@CR_01', '@CR_11', '@CR_44', '@CR_40', '@CR_25', '@CR_16', '@CR_06', '@CR_97']:wishlist += self._get_item_reader().get(wish).name+", "
else:wishlist2 += self._get_item_reader().get(wish).name+", "
wishlist += self._get_item_reader().get(wish).name+", "
# 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 game_actors_and_handlers.pickups import Pickuper, AddPickupHandler, BoxPickuper
##############################
from ctypes import windll
import sys
stdout_handle = windll.kernel32.GetStdHandle(-11)
SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute
##############################
import time
import os.path
import os
logger = logging.getLogger(__name__)
class VisitingUsers(BaseActor):
def perform_action(self):
action = [
u'fruitTree', # Удобрять фруктовые деревья
u'pirateBoats', # Стучим в лодки
u'tocake', # Ёлки
u'monster', # Мишка
#u'diggermanfdec', # Копать только под найденным декором если нет декора не копать
u'diggerman', # Копаем рандомно под всеми обьектами
#u'giftFriends', # Дарим БП
u'thanksgiving', # Стучим в постройки
u'pirateBoats_1',
#u'Чмоки1',
]
'''current_loc_id = self._get_game_state().get_game_loc().get_location_id()
storage = self._get_game_state().get_state().storageItems
for item in storage:
if hasattr(item, "item"):
if item.item == "@SHOVEL_EXTRA":
storage_shovel = item.count'''
local = u'main'
curuser = self._get_options()[0][0]
if curuser == 'ok':friends = open('zayka.txt','r').read().split("\n")
if curuser == 'zayka':friends = open('zayka.txt','r').read().split("\n")
elif curuser != 'me root':friends = self._get_options()[0][2]
else:friends = self._get_options()[0][2]#friends = eval(open('friendsid.txt').read())
# Юдо Чудо
friends = ['[BOT]friend1','[BOT]friend2']+ friends
myid = self._get_options()[0][1]
shovels = self._get_options()[1][1]
countp = self._get_options()[1][2] #пряники
favdecors = self._get_options()[1][3]
sort_green = False
if favdecors == None: favdecors = ['none']
if friends == None: return
if countp == None: countp = 5
else: countp = int(countp)
if shovels == None: shovels = 10 #Количество лопат которое желаем истратить
else: shovels = int(shovels)
objtypes = ['woodTree','stone','decoration','building']
if not hasattr(self._get_game_state(), 'mylocids'):
self._get_game_state().mylocids = []
for glocinf in []:
self._get_game_state().mylocids.append(glocinf.locationId)
if not os.path.isdir('.\subloc'): os.makedirs('.\subloc')
if not os.path.isdir('.\counts'): os.makedirs('.\counts')
if not os.path.isdir('.\counts\\'+curuser): os.makedirs('.\counts\\'+curuser)
cfname = '.\counts\\'+curuser+'\countfnyt.txt'
if os.path.isfile(cfname):#это проходит проверка на устарелость вайла счетчика. новый день!!!
ftime = time.localtime(os.path.getmtime(cfname)).tm_mday
hourtime = time.localtime().tm_hour
mintime = time.localtime().tm_min
sectime = time.localtime().tm_sec
self.cprint(u'7_%d:%d:%d'%(hourtime,mintime,sectime))
if ftime != time.localtime().tm_mday and hourtime >= 2 and mintime >= 10:
os.remove(cfname)
if not hasattr(self._get_game_state(),'countfnyt'):
try:
self._get_game_state().countfnyt = int(open('.\counts\\'+curuser+'\countfnyt.txt').read())
except:
self._get_game_state().countfnyt = 0
open('.\counts\\'+curuser+'\countfnyt.txt', 'w').write('0')
if not hasattr(self._get_game_state(), 'nextFriend'):self._get_game_state().nextFriend = self._get_game_state().countfnyt
if not hasattr(self._get_game_state(), 'countnyt'):self._get_game_state().countnyt = 0
if not hasattr(self._get_game_state(), 'countfriend'):self._get_game_state().countfriend = self._get_game_state().countfnyt
if not hasattr(self._get_game_state(), 'gameObjects') and self._get_game_state().countfnyt < len(friends):
user = friends[self._get_game_state().countfnyt]
fren_user = str(user)
if sort_green and hasattr(self._get_game_state(), 'playersInfo'):
players_info = self._get_game_state().playersInfo
load = False
#print 'playersInfo:', len(players_info)
for info in players_info:
if str(info.id) == str(user):
load = True
break
if load and not info.liteGameState.haveTreasure:
print u'У друга всё выкопано!'
self._get_game_state().countfnyt += 1
self._get_game_state().nextFriend += 1
open('.\counts\\'+curuser+'\countfnyt.txt', 'w').write(str(self._get_game_state().countfnyt))
open('.\counts\\'+curuser+'\\friends.txt','w').write(str(user))
return
if str(self._get_game_state().nextFriend) == str(self._get_game_state().countfnyt):
self._get_events_sender().send_game_events([{"action":"gameState",'locationId':local,"user":str(user),"objId":None,"type":"gameState"}])
self._get_events_sender().send_game_events()
self._get_game_state().countfnyt += 1
open('.\counts\\'+curuser+'\countfnyt.txt', 'w').write(str(self._get_game_state().countfnyt))
open('.\counts\\'+curuser+'\\friends.txt','w').write(str(user))
if hasattr(self._get_game_state(), 'gameObjects'):
if not hasattr(self._get_game_state(), 'countCircus'):
self._get_game_state().countCircus = len(self._get_game_state().get_state().remoteTrickTreating)
self._get_game_state().tentCircus = True
baranka = 0
events = []
eventdig = []
countnyt = 0
fruitt = []
thanksgiv = []
thanksgivevent = []
objssvl = []
objssvl2 = []
event = []
decordigger = 0
digger = 0
if hasattr(self._get_game_state(),'treasfound'):treasfound = 1
else: treasfound = 0
if hasattr(self._get_game_state(),'treasnotries'):treasnotries = 1
else: treasnotries = 0
frend_users = ('%s')%str(open('.\counts\\'+curuser+'\\friends.txt').read())
if not hasattr(self._get_game_state(), 'countThanksgiving'):
self._get_game_state().countThanksgiving = len(self._get_game_state().get_state().remoteThanksgiving)
if not hasattr(self._get_game_state(), 'countCake'):
self._get_game_state().countCake = len(self._get_game_state().get_state().remoteNewYear)
if not hasattr(self._get_game_state(), 'countFruitTree'):
self._get_game_state().countFruitTree = len(self._get_game_state().get_state().remoteFertilizeFruitTree)
if not hasattr(self._get_game_state(), 'countMonsterPit'):
self._get_game_state().countMonsterPit = len(self._get_game_state().get_state().remoteMonsterPit)
self._get_game_state().planeAvailable = True
DiggerOk = self._get_game_state().get_state().haveTreasure
UserIsAway = self._get_game_state().get_state().isAway
Fruit_Tree = self._get_game_state().get_state().remoteFertilizeFruitTree
monstr = self._get_game_state().get_state().remoteMonsterPit
remoteNY = self._get_game_state().get_state().remoteNewYear
#Pirate = self._get_game_state().get_state().pirate.state
if hasattr(self._get_game_state().get_state().pirate,'state'):
Pirate = self._get_game_state().get_state().pirate.state
else:Pirate='nonPirate'
#PLstata = self._get_game_state().get_state(). playerSettings.userName
gifteruser = self._get_game_state().get_state().freeGiftUsers
wishlistik = self._get_game_state().get_state().wishlist
remoteThanks = self._get_game_state().get_state().remoteThanksgiving
fakers = ['[BOT]friend1','[BOT]friend2']
username=u'нет ника'
if hasattr(self._get_game_state(),'playersInfo'):
for player in self._get_game_state().playersInfo:
if player.id==frend_users:username=player.liteGameState.playerSettings.userName
self.cprint(u'22----------^7_ИДЁМ К ДРУГУ^6_%s^4_ник:"%s"^22---------- ^7_%d/%d'%(frend_users,username, self._get_game_state().countfnyt, len(friends)))
#self.cprint(u'22----------^7_ИДЁМ К ДРУГУ^6_%s^22---------- ^7_%d/%d'%(frend_users, self._get_game_state().countfnyt, len(friends)))
self._get_game_state().countfriend+=1
if UserIsAway == True:
print u' ',
self.cprint(u'71Друг давно не был в игре!!!^2_')
##### ДАРИМ БП #####
if u'giftFriends' in action:
if not frend_users in str(gifteruser)[0:] and not frend_users in fakers :
wishlst = []
for wish in wishlistik:
if wish != None :
if wish in ['@CR_70', '@CR_01', '@CR_11', '@CR_44', '@CR_40', '@CR_25', '@CR_16', '@CR_06', '@CR_97']:#это фильтр подарков
wishlst.append(wish)
if len(wishlst) > 0:slctwish = random_number.choice(wishlst)#тут по хотелке случайный выбор
else: slctwish = random_number.choice(['@CR_70', '@CR_44', '@CR_25', '@CR_16', '@CR_06'])#тут если нет хотелок случайный выбор
wishname = self._get_item_reader().get(slctwish).name
msg = u'Всем привет !'# сюда пишем сообщение
#self.cprint (u"3 Дарим Бесплатный Подарок^6_'%s'^2_"%wishname)
self.cprint(u'3ДаримПодарок^6_%s^2ссообщением^7%s'%(wishname,msg))
#msg = u'Всем привет !'# сюда пишем сообщение
event.append({"userIds":[frend_users],"msg":msg,"type":"gifts","action":"sendFreeGifts","itemId":slctwish[1:]})
self._get_events_sender().send_game_events(event)
###Стучим в мишени#####
for object in self._get_game_state().gameObjects:
if object.type == 'friendGamesBuilding':
smoll_pule = 0
middle_pule = 0
big_pule = 0
storage = self._get_game_state().get_state().storageItems
for item in storage:
if hasattr(item, "item"):
if item.item == '@R_63':
big_pule = item.count
if item.item == '@R_62':
middle_pule = item.count
if item.item == '@R_61':
smoll_pule = item.count
if object.item == '@B_PAINTBALL_TARGET3'and object.transformPlaysCount<6 and big_pule>0:
self._get_events_sender().send_game_events([{"extraId":"PAINTBALL_TARGET3","type":"game","action":"friendPlay","objId":object.id,"itemId":"B_PAINTBALL_TARGET3"}])
print u'Стреляю в большую мишень'
self._get_game_state().remove_from_storage('@R_63', 1)
big_pule-=1
if object.item == '@B_PAINTBALL_TARGET2' and object.transformPlaysCount<4 and middle_pule>0:
self._get_events_sender().send_game_events([{"extraId":"PAINTBALL_TARGET2","type":"game","action":"friendPlay","objId":object.id,"itemId":"B_PAINTBALL_TARGET2"}])
print u'Стреляю в среднюю мишень'
self._get_game_state().remove_from_storage('@R_62', 1)
middle_pule-=1
if object.item == '@B_PAINTBALL_TARGET1'and object.transformPlaysCount<2 and smoll_pule>0:
self._get_events_sender().send_game_events([{"extraId":"PAINTBALL_TARGET1","type":"game","action":"friendPlay","objId":object.id,"itemId":"B_PAINTBALL_TARGET1"}])
print u'Стреляю в маленькую мишень'
self._get_game_state().remove_from_storage('@R_61', 1)
smoll_pule-=1
fren_user = ("'%s'")%str(open('.\counts\\'+curuser+'\\friends.txt').read())
'''##### СТУЧИМ ДЕРЕВЬЯ ЛЮБВИ #####
if u'pirateBoats_1' in action:#and (fren_user == "'######'"):# Вставляем id кому стучим
if object.type == 'valentineTower':#and Pirate =='CITIZEN' :
event={"objId":object.id,"type":"item","action":"remoteValentineCollect"}
self._get_events_sender().send_game_events([event])
self.cprint (u"3 Нахуячил в Дерево ЛЮБВИ Ебать того короля))")'''
'''##### СТУЧИМ ДЕРЕВЬЯ ЛЮБВИ #####
if u'pirateBoats_1' in action:
if object.type == 'valentineTower':
remoteTrick = self._get_game_state().get_state().remoteValentineCollect
if len(remoteTrick)>0:
for cot in remoteTrick:
if frend_users == cot.user :
baranka = 1
break
if baranka == 1:
if self._get_game_state().countCircus < 5000 and self._get_game_state().tentCircus == True :
self._get_events_sender().send_game_events([{"objId":object.id,"type":"item","action":"remoteValentineCollect"}])
self.cprint(u'8Кладем Чмок')
self._get_game_state().countCircus+=1
self._get_game_state().tentCircus = False'''
##### СТУЧИМ В ЛОДКИ #####
if u'pirateBoats' in action:#and (fren_user == "'######'"):# Вставляем id кому стучим
if object.type == 'pirateBox' and Pirate =='CITIZEN' :
event={"objId":object.id,"type":"item","action":"remotePirateCheckin"}
self._get_events_sender().send_game_events([event])
self.cprint (u"3 Застукал Пиратский сундук")
'''if object.item == u'@B_PIRATE_SCHOONER_2' and len(object.team) < 5:
if not str(myid) in str(object.team):
self._get_events_sender().send_game_events([{"objId":object.id,"type":"item","action":"remotePirateJoinTeam"}])
self.cprint (u"2 Попросился в команду на^6_'Пиратскую Шхуну'^2_!!!")
else:self.cprint (u"3 Ты уже в команде на^6_'Пиратской Шхуне'")
if object.item == u'@B_PIRATE_CARAVEL_2' and len(object.team) < 7:
if not str(myid) in str(object.team):
self._get_events_sender().send_game_events([{"objId":object.id,"type":"item","action":"remotePirateJoinTeam"}])
self.cprint (u"2 Попросился в команду на^6_'Пиратскую Каравеллу'^2_!!!")
else:self.cprint (u"3 Ты уже в команде на^6_'Пиратской Каравелле'")'''
##### Стучим в Дерево страсти #####
if u'Чмоки1' in action:
if object.type=='friendTransformObject':
valentine=self._get_game_state().get_state().friendTransformExpire
# if object.level>=0 or object.count<=0:continue
if len(valentine)>=100:continue
for trans in valentine:
if trans==str(fren_user):break
else:
print u' Ебошим глыбу!!!'
addUser={u'count':0,u'date': -1, u'user': str(fren_user)}
eventtrans={"action":"remoteFriendTransform","type":"item","objId":object.id}
self._get_events_sender().send_game_events([eventtrans])
break
# Дерево страсти
if u'Чмоки' in action:
for object in self._get_game_state().gameObjects:
if object.type=='valentineTower':
valentine=self._get_game_state().get_state().remoteValentineCollect
if object.level>=8 or object.count<=0:continue
if len(valentine)>=300:continue
for valent in valentine:
if valent.user==str(fren_user):break
else:
self.cprint(u'6Стукнул в дерево страсти!!!')
addUser={u'count':0,u'date': -1, u'user': str(fren_user)}
eventValent={"type":"item","objId":object.id,"action":"remoteValentineCollect","id":None}
self._get_events_sender().send_game_events([eventValent])
self._get_game_state().get_state().remoteValentineCollect.append(dict2obj(addUser))
##### УДОБРЯЕМ ДЕРЕВЬЯ #####
if u'fruitTree' in action and not fren_user in fakers:
if self._get_game_state().countFruitTree < 20:
treefruit = ['FT_APPLE','FT_CHERRY','FT_MANDARINE','FT_LEMON','FT_SKULL','FT_EYE']
for tree in treefruit:
if object.item[0-len(tree):] == tree:
if not fren_user in str(Fruit_Tree)[0:] and (object.jobFinishTime[0] != '-'):
fruitt.insert(0, object)
break
##### ЗАКАПЫВАЕМ МИШУТУ #####
if u'monster' in action:
if object.type == 'monsterPit' and self._get_game_state().countMonsterPit < 100:
if object.state == 'DIGGING' :
if not fren_user in str(monstr)[0:]:
self._get_events_sender().send_game_events([{"itemId":"MONSTER_PIT_1_INSTRUMENT_PACK_DEFAULT","action":"remoteMonsterPit","type":"item","objId":object.id}])
countuserinmonstr = (len(object.users)+1)
print ' ',
self.cprint(u'66ЗАКАПЫВАЕМ МИШАНЮ !!!^2_всего закопали уже на^7_%s^2_метра(ов)'%countuserinmonstr)
self._get_game_state().countMonsterPit+=1
else :self.cprint(u'2 Сегодня уже закапывали Мишаню ')
##### КЛАДЕМ ПРЯНИКИ #####
if u'tocake' in action:
if object.type == 'newYearTree'and self._get_game_state().countCake<150 and object.level == 2:
if object.item == u'@B_SPRUCE_SMOLL' and len(object.users) < 3 and countnyt < countp :
if not str(object.id) in str(remoteNY):
events.append({"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id})
self.cprint(u'3 Ложим пряник')
self._get_game_state().countCake+=1
countnyt+=1
if object.item == u'@B_SPRUCE_MIDDLE' and len(object.users) < 6 and countnyt < countp :
if not str(object.id) in str(remoteNY):
events.append({"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id})
self.cprint(u'3 Ложим пряник')
self._get_game_state().countCake+=1
countnyt+=1
if object.item == u'@B_SPRUCE_BIG' and len(object.users) < 15 and countnyt < countp:
if not str(object.id) in str(remoteNY):
events.append({"itemId":"CAKE_PACK_FREE1","action":"remoteNewYear","type":"item","objId":object.id})
self.cprint(u'3 Ложим пряник')
self._get_game_state().countCake+=1
countnyt+=1
# Добавляем в список объекты для копания клада
if u'diggermanfdec' in action:
if DiggerOk == True and UserIsAway == False:
#favdecors = ['D_BALLOONS','D_SUNUMBRELLA','D_BALLOON_YELLOW1','D_BALLOON_YELLOW2'] #Cкакалка
#favdecors = ['D_HAND1','D_FLAG_OLIMPIADA','D_OLYMPIAD_STATUE','D_TANK','D_SOLDIER'] #Военная коллекция
#favdecors = ['D_BUSINESS','D_IDOL2','B_WHITEHOUSE','B_POOL','B_SHIP'] #Коллекция "Брендов", Кафель
#favdecors = ['DS_SYMBOL_E'] #Японская коллекция
#favdecors = ['D_SAKURASMALL','D_REDTREE','D_CONIFER','D_GATE','D_STATUETTE'] #Мыло
#favdecors = ['D_EIFFEL','B_JAPAN','B_JAPAN_LAKE'] #Металлолом
for fdec in favdecors:
if object.item[0-len(fdec):] == fdec:
objssvl.insert(0, object)
self.cprint(u'6 Найдены декорации ^5_%s'%fdec)
decordigger = 1
break
if len(objssvl) > 0:
decordigger = 1
if u'diggerman' in action and decordigger == 0 :
if DiggerOk == True and UserIsAway == False:
if object.type in objtypes:
objssvl2.append(object)
digger = 1
break
self._get_game_state().countnyt += countnyt
self._get_events_sender().send_game_events(events)
self._get_events_sender().send_game_events()
if countnyt>0:
self.cprint(u'3 ПОЛОЖИЛ^7_%s^3_ПРЯНИК(ов)'%str(countnyt))
if len(fruitt) > 0:
self._get_events_sender().send_game_events([{"type":"item","action":"remoteFertilizeFruitTree"}])
self._get_events_sender().send_game_events()
self.cprint (u"1 Удобряем^6_'Фруктовое дерево'^1_!!!")
self._get_game_state().countFruitTree+=1
##### КОПАЕМ КЛАДЫ #####
count_loop = 0
#print storage_shovel
if treasnotries == 1:
self.cprint(u'2 ЛОПАТЫ ЗАКОНЧИЛИСЬ ((')
if DiggerOk == False and UserIsAway == False:
self.cprint(u'4 ВСЁ ВЫКОПАНО !!!')
if decordigger == 1 :
if len(objssvl) > 0:
self.cprint(u'1 КОПАЕМ под Декором.....')
for i in range(shovels):
objdig = random_number.choice(objssvl)
eventdig.append({"objId":objdig.id,"x":objdig.x,"action":"remoteDig","y":objdig.y,"type":"item"})
if DiggerOk == False:
print u'Все выкопал'
break
elif DiggerOk == True:
count_loop+=1
else:self.cprint(u'2 Нет нужных декораций')
if digger == 1:
if len(objssvl2) > 0:
self.cprint(u'1 КОПАЕМ рандомно.....')
for i in range(shovels):
objdig = random_number.choice(objssvl2)
eventdig.append({"objId":objdig.id,"x":objdig.x,"action":"remoteDig","y":objdig.y,"type":"item"})
if DiggerOk == False:
print u'Все выкопал'
break
elif DiggerOk == True:
count_loop+=1
else:self.cprint(u'2 Не копаем')
if len(eventdig) > 48:
for ev in eventdig:
eventdig1= eventdig[:48]
self._get_events_sender().send_game_events(eventdig1)
self._get_events_sender().send_game_events()
del eventdig[:48]
else:
self._get_events_sender().send_game_events(eventdig)
self._get_events_sender().send_game_events()
if count_loop > 0:
self.cprint(u'6 ИСПОЛЬЗОВАЛ^7_%d^6_ЛОПАТ'%count_loop)
if hasattr(self._get_game_state(),'treasnotries'):del self._get_game_state().treasnotries
#if hasattr(item, "item"):del item.item
del self._get_game_state().gameObjects
if self._get_game_state().countfnyt < len(friends):
user = friends[self._get_game_state().countfnyt]
#self._get_events_sender().send_game_events([{"action":"gameState","locationId":'main',"user":str(user),"objId":None,"type":"gameState"}])
self._get_events_sender().send_game_events([{"action":"gameState",'locationId':local,"user":str(user),"objId":None,"type":"gameState"}])
self._get_events_sender().send_game_events()
self._get_game_state().countfnyt += 1
self._get_game_state().nextFriend +=1
open('.\counts\\'+curuser+'\countfnyt.txt', 'w').write(str(self._get_game_state().countfnyt))
open('.\counts\\'+curuser+'\\friends.txt','w').write(str(user))
if self._get_game_state().countfriend >= len(friends):
print ' '
if not hasattr(self._get_game_state(), 'fdend'):
self._get_game_state().fdend = 1
self._get_events_sender().send_game_events([{"action":"gameState","locationId":current_loc_id,"type":"gameState"}])
правда здесь бардак, но что то можешь взять просто из кода и сделать как надо
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от maks_maks)
Попробовал твой код.Постоянно зависает(как и прошлые)на одних и тех же юзерах...
На 26,71,203 и т.д.
что можно с этим сделать?
откоючить имена юзеров
PHP код:
fakers = ['[BOT]friend1','[BOT]friend2']
'''username=u'нет ника'
if hasattr(self._get_game_state(),'playersInfo'):
for player in self._get_game_state().playersInfo:
if player.id==frend_users:username=player.liteGameState.playerSettings.userName'''
#self.cprint(u'22----------^7_ИДЁМ К ДРУГУ^6_%s^4_ник:"%s"^22---------- ^7_%d/%d'%(frend_users,username, self._get_game_state().countfnyt, len(friends)))
self.cprint(u'22----------^7_ИДЁМ К ДРУГУ^6_%s^22---------- ^7_%d/%d'%(frend_users, self._get_game_state().countfnyt, len(friends)))
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от Just1cEE
Друзья подскажите как можно сортировать по уровню друзей копку коллекций от большего уровня к меньшиму? Видел только способ как по ид сортировать
PHP код:
fr_dict = {info.id : info.level for info in players_info} friends_order = fr_dict.items() friends_order.sort(key=lambda x: x[:-1], reverse=True) friends = [fr[0] for fr in friends_order]
players_info соответственно - твоя база друзей
friends список id отсортированный
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось vintets; 17.03.2015 в 09:51.