myDC.ru

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

 
 
Ответить в данную темуНачать новую тему

> Топик - Приветственное Сообщение

Теги
Нет тегов для показа
Accelerator
сообщение 29.3.2009, 10:33
Сообщение #1


Developer
******

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




Помогите со скриптом... Вообщем заметил в DBHUB такую вещь:
Цитата
[10:09:37] <Robot> Тема: 'Добро пожаловать!', установил Admin (Mon Oct 19 22:21:10 2008)
[10:09:37] <Robot> Привет STRELOK, добро пожаловать на HUB. Ваш IP: 10.2.136.203

Захотелось мне тоже прикрепить такое себе на хаб, вот мои наброски:
Код
sBot = SetMan.GetString(21)

function UserConnected(tUser)
        Core.SendToUser(tUser, "<"..sBot.."> Тема: '"..SetMan.GetString(не помню цифру).."', установил "..user.sNick.." (%d.%m.%y / %H:%M:%S)")
        Core.SendToUser(tUser, "<"..sBot.."> Привет "..tUser.sNick..", добро пожаловать на "..SetMan.GetString(0)..". Ваш IP: "..tUser.sIP)
end
RegConnected = UserConnected
OpConnected = UserConnected

Помогите доработать
Go to the top of the page
+Quote Post
Setuper
сообщение 29.3.2009, 11:23
Сообщение #2


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

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




ты хочешь чтобы мы сделали сохранение истории смены топика?
Go to the top of the page
+Quote Post
Wariner
сообщение 29.3.2009, 11:24
Сообщение #3


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




цифра топика 10
а чтобы знать кто установил и когда надо писать другой кусок скрипта который отслеживает команду топика записывает того кто пользовал её и дату в файл. после чего от туда выводит в приветствие!
Go to the top of the page
+Quote Post
Accelerator
сообщение 29.3.2009, 11:44
Сообщение #4


Developer
******

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




Код
TopLog = {}
filename = "TopicLogs\\"
sBot = SetMan.GetString(21)

function UserConnected(tUser)
        Core.SendToUser(tUser, "<"..sBot.."> Тема: '"..SetMan.GetString(10).."', установил "..user.sNick.." (%d.%m.%y / %H:%M:%S)")
        Core.SendToUser(tUser, "<"..sBot.."> Привет "..tUser.sNick..", добро пожаловать на "..SetMan.GetString(0)..". Ваш IP: "..tUser.sIP)
end
RegConnected = UserConnected
OpConnected = UserConnected

        SetMan.SetString(10,NewTopic)
        day = os.date("[%d.%m.%y].txt")
        if io.open(filename..day) == nil then io.open(filename..day,"w") end
        dofile(filename..day)
        i = #TopLog+1
        CurTime = os.date("[%H:%M-%d.%m.%y]")
        TopLog[i] = "~"..CurTime.."~ ~"..tUser.sNick.."~  ~"..NewTopic.."~"
        SaveToFile(filename..day, TopLog, "TopLog")

function Serialize(tTable, sTableName, sTab)
    assert(tTable, "tTable equals nil");
    assert(sTableName, "sTableName equals nil");
    assert(type(tTable) == "table", "tTable must be a table!");
    assert(type(sTableName) == "string", "sTableName must be a string!");
    sTab = sTab or "";
    sTmp = ""
    sTmp = sTmp..sTab..sTableName.." = {\n"
    for key, value in pairs(tTable) do
        local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key);
        if(type(value) == "table") then
            sTmp = sTmp..Serialize(value, sKey, sTab.."\t");
        else
            local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
            sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
        end
        sTmp = sTmp..",\n"
    end
    sTmp = sTmp..sTab.."}"
    collectgarbage(collect)
    return sTmp
end

function SaveToFile(file , table , tablename)
    local handle = io.open(file,"w+")
    handle:write(Serialize(table, tablename))
    handle:flush()
    handle:close()
end


Вроде бы это и есть функция сохранения топика, только вот не знаю, правильно ли я её сконфигурировал
Go to the top of the page
+Quote Post
Setuper
сообщение 29.3.2009, 11:51
Сообщение #5


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

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




бред написан

этот кусок:
Код
        SetMan.SetString(10,NewTopic)
        day = os.date("[%d.%m.%y].txt")
        if io.open(filename..day) == nil then io.open(filename..day,"w") end
        dofile(filename..day)
        i = #TopLog+1
        CurTime = os.date("[%H:%M-%d.%m.%y]")
        TopLog[i] = "~"..CurTime.."~ ~"..tUser.sNick.."~  ~"..NewTopic.."~"
        SaveToFile(filename..day, TopLog, "TopLog")
будет выполняться только пи загрузке скрипта, да и написан он с ошибками
Go to the top of the page
+Quote Post
Wariner
сообщение 29.3.2009, 11:51
Сообщение #6


Самый главный активист :-D
***********

Группа: Модераторы
Сообщений: 2 790
Регистрация: 29.6.2008
Из: г. Тула
Пользователь №: 97
Спасибо сказали: 440 раз




вообще не о чём...
1)поиск команды в ChatArrival
2)по нахождению записываем в таблицу 2строчки дату и юзера
3) сохраняем таблицу.
4)выводим из неё данные при заходе юзера.
Go to the top of the page
+Quote Post
Accelerator
сообщение 29.3.2009, 12:31
Сообщение #7


Developer
******

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




Код
local tProfile = {
  [0] = 1,
  [1] = 1,
  [2] = 1,
}
local filename = "Topic.tbl"
local Bot = SetMan.GetString(21)
tTopic = {
  sDate = "unknown",
  SetUser = "unknown",
  Topic = "unknown"
}

function OnStartup()
  if loadfile(filename) then
    dofile(filename)
  end
end

function UserConnected(tUser)
  Core.SendToUser(tUser, "<"..sBot.."> Тема: '"..tTopic.Topic.."', установил "..tTopic.SetUser.." ("..tTopic.CurTime..")")
  Core.SendToUser(tUser, "<"..sBot.."> Привет "..tUser.sNick..", добро пожаловать на "..SetMan.GetString(0)..". Ваш IP: "..tUser.sIP)
end
RegConnected = UserConnected
OpConnected = UserConnected

function ChatArrival(user,sData)
  sData = string.sub(sData,1,-2)
  local cmd = sData:match"%b<>%s+(%S+)"
  if cmd == "!topic" then
    if tProfile[tUser.iProfile] == 1 then
      local sMsg = sData:match"%b<>%s+%S+%s+(.*)"
      if not sMsg then
        Core.SendToUser(user, "<"..Bot.."> Вы не ввели текст топика")
        return true
      end
      tTopic = {
        sDate = os.date"%d.%m.%y / %H:%M:%S",
        SetUser = user.sNick,
        Topic = sMsg
      }
      SaveToFile(filename, tTopic, "tTopic")
      return true
    end
  end
end

function Serialize(tTable, sTableName, sTab)
  sTab = sTab or "";
  sTmp = ""
  sTmp = sTmp..sTab..sTableName.." = {\n"
  for key, value in pairs(tTable) do
    local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key);
    if(type(value) == "table") then
      sTmp = sTmp..Serialize(value, sKey, sTab.."\t");
    else
      local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
      sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue
    end
    sTmp = sTmp..",\n"
  end
  sTmp = sTmp..sTab.."}"
  return sTmp
end

function SaveToFile(file , table , tablename)
  local handle = io.open(file,"w+")
  handle:write(Serialize(table, tablename))
  handle:flush()
  handle:close()
end

Вроде так написал? Но в таблицу не сохраняет...
Цитата
32: attempt to call global 'SaveToFile' (a nil value)
Go to the top of the page
+Quote Post
Setuper
сообщение 29.3.2009, 12:38
Сообщение #8


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

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




нужно последний end переместить до функции Serialize

я отредактировал твой пост
Go to the top of the page
+Quote Post
Accelerator
сообщение 29.3.2009, 12:47
Сообщение #9


Developer
******

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




Ошибка
Цитата
:56: bad argument #1 to 'open' (string expected, got table)
Go to the top of the page
+Quote Post
Setuper
сообщение 29.3.2009, 13:17
Сообщение #10


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

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




исправил ещё и ещё раз))
Go to the top of the page
+Quote Post
Accelerator
сообщение 29.3.2009, 13:25
Сообщение #11


Developer
******

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




Цитата(Setuper @ 29.3.2009, 14:17) *
исправил ещё и ещё раз))

Уже видел feel_good.gif спасибо. Ставил, внёс небольшие изменения:
Исправил:
1. При вводе команды !topic <текст> глушился чат (исправил)
2. Исправил "..tTopic.CurTime.." на "..tTopic.sDate.." (баг с датой)
3. Поправил строчку if tProfile[tUser.iProfile] == 1 then, чтобы работала команда !topic
вообщем, вот исправленный вариант exciting.gif
Прикрепленные файлы
Прикрепленный файл  WelcomeMsg.rar ( 1005 байт ) Кол-во скачиваний: 29
 
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Сообщение в чат через заданный промежуток времени
3 Error 6 800 27.10.2015, 2:31 Посл. сообщение: Ksan
No New Posts Скрипт выводящий раз в час сообщение
3 Ahton 8 387 28.9.2013, 22:05 Посл. сообщение: Ksan
No new Topic has attachmentsСообщение юзерам с нулевой шарой
Сообщение юзерам с нулевой шарой
15 Perspect 16 799 2.1.2011, 22:01 Посл. сообщение: Perspect
No New Posts Сообщение при заходе на хаб
3 TommyKaira 7 212 23.8.2010, 12:24 Посл. сообщение: Invisible
No New Posts От: Несменяемый Топик
От темы с ID: 155
0 Saymon21 3 963 20.1.2010, 1:27 Посл. сообщение: Saymon21
No New Posts Автоматически топик в чат
5 CrackWG 8 076 13.1.2010, 9:51 Посл. сообщение: CrackWG
No New Posts Topic has attachmentsСообщение дня
7 SAG 10 114 18.12.2009, 19:36 Посл. сообщение: SAG
No New Posts Бот топик
7 Akaick 11 924 21.8.2009, 8:52 Посл. сообщение: Akaick
Closed Сообщение о подозрительной фразе
Отсылка сообщения опам и админу
1 Slutkey 5 405 26.6.2009, 14:14 Посл. сообщение: Wariner
Closed Сообщение от бота в личку при 0б шары
3 Санёк 7 061 17.5.2009, 9:43 Посл. сообщение: Wariner
No New Posts Topic has attachmentsМногоадресное Сообщение
0 li4nost 4 430 19.4.2009, 16:19 Посл. сообщение: li4nost
No New Posts От: Сообщение "чистим Память..."
От темы с ID: 1678
1 Setuper 5 142 28.3.2009, 23:53 Посл. сообщение: li4nost
No New Posts Сообщение "чистим Память..."
3 li4nost 7 445 28.3.2009, 23:12 Посл. сообщение: alex82
Closed Топик+запрет Команд
1 FallenAngel 7 062 22.3.2009, 18:42 Посл. сообщение: Setuper
Closed Многоадресное Сообщение Всем
6 li4nost 9 815 27.2.2009, 0:31 Посл. сообщение: Setuper

 



RSS Сейчас: 27.11.2024, 1:23