myDC.ru

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

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

> Sconnection, StrongDC sqlite <350 bug

Теги
Нет тегов для показа
Derk_B_P
сообщение 13.4.2009, 0:14
Сообщение #1


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

Группа: Пользователи
Сообщений: 88
Регистрация: 4.2.2009
Пользователь №: 2 102
Спасибо сказали: 1 раз




Прочитав эту тему http://mydc.ru/topic1449.html, решил написать мини скрипт. Который, при коннекте, отсеивал пользователей с эти клиентом.
Но, что-то не то. Помогите разобратся.

Код
UserConnected = function(user)
if user.sConnection:find"%W" then
return Core.Kick(user,"Bad_Client","Измените клиент "),true
end
end


Цитата
[00:10] Синтаксис ...++\Server_\PtokaX_0.4.1.1\scripts\Strong_Bug.lua:2: attempt to index field 'sConnection' (a nil value)
Go to the top of the page
+Quote Post
Setuper
сообщение 13.4.2009, 0:33
Сообщение #2


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

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




Код
if not user.sConnection or user.sConnection:find"%W" then
Go to the top of the page
+Quote Post
Derk_B_P
сообщение 13.4.2009, 1:14
Сообщение #3


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

Группа: Пользователи
Сообщений: 88
Регистрация: 4.2.2009
Пользователь №: 2 102
Спасибо сказали: 1 раз




Цитата(Setuper @ 13.4.2009, 0:33) *
Код
if not user.sConnection or user.sConnection:find"%W" then

Теперь скрипт кикает всех подряд.
Go to the top of the page
+Quote Post
Setuper
сообщение 13.4.2009, 10:44
Сообщение #4


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

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




Код
UserConnected = function(user)
  Core.GetUserData(user, 4)
  if user.sConnection:find"%W" then
    return Core.Kick(user,"Bad_Client","Измените клиент "),true
  end
end
Go to the top of the page
+Quote Post
Derk_B_P
сообщение 13.4.2009, 18:15
Сообщение #5


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

Группа: Пользователи
Сообщений: 88
Регистрация: 4.2.2009
Пользователь №: 2 102
Спасибо сказали: 1 раз




Цитата(Setuper @ 13.4.2009, 10:44) *
Код
UserConnected = function(user)
  Core.GetUserData(user, 4)
  if user.sConnection:find"%W" then
    return Core.Kick(user,"Bad_Client","Измените клиент "),true
  end
end

Захожу клиентом StrongDC-22-sqlite-r335, пользователь определяется как бот. Но, скрипт не кикает.
Хотя, и ошибок в скрипте нет.
Go to the top of the page
+Quote Post
Setuper
сообщение 13.4.2009, 18:43
Сообщение #6


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

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




Ну так попробуй строчку: http://mydc.ru/ipb.html?s=&showtopic=1...ost&p=13728

Пробовать надо разные варианты и смотреть!
Go to the top of the page
+Quote Post
Derk_B_P
сообщение 14.4.2009, 16:39
Сообщение #7


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

Группа: Пользователи
Сообщений: 88
Регистрация: 4.2.2009
Пользователь №: 2 102
Спасибо сказали: 1 раз




В любом, из ниже перечисленых примеров, не кикает.

Код
UserConnected = function(user)
  Core.GetUserData(user, 4)
    if user.sConnection:find"%W" then
    return Core.Kick(user,"Bad_Client","Измените клиент "),true
  end
end


Код
UserConnected = function(user)
  Core.GetUserData(user, 4)
if not user.sConnection or user.sConnection:find"%W" then
    return Core.Kick(user,"Bad_Client","Измените клиент "),true
  end
end


Код
UserConnected = function(user)
  Core.GetUserData(user, 4)
if not user.sConnection then
    return Core.Kick(user,"Bad_Client","Измените клиент "),true
  end
end


А тут уже банит всех:

Код
UserConnected = function(user)
  Core.GetUserData(user, 4)
    if not user.sConnection:find("%w") then
    return Core.Kick(user,"Bad_Client","Измените клиент "),true
  end
end
Go to the top of the page
+Quote Post
Setuper
сообщение 14.4.2009, 17:19
Сообщение #8


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

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




Устанавливаешь вот такой простенький скрипт и наблюдаешь, что выводится
Код
local sNick = "Твой_ник"
UserConnected = function(user)
  Core.GetUserData(user, 4)
  Core.SendToNick(sNick, tosting(user.sConnection)..", "..tostring(user.sConnection and user.sConnection:find"%W" or 0))
end
Go to the top of the page
+Quote Post
Derk_B_P
сообщение 15.4.2009, 0:43
Сообщение #9


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

Группа: Пользователи
Сообщений: 88
Регистрация: 4.2.2009
Пользователь №: 2 102
Спасибо сказали: 1 раз




Цитата(Setuper @ 14.4.2009, 17:19) *
Устанавливаешь вот такой простенький скрипт и наблюдаешь, что выводится

При подкл. клиента с багом (StrongDC-22-sqlite-r335) в чат мне выводилось - " , 0"
Остальные клиенты - "100, 0", "1000, 0"
Go to the top of the page
+Quote Post
Setuper
сообщение 15.4.2009, 15:05
Сообщение #10


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

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




Попробуй:
Код
UserConnected = function(user)
  Core.GetUserData(user, 4)
    if user.sConnection =='' then
    Core.Kick(user, "Bad_Client", "Измените клиент ")
  end
end
RegConnected = UserConnected


Вообще говоря, если уж на то пошло, то данный баг должен отлавливать сервер.
Так как сервер не рассоединяет пользователей, то значит нет никаких препятствий в том, чтобы не указывать соединение.
Go to the top of the page
+Quote Post

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

 



RSS Сейчас: 20.4.2024, 0:43