Amnesia
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
как всегда, прикрепил в шапке
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- AndrewReloaded
- Не в сети
- New Member
- Сообщений: 16
- Спасибо получено: 0
Ну можно попробовать запихнуть его в ресурсы и грузить оттуда.спасибо. жаль конечно что нужно будет лишний файл плагом держать
Мне вот интересно, а какой библиотекой ты пользуешься, чтобы работать с Lua из Делфей. Я нашёл пару, но одна древняя, а вторая под Лазарус заточена, ошибками засыпала я вроде исправил, но не уверен, что как надо....
Мда... и я думаю что было бы неплохо дать ссылку на описание функций стандартной библиотеки Lua... желательно на русском...
uses <...>, SynHighlighterLua;у меня есть какой то SynHighlighterLua.pas, может поможешь его прикрутить к синэдиту
procedure TForm1.FormCreate(Sender: TObject);
begin
SynMemo1.Highlighter := TSynLuaSyn.Create(self);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
SynMemo1.Highlighter.Free;
end;
Элементарно, Ватсон
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
единственное что там выделяется - выделяется жирным цветом, и выделяются только ключевые слова
пофик, буду разбираться.
луа враппер для делфи и сама дллка в аттаче
Вложение lua-e6886b0474cad1e116ae6fd5d369660d.zip не найдено
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- CowBrat
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
1) Я так и не понял, есть блокнот, который подсвечивает синтаксис lua, или нет?
2) Как узнать список событий, кторые можно обрабатывать?
3) Есть ли мануал по lua?
4) Куда писать код скрипта? В файлик main.lua? Или создавать под каждый скрипт новый?
5) Ну и напоследок, по возможности приведите код программы "Hello world" на lua. Чтобы хоть немного представить, как это все работает вместе.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
1. Пока что скрипты пишутся в блокноте, хоть в виндовом, хоть в каком, но лично я рекомендую SciTEВроде читаю, вроде по русски все, но все равно ничего не понятно.
1) Я так и не понял, есть блокнот, который подсвечивает синтаксис lua, или нет?
2) Как узнать список событий, кторые можно обрабатывать?
3) Есть ли мануал по lua?
4) Куда писать код скрипта? В файлик main.lua? Или создавать под каждый скрипт новый?
5) Ну и напоследок, по возможности приведите код программы "Hello world" на lua. Чтобы хоть немного представить, как это все работает вместе.
2. Список доступных событий(а их пока всего 3) описаны в файле main.lua, идущем в архиве с плагином.
3. есть, к примеру, вот этот , а еще google
4. Да, именно в main.lua. Сейчас пока что нужно ручками создавать, но встроенный редактор появится в одном из следующих релизов, и там будет все гораздо проще.
5. пишу вместе с объявлением события:
function RnQInitialize(rnqVapiVer,rnqPath,rnqUserPath,rnqCurrentUIN)
print("Hello, World! I'm initialized!")
return true
end
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- AndrewReloaded
- Не в сети
- New Member
- Сообщений: 16
- Спасибо получено: 0
пасиба. Собсно тема заинтересовала в личных целяхлуа враппер для делфи и сама дллка в аттаче
Вот честно скачанные мною русский и официальный буржуйский.Есть ли мануал по lua
Вложение lua_manual.zip не найдено
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- ObServeR
- Не в сети
- Senior Member
- Сообщений: 78
- Спасибо получено: 0
В этом примере бот умеет:
- выдавать помощь по командам,
- выводить приветсвие,
- показывать текущее время,
- выполнять системные команды (например, exec notepad или exec calc),
- устанавливать статус и видимость,
- отключать RnQ насовсем или на определенное количество секунд, после которого RnQ снова законнектится.
Для того, чтобы бот заработал, нужно заменить функцию RnQIncomingMessage() указанным кодом (или перетащить только нужные куски кода) и перезапустить Amnesia.
Дальше бота можно развивать в нужном направлении. Думаю, код достаточно простой и понятный.
function RnQIncomingMessage(uin,flags,datetime,msg)
if string.sub(msg, 1, 1) == "/" then -- простенький бот, команды начинаются с "/"
s = string.lower(msg) --преобразуем команду в нижний регистр
if s == "/help" then
rnq.sendmsg(uin,
"Доступные команды: \
/help - показать помощь\
/hello - вывести приветствие\
/time - показать текущее время\
/exec <команда> - выполнить команду\
/setstatus <статус> - установить статус (Доступные значения: online, offline, occupied, away, dnd, na, freeforchat, unknown, evil, depression)\
/setvisibility <видимость> - установить видимость (Доступные значения: invisible, privacy, normal, all, contacts)\
/disconnect - отключить RnQ (Подумайте дважды!)\
/disconnect <секунд> - отключить RnQ на указанное количество секунд")
elseif s == "/hello" then
name = rnq.getdisplayednamefor(uin) --получим имя собеседника
rnq.sendmsg(uin, "Здравствуй, "..name.."! Я - бот!\nЯ работаю на базе Amnesia "..sys.getversion()) --покажем приветствие
elseif s == "/time" then
rnq.sendmsg(uin, sys.gettime("dd.mm.yyyy hh:nn:ss")) --выведем текущее время
elseif string.sub(s, 1, 6) == "/exec " then
os.execute(string.sub(s, 7)) --выполним команду
elseif string.sub(s, 1, 11) == "/setstatus " then
rnq.setstatus(string.sub(s, 12)) --установим статус
elseif string.sub(s, 1, 15) == "/setvisibility " then
rnq.setvisibility(string.sub(s, 16)) --установим видимость
elseif string.sub(s, 1, 11) == "/disconnect" then
seconds = tonumber(string.sub(s, 13)) --определим количество секунд, заданное пользователем
if seconds == nil then
rnq.disconnect() --отключимся насовсем
else
starttime = os.clock() --запомним текущее время
rnq.disconnect() --отключимся
repeat --начало цикла
timer = os.clock() - starttime --посчитаем прошедшее время
sys.doevents() --эта команда не дает плагину "зависнуть"
until timer >= seconds --не выйдем из цикла, пока не пройдет нужное количество секунд
rnq.connect() --подключимся
end
end
end
return true
end
P.S. xternalx, спасибо за прикольный плагин!
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
да пожалуйста!P.S. xternalx, спасибо за прикольный плагин!
давайте дружно попросим Rapi D'а, чтобы плагиновое АПИ расширил, добавил новых функций для работы с контактами, контактлистом, файловой системой, тогда этот плагин будет просто незаменим для большинства ситуаций...
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
Добавлены новые события, теперь обработчики событий писать не обязательно. Если их не будет, плагин вернет управление крыске...
файлик как всегда в шапке
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Fury Fox
- Не в сети
- New Member
- Сообщений: 4
- Спасибо получено: 0
В readme от господина xternalx есть пример, как перенаправлять сообщения с одной аси в другую. Учитывая, что я часто отлучаюсь из дома, но включать две аси в телефоне нет желания, с помощью русского мата, доки и примера внизу написал и обратную ф-цию.
Которая посылает сообщения с той же аси.
Помогите, пожалуйста, оптимизировать этот индийский код и превратить его в более-менее приемлемый. Заранее спасибо.
if string.sub(s, 1, 6) == "/send " then
x = string.find(s," ", 7)
y = string.find(s," ", x)
z = string.sub(s, 7, x)
a = string.sub(s, x, string.len(s))
if tonumber(z)
then
rnq.sendmsg(z,'message from '..uin..': '..a)
end
end
end
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
да нормальный код в принципе, только совет на будущее - старайся переменным давать осмысленные названия, а не x,y,z. сейчас напишишь, будешь пользоваться некоторое время, а потом захочешь что то переписать, зайдешь, посмотришь свой код и офигеешь, как там все непонятно.....
Помогите, пожалуйста, оптимизировать этот индийский код и превратить его в более-менее приемлемый. Заранее спасибо....
ps:// хотел модифицировать этот код используя регулярные выражения, но почему то не получилось - не возвращает группы, заключенные в скобки - "()". Буду переделывать класс regex
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Fury Fox
- Не в сети
- New Member
- Сообщений: 4
- Спасибо получено: 0
x = string.find(s," ", 7)
y = string.find(s," ", x)
z = string.sub(s, 7, x)
так работать со строками нельзя =)
это же просто не логично, но работает
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
если так нельзя, то как можно?так работать со строками нельзя =)
это же просто не логично, но работает
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- XBoy
- Не в сети
- New Member
- Сообщений: 6
- Спасибо получено: 0
Пытался что-то написать не очень та и получается, метод тупого копирования готового работает ))
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
Пробуйте писать какие нибудь системы, к примеру, антиспам, или просто бота. Если будут какие то вопросы по поводу функций, или если необходимого функционала не будет хватать - пишите здесь. А то с каждым новым релизом плагин обрастает новыми функциями(в сл релизе уже можно будет как минимум посылать HTTP GET и POST запросы, а так же попробую реализовать "пакетную" организацию скриптов, но не обещаю :ъ), а времени на тестирование у меня особо нету. Жду замечаний так же
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- XBoy
- Не в сети
- New Member
- Сообщений: 6
- Спасибо получено: 0
Еще есть вопросик в будущем небудет какого-то упрощения написания скриптов ... допустим выбирать определеное действие из списка ... ?
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- ObServeR
- Не в сети
- Senior Member
- Сообщений: 78
- Спасибо получено: 0
Скрипт позволяет организовать ЧАТ с помощью RnQ, на которй установлена Amnesia.
Скрипт дублирует все входящие сообщения от каждого учатсника чата остальным участникам чата.
RnQ, на котором запущен скрипт, выступает в роли чат-сервера, но тоже может уаствовать в чате. Для этого надо послать команду на подключение самому себе.
Список доступных команд:
/connect - подключиться к чату;
/exit - отключиться от чата;
/name <имя> - сменить ник;
/add <номер> - добавить в чат друга по его номеру;
/list - cписок участников.
Сообщения транслируются в виде:
#ЧАТ# <Имя> <Сообщение>
Скрипт поставлется с подробными комменатариями и может свободно модифицироваться под собственные нужды.
Для установки необходимо заменить файл main.lua в папке <ваш уин>\Amnesia файлом из архива и перезапустить плагин. (Не забывайте делать архивные копии файлов.)
Вложение amnesia_chat.zip не найдено
P.S. Попробовать чат в работе можно, отправив команду /connect на номер 240932168.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- xternalx
- Не в сети
- Elite Member
- Сообщений: 201
- Спасибо получено: 0
однозначного ответа на твой вопрос дать пока не могу к сожалению. Желание сделать встроенный редактор есть, но нету нормального хайлайтера. Да фиг с этим хайлайтером, при добавлении ключевых слов в синэдит и тестировании его возникает какая то странная ошибка "List Index 0 out of bounds"Есть предложение, у кого получается что-то писать, можно выкладывать свои скрипты у кого не получается будут учится...
Еще есть вопросик в будущем небудет какого-то упрощения написания скриптов ... допустим выбирать определеное действие из списка ... ?
Скорее всего, редактор и менеджер скриптов будут поставляться в виде отдельной проги
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- XBoy
- Не в сети
- New Member
- Сообщений: 6
- Спасибо получено: 0
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- ObServeR
- Не в сети
- Senior Member
- Сообщений: 78
- Спасибо получено: 0
Еще есть вопросик в будущем небудет какого-то упрощения написания скриптов ... допустим выбирать определеное действие из списка ... ?
В редакторе SciTE, о котором упоминалось выше, для стандартных библиотек выскакивают подсказки по именам функций и параметрам.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.