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

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

MyDC.ru _ Помощь по скриптам для PtokaX _ Помощь по настройке скрипта

Автор: dag-m 4.3.2012, 23:21

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

Код
-- LUA 5
--04/03/05
--TiMeTrAVelleRs Version

Bot = "[PB]Ares"   -- your main bot here
CDFolder = Core.GetPtokaXPath().."scripts/text" -- make folder in your scripts put your ascii there
SendComm = 1    -- Send user command [right click] "1"=yes "0"=no
tMenu = "Помощь" -- ArtBotMenu Name

SetTo = {
[0] = 1,   -- Admin
[1] = 1,   -- Moder
[2] = 1,   -- Vip
[3] = 1,   -- Reg
[-1] = 0,  -- Не зарегестрированый
}
--------------------------------------------------------------------------------------------------------------------

--$UserCommand 1 X  Where -> 1=Hub Menu 2=User Menu 3=Hub/User Menu
--
function UserConnected(user)
    if SendComm == 1 and SetTo[user.iProfile] == 1 then
        Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tMenu.."\\Ответы на вопросы$<%[mynick]> !faq||")
        Core.SendToNick(user.sNick,"$UserCommand 1 3 "..tMenu.."\\Правила$<%[mynick]> !pravila||")
    end
end

OpConnected = UserConnected

function OnStartup()
  
end

function ChatArrival(user,data)
    Core.GetUserAllData(user)
   data=string.sub(data,1,string.len(data)-1)
   if( string.sub(data, 1, 1) == "<" ) then
      s,e,cmd = string.find(data,"%b<>%s+(%S+)")
      cmd = string.sub(cmd, 1,string.len(cmd))
      if io.open(CDFolder.."/"..cmd..".txt",r) ~= nil then
         showtext(user, cmd)
         return true
      end
   end
end

function showtext(user, file)
local contents ="\r\n\r\n"
    for line in io.lines(CDFolder.."/"..file..".txt") do
        contents = contents..line.."\r\n"
    end
        Core.SendToAll(user.sNick.."\r\n"..contents.."\r\n|")
end

function showtextold(user, cmd)
local lines="\r\n\r\n"
    for line in io.lines(file) do
        lines = lines..line.."\r\n"
    end
    Core.SendPmToNick(user.sNick,Bot, lines.." |")
end
RegConnected = UserConnected

ещё хотел чтоб в скрипте была возможность выбора куда будут приходить сообщения - в чат или в лс, и удалить создание лишних пустых строк
очень прошу, если есть возможность, помогите правильно настроить скрипт, я столько хотел его найти, а тут такая вот проблема вышла big_smile.gif
в случаи необходимости, могу прикрепить сам скрипт. к скрипту так же привязана папка "text", где хранятся TXT

Автор: Saymon21 4.3.2012, 23:47

http://mydc.ru/index.html?showtopic=1164&view=findpost&p=8573

Автор: dag-m 5.3.2012, 0:19

Код
function UserConnected(tUser)
  Core.SendToUser(tUser,"$UserCommand 1 3 Меню хаба\\Правила хаба$<%[mynick]> !rules||"..
  "$UserCommand 1 3 Меню хаба\\Хабы-друзья$<%[mynick]> !hubs||"..
  "$UserCommand 1 3 Меню хаба\\Сетевое радио$<%[mynick]> !radio||")
end
RegConnected,OpConnected=UserConnected,UserConnected

как мне с помощью этого кода создать скрипт? нужно ещё сделать возможность выбора кому предоставлять возможности скрипта или команды.
не лучше ли будет исправить ошибки "моего" скрипта?

хочу ещё добавить, что почти не разбираюсь в скриптах, только и умею изменять меню скрипта big_smile.gif

Автор: Артём 5.3.2012, 0:42

dag-m, этот код и есть скрипт, а ещё надо было прочесть http://mydc.ru/index.html?showtopic=1164&view=findpost&p=8573
А http://mydc.ru/index.html?showtopic=1164&view=findpost&p=22528

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

P.S. В твоём скрипте строка
Код
Core.SendToAll

шлёт всем текст, сделай
Код
Core.SendToNick

будет видно только тому кто запросил

Автор: dag-m 5.3.2012, 13:58

Артём,
читал, но я не понимаю что надо делать big_smile.gif я не разбираюсь особо в скриптах
а скрипт ещё дополнительно лишние строки пустые создаёт, их как убрать

поменял параметр, но теперь в чат выходит просто команда без её выполнения, т.е. скрипт перестал правильно работать и скидывать содержимое TXT в чат

Автор: Артём 5.3.2012, 14:56

dag-m, возьми код из сообщения #3 , в папку txt закинь файлы и перезагрузи текстовые файлы, зачем тебе скрипт из первого поста если всё это можно сделать хабом?

Автор: dag-m 5.3.2012, 19:50

Артём,
засунул в папку texts 2 файла - faq и pravila, создал скрипт по тем самым кодам из сообщения 3, в скрипте создал для них соответствующие меню.
получилось это
"$UserCommand 1 3 Меню хаба\\Хабы-друзья$<%[mynick]> faq.txt||"..
и как в тех кодах ставил (!), и по другому сделал, но текст ни как не хочет вписываться в чат, вообще никак, даже без скрипта пробовал отправить команды в чат - не хочет работать, опять же задаю вопрос - не лучше ли будет исправить код скрипта из 1го сообщения?

Автор: Артём 5.3.2012, 20:14

dag-m, надо просто !faq без txt
нет, не лучше, нагружать хаб уг скриптом не надо, это и так в хаб встроено.
Кстати, в Настройках - Больше настроек - Включить текстовые файлы не забыл включить(галочки поставить)?

Автор: dag-m 5.3.2012, 21:05

в папке птоки, где папка "текст", создал 2 текстовых файла - !faq.txt и !rules.txt. знак потому что думал что он привязывает эти команды к хабу, и без этого знака пробовал - писал в чат команду !faq и ничего в чат не появляется, всё сделал так как было указано на странице по ссылке 2го сообщения. а про работоспособность скрипта я вообще молчу

Артём, в папке птоки, где папка "текст", создал 2 текстовых файла - !faq.txt и !rules.txt. знак потому что думал что он привязывает эти команды к хабу, и без этого знака пробовал - писал в чат команду !faq и ничего в чат не появляется, всё сделал так как было указано на странице по ссылке 2го сообщения. а про работоспособность скрипта я вообще молчу

Автор: Saymon21 5.3.2012, 21:31

А !reloadtxt не забыл?

Автор: dag-m 12.3.2012, 18:57

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

Автор: Артём 12.3.2012, 19:00

Как по команде сделать показ сообщения (например правил хаба)?

1. Открываем папку, где располагается файл PtokaX.exe, и заходим в папку texts.
2. Создаём в этой папке текстовый файл.
3. Переименовываем этот файл (например в имя rules.txt)
4. Открываем его, и пишем сообщение (например правила хаба)
5. Ищем в настройках хаба настройку: "Включить текстовые файлы" (В старых версиях настройка находится во вкладке "Настройки" справа. В новых версиях в "основных настройках" - "Больше настроек"). Там же можно (если необходимо) установить отправку этого сообщения в приват.
6. Для старых версий там же в настройках нужно перезагрузить текстовые файлы (или просто воспользоваться командой в чат !reloadtxt).

Всё готово и по команде !rules можно будет увидеть правила хаба.

Таким образом можно создать любые текстовые сообщения по команде. Например, можно сделать правила, сайты, хабы сети, информацию для операторов и тд. и тп.
Ничего больше не надо!

Автор: dag-m 16.3.2012, 17:17

Артём, я очень хорошо разбираюсь в компах и не плохо знаю саму птоку, но в программировании я почти полный 0, по этому я вполне могу всё сделать так как там написано, однако ничего не помогло... я создал 2 файла в папке птоки Texts - faq.txt и rules.txt. в птоке все галочки как надо поставил, в чат отправлял команду !faq и никакой реакции, тоже самое с другим файлом. может надо каким то образом привязать к команде файл? или скрипт создать? версия птоки 0.4.1.2, виндовс 7 х32

Автор: Артём 16.3.2012, 17:34

dag-m, значит не так уж и "не плохо" знаешь птоку.
ничего ни к чему не надо привязывать, просто открыть папку texts и там создать, потом команду в чат !reloadtxt , у всех работает, а у тебя нет...
P.S. Держи скрипт, если не можешь с простым добавлением справиться, только здесь в сам скрипт вписывать надо big_smile.gif
 Rules.lua ( 2.3 килобайт ) : 15

Автор: dag-m 16.3.2012, 19:50

может птока моросит, не знаю даже)))

решил "чистой" птокой воспользоваться - на ней опция пашет без проблем. перекинул папку со скриптами со старой папки в новую, и опять мороснуло. теперь буду искать виновный скрипт)))

Автор: Alex Dancer 15.10.2012, 2:48

Артём, а можно ли создать скрипт, который сам будет выводить содержимое текстовика по определённому событию?
Требуется: на хаб заходит именинник, и ему в общий чат кидается поздравлялка, т.е. сообщение из текстового файла congratulation.txt

Автор: Артём 15.10.2012, 11:17

Alex Dancer, зачем создавать созданное? bad_smile.gif Есть на форуме скрипт такой и не только такой, поиском пользуйся big_smile.gif
http://mydc.ru/topic79.html

Автор: Alex Dancer 16.10.2012, 15:41

Цитата(Артём @ 15.10.2012, 13:17) *
Alex Dancer, зачем создавать созданное? bad_smile.gif Есть на форуме скрипт такой и не только такой, поиском пользуйся big_smile.gif
http://mydc.ru/topic79.html


Дык есть у меня скрипт день рождения. там есть строки:
Код
fText = sPath.."Cake.txt",         -- Текст поздравлялки
bSendText = true,             -- Посылать содержимое файла (true = включить, false = выключить)
tFunctions.OnTimer = function(user, i, v, sTopic)
    user = Core.GetUser(i)
    if user then
        -- Send File Content
        if Settings.bSendText then
            local f = io.open(Settings.fText)
            if f then
                Core.SendToAll("<"..Settings.sBot.."> \r\n\r\n"..f:read("*all"))
                f:close()
            end
        end
......


но вот нифига он не посылает поздравлялку из тескстовика Cake.txt