Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vhyrix
Давай алгоритм сделаю. )
Я еще в январе месяце выложил на питоне, правда упрощенный вариант, без проверки на наличие выставляемых для обмена вещей/элементов коллекций и без добавления получаемого после обмена в GameState
Последний раз редактировалось dark-dragon; 07.08.2014 в 12:33.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от vhyrix
box=16,14,64,70
Могу дать боксы для почти всех островов, кроме домашнего, надежды и веры, со всеми корявостями по бокам. Народ таким заморачиваться точно не станет.
Цитата:
Сообщение от Сергійко
и после этого перестал загружаться
" invocation forwarded to primary instance"
"If you encounter this error , make sure that you dont have more than one instance of the application contacting the debugger." - другими словами, adl убей в процессах. Я для того окно и оставляю, чтобы понимать, что происходит. Да и закрыть его проще, чем убивать adl.
И это в новой версии такое?
Цитата:
Сообщение от dark-dragon
Я еще в январе месяце выложил на питоне
Сейчас туда добавили lastGiven и lastWanted, но наверно и без них будет работать.
Цитата:
Сообщение от dark-dragon
и без добавления получаемого после обмена в GameState
и без реакции на событие "Вам поменяли торга".
Цитата:
Сообщение от vhyrix
И пока бот ведет себя мирно и не наглеет
У меня давно уже идея попросить поправить настройку по умолчанию "тырить сундуки от соседей" в "нет". Кому надо, поставит в "да"
Последний раз редактировалось megabyte0; 07.08.2014 в 15:11.
У меня все эти события давно отображает и лог ведёт
В метод def handleEvent
PHP код:
elif event_to_handle.type == 'monsterPitDigEvent': name = unicode(event_to_handle.user) + self.addName(event_to_handle.user) logger.info(u'Пользователь ' + name + u' закопал нам медведя') #logger.info(u"Пользователь %s закопал нам медведя"% (event_to_handle.user)) with open('action_frends.txt', 'a') as f: sms = u'Пользователь ' + name + u' закопал нам медведя' + u'\n' f.write(sms.encode("utf-8")) elif event_to_handle.type == 'pirateShip': name = unicode(event_to_handle.user) + self.addName(event_to_handle.user) logger.info(u'Пользователь ' + name + u' вошёл в команду корабля') #logger.info(u"Пользователь %s вошёл в команду корабля"% (event_to_handle.user)) with open('action_frends.txt', 'a') as f: sms = u'Пользователь ' + name + u' вошёл в команду корабля' + u'\n' f.write(sms.encode("utf-8")) elif event_to_handle.action == 'exchange': name = unicode(event_to_handle.user) + self.addName(event_to_handle.user) torg = unicode(event_to_handle.objId) logger.info(u'Пользователь ' + name + u' произвёл обмен у торговца ' + torg) #logger.info(u"Пользователь %s произвёл обмен у торговца"% (event_to_handle.user)) with open('action_frends.txt', 'a') as f: sms = u'Пользователь ' + name + u' произвёл обмен у торговца ' + unicode(event_to_handle.objId) + u'\n' f.write(sms.encode("utf-8"))
И добавить метод
PHP код:
def addName(self, id): if hasattr(self.__game_state_, 'friends_names') and self.__game_state_.friends_names.get(id) and self.__game_state_.friends_names.get(id) != u'Без имени': name = u" '" + self.__game_state_.friends_names.get(id) + u"'" name = name.replace(u'\u0456', u'i').encode("UTF-8", "ignore") name = unicode(name, "UTF-8") else: name = u'' return name
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось vintets; 07.08.2014 в 16:04.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
тут мне сказили что есть пакетная садка деревьев, тобишь садит где по 100 или 200 деревьев за раз...)
а нельзя сделать копку чтоб копало не по 1 лопате, а по 5 или 10?
Добавлено через 15 минут
Цитата:
Сообщение от megabyte0
Или я чего-то не знаю или не заметил... просветите, что за вещь такая? Етот сервер.
Обычно, если акк старый и оборудованный, делают из хеллии, потому что она просто крафтится в летучем корабле без варки.
Ботоводы делают из росянки, потому что сажать урожая меньше, а варить всего день потом. Так что можно сделать опционально.
Тогда есть повод скомпилять swf в exe - весь sdk будет не нужен XDD
кстати с новым класом и новым майном перестал виснуть)
что очень важно)
Последний раз редактировалось zloy_gnom_2012; 07.08.2014 в 16:29.
Причина: Добавлено сообщение
вот как-то давно сделал/улучшил модуль для создания материалов в постройках. но на сколько помню работает лимит не правильно. мож кто доработает до совершенства.)
PHP код:
# coding=utf-8
import logging
from game_state.game_types import GameWoodGrave, GameWoodGraveDouble,\
GamePickItem, GameWoodTree, GameStone, GameGainItem, GamePickup
from game_state.game_event import dict2obj
from game_actors_and_handlers.base import BaseActor
logger = logging.getLogger(__name__)
class HarvestExchange(BaseActor):
def perform_action(self):
plan = ["B_EYE", "1", u'isle_faith', 20000]#лопаты на ов.веры
#location_id = u'isle_x'#остров X
location_id = plan[2]#u'isle_faith'#остров веры
#print u'Extra MONEY'
Limit = plan[3]#8000
DstBuildId = plan[0]#"B_EYE"#Глаз-алмаз
#DstBuildId = "B_BUSINESS"#Бизнес центр
craft = plan[1]#"1"#лопаты в глаз-алмаз
#craft = "3"#розы в бизнесцнтре на деньги
#if self._get_game_state().get_location_id() != location_id: return
for one_item in self._get_item_reader().get(DstBuildId).crafts:
if one_item.id == craft:
if one_item.result == "@COINS": couresult = self._get_game_state().get_state().gameMoney
else: couresult = self._get_game_state().count_in_storage(one_item.result)
#print "\t\t\t"+str(couresult)
if couresult < Limit:
#self.cprint(u'4ExtraMoney2')
current_loc = self._get_game_state().get_location_id()
if location_id == current_loc:
#print ""
#print "*"*80
#self.cprint(u'4Extra MONEY3')
Bname = self._get_item_reader().get(DstBuildId).name
exchange = self._get_item_reader().get(DstBuildId).crafts
for one_item in exchange:
if one_item.id == craft:
rose = one_item.materials[0].item
rose_count = one_item.materials[0].count
lily = one_item.materials[1].item
lily_count = one_item.materials[0].count
resultCou = one_item.resultCount
result = one_item.result
#id = self._get_item_reader().get(result).storageItem
name = self._get_item_reader().get(result).name
#print name
break#print result
storage_rose = self._get_game_state().count_in_storage(rose)
storage_lily = self._get_game_state().count_in_storage(lily)
if lily == "@COINS": storage_lily = self._get_game_state().get_state().gameMoney
for item in self._get_game_state().get_state().gameObjects:
if item.item == "@"+DstBuildId:
o_id = item.id
cou = 0
courose = 0
coulily = 0
for _ in range(1000):
if storage_rose > rose_count and storage_lily > lily_count:
event = {"itemId":craft,"objId":o_id,"action":"craft","type":"item"}
#logger.info("Обмениваем партию Роз и Лилий")
self._get_events_sender().send_game_events([event])
if result == "@COINS": self._get_game_state().get_state().gameMoney += resultCou
else: self._get_game_state().add_from_storage(result, resultCou)
cou += resultCou
storage_rose -= rose_count
courose += rose_count
storage_lily -= lily_count
coulily += lily_count
else: break
self._get_game_state().remove_from_storage(rose, courose)
if lily == "@COINS": self._get_game_state().get_state().gameMoney -= coulily
else: self._get_game_state().remove_from_storage(lily, coulily)
if cou > 0: self.cprint(u'4\t\t\tСоздали^7_%d^3%s^2в^6%s'%(cou,name,Bname))
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Добавлены опции для посадки семян. Они довольно закрученные, типа plant_list P_03R,P_27=30, P_17,P_01=1000! и plant_auto P_03R*10,P_27+100 , но надеюсь достаточно понятные. Перепробовал все варианты посадки все равно сажает как сам хочет как настроить то помогите например сделать так чтобы сажал только опредёленный вид растения например мозговницу!!