Amnesia
- tirpir
- Не в сети
- Senior Member
- Сообщений: 46
- Спасибо получено: 0
Может кто напишет такой скрипт?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xrayman64
- Не в сети
- New Member
- Сообщений: 1
- Спасибо получено: 0
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- x_T
- Не в сети
- New Member
- Сообщений: 13
- Спасибо получено: 0
да бы исключить ситуации с "унылым гавно" и т.п. %)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
ждите, недолго осталось вроде бы.... как только пройдет душевный кризис - обещаю зарелизить новую версию плагина с возможностью создавать обработчики событий клавиатуры, таймеры, и еще что то(забыл, что именно )
x_T, посмотрим... если средствами API можно такое сделать - конечно сделаю
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- x_T
- Не в сети
- New Member
- Сообщений: 13
- Спасибо получено: 0
допустим человек имеет ник "Nick", а у меня в кл он переименован как "унылое гавно" =)а что за унылое гавно? вы о чем?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- x_T
- Не в сети
- New Member
- Сообщений: 13
- Спасибо получено: 0
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Fr0st
- Не в сети
- Platinum Member
- Сообщений: 360
- Спасибо получено: 0
А есть ли возможность "отменить" входящее сообщение, чтобы оно не всплывало?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
метод RnQIncomingMessageЭто мегатруЪ штука! Сейчас натравил на друга, который тестит мирандовского бота, там такая битва началась )))
А есть ли возможность "отменить" входящее сообщение, чтобы оно не всплывало?
в нем делай return false и ничего не всплывет
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Fr0st
- Не в сети
- Platinum Member
- Сообщений: 360
- Спасибо получено: 0
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- OverQuantum
- Не в сети
- Platinum Member
-- section:global
listAntiCapsIn = {"333333333","444444444" } -- список номеров для "АнтиБлондинка", входящие сообщения с которых подвергаются понижению регистра
listForceCapsOut = {"333333333","444444444"} -- список номеров для "яБлондинка", исходящие сообщения на которые подвергаются повышению регистра
-- end:global
function RnQIncomingMessage(uin,flags,datetime,msg)
-- используя метод sendmessage мы сообщаем плагину что текст, который был передан в эту функцию
-- был модифицирован
-- Модуль "АнтиБлондинка" - сообщения с определённых номеров подвергаются де-капс-изации - всегда превращаются в строчные
for i,v in ipairs(listAntiCapsIn) do
if v == uin then
-- номер в списке, понижаем регистр
sendmessage(string.lower(msg))
break
end
end
return true
end
function RnQSendMessage(uin,flags,msg)
-- используя метод sendmessage мы сообщаем плагину что текст, который был передан в эту функцию
-- был модифицирован
-- Модуль "яБлондинка" - сообщения на определённые номера всегда отправляются капсом
for i,v in ipairs(listForceCapsOut) do
if v == uin then
-- номер в списке, повышаем регистр
sendmessage(string.upper(msg))
break
end
end
return true
end
Недостатки:
1) Для русских букв string.lower() и string.upper() не срабатывают.
2) Отправляемые сообщения, прошедшие через "яБлондинка", отображаются капсом в хистори R&Q.
3) Списки номеров задаются пока в скрипте, в глобальных массивах.
4) (некоторые) Другие плагины получают сообщения до Amnesia - например, мой плагин HistoryLog записывает в логи исходные сообщения, до правки регистра.
Вопросы:
1) Можно ли добиться работы string.lower() и string.upper() с русскими буквами? Или может какие-то обходные пути есть?
2) Нет ли способа поиска в массиве (table) быстрее/проще применённого for in ipairs() do if ... ?
3) Скрипт должен быть в main.lua или какая схема скриптов рекомендуется?
Questions are plentiful. Answers are few.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
Вопросы:
1) Можно ли добиться работы string.lower() и string.upper() с русскими буквами? Или может какие-то обходные пути есть?
2) Нет ли способа поиска в массиве (table) быстрее/проще применённого for in ipairs() do if ... ?
3) Скрипт должен быть в main.lua или какая схема скриптов рекомендуется?
1. теоретически можно, для этого судя по слухам необходимо перевести плагин в юникод. Мне это делать лень(сорри за откровение, у меня просто с этим даже опыта не было, да и времени особо нету ). Вариант номер 2. Можно написать отдельные функции, вынести их в отдельную библиотеку, и инклудить ее в свои скрипты. Я так написал перекодировщик из cp866 - to win1251 =).
2. Если у тебя в таблице в качестве названий полей цифры, т.е. обычный массив, то можно сделать так:
for i=1,#tableName do
print(tableName[i])
end
3. Сейчас можно пихать все в main.lua, ибо в текущей версии нет механизма коллекций скриптов, или как это там называется? В общем, нельзя скрипты использовать просто копируя их в какую либо папочку...
Всвязи с п.3. у меня обострился давно назревший вопрос - есть ли смысл продолжать развивать Амнезию?
ps:// кстати, для задания номеров ICQ, сообщения от которых требуется фильтровать, не обязательно править скрипт. Amnesia умеет читать и писать ini файлы, а в скрипте можно создать какие нибудь команды типа /addFilterTo 555333 - добавить номер в список для фильтрования номеров, /rmFilterFrom 555333 - удалит уин из списка фильтруемых...
pps:// все таки, доделаю возможность включать/отключать скрипты галочками
ppps:// для того, чтобы подогреть мой интерес к развитию плагина, пишите здесь идеи по развитию, что бы вы в нем хотели видеть, и так далее
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
кидаешь его в %rnqexedir%/lualib/
создаешь файлик %rnqexedir%/amnesia.lua
в нее пишишь следующий текст:
print("...amnesia.lua")
package.path = './lualib/?.lua'
package.cpath = './lualib/bin/?.dll'
print("...amnesia.lua end")
и в main.lua
пишишь:
dofile('amnesia.lua') -- выполняет файл amnesia.lua, который лежит в той же директории, что и R&Q.exe
require('xternalx') -- подключить библиотеку xternalx
после этого можно спокойно переводить в верхний или в нижний регистр абсолютно любой текст, будь то русский, либо английский =)
Вложение xternalx.7z не найдено
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- OverQuantum
- Не в сети
- Platinum Member
Спасибо, посмотрю.OverQuantum, держи библиотеку мою с переопределенными методами string.lower, string.upper
Questions are plentiful. Answers are few.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Authorised
- Не в сети
- New Member
- Сообщений: 4
- Спасибо получено: 0
И оформление дебагера, как лог плагина RnQ Eye(В отдельном табе, вызываемом по нажатию кнопки плагина на панели).
Ну и консоль(если вы возьмётесь ) тудаже.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
что вы хотите с консолью делать? какой функционал?Было бы неплохо увидеть в этом плагине консоль.
в отдельном табе не буду делать =)И оформление дебагера, как лог плагина RnQ Eye(В отдельном табе, вызываемом по нажатию кнопки плагина на панели).
Ну и консоль(если вы возьмётесь ) тудаже.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Authorised
- Не в сети
- New Member
- Сообщений: 4
- Спасибо получено: 0
Возможности - моментальный доступ к тем же функциям языка которые возможны в простом скрипте, отладка (написал - сразу посмотрел результат).
Кстате замечено что функция rnq.getstatus() всегда возвращает 0(online).
(R&Q 1107.2, Lua и плагин те что висят здесь(свежайшие из всех выложеных), плагинов манипулирующих статусами - не установлено)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
в одном из следующих релизов сделаю.Мультистроковая консоль, с исполнением скрипта по нажатию кнопки, и сохранением его в лог.
Возможности - моментальный доступ к тем же функциям языка которые возможны в простом скрипте, отладка (написал - сразу посмотрел результат),
по подробней здесь можно?управление Крысой через шелл - было бы мажорно!
посмотрю, что там... если не ошибаюсь - это давно уже так =DКстате замечено что функция rnq.getstatus() всегда возвращает 0(online).
(R&Q 1107.2, Lua и плагин те что висят здесь(свежайшие из всех выложеных), плагинов манипулирующих статусами - не установлено)
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
сегодня таки осуществил 90% задуманного - следующий релиз плагина появится на этой, или на следующей неделе, и он как минимум будет уметь выполнять "сборки скриптов", прошу прощения за сумбурность, но это то, о чем меня спросили вот здесь . Кроме того, почти полностью переписано ядро плагина, хорошо это или плохо - не знаю. Сейчас плагин будет есть памяти побольше, чем раньше(оно и понятно ). Далее, сделаю возможность подгружать ресурсы как из открытых источников(банально bmp, png, и т.д.), так и из ресурсных dll(не спрашивайте зачем, просто хочется извратиться ).
Теперь структура каждого скрипта будет такой.
Скрипт состоит из как минимум 2х файлов - конфиг, и сам скрипт.
В конфиге указываются, о том, как называется плагин, кто его сделал, копирайты, и так далее. Кроме того, там указывается имя файла скрипта.
наглядно это выглядит так
%RnQ-USERPATH%/Amnesia/
Antiblond/
amnesia.inf
scriptfile.lua
Ignore/
amnesia.inf
ignore.lua
rqButtonLogo.ico
этот код создаст в окне чата кнопку, и забиндит на нее функцию luaFunction, которая тоже заранее должна будет быть определена.
Кроме того, можно будет менять порядок выполнения скриптов, а так же отключать ненужные скрипты(эта возможность будет доступна в свойствах плагина).
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
В комплекте с архивом идет сам плагин, а так же небольшой sdk, в который входит 2 примера скриптов, ну и естественно, 2 библиотеки, 1 - xternalx.lua с переопределенными методами string.lower, string.upper, которые могут переводить в нижний и верхний регистр соответственно как русский, так и нерусский текст. Вторая - xternalx-ignore.lua, который предоставляет api для организации системы игноров...
Authorised, я сделал то что ты просил, наслаждайся
OverQuantum, ты тоже радуйся, я сделал возможность отключать ненужные плагины, кроме того, добавил возможность изменять порядок работы скриптов интуитивно понятным способом - простым перетаскиванием. Никаких кнопок
ссылка на файлег в первом сообщении
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.