myDC.ru

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

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

> От: Функции Для Разработчиков, От темы с ID: 334

Теги
Нет тегов для показа
Nickolya
сообщение 23.9.2008, 22:48
Сообщение #1


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 724
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 770 раз




Цитата
return type(t)=="teble"

Это очепятка или я уже забыл как программировать на луа? big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 23.9.2008, 23:08
Сообщение #2


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

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




Опечатка при переносе на форум. Вырезал функции из скрипта, что иногда проблемно)))
Просто у меня в скриптах немного по-другому. Все lua функции переопределены. Тогда в случае смены синтаксиса функций lua достаточно будет переписать всеголишь 1 файл скрипта, а не лазить по всем файлам огромного скрипта и изменять во всех файлах с не одной тысячью строк)))

файл lua.lua:
Код
function tLua:Table(t)                return type(t)=="table" end


файл sys.lua:
Код
function tSys:Table(t)                return tLua:Table(t) and t end
Go to the top of the page
+Quote Post
Setuper
сообщение 9.2.2009, 23:03
Сообщение #3


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

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




Есть функция, которая выполняется ещё раньше http://mydc.ru/topic915.html
Go to the top of the page
+Quote Post
alex82
сообщение 9.2.2009, 23:10
Сообщение #4


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1381 раз




Ну, тады так:
Код
function SupportsArrival(user,data)
    Core.SendToUser(user, "Здесь пишем наше сообщение")
end

В этом случае сообщение будет отправлено даже если юзер не смог войти на хаб. big_smile.gif

PS. Жаль что нету LockArrival(), а то можно было бы ещё раньше. bad_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 9.2.2009, 23:18
Сообщение #5


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

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




Разные функции - разное назначение. Функция SupportsArrival выполняется раньше, однако в этой функции определён только ip адрес пользователя, поэтому отправка по нику (Core.SendToNick) не возможна. Оптимально именно в этой функции проверять бан по ip, но к сожалению стандартный бан ptokax проверяется позже, что является недостатком данного хаба.
Go to the top of the page
+Quote Post
alex82
сообщение 9.2.2009, 23:22
Сообщение #6


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1381 раз




Цитата
но к сожалению стандартный бан ptokax проверяется позже, что является недостатком данного хаба.

А что это меняет? (в плане безопасности)
Go to the top of the page
+Quote Post
Setuper
сообщение 9.2.2009, 23:24
Сообщение #7


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

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




Что за LockArrival()? Функция SupportsArrival - это первая функция, которая ловит первую команду пришедшую с клиента.

Цитата(alex82 @ 9.2.2009, 23:22) *
А что это меняет? (в плане безопасности)

Это влияет на быстродействие. Зачем получать от клиента другие команды, когда можно "послать" его при первой же команде.
Go to the top of the page
+Quote Post
alex82
сообщение 9.2.2009, 23:25
Сообщение #8


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1381 раз




Цитата
Что за LockArrival()?

Ну дык я и говорю - жаль что такой нету. big_smile.gif
Go to the top of the page
+Quote Post
Setuper
сообщение 9.2.2009, 23:29
Сообщение #9


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

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




А такой функции и не может быть. Ты имеешь ввиду ловить команду $Lock? Так это бесполезно делать, ведь эта команда отсылается хабом клиенту. Хаб должен получить от клиента команду, тогда он будет уверен, что на другой стороне действительно кто-то есть - это предусматривает случай мгновенного отключения клиента по собственному желанию.
Go to the top of the page
+Quote Post
alex82
сообщение 9.2.2009, 23:39
Сообщение #10


Местный
*******

Группа: Неактивированные
Сообщений: 908
Регистрация: 26.12.2008
Пользователь №: 1 574
Спасибо сказали: 1381 раз




Цитата
Это влияет на быстродействие. Зачем получать от клиента другие команды, когда можно "послать" его при первой же команде.

Типа так:
Код
function SupportsArrival(user,data)
    if GetBan(user.sIP) then Core.Disconnect(user) end
end

?
Go to the top of the page
+Quote Post
Setuper
сообщение 9.2.2009, 23:42
Сообщение #11


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

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




Но только в функции SupportsArrival
Go to the top of the page
+Quote Post
sphinx
сообщение 10.2.2009, 0:54
Сообщение #12


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

Группа: Заблокированные
Сообщений: 87
Регистрация: 16.10.2008
Пользователь №: 805
Спасибо сказали: 35 раз




А можно подробнее? Я из этого обсуждения не понял, возможно ли проверить бан юзера в ValidateNickArrival.

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

Код
function PasswordArrival(sUser, sData)
    local _,_,password = sData:find("^$MyPass%s(%S+)|$")
    local pass = RegMan.GetReg(sUser.sNick).sPassword
    local msg="Wrong password for "..sUser.sNick
    if password ~= pass then
            Core.SendToOpChat("<"..SetMan.GetString(21).."> "..msg)
    end
end
Go to the top of the page
+Quote Post
Setuper
сообщение 10.2.2009, 1:16
Сообщение #13


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

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




В том то и дело, что нельзя - это недостатки ptokax.
Go to the top of the page
+Quote Post
district
сообщение 10.6.2009, 4:11
Сообщение #14


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

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




Сравнительно простой способ улучшения сортировки чисел в таблицах, а точнее - числовых выражений IP-адресов и значений os.time. Было замечено, что функция table.sort хорошо сортирует строки, и не очень хорошо - числа. Поэтому на период сортировки к строке, содержащей нуждающийся в сортировке числовой параметр, спереди добавляется через какой-то разделительный символ, например, $, составная строка, содержащая а)букву, соответствующую разрядности сортируемого числа и б)непосредственно буквенное выражение сортируемого числа. После сортировки, для непосредственного показа, эта добавленная строка и разделительный символ - отрезаются.
В приведенном примере разрядность ограничена цифрой 10, этого достаточно для работы с IP-адресами и современными значениями os.time, если потребуется увеличить охват, нужно просто добавить в таблицу соответствующие числа и буквы.
Код
-- Таблица и функция для улучшенной сортировки чисел в таблицах :
local tNums = { ["0"] = "A", ["1"] = "B", ["2"] = "C", ["3"] = "D", ["4"] = "E", ["5"] = "F",
["6"] = "G", ["7"] = "H", ["8"] = "I", ["9"] = "J", ["10"] = "K",}

function NumToLetter(n)
local str = tostring(n)
local r = tNums[tostring(str:len())]
    for S in string.gmatch(str, "%S") do
        r = r..tNums[S]
    end
return r
end
Go to the top of the page
+Quote Post
Setuper
сообщение 10.6.2009, 11:58
Сообщение #15


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

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




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

Вот накатал код. Всё отлично сортируется. Не понимаю какие у тебя проблемы:
Код
tTbl = {
  {
    168460408,
    "param_1",
  },
  {
    168460288,
    "param_2"
  },
  {
    172883967,
    "param_3"
  },
  {
    168460543,
    "param_4",
  },
}

Core.SendToAll"До сортировки:"

for k, v in ipairs(tTbl) do
  Core.SendToAll(tostring(v[1])..", "..v[2])
end

table.sort(tTbl, function(a, b) return a[1] > b[1] end)

Core.SendToAll"После сортировки по убыванию:"

for k, v in ipairs(tTbl) do
  Core.SendToAll(tostring(v[1])..", "..v[2])
end
Go to the top of the page
+Quote Post
district
сообщение 10.6.2009, 17:38
Сообщение #16


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

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




Речь шла о сортировке чисел в строковом виде, как элементов индексированных таблиц, такой вот частный случай. Буду разбираться дальше, а предыдущий мой пост и этот пост прошу удалить.
Go to the top of the page
+Quote Post
Ksan
сообщение 6.5.2010, 13:30
Сообщение #17


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 709
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 638 раз




[Тут мышь погрызла часть сообщения...]

Написал ответ, отправил и удалил, чтоб не продолжать эту уже не очень актуальную тему. big_smile.gif А то получается оффтопик уже.
Go to the top of the page
+Quote Post
PomanoB
сообщение 14.7.2010, 21:32
Сообщение #18


AmxModx Scripter
*****

Группа: Пользователи
Сообщений: 302
Регистрация: 2.12.2008
Из: Королев
Пользователь №: 1 283
Спасибо сказали: 127 раз




Такая тема уже есть в разделе про PtokaX, может быть перенести её в этот раздел, как и похожие темы, например Несколько Слов О Захватах И Регулярных Выражениях, Объектно-Ориентированное Программирование (ООП) в LUA и тд
Go to the top of the page
+Quote Post
Ksan
сообщение 15.7.2010, 0:44
Сообщение #19


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 709
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 638 раз




Есть тема 1 в 1 с предложенной - Функции Для Разработчиков
Думаю, лучше первое сообщение отсюда перетащить туда, а не плодить темы, чтоб потом не искать там-сям..
Go to the top of the page
+Quote Post
Ksan
сообщение 22.2.2014, 15:22
Сообщение #20


Белый Волк
*********

Группа: Пользователи
Сообщений: 1 709
Регистрация: 11.9.2008
Из: г.Томск
Пользователь №: 516
Спасибо сказали: 638 раз




del


Спасибо сказали:
Go to the top of the page
+Quote Post

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

Collapse

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

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Вопрос по функции
0 000000 111 7.1.2018, 12:55 Посл. сообщение: 000000
No new ВАЖНО: Topic has attachmentsФункции Для Разработчиков
склад полезных функций
68 Setuper 52 208 22.2.2014, 12:35 Посл. сообщение: Tsd
No New Posts От: Вызов функции без возврата
От темы с ID: 4632
1 LoT 2 397 3.2.2011, 8:08 Посл. сообщение: ScOol
No New Posts Вызов функции без возврата
1 dimajak 3 507 1.2.2011, 2:55 Посл. сообщение: Ksan
No New Posts ВАЖНО: Topic has attachmentsФункции ===> Читаем, Дабы Не Задавать Вопросов <===
Скрипт-интерфейс PtokaX Lua. ВСЕ СКРИПТОВЫЕ ФУНКЦИИ PtokaX API
6 Svyat 27 279 11.10.2010, 15:50 Посл. сообщение: Nickolya
No New Posts Общие функции
хочется меньше писанины и больше скорости
1 RAND(i)M 2 769 9.9.2010, 0:01 Посл. сообщение: alex82
Closed ВАЖНО: Topic has attachmentsLua Api Функции Hex Хаба
Описание функций
1 Jaska 6 335 22.6.2010, 22:07 Посл. сообщение: Saymon21
No new Topic has attachmentsИщу разработчиков ADC Хабов
обменяться мнениями.
28 SysMan 17 487 9.4.2010, 10:16 Посл. сообщение: Delion
No New Posts От: Функции ===> Читаем, Дабы Не Задавать Вопросов <===
От темы с ID: 118
1 Setuper 3 147 20.2.2010, 22:54 Посл. сообщение: _Герой_
Moved Ищу разработчиков ADC Хабов
обменяться мнениями.
0 SysMan 0 3.7.2009, 19:57 Посл. сообщение: SysMan
No New Posts Topic has attachmentsLua Api Функции Hex Хаба
Описание функций
3 Setuper 4 313 3.6.2009, 18:31 Посл. сообщение: Jaska
No New Posts Защта от функции грейлинка
Как обезопасить себя и хаб
2 valdis73 3 695 25.4.2009, 17:55 Посл. сообщение: valdis73
No New Posts Функции Irc бота
Написать функции
1 zangriEBP 3 491 25.4.2009, 10:48 Посл. сообщение: zangriEBP
No New Posts От: Функции ===> Читаем, Дабы Не Задавать Вопросов <===
От темы с ID: 118
1 MEXAHuK 2 791 27.1.2009, 19:32 Посл. сообщение: MEXAHuK
No New Posts От: Функции
От темы с ID: 118
9 Wariner 6 703 26.11.2008, 16:00 Посл. сообщение: Setuper

 



RSS Сейчас: 24.1.2018, 4:44