Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Готовые скрипты для PtokaX _ AscIIArtBot

Автор: F I L I N 9.6.2009, 2:38

Название: AscIIArtBot 2
Версия API: 2
Описание: Скрипт показа ASCII рисунков в чат!

 AscIIArtBot_2.rar ( 11 килобайт ) : 297
 

Автор: Uncle_Dif 24.6.2009, 21:51

Цитата(F I L I N @ 9.6.2009, 2:38) *
Название: AscIIArtBot 2
Версия API: 2
Описание: Заменены прежние "символьные рисунки" на более новые...


Стесняюсь спросить, про что бот?

Автор: Wariner 24.6.2009, 21:56

1) если интересуешься скачиваешь и ставишь
2) если по каким причинам не можешь скачать, набирай в поиске AscIIArtBot

Автор: trojan 9.2.2010, 19:43

1

Автор: Wariner 9.2.2010, 21:03

Надо заменить

Код
Core.SendToAll(user.sNick.."\r\n"..contents.."\r\n|")

на
Код
Core.SendToUser(user, "\r\n"..contents.."\r\n|")

Автор: Jaska 9.2.2010, 22:35

Перебрал скрипт, теперь файлы загружаются в таблицу при запуске скрипта и обращение идет к таблице а не к файлам. Добавил возможность отправлять ASCII картинки. База картинок остается старой. Для работы требуется http://mydc.ru/topic1970.html

 ASCII.lua ( 2.28 килобайт ) : 21

p.s есть идея по созданию базы картинок, скрипт будет по графику стучаться на сервер и забирать оттуда свежие картинки и сохранять на жестком хаба. если будут желающие - сделаю, но для этого нужно набирать базу картинок big_smile.gif

Автор: Wariner 9.2.2010, 23:04

а смысл вот этого

Код
Core.GetPtokaXPath():gsub("\\","/")
?
вроде Core.GetPtokaXPath()и так возвращает пути с одинарным /

и какой смысл в этом усовершенствовании? я не совсем понял?

upd: и ещё какой смысл вносить настройки в таблицу? это оптимизация или просто так удобно?

Автор: Jaska 9.2.2010, 23:15

1) Core.GetPtokaXPath():gsub("//","\") осталась привычка с 0.4.0.0 вроде, не помню точно. Нужно вот для http://mydc.ru/index.html?showtopic=539&view=findpost&p=4342 (думаю и сам знаешь)
2) Хочется верить что второе, но для меня удобней все в одной таблице. Насчет оптимизации это вопрос к Setuper'у :-)

Автор: Wariner 9.2.2010, 23:58

Код
:gsub("//","\")
можно убрать))))

Илюх, если увидишь это сообщение прокомментирую оптимизацию. есть она или нет?

Автор: Setuper 10.2.2010, 15:30

Поскольку таблица tSettings не передаётся в качестве аргументов какой-либо функции, то затрат на копирование при передачи аргументов в стек вызова нету, поэтому в данном случае без разницы как хранить настройки в таблице или без.

Для разъяснения приведу 2 фрагмента, которые делают одно и тоже:

Код
function F(s1)
  return s1.." world"
end

local s = "hello"
Core.SendToAll(s)

s = F(s)    -- тут 2 копирования. Сначала создаётся параметр s1 функции F, и в него копируется содержимое переменной s,
            -- потом, после завершения работы функции, грубо говоря, параметр s1 копируется опять в s.

Core.SendToAll(s)


Код
function F(t1)
  t1[1] = t1[1].." world"
end

local t = {"hello"}
Core.SendToAll(t[1])

F(t)    -- тут нет копирования. Таблица t передаётся в функцию по ссылке,
        -- а не по значению, поэтому t и t1 - это одна и та же таблица в памяти.

Core.SendToAll(t[1])

Первый код - передача параметра функции по значению (создание каждый раз при вызове функции нового параметра и копирование данных в этот параметр).
Второй код - передача параметра функции по ссылке (не создаётся новый параметр, а идёт работа с памятью уже существующего параметра, поэтому нет создания новой переменной и нет копирования).

Строка - это массив букв, поэтому нужно тщательнее подходить к вопросам копирования именно строк, дабы не копировать по нескольку раз большое количество символов.
Заметьте, что оба фрагмента делают одно и тоже, но второй это делает значительно оптимальнее.