Amnesia

Больше
15 года 7 мес. назад - 15 года 7 мес. назад #21 от xternalx
xternalx ответил в теме RE: Amnesia
Очередное обновление, версия 0.2.3.
как всегда, прикрепил в шапке
Вложения:
Последнее редактирование: 15 года 7 мес. назад пользователем xternalx.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад - 15 года 7 мес. назад #22 от AndrewReloaded
AndrewReloaded ответил в теме RE: Amnesia

спасибо. жаль конечно что нужно будет лишний файл плагом держать

Ну можно попробовать запихнуть его в ресурсы и грузить оттуда.

Мне вот интересно, а какой библиотекой ты пользуешься, чтобы работать с Lua из Делфей. Я нашёл пару, но одна древняя, а вторая под Лазарус заточена, ошибками засыпала :( я вроде исправил, но не уверен, что как надо....

Мда... и я думаю что было бы неплохо дать ссылку на описание функций стандартной библиотеки Lua... желательно на русском...

у меня есть какой то SynHighlighterLua.pas, может поможешь его прикрутить к синэдиту

uses <...>, SynHighlighterLua;

procedure TForm1.FormCreate(Sender: TObject);
begin
SynMemo1.Highlighter := TSynLuaSyn.Create(self);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
SynMemo1.Highlighter.Free;
end;

Элементарно, Ватсон :)
Последнее редактирование: 15 года 7 мес. назад пользователем AndrewReloaded.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад - 15 года 7 мес. назад #23 от xternalx
xternalx ответил в теме RE: Amnesia
Спасибо за помощь с синэдитом. тот хайлайтер что я нашол - просто ужасен :(
единственное что там выделяется - выделяется жирным цветом, и выделяются только ключевые слова :D
пофик, буду разбираться.

луа враппер для делфи и сама дллка в аттаче

Вложение lua-e6886b0474cad1e116ae6fd5d369660d.zip не найдено

Вложения:
Последнее редактирование: 15 года 7 мес. назад пользователем xternalx.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад - 15 года 7 мес. назад #24 от CowBrat
CowBrat ответил в теме RE: Amnesia
Вроде читаю, вроде по русски все, но все равно ничего не понятно.
1) Я так и не понял, есть блокнот, который подсвечивает синтаксис lua, или нет?
2) Как узнать список событий, кторые можно обрабатывать?
3) Есть ли мануал по lua?
4) Куда писать код скрипта? В файлик main.lua? Или создавать под каждый скрипт новый?
5) Ну и напоследок, по возможности приведите код программы "Hello world" на lua. Чтобы хоть немного представить, как это все работает вместе.
Последнее редактирование: 15 года 7 мес. назад пользователем CowBrat.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #25 от xternalx
xternalx ответил в теме RE: Amnesia
CowBrat писал(а):

Вроде читаю, вроде по русски все, но все равно ничего не понятно.
1) Я так и не понял, есть блокнот, который подсвечивает синтаксис lua, или нет?
2) Как узнать список событий, кторые можно обрабатывать?
3) Есть ли мануал по lua?
4) Куда писать код скрипта? В файлик main.lua? Или создавать под каждый скрипт новый?
5) Ну и напоследок, по возможности приведите код программы "Hello world" на lua. Чтобы хоть немного представить, как это все работает вместе.

1. Пока что скрипты пишутся в блокноте, хоть в виндовом, хоть в каком, но лично я рекомендую SciTE
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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #26 от AndrewReloaded
AndrewReloaded ответил в теме RE: Amnesia

луа враппер для делфи и сама дллка в аттаче

пасиба. Собсно тема заинтересовала в личных целях :)

Есть ли мануал по lua

Вот честно скачанные мною русский и официальный буржуйский.

Вложение lua_manual.zip не найдено

Вложения:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад - 15 года 7 мес. назад #27 от ObServeR
ObServeR ответил в теме RE: Amnesia
Приведу пример того, как можно написать простенького бота.

В этом примере бот умеет:
- выдавать помощь по командам,
- выводить приветсвие,
- показывать текущее время,
- выполнять системные команды (например, 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, спасибо за прикольный плагин! ;)
Последнее редактирование: 15 года 7 мес. назад пользователем ObServeR. Причина: Убрал замечение, вставил пример кода :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #28 от xternalx
xternalx ответил в теме RE: Amnesia
ObServeR писал(а):

P.S. xternalx, спасибо за прикольный плагин! ;)

да пожалуйста! :)
давайте дружно попросим Rapi D'а, чтобы плагиновое АПИ расширил, добавил новых функций для работы с контактами, контактлистом, файловой системой, тогда этот плагин будет просто незаменим для большинства ситуаций...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад - 15 года 7 мес. назад #29 от xternalx
xternalx ответил в теме RE: Amnesia
Очередное обновление, версия 0.2.4. Появилась возможность работать с контактлистом(пока что только получать список контактов, да смотреть инфу о них). Теперь можно написать более продвинутый антиспам бот -)

Добавлены новые события, теперь обработчики событий писать не обязательно. Если их не будет, плагин вернет управление крыске...

файлик как всегда в шапке
Вложения:
Последнее редактирование: 15 года 7 мес. назад пользователем xternalx.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #30 от Fury Fox
Fury Fox ответил в теме RE: Amnesia
Товарищи, разобравшиеся с LUA, помогите, пожалуйста.

В 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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #31 от xternalx
xternalx ответил в теме RE: Amnesia
Fury Fox писал(а):

....
Помогите, пожалуйста, оптимизировать этот индийский код и превратить его в более-менее приемлемый. Заранее спасибо....

да нормальный код в принципе, только совет на будущее - старайся переменным давать осмысленные названия, а не x,y,z. сейчас напишишь, будешь пользоваться некоторое время, а потом захочешь что то переписать, зайдешь, посмотришь свой код и офигеешь, как там все непонятно.

ps:// хотел модифицировать этот код используя регулярные выражения, но почему то не получилось - не возвращает группы, заключенные в скобки - "()". Буду переделывать класс regex :D

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #32 от Fury Fox
Fury Fox ответил в теме RE: Amnesia
x = string.find(s," ", 7)
y = string.find(s," ", x)
z = string.sub(s, 7, x)

так работать со строками нельзя =)
это же просто не логично, но работает ;)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #33 от xternalx
xternalx ответил в теме RE: Amnesia
Fury Fox писал(а):

так работать со строками нельзя =)
это же просто не логично, но работает ;)

если так нельзя, то как можно? :D

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #34 от XBoy
XBoy ответил в теме RE: Amnesia
Плагин прикольный, вот только разобраться в скриптах не просто ((
Пытался что-то написать не очень та и получается, метод тупого копирования готового работает ))

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #35 от xternalx
xternalx ответил в теме RE: Amnesia
Такс, народ! Обращаюсь к тем, кто плагин мой использует, и пытается писать скрипты.

Пробуйте писать какие нибудь системы, к примеру, антиспам, или просто бота. Если будут какие то вопросы по поводу функций, или если необходимого функционала не будет хватать - пишите здесь. А то с каждым новым релизом плагин обрастает новыми функциями(в сл релизе уже можно будет как минимум посылать HTTP GET и POST запросы, а так же попробую реализовать "пакетную" организацию скриптов, но не обещаю :ъ), а времени на тестирование у меня особо нету. Жду замечаний так же :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #36 от XBoy
XBoy ответил в теме RE: Amnesia
Есть предложение, у кого получается что-то писать, можно выкладывать свои скрипты у кого не получается будут учится...
Еще есть вопросик в будущем небудет какого-то упрощения написания скриптов ... допустим выбирать определеное действие из списка ... ? :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад - 15 года 7 мес. назад #37 от ObServeR
ObServeR ответил в теме RE: Amnesia
Amnesia Multichat Script

Скрипт позволяет организовать ЧАТ с помощью RnQ, на которй установлена Amnesia.

Скрипт дублирует все входящие сообщения от каждого учатсника чата остальным участникам чата.

RnQ, на котором запущен скрипт, выступает в роли чат-сервера, но тоже может уаствовать в чате. Для этого надо послать команду на подключение самому себе.

Список доступных команд:

/connect - подключиться к чату;
/exit - отключиться от чата;
/name <имя> - сменить ник;
/add <номер> - добавить в чат друга по его номеру;
/list - cписок участников.

Сообщения транслируются в виде:
#ЧАТ# <Имя> <Сообщение>

Скрипт поставлется с подробными комменатариями и может свободно модифицироваться под собственные нужды.

Для установки необходимо заменить файл main.lua в папке <ваш уин>\Amnesia файлом из архива и перезапустить плагин. (Не забывайте делать архивные копии файлов.)

Вложение amnesia_chat.zip не найдено


P.S. Попробовать чат в работе можно, отправив команду /connect на номер 240932168.
Вложения:
Последнее редактирование: 15 года 7 мес. назад пользователем ObServeR. Причина: Добавил P. S.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #38 от xternalx
xternalx ответил в теме RE: Amnesia
XBoy писал(а):

Есть предложение, у кого получается что-то писать, можно выкладывать свои скрипты у кого не получается будут учится...
Еще есть вопросик в будущем небудет какого-то упрощения написания скриптов ... допустим выбирать определеное действие из списка ... ? :)

однозначного ответа на твой вопрос дать пока не могу к сожалению. Желание сделать встроенный редактор есть, но нету нормального хайлайтера. Да фиг с этим хайлайтером, при добавлении ключевых слов в синэдит и тестировании его возникает какая то странная ошибка "List Index 0 out of bounds" :D
Скорее всего, редактор и менеджер скриптов будут поставляться в виде отдельной проги :)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #39 от XBoy
XBoy ответил в теме RE: Amnesia
Хотя бы в виде отдельной программы, в програмировании я несильно разбираюсь, но плагин мне нравится :) и хочется его использывать ;)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Больше
15 года 7 мес. назад #40 от ObServeR
ObServeR ответил в теме RE: Amnesia
XBoy писал(а):

Еще есть вопросик в будущем небудет какого-то упрощения написания скриптов ... допустим выбирать определеное действие из списка ... ? :)


В редакторе SciTE, о котором упоминалось выше, для стандартных библиотек выскакивают подсказки по именам функций и параметрам.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Модераторы: bassvazoozaDelphukdekRapid D
Время создания страницы: 0.585 секунд
Работает на Kunena форум