| 4atmen | Дата: Воскресенье, 07.02.2010, 21:10 | Сообщение # 1 |
Лейтенант
Группа: Заблокированные
Сообщений: 46
Репутация: -9999
Статус: Offline
| Плагин хтобыл 40tman.: хтобыл [17:53:03] FreQ111: 40tman.: Я здесь видел 7 юзеров: ПЛЮХ; dsc81; Bbс; Лапулька; honda206; 40tman.; FreQ111; выложить в src/plugins/любая папка
|
| |
|
|
| 4atmen | Дата: Вторник, 09.02.2010, 00:52 | Сообщение # 2 |
Лейтенант
Группа: Заблокированные
Сообщений: 46
Репутация: -9999
Статус: Offline
| в архиве болталка,фильтр длинных сообщений и ников, ну и плага невидимой зачистки. установка и команды в файле хелп.
|
| |
|
|
| 40tman | Дата: Воскресенье, 06.05.2012, 21:51 | Сообщение # 3 |
|
Лейтенант
Группа: Пользователи
Сообщений: 54
Репутация: 5
Статус: Offline
| Давно не постил в эту тему. ТАк вот. Сделал интерпретацию онлайн игры мафия для фрек, на этом думаю все на закончится, ну а пока вот: Code #!/usr/bin/env python # -*- coding: utf8 -*-
import random import threading import time
RBOT = []
MAFIA_REMOTE = {}
MF_GET_RES = {}
def mr_send(to, body, id, ns): message = domish.Element(('jabber:client','message')) message["to"] = jid.JID(to).full() message["type"] = "chat" message["id"] = id message.addElement("body", "jabber:client", "[no text]") message.addElement('x', ns, body) reactor.callFromThread(bot.wrapper.x.send, message)
def mafia_get_info(): if RBOT: for x in RBOT: mr_send(x, u'info',u'1',u'none@tld:x:public')
def mafia_url_get_jid(): time.sleep(1.5) for x in [u'http://mafiozo.in/mafia.txt',u'http://talisman.wen.ru/mafia.txt']: try: import urllib2 req = urllib2.Request(x) r = urllib2.urlopen(req) page = r.read().splitlines() if page: for c in page: c=c.strip() if not c in RBOT and c.count('@'): RBOT.append(c) except: pass
def hnd_mafia(t, s, p): global MAFIA_REMOTE global RBOT global MF_GET_RES jid = s.realjid nick = s.nick rep = '' if not nick: nick = jid.split('@')[0] if jid in MAFIA_REMOTE.keys() and not p: mr_send(MAFIA_REMOTE[jid]['bot'],'1','off',jid+':x:public') del MAFIA_REMOTE[jid] s.msg(t, u'Ок. Вы вышли из Игры!') return if p.isdigit() and int(p) in range(1, 9): if int(p) in MF_GET_RES: private = s.jid MAFIA_REMOTE[jid]={'bot':MF_GET_RES[int(p)]['jid'], 'private':private} mr_send(MF_GET_RES[int(p)]['jid'],'1234','1',jid+':x:'+nick) return else: s.msg(t, u'Партия с таким номером не найденa!') return if not RBOT: s.msg(t, u'При загрузке не удалось получить JID-ы игровых ботов! Повторите попытку через минуту!') mafia_url_get_jid() return MF_GET_RES.clear() mafia_get_info() tt = time.time() while not MF_GET_RES and time.time() - tt<5.5: time.sleep(1) pass if not MF_GET_RES: s.msg(t, u'Извините, на данный момент сервер недоступен!') return for x in MF_GET_RES.keys(): try: rep+=str(x)+'. '+MF_GET_RES[x]['body']+'\n' except: pass s.msg(t, u'Было найдено ('+str(len(MF_GET_RES))+u') партий:\n'+rep+u'\nВыберите номер партии, например:\n .mafia 1') def maf_message(xs): global MAFIA_REMOTE global RBOT global MF_GET_RES
threading.Thread(None, mafia_user, 'thread_'+str(random.randrange(1,111)),(xs,)).start() body, p, ns, jid = '','','',''
for e in xs.elements(): if e.name == "body": p = e.__str__()
if p != u'[no text]': return for e in xs.elements(): if e.name == "x": body=e.__str__() ns=e.uri.__str__()
try: id = xs['id'] except: id = '1' try: jid = xs['from'].split('/')[0] except: pass
if not jid in RBOT: return
sp = ns.split(':') jj = sp[0] if id==u'info': i=len(MF_GET_RES)+1 MF_GET_RES[i] = {'jid':jid, 'body':body} return if id in [u'game_over',u'end']: MAFIA_REMOTE.clear() return if id==u'vcard': try: pass except: pass return if sp[0] in MAFIA_REMOTE.keys(): jj = MAFIA_REMOTE[sp[0]]['private'] bot.muc.msg('chat', jj, body)
def mafia_user(xs): p = None for e in xs.elements(): if e.name == "body": p = e.__str__() if not p or p.split()[0].lower() in [x[1] for x in bot.cmdhandlers]: return jid = None try: jid = xs['from'].split('/')[0] except:pass if jid in MAFIA_REMOTE.keys(): mr_send(MAFIA_REMOTE[jid]['bot'], p, str(random.randrange(1,222)), jid+':x:public')
bot.register_cmd_handler(hnd_mafia, '.mafia') mafia_url_get_jid()
def register_hnd_mm(): while not hasattr(bot.wrapper.x,'addObserver'): time.sleep(1) pass time.sleep(1) bot.wrapper.x.addObserver('/message', maf_message)
threading.Thread(None, register_hnd_mm, 'thread_'+str(random.randrange(1,10))).start()
if not os.path.exists('doc/help/mafia-ru.txt'): try: fp=open('doc/help/mafia-ru.txt','w') fp.write("""muc Психологическая онлайн игра мафия! Игра происходит через сеть игровых ботов, поэтому участвовать в ней могут юзеры из разных конференций и протоколов! http://ru.wikipedia.org/wiki/Мафия_(игра) """) fp.close() except: pass http://upwap.ru/2280647
файл кидать в папка_с_ботом(freq)/src/plugins/mucДобавлено (06.05.2012, 21:51) --------------------------------------------- some_user @ 18:23:39
.mafia
бот @ 18:23:39
Было найдено (2) партий: 1. Город Зомби
2. Город Голодных Троллей some_user Механик
Выберите номер партии, например: .mafia 1
|
| |
|
|