Он нужен? Соль нормально генерируется и в клиенте. Кросплатформенно без "левых sigов". На линуксе уже запускали, отзывы есть что всё нормально.
да в общем то и не нужен уже, когда всем у всех желающих уже есть клиентский генератор соли. просто с технической стороны интересно по чему плохо работает...
sigsvr.py
PHP код:
from read_swf import swf2functions
import urllib2
import socket
import os.path
for f in dic[data[0]]:
salt_sig = f(data[3])
else:
evt += "\t\tExec Function"
#print len(dic)
for f in dic[data[0]]:
salt_sig = f(data[1])
Мне кажется, корректнее было бы
Код:
salt_sig = data[3]
else:
evt += "\t\tExec Function"
#print len(dic)
salt_sig = data[1]
for f in dic[data[0]]:
salt_sig = f(salt_sig)
, потому что нужно применить функции f последовательно, результат предыдущей в следующую.
Дальше, мне не нравится sig += salt_sig.lower() , именно этот .lower()
А вообще я пока что сильно не вчитывался.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Набросала альтернативу SellBot, может кому пригодится. Принцип работы такой:
Составляем список продаваемых элементов, указываем минимальное и максимальное количество денег. Когда количество монет достигает минимума, бот продаёт из списка элементы, чтобы денег стало максимум.
Для тех, кто хочет подкопить денег на чёрный день.
Добавляем класс в storage.py
Код:
class SellEconom(BaseActor):
def perform_action(self):
min_money = 50000000
max_money = 100000000
sell_item = [
'S_51', #Красные яблоки
'S_52', #Вишня
'S_40', #Мозговница
]
if self._get_game_state().get_state().gameMoney < min_money:
intent = False
gain = max_money - min_money
for sell in sell_item:
sell_count = self._get_game_state().count_in_storage('@'+sell)
if sell_count > 0:
gain_sell = self._get_item_reader().get(sell).sellCoins*sell_count
if gain_sell > gain:
sell_count = gain/self._get_item_reader().get(sell).sellCoins
intent = True
sell_event = GameSellItem(count=long(sell_count), itemId = unicode(sell))
self._get_events_sender().send_game_events([sell_event])
self._get_game_state().remove_from_storage('@'+sell,sell_count)
count=self._get_game_state().count_in_storage('@'+sell)
self._get_game_state().get_state().gameMoney += self._get_item_reader().get(sell).sellCoins*sell_count
logger.info(u"Продали %d '%s' осталось %d"%((sell_count),self._get_item_reader().get(sell).name,count))
if intent: break
в движок
Код:
from game_actors_and_handlers.storage import SellBot, SellEconom
Код:
actor_classes = [
SellEconom,
]
Ну и чтобы в посейке шёл учёт монет
Код:
if len(all_event)>0:
self._get_events_sender().send_game_events(buy_events)
self._get_game_state().get_state().gameMoney -= self._get_item_reader().get(seed_item.id).buyCoins*len(all_event)
logger.info(u'Посеяли %d "%s"'%(len(all_event),seed_item.name))
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Всем привет!
Прочитал все темы по данному сабу.
Учёл все замечания, наставления, советы и прочее.
Питон работает, среда прописана, бот запускается, авторизация проходит.
Но при загрузке острова вылетает на ошибке в файле mrutils.py.
Строка довольно важная, и ,думаю, её закомментировать не будет смысла.
Цитата:
File "C:\Program Files (x86)\python2.7.8\src\mrutils.py", line 38, in get_game
_params
params['ext_perm']=params['ext_perm'].replace('%2C',',')
TypeError: 'NoneType' object has no attribute '__getitem__'
Кто может помочь по вопросу?
P.S. Пробую версии файлов бота от разных авторов.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от KORTEG
Строка довольно важная, и ,думаю, её закомментировать не будет смысла.
1. Откуда такая уверенность в важности строки? [Ссылки могут видеть только зарегистрированные пользователи. ] как оказалось Первая же ссылка выводит на описание.
Беспонтовый параметр для бота.
2. Не попробовав завести двигатель - не поедешь точно.
Цитата:
Сообщение от KORTEG
Кто может помочь по вопросу?
P.S. Пробую версии файлов бота от разных авторов.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от KORTEG
Написал так потому, что пробовал )
Комментирую, всплывает следующая ошибка, строка 42, 44, 46 и т.д.
Поэтому в замешательстве.
Ну так выходит, что у тебя не получает бот данные в строке
PHP код:
params = self.getAppParams('609744')
Нужно смотреть функцию getAppParams, и почему она коряво работает. Скорее всего проблема в строке получения matcher. Я не юзаю MR, но кажись должно быть так.
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от KORTEG
Всем привет!
Прочитал все темы по данному сабу.
Учёл все замечания, наставления, советы и прочее.
Питон работает, среда прописана, бот запускается, авторизация проходит.
Но при загрузке острова вылетает на ошибке в файле mrutils.py.
Строка довольно важная, и ,думаю, её закомментировать не будет смысла.
Кто может помочь по вопросу?
P.S. Пробую версии файлов бота от разных авторов.
Я могу помочь.
У тебя не приходят данные от сервера. Потому, что в mail в декабре 2013 изменился порядок авторизации в игре.
Я тут весь январь боролся и всех просил помочь. В итоге поковырявшись и получив опухшую голову переписал часть mrutils. Обращайся.
Там ещё особенность со списком друзей, но это нужно только для имён или для копателя.
P.S. +бонус первому позвонившему
анализ активности друзей с выводом в таблицу для excel (сразу как в excel ХЗ) и дальнейшей возможностью сортировать по любым параметрам:
Имя, id, ник, установлена ли ферма, уровень, баня,
последнее замеченное посещение (по возможности копать/стукам в наши ёлки/закопка нашего медведя)
+наличие перрона от копателя. И со ссылками на дом страницы для ручного выковыривания неугодных.
Вся эта красота дописана на 90%
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
[Ссылки могут видеть только зарегистрированные пользователи. ][Ссылки могут видеть только зарегистрированные пользователи. ]
подскажите в чём тут конкретно образовалась проблема? и как это "вылечить" ?
Re: Zombot (Клиент для игры Зомби ферма) [Обсуждение]
Цитата:
Сообщение от megabyte0
Вопрос к тому, у кого Вы брали message_factory.py .
У меня такой строчки нет. Используйте стабильные работающие правки, а не eval(data). )
Да это еще из первоначальной версии, где писались файлы keys.txt и sig.txt. Вот и возник вопрос.
А по сути. Написано же "unexpected EOF (end of file)" = "неожиданный конец файла". Вариантов несколько, но самый вероятный - пустая строка где-то в файле sig.txt в неположенном месте или он вообще пустой
Правленный конечный вариант фунциклирует на ура. Юзайте его.