myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
3 страниц V   1 2 3 >  
Ответить в данную темуНачать новую тему

> Вопросы по скриптам, Мелкие вопросы

Теги
Нет тегов для показа
DrakonSP
сообщение 18.2.2010, 1:24
Сообщение #1


Продвинутый участник
****

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Раскрывающийся текст
Код
local sPath = Core.GetPtokaXPath().."scripts/TextBot/"

function ChatArrival(tUser, sData)
    local sCmd = sData:match"%b<>%s+%p(%S+).*|"
    if sCmd then
        Core.SendToUser(tUser, OpenTextFile(sCmd))
    return true
    end    
end

function OpenTextFile(sCmd)
    local sMessage = ""
    local bBinary = bBinary or false
    local sFile = io.open(sPath..sCmd..".txt", "r")
    if sFile then
        sMessage = sFile:read("*all")
        sFile:close()
    end
    return sMessage
end

Всё ли правильно в этом скрипте?
Написал. Работает. Но не уверен, что тут всё верно. Гляньте плиз big_smile1.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 18.2.2010, 2:22
Сообщение #2


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Я бы вот так написал big_smile.gif :
Код
local sPath = Core.GetPtokaXPath().."scripts/TextBot/"

function ChatArrival(tUser, sData)
  local sCmd = sData:match"^%b<>%s+%p(%S+).*|$"
  if sCmd then
    local sMsg = LoadText(sPath..sCmd..".txt")
    if sMsg then
      Core.SendToUser(tUser, sMsg)
      return true
    end
  end
end

function LoadText(sFile)
  local hFile = io.open(sFile)
  if hFile then
    local sMsg = hFile:read"*a"
    sMsg = sMsg:gsub("&#(%d+);", "&#38;#%1;")
    sMsg = sMsg:gsub("|", "&#124;")
    sMsg = sMsg:gsub("^%$", "&#36;")
    hFile:flush()
    hFile:close()
    return sMsg
  end
  return nil, "Не удалось открыть файл "..sFile
end


Спасибо сказали:
Go to the top of the page
+Quote Post
DrakonSP
сообщение 18.2.2010, 6:19
Сообщение #3


Продвинутый участник
****

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




При отображении в клиенте на конце текста прописываеться $
Go to the top of the page
+Quote Post
Setuper
сообщение 18.2.2010, 11:32
Сообщение #4


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Пардон. В строке:
Код
sMsg = sMsg:gsub("^%$", "&#36;")
знак $ нужно заэкранировать.

Твой скрипт тоже работает. Однако, особенности протокола заставляют нас обходить некоторые знаки.
Например, в твоём скрипте:
1) пользователям не отсылались бы сообщения, начинающиеся со знака $;
2) знак | в сообщении служил бы разделителем команд и не отображался бы в чате, а всё что шло после этого знака отсылалось бы в следующей команде;
3) любые цифры от 1 до 255, перед которыми стояли бы символы &#, и после которых стоял бы символ ;, преобразовывались бы из кодов в некоторые символы перед тем как поступить в чат пользователя.


Спасибо сказали:
Go to the top of the page
+Quote Post
DrakonSP
сообщение 20.2.2010, 10:38
Сообщение #5


Продвинутый участник
****

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




А возможно ли для этого скрипта
Прикрепленный файл  TextBot.lua ( 657 байт ) Кол-во скачиваний: 10

Сделать следующую фичу:
Чтобы в текством файле указывать например [views]
А пользователю отображалось количество просмотров данной темы (текстового файла)
Что то вроде как в MOTD в скрипте StatPX, только вместо всяких рекордов пользователей было количество просмотров.
Go to the top of the page
+Quote Post
Setuper
сообщение 20.2.2010, 11:49
Сообщение #6


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




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

Прикрепленный файл  TextBot.lua ( 1.61 килобайт ) Кол-во скачиваний: 22


Спасибо сказали:
Go to the top of the page
+Quote Post
DrakonSP
сообщение 20.2.2010, 12:13
Сообщение #7


Продвинутый участник
****

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Лучше в файл big_smile1.gif Если не затруднит + ошибка
Цитата
TextBot.lua:10: bad argument count to 'SendToUser' (2 expected, got 3)
Go to the top of the page
+Quote Post
Saymon21
сообщение 20.2.2010, 12:26
Сообщение #8


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




У меня тоже маленький вопросик будет big_smile.gif
Как реализовать запись юзеров онлайн и общий объём шары хаба на изображение?
Знаю только что для этого нужна библиотека luagd. big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 20.2.2010, 15:33
Сообщение #9


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Исправил. Залил.
Go to the top of the page
+Quote Post
DrakonSP
сообщение 20.2.2010, 17:02
Сообщение #10


Продвинутый участник
****

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Плиз плиз сделайте что бы он количество просмотров в файл сохранял.
Go to the top of the page
+Quote Post
Setuper
сообщение 20.2.2010, 17:15
Сообщение #11


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Минутное дело)) Перезалил.
Go to the top of the page
+Quote Post
DrakonSP
сообщение 20.2.2010, 17:54
Сообщение #12


Продвинутый участник
****

Группа: Пользователи
Сообщений: 107
Регистрация: 23.11.2008
Из: Сергиев Посад
Пользователь №: 1 178
Спасибо сказали: 9 раз




Цитата(Setuper @ 20.2.2010, 17:15) *
Минутное дело)) Перезалил.

Цитата
TextBot2.lua:38: attempt to concatenate local 'sTableName' (a table value)
Go to the top of the page
+Quote Post
Setuper
сообщение 20.2.2010, 18:01
Сообщение #13


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Пардон.
Вот так нужно:
Код
SaveTable(sFile, tCounts, "tCounts")


Второй параметр в кавычки big_smile.gif

Перезалил


Спасибо сказали:
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.2.2010, 13:31
Сообщение #14


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Есть код
Код
function OnStartup()
sFile = Core.GetPtokaXPath().."scripts/HelpFiles/help.txt"
if loadfile(sFile) then dofile(sFile) end
function ChatArrival(user, sData)
local cmd = sData:match"%b<>%s+(%S+).*|"
  if cmd == "!help" or cmd == "!хелп" or cmd == "+help" then
   Core.SendToUser(user, "  ")
  return true
end    
end
end


Как правильно сделать что бы функция Core.SendToUser(user, " ") выводила содержимое файла help.txt ?
Go to the top of the page
+Quote Post
Accelerator
сообщение 22.2.2010, 14:12
Сообщение #15


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Пользователь №: 1 075
Спасибо сказали: 244 раза




Код
sBot = SetMan.GetString(21)
sFile = Core.GetPtokaXPath().."scripts/HelpFiles/help.txt"

function ChatArrival(tUser, sData)
    sData = string.sub(sData,1,-2)
    local sCmd = sData:match"%b<>%s+[!+*](%S+)"
    if sCmd == "help" or sCmd == "хелп" then
         Core.SendToUser(tUser, "<"..sBot.."> "..LoadText(sFile))
         return true
    end    
end

function LoadText(filename)
    local message = ""
    local f = io.open( filename, "r" )
    if f then
        message=f:read("*all")
        message=string.gsub(message,"|","")
        f:close()
    end
    return message
end


Спасибо сказали:
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.2.2010, 16:20
Сообщение #16


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Что не так тут не пойму?
Код
  local sCmd = sData:match"%b<>%s+[!+](%S+)"
  if sCmd == "команда" or cmd == "команда2" or cmd == "команда3" then

Как правильней будет сделать?
Go to the top of the page
+Quote Post
Accelerator
сообщение 22.2.2010, 16:23
Сообщение #17


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Пользователь №: 1 075
Спасибо сказали: 244 раза




Код
  if sCmd == "команда" or sCmd == "команда2" or sCmd == "команда3" then


Спасибо сказали:
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.2.2010, 16:29
Сообщение #18


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




Хм, всё равно не работает
Код
  local sCmd = sData:match"%b<>%s+[!+](%S+)"
if sCmd == "команда" or sCmd == "команда2" or sCmd == "команда3" then
Go to the top of the page
+Quote Post
Accelerator
сообщение 22.2.2010, 16:39
Сообщение #19


Developer
******

Группа: Модераторы
Сообщений: 541
Регистрация: 11.11.2008
Пользователь №: 1 075
Спасибо сказали: 244 раза




Может дело в латинских символах?
Код
if sCmd == "command" or sCmd == "command2" or sCmd == "command3" then
Go to the top of the page
+Quote Post
Saymon21
сообщение 22.2.2010, 16:45
Сообщение #20


Site Reliability Engineer
*********

Группа: Модераторы
Сообщений: 1 772
Регистрация: 27.6.2009
Из: Чувашия, г. Чебоксары
Пользователь №: 3 719
Спасибо сказали: 479 раз




да нет, вообще что то только так идёт.
Код
local sCmd = sData:match"%b<>%s+(%S+).*|"
-- if cmd == "!command" or cmd == "!команда" or cmd == "!command2" then

Не могу понять почему... И ошибок в птоке нет.
Go to the top of the page
+Quote Post

3 страниц V   1 2 3 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts ВАЖНО: Topic has attachmentsВопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
1 049 Wariner 930 150 3.2.2019, 12:51 Посл. сообщение: MIKHAIL
No new ВАЖНО: Topic has attachmentsВаши Вопросы И Предложения По Поводу Форума
447 Svyat 302 175 20.10.2015, 19:39 Посл. сообщение: Ksan
No New Posts От: Вопросы Разработчикам Скриптов
От темы с ID: 173
0 MIKHAIL 4 009 23.1.2015, 0:56 Посл. сообщение: MIKHAIL
No new Topic has attachmentsВопросы по протоколу NMDC
Делаю программу
26 Master255 27 424 12.1.2015, 0:38 Посл. сообщение: Master255
No New Posts Вопросы к Phazeus по Экзекутору
Мастер может забанить мастера, как решить в Экзекуторе?
1 AndreiDC 5 001 31.10.2014, 19:20 Посл. сообщение: Ksan
No new От: Вопросы Разработчикам Скриптов
От темы с ID: 173
29 Wariner 24 336 28.1.2014, 13:11 Посл. сообщение: Alexey
No new Topic has attachmentsВопросы по RusHub
Технические вопросы
316 Jaska 251 415 19.12.2013, 13:59 Посл. сообщение: mod
No new Topic has attachmentsМелкие вопросы
44 Wariner 48 231 19.9.2013, 12:34 Посл. сообщение: Alexey
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
3 anila 8 557 28.3.2013, 16:02 Посл. сообщение: настя
No new Topic has attachmentsВопросы Разработчикам Скриптов с SQL
вопросы по скриптам (мелкие вопросы)
101 Wariner 56 998 6.12.2011, 0:34 Посл. сообщение: Enyby
No New Posts От: Вопросы по RusHub
От темы с ID: 2902
4 Otshelnik-Fm 7 911 19.10.2011, 9:23 Посл. сообщение: Mangust
Closed ВАЖНО: ! Часто Задаваемые Вопросы !
Обязательно прочитать всем!!!
19 Setuper 59 819 10.6.2011, 16:28 Посл. сообщение: Accelerator
No New Posts Здравствуйте всем . У меня проблема со скриптам StatPX
Здравствуйте всем . У меня проблема со скриптам StatPX
4 warhammer 9 559 14.4.2011, 14:48 Посл. сообщение: warhammer
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
0 AntonRibin868 5 484 13.4.2011, 4:46 Посл. сообщение: AntonRibin868
No New Posts От: Ваши Вопросы И Предложения По Поводу Форума
От темы с ID: 753
0 Ksan 5 263 26.12.2010, 17:39 Посл. сообщение: Ksan

 



RSS Сейчас: 29.3.2024, 17:27