myDC.ru

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

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

> При появлении нового ника, ему отправляется заготовленный текст

Теги
Нет тегов для показа
district
сообщение 15.10.2009, 15:10
Сообщение #21


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




... а начать героическую борьбу за бюрократическое складирование ников в таблицу можно вот с чего :

Код
--------------------------  Стандартная функция сохранения таблицы  ------------------------------------------------------
function SaveToFile(sFileWay, tTable, sTableName)
local sHandle = io.open(sFileWay,"w+")
Serialize(tTable, sTableName, sHandle)
sHandle:flush()
sHandle:close()
end

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

При вызове SaveToFile(sFileWay, tTable, sTableName) нужно указать соответственно путь к файлу-таблице, саму переменную-таблицу, которую будем сохранять, и имя, с которым таблица будет сохранена в файл. Если вместо имени указать пустую строку
Код
''

то таблица сохранится как
Код
return {
...
}

а имя ей будет присваиваться при подключении, которое ( если не нужна доп. проверка существования и синтаксиса таблицы) может выглядеть так :
Код
tTable = dofile(sFileWay)

Если нужна такая проверка, то перед подключением нужно делать вызов loadfile:
Код
if loadfile(sFileWay) then tTable = dofile(sFileWay) ...

Функция Serialize формирует внутритабличные данные и записывает их в строки файла в удобном для глаза виде, с учетом типа данных, которые могут быть числами, строками, или опять же таблицами.

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


Спасибо сказали:
Go to the top of the page
+Quote Post
Perspect
сообщение 15.10.2009, 20:29
Сообщение #22


Активный участник
***

Группа: Пользователи
Сообщений: 89
Регистрация: 9.6.2008
Из: Крым
Пользователь №: 23
Спасибо сказали: 5 раз




Спасибо конечно... Если бы ещё кто на русский язык перевёл.
А нельзя ли из этого сделать готовый скрипт? Я например, не знаю как это складывать.


Спасибо сказали:
Go to the top of the page
+Quote Post
simxsim
сообщение 19.10.2009, 14:41
Сообщение #23


Абсолютный новичок


Группа: Пользователи
Сообщений: 9
Регистрация: 11.10.2009
Пользователь №: 4 695
Спасибо сказали: 0 раз




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

local sDiap = "10.31.%d+.%d+" -- шаблон диапазона
local sBot = nil -- ник бота или nil для использования ника главного бота
local sMsg =
[[ Здесь пишем текст сообщения, отсылаемый в приват пользователям из диапазона ]]

function OnStartup()
if not sBot then
sBot = SetMan.GetString(21)
end
end

function UserConnected(tUser)
if tUser.sIP:find(sDiap) then
Core.SendPmToUser(tUser, sBot, sMsg)
end
end

RegConnected = UserConnected
OpConnected = UserConnected
Go to the top of the page
+Quote Post
district
сообщение 19.10.2009, 15:03
Сообщение #24


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Нужно добавить таблицу исключений :
Код
local tExcept = {
["10.31.255.255"] = true,
...
}

И изменить функцию :
Код
function UserConnected(tUser)
if tUser.sIP:find(sDiap) and not tExcept[tUser.sIP] then
Core.SendPmToUser(tUser, sBot, sMsg)
end
end


Спасибо сказали:
Go to the top of the page
+Quote Post
simxsim
сообщение 20.10.2009, 10:52
Сообщение #25


Абсолютный новичок


Группа: Пользователи
Сообщений: 9
Регистрация: 11.10.2009
Пользователь №: 4 695
Спасибо сказали: 0 раз




Код
local sDiap    = "10.5.%d+.%d+"    -- шаблон диапазона
local tExcept = {
"10.5.1.253" = true,
"10.5.1.252" = true
}
local sBot    = nil         -- ник бота или nil для использования ника главного бота
local sMsg    =
[[ Текст ]]

function OnStartup()
    if not sBot then
        sBot = SetMan.GetString(21)
    end
end

function UserConnected(tUser)
if tUser.sIP:find(sDiap) and not tExcept[tUser.sIP] then
Core.SendPmToUser(tUser, sBot, sMsg)
end
end

RegConnected    = UserConnected
OpConnected    = UserConnected

Не работает, говорит такое [10:50] Синтаксис C:\Program Files\PtokaX4\scripts\PM.lua:3: '}' expected (to close '{' at line 2) near '='
Go to the top of the page
+Quote Post
district
сообщение 20.10.2009, 12:12
Сообщение #26


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Пардон, умудрился я забыть квадратные скобки ))))
Вот так надо :
Код
local tExcept = {
["10.5.1.253"] = true,
["10.5.1.252"] = true,
}



Спасибо сказали:
Go to the top of the page
+Quote Post
Alexey
сообщение 20.10.2009, 16:10
Сообщение #27


7 квадратиков
*******

Группа: Модераторы
Сообщений: 793
Регистрация: 21.1.2009
Пользователь №: 1 895
Спасибо сказали: 301 раз




Цитата(district @ 20.10.2009, 13:12) *
Есть еще одна ошибка. Строку сообщения нужно заключить в кавычки :
...
А квадратные скобки в сообщении может быть как раз таки и не нужны.

И давно документированные средства языка причислены к ошибкам?
Go to the top of the page
+Quote Post
district
сообщение 20.10.2009, 16:24
Сообщение #28


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




Виноват, не знал такой фишки.
Пост поправлен.

P.S. А какой именно смысл в использовании
Код
[[ text ]]

вместо
Код
"text"

?
Go to the top of the page
+Quote Post
Wariner
сообщение 20.10.2009, 16:50
Сообщение #29


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

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




многострочная надпись в квадратных скобках будет представлена пользователю в том виде в котором она занесена в скрипт, а "" придётся вносить \t \r \n и т.д.


Спасибо сказали:
Go to the top of the page
+Quote Post
district
сообщение 20.10.2009, 16:54
Сообщение #30


Постоялец
******

Группа: Пользователи
Сообщений: 454
Регистрация: 17.10.2008
Из: Новосибирск
Пользователь №: 825
Спасибо сказали: 90 раз




О! Вот это - классная фишка.
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
Closed Ребята скинте мне скрипт котри может отправит сообщения все от любого ника Плизз
Ребята скинте мне скрипт котри может отправит сообщения все от любого
2 Davrik 6 158 15.11.2011, 8:35 Посл. сообщение: Accelerator
No new Topic has attachmentsСмена ника!
27 voronf4 27 730 6.12.2010, 13:48 Посл. сообщение: Виктор
No New Posts Расположение ника в списке
Реально?
2 truth 7 040 31.5.2010, 16:22 Посл. сообщение: Alexey
No New Posts Topic has attachmentsприветствия для каждого ника
9 random name 13 719 12.5.2010, 6:42 Посл. сообщение: Ksan
No New Posts Скрипт сохранения ника и ip адреса в файл
2 Stym 9 550 18.3.2010, 16:14 Посл. сообщение: Stym
Moved Скрипт сохранения ника и ip адреса в файл
0 Stym 0 13.3.2010, 1:33 Посл. сообщение: Stym
No New Posts Отсчёт времени до нового года на php
2 operator 14 610 12.12.2009, 0:48 Посл. сообщение: Saymon21
No New Posts От: При появлении нового ника
От темы с ID: 2546
0 X-Sky 4 536 8.10.2009, 19:54 Посл. сообщение: X-Sky
No New Posts Topic has attachmentsПисать от любого ника
1 Андреw 5 969 31.8.2009, 4:16 Посл. сообщение: Артём
Closed Скрипт Смены Ника
скрипт
8 oOps 13 238 12.3.2009, 16:24 Посл. сообщение: oOps
No New Posts Скрипт Отчёта О Действиях Опов Мастеру Хаба (с Указанием Ника Мастера В Скрипте,которому Должен Присылаться Отчёт О Банах, Киках И Тому Подобное )
Ptokax 0.4.1.1
0 Серый 5 490 2.2.2009, 22:59 Посл. сообщение: Серый
No New Posts Помощь В Сокрытии Сообщений От Ника И Самого Ника...
3 *FoxMalder* 8 533 8.1.2009, 19:00 Посл. сообщение: *FoxMalder*
No New Posts Парни Прошу Вылажать Сюды<<--скрипт 'сколька Осталось До Нового Года'
взарание спасибки...!!! ^_~
4 BadPapa 10 626 31.12.2008, 0:38 Посл. сообщение: BadPapa
No new Topic has attachmentsЗамена Ника На Ник-имя
API 2
18 Илья Иванович 20 160 16.11.2008, 23:24 Посл. сообщение: STAJIKER

 



RSS Сейчас: 23.11.2024, 8:40